# US 2021/0279239 A1 · Trihybrid data movement, data governance and data provenance system

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

- Number: US 2021/0279239 A1
- Document ID: US20210279239A1
- Status: Published application
- Kind: A1
- Application number: 16/812,956
- Filed: 2020-03-09
- Published: 2021-09-09
- Earliest claimed: 2020-03-09
- Assignees: Bank of America Corporation
- Applicants: Bank of America Corporation
- Inventors: Daniel Metz; Prasad Dasari; David Malament; Jeff L. Howard
- Web page: https://patentgrep.com/patent/US20210279239A1

## CPC

- G06F 16/2471: {Distributed queries}
- G06F 16/219: {Managing data history or versioning (querying versioned data G06F16/2474; querying temporal data G06F16/2477)}
- G06F 16/24573: {using data annotations, e.g. user-defined metadata}
- G06F 16/248: Presentation of query results
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/541: {via adapters, e.g. between incompatible applications}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A trihybrid data movement, data governance and data provenance system may include a distribute module, a publisher and a plurality of subscribers. The distribute module may include a user interface. The user interface may receive a publication registration from the publisher. The publication registration may register a publication. The user interface may receive a subscription registration from each of the plurality of subscribers. The subscription registration may subscribe to the publication. The publication registration and/or subscription registration may include metadata relating to the publication and/or subscription. A metadata store, included in the distribute module, may store the publication registration and/or the subscription registration. The publication may be published by transmitting a unique identifier from the publisher to an application programming interface within the distribute module. The distribute module may transmit, based on the stored publication registration and subscription registration, a customized publication to each of the plurality of subscribers.

## Claims

### Claim 1

A trihybrid data movement, data governance and data provenance system comprising:
a distribute module, said distribute module comprising:
a user interface;
a distribute application programming interface, said distribute application programming interface communicates with the user interface;
a distribute module database, said distribute module communicates with the distribute application programming interface, said distribute module database comprising:
a metadata store;
a data engine, said data engine comprising:
a data engine application programming interface;
a publisher flow application, said publisher flow application communicates with the data engine application programming interface; and
a subscriber flow application, said subscriber flow application communicates with the publisher flow application;
a publisher comprising:
a job scheduler, said job scheduler publishes a publication; and
a publisher datastore, said publisher datastore comprising the publication;
a subscriber comprising:
a subscriber server, said subscriber server receives the publication;
wherein:
the job scheduler triggers the publishing of the publication by calling an endpoint on the distribute application programming interface, the calling comprises transmitting a unique identifier generated for the publication from the job scheduler to the distribute application programming interface;
the distribute application programming interface retrieves from the metadata store included in the distribute module database:
publisher metadata relating to publication, said publisher metadata comprising location of publication; and
subscriber metadata relating to the subscriber; and
the distribute application programming interface combines the publisher metadata and the subscriber metadata into one metadata payload.

### Claim 2 (depends on 1)

The system of claim 1, wherein the distribute application programming interface transmits the one metadata payload to the data engine application programming interface.

### Claim 3 (depends on 2)

The system of claim 2, wherein the data engine application programming interface transmits the one metadata payload to the publisher flow application.

### Claim 4 (depends on 3)

The system of claim 3, wherein the publisher flow application retrieves the publication, based on the one metadata payload, from the publisher datastore.

### Claim 5 (depends on 4)

The system of claim 4, wherein the publisher flow application transmits the retrieved publication and the one metadata payload to the subscriber flow application.

### Claim 6 (depends on 5)

The system of claim 5, wherein the subscriber flow application filters the publication based on the subscriber metadata included in the one metadata payload.

### Claim 7 (depends on 6)

The system of claim 6, wherein the subscriber flow application transmits the filtered publication to the subscriber server.

### Claim 8

A trihybrid data movement, data governance and data provenance system comprising:
a distribute module, said distribute module comprising:
a user interface;
a distribute application programming interface, said distribute application programming interface communicates with the user interface;
a distribute module database, said distribute module communicates with the distribute application programming interface, said distribute module database comprising:
a metadata store;
a data engine, said data engine comprising:
a data engine application programming interface;
a publisher flow application, said publisher flow application communicates with the data engine application programming interface; and
a subscriber flow application, said subscriber flow application communicates with the publisher flow application;
a publisher comprising:
a job scheduler, said job scheduler publishes a publication; and
a publisher datastore, said publisher datastore comprising the publication;
a plurality of subscribers, each subscriber, included in the plurality of subscribers, comprising:
a subscriber server, said subscriber server receives a predetermined subset of the publication, said predetermined subset specified by the subscriber;
wherein:
the job scheduler triggers the publishing of the publication by calling an endpoint on the distribute application programming interface, the calling comprises transmitting a unique identifier generated for the publication from the job scheduler to the distribute application programming interface;
the distribute application programming interface retrieves from the metadata store included in the distribute module database:
publisher metadata relating to publication, said publisher metadata comprising location of publication; and
subscriber metadata, said subscriber metadata comprising:
the plurality of subscribers; and
for each of the subscribers included in the plurality of subscribers, metadata relating to the predetermined subset of the publication; and
the distribute application programming interface combines the publisher metadata and the subscriber metadata into one metadata payload.

