IP Library Granted Patent US 10,853,047
Granted Patent B2
US 10,853,047 · App. 16/282,931 · Granted Dec 1, 2020

Method for virtualizing software applications

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,853,047
App. No.
16/282,931
Filed
Feb 22, 2019
Granted
Dec 1, 2020
Kind
B2
Art Unit
2191
USPC
717/174
Abstract

A method for virtualizing of software applications. The method comprises initializing a virtual environment created by a virtual engine executed over a computer; creating a new data file; launching an installation process of a software application to be virtualized, wherein the installation process runs in the virtual environment; during the installation process, capturing data writes to a file system of the computer's operating system; and saving the data writes to the new data file.

Claims (37)

1. A computing device configured for virtualizing a software application, the computing device comprising:

a processor; and

a memory storing computer-executable code which, when executed by the processor, causes the processor

to launch an installation process of the software application, wherein the installation process runs in a virtual environment created by a virtual engine executed over the computing device; and

to capture data writes performed during the installation process and save the captured data writes to a data file,

wherein the data file, upon completion of the installation process, does not store an operating system.

2. The computing device as claimed in claim 1 , wherein the computer-executable code, when executed by the processor, further causes the processor:

to disable write permissions to the data file upon completion of the installation process; and

to save the data file as an application-on-demand (AOD) file.

3. The computing device as claimed in claim 2 , wherein the AOD file includes all the information required to execute a virtual software application that corresponds to the software application.

4. The computing device as claimed in claim 2 , wherein the AOD file comprises at least an internal virtual services manager, a digital rights management layer, a connectivity layer, and a protection layer.

5. The computing device as claimed in claim 1 , wherein the data writes to the file system include at least one dynamic link library (DLL) file.

6. The computing device as claimed in claim 1 , wherein the virtual engine is an executable computing environment.

7. The computing device as claimed in claim 1 , wherein the virtual engine includes a file system, a registry repository, a dynamic link library (DLL) repository, and named objects.

8. A non-transitory computer-readable medium storing computer-executable code which, when executed by a processor of a computing device, causes the processor:

to launch an installation process of a software application to be virtualized, wherein the installation process runs in a virtual environment created by a virtual engine executed over the computing device; and

to capture data writes performed during the installation process and save the captured data writes to a data file,

wherein the data file, upon completion of the installation process, does not store an operating system.

9. The non-transitory computer-readable medium as claimed in claim 8 , wherein the computer-executable code, when executed by the processor, further causes the processor:

to disable write permissions to the data file upon completion of the installation process; and

to save the data file as an application-on-demand (AOD) file.

10. The non-transitory computer-readable medium as claimed in claim 9 , wherein the AOD file includes all the information required to execute a virtual software application that corresponds to the software application.

11. The non-transitory computer-readable medium as claimed in claim 9 , wherein the AOD file comprises at least an internal virtual services manager, a digital rights management layer, a connectivity layer, and a protection layer.

12. The non-transitory computer-readable medium as claimed in claim 8 , wherein the data writes to the file system include at least one dynamic link library (DLL) file.

13. The non-transitory computer-readable medium as claimed in claim 8 , wherein the virtual engine is an executable computing environment.

14. The non-transitory computer-readable medium as claimed in claim 8 , wherein the virtual engine includes a file system, a registry repository, a dynamic link library (DLL) repository, and named objects.

15. A method performed at a computing device for virtualizing a software application, the method comprising:

launching an installation process of the software application, wherein the installation process runs in a virtual environment created by a virtual engine executed over the computing device; and

capturing data writes performed during the installation process and saving the captured data writes to a data file,

wherein the data file, upon completion of the installation process, does not store an operating system.

16. The method as claimed in claim 15 , further comprising:

disabling write permissions to the data file upon completion of the installation process; and

saving the data file as an application-on-demand (AOD) file.

17. The method as claimed in claim 16 , wherein the AOD file includes all the information required to execute a virtual software application that corresponds to the software application.

18. The method as claimed in claim 16 , wherein the AOD file comprises at least an internal virtual services manager, a digital rights management layer, a connectivity layer, and a protection layer.

19. The method as claimed in claim 15 , wherein the data writes to the file system include at least one dynamic link library (DLL) file.

20. The method as claimed in claim 15 , wherein the virtual engine is an executable computing environment.