# US 10,120,917 B2 · Integrating object-based data integration tool with a version control system in centralized and decentralized environments

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

- Number: US 10,120,917 B2
- Document ID: US10120917B2
- Status: Granted
- Kind: B2
- Application number: 14/866,707
- Filed: 2015-09-25
- Published: 2016-03-31
- Granted: 2018-11-06
- Earliest claimed: 2014-09-26
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Chetan Kothari; John Westworth Leigh; Robert Velisar
- Web page: https://patentgrep.com/patent/US10120917B2

## CPC

- G06F 16/13: File access structures, e.g. distributed indices (arrangements of input from, or output to, record carriers G06F3/06)
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 16/134: {Distributed indices}
- G06F 16/182: Distributed file systems
- G06F 16/183: {Provision of network file services by network file servers, e.g. by using NFS, CIFS (network file access protocols H04L67/1097)}
- G06F 16/219: {Managing data history or versioning (querying versioned data G06F16/2474; querying temporal data G06F16/2477)}
- G06F 16/2365: {Ensuring data consistency and integrity}
- G06F 16/254: {Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 16/284: {Relational databases}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present disclosure relates generally to a data integration system that integrate an object based data integration tool, such a GUI-based data integration tools, with version control systems using a relational database repository for persistence. Examples of distributed version control systems include Git, Mercurial, and Bazaar, and examples of centralized version control systems include Subversion, CVS etc. in centralized or distributed environments.

## Claims

### Claim 1

A method of synchronizing a data integration tool with a distributed version control system, the method comprising:
locking a data store associated with the data integration tool executing in a centralized development environment, wherein a plurality of client devices access the data integration tool to define one or more data integration processes, and wherein each of the one or more data integration processes define one or more transforms to be performed on one or more data sources and define one or more target data stores to which transformed data is loaded;
disabling version management operations provided by the distributed version control system, wherein the distributed version control tracks versions of objects that define the one or more transforms of the one or more data integration processes, wherein each of the plurality of client devices is in communication with an instance of the distributed version control system, and wherein each instance of the distributed version control system maintains one or more objects identified by a client device in the one or more data integration process for version control;
identifying a plurality of version controlled objects in the data store associated with the data integration tool, and for each version controlled object in the plurality of version controlled objects:
identifying version controlled child objects which are updated in the data store of the data integration tool;
synchronizing the updated version controlled child objects with a remote centralized version control system repository; and
updating version information for each of the updated version controlled child objects maintained in a version table; and
identifying a plurality of non-version controlled objects in the data store associated with the data integration tool, and for each non-version controlled object in the plurality of non-version controlled objects;
adding the non-versioned objects to a local version control system repository;
synchronizing the non-versioned objects with the remote centralized version control system repository; and
adding version information of the added non-versioned objects to the remote centralized version control system repository in the version table.

### Claim 2 (depends on 1)

The method of claim 1, wherein updating version information for each of the updated version controlled child objects comprises:
removing rows in the version table corresponding to version controlled child objects marked as deleted;
creating new versions of modified version controlled child objects and incrementing version information in the version table; and
creating a new version of a object when the object includes an updated child object or the object is updated, and incrementing version information in the version table.

### Claim 3 (depends on 1)

The method of claim 1, further comprising unlocking the data store associated with the data integration tool.

### Claim 4

A system comprising:
a data integration tool executing in a centralized development environment, wherein a plurality of client devices access the data integration tool to define one or more data integration processes, and wherein each of the one or more data integration processes define one or more transforms to be performed on one or more data sources and define one or more target data stores to which transformed data is loaded;
a data store associated with the data integration tool;
a distributed version control system that tracks versions of objects that define the one or more transforms of the one or more data integration processes, wherein each of the plurality of client devices is in communication with an instance of the distributed version control system, and wherein each instance of the distributed version control system maintains one or more objects identified by a client device in the one or more data integration process for version control; and
a remote centralized version control system repository associated with the distributed version control;
wherein, during the data integration process or when the data integration process is complete, the data store is synchronized with the remote centralized version control system repository, the synchronization comprises:
locking the data store associated with the data integration tool;
disabling version management operations provided by the distributed version control system;
identifying a plurality of version controlled objects in the data store associated with the data integration tool, and for each version controlled object in the plurality of version controlled objects:
identifying version controlled child objects which are updated in the data store of the data integration tool;
synchronizing the updated version controlled child objects with the remote centralized version control system repository; and
updating version information for each of the updated version controlled child objects maintained in a version table; and
identifying a plurality of non-version controlled objects in the data store associated with the data integration tool, and for each non-version controlled object in the plurality of non-version controlled objects;
adding the non-versioned objects to a local version control system repository;
synchronizing the non-versioned objects with the remote centralized version control system repository; and
adding version information of the added non-versioned objects to the remote centralized version control system repository in the version table.

### Claim 5 (depends on 4)

The system of claim 4, wherein updating version information for each of the updated version controlled child objects comprises:
removing rows in the version table corresponding to version controlled child objects marked as deleted;
creating new versions of modified version controlled child objects and incrementing version information in the version table; and
creating a new version of a object when the object includes an updated child object or the object is updated, and incrementing version information in the version table.

### Claim 6 (depends on 4)

The system of claim 4, wherein the synchronization further comprises unlocking the data store associated with the data integration tool.
