IP Library Granted Patent US 9,245,047
Granted Patent B2
US 9,245,047 · App. 12/965,821 · Granted Jan 26, 2016

Methods and systems for facilitating a remote desktop session utilizing a remote desktop client common interface

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 9,245,047
App. No.
12/965,821
Granted
Jan 26, 2016
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 (89)

1. A method for facilitating a remote desktop session between a web browser at a client device and a remote desktop server at a remote machine through a transcoding server, utilizing an adapter at the transcoding server, the method comprising:

receiving, at the adapter, an input request from the web browser utilizing hypertext transfer protocol (HTTP);

translating, at the adapter, the input request into an input command compatible with a remote desktop display protocol to be utilized by a remote desktop client at the transcoding server for facilitating communication with the remote desktop server at the remote machine, wherein the remote desktop display protocol is a push protocol;

providing the input command to a remote desktop client at the transcoding server, to provide the input command to the remote desktop server utilizing the remote desktop display protocol;

receiving, at the adapter, a remote desktop drawing command from the remote desktop server in response to the input command, wherein the remote desktop drawing command is based on an image of a remote desktop of the remote machine;

translating, at the adapter, the remote desktop drawing command into a graphics drawing command compatible with the transcoding server to allow the transcoding server to provide a web browser drawing update to the web browser, wherein the web browser drawing update is compatible with the web browser, the web browser drawing update comprising an HTTP header including coordinates for the web browser drawing update;

receiving, via an HTTP handler of the transcoding server, a connection request from the web browser; and

establishing, controlling or terminating the remote desktop session between the remote desktop client and the remote desktop server in response to the connection request, wherein the establishing, controlling or terminating comprises:

generating a session control command based on the connection request, wherein the session control command is compatible with the remote desktop display protocol; and

transmitting the session control command to the remote desktop server via the remote desktop client using the remote desktop display protocol.

2. The method of claim 1 , wherein the graphics drawing command is a Java graphics drawing command, wherein the transcoding server is a Java transcoding server, wherein the web browser is HTML5 compatible.

3. The method of claim 1 , wherein the receiving the input request comprises receiving the input request from the web browser via an HTTP handler of a web application container at the transcoding server,

wherein the receiving the remote desktop drawing command comprises receiving the remote desktop drawing command via the remote desktop client using the remote desktop display protocol.

4. The method of claim 1 , wherein the remote desktop drawing command comprises remote desktop drawing command parameters and bitmap data received from the remote desktop server,

wherein the translating the remote desktop drawing command 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.

5. The method of claim 1 , further comprising:

generating an image based on the graphics drawing command; and

generating the coordinates of the web browser drawing update for the image based on the graphics drawing command,

wherein the image represents a portion of an entire image of the remote desktop.

6. The method of claim 1 , further comprising:

executing the graphics drawing command to generate and draw an image into a drawing commands queue at the transcoding server that is accessible by a web application container at the transcoding server for communicating with the web browser;

generating the coordinates of the web browser drawing update for the image based on the graphics drawing command;

storing the coordinates in the drawing commands queue; and

after generating the coordinates, transmitting a notification to the web application container that a drawing command is ready to be served to the web browser,

wherein the graphics drawing command represents a portion of an entire image of the remote desktop.

7. The method of claim 1 , wherein the session control command comprises at least one of: a command for starting the remote desktop session, a command for stopping the remote desktop session, a credential, a setting, a preference, and a command for passing at least one of a credential, a setting, and a preference.

8. The method of claim 1 , further comprising:

extracting coordinates from the graphics drawing command; and

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 from the graphics drawing command, wherein the off-screen bitmap represents an entire image of the remote desktop.

9. A non-transitory, machine-readable storage medium encoded with instructions executable by a processing system to perform a method for facilitating a remote desktop session between a web browser at a client device and a remote desktop server at a remote machine through a transcoding server, utilizing an adapter at the transcoding server, the instructions comprising code for:

receiving, at the adapter, an input request from the web browser utilizing hypertext transfer protocol (HTTP);

translating, at the adapter, the input request into an input command compatible with a remote desktop display protocol to be utilized by a remote desktop client at the transcoding server for facilitating communication with the remote desktop server at the remote machine, wherein the remote desktop display protocol is a push protocol;

providing the input command to a remote desktop client at the transcoding server, to provide the input command to the remote desktop server utilizing the remote desktop display protocol;

receiving, at the adapter, a remote desktop drawing command from the remote desktop server in response to the input command, wherein the remote desktop drawing command is based on an image of a remote desktop of the remote machine;

translating, at the adapter, the remote desktop drawing command into a graphics drawing command compatible with the transcoding server to allow the transcoding server to provide a web browser drawing update to the web browser, wherein the web browser drawing update is compatible with the web browser, the web browser drawing update comprising an HTTP header including coordinates for the web browser drawing update;

receiving, via an HTTP handler of the transcoding server, a connection request from the web browser to connect to the remote machine; and

establishing, controlling or terminating the remote desktop session between the remote desktop client and the remote desktop server in response to the connection request, wherein the establishing, controlling or terminating comprises:

generating a session control command based on the connection request, wherein the session control command is compatible with the remote desktop display protocol; and

transmitting the session control command to the remote desktop server via the remote desktop client using the remote desktop display protocol.

10. The machine-readable storage medium of claim 9 , wherein the graphics drawing command is a Java graphics drawing command, wherein the transcoding server is a Java transcoding server, wherein the web browser is HTML5 compatible.

