IP Library Granted Patent US 9,282,160
Granted Patent B2
US 9,282,160 · App. 13/942,266 · Granted Mar 8, 2016

Method, apparatus, and computer readable medium for flexible caching of resource oriented web services

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 9,282,160
App. No.
13/942,266
Granted
Mar 8, 2016
Kind
B2
Abstract

A cache management apparatus, method, and computer readable medium which manages caching of resources. The method includes analyzing a structure of a resource in a system which exposes resources to clients, generating a dependency graph of objects linked to a resource based on the analyzed structure of the resource, and managing caching of resources based on the generated dependency graphs. A generated dependency graph includes hierarchical dependency information with respect to the objects of the resource.

Claims (66)

1. A caching method comprising:

analyzing a structure of a resource in a system which exposes resources to clients;

generating a dependency graph of objects linked to the resource based on the analyzed structure of the resource, wherein the generated dependency graph comprises hierarchical dependency information with respect to the objects linked to the resource;

receiving a request to delete or modify the resource; and

upon making a determination that the resource is stored in a cache associated with the system:

locating a vertex in the dependency graph for the resource based on an entity tag for the resource retrieved from an entity tag mapping table;

identifying a sub-graph based on the vertex in the dependency graph; and

removing the resource and related resources from the cache based on the identified sub-graph.

2. The method of claim 1 , wherein generating the dependency graph is based on structural dependencies between resources identified in a data representation language and wherein the dependency graph comprises vertices and edges.

3. The method of claim 2 , wherein each of the vertices comprises an identifier of a node and a list of other vertices that are linked to the node and wherein each of the other vertices are represented by a resource locator.

4. The method of claim 2 , wherein the dependency graph is generated at system boot time and wherein the dependency graph is in an extensible markup language (XML) format.

5. The method of claim 1 , further comprising:

receiving a response to a user request for data,

wherein the data is the resource;

generating a new entity tag for the data;

storing the data in the cache; and

storing the new entity tag in the entity tag mapping table.

6. The method of claim 5 , wherein storing the data in the cache comprises determining a type of the data, which is one of a static data type, a stable data type, or a dynamic data type and wherein a time to live value for caching the data is assigned based on the determined type of data.

7. The method of claim 1 , wherein the dependency graph comprises entity tags and respective resource identifiers for each vertex on the dependency graph.

8. The method of claim 1 , wherein removing the resource and related resources from the cache comprises:

removing the resource from the cache,

determining one or more next levels in the identified sub-graph;

searching the cache for a node of the one or more next levels; and

removing the node when the node is found in the cache.

9. The method of claim 1 , further comprising:

receiving a new request for a new resource not stored in the cache;

retrieving the generated dependency graph;

determining a vertex in the dependency graph for the new resource;

determining a type of resource and dependencies of the new resource based on the determined vertex;

generating a new entity tag comprising data identifying the dependencies of the new resource and the type of resource; and

storing the new resource and the entity tag in the cache.

10. A cache management apparatus comprising:

a memory storing a plurality of instructions; and

a processor for executing the plurality of instructions, which comprise:

analyzing a structure of a resource in a system which exposes resources to clients;

generating a dependency graph of objects linked to the resource based on the analyzed structure of the resource,

wherein the generated dependency graph comprises hierarchical dependency information with respect to the objects linked to the resource;

receiving a request for a new resource not stored in a cache associated with the system;

determining a vertex in the dependency graph for the new resource;

determining a type of resource and dependencies of the new resource based on the determined vertex;

generating a new entity tag comprising data identifying the dependencies of the new resource and the type of resource; and

storing the new resource and the new entity tag in the cache.

11. The apparatus of claim 10 , wherein the instructions for generating the dependency graph are based on structural dependencies between resources identified in a data representation language and wherein the dependency graph comprises vertices and edges.

12. The apparatus of claim 11 , wherein each of the vertices comprises an identifier of a node and a list of other vertices that are linked to the node and wherein each of the other vertices are represented by a resource locator.

13. The apparatus of claim 11 , wherein the dependency graph is generated at system boot time and wherein the dependency graph is in an extensible markup language (XML) format.

14. The apparatus of claim 10 , wherein storing the new resource in the cache comprises determining a type of the data, which is one of a static data type, a stable data type, or a dynamic data type and wherein a time to live value for caching the data is assigned based on the determined type of data.

15. The apparatus of claim 10 , wherein the dependency graph comprises entity tags and respective resource identifiers for each vertex on the dependency graph.

16. The apparatus of claim 10 , wherein the plurality of instructions further comprise:

receiving a request to delete or modify the resource; and

upon making a determination that the resource is stored in the cache associated:

locating the vertex in the dependency graph for the resource based on the entity tag for the resource retrieved from an entity tag mapping table;

identifying a sub-graph based on the vertex in the dependency graph; and

removing the resource and related resources from the cache based on the identified sub-graph.

17. The apparatus of claim 16 , wherein the instructions for removing the resources and the related resources from the cache comprise:

removing the resource from the cache,

determining one or more next levels in the identified sub-graph;

searching the cache for a node of the one or more next levels; and

removing the node when the node is found in the cache.

