Abstract:
Apparatus having corresponding methods and computer-readable media comprise: a controller configured to generate a cloud scan request, wherein the cloud scan request represents a request to scan a document using cloud services; a transmitter configured to transmit the cloud scan request to a cloud print service; and a receiver configured to receive an image file from a cloud document service, wherein the file includes an image of the document.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This disclosure claims the benefit of U.S. Provisional Patent Application Ser. No. 61/405,058, filed on Oct. 20, 2010, the disclosure thereof incorporated by reference herein in its entirety. 
    
    
     FIELD 
     The present disclosure relates generally to the field of acquisition of electronic images of documents, photos, and the like. More particularly, the present disclosure relates to acquisition of such images using cloud services. 
     BACKGROUND 
     Many new computing paradigms rely on cloud computing, that is, using on-demand computer resources and services that are provided over a computer network rather than by a locally-connected device. Cloud services can be completely offsite, or in some cases, can be provided by local computing or peripheral devices. 
     Solutions have been devised for cloud-based file storage, document creation and editing, application execution, and even printing. However, cloud-based services have not yet been extended to the field of image acquisition, for example for scanning documents, photos, and the like. 
     SUMMARY 
     In general, in one aspect, an embodiment features an apparatus comprising: a controller configured to generate a cloud scan request, wherein the cloud scan request represents a request to scan a document using cloud services; a transmitter configured to transmit the cloud scan request to a cloud print service; and a receiver configured to receive an image file from a cloud document service, wherein the file includes an image of the document. 
     In general, in one aspect, an embodiment features a method comprising: generating a cloud scan request responsive to a user request, wherein the cloud scan request represents a request to scan a document using cloud services; transmitting the cloud scan request to a cloud print service; and receiving an image file from a cloud document service, wherein the image file includes an image of the document. 
     In general, in one aspect, an embodiment features computer-readable media embodying instructions executable by a computer to perform functions comprising: generating a cloud scan request responsive to a user request, wherein the cloud scan request represents a request to scan a document using cloud services; transmitting the cloud scan request to a cloud print service; and receiving an image file from a cloud document service, wherein the image file includes a scan of the document. 
     The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims. 
    
    
     
       DESCRIPTION OF DRAWINGS 
         FIG. 1  shows elements of a cloud scanning system that includes a network scanner according to one embodiment. 
         FIG. 2  shows elements of a user device according to one embodiment. 
         FIG. 3  shows elements of a cloud scan request according to one embodiment. 
         FIG. 4  shows detail of an image file according to one embodiment. 
         FIG. 5  shows elements of a file request according to one embodiment. 
         FIG. 6  shows a process for the cloud scanning system of  FIG. 1  according to one embodiment. 
         FIG. 7  shows elements of a cloud scanning system that includes a legacy scanner and print proxy according to one embodiment. 
         FIG. 8  shows a process for the cloud scanning system of  FIG. 7  according to one embodiment. 
       The leading digit(s) of each reference numeral used in this specification indicates the number of the drawing in which the reference numeral first appears. 
     
    
    
     DETAILED DESCRIPTION 
     Embodiments of the present disclosure provide cloud scanning, that is, the utilization of cloud services to facilitate acquisition of an electronic image of a document. As used herein, the term “document” is used to refer to any item that can be scanned by a scanner. Cloud scanning allows scanning from any resource connected to the cloud, including local resources such as a local office scanner, as well as remote resources such as a user&#39;s home scanner while the user is traveling on another continent. 
       FIG. 1  shows elements of a cloud scanning system  100  that includes a network scanner according to one embodiment. Referring to  FIG. 1 , cloud scanning system  100  includes a user device  102  operated by a user  104 , a cloud print service  106 , a network scanner  108 , and a cloud document service  110 . User device  102  can be any device capable of the respective functions described herein, for example such as a computer, smartphone, and the like. A cloud print service is a service that enables an application on a device in a network cloud to print to a printer in the network cloud. Cloud print service  106  can be any cloud print service capable of the respective functions described herein, for example such as the Google Cloud Print service and the like. Network scanner  108  can be any device capable of the respective functions described herein, for example such as commercially-available network scanners, multi-function network printers, and the like. A cloud document service is a service that enables an application on a device in a network cloud to transfer files such as document files to and from a storage device in the network cloud. Cloud document service  110  can be any cloud document service capable of the respective functions described herein, for example such as such as the Google Docs service and the like. The elements of cloud scanning system  100  can communicate by any means, for example including networks such as the Internet and the like. 
       FIG. 2  shows elements of a user device  102  according to one embodiment. 
     Referring to  FIG. 2 , user device  102  includes a controller  202 , a user interface  204 , and a network interface  206 . Controller  202  can be implemented as a processor or the like. User interface  204  includes one or more input devices  208  such as touchscreens, trackballs, mice, rocker switches, buttons, and the like, and one or more display devices  210  such as screens, touchscreens, projectors and the like. Network interface  206  includes a transmitter  212  and a receiver  214 . Network interface  206  can be wired, wireless, optical, or the like. In the case of a wireless network, network interface  206  can be compliant with all or part of IEEE standard 802.11, including draft and approved amendments such as 802.11a, 802.11b, 802.11e, 802.11g, 802.11i, 802.11k, 802.11n, 802.11v, 802.11w, and 802.11z. 
     Now an example cloud scanning operation for cloud scanning system  100  of 
       FIG. 1  is described according to one embodiment. User  104  employs user device  102  to send a cloud scan request  112  to cloud print service  106 . In particular, user  104  employs input device(s)  208  to input a user scan request  114  to user device  102 . In response, controller  202  generates a cloud scan request  116 , and transmitter  212  transmits request  116  to cloud print service  106 . In response, cloud print service  106  forwards request  116  to network scanner  108 . 
       FIG. 3  shows elements of a cloud scan request  116  according to one embodiment. Referring to  FIG. 3 , cloud scan request  116  includes a print job  302 , a device ID  308  that identifies network scanner  108 , and a request  312  to transmit the resulting image file  118  to cloud document service  110 . Print job  302  includes a print job title  314  and an instruction file  304  containing instructions  306  for scanning one or more documents. Instructions  306  include a file name  310  to be assigned to resulting image file  118 , as well as other scanning instructions  318  such as the desired scan resolution, the color mode, and the like. Print job title  314  includes one or more tokens  316  that indicate print job  302  is actually a scan job  302 . Device ID  308  can include a network address or the like for network scanner  108 . 
       FIG. 4  shows detail of image file  118  according to one embodiment. Referring to  FIG. 4 , image file  118  includes one or more images  124  of the scanned document. Images  124  can be in any format. The format of images  124  can be specified by cloud scan request  116 . 
     Referring again to  FIG. 1 , in response to cloud scan request  116 , network scanner  108  scans one or more documents and transmits the resulting image file  118  to cloud document service  110 . Network scanner  108  also provides status  120  of the scan job  302  to cloud print service  106 , which forwards status  120  to user device  102 . Referring to  FIG. 2 , receiver  214  of network interface  206  receives status  120 . When status  120  indicates scan job  302  is done, user device  102  issues a file request  122  to cloud document service  110 . In particular, controller  202  generates file request  122 , for example in response to input from user  104 , and transmitter  212  transmits request  122  to cloud document service  110 . 
       FIG. 5  shows elements of a file request  122  according to one embodiment. 
     Referring to  FIG. 5 , file request  122  includes the same file name  310  used in cloud scan request  116 . Referring again to  FIG. 1 , in response to file request  122 , cloud document service  110  transmits image file  118  to user device  102 , which can display image(s)  124  to user  104 . In particular, receiver  214  of network interface  206  receives image file  118 , and display device(s)  210  display image(s)  124  to user  104 . 
       FIG. 6  shows a process for cloud scanning system  100  of  FIG. 1  according to one embodiment. Although in the described embodiments the elements of the process are presented in one arrangement, other embodiments may feature other arrangements. For example, in various embodiments, some or all of the elements of the process can be executed in a different order, concurrently, and the like. 
     Referring to  FIG. 6 , user  104  employs user device  102  to select a scan operation at  602 . In response, an application executing on controller  202  of user device  102  gets a list of available scanners  108  registered for user  104  from cloud print service  106  at  604 . The application determines which of the scanners  108  are capable of scanning, and displays a list of those scanners  108  to user  104  at  606 . User  104  employs user device  102  to select a network scanner  108  from the list at  608 . In response, user device  102  formats print job  302  at  610 , and submits print job  302  to cloud print service  106  at  612 . 
     Network scanner  108  polls for new print jobs  302  by fetching a list of print jobs  302  from cloud print service  106  at  614 . When the list includes a new print job  302  for network scanner  108 , network scanner  108  gets the new print job  302  from cloud print service  106  at  616 . At  618 , network scanner  108  determines that the print job  302  is a scan job  302  using the token(s)  316  in the print job title  314 . Network scanner  108  scans the document according to instructions  306  at  620 , places the resulting image(s)  124  in an image file  118 , assigns file name  310  to the image file  118 , and sends the image file  118  to cloud document service  110  at  622 . At  624  network scanner  108  sends status  120  to cloud print service  106  indicating that the scan job  302  is done. 
     User device  102  polls cloud print service  106  to obtain status  120 . In response to the status  120  indicating that the scan job  302  is done, user device  102  gets image file  118  from cloud document service  110  using file name  310  at  628 , and displays image(s)  124  to user  104  at  630 . 
       FIG. 7  shows elements of a cloud scanning system  700  that includes a legacy scanner and print proxy according to one embodiment. Referring to  FIG. 7 , cloud scanning system  700  includes a legacy scanner  708  and a print proxy  712 . A legacy scanner  708  is a scanner that requires a print proxy  712  to operate with a network. A print proxy  712  is a software component, running on local computing resources, that enables legacy scanners, printers, multi-function printers, and the like, to operate with a network. Legacy scanner  708  can be any device capable of the respective functions described herein, for example such as commercially-available scanners, multi-function printers, and the like. The remaining elements of cloud scanning system  700 , namely user device  102 , cloud print service  106 , and cloud document service  110 , can be implemented and operated as described above. 
     Now an example cloud scanning operation for cloud scanning system  700  of 
       FIG. 7  is described according to one embodiment. User  104  employs user device  102  to send a cloud scan request  112  to cloud print service  106 . In particular, user  104  employs input device(s)  208  to input a user scan request  114  to user device  102 . In response, controller  202  generates a cloud scan request  116 , and transmitter  212  transmits request  116  to cloud print service  106 . In response, cloud print service  106  forwards request  116  to print proxy  712 . Print proxy generates a legacy scan request  714  responsive to cloud scan request  116 , and sends request  714  to legacy scanner  708 . Legacy scan request  714  can be implemented as a conventional scan request such as a scan request sent by a personal computer to a local scanner or the like. 
     In response to legacy scan request  714 , legacy scanner  708  scans the one or more documents and transmits the resulting image file  118  to print proxy  712 , which forwards image file  118  to cloud document service  110 . Print proxy  712  also provides status  120  of the scan job  302  to cloud print service  106 , which forwards status  120  to user device  102 . Referring to  FIG. 2 , receiver  214  of network interface  206  receives status  120 . When status  120  indicates the scan job  302  is done, user device  102  issues a file request  122  to cloud document service  110 . In particular, controller  202  generates file request  122 , for example in response to input from user  104 , and transmitter  212  transmits request  122  to cloud document service  110 . 
       FIG. 8  shows a process for cloud scanning system  700  of  FIG. 7  according to one embodiment. Although in the described embodiments the elements of the process are presented in one arrangement, other embodiments may feature other arrangements. For example, in various embodiments, some or all of the elements of the process can be executed in a different order, concurrently, and the like. 
     Referring to  FIG. 8 , user  104  employs user device  102  to select a scan operation at  802 . In response, an application executing on controller  202  of user device  102  gets a list of available scanners  108  registered for user  104  from cloud print service  106  at  804 . The application determines which of the scanners  108  are capable of scanning, and displays a list of those scanners  108  to user  104  at  806 . In this embodiment, the list includes at least one legacy scanner  708  and print proxy  712 . User  104  employs user device  102  to select a legacy scanner  708  from the list at  808 . In response, user device  102  formats print job  302  at  810 , and submits print job  302  to cloud print service  106  at  812 . 
     Print proxy  712  polls for new print jobs  302  by fetching a list of print jobs  302  from cloud print service  106  at  814 . When the list includes a new print job  302  for legacy scanner  708 , print proxy  712  gets the new print job  302  from cloud print service  106  at  816 . At  818 , print proxy  712  determines that the print job  302  is a scan job  302  using the token(s)  316  in the print job title  314 . Print proxy  712  then causes legacy scanner  708  to scan the document according to instructions  306  at  820 , places the resulting image(s)  124  in an image file  118 , assigns file name  310  to the image file  118 , and sends the image file  118  to cloud document service  110  at  822 . At  824  print proxy  712  sends a status  120  to cloud print service  106  indicating that the scan job  302  is done. 
     User device  102  polls cloud print service  106  to obtain status  120 . In response to the status  120  indicating that the scan job  302  is done, user device  102  gets image file  118  from cloud document service  110  using file name  310  at  828 , and displays image(s)  124  to user  104  at  830 . 
     Various embodiments of the present disclosure can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations thereof. Embodiments of the present disclosure can be implemented in a computer program product tangibly embodied in a computer-readable storage device for execution by a programmable processor. The described processes can be performed by a programmable processor executing a program of instructions to perform functions by operating on input data and generating output. Embodiments of the present disclosure can be implemented in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Each computer program can be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language can be a compiled or interpreted language. Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, processors receive instructions and data from a read-only memory and/or a random access memory. Generally, a computer includes one or more mass storage devices for storing data files. Such devices include magnetic disks, such as internal hard disks and removable disks, magneto-optical disks; optical disks, and solid-state disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits). 
     A number of implementations have been described. Nevertheless, various modifications may be made without departing from the scope of the disclosure. Accordingly, other implementations are within the scope of the following claims.