# Patent

## Title
Methods and apparatuses for simultaneous access by multiple remote devices

## Abstract

The present invention aims to provide a system that allows multiple users operating a PDA (Personal Digital Assistant) to access the Internet or the World Wide Web (WWW), and to be able to view and interact with these images remotely on a display screen. It is a further aim to provide a RDP (Remote Data Protocol) client and sever system to facilitate multiple PDA users simultaneously on a single server. The host computer contains an RDP server which has multiple virtual machines contained within, with each virtual machine containing a web browser. Multiple RDP clients interact with the virtual machines with a dedicated virtual machine for each client on the server. Each client is represented by software, which sends the display of the virtual machine to a single remote PDA device via a dedicated modem port. This modem port allows two way communication between a single PDA and a dedicated virtual machine on the server, via a single RDP client. By implementing multiple virtual machines and multiple RDP clients with multiple modem ports, it is now possible to communicate with multiple users of PDA devices on the RDP. The RDP client relays information received via a modem port from the PDA, such as mouse clicks or keyboard commands, to the application program in the virtual machine, which is then processed and a refreshed display sent back to the PDA via the same dedicated RDP client and modem port.

## Background
BACKGROUND OF THE INVENTION
1. Field of the Invention
The invention relates to a host computer system or server, which has a web browser running on it, and the display of the web browser is transmitted via modem and received by a cellular phone connected to a PDA device which displays the image. In particular, the Remote Data Protocol of the invention consists of multiple virtual machines which are contained in the server, and each contains a browser which has applications running in them. Multiple clients are an represented by software, which sends the display of each virtual machine to the remote PDA device to be displayed, and also relays information back to the virtual machine from the PDA device.
A particular advantage of this method lies in replacing a conventional terminal on a network system with software, which communicates with the PDA device and the server.
2. Description of the Prior Art
Microsoft Remote Data Protocol uses a main server in which a virtual machine runs multiple applications. Each virtual machine is connected to a dedicated terminal or client, which displays the image of the virtual machine. The advantage of this is to avoid a dedicated computer with application programs for each client, where multiple clients may access applications on a server. All data processing is done in the sever and displayed on terminals, which is a cheaper solution for multiple clients using this Remote Data Protocol. The terminals allow keyboard and mouse commands to be transferred to the server on a network system.
SUMMARY OF THE INVENTION
The present invention relates to multiple portable high speed Internet access PDA (Personal Digital Assistant) devices that can access the Internet and World Wide Web as wireless devices, using a RDP (Remote Data Protocol) client and sever system to facilitate multiple PDA users simultaneously on a single server.
A principal embodiment has a Web server connected to the Internet. This server contains a virtual browser that takes the image displayed in the browser and converts this image into a bit map which is compressed, and communicates via telephone lines to a cellular telephone. The cellular telephone is connected to a high speed internet access device commonly referred to as a PDA (Personal Digital Assistant) which is comprised of a display screen, battery and related micro-electronics. This enables the PDA to receive, decompress and view the bit map image sent from the virtual browser, and more importantly, through cellular phone connectivity to be able to input data or commands from the PDA directly is onto the server. The host computer or server receives vector information or compressed data in the form of HTML, JPEG, etc., which is displayed on a web page. The virtual browser virtually displays a virtual image on the server. That image, in whole or in parts, is recompressed and sent to the PDA. In particular, the host computer contains an RDP server which has multiple virtual machines contained within, with each virtual machine containing a web browser. Multiple RDP clients interact with the virtual machines with a dedicated virtual machine for each client on the server. Each client is represented by software, which sends the display of the virtual machine to a single remote PDA device via a dedicated modem port. This modem port allows two way communication between a single PDA and a dedicated virtual machine on the server, via a single RDP client. By implementing multiple virtual machines and multiple RDP clients with multiple modem ports, it is now possible to communicate with multiple users of PDA devices on the RDP server to facilitate Internet browsing, electronic message communication, etc. The RDP client relays information received via a modem port from the PDA, such as mouse clicks or keyboard commands, to the application program in the virtual machine, which is then processed and a refreshed display sent back to the PDA via the same dedicated RDP client and modem port. The browser on a virtual machine relays display information to the dedicated RDP client such as bitmap files, vector files, commands, buffer information, etc. The RDP client then rasterizes some of the information by drawing it into memory and then proceeds to break up this file into smaller blocks of information. These blocks are compressed and sent to the PDA device through a dedicated modem port connected to each RDP client. The PDA would then receive, decompress and assemble the blocks of information in the original order as first received by the RDP client before the RDP client breaks up into smaller blocks. The browser running in each virtual machine rasterizes most of the information which is sent to the RDP client such as text, etc., but the RDP client may have to rasterize other information such as blocks, etc.
The PDA sends specific data to the virtual machine informing of the current location of the displayable area of the PDA screen with respect to the larger image sent from the browser. This is necessary, as the area displayed by the PDA is smaller than the displayable image on the browser window. The RDP client would send compressed blocks of data representing the image to be displayed in order of priority, such that the first blocks sent to and decompressed by the PDA are in the displayable area of the PDA, which is the current area where the user is viewing. The PDA would then decompress blocks surrounding the displayed area in a particular sequence, such as left to right across rows, and store the image in internal memory. The PDA assembles blocks of the image in a virtual page, which comprises the entire image, thus enabling the user to access any part of the present image without communicating constantly with the RDP client. Hence, as the user scrolls across the image in any direction, the blocks of data comprising the image would already be decompressed and assembled priority-wise for instant viewing. Blocks of the image in closer proximity to the displayed area of the PDA screen get decompressed and stored into internal memory on higher priority than blocks further away. The PDA continuously sends its current location to the virtual machine on the server to keep getting refreshed data instantaneously as the location changes by the user scrolling or sending commands. This enables a rapid refresh rate of the displayed image especially when scrolling, as areas surrounding the displayed image would be decompressed and already stored in memory.
A mouse click or any keyboard command is given priority in communication between the PDA and the RDP server. Such actions from the PDA are sent instantaneously, interrupting the current activities and this action directed to the web browser on the dedicated virtual machine, which sends a refreshed image back to the PDA device. This feature allows the user to have rapid response to commands. If the user initiates a mouse click or keyboard command on the PDA that does not change the displayed image on the RDP server, then the original activities are continued almost instantly with minimum interruption. However, if the image is changed and refreshed on the RDP server, any old image being sent is stopped and the new image is sent immediately to the PDA if it is a full screen image occupying all or part of the PDA display screen. If the refreshed image sent occupies a part of the PDA display screen and also areas outside the display screen, then the portion of the refreshed image that is displayed on the PDA display screen is sent first to the PDA, and blocks of the image are sent to the PDA which are decompressed and stored in internal memory, in order of priority closest to the displayed image, as previously described. Hence the PDA would assemble blocks of the image in the virtual page, which comprises the entire image, starting first with the current location of the PDA display screen then areas around it.
A beacon is sent form the PDA device to the RDP client and vice-versa many times per minute to confirm that a connection is established and maintained, for the duration of use. In the instance a user is disconnected, either the PDA or the RDP client will not receive a beacon and a time-out will be initiated, whereby both the PDA and RDP client disconnect and then reconnect.
The user would still be able to view the present image and scroll around it as this image would already be decompressed in order of priority and stored in internal memory. The PDA would indicate in a message area that a reconnect sequence was initiated, and the status of this connection to the same RDP client as before, which would refresh the PDA with the image if it has changed once reconnection is established. Similarly, the PDA would continue downloading blocks of information after being reconnected if a disconnection interrupted this operation. A beacon is not necessarily sent from the RDP client at times when it is sending information to the PDA. As long as the PDA is receiving information such as a refreshed image, or a beacon, it knows a connection is established. Consequently, when there is no new activity in the virtual machine, the RDP client must send a beacon to the PDA to confirm the connection is established. The PDA device must always send beacons to the RDP client, as commands are not sent frequently from the PDA and only for a short duration when sent.
An error protocol is implemented to verify that all information blocks are received and can be decompressed successfully. As previously described, the image displayed in the virtual browser in the virtual machine on the RDP server is broken down into smaller blocks of information and compressed and transmitted to the PDA device. The blocks are then assembled in correct sequence, decompressed and stored in internal memory on the PDA. Each block of information received is acknowledged by the PDA, which sends a signal confirming that each block is successfully received. Hence, the RDP client can monitor the successful decompression of all blocks of information sent to the PDA, and would know when a block is not acknowledged. The RDP client would also inform the PDA of the number of transmitted blocks of information, with each block identified numerically. The PDA also initiates another error protocol when a block of information received can not be successfully decompressed and stored in memory. In this case, the PDA would send an error message to the RDP client informing which block of information needs to be sent again, and the RDP client would send this block after it has completed sending the current block of information. The RDP client would monitor the acknowledgement of all blocks of information successfully decompressed, including blocks sent again after receiving error messages from the PDA device.



