IP Library Granted Patent US 10,331,667
Granted Patent B2
US 10,331,667 · App. 15/663,557 · Granted Jun 25, 2019

Systems and methods for bi-directional database application programming interface, extract transform and load system, and user computing device

Inventors: Ben M. Jarman (Irvine, CA); Hoa V. Ho (Ho Chi Minh, VN); Ty H. Hoang (Irvine, CA); Mohamed Alkady (Orange, CA); Peter A. Tariche (Irvine, CA)
Assignee: Hart, Inc.
G06F16/24534G06F16/3331G06F16/9535
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,331,667
App. No.
15/663,557
Granted
Jun 25, 2019
Kind
B2
Abstract

Systems and methods are provided for improved integration between database systems. Data from multiple disparate computing systems is transmitted via bi-directional communication interfaces. The data is stored in its original form from respective data sources and transformed in stream and/or batch processes into one or more predefined formats. Individual transformations are stored and/or recorded. The transformed and/or integrated data is provided to one or more computing devices via the communication interfaces.

Claims (123)

1. A system for collecting and sharing data from multiple disparate data sources, the system comprising:

one or more first data stores configured to store a plurality of instruction sets for processing data, wherein each instruction set of the plurality of instruction sets corresponds to a workflow from a plurality of workflows;

a plurality of second data stores comprising a NoSQL database and a search engine; and

one or more hardware computer processors programmed, via executable code instructions, to:

receive, via an application programming interface, original data;

store the original data in a data store of the plurality of second data stores;

determine that the original data is incomplete;

in response to determining that the original data is incomplete, add the original data to a queue;

receive first data;

determine that the first data completes the original data;

generate, from the original data and the first data, second data according to an instruction set;

store the second data in the data store;

identify, from the plurality of instruction sets, a first instruction set from a first workflow;

generate, from the second data, third data according to the first instruction set from the first workflow, wherein generating the third data according to the first instruction set further comprises a first plurality of steps, and wherein the first plurality of steps comprise:

ingesting the second data into a data object; and

executing a formatter that takes the data object as an input and outputs the third data;

store the third data in the NoSQL database and the search engine;

store the first plurality of steps in the data store, wherein the first plurality of steps indicate generation of a new data item from an original data item in the second data;

identify, from the plurality of instruction sets, a second instruction set from a second workflow;

determine a second plurality of steps, wherein to determine the second plurality of steps comprises:

receive an additional step comprising identifying a new field from a second data object;

generate, from the second data, fourth data according to the second instruction set from the second workflow, the fourth data being different from the third data, wherein generating the fourth data according to the second instruction set further comprises the second plurality of steps, and wherein the second plurality of steps comprise:

ingesting the second data into the second data object;

identifying the new field from the second data object that corresponds to the additional step; and

executing the formatter that takes the second data object as an input and outputs the fourth data comprising the new field;

store the fourth data in the NoSQL database and the search engine;

receive, from a first external computing device, a first request;

in response to receiving the first request, retrieve the third data from the NoSQL database;

transmit the third data to the first external computing device;

receive, from a second external computing device, a second request;

in response to receiving the second request, retrieve the fourth data from the search engine; and

transmit the fourth data to the second external computing device.

2. The system of claim 1 , wherein respective groups of the first plurality of steps indicate individual transformations of the second data to respective new data items.

3. The system of claim 1 , wherein the one or more hardware computer processors are further programmed, via the executable instructions, to:

add a third workflow to the plurality of workflows, the third workflow comprising a third instruction set for processing data;

generate, from the second data, fifth data according to the third instruction set; and

store the fifth data in the NoSQL database and the search engine.

4. A system for collecting and sharing data from multiple disparate data sources, the system comprising:

one or more data stores configured to store a plurality of instruction sets for processing data; and

one or more hardware computer processors programmed, via executable code instructions, to:

receive, via an application programming interface, original data;

store the original data in the one or more data stores;

determine that the original data is incomplete;

in response to determining that the original data is incomplete, add the original data to a queue;

receive first data;

determine that the first data completes the original data;

generate, from the original data and the first data, second data according to an instruction set;

store the second data in the one or more data stores;

identify, from the plurality of instruction sets, a first instruction set;

generate, from the second data, third data according to the first instruction set, wherein generating the third data according to the first instruction set further comprises a first plurality of steps, and wherein the first plurality of steps comprise:

ingesting the second data into a data object; and

executing a formatter that takes the data object as an input and outputs the third data;

store the third data in the one or more data stores;

store the first plurality of steps in the one or more data stores, wherein the first plurality of steps indicate generation of a new data item from an original data item in the second data;

identify, from the plurality of instruction sets, a second instruction set;

determine a second plurality of steps, wherein to determine the second plurality of steps comprises:

receive an additional step comprising identifying a new field from a second data object;

generate, from the second data, fourth data according to the second instruction set, the fourth data being different from the third data, wherein generating the fourth data according to the second instruction set further comprises the second plurality of steps, and wherein the second plurality of steps comprise:

ingesting the second data into the second data object;

identifying the new field from the second data object that corresponds to the additional step; and

