IP Library Granted Patent US 12,657,021
Granted Patent B2
US 12,657,021 · App. 17/942,343 · Granted Jun 16, 2026

Schema transformation for managing an application build

Inventors: Jiun-Cheng Wang (San Jose, CA); Harish Santhanagopal (Fremont, CA)
Assignee: Oracle International Corporation
G06F8/71G06F8/36G06F16/213G06F16/258
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 12,657,021
App. No.
17/942,343
Granted
Jun 16, 2026
Kind
B2
Abstract

Techniques for generating a schema transformation for application data to monitor and manage the application in a runtime environment are disclosed. A system runs an application plugin in a runtime environment to identify data generated by application modules in one or both of an application build process and an application execution process. The application plugin is a software program executed together with the application build process. The application plugin identifies a source schema associated with application data. The application plugin identifies a target schema associated with an analysis program or machine learning model. The application plugin generates a schema transformation to convert application runtime data into a target data set. The system applies the target data set to an analysis program, such as a machine learning model, to generate output analysis data associated with the application.

Claims (64)

1 . A non-transitory computer readable medium comprising instructions which, when executed by one or more hardware processors, causes performance of operations comprising:

executing a first application in a computing environment using a set of computing resources;

based on executing the first application in the computing environment, generating a first dataset associated with at least one of (a) performance of the first application, and (b) the set of computing resources used to execute the first application;

analyzing, by an application plugin, features of a first application-internal module of a first application to detect characteristics of a first dataset generated by the first application-internal module,

wherein the first dataset is accessible by a second application-internal module of the first application, and

wherein the first dataset is inaccessible by a second application that is external to the first application;

based on the characteristics of the first dataset, determining, by the application plugin, whether the first dataset comprises values associated with a field of a target database schema;

responsive to determining that the first dataset comprises values associated with the field of the target database schema:

transforming the first dataset to generate a second dataset formatted in accordance with the target database schema, at least by transforming one or more of formatting, size, sample rate, naming convention, and attributes of the first dataset in accordance with the target database schema; and

configuring the second dataset, that has been generated by transforming the first dataset, for access by the second application at least by: generating, by the application plugin, a plugin output comprising or referencing the second dataset formatted in accordance with the target database schema,

wherein the second application accesses the second dataset.

2 . The non-transitory computer readable medium of claim 1 , wherein the operations further comprise computing the target database schema based on specifications associated with one or more machine learning models.

3 . The non-transitory computer readable medium of claim 1 , wherein the operations further comprise computing the target database schema based on information required by each of two or more machine learning models.

4 . The non-transitory computer readable medium of claim 1 , wherein analyzing the features of the first application-internal module to detect the characteristics of the first dataset generated by the first application-internal module comprises traversing a private Application Programming Interface (API) that is accessible to other application-internal modules of a same application, including the second application-internal module, but not accessible to external application modules comprised in other applications, including the second application, and

wherein traversing the private API comprises detecting metadata describing the values returned by the private API and a data type of the values.

5 . The non-transitory computer readable medium of claim 1 , wherein the operations further comprise:

transmitting, by the application plugin, the plugin output to the second application, wherein the second application is in a same security environment as the first application, and

wherein the first application transmits the plugin output to the second application without exposing the plugin output to external applications outside the security environment.

6 . The non-transitory computer readable medium of claim 1 , wherein analyzing, by the application plugin, the features of the first application-internal module includes monitoring an execution state of the first application-internal module, and

wherein the values are extracted from different execution states during execution of the first application-internal module.

7 . The non-transitory computer readable medium of claim 1 , wherein the first application-internal module is a module that transmits data only to other modules of the first application, without transmitting data to modules comprised in other applications, including the second application.

8 . The non-transitory computer readable medium of claim 1 , wherein the operations further comprise:

receiving, by the application plugin, configuration information that is generated by a machine learning model based on the plugin output; and

modifying a configuration associated with the first application based on the configuration information.

9 . The non-transitory computer readable medium of claim 1 , wherein the operations further comprise:

transforming, by a second instance of the application plugin, a third dataset to a fourth dataset formatted in accordance with the target database schema,

wherein the second dataset and the fourth dataset correspond to a same target schema, and wherein the first dataset and the third dataset correspond to different schemas, and

wherein a first function for transforming first dataset to the second dataset is different than a second function for transforming third dataset to the fourth dataset.

10 . The non-transitory computer readable medium of claim 1 , wherein the operations further comprise:

modifying characteristics of the first application at runtime, by the application plugin, based on data detected by the application plugin.

11 . A method comprising:

executing a first application in a computing environment using a set of computing resources;

based on executing the first application in the computing environment, generating a first dataset associated with at least one of (a) performance of the first application, and (b) the set of computing resources used to execute the first application;

analyzing, by an application plugin, features of a first application-internal module of a first application to detect characteristics of a first dataset generated by the first application-internal module,

wherein the first dataset is accessible by a second application-internal module of the first application, and

wherein the first dataset is inaccessible by a second application that is external to the first application;

based on the characteristics of the first dataset, determining, by the application plugin, whether the first dataset comprises values associated with a field of a target database schema;

