IP Library › Granted Patent US 11,176,044
Granted Patent B2
US 11,176,044 · App. 16/665,367 · Granted Nov 16, 2021

Systems and methods for implementing overlapping data caching for object application program interfaces

Inventors: Philip Edward Russell (San Diego, CA); Grigoriy E. Kesler (Mountain View, CA); Peter A. Vogel (Mountain View, CA)
Assignee: Intuit Inc.
G06F12/0855G06F9/541G06F2212/1016
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 11,176,044
App. No.
16/665,367
Granted
Nov 16, 2021
Kind
B2
Abstract

Systems and methods that may be used to implement overlapping data caching for object application program interfaces (APIs). A unique identifier may be assigned to each sub-component of an object API request. The unique identifiers may be used to determine if sub-components of one object API request overlaps with a sub-component of a prior different request such that a data response for the prior different request can be retrieved from the cache and used as part of the data response for the current object API request.

Claims (56)

1. A computer implemented method for implementing an overlapping data cache, said method being performed on a computing device executing an application program interface (API) gateway, said method comprising:

inputting, over a network connection, an object API request from a client device, the object API request comprising a query for data associated with one or more data services in communication with the API gateway;

parsing the object API request into one or more sub-components;

for each sub-component, said method comprises:

determining if the sub-component overlaps with a sub-component of a prior object API request,

retrieving response data associated with the sub-component of the prior request from the overlapping data cache when it is determined that the sub-component overlaps with the sub-component of the prior object API request, and

initiating a call to a data service of the one or more data service to receive response data associated with the sub-component and creating a cache correlation identifier for the sub-component when it is determined that the sub-component does not overlap with the sub-component of the prior object API request; and

returning to the client device a combined response to the API request, the combined response comprising any retrieved response data from the overlapping data cache and any received response data from the one or more data services.

2. The method of claim 1 , wherein parsing the object API request into one or more sub-components further comprises assigning an object identifier to each sub-component.

3. A computer implemented method for implementing an overlapping data cache, said method being performed on a computing device executing an application program interface (API) gateway, said method comprising:

inputting, over a network connection, an object API request from a client device, the object API request comprising a query for data associated with one or more data services in communication with the API gateway;

parsing the object API request into one or more sub-components;

for each sub-component, said method comprises:

determining if the sub-component overlaps with a sub-component of the prior object API request by determining that there are one or more secondary cache keys associated with the sub-component and the sub-component of the prior object API request that is based on the object identifiers assigned to the sub-component and the sub-component of the prior object API request,

retrieving response data associated with the sub-component of the prior request from the overlapping data cache when it is determined that the sub-component overlaps with the sub-component of the prior object API request, and

initiating a call to a data service of the one or more data service to receive response data associated with the sub-component when it is determined that the sub-component does not overlap with the sub-component of the prior object API request; and

returning to the client device a combined response to the API request, the combined response comprising any retrieved response data from the overlapping data cache and any received response data from the one or more data services.

4. The method of claim 2 , wherein the object identifier is used as a primary cache key when there is a cache hit based on the object identifier.

5. The method of claim 2 , further comprising creating a cache entry associating the object identifier and the received data response.

6. The method of claim 1 , wherein determining if the sub-component overlaps with the sub-component of the prior object API request comprises:

determining that there is one or more secondary cache keys associated with the sub-component and the sub-component of the prior object API request; and

determining that data attributes of the sub-component are a subset of data attributes of the sub-component of the prior object API request.

7. The method of claim 1 , further comprising determining whether a data response is a single data response or a compound data response using the cache correlation identifier.

8. The method of claim 1 , further comprising:

determining that a data response is a single data response based on the cache correlation identifier;

creating a primary cache key for the data response; and

storing the primary cache key in the overlapping data cache.

9. The method of claim 1 , further comprising:

determining that a data response is a compound data response based on the cache correlation identifier;

creating one or more secondary cache keys for the data response; and

storing the one or more secondary cache keys in the overlapping data cache.

10. A system for implementing an overlapping data cache, said system comprising:

a first computing device executing an application program interface (API) gateway, the first computing device being in communication with the overlapping data cache and being configured to:

input, over a network connection, an object API request from a client device, the object API request comprising a query for data associated with one or more data services in communication with the API gateway;

parse the object API request into one or more sub-components;

for each sub-component, said first computing device is further configured to:

determine if the sub-component overlaps with a sub-component of a prior object API request,

retrieve response data associated with the sub-component of the prior request from the overlapping data cache when it is determined that the sub-component overlaps with the sub-component of the prior object API request, and

initiate a call to a data service of the one or more data service to receive response data associated with the sub-component and create a cache correlation identifier for the sub-component when it is determined that the sub-component does not overlap with the sub-component of the prior object API request; and

return to the client device a combined response to the API request, the combined response comprising any retrieved response data from the overlapping data cache and any received response data from the one or more data services.

11. The system of claim 10 , wherein said first computing device is configured to parse the object API request into one or more sub-components by assigning an object identifier to each sub-component.

12. The system of claim 11 , wherein said first computing device is configured to determine if the sub-component overlaps with the sub-component of the prior object API request by determining that there are one or more secondary cache keys associated with the sub-component and the sub-component of the prior object API request based on the object identifiers assigned to the sub-component and the sub-component of the prior object API request.

13. The system of claim 11 , wherein said first computing device is configured to use the object identifier as a primary cache key when there is a cache hit based on the object identifier.

14. The system of claim 11 , wherein said first computing device is further configured to create a cache entry associating the object identifier and the received data response.

15. The system of claim 10 , wherein said first computing device is configured to determine if the sub-component overlaps with the sub-component of the prior object API request by:

determining that there is one or more secondary cache keys associated with the sub-component and the sub-component of the prior object API request; and

determining that data attributes of the sub-component are a subset of data attributes of the sub-component of the prior object API request.

16. The system of claim 10 , wherein said first computing device is further configured to determine whether a data response is a single data response or a compound data response using the cache correlation identifier.

17. The system of claim 10 , wherein said first computing device is further configured to:

determine that a data response is a single data response based on the cache correlation identifier;

create a primary cache key for the data response; and

store the primary cache key in the overlapping data cache.

18. The system of claim 10 , wherein said first computing device is further configured to:

determine that a data response is a compound data response based on the cache correlation identifier;

create one or more secondary cache keys for the data response; and

store the one or more secondary cache keys in the overlapping data cache.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2019
From: RUSSELL, PHILIP` EDWARD; KESLER, GRIGORIY E.; VOGEL, PETER A.
To: INTUIT INC.
Reel/Frame 050843/0632 →
Continuity (1)
Related Publication 20210124684A1 · Apr 29, 2021