METHOD AND SYSTEM FOR VIRTUALIZATION OF SOFTWARE APPLICATIONS
First Claim
1. A method of executing one or more virtual applications from a single executable file, the method comprising:
- receiving a character string comprising a parameter and an identification of an executable file implementing a plurality of virtual applications, the executable file comprising a plurality of startup files each corresponding to one of the plurality of virtual applications;
executing a process of the executable file;
determining whether the executing process is a first process of the executable file to be executed based on the presence or absence of a data structure associated with the executable file in a shared memory;
allocating a data structure in a shared memory associated with the executing process;
parsing the character string to obtain the parameter;
identifying which of the plurality of startup files to execute based on the parameter; and
executing the identified startup file.
3 Assignments
0 Petitions
Accused Products
Abstract
A method of virtualizing an application to execute on a plurality of operating systems without installation. The method includes creating an input configuration file for each operating system. The templates each include a collection of configurations that were made by the application during installation on a computing device executing the operating system. The templates are combined into a single application template having a layer including the collection of configurations for each operating system. The collection of configurations includes files and registry entries. The collections also identifies and configures environmental variables, systems, and the like. Files in the collection of configurations and references to those files may be replaced with references to files stored on installation media. The application template is used to build an executable of the virtualized application. The application template may be incorporated into a manifest listing other application templates and made available to users from a website.
-
Citations
18 Claims
-
1. A method of executing one or more virtual applications from a single executable file, the method comprising:
-
receiving a character string comprising a parameter and an identification of an executable file implementing a plurality of virtual applications, the executable file comprising a plurality of startup files each corresponding to one of the plurality of virtual applications; executing a process of the executable file; determining whether the executing process is a first process of the executable file to be executed based on the presence or absence of a data structure associated with the executable file in a shared memory; allocating a data structure in a shared memory associated with the executing process; parsing the character string to obtain the parameter; identifying which of the plurality of startup files to execute based on the parameter; and executing the identified startup file. - View Dependent Claims (2)
-
-
3. A computer-readable medium comprising instructions that when executed by a processor perform a method of executing one or more virtual applications from a single executable file, the method comprising:
-
receiving a character string comprising a parameter and an identification of an executable file implementing a plurality of virtual applications, the executable file comprising a plurality of startup files each corresponding to one of the plurality of virtual applications; executing a process of the executable file; determining whether the executing process is a first process of the executable file to be executed based on the presence or absence of a data structure associated with the executable file in a shared memory; allocating a data structure in a shared memory associated with the executing process; parsing the character string to obtain the parameter; identifying which of the plurality of startup files to execute based on the parameter; and executing the identified startup file.
-
-
4. A method of executing a virtual application that when executed implements a plurality of processes that share data contained in one or more files, the virtual application being associated with an isolation number, the method comprising:
-
determining a threshold value; storing files requiring an amount of memory greater than the threshold value in a shared memory; naming files stored in the shared memory in accordance with a naming convention comprising a file identification and the isolation number; receiving a request to access a first file from one of the plurality of processes, the request comprising a file identification associated with the first file; and in response to receiving the request to access the first file, determining whether the first file is stored in the shared memory by determining whether a file having a name including the file identification and isolation number is present in the shared memory; and if the first file is determined to be stored in the shared memory, directing the one of the plurality of processes to access the first file in shared memory.
-
-
5. A computer-readable medium comprising instructions that when executed by a processor perform a method of executing a virtual application that when executed implements a plurality of processes that share data contained in one or more files, the virtual application being associated with an isolation number, the method comprising:
-
determining a threshold value; storing files requiring an amount of memory greater than the threshold value in a shared memory; naming files stored in the shared memory in accordance with a naming convention comprising a file identification and the isolation number; receiving a request to access a first file from one of the plurality of processes, the request comprising a file identification associated with the first file; and in response to receiving the request to access the first file, determining whether the first file is stored in the shared memory by determining whether a file having a name including the file identification and isolation number is present in the shared memory; and if the first file is determined to be stored in the shared memory, directing the one of the plurality of processes to access the first file in shared memory.
-
-
6. A method of executing a virtual application that when executed implements a plurality of processes that share data contained in one or more files, the virtual application being associated with an isolation number, the method comprising:
-
storing the one or more files in a shared memory; naming the one or more files stored in the shared memory in accordance with a naming convention comprising a file identification and the isolation number; receiving a request to access a first file from one of the plurality of processes, the request comprising a file identification associated with the first file; and in response to receiving the request to access the first file, determining whether the first file is stored in the shared memory by determining whether a file having a name including the file identification of the first file and the isolation number is present in the shared memory; and if the first file is stored in the shared memory, directing the one of the plurality of processes to access the first file in the shared memory.
-
-
7. A computer-readable medium comprising instructions that when executed by a processor perform a method of executing a virtual application that when executed implements a plurality of processes that share data contained in one or more files, the virtual application being associated with an isolation number, the method comprising:
-
storing the one or more files in a shared memory; naming the one or more files stored in the shared memory in accordance with a naming convention comprising a file identification and the isolation number; receiving a request to access a first file from one of the plurality of processes, the request comprising a file identification associated with the first file; and in response to receiving the request to access the first file, determining whether the first file is stored in the shared memory by determining whether a file having a name including the file identification of the first file and the isolation number is present in the shared memory; and if the first file is stored in the shared memory, directing the one of the plurality of processes to access the first file in the shared memory.
-
-
8. A method of accessing information stored in data structures by a plurality of processes executing in a virtual operating system in at least partial isolation from a host operating system, the plurality of processes each being associated with an isolation number, the method comprising:
-
storing the data structures in a shared memory; naming the data structures stored in the shared memory in accordance with a naming convention comprising a process identifier associated with the process that created the data structure and the isolation number associated with the plurality of processes; receiving a request to access a first data structure from a first process of the plurality of processes, the request comprising a process identifier associated with a second process of the plurality of processes, the second process having created the first data structure and being different from the first process; and in response to receiving the request to access the first data structure, identifying and accessing the data structure stored in the shared memory having a name including the process identifier associated with the second process that created the first data structure and the isolation number associated with the plurality of processes. - View Dependent Claims (9, 10, 11)
-
-
12. A computer-readable medium comprising instructions that when executed by a processor perform a method of accessing information stored in data structures by a plurality of processes executing in a virtual operating system in at least partial isolation from a host operating system, the plurality of processes each being associated with an isolation number, the method comprising:
-
storing the data structures in a shared memory; naming the data structures stored in the shared memory in accordance with a naming convention comprising a process identifier associated with the process that created the data structure and the isolation number associated with the plurality of processes; receiving a request to access a first data structure from a first process of the plurality of processes, the request comprising a process identifier associated with a second process of the plurality of processes, the second process having created the first data structure and being different from the first process; and in response to receiving the request to access the first data structure, identifying and accessing the data structure stored in the shared memory having a name including the process identifier associated with the second process that created the first data structure and the isolation number associated with the plurality of processes.
-
-
13. A method of executing a virtual application in a virtual operating system executing on a host operating system, the virtual application executing in at least partial isolation from the host operating system, the method comprising:
-
constructing a data structure identifying a plurality of shims and for each shim, associating the shim with at least one virtual application; establishing an activation criteria for each shim, the activation criteria identifying circumstances under which the shim is to be activated; receiving a request to execute the virtual application; using the data structure to identify at least one of the plurality of shims associated with the virtual application; for each of the at least one of the plurality of shims associated with the virtual application, determining when the activation criteria is satisfied; and for each of the at least one of the plurality of shims associated with the virtual application, when the activation criteria is satisfied, activating the shim associated with the virtual application, the activation of the shim facilitating the execution of the virtual application in the virtual operating system. - View Dependent Claims (14)
-
-
15. A method of incorporating software components into a virtual application isolated from other processes executing on a computing device, the software components being accessible by the other processes executing on the computing device, the software components being identified in a manifest including a public key token associated with the software components, the manifest being configured to receive calls to the software components and direct them to the software components, the method comprising:
-
creating a private memory cache for the virtual application; storing copies of the software components in the private memory cache; creating a private copy of the manifest, the private copy of the manifest omitting the public key token associated with the software components, the private copy of the manifest being configured to direct calls to the software components to the copies of the software components stored in the private memory cache; intercepting calls by the virtual application to the software components; and directing the intercepted calls to the private copy of the manifest. - View Dependent Claims (16, 17)
-
-
18. A computer-readable medium comprising instructions that when executed by a processor perform a method of incorporating software components into a virtual application isolated from other processes executing on a computing device, the software components being accessible by the other processes executing on the computing device, the software components being identified in a manifest including a public key token associated with the software components, the manifest being configured to receive calls to the software components and direct them to the software components, the method comprising:
-
creating a private memory cache for the virtual application; storing copies of the software components in the private memory cache; creating a private copy of the manifest, the private copy of the manifest omitting the public key token associated with the software components, the private copy of the manifest being configured to direct calls to the software components to the copies of the software components stored in the private memory cache; intercepting calls by the virtual application to the software components; and directing the intercepted calls to the private copy of the manifest.
-
Specification