IP Library Granted Patent US 8,949,463
Granted Patent B2
US 8,949,463 · App. 12/965,824 · Granted Feb 3, 2015

Methods and systems for a remote desktop session utilizing a HTTP handler and 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 8,949,463
App. No.
12/965,824
Granted
Feb 3, 2015
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 (55)

1. A non-transitory machine-readable storage medium comprising code for facilitating accessing and controlling a remote desktop of a remote machine, the machine-readable storage medium comprising:

a hypertext transfer protocol (HTTP) handler of a transcoding server; and

a remote desktop client adapter of the transcoding server,

wherein the HTTP handler is configured to:

receive a connection request and a user input request from a web browser utilizing HTTP,

provide the connection request and the user input request to the remote desktop client adapter, and

provide a web browser drawing update to the web browser in response to a drawing request from the web browser, wherein the web browser drawing update is compatible with the web browser,

wherein the remote desktop client adapter is configured to:

receive the connection request and the user input request,

translate the connection request into a session control command compatible with a remote desktop display protocol,

translate the user input request into a remote desktop input command compatible with the remote desktop display protocol,

provide the session control command to a remote desktop client for providing the session control command to a remote desktop server of the remote machine and for establishing, controlling or terminating a remote desktop session with the remote desktop server,

provide the remote desktop input command to the remote desktop client for providing the remote desktop input command to the remote desktop server,

receive a remote desktop drawing command from the remote desktop server via the remote desktop client in response to the remote desktop input command, wherein the remote desktop drawing command is compatible with the remote desktop display protocol and represents a portion of the entire remote desktop,

translate the remote desktop drawing command into a graphics drawing command compatible with the transcoding server, and

update a portion of an image representing the entire remote desktop and coordinates based on the graphics drawing command, and

wherein the HTTP handler is configured to:

generate an image file based on the updated portion of the image,

obtain drawing coordinates based on the coordinates in response to the drawing request, wherein the web browser drawing update comprises the image file and the drawing coordinates, and

provide the web browser drawing update to the web browser in real time including placing the drawing coordinates into a cookie to be provided to the web browser.

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

3. The non-transitory machine-readable storage medium of claim 1 , wherein the session control command relates to establishing or controlling a connection between the remote desktop client and the remote desktop server and 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.

4. The non-transitory machine-readable storage medium of claim 1 , wherein the graphics drawing command is a Java graphics drawing command, wherein the transcoding server is a Java transcoding server.

5. The non-transitory machine-readable storage medium of claim 1 , wherein the remote desktop client adapter is configured to place the image and the coordinates into a drawing commands queue,

wherein the machine-readable storage medium further comprises a long polling handler,

wherein the long polling handler is configured to receive the drawing request from the web browser utilizing HTTP, to forward the drawing request to the HTTP handler if coordinates for an image are pending in the drawing commands queue, to place the drawing request into a drawing requests queue if coordinates for an image are not pending in the drawing commands, and

wherein the drawing commands queue is configured to send a notification to the drawing requests queue if the drawing commands queue receives a new drawing command comprising an image and coordinates for an image.

6. The non-transitory machine-readable storage medium of claim 1 , further comprising a drawing requests queue configured to forward the drawing request to the HTTP handler in response to a notification from a drawing commands queue that a drawing command is pending for the web browser.

7. The non-transitory machine-readable storage medium of claim 1 , wherein the HTTP handler is configured to place the drawing coordinates into a section of an HTTP header, wherein the HTTP handler is configured to facilitate providing the image file and the drawing coordinates together to the web browser in a single HTTP transmission response for drawing a display image at the web browser, wherein the display image represents the updated portion of the image representing the entire remote desktop.

8. The non-transitory machine-readable storage medium of claim 1 , wherein the HTTP handler is configured to provide script client code compatible with the web browser to the web browser if the connection request from the web browser comprises a request to connect to the remote machine.

9. A method for facilitating accessing and controlling a remote desktop of a remote machine, the method comprising:

receiving, at a transcoding server, a connection request from a web browser utilizing hypertext transfer protocol (HTTP),

translating, at the transcoding server, the connection request into a session control command compatible with a remote desktop display protocol;

providing the session control command to a remote desktop client of the transcoding server for providing the session control command to a remote desktop server of the remote machine and for establishing, controlling or terminating a remote desktop session with the remote desktop server;

receiving, at the transcoding server, a user input request from the web browser utilizing HTTP,

translating, at the transcoding server, the user input request into a remote desktop input command compatible with the remote desktop display protocol;

providing the remote desktop input command to the remote desktop client for providing the remote desktop input command to the remote desktop server;

receiving, at the transcoding server, a remote desktop drawing command from the remote desktop server via the remote desktop client in response to the remote desktop input command, wherein the remote desktop drawing command is compatible with the remote desktop display protocol, and wherein the remote desktop drawing command represents a portion of an entire image of the remote desktop;

translating, at the transcoding server, the remote desktop drawing command into a graphics drawing command compatible with the transcoding server;

updating, at the transcoding server, a portion of an image and coordinates based on the graphics drawing command;

generating, at the transcoding server, an image file based on the updated portion of the image;

obtaining drawing coordinates based on the coordinates; and

providing a web browser drawing update to the web browser in real time in response to a drawing request from the web browser including placing the drawing coordinates into a cookie to be provided to the web browser, wherein the web browser drawing update comprises the image file and the drawing coordinates, and wherein the web browser drawing update is compatible with the web browser.

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

11. The method 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.

12. The method of claim 9 , wherein the graphics drawing command is a Java graphics drawing command, wherein the transcoding server is a Java transcoding server.

13. The method of claim 9 , wherein the updating a portion of an image and coordinates comprises storing the portion of the image and the coordinates into a drawing commands queue,

wherein the method further comprises:

receiving the drawing request from the web browser utilizing HTTP;

forwarding the drawing request to an HTTP handler if coordinates for an image are pending in the drawing commands queue;

placing the drawing request into a drawing requests queue if coordinates for an image are not pending in the drawing commands, and

sending a notification to the drawing requests queue if the drawing commands queue receives a new drawing command comprising an image and coordinates for an image.

14. The method of claim 9 , further comprising forwarding the drawing request to an HTTP handler in response to a notification from a drawing commands queue that a drawing command is pending for the web browser.

15. The method of claim 9 , further comprising placing the drawing coordinates into a section of an HTTP header, wherein the providing the web browser drawing update comprises providing the image file and the drawing coordinates together to the web browser in a single HTTP transmission response for drawing a display image at the web browser, wherein the display image represents the updated portion of the image representing the entire remote desktop.

16. The method of claim 9 , further comprising providing script client code compatible with the web browser, to the web browser, if the connection request from the web browser comprises a request to connect to the remote machine.

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 →