IP Library Granted Patent US 8,397,066
Granted Patent B2
US 8,397,066 · App. 12/582,180 · Granted Mar 12, 2013

Entitled data cache management

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,397,066
App. No.
12/582,180
Granted
Mar 12, 2013
Kind
B2
Abstract

Systems and methods are disclosed for managing an entitled data cache. A data server may generate and send entitled data to a data cache server. The data cache server, a server that may be located nearer to the user within a data provider's computer network, may receive and cache the entitled data. A permission server may store user's permissions and transmit the user's permissions to the data server and the data cache server. Upon receiving a request for data, the data cache server may retrieve the requested data from the cache and send a subset of the cached data which matches the user's permissions to the user, without the need to request the data from the data server.

Claims (87)

1. An apparatus, comprising:

one or more processors; and

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

receive entitled data from a data server, the entitled data having associated data permissions defining one or more permissions needed by a requesting user to access the entitled data;

store the entitled data and a cache signature corresponding to the entitled data;

receive a first data request for the entitled data from a first user;

hash the first data request, resulting in the cache signature;

retrieve user permissions corresponding to the first user;

determine that the user permissions corresponding to the first user intersect with the data permissions; and

transmit a first set of the entitled data as a response to the first data request for the entitled data.

2. The apparatus of claim 1 , wherein the memory further stores executable instructions that, when executed by the one or more processors, cause the apparatus to:

determine whether the entitled data is expired prior to responding to the first data request for the entitled data.

3. The apparatus of claim 1 , wherein the memory further stores executable instructions that, when executed by the one or more processors, cause the apparatus to:

receive a second data request for the entitled data from a second user;

retrieve user permissions corresponding to the second user; and

transmit a second set of the entitled data as a response to the second data request for the entitled data, wherein the second set of the entitled data is different from the first set of the entitled data.

4. The apparatus of claim 1 , wherein the memory further stores executable instructions that, when executed by the one or more processors, cause the apparatus to:

subscribe to a publish server to receive updates to the entitled data when the entitled data changes.

5. The apparatus of claim 4 , wherein the memory further stores executable instructions that, when executed by the one or more processors, cause the apparatus to:

receive an update to the entitled data from the publish server prior to an expiration of the entitled data.

6. The apparatus of claim 1 , wherein the memory further stores executable instructions that, when executed by the one or more processors, cause the apparatus to:

receive a second data request for the entitled data from the first user; and

determine that the user permissions have changed subsequent to receiving the first data request; and

transmit a second set of the entitled data as a response to the second data request for the entitled data, wherein the second set of the entitled data is different from the first set of the entitled data.

7. A method comprising:

receiving, by a computing device, entitled data from a data server, the entitled data having associated data permissions defining one or more permissions needed by a requesting user to access the entitled data;

store the entitled data and a cache signature corresponding to the entitled data;

receiving a first data request for the entitled data from a first user;

hashing the first data request, resulting in the cache signature;

retrieving user permissions corresponding to the first user;

determining that the user permissions corresponding to the first user intersect with the data permissions; and

transmitting a first set of the entitled data as a response to the first data request for the entitled data.

8. The method of claim 7 , further comprising:

determining whether the entitled data is expired prior to responding to the first data request for the entitled data.

9. The method of claim 7 , further comprising:

subscribing to a publish server to receive updated data;

receiving asynchronous data updates for the entitled data from the publish server; and

replacing the cached entitled data with the updated entitled data.

10. The method of claim 7 , further comprising:

requesting and receiving the user permissions from a permission server.

11. A method comprising:

receiving, by a computing device, a first data request, the first data request corresponding to a first user having first user permissions;

hashing the first data request, resulting in a cache signature;

determining that first response data corresponding to the first data request and corresponding to the first user permissions is stored in a local data cache using the cache signature;

sending the first user the first response data;

receiving, by the computing device, a second data request corresponding to a second user having second user permissions, wherein the second data request requests the same data as the first data request, and wherein the second user permissions are different from the first user permissions;

hashing the first data request, resulting in a cache signature;

determining that second response data corresponding to the second user request and corresponding second user permissions is stored in the local data cache using the cache signature; and

sending the second user the second response data, wherein the second response data is different from the first response data.

12. The method of claim 11 , further comprising:

upon determining that requested data is not stored in the local data cache, requesting the requested data from a data server and caching the data received from the local data cache.

13. The method of claim 11 , further comprising:

verifying an expiration of the first response data prior to sending the first response data.

14. The method of claim 7 , further comprising:

receiving a second data request for the entitled data from the first user;

determining that the user permissions corresponding to the first user have changed subsequent to receiving the first data request;

