IP Library Granted Patent US 11,782,767
Granted Patent B2
US 11,782,767 · App. 17/512,625 · Granted Oct 10, 2023

Techniques for consistent multi-tenant behavior in microservices based applications

Inventors: Arif Iqbal (Fremont, CA); Dhiraj D. Thakkar (Foster City, CA); Ananya Chatterjee (Kolkata, IN)
Assignee: Oracle International Corporation
G06F9/5077H04L67/10H04L67/63G05B2219/2642H04L67/133
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,782,767
App. No.
17/512,625
Granted
Oct 10, 2023
Kind
B2
Abstract

Techniques are disclosed for implementing a multi-tenant framework for microservices in a microservices-based application. A distributed computing system can execute a cluster on which the microservices-based application is hosted. The microservices-based application can include at least one microservice that incorporates the multi-tenant framework. The multi-tenant framework includes modules configured to provide multi-tenant functionality for the microservice. The microservice may receive a request containing tenant context data at an interface. A first module of the multi-tenant framework can extract the tenant context data from the request. In response to the request, the microservice may generate microservice data. A second module of the multi-tenant framework can use the extracted tenant context data to obtain a data store connection for the tenant. The microservice can use the data store connection to access the tenant's data store and store the microservice data.

Claims (86)

1. A computer-implemented method, comprising:

executing, by a distributed computing system, a cluster of compute nodes;

executing, on the cluster, an application comprising a microservice, the microservice comprising a multi-tenant framework having a plurality of modules;

receiving, at an interface of the microservice, a request associated with a tenant of the distributed computing system, the request comprising tenant context data;

extracting, by a first module of the plurality of modules, the tenant context data, the first module corresponding to the interface, the tenant context data comprising a tenant identifier corresponding to the tenant;

generating, responsive to the request, microservice data agnostic to the tenant context data;

providing, by a second module of the plurality of modules and based at least in part on the tenant identifier, a data store connection associated with the tenant;

accessing, by the microservice and using the data store connection, a data store; and

storing, by the microservice at the data store, the microservice data.

2. The computer-implemented method of claim 1 , further comprising:

sending, by a third module of the plurality of modules, a second request for additional tenant context data;

receiving, from an external service, the additional tenant context data, the additional tenant context data comprising a tenant database configuration; and

identifying, by the second module and based at least in part on the tenant database configuration, the data store connection.

3. The computer-implemented method of claim 1 , further comprising:

generating, by the microservice, an outbound request; and

injecting, by the first module, the tenant context data into the outbound request.

4. The computer-implemented method of claim 1 , wherein the request comprises an initial request associated with the tenant, and further comprising:

obtaining, by a fourth module of the plurality of modules, a tenant schema change set; and

creating, by the fourth module and responsive to the initial request, schema artifacts corresponding to the tenant identifier, the schema artifacts characterized by the tenant schema change set.

5. The computer-implemented method of claim 1 , further comprising:

upgrading, by the distributed computing system, the cluster to produce an upgraded cluster, the upgraded cluster comprising an updated data store;

executing, on the upgraded cluster, the application comprising the microservice;

receiving, at the microservice executing on the upgraded cluster, an initial request associated with the tenant;

obtaining, by a fourth module of the plurality of modules, a tenant schema change set corresponding to the updated data store; and

creating, by the fourth module and responsive to the initial request, schema artifacts corresponding to the tenant identifier, the schema artifacts characterized by the tenant schema change set.

6. The computer-implemented method of claim 1 , wherein the request comprises a tenant-agnostic request to persist the microservice data in the data store, the data store comprises a multi-tenant data store, and further comprising:

modifying, based on the tenant context data, the request to produce a tenant-specific request, the tenant-specific request comprising a schema corresponding to the tenant identifier.

7. The computer-implemented method of claim 1 , wherein the interface comprises a representational state transfer interface, a remote procedure call interface, or a messaging interface.

8. The computer-implemented method of claim 1 , further comprising:

retrieving, by the microservice from the data store, additional data associated with the request.

9. A distributed computing system, comprising:

one or more processors; and

one or more memories storing computer-executable instructions that when executed with the one or more processors, cause the distributed computing system to:

execute a cluster of compute nodes;

execute, on the cluster, an application comprising a microservice, the microservice comprising a multi-tenant framework having a plurality of modules;

receive, at an interface of the microservice, a request associated with a tenant of the distributed computing system, the request comprising tenant context data;

extract, by a first module of the plurality of modules, the tenant context data, the first module corresponding to the interface, the tenant context data comprising a tenant identifier corresponding to the tenant;

generate, responsive to the request, microservice data agnostic to the tenant context data;

provide, by a second module of the plurality of modules and based at least in part on the tenant identifier, a data store connection associated with the tenant;

access, by the microservice and using the data store connection, a data store; and

store, by the microservice at the data store, the microservice data.

10. The distributed computing system of claim 9 , wherein the one or more memories store further instructions that, when executed by the one or more processors, cause the distributed computing system to further:

send, by a third module of the plurality of modules, a second request for additional tenant context data;

