# US 2014/0157254 A1 · Package design and generation

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0157254 A1
- Document ID: US20140157254A1
- Status: Published application
- Kind: A1
- Application number: 14/175,170
- Filed: 2014-02-07
- Published: 2014-06-05
- Earliest claimed: 2009-05-27
- Assignees: Microsoft Corporation
- Applicants: Microsoft Corporation
- Inventors: Phillip Michael Hoff; Shi Sun; Daniel A. Molina; Li Ma; Lubomir I. Birov
- Web page: https://patentgrep.com/patent/US20140157254A1

## CPC

- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 8/60: Software deployment
- G06F 8/61: Installation
- G06F 8/62: {Uninstallation}
- G06F 8/658: Incremental updates; Differential updates
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 3/00: Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Solution packages for a product for deployment on a collection of servers can be designed using one or more designers that provide user interfaces for visually arranging and configuring elements of the product. A package object model includes a managed object model that represents a package or feature manifest as defined by a product manifest XML schema. The object model can be used to create references to other project item and feature definitions. The extended object model can be used to generate an equivalent package or feature manifest XML file.

## Claims

### Claim 1

At a computer system, the computer system including a processor, a method of preparing an application for deployment across a plurality of server computers, the method comprising:
accessing a package definition for the application, the package definition defining elements to be used in the application, the defined elements included in one or more application packages, the one or more application packages defined in an object model;
creating an application package element manifest for the application from the contents of the one or more application packages, the application package element manifest containing one or more of: a file and data relevant to the defined elements;
the processor transforming the application package element manifest into one or more manifest files compatible with a packaging schema for product deployment software, the application package element manifest transformed into one or more manifest files by mapping between types and properties in the object model and elements and attributes in the packaging schema, the product deployment software configured to deploy applications across the plurality of server computers; and
bundling the one or more manifest files into a deployment format expected by the product deployment software.

### Claim 2 (depends on 1)

The method of claim 1, further comprising checking for errors preventing creation of a correct or working application based on a set of validation rules.

### Claim 3 (depends on 1)

The method of claim 1, further comprising customizing an element of the application using a feature designer.

### Claim 4 (depends on 3)

The method of claim 3, wherein customizing en element of the application using a feature designer comprises:
receiving user input; and
based on the user input, performing one or more of: configuring project items within a feature, combining project items into a feature, setting properties on a feature, visualizing define project items in a project, adding a project item to a feature, and removing a project item from a feature.

### Claim 5 (depends on 1)

The method of claim 1, further comprising customizing the application using a package designer.

### Claim 6 (depends on 5)

The method of claim 5, wherein customizing the application using a package designer comprises:
receiving user input; and
based on the user input, performing one or more of: configuring project items within a feature, combining project items into a feature, setting properties on a feature, visualizing define project items in a project, adding a project item to a feature, and removing a project item from a feature.

### Claim 7 (depends on 1)

The method of claim 1, wherein creating an application package element manifest comprises enumerating files and data that are to be used in the application.

### Claim 8 (depends on 1)

The method of claim 1, further comprising selecting a set of variables for use within the one or more manifest files.

### Claim 9 (depends on 1)

The method of claim 1, further comprising presenting the structure of the one or more application packages at an integrated development environment (IDE).

### Claim 10

A computer program product for use at a computer system, the computer program product for implementing a method of preparing an application for deployment across a plurality of server computers, the computer program product comprising one or more computer storage devices having stored thereon computer-executable instructions that, when executed at a processor, cause the computer system to perform the method, including the following:
access a package definition for the application, the package definition defining elements to be used in the application, the defined elements included in one or more application packages, the one or more application packages defined in an object model;
create an application package element manifest for the application from the contents of the one or more application packages, the application package element manifest containing one or more of: a file and data relevant to the defined elements;
transform the application package element manifest into one or more manifest files compatible with a packaging schema for product deployment software, the application package element manifest transformed into one or more manifest files by mapping between types and properties in the object model and elements and attributes in the packaging schema, the product deployment software configured to deploy applications across the plurality of server computers; and
bundle the one or more manifest files into a deployment format expected by the product deployment software.

### Claim 11 (depends on 10)

The computer program product of claim 10, further comprising computer-executable instructions that, when executed, cause the computer system to check for errors preventing creation of a correct or working application based on a set of validation rules.

### Claim 12 (depends on 10)

The computer program product of claim 10, wherein computer-executable instructions that, when executed, cause the computer system to create an application package element manifest for the application package comprise computer-executable instructions that, when executed, cause the computer system to enumerate files and data that are to be used in the application.

### Claim 13 (depends on 10)

The computer program product of claim 10, further comprising computer-executable instructions that, when executed, cause the computer system to select a set of variables for use within the one or more manifest files.

### Claim 14 (depends on 10)

The computer program product of claim 10, wherein computer-executable instructions that, when executed, cause the computer system to bundle the identified application package elements into format compatible with the product deployment software comprise computer-executable instructions that, when executed, cause the computer system to compress a directory hierarchy into the file.

### Claim 15 (depends on 10)

The computer program product of claim 10, further comprising computer-executable instructions that, when executed, cause the computer system to present the structure of the one or more application packages at an integrated development environment (IDE).

### Claim 16

A system, the system comprising:
one or more processors;
system memory; and
one or more computer storage devices having stored thereon computer-executable instructions representing a package designer and generator, the package designer and generator configured to:
access a package definition for the application, the package definition defining elements to be used in the application, the defined elements included in one or more application packages, the one or more application packages defined in an object model;
create an application package element manifest for the application from the contents of the one or more application packages, the application package element manifest containing one or more of: a file and data relevant to the defined elements;
transform the application package element manifest into one or more manifest files compatible with a packaging schema for product deployment software, the application package element manifest transformed into one or more manifest files by mapping between types and properties in the object model and elements and attributes in the packaging schema, the product deployment software configured to deploy applications across the plurality of server computers; and
bundle the one or more manifest files into a deployment format expected by the product deployment software.

### Claim 17 (depends on 16)

The system of claim 16, further comprising the package designer and generator being configured to check for errors preventing creation of a correct or working application based on a set of validation rules.

### Claim 18 (depends on 16)

The system of claim 16, further comprising the package designer and generator being configured to select a set of variables for use within the one or more manifest files.

### Claim 19 (depends on 16)

The system of claim 16, further comprising the package designer and generator being configured to present the structure of the one or more application packages at an integrated development environment (IDE).

### Claim 20 (depends on 16)

The system of claim 16, wherein the package designer and generator are further configured to preview the application by placing the defined elements in locations relative to a directory hierarchy on at least one server computer of the plurality of server computers.
