# US 9,519,877 B2 · Multi-environment configuration of data integration projects

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

- Number: US 9,519,877 B2
- Document ID: US9519877B2
- Status: Granted
- Kind: B2
- Application number: 14/494,345
- Filed: 2014-09-23
- Published: 2015-01-08
- Granted: 2016-12-13
- Earliest claimed: 2010-06-15
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Bekim Demiroski; David Noor; Jeffrey Bernhardt; Matthew Carroll
- Web page: https://patentgrep.com/patent/US9519877B2

## CPC

- G06F 8/60: Software deployment
- G06F 16/254: {Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses}
- G06Q 10/06: Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system and method for facilitating execution of one or more data integration projects in multiple environments or an environment that undergoes changes. Each project has a set of project parameters, which are bound to environment variables. Each environment has a corresponding environment representation with environment variables and corresponding values. Each project is mapped to an environment representation. Values of environment variables are provided to projects with corresponding parameters. When one or more projects are changed to a different environment with a different corresponding environment representation, the environment variable values of the new environment representation are provided to the projects. When an environment change is reflected in the environment representation, the changed variable values are provided to mapped projects.

## Claims

### Claim 1

A computer-based system for facilitating execution of a plurality of computer programs in a plurality of environments, the computer-based system comprising:
a memory and a processor that are respectively configured to store and execute instructions, including instructions for causing the computer-based system to perform operations, the operations comprising:
receiving, for each computer program, a set of computer program parameters, each computer program parameter having a binding to a corresponding environment variable, wherein the computer-based system also has: a collection of two or more environment representations, each environment representation including a corresponding set of environment variables, each environment variable of each environment representation having a corresponding value; and
a mapping between each computer program and a corresponding environment representation;
providing to each computer program a value for each parameter having a corresponding environment variable;
in response to a change of a value corresponding to an environment variable in an environment representation, determining each computer program corresponding to the environment representation and the environment variable; and
providing the change of value to each determined computer program.

### Claim 2 (depends on 1)

The computer-based system of claim 1, wherein in response to receiving the change of value, each computer program adjusts to the change of value while continuing to execute.

### Claim 3 (depends on 1)

The computer-based system of claim 1, wherein the computer-based system also has:
a plurality of bindings between each parameter of each computer program and a corresponding environment variable of a corresponding environment representation, the bindings employed to associate values of each environment representation with corresponding parameters of each computer program.

### Claim 4 (depends on 1)

The computer-based system of claim 1, wherein the two or more environmental representations include a first environmental representation and a second environmental representation organized in a hierarchical structure, and wherein the first environmental representation inherits at least one value from the second environmental representation.

### Claim 5 (depends on 1)

The computer-based system of claim 1, the two or more environment representations including a first environment representation having a reference to a second environment representation, the method further comprising enabling a computer program mapped to the first environment representation to receive values of environment variables specified in the second environment representation.

### Claim 6 (depends on 1)

The computer-based system of claim 1, wherein in response to receiving the change of value, each computer program adjusts to the change of value without re-executing from an initial state.

### Claim 7 (depends on 1)

The computer-based system of claim 1, wherein the set of computer program parameters corresponding to a first computer program have a specification of a default value for a first computer program parameter, and wherein the operations further include determining whether to provide the default value to the first computer program based on whether a corresponding environment variable exists or has an assigned value.

### Claim 8

A computer-based method of facilitating execution of a plurality of computer programs in a plurality of environments, the method comprising:
a) receiving, for each computer program, a set of parameters and a mapping between each parameter and a corresponding environment variable;
b) receiving a collection of two or more environment representations, each environment representation including a set of environment variables including at least one environment variable in common with another environment representation, each environment variable of the set of environment variables having a corresponding value;
c) receiving, for each computer program, a mapping between the computer program and a corresponding environment representation;
d) providing, for each computer program, an environment variable value corresponding to each project parameter associated with the computer program, based on the mapping between the computer program and the corresponding environment representation; and
e) in response to a revised value of a changed environment variable of the set of environment variables corresponding to an environment representation, providing, for each computer program having a parameter corresponding to the environment representation and the environment variable, the revised value.

### Claim 9 (depends on 8)

The computer-based method of claim 8, the two or more environment representations including a first environment representation having a reference to a second environment representation, the method further comprising enabling a computer program mapped to the first environment representation to receive values of environment variables specified in the second environment representation.

### Claim 10 (depends on 8)

The computer-based method of claim 8, further comprising in response to receiving the revised value, continuing execution of at least one of the computer programs without re-executing the at least one of the programs from an initial state.

### Claim 11 (depends on 8)

The computer-based method of claim 8, wherein the method further comprises:
adjusting each computer program to the revised value.

### Claim 12 (depends on 8)

The computer-based method of claim 8, wherein the method further comprises:
adjusting at least one of the computer programs to the revised value without reinitializing that computer program.

### Claim 13 (depends on 8)

The computer-based method of claim 8, wherein the two or more environmental representations include a first environmental representation and a second environmental representation organized in a hierarchical structure, and wherein the first environmental representation inherits at least one value from the second environmental representation.

### Claim 14 (depends on 8)

The computer-based method of claim 8, wherein the set of parameters for a first computer program has a specification of a default value for a first computer program parameter, and wherein the method further comprises determining whether to provide the default value to the first computer program based on whether a corresponding environment variable exists or has an assigned value.

### Claim 15

A computer-readable storage medium comprising computer program instructions for facilitating execution of a computer program, the program instructions executable by one or more processors to perform actions including:
a) receiving a first environment representation including a first set of environment variables;
b) receiving a first mapping between a set of computer program parameters and the first environment representation, the first mapping indicating a correspondence between each computer program parameter of the set of computer program parameters and a corresponding environment variable of the first set of environment variables;
d) providing to the computer program an environment variable value corresponding to each computer program parameter associated with the computer program, based on the first mapping;
e) receiving a second mapping between the computer program and a second corresponding environment representation;
f) in response to receiving the second mapping, enabling the computer program to execute in an environment represented by the second corresponding environment representation.

### Claim 16 (depends on 15)

The computer-readable storage medium of claim 15, the first environment representation and the second environment representation organized in a hierarchy, the second environment representation receiving at least one environment variable from the first environment representation.

### Claim 17 (depends on 15)

The computer-readable storage medium of claim 15, wherein the by one or more processors also employ:
a plurality of bindings between parameters of the computer programs and corresponding environment variables.

### Claim 18 (depends on 17)

The computer-readable storage medium of claim 17, wherein the actions also include:
employing the bindings to associate values of the environment representations with corresponding parameters.

### Claim 19 (depends on 15)

The computer-readable storage medium of claim 15, wherein the executing in the environment represented by the second corresponding environment representation is performed without re-executing the computer program from an initial state.

### Claim 20 (depends on 15)

The computer-readable storage medium of claim 15, wherein the set of computer program parameters corresponding to a first computer program has a specification of a default value for a first computer program parameter, and wherein the actions also include determining whether to provide a default value to the first computer program based on whether a corresponding environment variable exists or has an assigned value.
