# US 10,503,493 B2 · Distributed versioning of applications using cloud-based systems

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

- Number: US 10,503,493 B2
- Document ID: US10503493B2
- Status: Granted
- Kind: B2
- Application number: 15/707,929
- Filed: 2017-09-18
- Published: 2018-11-22
- Granted: 2019-12-10
- Earliest claimed: 2017-05-16
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Biju Narayanan; Deepankar Narayanan; Christudoss Irwin Tagore; Nagendra Krishnappa; Ravi Shankar
- Web page: https://patentgrep.com/patent/US10503493B2

## CPC

- G06F 8/60: Software deployment
- G06F 8/61: Installation
- G06F 8/658: Incremental updates; Differential updates
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/5072: {Grid computing}
- H04L 41/082: the condition being updates or upgrades of network functionality
- H04L 41/0846: {based on copy from other elements}
- H04L 41/5048: {Automatic or semi-automatic definitions, e.g. definition templates}
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2009/45591: {Monitoring or debugging support}
- H04L 41/0894: Policy-based network configuration management
- H04L 41/50: Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L 41/5054: Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
- H04L 41/5096: {wherein the managed service relates to distributed or central networked applications}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The present disclosure relates to exporting local applications to cloud systems and provisioning the exported application on the cloud systems. Additionally, templates can be generated for the provisioned application, and each template can be individually customized and deployed to a destination as an application environment with a defined topology. Rapidly and dynamically generating deployable templates of provisioned applications enables cloud-based distributed versioning of the applications.

## Claims

### Claim 1

A computer-implemented method, comprising:
receiving, at a cloud system, a request for an export application from a local server, the local server storing a local application, the export application being configured to export the local application to the cloud system, and the local application being defined by one or more configuration settings stored at the local server;
transmitting the export application to the local server, wherein the export application is configured to execute on the local server to extract the local application, and execution of the export application includes:
automatically discovering application data stored at the local server, the application data characterizing at least a network architecture of the local application, wherein the application data includes at least the one or more configuration settings that define the local application, and
transforming the application data into exportable deployment data that includes a configuration file with metadata representing the local application, the exportable deployment data being in a defined format, and the transforming including serializing the local application into an exportable deployment data in the defined format;
receiving, at the cloud system and from the local server, the exportable deployment data;
defining a new environment for the local application in the cloud system, the new environment being defined using the one or more configuration settings included in the exportable deployment data, and the new environment being configured to provision the local application on the cloud system; and
generating one or more templates of the new environment, each template of the one or more templates being a deployable version of the local application, and each of the one or more templates being separately modifiable to include one or more modifications to the one or more configuration settings of the local application.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the one or more configuration settings are any one or more of a topology associated with the local application and one or more application-layer customization settings defined at the local server.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising:
identifying, at the cloud system, one or more new features, each of the one or more new features being configured to add a new feature to the local application;
identifying a template of the one or more templates of the new environment;
updating the template to include the one or more new features; and
deploying the updated template at the cloud system.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the one or more configuration settings are any one or more of: binary source code of the local application; one or more binary changes to the local application, customizations, or database changes; middleware data of the local application representing at least a version of a database, an application server, or a web server that execute the local application; operating system images of the local application; system configurations associated with the local application; and a deployment topology associated with the local application.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein generating the one or more templates includes generating each of a first template and a second template of the local application, wherein the first template is defined by a first topology for a first application environment, wherein the second template is defined by a second topology for a second application environment, and wherein the first topology is different than the second topology.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein generating the one or more templates includes performing a clone-to-template feature that includes:
generating a clone of the local application, wherein the clone of the local application includes the one or more configuration settings of the local application;
transforming the clone of the local application into the defined format;
labeling the clone of the local application with a unique identifier; and
storing the clone of the local application in a repository, wherein the clone of the local application is stored in association with the unique identifier.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the local application is associated with a database server, wherein when a version of the database server does not match a predefined version, the export application automatically converts the version of the database server into another version to export the local application to the cloud system.

### Claim 8

A system, comprising:
one or more data processors; and
a non-transitory computer-readable storage medium containing instructions which, when executed on the one or more data processors, cause the one or more data processors to perform operations including:
receiving, at a cloud system, a request for an export application from a local server, the local server storing a local application, the export application being configured to export the local application to the cloud system, and the local application being defined by one or more configuration settings stored at the local server;
transmitting the export application to the local server, wherein the export application is configured to execute on the local server to extract the local application, and execution of the export application includes:
automatically discovering application data stored at the local server, the application data characterizing at least a network architecture of the local application, wherein the application data includes at least the one or more configuration settings that define the local application, and
transforming the application data into exportable deployment data that includes a configuration file with metadata representing the local application, the exportable deployment data being in a defined format, and the transforming including serializing the local application into an exportable deployment data in the defined format;
receiving, at the cloud system and from the local server, the exportable deployment data;
defining a new environment for the local application in the cloud system, the new environment being defined using the one or more configuration settings included in the exportable deployment data, and the new environment being configured to provision the local application on the cloud system; and
generating one or more templates of the new environment, each template of the one or more templates being a deployable version of the local application, and each of the one or more templates being separately modifiable to include one or more modifications to the one or more configuration settings of the local application.

