IP Library Granted Patent US 8,826,268
Granted Patent B2
US 8,826,268 · App. 12/719,008 · Granted Sep 2, 2014

Virtual software application deployment configurations

Inventors: Neil Jacobson (Arlington, MA); Jeremy E. Dunker (Boston, MA); Eric C. Jewart (Waltham, MA); John M. Sheehan (Cambridge, MA)
Assignee: Microsoft Corporation
G06F8/60
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,826,268
App. No.
12/719,008
Granted
Sep 2, 2014
Kind
B2
Abstract

Configuration items for a software application can be automatically and/or manually discovered, and the application can be packaged to form a virtual application package. A deployment configuration can include settings for the configuration items. The deployment configuration can be set after packaging the software application. For example, a selected configuration item in the deployment configuration may be changed in response to user input. The virtual application package can be deployed to instantiate the application one or more times, and the deployment configuration can be applied in the instantiated application.

Claims (62)

1. A computer-implemented method comprising:

automatically discovering one or more configuration items for a software application;

packaging the software application to form a virtual application package;

deploying the virtual application package to instantiate the software application; and

applying a deployment configuration comprising one or more settings for the one or more configuration items,

wherein the deploying the virtual application package and the applying the deployment configuration are interleaved, with a first portion of the virtual application package being deployed as a first deployed portion of the software application and the deployment configuration being applied in the first deployed portion of the software application, followed by a second portion of the virtual application package being deployed as a second deployed portion of the software application and the deployment configuration being applied in the second deployed portion of the software application, and wherein the first portion of the virtual application package is different from the second portion of the virtual application package.

2. The computer-implemented method of claim 1 , wherein the one or more configuration items are one or more automatically-discovered configuration items, and the computer-implemented method further comprises discovering one or more manually-discovered configuration items for the software application in response to receiving a user input identifying the one or more manually-discovered configuration items, wherein the deployment configuration comprises one or more settings for the one or more manually-discovered configuration items.

3. The computer-implemented method of claim 1 , wherein automatically discovering comprises delegating a first portion of the automatically discovering to a first subsystem relevant to at least one of the one or more configuration items, and delegating a second portion of the automatically discovering to a second subsystem relevant to at least one of the one or more configuration items, and wherein the first portion of the automatically discovering is different from the second portion of the automatically discovering and the first subsystem is different from the second subsystem.

4. The computer-implemented method of claim 1 , wherein the deployment configuration is a first deployment configuration, and the computer-implemented method further comprises applying a second deployment configuration in the instantiated software application to change one or more settings for the one or more configuration items, wherein the first deployment configuration is different from the second deployment configuration.

5. The computer-implemented method of claim 1 , further comprising presenting the one or more configuration items on a user interface device.

6. The computer-implemented method of claim 5 , further comprising receiving a user input, and editing one of the one or more configuration items in response to receiving the user input.

7. The computer-implemented method of claim 6 , wherein presenting is done after packaging the software application.

8. The computer-implemented method of claim 1 , wherein:

deploying the virtual application package to instantiate the software application comprises deploying the virtual application package to instantiate the software application as a first instance of the software application;

applying the deployment configuration comprises applying the deployment configuration in the first instance of the software application; and

the computer-implemented method further comprises:

deploying the virtual application package to instantiate the software application as a second instance of the software application; and

applying the deployment configuration in the second instance of the software application.

9. The computer-implemented method of claim 8 , wherein applying the deployment configuration in the first instance of the software application and applying the deployment configuration in the second instance of the software application comprise applying different settings for at least one of the one or more configuration items in the first and second instances of the software application.

10. The computer-implemented method of claim 1 , wherein:

the computer-implemented method further comprises performing the following after packaging the software application:

presenting the one or more configuration items on a user interface device;

receiving a user input; and

editing a setting of at least one of the one or more configuration items in response to receiving the user input;

deploying the virtual application package to instantiate the software application comprises deploying the virtual application package to instantiate the software application as a first instance of the software application;

applying the deployment configuration comprises applying the deployment configuration in the first instance of the software application; and

