IP Library Granted Patent US 12,197,456
Granted Patent B2
US 12,197,456 · App. 17/479,952 · Granted Jan 14, 2025

Data virtualization adapter in an integration platform

Inventors: Ignacio Agustin Manzano (Buenos Aires, AR); Jiang Wu (Mountain View, CA); Daniel Fujii (Buenos Aires, AR); Rodrigo Pazos (Buenos Aires, AR); Ezequiel Block (Pilar, AR); Luis Contreras (Buenos Aires, AR)
Assignee: Salesforce, Inc.
G06F16/254G06F9/541G06F16/1794G06F16/213G06F16/258G06F16/288
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,197,456
App. No.
17/479,952
Granted
Jan 14, 2025
Kind
B2
Abstract

Disclosed herein are system, method, and device embodiments for a data bridge adapter in a data integration platform that models any application programming interface as an entity-relationship model. This technique allows an individual using an integration platform to map and transform the entity-relationship model without having to create any custom code. The user may specify target parameters as part of an ETL process, and the entity relationship model may allow appropriate data and API calls to be generated to pass the data to the specified target. By creating an entity-relationship model from any API, the technique further supports versioning, schema change resolution, compatibility detection and other features. Furthermore, data visualization software may use the entity-relationship model to allow users to explore and analyze the data represented in the entity-relationship model.

Claims (59)

1. A method, comprising:

in response to receiving a command to generate an entity-relationship model in a data integration platform that specifies a data source accessible via an application programming interface (API) having a type, selecting, by one or more processors, based on the type, a markup language dialect from one or more markup language dialects and an expression language script from one or more expression language scripts, wherein the markup language dialect and the expression language script correspond to an API design methodology, and wherein the markup language dialect includes a specification of a format of the API design methodology written in a modeling language;

validating, by the one more processors, unstructured data received in response to accessing the API using the markup language dialect;

generating the entity-relationship model by transforming the unstructured data to match the format of the API design methodology using the expression language script;

determining a change to the API by comparing the entity-relationship model to a previously generated entity-relationship model that is specific to the data source and is stored in a stored history of entity-relationship models for the data source;

recording the change in a change history for the data source and storing the entity-relationship model in the stored history of entity-relationship models; and

creating a lineage graph of the data source based on the entity-relationship model, wherein the lineage graph tracks a change for each record in the data source and marks the change in the change history as compatible or incompatible.

2. The method of claim 1 , further comprising:

transmitting, by the one or more processors, the entity-relationship model from the data integration platform to a data visualization software tool via a second API provided by the data visualization software tool.

3. The method of claim 1 , further comprising:

receiving, by the one or more processors, the unstructured data from the API using a connector that establishes a connection to the data source using a connectivity configuration.

4. The method of claim 1 , wherein the command further specifies a data target accessible via a second API having a second type, further comprising:

selecting, by the one or more processors, a second markup language dialect from the one or more markup language dialects and a second expression language script from the one or more expression language scripts;

transforming, by the one or more processors, the entity-relationship model into second unstructured data matching a second format of the second markup language dialect using the second expression language script; and

inserting, by the one or more processors, the second unstructured data into the data target using a connector that establishes a connection to the data target via the second API.

5. The method of claim 1 , further comprising:

performing, by the one or more processors, a job on the entity-relationship model that transforms the entity-relationship model to an expected representation.

6. The method of claim 1 , further comprising:

storing a date and a version number in association with the entity-relationship model.

7. A system, comprising:

a memory; and

at least one processor coupled to the memory and configured to:

in response to receiving a command to generate an entity-relationship model in a data integration platform that specifies a data source accessible via an application programming interface (API) having a type, select based on the type, a markup language dialect from one or more markup language dialects and an expression language script from one or more expression language scripts, wherein the markup language dialect and the expression language script correspond to an API design methodology, and wherein the markup language dialect includes a specification of a format of the API design methodology written in a modeling language;

validate unstructured data received in response to accessing the API using the markup language dialect;

generate the entity-relationship model by transforming the unstructured data to match the format of the API design methodology using the expression language script;

determine a change to the API by comparing the entity-relationship model to a previously generated entity-relationship model that is specific to the data source and is stored in a stored history of entity-relationship models for the data source;

record the change in a change history for the data source and store the entity-relationship model in the stored history of entity-relationship models; and

create, by the one or more processors, a lineage graph of the data source based on the entity-relationship model, wherein the lineage graph tracks a change for each record in the data source and marks the change in the change history as compatible or incompatible.

