IP Library Granted Patent US 10,223,092
Granted Patent B2
US 10,223,092 · App. 15/178,540 · Granted Mar 5, 2019

Capturing and deploying applications using maximal and minimal sets

Inventors: Nir Adler (Netanya, IL); Dima Golbert (Beit Shemesh, IL); Avshi Avital (Sde Warburg, IL); Or Lupovitz (Rishon le Zion, IL); Kosta Shougaev (Rehovot, IL)
Assignee: VMware, Inc.
G06F8/60G06F8/62H04L67/34
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,223,092
App. No.
15/178,540
Granted
Mar 5, 2019
Kind
B2
Abstract

Systems and methods are described for packaging and deploying applications using minimal and maximal component sets. A minimal set of application components that includes at least the necessary components for launching the application is first downloaded to an endpoint device from a central server. The application is launched on the endpoint from the minimal set. If the application requests a missing component that is not available on the endpoint, the missing component is requested and delivered on-demand from a maximal set located on the server, where the maximal set contains all possible application components. The application is suspended during the download of the missing component. After the missing component is downloaded, the application is resumed, having access to the missing component on the endpoint.

Claims (58)

1. A method, comprising:

transmitting, from a management server, a minimal set of application components stored on the management server to each client device in a plurality of client devices, the minimal set being deployable on each client device to install a corresponding application with sufficient functionality to launch the application, the minimal set missing at least a portion of the application components required by the application for full functionality;

installing the application on each client device in the plurality of client devices by deploying the minimal set;

executing the application from the deployed minimal set on each client device in the plurality of client devices;

during execution of the application from the deployed minimal set on the plurality of client devices, receiving at the management server, from one or more requesting client devices in the plurality of client devices, a request for a missing application component that was not included in the minimal set;

locating the missing application component in a maximal set, the maximal set comprising application components not available in the minimal set;

conveying the located missing application component in the maximal set to the requesting one or more client devices; and

in response to receiving at the management server a predetermined threshold number of requests for the missing application component from client devices executing the application from the minimal set, modifying the minimal set stored on the management server by adding the missing application component to the minimal set.

2. The method of claim 1 , further comprising:

during execution of the application from the minimal set on the plurality of client devices, detecting, at the requesting client devices, an access by the application to the missing application component;

suspending execution of the application on the requesting client devices; and

sending the request for the missing application component from the requesting client devices to the management server.

3. The method of claim 1 , wherein the maximal set is created by capturing disk content from a computing device on which the application is installed, according to a predefined policy.

4. The method of claim 3 , wherein the predefined policy instructs at least one of: to capture all content on the computing device, or to capture all content on the computing device except content in predefined excluded areas that are deemed irrelevant to execution of the application.

5. The method of claim 1 , further comprising:

conveying a manifest identifying components in the maximal set to the plurality of client devices.

6. The method of claim 5 , further comprising:

determining, at the requesting client devices, whether the missing application component is available in the maximal set based on the manifest.

7. The method of claim 3 , wherein the predefined policy instructs to capture content on the computing device in all memory locations deemed to be possible locations of application components.

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:

transmitting, from a management server, a minimal set of application components stored on the management server to each client device in a plurality of client devices, the minimal set being deployable on each client device to install a corresponding application with sufficient functionality to launch the application, the minimal set missing at least a portion of the application components required by the application for full functionality;

installing the application on each client device in the plurality of client devices by deploying the minimal set;

executing the application from the deployed minimal set on each client device in the plurality of client devices;

during execution of the application from the deployed minimal set on the plurality of client devices, receiving at the management server, from one or more requesting client devices in the plurality of client devices, a request for a missing application component that was not included in the minimal set;

locating the missing application component in a maximal set, the maximal set comprising application components not available in the minimal set;

conveying the located missing application component in the maximal set to the requesting one or more client device; and

in response to receiving at the management server a predetermined threshold number of requests for the missing application component from client devices executing the application from the minimal set, modifying the minimal set stored on the management server by adding the missing application component to the minimal set.

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

during execution of the application from the minimal set on the plurality of client devices, detecting, at the requesting client devices, an access by the application to the missing application component;

suspending execution of the application on the requesting client devices; and

sending the request for the missing application component from the requesting client devices to the management server.

10. The computing device of claim 8 , wherein the maximal set is created by capturing disk content from a computing device on which the application is installed, according to a predefined policy.

11. The computing device of claim 10 , wherein the predefined policy instructs at least one of: to capture all content on the computing device, or to capture all content on the computing device except content in predefined excluded areas that are deemed irrelevant to execution of the application.

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

conveying a manifest identifying components in the maximal set to the plurality of client devices.

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

determining, at the requesting client devices, whether the missing application component is available in the maximal set based on the manifest.

14. The computing device of claim 10 , wherein the predefined policy instructs to capture content on the computing device in all memory locations deemed to be possible locations of application components.

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

transmitting, from a management server, a minimal set of application components stored on the management server to each client device in a plurality of client devices, the minimal set being deployable on each client device to install a corresponding application with sufficient functionality to launch the application, the minimal set missing at least a portion of the application components required by the application for full functionality;

installing the application on each client device in the plurality of client devices by deploying the minimal set;

executing the application from the deployed minimal set on each client device in the plurality of client devices;

during execution of the application from the deployed minimal set on the plurality of client devices, receiving at the management server, from one or more requesting client devices in the plurality of client devices, a request for a missing application component that was not included in the minimal set;

locating the missing application component in a maximal set, the maximal set comprising application components not available in the minimal set;

conveying the located missing application component in the maximal set to the requesting one or more client devices; and

in response to receiving at the management server a predetermined threshold number of request for the missing application component from client devices executing the application from the minimal set, modifying the minimal set stored on the management server by adding the missing application component to the minimal set.

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

during execution of the application from the minimal set on the plurality of client devices, detecting, at the requesting client devices, an access by the application to the missing application component;

suspending execution of the application on the requesting client devices; and

sending the request for the missing application component from the requesting client devices to the management server.

17. The non-transitory computer readable storage medium of claim 15 , wherein the maximal set is created by capturing disk content from a computing device on which the application is installed, according to a predefined policy.

18. The non-transitory computer readable storage medium of claim 17 , wherein the predefined policy instructs at least one of: to capture all content on the computing device, or to capture all content on the computing device except content in predefined excluded areas that are deemed irrelevant to execution of the application.

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

conveying a manifest identifying components in the maximal set to the plurality of client devices; and

determining, at the requesting client devices, whether the missing application component is available in the maximal set based on the manifest.

20. The non-transitory computer readable storage medium of claim 17 , wherein the predefined policy instructs to capture content on the computing device in all memory locations deemed to be possible locations of application components.

Assignments (3)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2016
From: ADLER, NIR; GOLBERT, DIMA; LUPOVITZ, OR; SHOUGAEV, KOSTA; AVITAL, AVSHI
To: VMWARE, INC.
Reel/Frame 039127/0295 →
Continuity (1)
Related Publication 20170357492A1 · Dec 14, 2017