IP Library Granted Patent US 12,113,867
Granted Patent B1
US 12,113,867 · App. 17/521,556 · Granted Oct 8, 2024

Self-configuring adapter

Inventor: Anthony J. Lavinio (Southampton, MA)
Assignee: Progress Software Corporation
H04L67/34G06F9/541G06F16/2423G06F16/252G06N5/025G06N5/04H04L67/303H04L67/561
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,113,867
App. No.
17/521,556
Granted
Oct 8, 2024
Kind
B1
Abstract

A system and method for mapping an application program interface (API) to a relational schema. In one embodiment, the system samples a first endpoint, the first endpoint exposed via a first application programming interface (API); automatically infers, based on a set of results received from the first endpoint responsive to the sampling and based on a set of inference rules, a first set of data types and a first relational data structure representing data stored by the first endpoint and exposed via the first API; generates a configuration profile based on the first set of inferred data types and the first relational data structure representing the data stored by the first endpoint and exposed via the first API; and obtains, using the configuration profile and via the first application programming interface, data from the first endpoint responsive to a query, the query received in a relational query language.

Claims (42)

1. A method comprising:

receiving, using one or more processors, a query in a relational query language;

obtaining, using the one or more processors, via a first application programming interface (API), an API result set from a first endpoint based on the query in the relational query language;

determining, using the one or more processors, a relational result set responsive to the query in the relational query language based on an extrapolation from a sample set of results received from the first endpoint and a set of rules, wherein the sample set of results is distinct from the API result set and received responsive to a sampling distinct from the received query in the relational query language, wherein an initial set of data types and an initial relational data structure are extrapolated as an initial relational data structure representing data stored by the first endpoint and exposed via the first API, wherein the sample set of results is a subset comprising less than an entirety of data exposed by the first endpoint via the first API; and

sending, using the one or more processors, the relational result set responsive to the query in the relational query language.

2. The method of claim 1 further comprising:

receiving, from the first endpoint and responsive to the sampling of the first endpoint, the sample set of results; and

extrapolating, based on the sample set of results received from the first endpoint and based on the set of rules, the initial set of data types and the initial relational data structure, wherein the data stored by the first endpoint and exposed via the first API includes a complex data type, and wherein the initial relational data structure including a relational representation of the complex data type.

3. The method of claim 2 , wherein the sampling and automatic extrapolation are repeated on a per-session basis and responsive to an initiation of a session.

4. The method of claim 1 , wherein the initial set of extrapolated data types and initial relational data structure representing the data stored by the first endpoint and exposed via the first API are merged with a second set of extrapolated data types and a second relational data structure representing data stored by a second endpoint.

5. The method of claim 4 , wherein the second endpoint is exposed via a second API, and the first API and second API differ.

6. The method of claim 1 further comprising:

obtaining user input requesting modification of the relational data structure representing the data stored by the first endpoint and exposed via the first API; and

generating a new relational data structure representing the data stored by the first endpoint and exposed via the first API based on the requested modification.

7. The method of claim 6 , wherein the user input requesting modification is a request to modify one or more of a data type, data structure, and normalization type.

8. The method of claim 1 , wherein the sample set of results represent most recent data of the first endpoint.

9. The method of claim 1 further comprising:

updating the relational data structure representing the data stored by the first endpoint and exposed via the first API responsive to one or more of a user-initiated request and automatically based on satisfaction of a criterion.

10. The method of claim 1 further comprising:

mapping the query in the relational query language to one or more first API queries based on the relational data structure representing the data stored by the first endpoint and exposed via the first API, the one or more API queries including a first API query, the first API query using the first API and sent to the first endpoint.

11. A system comprising:

one or more processors; and

a memory storing instructions that, when executed by the one or more processors, cause the system to:

receive a query in a relational query language;

obtain, via a first application programming interface (API), an API result set from a first endpoint based on the query in the relational query language;

determine a relational result set responsive to the query in the relational query language based on an extrapolation from a sample set of results received from the first endpoint and a set of rules, wherein the sample set of results is distinct from the API result set and received responsive to a sampling distinct from the received query in the relational query language, wherein an initial set of data types and an initial relational data structure are extrapolated as an initial relational data structure representing data stored by the first endpoint and exposed via the first API, wherein the sample set of results is a subset comprising less than an entirety of data exposed by the first endpoint via the first API; and

send the relational result set responsive to the query in the relational query language.

12. The system of claim 11 comprising instructions that, when executed by the one or more processors, cause the system to:

receive, from the first endpoint and responsive to the sampling of the first endpoint, the sample set of results; and

extrapolate, based on the sample set of results received from the first endpoint and based on the set of rules, the initial set of data types and the initial relational data structure, wherein the data stored by the first endpoint and exposed via the first API includes a complex data type, and wherein the initial relational data structure including a relational representation of the complex data type.

13. The system of claim 12 , wherein the sampling and automatic extrapolation are repeated on a per-session basis and responsive to an initiation of a session.

14. The system of claim 11 , wherein the initial set of extrapolated data types and initial relational data structure representing the data stored by the first endpoint and exposed via the first API are merged with a second set of extrapolated data types and a second relational data structure representing data stored by a second endpoint.

15. The system of claim 14 , wherein the second endpoint is exposed via a second API, and the first API and second API differ.

16. The system of claim 11 comprising instructions that, when executed by the one or more processors, cause the system to:

obtain user input requesting modification; and

generate a new relational data structure representing the data stored by the first endpoint and exposed via the first API based on the requested modification.

17. The system of claim 16 , wherein the user input requesting modification is a request to modify one or more of a data type, data structure, and normalization type.

18. The system of claim 11 , wherein the sample set of results represent most recent data of the first endpoint.

19. The system of claim 11 comprising instructions that, when executed by the one or more processors, cause the system to:

update the relational data structure representing the data stored by the first endpoint and exposed via the first API responsive to one or more of a user-initiated request and automatically based on satisfaction of a criterion.

20. The system of claim 11 comprising instructions that, when executed by the one or more processors, cause the system to:

map the query in the relational query language to one or more API queries based on the relational data structure representing the data stored by the first endpoint and exposed via the first API, the one or more API queries including a first API query, the first API query using the first API and sent to the first endpoint.

Assignments (3)
SECURITY INTEREST Recorded Jul 21, 2025
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 072094/0790 →
SECURITY INTEREST Recorded Mar 7, 2024
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 066762/0833 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2021
From: LAVINIO, ANTHONY J.
To: PROGRESS SOFTWARE CORPORATION
Reel/Frame 058062/0011 →
Continuity (2)
Continuation 16421304 · May 23, 2019
Provisional Application 62676772 · May 25, 2018