8. The system of claim 7 , the at least one processor further configured to:

transmit the entity-relationship model from the data integration platform to a data visualization software tool via a second API provided by the data visualization software tool.

9. The system of claim 7 , the at least one processor further configured to:

receive the unstructured data from the API using a connector that establishes a connection to the data source using a connectivity configuration.

10. The system of claim 7 , wherein the command further specifies a data target accessible via a second API having a second type, the at least one processor further configured to:

select a second markup language dialect from the one or more markup language dialects and a second expression language script from the one or more expression language scripts;

transform the entity-relationship model into second unstructured data matching a second format of the second markup language dialect using the second expression language script; and

insert the second unstructured data into the data target using a connector that establishes a connection to the data target via the second API.

11. The system of claim 7 , the at least one processor further configured to:

perform a job on the entity-relationship model that transforms the entity-relationship model to an expected representation.

12. The system of claim 7 , the at least one processor further configured to:

store a date and a version number in association with the entity-relationship model.

13. A non-transitory computer-readable device having instructions stored thereon that, when executed by at least one computing device, cause the at least one computing device to perform operations comprising:

in response to receiving a command to generate an entity-relationship model in a data integration platform that specifies a data source accessible via an application programming interface (API) having a type, selecting based on the type, a markup language dialect from one or more markup language dialects and an expression language script from one or more expression language scripts, wherein the markup language dialect and the expression language script correspond to an API design methodology, and wherein the markup language dialect includes a specification of a format of the API design methodology written in a modeling language;

validating unstructured data received in response to accessing the API using the markup language dialect;

generating the entity-relationship model by transforming the unstructured data to match the format of the API design methodology using the expression language script;

determining a change to the API by comparing the entity-relationship model to a previously generated entity-relationship model that is specific to the data source and is stored in a stored history of entity-relationship models for the data source;

recording the change in a change history for the data source and storing the entity-relationship model in the stored history of entity-relationship models; and

creating a lineage graph of the data source based on the entity-relationship model, wherein the lineage graph tracks a change for each record in the data source and marks the change in the change history as compatible or incompatible.

14. The non-transitory computer-readable device of claim 13 , the operations further comprising:

transmitting the entity-relationship model from the data integration platform to a data visualization software tool via a second API provided by the data visualization software tool.

15. The non-transitory computer-readable device of claim 13 , the operations further comprising:

receiving the unstructured data from the API using a connector that establishes a connection to the data source using a connectivity configuration.

16. The non-transitory computer-readable device of claim 13 , the operations further comprising:

selecting a second markup language dialect from the one or more markup language dialects and a second expression language script from the one or more expression language scripts;

transforming the entity-relationship model into second unstructured data matching a second format of the second markup language dialect using the second expression language script; and

inserting the second unstructured data into the data target using a connector that establishes a connection to the data target via the second API.

17. The non-transitory computer-readable device of claim 13 , the operations further comprising:

performing a job on the entity-relationship model that transforms the entity-relationship model to an expected representation.

18. The non-transitory computer-readable device of claim 13 , the operations further comprising:

storing a date and a version number in association with the entity-relationship model.

Assignments (2)
CHANGE OF NAME Recorded Oct 11, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069166/0312 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2021
From: WU, JIANG; FUJII, DANIEL; PAZOS, RODRIGO; BLOCK, EZEQUIEL; CONTRERAS, LUIS; MANZANO, IGNACIO AGUSTIN
To: SALESFORCE.COM, INC.
Reel/Frame 057574/0241 →
Continuity (1)
Related Publication 20230089365A1 · Mar 23, 2023
References Cited (11)
US 10268753B2 · Bar-Or · 2019 [cited by examiner]
US 20050091251A1 · Ramarao · 2005 [cited by examiner]
US 20050091285A1 · Krishnan · 2005 [cited by examiner]
US 20070022093A1 · Wyatt · 2007 [cited by examiner]
US 20070299885A1 · Pareek · 2007 [cited by examiner]
US 20130187926A1 · Silverstein · 2013 [cited by examiner]
US 20140344211A1 · Allan · 2014 [cited by examiner]
US 20170116305A1 · Kapoor · 2017 [cited by examiner]
US 20180367466A1 · Shear · 2018 [cited by examiner]
US 20190196890A1 · Bucchi · 2019 [cited by examiner]
US 20200005266A1 · Gruen · 2020 [cited by examiner]