transmitting a second set of the entitled data as a response to the second data request for the entitled data, wherein the second set of the entitled data is different from the first set of the entitled data.

15. The method of claim 7 , further comprising:

storing, with the entitled data, an entitlement token corresponding to the data permissions.

16. The method of claim 15 , wherein the entitlement token corresponds to the data permissions and is assigned to a grouping of users, wherein each user in the grouping of users is allowed access to data subject to the data permissions.

17. The method of claim 9 , further comprising:

receiving a notification that notifies the computing device of an update to multiple data domains arranged in a hierarchy, wherein the entitled data is assigned to at least one of the multiple data domains.

18. The method of claim 7 , wherein the memory further stores executable instructions that, when executed by the one or more processors, cause the apparatus to:

receive an update notification that includes an identification of one or more data domains that need to be updated, wherein the entitled data is assigned to at least one of the one or more data domains; and

request an update to the entitled data responsive to the update notification.

19. The method of claim 7 , further comprising:

receiving a second data request for the entitled data from a second user;

hashing the second data request for the entitled data, resulting in the cache signature;

retrieving user permissions corresponding to the second user; and

transmitting a second set of the entitled data as a response to the second data request for the entitled data, wherein the second set of the entitled data is different from the first set of the entitled data.

20. One or more non-transitory computer-readable media storing executable instructions configured to, when executed, cause an apparatus to:

receive entitled data from a data server, the entitled data having associated data permissions defining one or more permissions needed by a requesting user to access the entitled data;

store the entitled data and a cache signature corresponding to the entitled data;

receive a first data request for the entitled data from a first user;

hash the first data request, resulting in the cache signature;

retrieve user permissions corresponding to the first user;

determine that the user permissions corresponding to the first user intersect with the data permissions; and

transmit a first set of the entitled data as a response to the first data request for the entitled data.

21. The one or more non-transitory computer-readable media of claim 20 further storing executable instructions that, when executed, cause the apparatus to:

receive a second data request for the entitled data from a second user;

retrieve user permissions corresponding to the second user; and

transmit a second set of the entitled data as a response to the second data request for the entitled data, wherein the second set of the entitled data is different from the first set of the entitled data.

22. The one or more non-transitory computer-readable media of claim 21 , further storing executable instructions that, when executed, cause the apparatus to:

hash the second data request for the entitled data, resulting in the cache signature.

23. The one or more non-transitory computer-readable media of claim 20 , further storing executable instructions that, when executed, cause the apparatus to:

receive an update notification that includes an identification of one or more data domains that need to be updated, wherein the entitled data is assigned to at least one of the one or more data domains; and

request an update to the entitled data responsive to the update notification.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Jan 29, 2021
From: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS NOTES COLLATERAL AGENT
To: REFINITIV US ORGANIZATION LLC (F/K/A THOMSON REUTERS (GRC) INC.)
Reel/Frame 055174/0811 →
RELEASE OF SECURITY INTEREST Recorded Jan 29, 2021
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: REFINITIV US ORGANIZATION LLC (F/K/A THOMSON REUTERS (GRC) INC.)
Reel/Frame 055174/0836 →
CHANGE OF NAME Recorded Mar 22, 2019
From: THOMSON REUTERS (GRC) LLC
To: REFINITIV US ORGANIZATION LLC
Reel/Frame 048676/0110 →
CHANGE OF NAME Recorded Dec 19, 2018
From: THOMSON REUTERS (GRC) INC.
To: THOMSON REUTERS (GRC) LLC
Reel/Frame 048553/0148 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2018
From: THOMSON REUTERS GLOBAL RESOURCES UNLIMITED COMPANY
To: THOMSON REUTERS (GRC) INC.
Reel/Frame 047909/0874 →
SECURITY AGREEMENT Recorded Oct 3, 2018
From: THOMSON REUTERS (GRC) INC.
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 047187/0316 →
SECURITY AGREEMENT Recorded Oct 2, 2018
From: THOMSON REUTERS (GRC) INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 047185/0215 →
CHANGE OF NAME Recorded Dec 1, 2017
From: THOMSON REUTERS GLOBAL RESOURCES
To: THOMSON REUTERS GLOBAL RESOURCES UNLIMITED COMPANY
Reel/Frame 044269/0796 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2015
From: THOMSON REUTERS (MARKETS) LLC
To: THOMSON REUTERS GLOBAL RESOURCES
Reel/Frame 035821/0065 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2009
From: KRISHNAMOORTHY, VENKATANARAYANAN; VARADRAJAN, SRINIVASAN; ZUCKNOVICH, STEPHEN; LEISY, JACQUES; JORNITSKI, VLADIMIR
To: THOMSON REUTERS (MARKETS) LLC
Reel/Frame 023397/0395 →