BRIEF DESCRIPTION OF THE DRAWINGS
The invention is described in more detail below with respect to an illustrative embodiment shown in the accompanying drawings in which:
FIG. 1 illustrates Prior Art whereby a PDA device is connected to a cellular phone, which communicates wirelessly to a Host Computer.
FIG. 2 illustrates a system in prior applications of the inventor.
FIG. 3 illustrates the displayable area of the PDA device with respect to portions of the image, which are sequentially decompressed prior to viewing.
FIG. 4 illustrates the Remote Data Protocol of the present invention.
FIG. 5 illustrates a block diagram of the virtual page with respect to the viewing area of the PDA.
FIG. 6 illustrates the error protocol as blocks of information are sent from the RDP client to the PDA device.
FIG. 7 illustrates communication methods between remote devices and host computers.
FIG. 8 illustrates a wireless communication method between the PDA and the Host Computer in accordance with another embodiment of the invention.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
To facilitate description, any numeral identifying an element in one figure will represent the same element in any other figure.
The principal embodiment of the present invention aims to provide a system that allows multiple users operating PDA (Personal Digital Assistant) devices similar to a palm top computer to access the Internet or the World Wide Web (WWW), as demonstrated in FIG. 4. It is a further aim of the present invention, to provide a RDP (Remote Data Protocol) client and sever system to facilitate multiple PDA users simultaneously on a single server.
Prior art is disclosed in FIG. 1 where Microsoft Remote Data Protocol is demonstrated, using a main RDP server 1 in which virtual machines 2 exist capable of running multiple application programs 3. Each virtual machine 2 is connected to a dedicated terminal 5 or client on a network system 4, which displays the image of the virtual machine. The terminals 5 on the network allow input of keyboard 6 and mouse 7 commands to the RDP server 1, with all data processing done on the server and displayed on the terminals. In this method of prior art, the RDP clients are the terminals on the network. In the present invention however, the RDP clients are represented by software which interact between the virtual machines on the RDP server and the PDA devices which display the image of the RDP clients, in a completely different fashion.
A general description of the embodiments of prior applications of the inventor is disclosed in FIG. 2 with further reference to patent applications Ser. Nos. 09/496,172, 09/501,585, 09/504, 809, 09/504,808, and 09/504,807. A host computer 8 is depicted which is connected to the Internet, and that host may also be a Web server. Running in the host computer, is a Web server program 9. When a remote user 10 requests to view a Web page (or electronic message etc.) the Web server software receives HTML, JAVA, or other types of information and transmits this information to another software, the Browser Translator 11. This software translates the information, (i.e. the entire image comprising graphics and text) received in the form of HTML, Java, etc. (as information may be gathered from different sources) and translates it to a black and white bit map or raster image. In another embodiment, the software translates the information into a raster or color image. The image contains the information that would normally be displayed on a single Web page. The translation program therefore, also acts as a virtual browser. The cellular telephone 12 of FIG. 2 is connected to the high speed internet access device 13 of the invention commonly referred to as a PDA (Personal Digital Assistant) which is comprised of a display screen 14, battery and related micro-electronics. This enables the PDA to receive, decompress and view the bit map image sent from the virtual browser, and more importantly, through cellular phone connectivity to be able to input data from the PDA directly onto the server 8. In particular, the host computer or server of FIG. 2 and FIG. 4 receives vector information or compressed data in the form of HTML, JPEG, etc., which is displayed on a web page. The virtual browser virtually displays a virtual image on the server by rasterizing the image, or decompressing parts of the image and putting it into memory. That image, in whole or parts, is recompressed and sent to the PDA. The recompressed data format sent to the PDA, is not necessarily in the same format as the compressed data format first received by the server. For example, the incoming data from a Web page may be in the form of JPEG which is decompressed and displayed on the virtual browser. This data is recompressed and sent to the PDA but can be in the form of TIFF G4 or other formats, and not necessarily JPEG as initially received.
Another embodiment of the invention involves the server receiving vector information such as HTML or text and then rasterizing it to bit map format. It can then be shown in memory through the virtual browser and is recompressed through a “loss less” method and sent to the PDA.
The information is received by the device 13 in FIG. 2, which has the ability to display a monochrome or color image 15, in its display window 14. The information is decompressed and displayed in the order of priority such that part of the image 17 of FIG. 3, which substantially or completely covers the displayable area 14 of the device, is decompressed and displayed first and then sequentially the portions 18, 19 and 20 of the image are decompressed, and stored in an internal memory of the device to be displayed later when the user scrolls up, down, or sideways to these parts of the image.
A principle embodiment of the present invention of FIG. 4 contains the host computer 21 which contains an RDP server 22 which is a software unit having multiple virtual machines 23 contained within, with each virtual machine containing a web browser 24. Multiple RDP clients 25 interact with the virtual machines with a dedicated virtual machine for each RDP client. Each RDP client 25 is represented by software, which sends the display of each virtual machine 23 to a single remote PDA device 26 via a dedicated modem port 27. Each modem port 27 allows a two-way communication between a single PDA 26, connected to a cellular phone 64, and a dedicated virtual machine 23 on the RDP server, via a single dedicated RDP client 25. By implementing multiple virtual machines and multiple RDP clients with multiple modem ports, it is now possible to communicate with multiple users of PDA devices on the RDP server to facilitate Internet browsing, electronic message communication, etc. The RDP client 25 relays information received from the PDA 26, such as mouse clicks or keyboard commands, via a modem port 27 to the Browser 24 in the virtual machine 23, which is then processed and a refreshed display sent back to the PDA via the same dedicated RDP client and modem port. The browser on each virtual machine relays display information to the dedicated RDP client such as bitmap files, vector files, commands, buffer information, etc. The RDP client then rasterizes some of the information by drawing it into memory and then proceeds to break up this file into smaller blocks of information. These blocks are compressed and sent to the PDA device through a dedicated modem port connected to each RDP client, as further illustrated in FIG. 5. The PDA would then receive, decompress and assemble the blocks of information in the original order as first received by the RDP client before the RDP client breaks up into smaller blocks. The browser running in each virtual machine rasterizes most of the information which is sent to the RDP client such as text, etc., but the RDP client may have to rasterize other information such as blocks, etc.
The PDA 26 of FIG. 4 sends specific data to the virtual machine 23 informing of the current location of the displayable area 14 of the PDA screen with respect to the larger image or virtual page 28 sent from the browser to the RDP client then to the PDA, as illustrated in FIG. 5. This is necessary, as the area displayed 14 by the PDA is smaller than the displayable image on the RDP client, referred to as the virtual page 28. The dedicated RDP client would send compressed blocks of data representing the image to be displayed in order of priority, such that the first blocks sent to and decompressed by the PDA are in the displayable area 14 of the PDA, which is the current area where the user is viewing. The PDA would then decompress blocks surrounding the displayed area 14 in a particular sequence, such as left to right across rows, and store the image in internal memory. The PDA assembles blocks of the image in a virtual page 28 stored in the PDA's internal memory, which comprises the entire image, thus enabling the user to access any part of the present image without communicating constantly with the RDP client. Hence, as the user scrolls across the image in any direction, the blocks of data comprising the image would already be decompressed and assembled priority-wise for instant viewing. Blocks of the image in closer proximity to the displayed area of the PDA screen get decompressed and stored into internal memory on higher priority than blocks further away. To explain in detail by referring further to FIG. 5, the image displayed on the PDA screen 14 can be comprised of blocks 48, 49, 50, 53, 54 & 55, which are sent from the RDP client first to the PDA, decompressed and then stored into memory first on the PDA. Then blocks 42, 43, 44, 45, 47, 52, 57, 58, 59 & 60 would be sent immediately after in that order from the RDP client to the PDA, to be decompressed and stored in the PDA's internal memory. This enables a rapid refresh rate of the displayed image especially when scrolling, as areas surrounding the displayed image would be decompressed and already stored in memory. The PDA continuously sends its current location to the RDP client to keep getting refreshed data instantaneously, should the location change by the user scrolling around or outside the virtual page 28, to enable the RDP client to always have the viewing area and surrounding blocks sent to the PDA.
A mouse click or any keyboard command on the PDA is given priority in communication between the PDA and the RDP server. Such actions from the PDA are sent instantaneously, interrupting the current activities and this action directed to the web browser on the dedicated virtual machine, which sends a refreshed image back to the PDA device through the RDP client. This feature allows the user to have rapid response to commands. If the user initiates a mouse click or keyboard command on the PDA that does not change the displayed image on the RDP server, then the original activities are continued almost instantly with minimum interruption. However, if the image is changed and refreshed on the RDP server, any old image being sent is stopped and the new image is sent immediately to the PDA if it is a full screen image occupying all or part of the PDA display screen. If the refreshed image sent occupies a part of the PDA display screen and also areas outside the display screen, then the portion of the refreshed image that is displayed on the PDA display screen is sent first to the PDA, and blocks of the image surrounding the PDA displayed image are sent next to the PDA which are decompressed and stored in internal memory, as previously described. Hence the PDA would assemble blocks of the image in the virtual page, which comprises the entire image, starting first with the current location of the PDA display screen then areas around it.
A beacon is sent from the PDA device to the RDP client and vice-versa many times per minute to confirm that a connection is established and maintained, for the duration of use. In the instance a user is disconnected, either the PDA or the RDP client will not receive a beacon and a time-out will be initiated, whereby both the PDA and RDP client disconnect and then reconnect. The user would still be able to view the present image and scroll around it as this image would already be decompressed in order of priority and stored in internal memory. The PDA would indicate in a message area that a reconnect sequence was initiated, and the status of this connection to the same RDP client as before, which would refresh the PDA with the image if it has changed once reconnection is established. Similarly, the PDA would continue downloading blocks of information after being reconnected if a disconnection interrupted this operation. A beacon is not necessarily sent from the RDP client at times when it is sending information to the PDA. As long as the PDA is receiving information such as a refreshed image, or a beacon, it knows a connection is established. Consequently, when there is no new activity in the virtual machine, the RDP client must send a beacon to the PDA to confirm the connection is established. The PDA device must always send beacons to the RDP client, as commands are not sent frequently from the PDA and only for a short duration when sent.
An error protocol is implemented to verify that all information blocks are received and can be decompressed successfully. As previously described, the image displayed in the virtual browser in the virtual machine on the RDP server is broken down into smaller blocks of information and compressed and transmitted to the PDA device. The blocks are then assembled in correct sequence, decompressed and stored in internal memory on the PDA. Each block of information received is acknowledged by the PDA, which sends a signal confirming that each block is successfully received. Hence, the RDP client can monitor the successful decompression of all blocks of information sent to the PDA, and would know when a block is not acknowledged. The RDP client would also inform the PDA of the number of transmitted blocks of information, with each block identified numerically. The PDA also initiates another error protocol when a block of information received can not be successfully decompressed and stored in memory. In this case, the PDA would send an error message to the RDP client informing which block of information needs to be sent again, and the RDP client would send this block after it has completed sending the current block of information. The RDP client would monitor the acknowledgement of all blocks of information successfully decompressed, including blocks sent again after receiving error messages from the PDA device. To illustrate this further, reference is made to FIG. 6 which shows a string of data blocks 61 to be sent from the RDP client to the PDA device. As the PDA receives the data blocks acknowledgements or error messages 62 are sent back to the RDP client. Since the RDP client responds to all data from the PDA, the string of data blocks actually sent from the RDP client to the PDA is represented by 63. To further explain the events of the RDP client 63, blocks 31, 32, 33 & 34 are sent in this order from the RDP client to the PDA, with successful acknowledgements ack31 & ack32 sent from the PDA to the RDP client, but whilst block 34 is being sent, an error message in block 33 is relayed from the PDA, resulting in the RDP client sending this block 33 again as soon as block 34 is sent. The RDP client resumes sending blocks 35, 36 and 37, but notices no acknowledgement for block 35 after receiving successful acknowledgements ack34 & ack36 sent from the PDA, which results in the RDP client sending block 35 after block 37 is sent. The RDP client may also respond faster or slower to acknowledgements or error messages as described above.
The current embodiment as illustrated in FIG. 7 teaches of a standard serial connection 66 between the PDA device 13 and a cellular phone 12, with an AT command set for communicating between modems. This allows the cellular phone 12 to act as a modem in communicating with another modem 65 attached to the host computer 8. Web pages 67 received from the Internet are converted to G4 files 68 then sent via modem to the PDA device.
For a different type of cellular phone that does not allow AT command set communication but provides a TCPIP Internet connection, another embodiment of the invention is disclosed, as illustrated in FIG. 8. The PDA device would contain a browser to be able to view images sent by the host computer, which may be connected to the Internet. In this case, the PDA device 13 would contain a mini-browser, which understands and is capable of translating compressed G4 images. The PDA is connected to a cellular phone 12, which is connected to an Internet Service Provider (providing standard Internet services) instead of a modem at the Host Computer. The Host Computer is connected to the Internet and translates all web pages 67 to G4 compressed files 69. These G4 compressed files 69 are sent to the PDA in Internet protocol via the Internet Service Provider, and the mini-browser in the PDA is capable of translating the received images, and displaying on the PDA screen. Hence, the Host Computer has Internet images coming in and also Internet images being sent out. The Internet Service Provider (ISP) that the PDA connects to would always log on to one web page, and when the user at the PDA wants to go to a link or to a different web page, the click or the information is sent through the ISP to the host computer which will load the new page. This allows multiple users to dial up the Internet Service Provider to be able to view web pages from the Internet as desired, in this manner.

