IP Library Granted Patent US 12,498,995
Granted Patent B2
US 12,498,995 · App. 17/881,250 · Granted Dec 16, 2025

Generating a federated application programming interface for heterogenous data sources

Inventors: Gaurav Sagar (Bellevue, WA); Antonio Garrote (San Francisco, CA); Patricio Barletta (Brentwood, CA); Javier Isoldi (Buenos Aires, AR); Gonzalo Guglielmo (Buenos Aires, AR); Leopoldo Chalub (Buenos Aires, AR)
Assignee: Salesforce, Inc.
G06F9/544G06F16/27
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,498,995
App. No.
17/881,250
Granted
Dec 16, 2025
Kind
B2
Abstract

Methods, systems, and devices for data processing are described. A federation management service may receive a user selection of a first data source and a second data source via a user interface of the federation management service. The first data source and the second data source may be associated with different data source types. The federation management service may extract schema information from the first data source and the second data source by using source extensions to parse the first data source and the second data source. The federation management service may generate a federated data model by using the schema information to translate the first data source and the second data source into intermediate data sources with a common feature set. Accordingly, the federation management service may generate a target data schema for a federated application programming interface (API) based on the federated data model.

Claims (50)

1 . A method for data processing, comprising:

receiving, via a user interface of a federation management service, a user selection of a first data source associated with a first data source type corresponding to a first application programming interface (API) and a second data source associated with a second data source type corresponding to a second API, wherein the second data source type is different from the first data source type and the second API is different from the first API;

extracting schema information from the first data source that corresponds to the first API and the second data source that corresponds to the second API by using one or more source extensions to parse the first data source and the second data source, the schema information from the first data source indicating a first capability feature set supported by the first data source that indicates a first set of operations that the first data source is capable of performing and the schema information from the second data source indicating a second capability feature set supported by the second data source that indicates a second set of operations that the second data source is capable of performing, wherein the second capability feature set supported by the second data source is different from the first capability feature set supported by the first data source based at least in part on at least one operation within the first set of operations of the first capability feature set that is supported by the first data source being unsupported by the second data source;

translating the schema information from the first data source that corresponds to the first API into a first intermediate data source and the schema information from the second data source that corresponds to the second API into a second intermediate data source, wherein translating the schema information from the first data source into the first intermediate data source and translating the schema information from the second data source into the second intermediate data source comprises removing one or more capability features from the first capability feature set supported by the first data source to generate a common capability feature set for the first intermediate data source and the second intermediate data source that is supported by the federation management service, the first data source, and the second data source, wherein the common capability feature set indicates a common set of operations that the federation management service, the first data source, and the second data source are capable of performing, and wherein the one or more capability features removed are associated with the at least one operation within the first set of operations of the first capability feature set that is supported by the first data source and unsupported by the second data source;

generating a federated data model by integrating the first intermediate data source with the second intermediate data source based at least in part on translating the schema information from the first data source into the first intermediate data source and translating the schema information from the second data source into the second intermediate data source including the removal of the one or more capability features from the first capability feature set to generate the common capability feature set for the first intermediate data source and the second intermediate data source that is supported by the federation management service, wherein generation of the federated data model further comprises a generation of a semantic graph representation and an extended graph representation of the first intermediate data source and the second intermediate data source using a parsing plug-in that interfaces with the one or more source extensions; and

generating a target data schema for a federated API that provides access to both the first data source that corresponds to the first API and the second data source that corresponds to the second API, wherein the target data schema for the federated API is generated based at least in part on the federated data model that includes an integration of the first intermediate data source and the second intermediate data source.

2 . The method of claim 1 , further comprising:

obtaining metadata associated with a first data schema of the first data source that corresponds to the first API and a second data schema of the second data source that corresponds to the second API, wherein generating the target data schema for the federated API is based at least in part on the metadata.

3 . The method of claim 1 , further comprising:

