IP Library › Granted Patent US 10,503,493
Granted Patent B2
US 10,503,493 · App. 15/707,929 · Granted Dec 10, 2019

Distributed versioning of applications using cloud-based systems

Inventors: Biju Narayanan (Kerala, IN); Deepankar Narayanan (Kerala, IN); Christudoss Irwin Tagore (Bangalore, IN); Nagendra Krishnappa (Bangalore, IN); Ravi Shankar (Cupertino, CA)
Assignee: Oracle International Corporation
G06F8/658G06F8/60G06F8/61G06F8/71G06F9/45558G06F9/5072H04L41/082H04L41/0846H04L41/5048G06F2009/45562G06F2009/45591H04L41/0893H04L41/50H04L41/5054H04L41/5096
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 10,503,493
App. No.
15/707,929
Filed
Sep 18, 2017
Granted
Dec 10, 2019
Kind
B2
Examiner
KANG, INSUN
Art Unit
2193
USPC
717/168
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 (63)

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.

2. 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.

3. 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.

4. 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.

5. 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.

6. 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.

7. 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.

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.

9. 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.

10. 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.

11. 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.

12. 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.

13. 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.

14. 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.

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.

16. 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.

17. 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.

18. 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.

19. 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.

20. 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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2018
From: NARAYANAN, BIJU; NARAYANAN, DEEPANKAR; TAGORE, CHRISTUDOSS IRWIN; KRISHNAPPA, NAGENDRA; SHANKAR, RAVI
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 044657/0888 →
Continuity (2)
Provisional Application 62507086 · May 16, 2017
Related Publication 20180336027A1 · Nov 22, 2018
Cited By (4)
US 12,314,772 US 12,461,729 US 12,619,483 US 12,645,515