executing the formatter that takes the second data object as an input and outputs the fourth data comprising the new field;

store the fourth data in the one or more data stores;

receive, from a first external computing device, a first request;

in response to receiving the first request, transmit the third data;

receive, from a second external computing device, a second request; and

in response to receiving the second request, transmit the fourth data.

5. The system of claim 4 , wherein respective groups of the first plurality of steps indicate individual transformations of the second data to respective new data items.

6. The system of claim 4 , wherein the first instruction set comprises first boolean logic, wherein the one or more hardware computer processors are further programmed, via the executable instructions, to:

determine that the second data corresponds to a particular type of data; and

determine, according to the first boolean logic, to generate the third data because the second data corresponds to the particular type of data.

7. The system of claim 4 , wherein the plurality of instruction sets further comprises a third instruction set, wherein the third instruction set comprises third boolean logic, wherein the one or more hardware computer processors are further programmed, via the executable instructions, to:

determine that the second data corresponds to a particular type of data; and

determine, according to the third boolean logic, to not generate data according to the third instruction set because the second data corresponds to the particular type of data.

8. The system of claim 4 , wherein storing the third data in the one or more data stores further comprises:

storing the third data in a NoSQL database; and

storing the third data in a search engine.

9. The system of claim 4 , wherein each instruction set of the plurality of instruction sets corresponds to a workflow from a plurality of workflows.

10. The system of claim 9 , wherein the one or more hardware computer processors are further programmed, via the executable instructions, to:

add a third workflow to the plurality of workflows, the third workflow comprising a third instruction set for processing data;

generate, from the second data, fifth data according to the third instruction set; and

store the fifth data in the one or more data stores.

11. A method for collecting and sharing data from multiple disparate data sources, the method comprising:

receiving, via an application programming interface, original data;

storing the original data in one or more data stores;

determining that the original data is incomplete;

in response to determining that the original data is incomplete, adding the original data to a queue;

receiving first data;

determining that the first data completes the original data;

generating, from the original data and the first data, second data according to an instruction set;

storing the second data in the one or more data stores;

identifying, from a plurality of instruction sets, a first instruction set;

generating, from the second data, third data according to the first instruction set, wherein generating the third data according to the first instruction set further comprises a first plurality of steps, and wherein the first plurality of steps comprise:

ingesting the second data into a data object; and

executing a formatter that takes the data object as an input and outputs the third data;

storing the third data in the one or more data stores;

storing the first plurality of steps in the one or more data stores, wherein the first plurality of steps indicate generation of a new data item from an original data item in the second data;

identifying, from the plurality of instruction sets, a second instruction set;

determining a second plurality of steps, wherein determining the second plurality of steps comprises:

receiving an additional step comprising identifying a new field from a second data object;

generating, from the second data, fourth data according to the second instruction set, the fourth data being different from the third data, wherein generating the fourth data according to the second instruction set further comprises the second plurality of steps, and wherein the second plurality of steps comprise:

ingesting the second data into the second data object;

identifying the new field from the second data object that corresponds to the additional step; and

executing the formatter that takes the second data object as an input and outputs the fourth data comprising the new field;

storing the fourth data in the one or more data stores;

receiving, from a first external computing device, a first request;

in response to receiving the first request, transmitting the third data;

receiving, from a second external computing device, a second request; and

in response to receiving the second request, transmitting the fourth data.

12. The method of claim 11 , wherein respective groups of the first plurality of steps indicate individual transformations of the second data to respective new data items.

13. The method of claim 11 , wherein the first instruction set comprises first boolean logic, further comprising:

determining that the second data corresponds to a particular type of data; and

determining, according to the first boolean logic, to generate the third data because the second data corresponds to the particular type of data.

14. The method of claim 11 , wherein the plurality of instruction sets further comprises a third instruction set, wherein the third instruction set comprises third boolean logic, further comprising:

determining that the second data corresponds to a particular type of data; and

determining, according to the third boolean logic, to not generate data according to the third instruction set because the second data corresponds to the particular type of data.

15. The method of claim 11 , wherein storing the first data in the one or more data stores further comprises:

storing the third data in a NoSQL database; and

storing the third data in a search engine.

16. The method of claim 11 , wherein each instruction set of the plurality of instruction sets corresponds to a workflow from a plurality of workflows.

17. The method of claim 11 , further comprising:

adding a third workflow to the plurality of workflows, the third workflow comprising a third instruction set for processing data;

generating, from the second data, fifth data according to the third instruction set; and

storing the fifth data in the one or more data stores.

Assignments (2)
SECURITY INTEREST Recorded Jul 13, 2023
From: HART, INC.
To: HART INVESTORS LLC
Reel/Frame 064238/0352 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2019
From: JARMAN, BEN M; HO, HOA V; HOANG, TY H; ALKADY, MOHAMED; TARICHE, PETER A
To: HART, INC.
Reel/Frame 049148/0283 →
Continuity (4)
Provisional Application 62368981 · Jul 29, 2016
Provisional Application 62380965 · Aug 29, 2016
Provisional Application 62433708 · Dec 13, 2016
Related Publication 20180032573A1 · Feb 1, 2018