GB2365599A - System method and program for enabling communication between a client and a device with a remote server hosted device driver - Google Patents

System method and program for enabling communication between a client and a device with a remote server hosted device driver Download PDF

Info

Publication number
GB2365599A
GB2365599A GB0105163A GB0105163A GB2365599A GB 2365599 A GB2365599 A GB 2365599A GB 0105163 A GB0105163 A GB 0105163A GB 0105163 A GB0105163 A GB 0105163A GB 2365599 A GB2365599 A GB 2365599A
Authority
GB
United Kingdom
Prior art keywords
client
server
communication
control program
translated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB0105163A
Other versions
GB0105163D0 (en
Inventor
Rabindranath Dutta
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of GB0105163D0 publication Critical patent/GB0105163D0/en
Publication of GB2365599A publication Critical patent/GB2365599A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1206Improving or facilitating administration, e.g. print management resulting in increased flexibility in input data format or job format or job type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1228Printing driverless or using generic drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1247Job translation or job parsing, e.g. page banding by conversion to printer ready format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1289Remote printer device, e.g. being remote from client or server in server-client-printer device configuration, e.g. the server does not see the printer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2895Intermediate processing functionally located close to the data provider application, e.g. reverse proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

A system, method, and program for enabling communication between a client and a device are disclosed. A server receives a request for enabling communication from a client to a device. In response to the server receiving the request, an appropriate device driver stored in the server is selected and executed to translate the communication between the client and the device. The translated communication that is comprehensible by the device is sent from the server to the device through the client. In a preferred embodiment, the server accesses various device drivers for various devices. The device drivers are stored in a library in the server. The server determines and recognizes a client type for the client and a device type for the device. Based on the client type and the device type, the appropriate device driver is selected from the library and executed to translate the communication between the client and the device.

Description

2365599 SYSTEM, METHOD, AND PROGRAM FOR ENABLING COMMUNICATION
BETWEEN_A.CLIENT AND A DEVICE WITH A SERVER-HOSTED DEVICE DRIVER
Technical Field of the Invention
The present invention relates in general to communication between devices, and, in particular, to a system, method, and program for enabling communication between a client system and a device, by utilizing a device driver that is hosted by a server.
Background of the Invention is A device driver is needed for a data processing system, such as a desktop computer, a palmtop personal computer, a personal digital assistant (PDA), or a cellular or digital telephone to communicate with a peripheral device (e.g., a printer, a scanner, an external disk drive, a fax machine, etc.). The device driver is a software routine that translates control program or operating system requests of the data processing system into commands understood by the peripheral device.
Figure 1 shows a block diagram 100 of a networked environment according to the prior art. Block diagram 100 shows client systems 102 coupled to server 104, and server 104, in turn, coupled to device 106.
Device 106 may be a printer, scanner, external disk drive, fax machine, etc. Device driver is stored and executed in ser-ver 104 to translate communication between the operating system of server 104 and device 106.
Client systems 102 communicate with device 106 through execution by server 104 of the device driver for device 106. In some cases, the device driver is stored in the client and the server merely routes the job to the device.
However, if client system 102 is coupled directly to device 106 (for example, a local printer attached to the client via a parallel port connection), then a device driver for device 106 needs to reside in client system 102 in order for client system 102 to communicate with device 106.
one problem that may exist is that the device driver for device 106 may not reside within client system 102, and client system 102 is not able to communicate with device 106. Another problem may be that client system 102 is a thin client having a memory device with only a limited amount of memory space. Due to the limited memory space, the thin client may not be 2 able to store a large number of device drivers for various devices and may not be able to store the device driver for communicating with device 106.
For example, a thin client, such as a PDA, is a portable device carried by the user. The user carries the PDA to various remote locations such as an airport, hotel, restaurant, etc. The user may want to connect the PDA to a peripheral device, such as a printer, at a remote location to print data from the PDA. The problem is that the PDA may not have stored the appropriate device driver or printer driver for communicating with the device or printer at the location. The user is then unable to print data from the PDA-to the printer at the remote location.
DISCLOSURE OF THE INVENTION is Accordingly, a system, method, and program for enabling communication between a client and a device are disclosed. A server receives a request for enabling communication from a client to a device. In response to the server receiving the request, an appropriate device driver stored in the server is selected and executed to translate the communication between the client and the device. The translated communication that is comprehensible by the device is sent from the server to the device through the client.
In a preferred embodiment, the server accesses various device drivers for various devices. The device drivers are stored in a library in the server. The server determines and recognizes a client type for the client and a device type for the device. Based on the client type and the device type, the appropriate device driver is selected from the library and executed to translate the communication between the client and the device.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will now be described, by way of example only, with references to preferred embodiments thereof as illustrated in the following drawings:
Figure 1 is an exemplary block diagram illustrating a networked environment according to the prior art;
Figure 2 is an exemplary block diagram illustrating a configuration for a thin client, a device, and a server in accordance with the present invention; 3 Figure 3 is a block diagram of an exemplary embodiment of a server system that may be used by the present invention; Figure 4 is a flow chart of an exemplary method and program function executed by the thin client in accordance with the present invention; Figure 5 is a flow chart of an exemplary method and program function executed by the server for selecting and executing an appropriate device driver in accordance with the present invention; and Figure_ 6 is a flow chart of an exemplary method and program function for streaming a communication between the server and the device through the thin client.
is DETAILED DESCRIPTION OF THE INVENTION
The present invention enables communication between a client system and a peripheral device when the client system does not have the device driver for communicating with the peripheral device. Exemplary client systems include a desktop, laptop, or palmtop computer system and a thin client that has a memory device with a limited amount of memory space.
Exemplary thin clients include a cellular/digital telephone and a personal digital assistant (PDA), for example, a 3COM PalmPilot PDA. (3COM is a registered trademark of 3COM Corporation, PalmPilot is a trademark of 3COM Corporation.) Examples of peripheral devices include a printer, a scanner, an optical device, a fax machine, and an external disk drive. The specification refers to the terms "client system", "server". These terms are used for the purposes of illustration, convenience, and convention, but these terms are not to be construed as limiting the present invention or the client system to client operations or the server system to server operations in any way. For example, the present invention discloses that the "client system" acts as a server and that the "server" acts as a client system.
The client system is coupled to a server that has the appropriate device driver. The server selects and executes the appropriate device driver in the server to translate communication between the client system and the device. The translated communication is sent from the server to the device through the client system since the peripheral device is generally not in direct communication with the server (for example, the 4 peripheral device may be a localized, stand-alone device that is not networked to any other system or device). The present invention is not in any way limited to any specific client system, device, server, or device driver, and any suitable system, device, or device driver may be used in conjunction with the implementation of the present invention.
With reference now to Figure 2, an exemplary block diagram 200 illustrating a thin client system 204 coupled directly to a device 210 and in communication with a web server 10 is shown. Thin client system 204 has at least a processor 205, which is coupled to a memory device 206 and a communicat ion bus 207. A local communication connection 208 couples communication bus 207 to device 210. Device 210 is shown to be a localized, stand-alone device that is not coupled to any other system or device except thin client system 204. When thin client system 204 is is coupled to device 210, thin client system 204 executes a method to locate an appropriate device driver that is to be executed for communicating with device 210. This method is programmed as executable code stored in memory device 206 and is executed by processor 205 when thin client system 204 is connected to device 210. The method will be discussed in more detail, particularly with reference to Figure 4. If the appropriate device driver is stored in thin client system 204, then thin client system 204 executes the appropriate device driver to communicate with device 210.
However, the appropriate device driver may not be stored in thin client system 204 since memory device 206 is generally limited, and the limited memory space may not allow for storage of many device drivers. If the appropriate device driver is not stored in thin client system 204, then thin client system 204 establishes communication, for example, via wireless Internet connection 202, with a web server 10 that has the appropriate device driver. Web server 10 executes a method for locating, selecting, and executing the appropriate device driver. The translated communication is then sent from web server 10 to device 210 through thin client system 204. This method will be discussed in more detail, particularly with reference to Figure 5.
Figure 3 shows an exemplary block diagram of server 10 used for the present invention. As shown, a central processing unit (CPU) 12, read only memory (ROM) 13, and a Dynamic Random Access Memory (DRAM) 14 are connected to a system bus 11 of server 10. CPU 12, ROM 13, and DRAM 14 are also coupled to a PCI local bus 20 of server 10 through a PC1 host bridge 15.
PCI host bridge 15 provides a low latency path through which processor 12 may directly access PC1 devices mapped anywhere within bus memory and/or 1/0 address spaces. PCI host bridge 15 also provides a high ban dwidth path allowing PCI devices to directly access DRAM 14. In addition, an audio adapter 23 may be attached to PC! local bus 20 for controlling audio output through speaker 24. A graphics adapter 21 may optionally be attached to PCI local bus 20 for controlling visual output through display monitor 22.
Also attached to PCI local bus 20 is a local-area-network (LAN) interface adapter 16 that connects server system 10 to a local-area network (LAN) 17.
A PCI-to-ISA bus bridge, such as an expansion bus bridge 45, may be utilized for coupling an ISA bus 25 to PCI local bus 20. Although the illustrated exemplary embodiment describes a PCI local bus 20 and an ISA bus 25, the present invention is not limited to these particular bus architectures. Rather, the present invention can be utilized in any bus system having other different bus architectures. As shown, a keyboard 26, is a microphone 27, a mouse 28, and a hard disk drive 29 may be attached to ISA bus 25 for performing certain basic I/0 functions. Server 10 needs to be occasionally controlled by an administrator. Graphics adapter 21, keyboard 26, microphone 27, an mouse 28 are devices optionally coupled to server 10 depending on whether server 10 needs to be directly controlled by an administrator.
A web server application 33 and a library 30 of various device drivers 31A, 31B, 31C, and 31D for various devices, that is, including at least one device driver for device 210, are stored in hard disk drive 29.
Web server application 33 is executed to handle the communication between web server 10 and thin client system 204. The method of selecting and executing the appropriate device driver for device 210 and for sending the translated communication from web server 10 to device 210 through thin client system 204, as referred to earlier, forms a portion of web server application 33. The programmed code for this method is executed to access device drivers 31A, 31B, 31C, arid 31D in library 30 and to select and execute the appropriate device driver among device drivers 31A, 31B, 31C, and 31D for translating the data communicated between thin client system 204 and device 210. After the appropriate device driver is selected and executed, this method then sends the translated communication from web server 10 to device 210 through thin client system 204, that is, in this instance, thin client system 204 acts as a pass-through device. For example, if the appropriate device driver for translating communication between thin client system 204 and device 210 is device driver 31C, then the method accesses, selects, and executes device driver 31C among device drivers 31A, 31B, 31C, and 31D in library 30 to translate the 6 communication. The translated communicated data is then sent from web server 10 to device 210 through thin client system 204.
Referring to Figure 4, a flow chart of an exemplary method 400 executed by thin client system 204 for implementing the present invention.
Method 400 starts at block 402 and proceeds to block 404. Block 404 depicts thin client system 204 connecting to device 210, that is, via local communication connection 208 coupled to communication bus 207 of thin client system 204. After thin client system 204 connects to device 210 as shown in block 404, method 400 moves to block 405, which depicts thin client system 204 obtaining the device type and other device information relevant for determining an appropriate device driver for device 210.
Method 400 then moves to decision block 406. Block 406 illustrates a determination of whether the appropriate device driver for translating is communication between thin client system 204 and device 210 is stored in thin client system 204. If the appropriate device driver is stored in thin client system 204, then method 400 moves to block 408, which depicts thin client system 204 executing the appropriate device driver in thin client system 204 for translating communication between thin client system 204 and device 210. After execution of the appropriate device driver in thin client system 204, method 400 then ends at block 420.
on the other hand, if the appropriate device driver is not stored in thin client system 204, then method 400 moves from decision block 406 to block 410. Block 410 shows thin client system 204 connecting to web server 10, which stores the appropriate device driver. Thin client system 204 may be programmed to automatically connect to web server 10. Method 400 proceeds to block 412, which depicts thin client system 204 establishing communication with server 10 for locating, selecting, and executing an appropriate device driver to enable communication between thin client system 204 and device 210. Method 400 proceeds to block 416, which shows thin client system 204 sending the request for an appropriate device driver in which the request includes the client type and other client information and the device type and other device information to server 10. Server 10 receives and processes this information to locate, select, and execute the appropriate device driver among device drivers 31A, 31B, 31C, and 31D in library 30. Server 10 generally matches the client type and the device type with the appropriate device driver that translates communication between that client type and that device type. Method 400 then moves from block 416 to block 418. Block 418 shows that after the appropriate device driver is selected and executed by server 10, thin client system 204 acts 7 as a communication pass-through device between server 10 and device 210.
Thin client system 204 sends to server 10 at least all commands to be translated by the appropriate device driver stored in server 10.
Preferably, all data including all commands that are to be translated are sent to server 10. The translated data and commands are then passed from server 10 to device 210 through thin client system 204. Communication is also able to be made from device 210 to thin client system 204 to server 10 and then back to thin client system 204. Method 400 ends at block 420.
For example, thin client system 204 is may be a personal digital assistant (PDA) having a processor 205, a memory device 206 with a database, and a communication bus 207, and device 210 may be a printer.
The PDA is connected to the printer. The PDA obtains the printer type and other printer information, that is, printer model, printer identification, is printer features, etc. from the printer. In response to the user entering a "print" command, the PDA operating system determines whether the PDA has the printer driver for communicating with the printer. If the PDA stores the appropriate printer driver, then the PDA executes the printer driver to translate communication from the PDA into a format that is comprehensible by the printer. However, if the PDA does not store the requisite printer driver, the PDA establishes communication with a web server, for example, via an Internet connection that has the required printer driver. The PDA then sends a request to the web server to select and execute the appropriate printer driver for communicating between the PDA and the printer. The PDA sends the PDA type and other PDA information and the printer type and other printer information to the web server so that web server is able to select and execute the appropriate printer driver. After the appropriate device driver is selected and executed by the server, the PDA acts as a pass-through device between server 10 and the printer. The PDA sends to the server at least all print commands from the PDA to be translated by the appropriate printer driver stored in the server.
Preferably, all data including all print commands that are to be translated are sent to the server. The translated data and print commands are then passed from the server to the printer through the PDA.
With reference now to Figure 5, a flow chart of an exemplary method 500 for selecting and executing an appropriate device driver by server 10 for translating communication between thin client system 204 and device 210 is shown. Method 500 also sends the translated communication from server 10to device 210 through thin client system 204.
Method 500 starts at block 502 and proceeds to decision block 504, which depicts a determination of whether server 10 has received a request for an appropriate device driver from thin client system 204. If a request for an appropriate device driver has not been received by server 10, then method 500 iterates at block 504 until a request is received from thin client system 204. The request also includes the client type and other client information relating to thin client system 204 and device type and other device information relating to device 210, which are information needed by server 10 to determine the appropriate device driver. However, if a request for an appropriate device driver has been received by server 10, then method 500 moves from block 504 to block 512.
Block 512 depicts server 10 accessing library database 30 stored in hard disk drive 29, and, based on the client and device information, is selecting the appropriate device driver in library database 30 for communicating between thin client system 204 and device 210. Method 500 then moves to decision block 514, which illustrates a determination of whether the appropriate device driver for device 210 exists in library database 30. The determination is made based on the client and device information received from thin client system 204. An appropriate device driver is generally the device driver that translates communication between the client type of thin client system 204 and the device type of device 210. If the appropriate device driver does not exist in library database 30, then method 500 moves to block 516, which illustrates server 10 notifying thin client system 204 that server 10 does not have the appropriate device driver. Method 500 ends at block 524.
However, if the appropriate device driver does exist in library database 30, then method 500 moves from block 514 to block 518. Block 518 shows that, based on the client and device information, server 10 selects the appropriate device driver. Method 500 proceeds to block 520, which depicts server 10 selecting and executing the appropriate device driver to translate communication from thin client system 204 so that the communication is comprehensible by device 210. After translating the 35 communication, server 10 notifies thin client system 204 of the size of the translated communication. Method 500 moves to block 522, which shows that the translated communication is sent from server 10 to device 210 through thin client system 204. Thin client system 204 acts as a passthrough device. A pass-through device is a device through which communication is 40 being forwarded and data is being passed from one system to another system. Method 500 finally ends at block 524.
9 At block 522, the translated communication is sent from server 10 to device 210 through thin client system 204. Depending on the size of the translated communication, the sending of the translated communication may be accomplished by streaming the communication from server 10 to device 210 through thin client system 204. Streaming of the communication from server to device 210 may be used since the device format may typically be large in size (i.e., verbose) and the storage capacity of thin client 204 is generally small in size.
Figure 6 shows method 600 of streaming communication between server and device 210 through thin client 204. Streaming of the communication involves sending only a portion of the translated communication at a time, that is, a pre-determined number of bytes from server 10 to device 210 through thin client system 204 until the translated communication is is entirely sent to device 210. Method 600 starts at block 602 and moves to block 604. Block 604 shows thin client system 204 receives and stores a portion of the translated communication in memory device 206. Method 600 moves to decision block 606, which shows a determination made whether the portion of the translated communication is still being stored. If the portion is still being stored, method 600 returns to block 604 to continue receiving and storing the portion. If the portion is finished being stored in the client, method 600 moves to block 608, which shows that the connection between server 10 and thin client system 204 is disconnected.
Method 600 proceeds to block 610, which shows the portion of the translated communication stored in memory device 206 being sent from thin client system 204 to device 210. After that portion of the translated communication is sent from memory device 206 to device 210, method 600 moves to decision block 612, which depicts a determination made whether the translated communication has been entirely sent to device 210. If, at decision block 612, the translated communication has not yet been entirely sent to device 210, then method 600 moves to block 614, which shows the connection between thin client system 204 and server 10 being re-established to obtain a next portion of the translated communication, that is, a next pre-determined number of bytes of the translated communication to be sent from server 10 to device 210 through thin client system 204. Method 600 moves to block 616, which shows thin client system 204 receiving and storing a next portion of the translated communication in memory device 206. Method 600 returns to decision block 606, and the process is repeated from block 606 until the translated communication is entirely received by device 210. on the other hand, if, at decision block 612, the translated communication has been entirely sent to device 210, then method 600 ends at block 618.
While the invention has been particularly shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the scope of the invention. For example, although aspects of the present invention have been described with respect to a computer system executing software that directs the functions of the present invention, it should be understood that present invention may alternatively be implemented as a program product for use with a data processing system. Programs defining the functions of the present invention can be delivered to a data processing system via a variety of signal-bearing media, which include, without limitation, non-rewritable is storage media, for example, CD-ROM, rewritable storage media, for example, a floppy diskette or hard disk drive), and communication media, such as digital and analog networks. It should be understood, therefore, that such signal-bearing media, when carrying or encoding computer readable instructions that direct the functions of the present invention, represent alternative embodiments of the present invention.

