IP Library Granted Patent US 10,353,718
Granted Patent B2
US 10,353,718 · App. 13/556,013 · Granted Jul 16, 2019

Providing access to a remote application via a web client

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 10,353,718
App. No.
13/556,013
Granted
Jul 16, 2019
Kind
B2
Abstract

Techniques for remote application access are described. Some embodiments provide access to an application executing on a host system via a Web browser of a client device. A user operating the Web browser may request access to the application via a uniform resource identifier. A service executing on the host system receives the request and facilitates access to the application. Facilitating access may include transmitting to the Web browser image data corresponding to a window or graphical user interface generated by the application and stored on the host system. Client logic executing within the Web browser receives the image data and displays a local copy of the application window on the client device. The client logic also forwards user input events made with respect to the to the local window to the remote presentation service, which in turn forwards the events to the window/application on the host system.

Claims (30)

1. A method in a host computing system for providing access via a remote Web client to applications on the host computing system, the Web client executing on a client device having a display device, the method comprising:

providing a uniform resource identifier that identifies an application executing on the host computing system, the host computing system including a display buffer for storing an output graphical user interface generated by the application;

receiving a request to access the application, the request received from the remote Web client and including the uniform resource identifier; and

in response to receiving the request to access the application, executing the application on the host computing system, storing an output graphical user interface (GUI) generated upon execution of the application in the display buffer, and transmitting the output GUI stored in the display buffer to the remote Web client;

receiving from the remote Web client inputs made with respect to the GUI transmitted to the remote Web client; and

in response to receiving the inputs, delivering the inputs to the application, updating the output GUI stored in the display buffer as a state of the application changes in response to the inputs, and transmitting to the remote Web client update data that reflects changes in the output GUI stored in the display buffer.

2. The method of claim 1 , wherein the receiving from the remote Web client inputs includes: receiving an indication of a mouse event and a corresponding location from the remote Web client.

3. The method of claim 2 , further comprising: translating the location of the mouse event into a coordinate system of the host computing system.

4. The method of claim 1 , further comprising: tracking information about multiple applications executing on the host computing system, the tracked information including application identifiers, application window positions, application window sizes, and/or application events.

5. The method of claim 1 , wherein receiving a request to access the application includes receiving a hypertext transfer protocol (HTTP) request that identifies the application along with one or more arguments.

6. A system for providing access via a Web client to remote applications, the system comprising:

a host computing system including a processor, a memory, a display buffer, an application, a first window stored in the display buffer, and a remote presentation service module stored in the memory and configured, when executed by the processor, to:

receive a request to access the application, the request received from a remote Web client executing on a client computing device having a display device, the request including a uniform resource identifier that identifies the application; and

in response to receiving the request to access the application, executing the application on the host computing system, storing an output graphical user interface (GUI) generated upon execution of the application in the display buffer, and transmitting the output GUI stored in the display buffer to the remote Web client;

and

receiving from the remote Web client inputs made with respect to the GUI transmitted to the remote Web client; and

in response to receiving the inputs, delivering the inputs to the application, updating the output GUI stored in the display buffer as a state of the application changes in response to the inputs, and transmitting to the remote Web client update data that reflects changes in the output GUI stored in the display buffer.

7. The system of claim 6 , wherein receiving a request to access the application includes receiving a hypertext transfer protocol (HTTP) request that identifies the application along with one or more arguments.

8. The system of claim 6 , wherein receiving from the remote Web client inputs includes receiving an indication of a mouse event and a corresponding location from the remote Web client.

9. The system of claim 8 , further comprising translating the location of the mouse event into a coordinate system of the host computing system.

10. The system of claim 6 , further comprising tracking information about multiple applications executing on the host computing system, the tracked information including application identifiers, application window positions, application window sizes, and/or application events.

11. A non-transitory computer-readable medium including contents that are configured, when executed, to cause a host computing system to perform a method for providing access via a remote Web client to applications on the host computing system, the Web client executing on a client device having a display device, the method comprising:

receiving a request to access an application executing on the host computing system, the application having a first window for display on a local display device of the host computing system, the request received from the remote Web client and including a uniform resource identifier that identifies the host computing system and the application; and

in response to receiving the request to access the application, executing the application on the host computing system, storing an output graphical user interface (GUI) generated upon execution of the application in the display buffer, and transmitting the output GUI stored in the display buffer to the remote Web client;

receiving from the remote Web client inputs made with respect to the GUI transmitted to the remote Web client; and

in response to receiving the inputs, delivering the inputs to the application, updating the output GUI stored in the display buffer as a state of the application changes in response to the inputs, and transmitting to the remote Web client update data that reflects changes in the output GUI stored in the display buffer.

12. The computer readable medium of claim 11 , wherein receiving a request to access the application includes receiving a hypertext transfer protocol (HTTP) request that identifies the application along with one or more arguments.

13. The computer readable medium of claim 11 , wherein receiving from the remote Web client inputs includes receiving an indication of a mouse event and a corresponding location from the remote Web client.

14. The computer readable medium of claim 13 , further comprising translating the location of the mouse event into a coordinate system of the host computing system.

15. The computer readable medium of claim 11 , further comprising tracking information about multiple applications executing on the host computing system, the tracked information including application identifiers, application window positions, application window sizes, and/or application events.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2012
From: KIMPTON, ANDREW; CLARK, JONATHAN; JOOSTE, SAREL KOBUS
To: VMWARE, INC.
Reel/Frame 028616/0930 →