### Claim 9 (depends on 8)

The system of claim 8, wherein the one or more configuration settings are any one or more of a topology associated with the local application and one or more application-layer customization settings defined at the local server.

### Claim 10 (depends on 8)

The system of claim 8, wherein the operations further comprise:
identifying, at the cloud system, one or more new features, each of the one or more new features being configured to add a new feature to the local application;
identifying a template of the one or more templates of the new environment;
updating the template to include the one or more new features; and
deploying the updated template at the cloud system.

### Claim 11 (depends on 8)

The system of claim 8, wherein the one or more configuration settings are any one or more of: binary source code of the local application; one or more binary changes to the local application, customizations, or database changes; middleware data of the local application representing at least a version of a database, an application server, or a web server that execute the local application; operating system images of the local application; system configurations associated with the local application; and a deployment topology associated with the local application.

### Claim 12 (depends on 8)

The system of claim 8, wherein generating the one or more templates includes generating each of a first template and a second template of the local application, wherein the first template is defined by a first topology for a first application environment, wherein the second template is defined by a second topology for a second application environment, and wherein the first topology is different than the second topology.

### Claim 13 (depends on 8)

The system of claim 8, wherein generating the one or more templates includes performing a clone-to-template feature that includes:
generating a clone of the local application, wherein the clone of the local application includes the one or more configuration settings of the local application;
transforming the clone of the local application into the defined format;
labeling the clone of the local application with a unique identifier; and
storing the clone of the local application in a repository, wherein the clone of the local application is stored in association with the unique identifier.

### Claim 14 (depends on 8)

The system of claim 8, wherein the local application is associated with a database server, wherein when a version of the database server does not match a predefined version, the export application automatically converts the version of the database server into another version to export the local application to the cloud system.

### Claim 15

A computer-program product tangibly embodied in a non-transitory machine-readable storage medium, including instructions configured to cause a data processing apparatus to perform operations including:
receiving, at a cloud system, a request for an export application from a local server, the local server storing a local application, the export application being configured to export the local application to the cloud system, and the local application being defined by one or more configuration settings stored at the local server;
transmitting the export application to the local server, wherein the export application is configured to execute on the local server to extract the local application, and execution of the export application includes:
automatically discovering application data stored at the local server, the application data characterizing at least a network architecture of the local application, wherein the application data includes at least the one or more configuration settings that define the local application, and
transforming the application data into exportable deployment data that includes a configuration file with metadata representing the local application, the exportable deployment data being in a defined format, and the transforming including serializing the local application into an exportable deployment data in the defined format;
receiving, at the cloud system and from the local server, the exportable deployment data;
defining a new environment for the local application in the cloud system, the new environment being defined using the one or more configuration settings included in the exportable deployment data, and the new environment being configured to provision the local application on the cloud system; and
generating one or more templates of the new environment, each template of the one or more templates being a deployable version of the local application, and each of the one or more templates being separately modifiable to include one or more modifications to the one or more configuration settings of the local application.

### Claim 16 (depends on 15)

The computer-program product of claim 15, wherein the one or more configuration settings are any one or more of a topology associated with the local application and one or more application-layer customization settings defined at the local server.

### Claim 17 (depends on 15)

The computer-program product of claim 15, further comprising: identifying, at the cloud system, one or more new features, each of the one or more new features being configured to add a new feature to the local application; identifying a template of templates of the new environment; updating the template to include the one or more new features; and deploying the updated template at the cloud system.

### Claim 18 (depends on 15)

The computer-program product of claim 15, wherein the one or more configuration settings are any one or more of: binary source code of the local application; one or more binary changes to the local application, customizations, or database changes; middleware data of the local application representing at least a version of a database, an application server, or a web server that execute the local application; operating system images of the local application; system configurations associated with the local application; and a deployment topology associated with the local application.

### Claim 19 (depends on 15)

The computer-program product of claim 15, wherein generating the one or more templates includes generating each of a first template and a second template of the local application, wherein the first template is defined by a first topology for a first application environment, wherein the second template is defined by a second topology for a second application environment, and wherein the first topology is different than the second topology.

### Claim 20 (depends on 15)

The computer-program product of claim 15, wherein generating the one or more templates includes performing a clone-to-template feature that includes:
generating a clone of the local application, wherein the clone of the local application includes the one or more configuration settings of the local application;
transforming the clone of the local application into the defined format;
labeling the clone of the local application with a unique identifier; and
storing the clone of the local application in a repository, wherein the clone of the local application is stored in association with the unique identifier.
