IP Library Granted Patent US 11,429,432
Granted Patent B2
US 11,429,432 · App. 16/746,142 · Granted Aug 30, 2022

Repositioning applications from physical devices to the cloud

Inventors: Vignesh Raja Jayaraman (Palo Alto, CA); Sisimon Soman (Sunnyvale, CA)
Assignee: VMware, Inc.
G06F9/4856G06F8/61G06F8/62G06F9/455G06F21/51G06F11/3457G06F2221/033
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 11,429,432
App. No.
16/746,142
Granted
Aug 30, 2022
Kind
B2
Abstract

The disclosure provides for repositioning applications from physical devices to a cloud location without removing the applications from the physical devices. This provides advantages of cloud-based availability for the applications while preserving device configurations. Thus, a user may continue to use the local version during transition to cloud usage so that if a problem arises during transition, adverse effects on user productivity are mitigated. Examples include generating, on a device, a first virtualization layer, and uninstalling an application from the first virtualization layer while capturing uninstallation traffic within the first virtualization layer. Examples further include generating, on the device, a second virtualization layer, installing the application in the second virtualization layer, and generating, from the second virtualization layer with the installed application, an application package. Examples are able to position the application package on a remote node for execution.

Claims (96)

1. A method of repositioning applications from physical devices to a cloud location, the method comprising:

generating, on a device, a first virtualization layer, the first virtualization layer including a virtual uninstall disk containing a virtual representation of an application;

uninstalling the virtual representation of the application from the first virtualization layer while capturing uninstallation traffic within the first virtualization layer;

generating, on the device, a second virtualization layer, the second virtualization layer including an empty virtual install disk;

installing a copy of the application in the empty virtual install disk included in the second virtualization layer;

generating, from the second virtualization layer with the installed application, an application package; and

transferring the application package to a remote node for execution.

2. The method of claim 1 , further comprising:

determining a first inventory of applications identified in a list of installed applications maintained by an operating system (OS) of the device;

determining a second inventory of installed applications from a cache of installer files for applications installed on the device;

determining a set of applications that are contained both in the first inventory, and the second inventory, the set consisting of applications having an installer available and installed on the device; and

determining that the application is within the set.

3. The method of claim 2 ,

wherein uninstalling the application from the first virtualization layer comprises:

identifying, for the application, the installer; and

uninstalling the application using the installer for the application; and

wherein installing the application in the second virtualization layer comprises:

installing the application using the installer for the application.

4. The method of claim 1 , further comprising:

preventing the uninstallation traffic from affecting a copy of the application on the device that is not within the first virtualization layer.

5. The method of claim 1 , further comprising:

removing, from the device, the first virtualization layer and the second virtualization layer.

6. The method of claim 1 , further comprising:

prior to transferring the application package to the remote node:

logging into an application resource tool; and

with the application resource tool, executing the application on the device; and

after transferring the application package to the remote node:

logging into the application resource tool; and

with the application resource tool, executing the application on the remote node.

7. The method of claim 1 , further comprising:

prior to executing the application package on the remote node, performing a security scan on the application or the application package; and

based at least on the security scan determining that execution is safe, executing the application package on the remote node.

8. A computer system for repositioning applications from physical devices to a cloud location, the computer system comprising:

a processor; and

a non-transitory computer readable medium having stored thereon program code, the program code causing the processor to:

generate, on a device, a first virtualization layer, the first virtualization layer including a virtual uninstall disk containing a virtual representation of an application;

uninstall the virtual representation of the application from the first virtualization layer while capturing uninstallation traffic within the first virtualization layer;

generate, on the device, a second virtualization layer, the second virtualization layer including an empty virtual install disk;

install a copy of the application in the empty virtual install disk included in the second virtualization layer;

generate, from the second virtualization layer with the installed application, an application package; and

transfer the application package to a remote node for execution.

9. The computer system of claim 8 , wherein the program code is further operative to:

determine a first inventory of applications identified in a list of installed applications maintained by an operating system (OS) of the device;

determine a second inventory of installed applications from a cache of installer files for applications installed on the device;

determine a set of applications that are contained both in the first inventory and second inventory, the set consisting of applications having an installer available and installed on the device; and

determine that the application is within the set.

10. The computer system of claim 9 ,

wherein uninstalling the application from the first virtualization layer comprises:

identifying, for the application, the installer; and

uninstalling the application using the installer for the application; and

wherein installing the application in the second virtualization layer comprises:

installing the application using the installer for the application.

11. The computer system of claim 8 , wherein the program code is further operative to:

prevent the uninstallation traffic from affecting a copy of the application on the device that is not within the first virtualization layer.

12. The computer system of claim 8 , wherein the program code is further operative to:

removing, from the device, the first virtualization layer and the second virtualization layer.

13. The computer system of claim 8 , wherein the program code is further operative to:

prior to transferring the application package to the remote node:

logging into an application resource tool; and

with the application resource tool, executing the application on the device; and

after transferring the application package to the remote node:

logging into the application resource tool; and

with the application resource tool, executing the application on the remote node.

14. The computer system of claim 8 , wherein the program code is further operative to:

prior to executing the application package on the remote node, perform a security scan on the application or the application package; and

based at least on the security scan determining that execution is safe, execute the application package on the remote node.

15. A non-transitory computer readable storage medium having stored thereon program code executable by a first computer system at a first site, the program code embodying a method comprising:

generating, on a device, a first virtualization layer, the first virtualization layer including a virtual uninstall disk containing a virtual representation of an application;

uninstalling the virtual representation of the application from the first virtualization layer while capturing uninstallation traffic within the first virtualization layer;

generating, on the device, a second virtualization layer, the second virtualization layer including an empty virtual install disk;

installing a copy of the application in the empty virtual install disk included in the second virtualization layer;

generating, from the second virtualization layer with the installed application, an application package; and

transferring the application package to a remote node for execution.

16. The non-transitory computer storage medium of claim 15 , wherein the program code further comprises:

determining a first inventory of applications identified in a list of installed applications maintained by an operating system (OS) of the device;

determining a second inventory of installed applications from a cache of installer files for applications installed on the device;

determining a set of applications that are contained both in the first inventory and the second inventory, the set consisting of applications having an installer available and installed on the device; and

determining that the application is within the set.

17. The non-transitory computer storage medium of claim 16 ,

wherein uninstalling the application from the first virtualization layer comprises:

identifying, for the application, the installer; and

uninstalling the application using the installer for the application; and

wherein installing the application in the second virtualization layer comprises:

installing the application using the installer for the application.

18. The non-transitory computer storage medium of claim 15 , wherein the program code further comprises:

preventing the uninstallation traffic from affecting a copy of the application on the device that is not within the first virtualization layer.

19. The non-transitory computer storage medium of claim 15 , wherein the program code further comprises:

prior to transferring the application package to the remote node:

logging into an application resource tool; and

with the application resource tool, executing the application on the device; and

after transferring the application package to the remote node:

logging into the application resource tool; and

with the application resource tool, executing the application on the remote node.

20. The non-transitory computer storage medium of claim 15 , wherein the program code further comprises:

prior to executing the application package on the remote node, performing a security scan on the application or the application package; and

based at least on the security scan determining that execution is safe, executing the application package on the remote node.

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 Jan 17, 2020
From: RAJA JAYARAMAN, VIGNESH; SOMAN, SISIMON
To: VMWARE, INC.
Reel/Frame 051548/0825 →