18. A non-transitory computer readable recording medium storing a plurality of computer-executable instructions comprising:

analyzing a structure of a resource in a system which exposes resources to clients;

generating a dependency graph of objects linked to the resource based on the analyzed structure of the resource, wherein the generated dependency graph comprises hierarchical dependency information with respect to the objects linked to the resource;

receiving a request to delete or modify the resource; and

upon making a determination that the resource is stored in a cache associated with the system:

locating a vertex in the dependency graph for the resource based on an entity tag for the resource retrieved from an entity tag mapping table;

identifying a sub-graph based on the vertex in the dependency graph; and

removing the resource and related resources from the cache based on the identified sub-graph.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE APPLICATION NO. 16/990,698 PREVIOUSLY RECORDED ON REEL 058294 FRAME 0010. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 21, 2022
From: TRU OPTIK DATA CORP.; NEUSTAR INFORMATION SERVICES, INC.; NEUSTAR DATA SERVICES, INC.; TRUSTID, INC.; NEUSTAR, INC.; NEUSTAR IP INTELLIGENCE, INC.; MARKETSHARE PARTNERS, LLC; SONTIQ, INC.
To: DEUTSCHE BANK AG NEW YORK BRANCH
Reel/Frame 059846/0157 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT REEL 058294, FRAME 0161 Recorded Dec 27, 2021
From: JPMORGAN CHASE BANK, N.A.
To: EBUREAU, LLC; IOVATION, INC.; SIGNAL DIGITAL, INC.; TRANS UNION LLC; TRANSUNION INTERACTIVE, INC.; TRANSUNION RENTAL SCREENING SOLUTIONS, INC.; TRANSUNION TELEDATA LLC; AGGREGATE KNOWLEDGE, LLC; TRU OPTIK DATA CORP.; NEUSTAR INFORMATION SERVICES, INC.; TRUSTID, INC.; NEUSTAR, INC.; NEUSTAR IP INTELLIGENCE, INC.; MARKETSHARE PARTNERS, LLC; SONTIQ, INC.
Reel/Frame 058593/0852 →
SECOND LIEN PATENT SECURITY AGREEMENT RELEASE Recorded Dec 3, 2021
From: UBS AG, STAMFORD BRANCH
To: NEUSTAR, INC.; MARKETSHARE PARTNERS LLC; AGGREGATE KNOWLEDGE, INC.; NEUSTAR INFORMATION SERVICES, INC.; NEUSTAR IP INTELLIGENCE, INC.
Reel/Frame 058300/0739 →
FIRST LIEN PATENT SECURITY AGREEMENT RELEASE Recorded Dec 3, 2021
From: BANK OF AMERICA, N.A.
To: NEUSTAR, INC.; MARKETSHARE PARTNERS LLC; AGGREGATE KNOWLEDGE, INC.; NEUSTAR INFORMATION SERVICES, INC.; NEUSTAR IP INTELLIGENCE, INC.
Reel/Frame 058300/0762 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Dec 1, 2021
From: TRU OPTIK DATA CORP.; NEUSTAR INFORMATION SERVICES, INC.; NEUSTAR DATA SERVICES, INC.; TRUSTID, INC.; NEUSTAR, INC.; NEUSTAR IP INTELLIGENCE, INC.; MARKETSHARE PARTNERS, LLC; SONTIQ, INC.
To: DEUTSCHE BANK AG NEW YORK BRANCH
Reel/Frame 058294/0010 →
GRANT OF SECURITY INTEREST IN UNITED STATES PATENTS Recorded Dec 1, 2021
From: EBUREAU, LLC; IOVATION, INC.; SIGNAL DIGITAL, INC.; TRANS UNION LLC; TRANSUNION HEALTHCARE, INC.; TRANSUNION INTERACTIVE, INC.; TRANSUNION RENTAL SCREENING SOLUTIONS, INC.; TRANSUNION TELEDATA LLC; AGGREGATE KNOWLEDGE, LLC; TRU OPTIK DATA CORP.; NEUSTAR INFORMATION SERVICES, INC.; TRUSTID, INC.; NEUSTAR, INC.; NEUSTAR IP INTELLIGENCE, INC.; MARKETSHARE PARTNERS, LLC; SONTIQ, INC.
To: JPMORGAN CHASE BANK, N.A
Reel/Frame 058294/0161 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Aug 22, 2017
From: MARKETSHARE PARTNERS LLC; AGGREGATE KNOWLEDGE, INC.; NEUSTAR INFORMATION SERVICES, INC.; NEUSTAR IP INTELLIGENCE, INC.; NEUSTAR, INC.
To: UBS AG, STAMFORD BRANCH
Reel/Frame 043633/0527 →
SECURITY INTEREST Recorded Aug 22, 2017
From: MARKETSHARE PARTNERS LLC; AGGREGATE KNOWLEDGE, INC.; NEUSTAR INFORMATION SERVICES, INC.; NEUSTAR IP INTELLIGENCE, INC.; NEUSTAR, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 043633/0440 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2013
From: LE VAN GONG, HUBERT ANDRE
To: NEUSTAR, INC.
Reel/Frame 030802/0784 →