receiving, via the user interface of the federation management service, a user input that comprises one or more metadata annotations associated with the first data source that corresponds to the first API and the second data source that corresponds to the second API, wherein generating the target data schema for the federated API is based at least in part on the one or more metadata annotations.

4 . The method of claim 1 , further comprising:

receiving, via the user interface of the federation management service, a query related to one or more data objects from the first data source that corresponds to the first API or the second data source that corresponds to the second API; and

retrieving query results associated with the one or more data objects by using the federated API to access one or both of the first data source or the second data source.

5 . The method of claim 4 , further comprising:

transmitting, for display at the user interface of the federation management service, an indication of the query results associated with the one or more data objects.

6 . The method of claim 4 , further comprising:

retrieving schema version information and run-time information associated with one or both of the first data source that corresponds to the first API or the second data source that corresponds to the second API, wherein the federated API uses the schema version information and the run-time information to access one or both of the first data source that corresponds to the first API or the second data source that corresponds to the second API.

7 . The method of claim 1 , wherein generating the federated data model comprises:

mapping a first set of capability features supported by the first data source that corresponds to the first API and a second set of capability features supported by the second data source that corresponds to the second API to the common capability feature set supported by the federation management service, the first data source, and the second data source.

8 . The method of claim 1 , wherein the common capability feature set supported by the federation management service, the first data source, and the second data source, includes read operations, write operations, pagination operations, streaming operations, or a combination thereof.

9 . The method of claim 1 , wherein the first data source that corresponds to the first API and the second data source that corresponds to the second API have different capability feature sets and different API formats.

10 . The method of claim 1 , wherein one or both of the first API or the second API comprise a Representational State Transfer API, a Graph Query Language API, or an AsyncAPI.

11 . An apparatus for data processing, comprising:

one or more processors;

one or more memories coupled with the one or more processors; and

instructions stored in the one or more memories and executable by the one or more processors to cause the apparatus to:

receive, via a user interface of a federation management service, a user selection of a first data source associated with a first data source type corresponding to a first application programming interface (API) and a second data source associated with a second data source type corresponding to a second API, wherein the second data source type is different from the first data source type and the second API is different from the first API;

extract schema information from the first data source that corresponds to the first API and the second data source that corresponds to the second API by using one or more source extensions to parse the first data source and the second data source, the schema information from the first data source indicating a first capability feature set supported by the first data source that indicates a first set of operations that the first data source is capable of performing and the schema information from the second data source indicating a second capability feature set supported by the second data source that indicates a second set of operations that the second data source is capable of performing, wherein the second capability feature set supported by the second data source is different from the first capability feature set supported by the first data source based at least in part on at least one operation within the first set of operations of the first capability feature set that is supported by the first data source being unsupported by the second data source;

translate the schema information from the first data source that corresponds to the first API into a first intermediate data source and the schema information from the second data source that corresponds to the second API into a second intermediate data source, wherein translating the schema information from the first data source into the first intermediate data source and translating the schema information from the second data source into the second intermediate data source comprises removing one or more capability features from the first capability feature set supported by the first data source to generate a common capability feature set for the first intermediate data source and the second intermediate data source that is supported by the federation management service, the first data source, and the second data source, wherein the common capability feature set indicates a common set of operations that the federation management service, the first data source, and the second data source are capable of performing, and wherein the one or more capability features removed are associated with the at least one operation within the first set of operations of the first capability feature set that is supported by the first data source and unsupported by the second data source;

generate a federated data model by integrating the first intermediate data source with the second intermediate data source based at least in part on translating the schema information from the first data source into the first intermediate data source and translating the schema information from the second data source into the second intermediate data source including the removal of the one or more capability features from the first capability feature set to generate the common capability feature set for the first intermediate data source and the second intermediate data source that is supported by the federation management service, wherein generation of the federated data model further comprises a generation of a semantic graph representation and an extended graph representation of the first intermediate data source and the second intermediate data source using a parsing plug-in that interfaces with the one or more source extensions; and

