IP Library Granted Patent US 10,409,577
Granted Patent B2
US 10,409,577 · App. 15/615,968 · Granted Sep 10, 2019

Hybrid application delivery that combines download and remote access

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,409,577
App. No.
15/615,968
Granted
Sep 10, 2019
Kind
B2
Abstract

Hybrid application delivery is described which utilizes both remote access and downloading of content over the network. When a user requests an application that is not locally available, a remoting session is first established to allow the user to begin using the application. While the user is accessing the remote session, a process is initiated to download the content of the application to the end user's device. This process may execute in the background while the user continues to use the application over the remote session. Once the process of downloading the content of the application is complete and the application is installed, a local session of the application is started and the user may switch to the local session. The system also synchronizes changes to user data made on the server during the remoting session with the end user's computing device.

Claims (61)

1. A method for enabling application delivery to a computing device, the method comprising:

receiving a request for an application that is not locally available on the computing device;

establishing a remoting session for the computing device to access the application executing on a virtual machine hosted on a server over a network connection, wherein the remoting session includes transmitting framebuffer pixel data from the virtual machine to the computing device over the network connection and transmitting user input events from the computing device to the virtual machine over the network connection;

while the application is being accessed using the remoting session, initiating a process to download a set of files that comprise the application to the computing device, the set of files operable to locally execute the application after being downloaded to the computing device;

completing the download of the set of files while the application is being accessed using the remoting session;

starting a local session of the application on the computing device by executing at least one of the set of files downloaded to the computing device; and

switching from the remoting session to the local session of the application executed on the computing device.

2. The method of claim 1 , wherein completing the download of the set of files further comprises:

computing a delta that includes one or more changes to files made on the server while the application is accessed during the remoting session; and

synchronizing the delta between the server and the computing device.

3. The method of claim 2 , further comprising:

periodically re-computing the delta while the process to download the set of files is executed; and

synchronizing the delta after the process to download the set of files is completed.

4. The method of claim 1 , wherein switching from the remoting session to the local session of the application executed on the computing device further comprises:

displaying a notification that a local copy of the application is available on the computing device; and

receiving user input indicating a request to switch from the remoting session to the local session of the application.

5. The method of claim 1 , further comprising:

executing an installer to install the application after the process of downloading the set of files to the computing device is complete.

6. The method of claim 1 , wherein the process to download the set of files further comprises:

downloading a virtual disk containing the set of files to the computing device; and

attaching the application to the computing device by mounting the virtual disk on the computing device to make the application executable from the virtual disk.

7. The method of claim 1 , wherein accessing the application using the remoting session further comprises:

receiving, by the computing device, framebuffer data of a graphical user interface generated on the server and rendering the framebuffer data on the computing device; and

transmitting user input data from the computing device to the server.

8. A computing device, comprising:

at least one processor; and

memory including instructions that, when executed by the at least one processor, cause the computing device to perform the steps of:

receiving a request for an application that is not locally available on the computing device;

establishing a remoting session for the computing device to access the application executing on a virtual machine hosted on a server over a network connection, wherein the remoting session includes transmitting framebuffer pixel data from the virtual machine to the computing device over the network connection and transmitting user input events from the computing device to the virtual machine over the network connection;

while the application is being accessed using the remoting session, initiating a process to download a set of files that comprise the application to the computing device, the set of files operable to locally execute the application after being downloaded to the computing device;

completing the download of the set of files while the application is being accessed using the remoting session;

starting a local session of the application on the computing device by executing at least one of the set of files downloaded to the computing device; and

switching from the remoting session to the local session of the application executed on the computing device.

9. The computing device of claim 8 , wherein completing the download of the set of files further comprises:

computing a delta that includes one or more changes to files made on the server while the application is accessed during the remoting session; and

synchronizing the delta between the server and the computing device.

10. The computing device of claim 9 , wherein the memory further comprises instructions that, when executed by the at least one processor, cause the computing device to perform the steps of:

periodically re-computing the delta while the process to download the set of files is executed; and

synchronizing the delta after the process to download the set of files is completed.

11. The computing device of claim 8 , wherein switching from the remoting session to the local session of the application executed on the computing device further comprises:

displaying a notification that a local copy of the application is available on the computing device; and

receiving user input indicating a request to switch from the remoting session to the local session of the application.

12. The computing device of claim 8 , wherein the memory further comprises instructions that, when executed by the at least one processor, cause the computing device to perform the steps of:

executing an installer to install the application after the process of downloading the set of files to the computing device is complete.

13. The computing device of claim 8 , wherein the process to download the set of files further comprises:

downloading a virtual disk containing the set of files to the computing device; and

attaching the application to the computing device by mounting the virtual disk on the computing device to make the application executable from the virtual disk.

14. The computing device of claim 8 , wherein accessing the application using the remoting session further comprises:

receiving, by the computing device, framebuffer data of a graphical user interface generated on the server and rendering the framebuffer data on the computing device; and

transmitting user input data from the computing device to the server.

15. A non-transitory computer readable storage medium comprising a set of instructions, the instructions when executed by one or more processors causing the one or more processors to execute the operations of:

receiving a request for an application that is not locally available on the computing device;

establishing a remoting session for the computing device to access the application executing on a virtual machine hosted on a server over a network connection, wherein the remoting session includes transmitting framebuffer pixel data from the virtual machine to the computing device over the network connection and transmitting user input events from the computing device to the virtual machine over the network connection;

while the application is being accessed using the remoting session, initiating a process to download a set of files that comprise the application to the computing device, the set of files operable to locally execute the application after being downloaded to the computing device;

completing the download of the set of files while the application is being accessed using the remoting session;

starting a local session of the application on the computing device by executing at least one of the set of files downloaded to the computing device; and

switching from the remoting session to the local session of the application executed on the computing device.

16. The non-transitory computer readable storage medium of claim 15 , wherein completing the download of the set of files further comprises: computing a delta that includes one or more changes to files made on the server while the application is accessed during the remoting session; and synchronizing the delta between the server and the computing device.

17. The non-transitory computer readable storage medium of claim 16 , further comprising instructions that when executed by one or more processors, cause the one or more processors to execute the operations of:

periodically re-computing the delta while the process to download the set of files is executed; and

synchronizing the delta after the process to download the set of files is completed.

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 Jun 7, 2017
From: CHEN, MING; TIAN, WEI; GUO, BIN
To: VMWARE, INC.
Reel/Frame 042633/0922 →