Claims (30)

1. A method of communicating between a client and a device, said method comprising:
receiving, by a server, a request for enabling a communication from a client to a device; in response to the server receiving the request, selecting and executing in the server a device driver that translates the communication between the client and the device; and sending the translated communication that is comprehensible by the device from the server to the device through the client.
is
2. A method as claimed in Claim 1, wherein selecting a device driver further comprises:
selecting one of a plurality of device drivers based upon both a client type and a device type.
3. A method as claimed in Claims 1 and 2, further comprising:
translating the communication between an operating system for the client of the client type and the device type.
4. A method as claimed in any preceding claim, wherein the server is a web server that communicates with the client through an Internet connection.
5. A method as claimed in any preceding claim, wherein the device is a stand-alone device.
6. A method of communicating between a client and a device, said method comprising:
sending,.by a client to a server, a request for enabling a communication from a client to a device; 12 waiting, by the client, for the server to select and execute a device driver in the server that translates the communication between the client and the device; receiving, by the client, the translated communication that is comprehensible by the device from the server; and forwarding the translated communication from the client to the device.
7. A method as claimed in Claim 6, wherein sending, by a client to a server, a request further comprises:
obtaining, by the client from the device, a device type for the is device; and sending, by the client to the server, a client type for the client, the device type, and the request.
8. A method as claimed in Claim 6, further comprising:
receiving and storing a portion of the translated communication in a memory device of the client; disconnecting the interfaced communication between the client and the server after the portion of the translated communication is stored in the client; and sending the portion of the translated communication from the memory device of the client to the device.
9. A method as claimed in Claim 8, further comprising:
after the portion of the translated communication is sent from the memory device of the client to the device, determining whether the.
translated communication has been entirely sent to the device; and in response to the translated communication not having yet been entirely sent to the device, re-connecting the interfaced communication between the client and the server to obtain another portion of the communication to be sent from the server to the device through the client.
13
10. A method as claimed in any of claims 6 to 9, further comprising:
establishing a connection between the client and the server; and connecting the client to the device.
11. A method as claimed in Claim 10, wherein:
establishing a connection between the client and the server further comprises establishing a networked connection between the client and the server; and connecting the client to the device further comprises locally is connecting the client to the device.
12. A system for enabling a communication between a client and a device comprising:
a server having at least a processor and a memory system; wherein the server receives a request for enabling a communication from a client to a device; wherein in response to the server receiving the request, the server selects and executes a device driver stored in the memory system that translates the communication between the client and the device; and wherein the server sends the translated communication that is comprehensible by the device to the device through the client.
13. A system as claimed in Claim 12, wherein:
the memory system has a storage library for storing and accessing various device drivers for various devices; wherein the server determines and recognizes a client type for the client and a device type for the device; and wherein in response to recognizing the client type and the device type, the processor selects one of the device drivers in the memory system 14 that translates the communication between the client type and the device type.
14. A system as claimed in Claims 12 and 13, wherein the communication is translated between an operating system for the client of the client type and the device type.
is. A system as claimed in any of claims 12 to 14, wherein the server is a web server that communicates with the client through an Internet connection.
16. A system as claimed in any of claims 12 to 15, wherein the device is a stand-alone device.
is
17. A system communicating between a client and a device, said method comprising:
a client that sends to a server a request for enabling a communication from the client to a device; wherein the client waits for the server to select and execute a device driver in the server that translates the communication between the client and the device; wherein the client receives the translated communication that is comprehensible by the device from the server; and wherein the client forwards the translated communication to the device.
18. A system as claimed in Claim 17, wherein:
the client obtains from the device a device type for the device; and the client sends the server a client type for the client, the device type, and the request.
19. A system as claimed in Claim 17, wherein:
the client further comprises a memory device that receives and stores a portion of the translated communication; the interfaced communication is disconnected between the client and the server after the portion of the translated communication is stored in the client; and the portion of the translated communication is sent from the memory device of the client to the device.
20. A system as claimed in Claim 19, wherein:
the interfaced communication between the client and the server is re-connected.to obtain another portion of the communication to be sent from the server to the device through the client if the translated communication has not yet been entirely sent to the device.
is
21. A system as claimed in any of claims 17 to 20, wherein:
the client is connected in an interfaced communication with the server; and the client is connected in another interfaced communication with the device.
22. A system as claimed in Claim 21, wherein the interfaced communication is a networked connection and the another interfaced communication is a local connection.
23. A control program for communicating between a client and a device, comprising:
said control program receives from a server a request for enabling a communication from a client to a device; in response to the server receiving the request, said control program selects and executes in the server a device driver that translates the communication between the client and the device; and said control program sends the translated communication that is comprehensible by the device from the server to the device through the client.
16
24. A control program as claimed in Claim 23, wherein said control program selecting a device driver further comprises:
said control program selecting one of a plurality of device drivers based upon both a client type and a device type.
25. A control program as claimed in Claims 23 and 24, further comprising:
said control program translating the communication between an operating system for the client of the client type and the device type.
26. A control program for communicating between a client and a device, comprising:
is said control program executed by a client sends from the client to a server a request for enabling a communication from a client to a device; said control program executed by the client waits for the server to select and execute a device driver in the server that translates the communication between the client and the device; said control program receives for the client the translated communication that is comprehensible by the device from the server; and said control program forwards the translated communication from the client to the device.
27. A control program as claimed in Claim 26, wherein said control program sending from the client to a server a request further comprises:
said control program obtains for the client from the device a device type for the device; and said control program sends for the client to the server a client type for the client, the device type, and the request.
28. A control program as claimed in Claim 26, further comprising:
said control program receives and stores a portion of the translated communication in a memory device of the client; 17 said control program disconnects the interfaced communication between the client and the server after the portion of the translated communication is stored in the client; and said control program sends the portion of the translated communication from the memory device of the client to the device.
29. A control program as claimed in Claim 28, further comprising:
after the portion of the translated communication is sent from the memory device of the client to the device, said control program determines whether the translated communication has been entirely sent to the device; and is in response to the translated communication not having yet been entirely sent to the device, said control program re-connects the interfaced communication between the client and the server to obtain another portion of the communication to be sent from the server to the device through the client.
30. A control program as claimed in any of claims 26 to 29, further comprising:
said control program instructs a connection to be established between the client and the server; and said control program instructs the client to be connected to the device.
GB0105163A 2000-03-27 2001-03-02 System method and program for enabling communication between a client and a device with a remote server hosted device driver Withdrawn GB2365599A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US53460500A 2000-03-27 2000-03-27