generate a target data schema for a federated API that provides access to both the first data source that corresponds to the first API and the second data source that corresponds to the second API, wherein the target data schema for the federated API is generated based at least in part on the federated data model that includes an integration of the first intermediate data source and the second intermediate data source.

12 . The apparatus of claim 11 , wherein the instructions are further executable by the one or more processors to cause the apparatus to:

obtain metadata associated with a first data schema of the first data source that corresponds to the first API and a second data schema of the second data source that corresponds to the second API, wherein generating the target data schema for the federated API is based at least in part on the metadata.

13 . The apparatus of claim 11 , wherein the instructions are further executable by the one or more processors to cause the apparatus to:

receive, via the user interface of the federation management service, a user input that comprises one or more metadata annotations associated with the first data source that corresponds to the first API and the second data source that corresponds to the second API, wherein generating the target data schema for the federated API is based at least in part on the one or more metadata annotations.

14 . The apparatus of claim 11 , wherein the instructions are further executable by the one or more processors to cause the apparatus to:

receive, via the user interface of the federation management service, a query related to one or more data objects from the first data source that corresponds to the first API or the second data source that corresponds to the second API; and

retrieve query results associated with the one or more data objects by using the federated API to access one or both of the first data source or the second data source.

15 . The apparatus of claim 14 , wherein the instructions are further executable by the one or more processors to cause the apparatus to:

transmit, for display at the user interface of the federation management service, an indication of the query results associated with the one or more data objects.

16 . The apparatus of claim 14 , wherein the instructions are further executable by the one or more processors to cause the apparatus to:

retrieve schema version information and run-time information associated with one or both of the first data source that corresponds to the first API or the second data source that corresponds to the second API, wherein the federated API uses the schema version information and the run-time information to access one or both of the first data source that corresponds to the first API or the second data source that corresponds to the second API.

17 . The apparatus of claim 11 , wherein the instructions to generate the federated data model are executable by the one or more processors to cause the apparatus to:

map a first set of capability features supported by the first data source that corresponds to the first API and a second set of capability features supported by the second data source that corresponds to the second API to the common capability feature set supported by the federation management service, the first data source, and the second data source.

18 . A non-transitory computer-readable medium storing code for data processing, the code comprising instructions executable by one or more processors to:

receive, via a user interface of a federation management service, a user selection of a first data source associated with a first data source type corresponding to a first application programming interface (API) and a second data source associated with a second data source type corresponding to a second API, wherein the second data source type is different from the first data source type and the second API is different from the first API;

extract schema information from the first data source that corresponds to the first API and the second data source that corresponds to the second API by using one or more source extensions to parse the first data source and the second data source, the schema information from the first data source indicating a first capability feature set supported by the first data source that indicates a first set of operations that the first data source is capable of performing and the schema information from the second data source indicating a second capability feature set supported by the second data source that indicates a second set of operations that the second data source is capable of performing, wherein the second capability feature set supported by the second data source is different from the first capability feature set supported by the first data source based at least in part on at least one operation within the first set of operations of the first capability feature set that is supported by the first data source being unsupported by the second data source;

translating the schema information from the first data source that corresponds to the first API into a first intermediate data source and the schema information from the second data source that corresponds to the second API into a second intermediate data source, wherein translating the schema information from the first data source into the first intermediate data source and translating the schema information from the second data source into the second intermediate data source comprises removing one or more capability features from the first capability feature set supported by the first data source to generate a common capability feature set for the first intermediate data source and the second intermediate data source that is supported by the federation management service, the first data source, and the second data source, wherein the common capability feature set indicates a common set of operations that the federation management service, the first data source, and the second data source are capable of performing, and wherein the one or more capability features removed are associated with the at least one operation within the first set of operations of the first capability feature set that is supported by the first data source and unsupported by the second data source;