## Claims

1. A host computer which contains multiple virtual machines in software, each of the virtual machines containing a web browser, each of the virtual machines communicating with a dedicated client, the dedicated client being in software running on the host computer, the dedicated client converting information received from a corresponding one of the virtual machines into a display image, which is compressed and sent to a port for transmission to a remote portable display device.

2. A host computer as claimed in claim 1, wherein the display area of the portable display device is smaller than the image; according to a location of an area of the image to be displayed on the portable display device, the dedicated client sends the area of the image first and then automatically sends areas surrounding the area of the image.

3. A host computer as claimed in claim 1, wherein during the transmission of the image to the portable display device, a mouse click or keyboard command from the portable display device is relayed immediately to the dedicated client through the port; the dedicated client communicates with the web browser to send a new image to the portable display device if required, otherwise original activities are resumed.

4. A host computer as claimed in claim 1, wherein the port comprises a modem port for communication over a telephone connection; beacons are relayed between the portable display device and the client to confirm a telephone connection is established; a beacon not received is interpreted as a disconnection which initiates a reconnection sequence between the dedicated client and portable display device.

5. A host computer claimed in claim 1, wherein the dedicated client breaks the image into blocks for transmission in files; an error protocol verifies the files for the image sent from the dedicated client to the portable display device are successfully received, decompressed and acknowledged by the portable display device.