11. The machine-readable storage medium of claim 9 , wherein the receiving the input request comprises receiving the input request from the web browser via an HTTP handler of a web application container at the transcoding server, wherein the receiving the remote desktop drawing command comprises receiving the remote desktop drawing command via the remote desktop client using the remote desktop display protocol.

12. The machine-readable storage medium of claim 9 , wherein the remote desktop drawing command comprises remote desktop drawing command parameters and bitmap data received from the remote desktop server,

wherein the translating the remote desktop drawing command 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.

13. The machine-readable storage medium of claim 9 , wherein the instructions further comprise code for:

generating an image based on the graphics drawing command; and

generating the coordinates of the web browser drawing update for the image based on the graphics drawing command,

wherein the image represents a portion of an entire image of the remote desktop.

14. The machine-readable storage medium of claim 9 , wherein the instructions further comprise code for:

executing the graphics drawing command to generate and draw an image into a drawing commands queue at the transcoding server that is accessible by a web application container at the transcoding server for communicating with the web browser;

generating the coordinates of the web browser drawing update for the image based on the graphics drawing command;

storing the coordinates in the drawing commands queue; and

after generating the coordinates, transmitting a notification to the web application

container that a drawing command is ready to be served to the web browser,

wherein the graphics drawing command represents a portion of an entire image of the remote desktop.

15. The machine-readable storage medium of claim 9 , wherein the session control command comprises at least one of: a command for starting the remote desktop session, a command for stopping the remote desktop session, a credential, a setting, a preference, and a command for passing at least one of a credential, a setting, and a preference.

16. The machine-readable storage medium of claim 9 , wherein the instructions further comprise code for:

extracting coordinates from the graphics drawing command; and

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 from the graphics drawing command, wherein the off-screen bitmap represents an entire image of the remote desktop.

17. A computing machine comprising the machine-readable storage medium of claim 9 , wherein the computing machine is the transcoding server.

18. An apparatus for facilitating a remote desktop session between a web browser at a client device and a remote desktop server at a remote machine through a transcoding server, utilizing an adapter at the transcoding server, the apparatus comprising:

a processing system coupled with a memory;

means for receiving an input request from the web browser utilizing hypertext transfer protocol (HTTP);

means for translating the input request into an input command compatible with a remote desktop display protocol to be utilized by a remote desktop client at the transcoding server for facilitating communication with the remote desktop server at the remote machine, wherein the remote desktop display protocol is a push protocol;

means for providing the input command to a remote desktop client at the transcoding server, to provide the input command to the remote desktop server utilizing the remote desktop display protocol;

means for receiving a remote desktop drawing command from the remote desktop server in response to the input command, wherein the remote desktop drawing command is based on an image of a remote desktop of the remote machine;

means for translating the remote desktop drawing command into a graphics drawing command compatible with the transcoding server to allow the transcoding server to provide a web browser drawing update to the web browser, wherein the web browser drawing update is compatible with the web browser, the web browser drawing update comprising an HTTP header including coordinates for the web browser drawing update;

means for receiving, via an HTTP handler of the transcoding server, a connection request from the web browser to connect to the remote machine; and

means for establishing, controlling or terminating the remote desktop session between the remote desktop client and the remote desktop server in response to the connection request, wherein the means for establishing, controlling or terminating comprises:

means for generating a session control command based on the connection request, wherein the session control command is compatible with the remote desktop display protocol; and

means for transmitting the session control command to the remote desktop server via the remote desktop client using the remote desktop display protocol.

19. The apparatus of claim 18 , wherein the graphics drawing command is a Java graphics drawing command, wherein the transcoding server is a Java transcoding server, wherein the web browser is HTML5 compatible.

20. The apparatus of claim 18 , wherein the means for receiving the input request comprises means for receiving the input request from the web browser via an HTTP handler of a web application container at the transcoding server,

wherein the means for receiving the remote desktop drawing command comprises means for receiving the remote desktop drawing command via the remote desktop client using the remote desktop display protocol.

21. The apparatus of claim 18 , wherein the remote desktop drawing command comprises remote desktop drawing command parameters and bitmap data received from the remote desktop server,

wherein the means for translating the remote desktop drawing command 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.

22. The apparatus of claim 18 , further comprising:

means for generating an image based on the graphics drawing command; and

means for generating the coordinates of the web browser drawing update for the image based on the graphics drawing command,

wherein the image represents a portion of an entire image of the remote desktop.

23. The apparatus of claim 18 , further comprising:

means for executing the graphics drawing command to generate and draw an image into a drawing commands queue at the transcoding server that is accessible by a web application container at the transcoding server for communicating with the web browser;

means for generating the coordinates of the web browser drawing update for the image based on the graphics drawing command;

means for storing the coordinates in the drawing commands queue; and

means for transmitting, after generating the coordinates, a notification to the web application container that a drawing command is ready to be served to the web browser,

wherein the graphics drawing command represents a portion of an entire image of the remote desktop.

24. The apparatus of claim 18 , wherein the session control command comprises at least one of: a command for starting the remote desktop session, a command for stopping the remote desktop session, a credential, a setting, a preference, and a command for passing at least one of a credential, a setting, and a preference.

25. The apparatus of claim 18 , further comprising: means for extracting coordinates from the graphics drawing command; and

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 from the graphics drawing command, wherein the off-screen bitmap represents an entire image of the remote desktop.

26. The apparatus of claim 18 , wherein the apparatus comprises the transcoding server.

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 →