IP Library › Granted Patent US 11,601,411
Granted Patent B2
US 11,601,411 · App. 16/851,889 · Granted Mar 7, 2023

Caching framework for a multi-tenant identity and data security management cloud service

Inventors: Lokesh Gupta (Belmont, CA); Ashutosh Pitre (Dublin, CA)
Assignee: ORACLE INTERNATIONAL CORPORATION
H04L63/08G06F9/50G06F9/547H04L63/083H04L63/0815H04L63/10H04L67/02H04L67/568H04L69/18H04L2463/082
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,601,411
App. No.
16/851,889
Granted
Mar 7, 2023
Kind
B2
Abstract

A caching framework for a multi-tenant cloud-based system includes a plurality of microservices, a global cache that implements a global namespace, and a plurality of tenant caches, each tenant cache corresponding to a different tenant of the multi-tenant cloud-based system. The framework further includes a common module corresponding to each of the microservices and comprising a cache application programming interface (API), and a cache module comprising a service provider interface (SPI) adapted to connect to a distributed remote cache.

Claims (54)

1. A caching framework for a multi-tenant cloud-based system comprising:

one or more hardware processors that execute instructions to implement the caching framework comprising:

a plurality of microservices;

a global cache that implements a global namespace;

a plurality of tenant caches, each tenant cache corresponding to a different tenant of the multi-tenant cloud-based system;

a common module corresponding to each of the microservices, the common module comprising a cache application programming interface (API) and a remote API proxy; and

a cache module comprising a service provider interface (SPI) adapted to connect to a distributed remote cache;

wherein each microservice has compile time dependency on its respective common module and has run time dependency on the cache module so that the common module facilitates changes in the distributed remote cache;

wherein the one or more processors, in response to a request from a client, comprising a call to a first cache API that identifies a first microservice, for a resource comprising metadata, determine, by the remote API proxy, whether the resource is indicated as cacheable based on the metadata, and if cacheable whether the resource is cached in a near cache or in the distributed remote cache, wherein the remote cache is external of the first microservice and the remote API proxy establishes a connection with the distributed remote cache;

based on the determination by the remote API proxy, provide the resource to the client from one of an administration microservice, the near cache or the distributed remote cache.

2. The caching framework of claim 1 , wherein the remote cache comprises an in-memory data grid.

3. The caching framework of claim 2 , wherein the in-memory data grid comprises Coherence.

4. The caching framework of claim 1 , wherein each of the different tenants has a separate corresponding namespace for finding objects located in cache.

5. The caching framework of claim 1 , the one or more processors further:

authenticate the request;

access the first microservice of the plurality of microservices based on the request, the first microservice comprising the remote API proxy and the near cache, wherein the near cache is local to the first microservice and fronts a remote cache; in response to determining the resource is indicated as cacheable in the near cache, retrieve the resource from the near cache or from the remote cache when the resource is cached;

call the administration microservice to obtain the resource when the resource is not cached, wherein the administration microservice is a different microservice than the first microservice.

6. The caching framework of claim 5 , wherein the administration microservice obtains the resource from a connection to a database or a connection to a Lightweight Directory Access Protocol (LDAP).

7. The caching framework of claim 5 , wherein the request comprises a Hypertext Transfer Protocol (HTTP) request, wherein the client comprises a Representational State Transfer (REST) client, wherein the administration microservice comprises a System for Cross-domain Identity Management (SCIM) microservice, wherein the providing comprises sending a JavaScript Object Notation (JSON) response payload.

8. A non-transitory computer readable medium having instructions stored thereon that, when executed by one or more processors, cause the processors to implement a caching framework for a multi-tenant cloud-based system, the caching framework comprising:

a plurality of microservices;

a global cache that implements a global namespace;

a plurality of tenant caches, each tenant cache corresponding to a different tenant of the multi-tenant cloud-based system;

a common module corresponding to each of the microservices, the common module comprising a cache application programming interface (API) and a remote API proxy; and

a cache module comprising a service provider interface (SPI) adapted to connect to a distributed remote cache;

wherein each microservice has compile time dependency on its respective common module and has run time dependency on the cache module so that the common module facilitates changes in the distributed remote cache;