6. A host computer as claimed in claim 1, wherein the image is sent over the Internet to be viewed by the portable display device comprising a display screen.

7. A method to provide simultaneous remote access, the method comprising:
running multiple virtual machines on a computer system, each of the virtual machines executing an application program; and 
running multiple clients on the computer system, each of the clients: 
communicating with one of the virtual machines to generate a display image of the corresponding one of the virtual machines, the display image showing the application program; and 
transmitting the display image in a compressed format to a remote device for display.

8. The method of claim 7, wherein the clients communicate with the virtual machines using a remote data protocol.

9. The method of claim 7, wherein a display area of the remote device is smaller than the display image; the method further comprises:
breaking the display image into blocks; 
receiving an indication of an area of the display image to be displayed on the remote device; and 
transmitting one or more blocks to be displayed in the display area of the remote device before automatically transmitting blocks surrounding the one or more blocks.

10. The method of claim 9, wherein during said transmitting the method further comprises:
receiving a user input from the remote device to operate the application program; 
if no new display image is generated from the user input, resuming said transmitting; and 
if a new display image is generated from the user input, transmitting the new display image in a compressed format to the remote device for display.

11. The method of claim 9, further comprising:
determining if a connection between the remote device and one of the clients is disconnected; and 
in response to a determination that the connection is disconnected, reconnecting the remote device and the corresponding one of the clients.