responsive to determining that the first dataset comprises values associated with the field of the target database schema:

transforming the first dataset to generate a second dataset formatted in accordance with the target database schema, at least by transforming one or more of formatting, size, sample rate, naming convention, and attributes of the first dataset in accordance with the target database schema; and

configuring the second dataset, that has been generated by transforming the first dataset, for access by the second application at least by: generating, by the application plugin, a plugin output comprising or referencing the second dataset formatted in accordance with the target database schema,

wherein the second application accesses the second dataset.

12 . The method of claim 11 , further comprising: computing the target database schema based on specifications associated with one or more machine learning models.

13 . The method of claim 11 , further comprising: computing the target database schema based on information required by each of two or more machine learning models.

14 . The method of claim 11 , wherein analyzing the features of the first application-internal module to detect the characteristics of the first dataset generated by the first application-internal module comprises traversing a private Application Programming Interface (API) that is accessible to other application-internal modules of a same application, including the second application-internal module, but not accessible to external application modules comprised in other applications, including the second application, and

wherein traversing the private API comprises detecting metadata describing the values returned by the private API and a data type of the values.

15 . The method of claim 11 , further comprising:

transmitting, by the application plugin, the plugin output to the second application, wherein the second application is in a same security environment as the first application, and

wherein the first application transmits the plugin output to the second application without exposing the plugin output to external applications outside the security environment.

16 . The method of claim 11 , wherein analyzing, by the application plugin, the features of the first application-internal module includes monitoring an execution state of the first application-internal module, and

wherein the values are extracted from different execution states during execution of the first application-internal module.

17 . The method of claim 11 , wherein the first application-internal module is a module that transmits data only to other modules of the first application, including the second application-internal module, without transmitting data to modules comprised in other applications, including the second application.

18 . A system comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the system to perform:

executing a first application in a computing environment using a set of computing resources;

based on executing the first application in the computing environment, generating a first dataset associated with at least one of (a) performance of the first application, and (b) the set of computing resources used to execute the first application;

analyzing, by an application plugin, features of a first application-internal module of a first application to detect characteristics of a first dataset generated by the first application-internal module,

wherein the first dataset is accessible by a second application-internal module of the first application, and

wherein the first dataset is inaccessible by a second application that is external to the first application;

based on the characteristics of the first dataset, determining, by the application plugin, whether the first dataset comprises values associated with a field of a target database schema;

responsive to determining that the first dataset comprises values associated with the field of the target database schema:

transforming the first dataset to generate a second dataset formatted in accordance with the target database schema, at least by transforming one or more of formatting, size, sample rate, naming convention, and attributes of the first dataset in accordance with the target database schema; and

configuring the second dataset, that has been generated by transforming the first dataset, for access by the second application at least by: generating, by the application plugin, a plugin output comprising or referencing the second dataset formatted in accordance with the target database schema,

wherein the second application accesses the second dataset.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2022
From: WANG, JIUN-CHENG; SANTHANAGOPAL, HARISH
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 061059/0570 →
Continuity (1)
Related Publication 20240086184A1 · Mar 14, 2024
References Cited (28)
US 9047358B2 · Allman · 2015 [cited by examiner]
US 9600269B1 · Bregler · 2017 [cited by examiner]
US 10331697B2 · Allman · 2019 [cited by examiner]
US 10674438B2 · Bregler · 2020 [cited by examiner]
US 10891305B2 · Allman · 2021 [cited by examiner]
US 11074475B2 · Coven · 2021 [cited by examiner]
US 20100153920A1 · Bonnet · 2010 [cited by examiner]
US 20120005241A1 · Ortel · 2012 [cited by examiner]
US 20120221522A1 · Allman · 2012 [cited by examiner]
US 20150205852A1 · Allman · 2015 [cited by examiner]
US 20150363436A1 · Cerasaro · 2015 [cited by examiner]
US 20170147310A1 · Bregler · 2017 [cited by examiner]
US 20170154072A1 · Cerasaro · 2017 [cited by examiner]
US 20170286100A1 · Bregler · 2017 [cited by examiner]
US 20170286139A1 · Chaney · 2017 [cited by examiner]
US 20170357648A1 · Fink · 2017 [cited by examiner]
US 20180203894A1 · Cerasaro · 2018 [cited by examiner]
US 20190007895A1 · Bregler · 2019 [cited by examiner]
US 20190114160A1 · Yehuda · 2019 [cited by examiner]
US 20190235883A1 · Chaney · 2019 [cited by examiner]
US 20190266173A1 · Allman · 2019 [cited by examiner]
US 20190361680A1 · Sanchez · 2019 [cited by examiner]
US 20200004759A1 · Brebner · 2020 [cited by examiner]
US 20200285977A1 · Brebner · 2020 [cited by examiner]
US 20210133204A1 · Motamedi · 2021 [cited by examiner]
US 20210133205A1 · Motamedi · 2021 [cited by examiner]
US 20230109718A1 · Polen · 2023 [cited by examiner]
US 20230252233A1 · Gutierrez · 2023 [cited by examiner]