### Claim 9 (depends on 8)

The system of claim 8, wherein the distribute application programming interface transmits the one metadata payload to the data engine application programming interface.

### Claim 10 (depends on 9)

The system of claim 9, wherein the data engine application programming interface transmits the one metadata payload to the publisher flow application.

### Claim 11 (depends on 10)

The system of claim 10, wherein the publisher flow application retrieves the publication, based on the one metadata payload, from the publisher datastore.

### Claim 12 (depends on 11)

The system of claim 11, wherein the publisher flow application transmits the retrieved publication and the one metadata payload to the subscriber flow application.

### Claim 13 (depends on 12)

The system of claim 12, wherein the subscriber flow application filters the publication for each subscriber, included in the plurality of subscribers, based on the subscriber metadata, said subscriber metadata that includes the predetermined subset of the publication included the one metadata payload.

### Claim 14 (depends on 13)

The system of claim 13, wherein the subscriber flow application transmits each predetermined subset of the publication, as specified by the subscriber, to each subscriber server.

### Claim 15

A method for trihybrid data movement, data governance and data provenance, the method comprising:
receiving, from a publisher, at a user interface, a request to register a publication, wherein a distribute application programming interface commands the user interface;
displaying, at the user interface, a plurality of database and/or connection questions;
receiving, at the user interface, a set of responses to the plurality of database and/or connection questions;
fetching, from a datastore linked to the publisher, a list of tables, columns and rows, included in the publication;
presenting, via the user interface, the list of tables, columns and rows to the publisher;
receiving a selection, via the user interface, of a list of tables, columns and rows to be published;
receiving a registration confirmation from the publisher via the user interface;
upon receipt of the registration confirmation from the publisher, transmitting a set of publication metadata to a metadata store within a distribute database via a distribute application programming interface, said set of publication metadata comprising the set of responses and the selection of the list of tables, columns and rows;
receiving, from a subscriber, at the user interface, a request to subscribe to the publication;
displaying to the subscriber, at the user interface, the set of publication metadata;
receiving, from the subscriber, at the user interface, a selection of one or more tables, columns and/or rows from the set of publication metadata;
receiving a subscription confirmation from the subscriber via the user interface;
upon receipt of the registration confirmation from the subscriber, transmitting a set of subscription metadata to the metadata store via the distribute application programming interface, said set of subscription metadata comprising a subscriber datastore location and the selection, received from the subscriber;
triggering, by a job scheduler, the publishing of the publication by calling an endpoint on the distribute application programming interface;
retrieving, by the distribute application programming interface, from the metadata store, the set of publication metadata and the set of subscription metadata;
combining the set of publication metadata and the set of subscription metadata into a metadata payload;
transferring the metadata payload from the distribute application programming interface to a data engine application programming interface;
identifying the publisher based on the metadata payload at the data engine application programming interface;
calling a publication flow application from the data engine application programming interface, said calling including transferring the metadata payload to the publication flow application;
using the metadata payload at the publication flow application to retrieve the publication from the datastore linked to the publisher;
transmitting the publication and the set of subscription metadata from the publication flow application to a subscription flow application;
customizing the publication into a subscriber-customized publication at the subscription flow application, said customizing based on the set of subscription metadata; and
transmitting the subscriber-customized publication from the subscription flow application to a server associated with the subscriber.

### Claim 16 (depends on 15)

The method of claim 15, wherein the triggering the publishing of the publication comprises transmitting a unique identifier from the job scheduler to the distribute application programming interface.

### Claim 17 (depends on 16)

The method of claim 16, wherein the unique identifier is generated for the publication upon the receipt of the registration confirmation from the publisher.

### Claim 18 (depends on 15)

The method of claim 15, wherein a data engine includes the data engine application programming interface, the publication flow application and the subscription flow application.

### Claim 19 (depends on 18)

The method of claim 18, wherein the user interface, the distribute application programming interface and the distribute database are external to the data engine.

### Claim 20 (depends on 19)

The method of claim 19, further comprising, accessing the data engine by a plurality of data provenance, data governance and data movement databases, to retrieve data relating to data movement of the publication.