the computer-implemented method further comprises:

deploying the virtual application package to instantiate the software application as a second instance of the software application; and

applying the deployment configuration in the second instance of the software application, wherein different settings are applied for at least one of the one or more configuration items in the first and second instances of the software application.

11. One or more memories having computer-executable instructions embodied thereon that, when executed by at least one processor, cause the at least one processor to perform acts comprising:

packaging a software application to form a virtual application package;

setting a deployment configuration comprising one or more configuration items for the virtual application package after packaging the software application;

deploying the virtual application package to instantiate the software application; and

applying the deployment configuration,

wherein the deploying the virtual application package and the applying the deployment configuration are interleaved, with a first portion of the virtual application package being deployed as a first deployed portion of the software application and the deployment configuration being applied in the first deployed portion of the software application, followed by a second portion of the virtual application package being deployed as a second deployed portion of the software application and the deployment configuration being applied in the second deployed portion of the software application, and wherein the first portion of the virtual application package is different from the second portion of the virtual application package.

12. The one or more memories of claim 11 , wherein setting the deployment configuration comprises editing the one or more configuration items in the deployment configuration.

13. The one or more memories of claim 11 , wherein the acts further comprise discovering the one or more configuration items for the deployment configuration before completing the packaging.

14. The one or more memories of claim 13 , wherein the acts further comprise marking at least one of the one or more configuration items as optional or mandatory, and wherein setting the deployment configuration comprises determining for each of the one or more configuration items whether the configuration item is marked as mandatory, and if the configuration item is marked as mandatory, then a user input is required for that configuration item before deploying the virtual application package.

15. The one or more memories of claim 11 , wherein:

the deployment configuration is a first deployment configuration;

deploying the virtual application package to instantiate the software application comprises deploying the virtual application package to instantiate the software application in a first instance of the software application;

applying the deployment configuration in the instantiated software application comprises applying the first deployment configuration in the first instance of the software application; and

the acts further comprise:

setting a second deployment configuration for the virtual application package after packaging the software application;

deploying the virtual application package to instantiate the software application in a second instance of the software application; and

applying the second deployment configuration in the second instance of the software application.

16. The computer-readable memory of claim 15 , wherein the first instance of the software application is on a first machine with a first machine configuration and the second instance of the software application is on a second machine with a second machine configuration.

17. The computer-readable memory of claim 11 , wherein setting the deployment configuration is done in response to receiving a user input.

18. A computer system comprising:

at least one processor; and

at least one memory comprising instructions stored thereon that, when executed by the at least one processor, cause the at least one processor to perform acts comprising:

discovering one or more configuration items for a software application;

packaging the software application to form a virtual application package;

presenting the one or more configuration items on a user interface device after packaging the software application;

in response to receiving a user input indicating a change to a selected configuration item of the one or more configuration items, changing the selected configuration item;

deploying the virtual application package to instantiate the software application; and

applying the one or more configuration items,

wherein the deploying the virtual application package and the applying the one or more configuration items are interleaved, with a first portion of the virtual application package being deployed as a first deployed portion of the software application and the one or more configuration items being applied in the first deployed portion of the software application followed by a second portion of the virtual application package being deployed as a second deployed portion of the software application and the one or more configuration items being applied in the second deployed portion of the software application, and wherein the first portion of the virtual application package is different from the second portion of the virtual application package.

19. The computer system of claim 18 , wherein the acts further comprise:

presenting the one or more configuration items on a user interface device before packaging the software application is complete; and

in response to receiving a user input indicating a change to a selected configuration item of the one or more configuration items, changing the selected configuration item before packaging the software application is complete.

20. The computer system of claim 18 , wherein discovering comprises automatically discovering.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2010
From: JACOBSON, NEIL; DUNKER, JEREMY E.; JEWART, ERIC C.; SHEEHAN, JOHN M.
To: MICROSOFT CORPORATION
Reel/Frame 024040/0192 →
Continuity (1)
Related Publication 20110219146A1 · Sep 8, 2011