wherein the one or more processors, in response to a request from a client, comprising a call to a first cache API that identifies a first microservice, for a resource comprising metadata, determine, by the remote API proxy, whether the resource is indicated as cacheable based on the metadata, and if cacheable whether the resource is cached in a near cache or in the distributed remote cache, wherein the remote cache is external of the first microservice and the remote API proxy establishes a connection with the distributed remote cache;

based on the determination by the remote API proxy, provide the resource to the client from one of an administration microservice, the near cache or the distributed remote cache.

9. The computer readable medium of claim 8 , wherein the remote cache comprises an in-memory data grid.

10. The computer readable medium of claim 9 , wherein the in-memory data grid comprises Coherence.

11. The computer readable medium of claim 8 , wherein each of the different tenants has a separate corresponding namespace for finding objects located in cache.

12. The computer readable medium of claim 8 , the caching framework further comprising:

authenticating the request;

accessing the first microservice of the plurality of microservices based on the request, the first microservice comprising the remote API proxy and a near cache, wherein the near cache is local to the first microservice and fronts a remote cache;

in response to determining the resource is indicated as cacheable in the near cache, retrieving the resource from the near cache or from the remote cache when the resource is cached;

calling the administration microservice to obtain the resource when the resource is not cached, wherein the administration microservice is a different microservice than the first microservice.

13. The computer readable medium of claim 12 , wherein the administration microservice obtains the resource from a connection to a database or a connection to a Lightweight Directory Access Protocol (LDAP).

14. The computer readable medium of claim 12 , wherein the request comprises a Hypertext Transfer Protocol (HTTP) request, wherein the client comprises a Representational State Transfer (REST) client, wherein the administration microservice comprises a System for Cross-domain Identity Management (SCIM) microservice, wherein the providing comprises sending a JavaScript Object Notation (JSON) response payload.

15. A method executing by one or more processors of providing a caching framework for a multi-tenant cloud-based system comprising:

generating a plurality of microservices, each of the microservices having access to a global cache that implements a global namespace and a plurality of tenant caches, each tenant cache corresponding to a different tenant of the multi-tenant cloud-based system;

generating a common module corresponding to each of the microservices, the common module comprising a cache application programming interface (API) and a remote API proxy; and

generating a cache module comprising a service provider interface (SPI) adapted to connect to a distributed remote cache;

wherein each microservice has compile time dependency on its respective common module and has run time dependency on the cache module so that the common module facilitates changes in the distributed remote cache;

wherein the one or more processors, in response to a request from a client, comprising a call to a first cache API that identifies a first microservice, for a resource comprising metadata, determine, by the remote API proxy, whether the resource is indicated as cacheable based on the metadata, and if cacheable whether the resource is cached in a near cache or in the distributed remote cache, wherein the remote cache is external of the first microservice and the remote API proxy establishes a connection with the distributed remote cache;

based on the determination by the remote API proxy, providing the resource to the client from one of an administration microservice, the near cache or the distributed remote cache.

16. The method of claim 15 , wherein the remote cache comprises an in-memory data grid.

17. The method of claim 15 , wherein each of the different tenants has a separate corresponding namespace for finding objects located in cache.

18. The method of claim 15 , wherein the common module comprises a remote API proxy.

19. The method of claim 15 , further comprising:

authenticating the request;

accessing the first microservice of the plurality of microservices based on the request, the first microservice comprising the remote API proxy and the near cache, wherein the near cache is local to the first microservice and fronts a remote cache;

in response to determining the resource is indicated as cacheable in the near cache, retrieving the resource from the near cache or from the remote cache when the resource is cached;

calling the administration microservice to obtain the resource when the resource is not cached, wherein the administration microservice is a different microservice than the first microservice.

20. The method of claim 19 , wherein the administration microservice obtains the resource from a connection to a database or a connection to a Lightweight Directory Access Protocol (LDAP).

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2020
From: GUPTA, LOKESH
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 052711/0020 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2020
From: PITRE, ASHUTOSH
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 052711/0074 →
Continuity (6)
Continuation 15661014 · Jul 27, 2017
Provisional Application 62395463 · Sep 16, 2016
Provisional Application 62385339 · Sep 9, 2016
Provisional Application 62376069 · Aug 17, 2016
Provisional Application 62371336 · Aug 5, 2016
Related Publication 20200244638A1 · Jul 30, 2020
Cited By (2)
US 12,348,355 US 12,549,433