IP Library Granted Patent US 8,434,093
Granted Patent B2
US 8,434,093 · App. 12/188,161 · Granted Apr 30, 2013

Method and system for virtualization of software applications

Inventors: Stefan I. Larimore (Redmond, WA); C. Michael Murphey (Seattle, WA); Kenji C. Obata (Seattle, WA)
Assignee: Code Systems Corporation
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 8,434,093
App. No.
12/188,161
Granted
Apr 30, 2013
Kind
B2
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.

Claims (38)

1. A method comprising:

launching a plurality of processes within an environment implemented by a virtual application, the virtual application being associated with an isolation number, each of the plurality of processes being associated with a different process name;

determining a threshold value;

identifying one or more files requiring an amount of memory greater than the threshold value;

allocating a shared memory accessible by each of the plurality of processes for the one or more files identified;

storing each of the one or more files identified in the shared memory;

naming each of 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 from one of the plurality of processes to access a particular file, the request comprising a file identification associated with the particular file;

in response to receiving the request to access the particular file, determining whether the particular file is stored in the shared memory by determining whether a file having a name including the file identification and the isolation number is present in the shared memory; and

if the particular file is determined to be stored in the shared memory, directing the one of the plurality of processes to access the particular file in the shared memory.

2. A non-transitory computer-readable medium comprising instructions that when executed by a processor perform a method comprising:

launching a plurality of processes within an environment implemented by a virtual application, the virtual application being associated with an isolation number, each of the plurality of processes being associated with a different process name;

determining a threshold value;

identifying one or more files requiring an amount of memory greater than the threshold value;

allocating a shared memory accessible by each of the plurality of processes for the one or more files identified;

storing each of the one or more files identified in the shared memory;

naming each of 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 from one of the plurality of processes to access a particular file, the request comprising a file identification associated with the particular file;

in response to receiving the request to access the particular file, determining whether the particular file is stored in the shared memory by determining whether a file having a name including the file identification and the isolation number is present in the shared memory; and

if the particular file is determined to be stored in the shared memory, directing the one of the plurality of processes to access the particular file in the shared memory.

3. A method comprising:

launching a plurality of processes within an environment implemented by a virtual application, the virtual application being associated with an isolation number, each of the plurality of processes being associated with a different process name;

identifying one or more files requiring an amount of memory greater than a threshold value;

allocating a shared memory;

storing the one or more files identified in the shared memory accessible by each of the plurality of processes;

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 from one of the plurality of processes to access a particular file, the request comprising a file identification associated with the particular file;

in response to receiving the request to access the particular file, determining whether the particular file is stored in the shared memory by determining whether a file having a name including the file identification of the particular file and the isolation number is present in the shared memory; and

if the particular file is stored in the shared memory, directing the one of the plurality of processes to access the particular file in the shared memory.

4. A non-transitory computer-readable medium comprising instructions that when executed by a processor perform a method comprising:

launching a plurality of processes within an environment implemented by a virtual application, the virtual application being associated with an isolation number, each of the plurality of processes being associated with a different process name;

identifying one or more files requiring an amount of memory greater than a threshold value

allocating a shared memory;

storing the one or more files identified in the shared memory accessible by each of the plurality of processes;

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 from one of the plurality of processes to access a particular file, the request comprising a file identification associated with the particular file;

in response to receiving the request to access the particular file, determining whether the particular file is stored in the shared memory by determining whether a file having a name including the file identification of the particular file and the isolation number is present in the shared memory; and

if the particular file is stored in the shared memory, directing the one of the plurality of processes to access the particular file in the shared memory.

Assignments (3)
ADDRESS CHANGE Recorded Nov 10, 2015
From: CODE SYSTEMS CORPORATION
To: CODE SYSTEMS CORPORATION
Reel/Frame 037084/0283 →
CHANGE OF ADDRESS Recorded May 28, 2015
From: CODE SYSTEMS CORPORTATION
To: CODE SYSTEMS CORPORATION
Reel/Frame 035794/0628 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2008
From: LARIMORE, STEFAN I.; MURPHEY, C. MICHAEL; OBATA, KENJI C.
To: CODE SYSTEMS CORPORATION
Reel/Frame 021491/0069 →
Continuity (1)
Related Publication 20100037235A1 · Feb 11, 2010