Publications (2)

Publication Number Publication Date
GB0105163D0 GB0105163D0 (en) 2001-04-18
GB2365599A true GB2365599A (en) 2002-02-20

Family

ID=24130776

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0105163A Withdrawn GB2365599A (en) 2000-03-27 2001-03-02 System method and program for enabling communication between a client and a device with a remote server hosted device driver

Country Status (2)

Country Link
JP (1) JP2001331435A (en)
GB (1) GB2365599A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2400928A (en) * 2003-04-22 2004-10-27 Sharp Kk Distributed periperal device control system
EP1502232A1 (en) * 2002-04-19 2005-02-02 Toshiba Tec Kabushiki Kaisha Extensible driver
EP2075697A1 (en) * 2006-10-20 2009-07-01 NEC Corporation Portable terminal, server, and method for realizing function of portable terminal using network
EP2287718A3 (en) * 2009-08-12 2013-01-23 Ricoh Company, Ltd. Methods and systems for providing device specific print options to remote printing services
CN104145254A (en) * 2012-03-02 2014-11-12 日本电气株式会社 Information processing system, information processing method, mobile phone unit, server and control method and control program for system, phone unit, and server
US9571954B2 (en) 2012-03-24 2017-02-14 Nec Corporation Information processing system, information processing method, mobile phone, server, and control methods and control programs thereof

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020184307A1 (en) * 2001-05-30 2002-12-05 Pineau Richard A. Method and apparatus for printing remote images using a mobile device and printer
GB0900082D0 (en) * 2009-01-06 2009-02-11 Fulvens Ltd Method and apparatus for secure energy delivery

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0738949A1 (en) * 1995-04-19 1996-10-23 Fuji Xerox Co., Ltd. Reconstruction of print job in print system
GB2332764A (en) * 1997-11-19 1999-06-30 Ibm Providing local printing on a thin client

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0738949A1 (en) * 1995-04-19 1996-10-23 Fuji Xerox Co., Ltd. Reconstruction of print job in print system
GB2332764A (en) * 1997-11-19 1999-06-30 Ibm Providing local printing on a thin client

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP2000284928A *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1502232A1 (en) * 2002-04-19 2005-02-02 Toshiba Tec Kabushiki Kaisha Extensible driver
EP1502232A4 (en) * 2002-04-19 2007-09-05 Toshiba Tec Kk Extensible driver
US7688461B2 (en) 2003-04-22 2010-03-30 Sharp Kabushiki Kaisha Distributed peripheral device control system and method
EP1471418A3 (en) * 2003-04-22 2006-12-13 Sharp Kabushiki Kaisha Distributed peripheral device control system and method
GB2400928A (en) * 2003-04-22 2004-10-27 Sharp Kk Distributed periperal device control system
EP2075697A4 (en) * 2006-10-20 2014-07-02 Nec Corp Portable terminal, server, and method for realizing function of portable terminal using network
CN101529384B (en) * 2006-10-20 2013-07-10 日本电气株式会社 Portable terminal, server, and method for realizing function of portable terminal using network
EP2075697A1 (en) * 2006-10-20 2009-07-01 NEC Corporation Portable terminal, server, and method for realizing function of portable terminal using network
EP2287718A3 (en) * 2009-08-12 2013-01-23 Ricoh Company, Ltd. Methods and systems for providing device specific print options to remote printing services
US8605311B2 (en) 2009-08-12 2013-12-10 Ricoh Company, Ltd. Methods and systems for providing device specific print options to remote printing services
CN104145254A (en) * 2012-03-02 2014-11-12 日本电气株式会社 Information processing system, information processing method, mobile phone unit, server and control method and control program for system, phone unit, and server
EP2821922A4 (en) * 2012-03-02 2015-11-04 Nec Corp Information processing system, information processing method, mobile phone unit, server and control method and control program for system, phone unit, and server
US9326115B2 (en) 2012-03-02 2016-04-26 Nec Corporation Information processing system, information processing method, mobile phone, server, and control method and control program thereof
US9571954B2 (en) 2012-03-24 2017-02-14 Nec Corporation Information processing system, information processing method, mobile phone, server, and control methods and control programs thereof

