IP Library Granted Patent US 8,782,601
Granted Patent B2
US 8,782,601 · App. 13/251,176 · Granted Jul 15, 2014

Systems and methods for applying dynamic relational typing to a strongly-typed object-oriented API

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 8,782,601
App. No.
13/251,176
Granted
Jul 15, 2014
Kind
B2
Abstract

A computer-implemented method includes executing instructions stored on a computer-readable medium. The computer-implemented method includes receiving, at a server hosting a strongly-typed object-oriented application programming interface (API), a single API call to request data from the strongly-typed object-oriented API, where the single API call includes a tuple having multiple object types, obtaining the requested data and returning the requested data.

Claims (40)

1. A computer-implemented method executing instructions stored on a non-transitory computer-readable medium, the method comprising:

receiving, at an application programming interface (API) layer on a server hosting a strongly-typed object-oriented API, a single API call to request data from the strongly-typed object-oriented API;

enforcing, at the API layer, semantics for interacting with the API for security of at least one database disposed behind the API layer, wherein the single API call includes code that defines the request for the data using a dynamically-typed tuple having multiple object types and wherein the code uses one or more statements to define relationships between the multiple object types in the tuple;

in response to receiving the single API call, performing a search of the at least one database using the strongly-typed object-oriented API through the API layer;

obtaining the requested data from the at least one database in response to the search; and

returning the requested data.

2. the computer-implemented method of claim 1 wherein returning the requested data comprises returning the requested data as a list of tuples.

3. the computer-implemented method of claim 1 wherein obtaining the requested data comprises obtaining the requested data by the strongly-typed object-oriented API according to the relationships between the multiple object types in the dynamically-typed tuple as defined in the single API call.

4. the computer-implemented method of claim 3 wherein returning the requested data comprises returning the requested data as a list of tuples as obtained by the strongly-typed object-oriented API.

5. the computer-implemented method of claim 1 wherein the multiple object types are pre-defined.

6. A computer program product, the computer program product being tangibly embodied on a non-transitory computer-readable medium and including executable code that, when executed, is configured to cause a data processing apparatus to:

receive, at an application programming interface (API) layer on a server hosting a strongly-typed object-oriented API, a single API call to request data from the strongly-typed object-oriented API;

enforce, at the API layer, semantics for interacting with the API for security of at least one database disposed behind the API layer, wherein the single API call includes code that defines the request for the data using a dynamically-typed tuple having multiple object types and wherein the code uses one or more statements to define relationships between the multiple object types in the tuple;

in response to receiving the single API call, perform a search of the at least one database using the strongly-typed object-oriented API through the API layer;

obtain the requested data from the at least one database in response to the search; and

return the requested data.

7. the computer program product of claim 6 wherein the executable code that, when executed, is configured to cause the data processing apparatus to return the requested data comprises executable code that, when executed, is configured to cause the data processing apparatus to return the requested data as a list of tuples.

8. the computer program product of claim 6 wherein the executable code that, when executed, is configured to cause the data processing apparatus to obtain the requested data comprises executable code that, when executed, is configured to cause the data processing apparatus to obtain the requested data by the strongly-typed object-oriented API according to the relationships between the multiple object types in the dynamically-typed tuple as defined in the single API call.

9. the computer program product of claim 8 wherein the executable code that, when executed, is configured to cause the data processing apparatus to return the requested data comprises executable code that, when executed, is configured to cause the data processing apparatus to return the requested data as a list of tuples as obtained by the strongly-typed object-oriented API.

10. the computer program product of claim 6 wherein the multiple object types are pre-defined.

11. A computer system including instructions recorded on a non-transitory computer-readable medium and executable by at least one processor, the system comprising:

at least one database; and

a strongly-typed object-oriented application programming interface (API) layer that includes a strongly-typed object-oriented API, wherein the API layer is configured to cause the at least one processor to:

receive a single API call to request data;

enforce, at the API layer, semantics for interacting with the API for security of the at least one database disposed behind the API layer, wherein the single API call includes code that defines the request for the data using a dynamically-typed tuple having multiple object types and wherein the code uses one or more statements to define relationships between the multiple object types in the tuple;

in response to receiving the single API call, perform a search of the at least one database using the strongly-typed object-oriented API through the API layer;

obtain the requested data from the at least one database in response to the search; and

return the requested data.

12. the computer system of claim 11 wherein the API layer is configured to return the requested data as a list of tuples.

13. the computer system of claim 11 wherein the API layer is configured to obtain the requested data according to the relationships between the multiple object types in the dynamically-typed tuple as defined in the single API call.

14. the computer system of claim 13 wherein the API layer is configured to return the requested data as a list of tuples as obtained by the API layer.

15. the computer system of claim 11 wherein the multiple object types are pre-defined.

16. A computer-implemented method executing instructions stored on a non-transitory computer-readable medium, the method comprising:

generating a single application programming interface (API) call to request data from an API layer on a server hosting a strongly-typed object-oriented API, wherein:

the single API call includes code that defines the request for the data using a dynamically-typed tuple having multiple object types and wherein the code uses one or more statements to define relationships between the multiple object types in the tuple, and

the API layer is used to enforce semantics for interacting with the API for security of at least one database disposed behind the API layer;

sending the single API call to the server; and

responsive to sending the single API call, receiving the requested data obtained from the at least one database.

17. the computer-implemented method of claim 16 wherein receiving the requested data comprises receiving the requested data as a list of tuples.

18. the computer-implemented method of claim 16 wherein the multiple object types are pre-defined.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2025
From: BMC SOFTWARE, INC.
To: BMC HELIX, INC.
Reel/Frame 070442/0197 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY AGREEMENT Recorded Sep 11, 2013
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 031204/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2012
From: WHITNEY, JONATHAN; CONNORS, MATTHEW D.
To: BMC SOFTWARE, INC.
Reel/Frame 027677/0945 →