generating a federated data model by integrating the first intermediate data source with the second intermediate data source based at least in part on translating the schema information from the first data source into the first intermediate data source and translating the schema information from the second data source into the second intermediate data source including the removal of the one or more capability features from the first capability feature set to generate the common capability feature set for the first intermediate data source and the second intermediate data source that is supported by the federation management service, wherein generation of the federated data model further comprises a generation of a semantic graph representation and an extended graph representation of the first intermediate data source and the second intermediate data source using a parsing plug-in that interfaces with the one or more source extensions; and

generate a target data schema for a federated API that provides access to both the first data source that corresponds to the first API and the second data source that corresponds to the second API, wherein the target data schema for the federated API is generated based at least in part on the federated data model that includes an integration of the first intermediate data source and the second intermediate data source.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2025
From: SAGAR, GAURAV; GARROTE, ANTONIO; BARLETTA, PATRICIO; ISOLDI, JAVIER; GUGLIELMO, GONZALO; CHALUB, LEOPOLDO
To: SALESFORCE, INC.
Reel/Frame 072960/0283 →
Continuity (1)
Related Publication 20240045743A1 · Feb 8, 2024
References Cited (35)
US 6675226B1 · Nair · 2004 [cited by examiner]
US 8881107B2 · Bradley · 2014 [cited by examiner]
US 9218443B1 · Styles · 2015 [cited by examiner]
US 9813509B1 · Visser · 2017 [cited by examiner]
US 10628560B1 · Siranni · 2020 [cited by examiner]
US 10929211B1 · Mylavarapu · 2021 [cited by examiner]
US 20010004737A1 · Laux · 2001 [cited by examiner]
US 20050044187A1 · Jhaveri · 2005 [cited by examiner]
US 20050097533A1 · Chakrabarti · 2005 [cited by examiner]
US 20060265385A1 · Agrawal · 2006 [cited by examiner]
US 20070283438A1 · Fries · 2007 [cited by examiner]
US 20100011013A1 · Singh · 2010 [cited by examiner]
US 20130097320A1 · Ritter · 2013 [cited by examiner]
US 20150089673A1 · Beckman · 2015 [cited by examiner]
US 20160026710A1 · Laredo · 2016 [cited by examiner]
US 20160057159A1 · Yin · 2016 [cited by examiner]
US 20170068748A1 · Hu · 2017 [cited by examiner]
US 20170270299A1 · Kim · 2017 [cited by examiner]
US 20170310552A1 · Wallerstein · 2017 [cited by examiner]
US 20180137279A1 · Peyton, Jr. · 2018 [cited by examiner]
US 20180150325A1 · Kuo · 2018 [cited by examiner]
US 20190138376A1 · Christy Jesuraj · 2019 [cited by examiner]
US 20190332667A1 · Williams · 2019 [cited by examiner]
US 20200133751A1 · Bahrami · 2020 [cited by examiner]
US 20200183714A1 · Wang · 2020 [cited by examiner]
US 20200301702A1 · Singh · 2020 [cited by examiner]
US 20210319043A1 · You · 2021 [cited by examiner]
Naser Peiravian, Machine Learning for Android Malware Detection Using Permission and API Calls. (Year: 2013). [cited by examiner]
Joel Stremmel, Pretraining Federated Text Models for Next Word Prediction. (Year: 2016). [cited by examiner]
Peter Pietzuch, Towards a Common API for Publish/Subscribe. (Year: 2007). [cited by examiner]
Adam Agocs, A web service based on RESTful API and JSON Schema/JSON Meta Schema to construct knowledge graphs. (Year: 2018). [cited by examiner]
Hoan Anh Nguyen, A Graph-based Approach to API Usage Adaptation. (Year: 2010). [cited by examiner]
Chaoyang He, A Research Library and Benchmark for Federated Machine Learning. (Year: 2020). [cited by examiner]
Bogdan Czejdo, An Approach to Schema Integration and Query Formulation in Federated Database Systems. (Year: 1987). [cited by examiner]
Tova Milo, Using Schema Matching to Simplify Heterogeneous Data Translation. (Year: 1998). [cited by examiner]