Also Published As

Publication number Publication date
JP2001331435A (en) 2001-11-30
GB0105163D0 (en) 2001-04-18

Similar Documents

Publication Publication Date Title
US11290401B2 (en) Coordination of data received from one or more sources over one or more channels into a single context
TWI261997B (en) Method for estimating the location of a network client, network client device, and machine-readable medium thereof
US6473783B2 (en) Method and apparatus for sharing peripheral devices over a network
US7673112B2 (en) Volume management system and method
US20040054652A1 (en) Data filtering for adapting data delivery to diverse client devices
US20040015966A1 (en) Virtual machine operating system LAN
JPH08263417A (en) Method for accessing to independent resource of computer network and network subsystem
US20070050506A1 (en) High performance storage access environment
KR102032583B1 (en) Access to supplemental data based on identifier derived from corresponding primary application data
US7185341B2 (en) System and method for sharing PCI bus devices
KR100834361B1 (en) Effiviently supporting multiple native network protocol implementations in a single system
US7827141B2 (en) Dynamically sizing buffers to optimal size in network layers when supporting data transfers related to database applications
GB2365599A (en) System method and program for enabling communication between a client and a device with a remote server hosted device driver
JP2002007182A (en) Shared file control system for external storage device
US20040139144A1 (en) Using web services to access computational grids by non-members of the grid
JP2000076152A (en) Distributed file system, file sharing method in the system and storage medium for programming and recording the method
US7216151B2 (en) Computer apparatus and program for controlling same
JP2002135254A (en) Communication processor and its program-recording medium
JP2002328932A (en) Method and system for supporting work of responding to inquiries from users
JP2004362287A (en) Update method of data
JP4492569B2 (en) File operation control device, file operation control system, file operation control method, and file operation control program
JP4625271B2 (en) Cache device for network boot
JP2000057155A (en) Information retrieving device
JP2004302743A (en) Program for recognizing identifier correspondence, information processor, and input/output device sharing system
JP2003330801A (en) Network system, device information register system and service use rights information

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)