SYSTEM AND METHOD FOR REMOTING TWAIN FUNCTION CALLS FROM A USER SESSION TO A CLIENT SYSTEM
First Claim
1. A method for controlling image acquisition devices associated with a client, the method comprising the steps of:
- (a) providing a client communicating with a server using a presentation-level protocol, said client executing a proxy application associated with an application executing on a server;
(b) receiving at said proxy application, from a server via a network, a command directed to an image-acquisition device associated with the client;
(c) issuing the received command to the associated image-acquisition device;
(d) receiving, from the image-acquisition device, a response to the issued event; and
(e) transmitting to the server via a network, the received response. The method of claim 1 wherein step (b) comprises receiving, from a server via a network using a protocol selected from the group consisting of ICA, RDP and X-WINDOWS, a command directed to an image-acquisition device associated with a client. The method of claim 1 wherein step (c) comprises issuing to the image-acquisition device a TWAIN API call based on the received command. The method of claim 1 wherein step (c) comprises issuing to the image-acquisition device a device driver call based on the received command. The method of claim 1 wherein step (c) comprises directly issuing to the image-acquisition device a command based on the received command. The method of claim 1 wherein step (c) comprises issuing to the associated image-acquisition device a command based on the received command, the issued command including an indication to suppress display of a dialog box to a user. The method of claim 6 further comprising the step of displaying a second dialog box to a user in lieu of the suppressed dialog box. The method of claim 1 further comprising the step of receiving, from a second server via the network, a second command directed to the image-acquisition device associated with the client. The method of claim 1 further comprising the step of receiving, from the server via the network, a second command directed to a second image-acquisition device associated with the client. The method of claim 1 further comprising the step of receiving, from a second server via the network, a second command directed to a second image-acquisition device associated with the client. The method of claim 1 wherein step (d) comprises receiving, from the image-acquisition device, data representing an image. The method of claim 11 wherein step (e) comprises;
(e-1) transmitting to the server compressed image data. The method of claim 12 wherein step (e) comprises;
(e-1) determining that the image data comprises more than one bit for each pixel location prior to transmitting the compressed image data to the server. The method of claim 13 wherein step (e-2) comprises;
(e-2-1) compressing the image data using a first compression algorithm to form first compressed image data;
(e-2-2) compressing the image data using a second compression algorithm to form second compressed image data; and
(e-2-3) selecting for transmission the smaller of the first compressed image data and the second compressed image data. The method of claim 12 further comprising the step of compressing compressed image data during transmission to the server. The method of claim 1 further comprising, before step (d), the steps of;
receiving input from a user of the client; and
determining whether to transmit the received input to the server. A method for remotely controlling image acquisition apparatus associated with a client, the method comprising the steps of;
receiving, from a client via a network, an image acquisition event;
providing the received event to an application program associated with the event;
receiving, from the application program, a response to the transmitted event; and
transmitting, via a network, the received response to a proxy application associated with the application program, said proxy application executing on the client. The method of claim 17 wherein step (b) comprises;
(b-1) determining, from the received event, an application program associated with the received event; and
(b-2) providing the received event to the determined application program. The method of claim 17 wherein step (c) comprises receiving, via a network, an intercepted TWAIN API call. The method of claim 17 further comprising the step of;
receiving, from a client via a network, data representing an image acquired by apparatus associated with the client. The method of claim 20 further comprising the step of;
decompressing the received image acquisition data. The method of claim 17 further comprising;
receiving an image acquisition event from a second client via the network. The method of claim 22 further comprising the step of;
providing the image acquisition event received from the second client to a second instance of an application program associated with the event. An article of manufacture having embodied thereon computer-readable program means for controlling image acquisition devices associated with a client, said client communicating with a server using a presentation-level protocol, said client further executing a proxy application associated with a Twain application executing on a server, the article of manufacture comprising;
computer-readable program means for receiving, from the server via a network, a command directed to an image-acquisition device associated with the client;
computer-readable program means for issuing the received command to the proxy application executing on the associated image-acquisition device;
computer-readable program means for receiving, from the image-acquisition device, a response to the issued event; and
computer-readable program means for transmitting to the server via a network, the received response. The article of manufacture of claim 24 wherein the computer-readable program means for receiving a command directed to an image-acquisition device further comprises;
computer-readable program means for receiving, from a server via a network using a protocol selected from the group consisting of ICA, RDP and X-WINDOWS, a command directed to an image-acquisition device associated with a client. The article of manufacture of claim 24 wherein the computer-readable program means for issuing the received command to the associated image-acquisition device further comprises;
computer-readable program means for issuing to the image-acquisition device a TWAIN API call based on the received command. A method for controlling image acquisition devices communicating with a client, the method comprising the steps of;
receiving a command from a server directed to an image acquisition device communicating with a client;
issuing a TWAIN API call based on the received command to the image-acquisition device communicating with the client;
receiving, from the image-acquisition device, a response to the issued command; and
transmitting to the server the received response. The method of claim 27 wherein step (b) comprises issuing to the image-acquisition device a device driver call based on the received command. The method of claim 27 wherein step (b) comprises directly issuing to the image-acquisition device a command based on the received command. The method of claim 27 wherein step (b) comprises issuing to the associated image-acquisition device a command based on the received command, the issued command including an indication to suppress display of a dialog box to a user. The method of claim 30 further comprising the step of displaying a second dialog box to a user in lieu of the suppressed dialog box. The method of claim 27 further comprising the step of receiving, from a second server via a network, a second command directed to the image-acquisition device associated with the client. The method of claim 27 further comprising the step of receiving, from the server, a second command directed to a second image-acquisition device associated with the client. The method of claim 27 further comprising the step of receiving, from a second server via a network, a second command directed to a second image-acquisition device associated with the client. The method of claim 27 wherein step (c) comprises receiving, from the image-acquisition device, data representing an image. The method of claim 35 wherein step (d) comprises;
(d-1) determining that the image data comprises one bit for each pixel location; and
(d-2) transmitting to the server, via a network, the image data. The method of claim 35 wherein step (d) comprises;
(d-1) determining that the image data comprises more than one bit for each pixel location;
(d-2) compressing the image data; and
(d-3) transmitting to the server the compressed image data via a network. The method of claim 37 wherein step (d-2) comprises;
(d-2-1) compressing the image data using a first compression algorithm to form first compressed image data;
(d-2-2) compressing the image data using a second compression algorithm to form second compressed image data; and
(d-2-3) selecting for transmission the smaller of the first compressed image data and the second compressed image data. The method of claim 37 further comprising the step of compressing compressed image data during transmission to the server. The method of claim 27 further comprising, before step (c), the steps of;
receiving input from a user of the client; and
determining whether to transmit the received input to the server.
7 Assignments
0 Petitions
Accused Products
Abstract
A mechanism for remoting Twain function calls within a user session to a client system is disclosed. By hooking Twain function calls made by a Twain application on the server, the Twain function calls may be remoted over a virtual connection to a client system. A proxy application corresponding to the server-based Twain application is created on the client system. The proxy application communicates with the server and makes the appropriate function calls to the remainder of the Twain framework. The use of the proxy application allows multiple applications and devices to be supported simultaneously. Messages sent over the virtual connection are filtered prior to transmission thereby limiting the amount of required communication traffic. A multiplexor and demultiplexor are utilized in order to efficiently use bandwidth on the virtual channel. The present invention additionally compresses image data prior to transmission over the virtual channel.
64 Citations
1 Claim
-
1. A method for controlling image acquisition devices associated with a client, the method comprising the steps of:
-
(a) providing a client communicating with a server using a presentation-level protocol, said client executing a proxy application associated with an application executing on a server;
(b) receiving at said proxy application, from a server via a network, a command directed to an image-acquisition device associated with the client;
(c) issuing the received command to the associated image-acquisition device;
(d) receiving, from the image-acquisition device, a response to the issued event; and
(e) transmitting to the server via a network, the received response. The method of claim 1 wherein step (b) comprises receiving, from a server via a network using a protocol selected from the group consisting of ICA, RDP and X-WINDOWS, a command directed to an image-acquisition device associated with a client. The method of claim 1 wherein step (c) comprises issuing to the image-acquisition device a TWAIN API call based on the received command. The method of claim 1 wherein step (c) comprises issuing to the image-acquisition device a device driver call based on the received command. The method of claim 1 wherein step (c) comprises directly issuing to the image-acquisition device a command based on the received command. The method of claim 1 wherein step (c) comprises issuing to the associated image-acquisition device a command based on the received command, the issued command including an indication to suppress display of a dialog box to a user. The method of claim 6 further comprising the step of displaying a second dialog box to a user in lieu of the suppressed dialog box. The method of claim 1 further comprising the step of receiving, from a second server via the network, a second command directed to the image-acquisition device associated with the client. The method of claim 1 further comprising the step of receiving, from the server via the network, a second command directed to a second image-acquisition device associated with the client. The method of claim 1 further comprising the step of receiving, from a second server via the network, a second command directed to a second image-acquisition device associated with the client. The method of claim 1 wherein step (d) comprises receiving, from the image-acquisition device, data representing an image. The method of claim 11 wherein step (e) comprises;
(e-1) transmitting to the server compressed image data. The method of claim 12 wherein step (e) comprises;
(e-1) determining that the image data comprises more than one bit for each pixel location prior to transmitting the compressed image data to the server. The method of claim 13 wherein step (e-2) comprises;
(e-2-1) compressing the image data using a first compression algorithm to form first compressed image data;
(e-2-2) compressing the image data using a second compression algorithm to form second compressed image data; and
(e-2-3) selecting for transmission the smaller of the first compressed image data and the second compressed image data. The method of claim 12 further comprising the step of compressing compressed image data during transmission to the server. The method of claim 1 further comprising, before step (d), the steps of;
receiving input from a user of the client; and
determining whether to transmit the received input to the server. A method for remotely controlling image acquisition apparatus associated with a client, the method comprising the steps of;
receiving, from a client via a network, an image acquisition event;
providing the received event to an application program associated with the event;
receiving, from the application program, a response to the transmitted event; and
transmitting, via a network, the received response to a proxy application associated with the application program, said proxy application executing on the client. The method of claim 17 wherein step (b) comprises;
(b-1) determining, from the received event, an application program associated with the received event; and
(b-2) providing the received event to the determined application program. The method of claim 17 wherein step (c) comprises receiving, via a network, an intercepted TWAIN API call. The method of claim 17 further comprising the step of;
receiving, from a client via a network, data representing an image acquired by apparatus associated with the client. The method of claim 20 further comprising the step of;
decompressing the received image acquisition data. The method of claim 17 further comprising;
receiving an image acquisition event from a second client via the network. The method of claim 22 further comprising the step of;
providing the image acquisition event received from the second client to a second instance of an application program associated with the event. An article of manufacture having embodied thereon computer-readable program means for controlling image acquisition devices associated with a client, said client communicating with a server using a presentation-level protocol, said client further executing a proxy application associated with a Twain application executing on a server, the article of manufacture comprising;
computer-readable program means for receiving, from the server via a network, a command directed to an image-acquisition device associated with the client;
computer-readable program means for issuing the received command to the proxy application executing on the associated image-acquisition device;
computer-readable program means for receiving, from the image-acquisition device, a response to the issued event; and
computer-readable program means for transmitting to the server via a network, the received response. The article of manufacture of claim 24 wherein the computer-readable program means for receiving a command directed to an image-acquisition device further comprises;
computer-readable program means for receiving, from a server via a network using a protocol selected from the group consisting of ICA, RDP and X-WINDOWS, a command directed to an image-acquisition device associated with a client. The article of manufacture of claim 24 wherein the computer-readable program means for issuing the received command to the associated image-acquisition device further comprises;
computer-readable program means for issuing to the image-acquisition device a TWAIN API call based on the received command. A method for controlling image acquisition devices communicating with a client, the method comprising the steps of;
receiving a command from a server directed to an image acquisition device communicating with a client;
issuing a TWAIN API call based on the received command to the image-acquisition device communicating with the client;
receiving, from the image-acquisition device, a response to the issued command; and
transmitting to the server the received response. The method of claim 27 wherein step (b) comprises issuing to the image-acquisition device a device driver call based on the received command. The method of claim 27 wherein step (b) comprises directly issuing to the image-acquisition device a command based on the received command. The method of claim 27 wherein step (b) comprises issuing to the associated image-acquisition device a command based on the received command, the issued command including an indication to suppress display of a dialog box to a user. The method of claim 30 further comprising the step of displaying a second dialog box to a user in lieu of the suppressed dialog box. The method of claim 27 further comprising the step of receiving, from a second server via a network, a second command directed to the image-acquisition device associated with the client. The method of claim 27 further comprising the step of receiving, from the server, a second command directed to a second image-acquisition device associated with the client. The method of claim 27 further comprising the step of receiving, from a second server via a network, a second command directed to a second image-acquisition device associated with the client. The method of claim 27 wherein step (c) comprises receiving, from the image-acquisition device, data representing an image. The method of claim 35 wherein step (d) comprises;
(d-1) determining that the image data comprises one bit for each pixel location; and
(d-2) transmitting to the server, via a network, the image data. The method of claim 35 wherein step (d) comprises;
(d-1) determining that the image data comprises more than one bit for each pixel location;
(d-2) compressing the image data; and
(d-3) transmitting to the server the compressed image data via a network. The method of claim 37 wherein step (d-2) comprises;
(d-2-1) compressing the image data using a first compression algorithm to form first compressed image data;
(d-2-2) compressing the image data using a second compression algorithm to form second compressed image data; and
(d-2-3) selecting for transmission the smaller of the first compressed image data and the second compressed image data. The method of claim 37 further comprising the step of compressing compressed image data during transmission to the server. The method of claim 27 further comprising, before step (c), the steps of;
receiving input from a user of the client; and
determining whether to transmit the received input to the server.
-
Specification