IP Library Granted Patent US 8,589,800
Granted Patent B2
US 8,589,800 · App. 12/965,814 · Granted Nov 19, 2013

Methods and systems for accessing and controlling a remote desktop of a remote machine in real time by a web browser at a client device via HTTP API utilizing a transcoding server

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,589,800
App. No.
12/965,814
Granted
Nov 19, 2013
Kind
B2
Abstract

Examples of methods, systems, apparatus, and machine-readable storage media are provided to facilitate access and control of a remote desktop of a remote machine by a web browser at a client device through a transcoding server without installing proprietary plug-ins or protocols on the client device. A transcoding server may translate user input requests from a web browser into input calls compatible with a remote desktop display protocol. The transcoding server may receive remote desktop drawing commands from the remote machine and translate the remote desktop drawing commands into web browser drawing updates compatible with the web browser. A transcoding server may communicate with a web browser via HTTP and communicate with a remote machine via a remote desktop display protocol. A web browser may be an HTML5 browser. A transcoding server may send drawing coordinates to the web browser via an HTTP header and may use long polling.

Claims (54)

1. A method of facilitating accessing and controlling a remote desktop of a remote machine in real time by a web browser at a client device via a hypertext transfer protocol (HTTP) utilizing a transcoding server, the method comprising: receiving, at the transcoding server, a remote desktop drawing command based on an image of the remote desktop of the remote machine, wherein the remote desktop drawing command is compatible with a remote desktop display protocol utilized by the remote machine;

translating, at the transcoding server, the remote desktop drawing command into a web browser drawing update that is compatible with the web browser, wherein translating the remote desktop drawing command into the web browser drawing update comprises: translating the remote desktop drawing command into a Java graphics drawing command; updating a portion of a Java bitmap using the Java graphics drawing command, wherein the updated portion of the Java bitmap represents a portion of an entire image of the remote desktop;

creating an image file from the Java bitmap; generating drawing coordinates for the image file; and generating the web browser drawing update including the image file and the drawing coordinates for the image file; and

facilitating providing the web browser drawing update from the transcoding server to the web browser of the client device utilizing an HTTP handler during a remote desktop session between the client device and the remote machine, wherein the facilitating providing comprises placing the drawing coordinates into a cookie to be provided to the web browser;

wherein the transcoding server is a Java transcoding server that is configured to provide an application framework for hosting one or more web applications; wherein the remote desktop display protocol is a push protocol; and

wherein HTTP is a pull protocol.

2. The method of claim 1 , wherein the web browser drawing update comprises an image file and drawing coordinates for the image file that are recognizable and processable by the web browser.

3. The method of claim 1 , wherein the translating comprises: translating the remote desktop drawing command into a graphics drawing command that is compatible with the transcoding server, wherein the graphics drawing command includes coordinates; extracting the coordinates from the graphics drawing command; updating at least a portion of an off-screen bitmap based on the graphics drawing command, wherein the at least a portion of the off-screen bitmap is associated with the coordinates, wherein the off-screen bitmap is based on the image of the remote desktop; creating an image file based on the at least a portion of the off-screen bitmap; and wherein the web browser drawing update comprises the image file and the coordinates.

4. The method of claim 1 , wherein the web browser is an HTML5 compatible web browser.

5. The method of claim 1 , further comprising: receiving a user input request from the web browser, using HTTP; translating the user input request into an input command compatible with the remote desktop display protocol; and providing the input command to the remote desktop client for accessing and controlling the remote desktop of the remote machine during the remote desktop session, wherein the web browser drawing update comprises an image file and drawing coordinates for the image file that are recognizable and processable by the web browser, wherein the image file and the drawing coordinates represent a portion of an entire image of the remote desktop that has been changed in response to the input command.

6. The method of claim 5 , wherein the user input request comprises at least one of a mouse event, a keyboard event, and a touch event.

7. The method of claim 1 , wherein the remote desktop drawing command comprises remote desktop drawing command parameters and bitmap data received from a remote desktop server of the remote machine, wherein the translating comprises one or more of: calculating new drawing command parameters based on the remote desktop drawing command parameters; adjusting the remote desktop drawing command parameters; and making adjustments to the bitmap data.

8. The method of claim 1 , wherein the remote desktop drawing command comprises remote desktop drawing command parameters and bitmap data received from a remote desktop server of the remote machine, wherein the translating comprises making adjustments to the bitmap data, wherein the making adjustments comprises converting a 16-bit red-green-blue (RGB) 5-6-5 color format into a 32-bit alpha-red-green-blue (ARGB) 8-8-8-8 format.

