The present invention relates to image scanning and, more particularly, to image scanning in a shared resource environment, such as a public access (e.g. hotel, airport, convenience store) or multi-user workgroup environment.
There are several known ways to download a scanned image (e.g. scanned document) from a scanner device to a client device. A first approach is to connect the client device directly to the scanner device using a cable, such as a Small Computer Systems Interface (SCSI), parallel port or Universal Serial Bus (USB) connector, and invoke a scan driver on the client device to instruct the scanner device to scan the image and download the scanned image to the client device. A shortcoming of this approach is that a dedicated local physical connection must be made between a particular client device and scanner device, which does not scale to an environment where a scanner device is shared among a large and/or transient user population.
A second approach that is better suited to a shared resource environment is scan-to-email. In scan-to-email, the user inputs an email address into a scanner device or selects a pre-stored email address from an address book on the scanner device and the scanner device scans the image and routes the scanned image to an email server from which the scanned image is later downloaded to a client device. A shortcoming of this approach is that the user must know the email address at the time the image is scanned. Moreover, the user may input or select an erroneous email address and not realize the error until after he or she has returned to his or her client device. Furthermore, the scanned image is subject to email server restrictions (e.g. storage quotas) and security vulnerabilities. Additionally, the scanned image cannot be imported directly into a workflow or application on the client device.
A third approach is scan-to-FTP (File Transfer Protocol). In scan-to-FTP, the user inputs into a scanner device or selects on the scanner device a pre-stored file path or associated workflow and the scanner device scans the image and routes the scanned image to a client device on which the file resides. Where a destination workflow is identified, the workflow may be automatically initiated when the scanned image arrives at the client device. A shortcoming of this approach is that the user must know the file path or workflow at the time the image is scanned. Moreover, the user may input or select an erroneous file path or workflow and not realize the error until after he or she has returned to the client device. Furthermore, there must be network connectivity between the scanner device and the client device. Additionally, the scanned image cannot be imported directly into an application on the client device.
A fourth approach is to support scanning as a standardized web service. In a web service approach, a scan web service client on the client device discovers scanner devices that expose a scan web service and control one of the discovered scanner devices to scan an image and download the scanned image to the client device. In some cases, the scanned image can be imported directly into an application on the client device. A shortcoming of this approach is that the user typically must make two trips to the scanner device—one to place a hardcopy on the platen glass or automatic document feeder (ADF) of the scanner device before scanning and a second time to retrieve the hardcopy from the glass platen or ADF after initiating a scan request from the client device. The user may also have difficulty determining which physical scanner devices correspond with scanner devices identified on the client device, and which scans performed on a given physical scanner device correspond to which scan requests.
The present invention, in a basic feature, provides a method and system for follow-me scanning in a shared resource environment. The present invention improves image scanning in a shared resource environment in part by decoupling the act of generating a scanned image from the act of identifying a destination for the scanned image. In accordance with the teachings of the invention, a user scans an image on a shared scanner device without identifying a destination for the scanned image. When the user later wants to use the scanned image, the user specifies a destination for the scanned image and the scanned image is sent to the destination. A user can thus, without giving any consideration to a destination for a scanned image, generate the scanned image on an arbitrary scanner device and, at a later time, recover the scanned image using an arbitrary client device. In some embodiments, follow-me scanning is facilitated by a server device that intermediates between an arbitrary number of scanner devices and an arbitrary number of client devices and allows the scanned image to be imported directly into workflows and applications running on the client devices.
In one aspect of the invention, a server device comprises one or more network interfaces and a processor communicatively coupled with the network interfaces, wherein the server device receives from a scanner device via one of the network interfaces a scanned image and a scan job identifier and under control of the processor stores in a storage element the scanned image in association with the scan job identifier, and wherein in response to a request having the scan job identifier received from a client device via one of the network interfaces and under control of the processor the server device retrieves from the storage element using the scan job identifier the scanned image and transmits the scanned image to the client device.
In some embodiments, the scan job identifier stored on the storage element and the scan job identifier in the request are generated on the scanner device and the client device, respectively, from scan job identifiers input by a common user on the scanner device and the client device, respectively.
In some embodiments, the scan job identifier stored on the storage element and the scan job identifier in the request are encrypted on the scanner device and the client device, respectively.
In some embodiments, the server device receives from the scanner device via one of the network interfaces a conflict check request regarding the scan job identifier.
In some embodiments, the request has delivery options selected by a user of the client device and under control of the processor the server device applies the selected delivery options to the scanned image retrieved from the storage element.
In some embodiments, the scanned image retrieved from the storage element is directly imported into a workflow executing on the client device.
In some embodiments, the scanned image retrieved from the storage element is directly imported into an application executing on the client device.
In another aspect of the invention, a client device comprises a user interface, a network interface and a processor communicatively coupled with the user interface and the network interface, wherein under control of the processor the client device transmits to a server device via the network interface a request having a scan job identifier generated from a scan job identifier input in a first instance on a scanner device in association with generation of a scanned image and input in a second instance on the user interface in association with generation of the request, and in response to the request receives from the server device via the network interface the scanned image.
In some embodiments, the scan job identifier in the request is an encrypted scan job identifier and the scan job identifier input in the first and second instances is a plaintext scan job identifier.
In some embodiments, under control of the processor the client device discovers the server device in a discovery process conducted via the network interface.
In some embodiments, under control of the processor the client device discovers delivery options supported on the server device in a discovery process conducted via the network interface.
In some embodiments, the request is generated under control of the processor in response to input into a request form displayed on the user interface.
In some embodiments, the request form has a scan job identifier entry field and selectable delivery options discovered from the server device.
In yet another aspect of the invention, a method for follow-me scanning in a shared resource environment comprises the steps of receiving from a scanner device a scanned image and a scan job identifier, storing in a storage element the scanned image in association with the scan job identifier, receiving from a client device a request having the scan job identifier, retrieving from the storage element using the scan job identifier the scanned image and transmitting the scanned image to the client device.
In some embodiments, the scan job identifier stored on the storage element and the scan job identifier in the request are generated on the scanner device and the client device, respectively, from scan job identifiers input by a common user on the scanner device and the client device, respectively.
In some embodiments, the scan job identifier stored on the storage element and the scan job identifier in the request are encrypted on the scanner device and the client device, respectively.
In some embodiments, the method further comprises the step of receiving from the scanner device a conflict check request regarding the scan job identifier.
In some embodiments, the scan job identifier stored on the storage element and the scan job identifier in the request are hash values.
In some embodiments, the scanned image retrieved from the storage element is directly imported into a workflow executing on the client device.
In some embodiments, the scanned image retrieved from the storage element is directly imported into an application executing on the client device.
These and other aspects of the invention will be better understood by reference to the following detailed description taken in conjunction with the drawings that are briefly described below. Of course, the invention is defined by the appended claims.
Communication network 120 is a secure data communication network. In some embodiments, network 120 consists of dedicated physical connections between scanner devices 110A, 110B, 110C and server device 130 and between server device 130 and cloud storage 170, such as SCSI, USB and/or parallel port connections. In other embodiments, network 120 is a wired or wireless network that includes an arbitrary number of multiplexing nodes, such as Institute of Electrical and Electronics Engineers (IEEE) 803.2 (wired Ethernet) switches and 802.11 (Wi-Fi) or 802.16 (WiMax) access points, and/or Internet Protocol (IP) routers, that execute data communication protocols to store and forward data traffic between scanner devices 110A, 110B, 110C, server device 130 and cloud storage 170. In other embodiments, network 120 is an optical network in which fiber optics or other optical technologies utilize a waveguide to guide an optical beam between two arbitrary points. Communication between scanner devices 110A, 110B, 110C and server device 130 may be realized using a web services for devices (WSD) scan web service protocol, or an alternative scanning protocol such as TWAIN (Technology Without Any Impressive Name), SANE (Scanner Access Now Easy) or ISIS (Image and Scanner Interface Specification), with network security provided at least in part by a firewall.
Communication network 140 is a wired or wireless data communication network that includes an arbitrary number of multiplexing nodes, such as Ethernet switches, WiMAX and/or Wi-Fi access points, IP routers and/or cellular communication nodes, that execute data communication protocols to store and forward data traffic between client devices 150A, 150B, 150C and server device 130. Communication between client devices 150A, 150B, 150C and server device 130 may be realized using a WSD scan web service protocol, or an alternative network scanning protocol such as Windows Image Acquisition (VIA), TWAIN, SANE or ISIS.
Cloud storage 170 includes an arbitrary number of storage elements for temporarily storing scan job records that include scanned images and associated encrypted scan job identifiers. In some embodiments, the storage elements include file server devices. In some embodiments, cloud storage 170 also includes a location server for facilitating retrieval of stored scan job records. While cloud storage 170 is shown in
Scanner devices 110A, 110B, 110C may be dedicated to scanning or may support additional imaging functions, such as printing, copying, faxing and filing. Turning to
Virtual scanner locator 320 locates a virtual scanner service running on server device 130 and uploads to server device 130 scan capabilities and options supported on scanner device 110. In some embodiments, virtual scanner locator 320 executes a discovery protocol, such as Windows Vista WSD device discovery, to dynamically discover the virtual scanner service. In other embodiments, virtual scanner locator 320 has access to addressing information for server device 130 configured on client device 150 by a manufacturer, administrator or user that is sufficient to enable scanner device 110 to contact the virtual scanner service and upload scan capabilities and options supported by scanner device 110.
Scan controller 330 displays on front panel 210 a scan job request form that presents scan options supported by scanner device 110 as selectable options along with a scan job identifier entry field. When a walk-up user completes the request form, scan controller 330 enables scan engine 230 to scan a hardcopy placed by the user on the glass platen or ADF of scanner device 110 to generate a scanned image conformant with user-selected scan options. Scan controller 330 encrypts a plaintext scan job identifier entered by the walk-up user using a one-way hash algorithm, such as Message Digest Five (MD5), to produce an encrypted scan job identifier. Once the scanned image has been generated, scan controller 330 creates a scan job record including the scanned image and the encrypted scan job identifier and, using addressing information for server device 130 acquired from virtual scanner locator 320, transmits the scan job record to server device 130 via network interface 220. In response to the request, server device 130 returns an acknowledgement to scanner device 110.
Virtual scanner locator 520 locates a virtual scanner service running on server device 130. In some embodiments, virtual scanner locator 520 executes a discovery protocol, such as Windows Vista WSD device discovery, to dynamically discover the virtual scanner service and capabilities and delivery options supported by the virtual scanner service. In other embodiments, virtual scanner locator 520 has access to addressing information for server device 130 configured on client device 150 by a manufacturer, administrator or user sufficient to enable client device 150 to contact the virtual scanner service and download capabilities and delivery options supported by the virtual scanner service.
Image acquisition process 530 interacts with a user of client device 150 and a virtual scanner service executing on server device 130 to acquire and display scanned images. The user of client device 150 is a previous walk-up user of one of scanner devices 110A, 110B, 110C who now wishes to retrieve an earlier generated and stored scanned image. Process 530 may be a workflow, application or scan driver that is capable of executing scan jobs in a conventional environment wherein process 530 interacts directly with a physical scanner device in the absence of any virtual scanner service. In the present environment, a virtual scanner service on server device 130 emulates this conventional environment by appearing to process 530 as a physical scanner device located by client device 150 that generates scanned images in real-time in response to scan job requests initiated by process 530. However, in the present environment, the virtual scanner service in fact, in response to scan job requests initiated by process 530, retrieves from cloud storage 170 pre-stored scanned images generated at an earlier time on a plurality of scanner devices 110A, 110B, 110C that are represented by the virtual scanner service.
More particularly, when a scan job request is initiated within process 530, process 530 acquires from virtual scanner locator 520 known addressing information, capabilities and delivery options associated with the virtual scanner service. Process 530 uses the capabilities and delivery options to create and render on user interface 420 a scan job request form that presents the delivery options supported by the virtual scanner service as selectable options along with a scan job identifier entry field. Once the request form is completed by a user, process 530 generates a scan job request based on information in the completed request form. In particular, process 530 extracts a plaintext scan job identifier entered by a user in the scan job identifier entry field of the request form and encrypts the plaintext scan job identifier using a one-way hash algorithm, such as MD5, to produce an encrypted scan job identifier. Process 530 also extracts delivery options selected by the user from among the selectable options in the request form. Process 530 then generates a scan job request including the encrypted scan job identifier and the selected delivery options and transmits the request to server device 130 via network interface 410. In response to the request, server device 130 returns a scanned image in conformance with the selected delivery options that is imported directly into process 530 and displayed on user interface 420. Application by the virtual scanner service of the encrypted scan job identifier to retrieve the scanned image from cloud storage 170 is not visible to process 530; from the perspective of process 530 the virtual scanner device appears to be a conventional physical scanner device located by client device 150 that generates scanned images in real-time in response to scan job requests.
Virtual scanner service 720 interacts with scanner devices 110A, 110B, 110C and virtual scanner locators and image acquisition processes running on client devices 150A, 150B, 150C, respectively, to enable follow-me scanning. In some embodiments, virtual scanner service 720 executes a discovery protocol, such as Windows Vista WSD device discovery, to dynamically discover identities, scan options and capabilities of scanner devices 110A, 110B, 110C and advertise its own identity, capabilities and delivery options to client devices 150A, 150B, 150C. In other embodiments, addressing information for server device 130 configured on scanner devices 110A, 110B, 110C and client devices 150A, 150B, 150C is used to contact server device 130 and upload/download capabilities and options. Capabilities and delivery options downloaded by virtual scanner service 720 to client devices 150A, 150B, 150C may include capabilities and scan options advertised by scanner devices 110A, 110B, 110C as well as enhanced capabilities and options supported by virtual scanner service 720.
Virtual scanner service 720 receives from scanner devices 110A, 110B, 110C scan job records including scanned images and associated encrypted scan job identifiers and stores the scan job records in cloud storage 170. In response to a received scan job record, virtual scanner service 720 stores the scanned image from the record in association with the encrypted scan job identifier from the record at an available location in cloud storage 170. The encrypted scan job identifier provides a lookup key that can be used by virtual scanner service 720 at a later time to retrieve the scanned image. Once the scanned image is stored, virtual scanner service 720 downloads to the one of scanner devices 110A, 110B, 110C from which the scan job record was received a scan job record acknowledgement.
Virtual scanner service 720 receives from client devices 150A, 150B, 150C scan job requests including encrypted scan job identifiers and selected delivery options. In response to a scan job request, virtual scanner service 720 retrieves a scanned image from an available location in cloud storage 170 using the encrypted scan job identifier from the request as a lookup key. In some embodiments, cloud storage 170 includes multiple physical storage devices and has a location server that virtual scanner service 720 can query to resolve an encrypted scan job identifier to a Uniform Resource Identifier (URI) of the physical storage device on which a scanned image is stored, which URI is then applied by virtual scanner service 720 to retrieve the scanned image from the identified physical storage device. Once the scanned image is retrieved, virtual scanner service 720 downloads to the requesting one of client devices 150A, 150B, 150C a scan job response including the scanned image in conformance with the requested delivery options.
It will be appreciated by those of ordinary skill in the art that the invention can be embodied in other specific forms without departing from the spirit or essential character hereof. The present description is therefore considered in all respects to be illustrative and not restrictive. The scope of the invention is indicated by the appended claims, and all changes that come with in the meaning and range of equivalents thereof are intended to be embraced therein.