receive, from an external service, the additional tenant context data, the additional tenant context data comprising a tenant database configuration; and

identify, by the second module and based at least in part on the tenant database configuration, the data store connection.

11. The distributed computing system of claim 9 , wherein the one or more memories store further instructions that, when executed by the one or more processors, cause the distributed computing system to further:

generate, by the microservice, an outbound request; and

inject, by the first module, the tenant context data into the outbound request.

12. The distributed computing system of claim 9 , wherein the request comprises an initial request associated with the tenant, and the one or more memories store further instructions that, when executed by the one or more processors, cause the distributed computing system to further:

obtain, by a fourth module of the plurality of modules, a tenant schema change set; and

create, by the fourth module and responsive to the initial request, schema artifacts corresponding to the tenant identifier, the schema artifacts characterized by the tenant schema change set.

13. The distributed computing system of claim 9 , wherein the one or more memories store further instructions that, when executed by the one or more processors, cause the distributed computing system to further:

upgrade, by the distributed computing system, the cluster to produce an upgraded cluster, the upgraded cluster comprising an updated data store;

execute, on the upgraded cluster, the application comprising the microservice;

receive, at the microservice executing on the upgraded cluster, an initial request associated with the tenant;

obtain, by a fourth module of the plurality of modules, a tenant schema change set corresponding to the updated data store; and

create, by the fourth module and responsive to the initial request, schema artifacts corresponding to the tenant identifier, the schema artifacts characterized by the tenant schema change set.

14. The distributed computing system of claim 9 , wherein the request comprises a tenant-agnostic request to persist the microservice data in the data store, the data store comprises a multi-tenant data store, and the one or more memories store further instructions that, when executed by the one or more processors, cause the distributed computing system to further:

modify, based on the tenant context data, the request to produce a tenant-specific request, the tenant-specific request comprising a schema corresponding to the tenant identifier.

15. A non-transitory computer-readable storage medium comprising executable instructions that, when executed by one or more processors of a distributed computing system, cause the distributed computing system to:

execute a cluster of compute nodes;

execute, on the cluster, an application comprising a microservice, the microservice comprising a multi-tenant framework having a plurality of modules;

receive, at an interface of the microservice, a request associated with a tenant of the distributed computing system, the request comprising tenant context data;

extract, by a first module of the plurality of modules, the tenant context data, the first module corresponding to the interface, the tenant context data comprising a tenant identifier corresponding to the tenant;

generate, responsive to the request, microservice data agnostic to the tenant context data;

provide, by a second module of the plurality of modules and based at least in part on the tenant identifier, a data store connection associated with the tenant;

access, by the microservice and using the data store connection, a data store; and

store, by the microservice at the data store, the microservice data.

16. The non-transitory computer-readable storage medium of claim 15 , comprising further instructions that, when executed by the one or more processors, further cause the distributed computing system to:

send, by a third module of the plurality of modules, a second request for additional tenant context data;

receive, from an external service, the additional tenant context data, the additional tenant context data comprising a tenant database configuration; and

identify, by the second module and based at least in part on the tenant database configuration, the data store connection.

17. The non-transitory computer-readable storage medium of claim 15 , comprising further instructions that, when executed by the one or more processors, further cause the distributed computing system to:

generate, by the microservice, an outbound request; and

inject, by the first module, the tenant context data into the outbound request.

18. The non-transitory computer-readable storage medium of claim 15 , wherein the request comprises an initial request associated with the tenant, and comprising further instructions that, when executed by the one or more processors, further cause the distributed computing system to:

obtain, by a fourth module of the plurality of modules, a tenant schema change set; and

create, by the fourth module and responsive to the initial request, schema artifacts corresponding to the tenant identifier, the schema artifacts characterized by the tenant schema change set.

19. The non-transitory computer-readable storage medium of claim 15 , comprising further instructions that, when executed by the one or more processors, further cause the distributed computing system to:

upgrade, by the distributed computing system, the cluster to produce an upgraded cluster, the upgraded cluster comprising an updated data store;

execute, on the upgraded cluster, the application comprising the microservice;

receive, at the microservice executing on the upgraded cluster, an initial request associated with the tenant;

obtain, by a fourth module of the plurality of modules, a tenant schema change set corresponding to the updated data store; and

create, by the fourth module and responsive to the initial request, schema artifacts corresponding to the tenant identifier, the schema artifacts characterized by the tenant schema change set.

20. The non-transitory computer-readable storage medium of claim 15 , wherein the request comprises a tenant-agnostic request to persist the microservice data in the data store, the data store comprises a multi-tenant data store, and comprising further instructions that, when executed by the one or more processors, further cause the distributed computing system to:

modify, based on the tenant context data, the request to produce a tenant-specific request, the tenant-specific request comprising a schema corresponding to the tenant identifier.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2021
From: IQBAL, ARIF; THAKKAR, DHIRAJ D.; CHATTERJEE, ANANYA
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 057951/0130 →
Priority Claims (1)
IN 202141019036 · Apr 26, 2021 · national
Continuity (1)
Related Publication 20220342718A1 · Oct 27, 2022