12. The method of claim 9, further comprising:
detecting an error in transmitting a block of the display image; and 
retransmitting the block of the display image without retransmitting the entire display image.

13. A machine readable medium containing executable computer program instructions which when executed by a data processing system cause said system to perform a method to provide simultaneous remote access, the method comprising:
executing multiple virtual machines on a computer system, each of the virtual machines executing an application program; and 
executing multiple clients on the computer system, each of the clients: 
communicating with one of the virtual machines to generate a display image of the corresponding one of the virtual machines, the display image showing the application program; and 
transmitting the display image in a compressed format to a remote device for display.

14. The medium of claim 13, wherein the clients communicate with the virtual machines using a remote data protocol.

15. The medium of claim 13, wherein a display area of the remote device is smaller than the display image; the method further comprises:
breaking the display image into blocks; 
receiving an indication of an area of the display image to be displayed on the remote device; and 
transmitting one or more blocks to be displayed in the display area of the remote device before automatically transmitting blocks surrounding the one or more blocks.

16. The medium of claim 15, wherein during said transmitting the method further comprises:
receiving a user input from the remote device to operate the application program; 
if no new display image is generated from the user input, resuming said transmitting; and 
if a new display image is generated from the user input, transmitting the new display image is compressed format to the remote device for display.

17. The medium of claim 15, wherein the method further comprises:
determining if a connection between the remote device and one of the clients is disconnected; and 
in response to a determination that the connection is disconnected, reconnecting the remote device and the corresponding one of the clients.

18. The medium of claim 15, wherein the method further comprises:
detecting an error in transmitting a block of the display image; and 
retransmitting the block of the display image without retransmitting the entire display image.