9. The method of claim 1 , wherein the transcoding server is an intermediary between the remote machine and the client device, and wherein the transcoding server is physically separate from the remote machine.

10. A non-transitory machine-readable storage medium encoded with instructions executable by a processing system to perform a method of facilitating accessing and controlling a remote desktop of a remote machine in real time by a web browser at a client device via a hypertext transfer protocol (HTTP) utilizing a transcoding server, the instructions comprising code for:

receiving, at the transcoding server, a remote desktop drawing command based on an image of the remote desktop of the remote machine, wherein the remote desktop drawing command is compatible with a remote desktop display protocol utilized by the remote machine;

translating, at the transcoding server, the remote desktop drawing command into a web browser drawing update that is compatible with the web browser wherein translating the remote desktop drawing command into the web browser drawing update comprises:

translating the remote desktop drawing command into a Java graphics drawing command;

updating a portion of a Java bitmap using the Java graphics drawing command, wherein the updated portion of the Java bitmap represents a portion of an entire image of the remote desktop;

creating an image file from the Java bitmap; generating drawing coordinates for the image file; and

generating the web browser drawing update including the image file and

generating the drawing coordinates for the image file; and

facilitating providing the web browser drawing update from the transcoding server to the web browser of the client device utilizing an HTTP handler during a remote desktop session between the client device and the remote machine, wherein the facilitating providing comprises placing the drawing coordinates into a cookie to be provided to the web browser;

wherein the transcoding server is a Java transcoding server that is configured to provide an application framework for hosting one or more web applications;

wherein the remote desktop display protocol is a push protocol; and wherein HTTP is a pull protocol.

11. The non-transitory machine-readable storage medium of claim 10 , wherein the web browser drawing update comprises an image file and drawing coordinates for the image file that are recognizable and processable by the web browser.

12. The non-transitory machine-readable storage medium of claim 10 , wherein the translating comprises: translating the remote desktop drawing command into a graphics drawing command that is compatible with the transcoding server, wherein the graphics drawing command includes coordinates; extracting the coordinates from the graphics drawing command; updating at least a portion of an off-screen bitmap based on the graphics drawing command, wherein the at least a portion of the off-screen bitmap is associated with the coordinates, wherein the off-screen bitmap is based on the image of the remote desktop; creating an image file based on the at least a portion of the off-screen bitmap; and wherein the web browser drawing update comprises the image file and the coordinates.

13. The non-transitory machine-readable storage medium of claim 10 , wherein the web browser is an HTML5 compatible web browser.

14. The non-transitory machine-readable storage medium of claim 10 , wherein the instructions further comprise code for: receiving a user input request from the web browser, using HTTP; translating the user input request into an input command compatible with the remote desktop display protocol; and providing the input command to the remote desktop client for accessing and controlling the remote desktop of the remote machine during the remote desktop session; wherein the web browser drawing update comprises an image file and drawing coordinates for the image file that are recognizable and processable by the web browser; and wherein the image file and the drawing coordinates represent a portion of an entire image of the remote desktop that has been changed in response to the input command.

15. The non-transitory machine-readable storage medium of claim 14 , wherein the user input request comprises at least one of a mouse event, a keyboard event, and a touch event.

16. The non-transitory machine-readable storage medium of claim 10 , wherein the remote desktop drawing command comprises remote desktop drawing command parameters and bitmap data received from a remote desktop server of the remote machine, wherein the translating comprises one or more of: calculating new drawing command parameters based on the remote desktop drawing command parameters; adjusting the remote desktop drawing command parameters; and making adjustments to the bitmap data.

17. The non-transitory machine-readable storage medium of claim 10 , wherein the remote desktop drawing command comprises remote desktop drawing command parameters and bitmap data received from a remote desktop server of the remote machine, wherein the translating comprises making adjustments to the bitmap data, wherein the making adjustments comprises converting a 16-bit red-green-blue (RGB) 5-6-5 color format into a 32-bit alpha-red-green-blue (ARGB) 8-8-8-8 format.

18. The non-transitory machine-readable storage medium of claim 10 , wherein the transcoding server is an intermediary between the remote machine and the client device, and wherein the transcoding server is physically separate from the remote machine.

19. An apparatus for facilitating accessing and controlling a remote desktop of a remote machine in real time by a web browser at a client device via a hypertext transfer protocol (HTTP) utilizing a transcoding server, the apparatus comprising:

means for receiving a remote desktop drawing command based on an image of the remote desktop of the remote machine, wherein the remote desktop drawing command is compatible with a remote desktop display protocol utilized by the remote machine;

means for translating the remote desktop drawing command into a web browser drawing update that is compatible with the web browser wherein the means for translating the remote desktop drawing command into a web browser drawing update comprises:

means for translating the remote desktop drawing command into a Java graphics drawing command;

means for updating a portion of a Java bitmap using the Java graphics drawing command wherein the updated portion of the Java bitmap represents a portion of an entire image of the remote desktop;

means for creating an image file from the Java bitmap; and

means for generating drawing coordinates for the image file;

means for generating the web browser drawing update including the image file and the drawing coordinates for the image file; and

means for facilitating providing the web browser drawing update from the transcoding server to the web browser of the client device utilizing an HTTP handler during a remote desktop session between the client device and the remote machine wherein the means for facilitating providing comprises means for placing the drawing coordinates into a cookie to be provided to the web browser;

wherein the transcoding server is a Java transcoding server that is configured to provide an application framework for hosting one or more web applications;

wherein the remote desktop display protocol is a push protocol; and wherein HTTP is a pull protocol.

20. The apparatus of claim 19 , wherein the web browser drawing update comprises an image file and drawing coordinates for the image file that are recognizable and processable by the web browser.

21. The apparatus of claim 19 , wherein the means for translating comprises: means for translating the remote desktop drawing command into a graphics drawing command that is compatible with the transcoding server, wherein the graphics drawing command includes coordinates; means for extracting the coordinates from the graphics drawing command; means for updating at least a portion of an off-screen bitmap based on the graphics drawing command, wherein the at least a portion of the off-screen bitmap is associated with the coordinates, wherein the off-screen bitmap is based on the image of the entire remote desktop; and means for creating an image file based on the at least a portion of the off-screen bitmap; wherein the web browser drawing update comprises the image file and the coordinates.

22. The apparatus of claim 19 , wherein the web browser is an HTML5 compatible web browser.

23. The apparatus of claim 19 , further comprising: means for receiving a user input request from the web browser, using HTTP; means for translating the user input request into an input command compatible with the remote desktop display protocol; and means for providing the input command to the remote desktop client for accessing and controlling the remote desktop of the remote machine during the remote desktop session; wherein the web browser drawing update comprises an image file and drawing coordinates for the image file that are recognizable and processable by the web browser; and wherein the image file and the drawing coordinates represent a portion of an entire image of the of the remote desktop that has been changed in response to the input command.

24. The apparatus of claim 23 , wherein the user input request comprises at least one of a mouse event, a keyboard event, and a touch event.

25. The apparatus of claim 19 , wherein the remote desktop drawing command comprises remote desktop drawing command parameters and bitmap data received from a remote desktop server of the remote machine, wherein the means for translating comprises one or more of: means for calculating new drawing command parameters based on the remote desktop drawing command parameters; means for adjusting the remote desktop drawing command parameters; and means for making adjustments to the bitmap data.

26. The apparatus of claim 19 , wherein the remote desktop drawing command comprises remote desktop drawing command parameters and bitmap data received from a remote desktop server, wherein the means for translating comprises means for making adjustments to the bitmap data of the remote machine, wherein the means for making adjustments comprises means for converting a 16-bit red-green-blue (RGB) 5-6-5 color format into a 32-bit alpha-red-green-blue (ARGB) 8-8-8-8 format.

27. The apparatus of claim 19 , wherein the transcoding server is an intermediary between the remote machine and the client device, and wherein the transcoding server is physically separate from the remote machine.

28. The apparatus of claim 19 , wherein the apparatus comprises the transcoding server.

29. The apparatus of claim 19 , wherein the apparatus comprises a processing system and a memory.

Assignments (16)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
MERGER Recorded May 13, 2022
From: WYSE TECHNOLOGY L.L.C.
To: DELL MARKETING CORPORATION
Reel/Frame 060064/0586 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0618 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040040/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLANT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0216 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jan 2, 2014
From: APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 031897/0348 →
PATENT SECURITY AGREEMENT (ABL) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 031898/0001 →
PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031899/0261 →
CHANGE OF NAME Recorded Nov 15, 2013
From: WYSE TECHNOLOGY INC.
To: WYSE TECHNOLOGY L.L.C.
Reel/Frame 031645/0051 →