IP Library Granted Patent US 10,776,236
Granted Patent B1
US 10,776,236 · App. 15/954,550 · Granted Sep 15, 2020

Transferrable containerized applications for remote-access client-server environments

Inventors: Maxim Kudrin (Moscow, RU); Liubov Kulakova (Moscow, RU); Nikolay Dobrovolskiy (Moscow, RU); Serguei M. Beloussov (Singapore, SG)
Assignee: Parallels International GmbH
G06F11/3006G06F9/4806G06F11/3409H04L67/025H04L67/101H04L67/141H04L67/42
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,776,236
App. No.
15/954,550
Granted
Sep 15, 2020
Kind
B1
Abstract

The subject matter of this specification can be implemented in, among other things, a method that includes establishing, by a processing device, a remote access session between a local computing device and a remote computing device connected by a network, receiving, by the remote computing device a request to execute an application, and determining, by a processing device, a remote efficiency value indicating estimated efficiency of executing the application on the remote computing device and a local efficiency value indicating estimated efficiency of executing the application on the local computing device. The method further includes comparing the remote efficiency value with the local efficiency value to determine whether to execute the application on the remote computing device or on the local computing device.

Claims (38)

1. A method comprising:

receiving, by a remote computing device a request to execute an application;

determining, by a processing device, a remote efficiency value and a local efficiency value, wherein the remote efficiency value is determined using a weighted first plurality of performance markers indicative of estimated efficiency of executing the application on the remote computing device, and wherein the local efficiency value is determined using a weighted second plurality of performance markers, wherein each of the second plurality of performance markers is indicative of estimated efficiency of executing the application on a local computing device; and

comparing the remote efficiency value with the local efficiency value to determine whether to execute the application on the remote computing device or the local computing device.

2. The method of claim 1 , further comprising, upon determining that the remote efficiency value exceeds the local efficiency value, starting execution of the application on the remote computing device.

3. The method of claim 1 , further comprising, upon determining that the remote efficiency value does not exceed the local efficiency value, causing the application to be executed on the local computing device.

4. The method of claim 3 , wherein causing the application to be executed on the local computing device further comprises providing to the local computing device a container image comprising at least one of a data associated with the application, an executable file associated with the application, or an indication of a location where the data associated with the application is stored.

5. The method of claim 1 , wherein determining the remote efficiency value further comprises determining at least one of a bandwidth of a network connection, a quality of the network connection, a number of other applications running on the remote computing device, or a type of other applications running on the remote computing device.

6. The method of claim 2 , further comprising:

re-determining the remote efficiency value at a time after starting execution of the application on the remote computing device; and

responsive to determining that the local efficiency value exceeds the re-determined remote efficiency value, causing the application to be transferred to the local computing device.

7. The method of claim 6 , wherein transferring the application to the local computing device further comprises receiving, by the local computing device, a container image comprising at least one of a data associated with the application, an executable file associated with the application, or an indication of a location where the data associated with the application is stored.

8. A non-transitory computer-readable medium having instructions stored thereon that, when executed by a processing device cause the processing device to:

receive, by a remote computing device a request to execute an application;

determine a remote efficiency value and a local efficiency value, wherein the remote efficiency value is determined using a weighted first plurality of performance markers indicative of estimated efficiency of executing the application on the remote computing device, and wherein the local efficiency value is determined using a weighted second plurality of performance markers indicative of estimated efficiency of executing the application on a local computing device; and

compare the remote efficiency value with the local efficiency value to determine whether to execute the application on the remote computing device or the local computing device.

9. The computer-readable medium of claim 8 , wherein the instructions are further to cause the processing device to determine that the remote efficiency value exceeds the local efficiency value and start execution of the application on the remote computing device.

10. The computer-readable medium of claim 8 , wherein the instructions are further to cause the processing device to determine that the remote efficiency value does not exceed the local efficiency value and cause the application to be executed on the local computing device.

11. The computer-readable medium of claim 10 , wherein the instructions are further to cause the processing device to provide, to the local computing device, a container image comprising at least one of a data associated with the application, an executable file associated with the application, or an indication of a location where the data associated with the application is stored.

12. The computer-readable medium of claim 8 , wherein the instructions are further to cause the processing device to determine at least one of a bandwidth of a network connection, a quality of the network connection, a number of other applications running on the remote computing device, or a type of other applications running on the remote computing device.

13. The computer-readable medium of claim 9 , wherein the instructions are further to cause the processing device to re-determine the remote efficiency value at a time after the application is started on the remote computing device, wherein the instructions are further to cause the processing device to determine that the local efficiency value exceeds the re-determined remote efficiency value, and wherein the instructions are further to cause the processing device to transfer the application to the local computing device.

14. The computer-readable medium of claim 13 , wherein the instructions to cause the processing device to transfer the application to the local computing device are further to cause the processing device to create an application container comprising at least one of a data associated with the application, an executable file associated with the application, or an indication of a location where the data associated with the application is stored, and wherein the instructions are further to cause the processing device to provide the application container to the local computing device.

15. A system comprising:

a memory that stores instructions; and

a processing device to execute the instructions from the memory to:

receive, by a remote computing device, a request to execute an application;

determine a remote efficiency value and a local efficiency value, wherein the remote efficiency value is determined using a weighted first plurality of performance markers indicative of estimated efficiency of executing the application on the remote computing device, and wherein the local efficiency value is determined using a weighted second plurality of performance markers indicative of estimated efficiency of executing the application on a local computing device; and

compare the remote efficiency value with the local efficiency value to determine whether to execute the application on the remote computing device or the local computing device.

16. The system of claim 15 , wherein the processing device is further to determine that the remote efficiency value exceeds the local efficiency value and to start execution of the application on the remote computing device.

17. The system of claim 15 , wherein the processing device is further to determine that the remote efficiency value does not exceed the local efficiency value and execute the application on the local computing device.

18. The system of claim 15 , wherein to start the application on the local computing device, the processing device is further to provide to the local computing device a container image comprising at least one of a data associated with the application, an executable file associated with the application, or an indication of a location where the data associated with the application is stored.

19. The system of claim 15 , wherein the processing device is further to determine at least one of a bandwidth of a network connection, a quality of the network connection, a number of other applications running on the remote computing device, and a type of other applications running on the remote computing device.

20. The system of claim 16 , wherein the processing device is further to

re-determine the remote efficiency value at a time after starting execution of the application on the remote computing device;

determine that the local efficiency value exceeds the re-determined remote efficiency value;

create a container image for the application;

place into the container image at least one of a data associated with the application, an executable file associated with the application, or an indication of a location where the data associated with the application is stored; and

provide the container image to the local computing device for instantiation on the local computing device.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Jul 18, 2019
From: UBS AG, STAMFORD BRANCH, AS ADMINISTRATIVE AND COLLATERAL AGENT
To: COREL CORPORATION; CLEARSLIDE, INC.; PARALLELS INTERNATIONAL GMBH
Reel/Frame 049787/0073 →
RELEASE OF SECURITY INTEREST RECORDED AT : REEL 047973 FRAME 0797 Recorded Jul 17, 2019
From: UBS AG, STAMFORD BRANCH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 049773/0590 →
SECURITY INTEREST Recorded Dec 21, 2018
From: PARALLELS INTERNATIONAL GMBH
To: UBS AG, STAMFORD BRANCH
Reel/Frame 047973/0797 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2018
From: KUDRIN, MAXIM; KULAKOVA, LIUBOV; DOBROVOLSKIY, NIKOLAY; BELOUSSOV, SERGUEI M.
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 045556/0418 →
Cited By (1)
US 12,585,760