IP Library › Granted Patent US 11,683,274
Granted Patent B2
US 11,683,274 · App. 17/732,297 · Granted Jun 20, 2023

System and method for supporting multi-tenancy in an application server, cloud, or other environment

Inventors: Rajiv Mordani (Sunnyvale, CA); Nazrul Islam (Santa Clara, CA); Abhijit Kumar (Cupertino, CA); Timothy Quinn (Lake Forest, IL); Peter Bower (Hollis, NH); Lawrence Feigen (Watchung, NJ); Joseph DiPol (Sunnyvale, CA)
Assignee: ORACLE INTERNATIONAL CORPORATION
H04L47/78G06F8/60G06F9/4451H04L67/10
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,683,274
App. No.
17/732,297
Granted
Jun 20, 2023
Kind
B2
Abstract

In accordance with an embodiment, described herein is a system and method for supporting multi-tenancy in an application server, cloud, on-premise, or other environment, which enables categories of components and configurations to be associated with particular application instances or partitions. Resource group templates define, at a domain level, collections of deployable resources that can be referenced from resource groups. Each resource group is a named, fully-qualified collection of deployable resources that can reference a resource group template. A partition provides an administrative and runtime subdivision of the domain, and contains one or more resource groups. Each resource group can reference a resource group template, to bind deployable resources to partition-specific values, for use by the referencing partition. A tenant of the application server or cloud environment can be associated with a partition, or applications deployed therein, for use by that tenant.

Claims (41)

1. A system for supporting multi-tenancy in a cloud or other computing environment, comprising:

a computer that includes one or more processors and a cloud or other computing environment executing thereon, and having a domain configuration that is used at runtime to define a domain for execution of software applications, and for a plurality of partitions;

wherein each partition, of the plurality of partitions, is associated with a partition identifier and a partition configuration, and provides an administrative and runtime subdivision of the domain;

wherein each partition, of the plurality of partitions, is associated with a local namespace that the system uses to communicate requests to particular partitions of the plurality of partitions; and

wherein upon a request received from a client directed to a software application or resource executing or provided within a particular partition of the plurality of partitions, the system:

determines a particular partition associated with the received request, and a particular partition identifier, and stores the particular partition identifier in the received request's execution context; and

routes the received request to the particular partition associated with the received request, for use by the software application or resource executing or provided within the particular partition of the plurality of partitions.

2. The system of claim 1 , wherein the system enables one or more partitions of the plurality of partitions to be associated with a tenant, for use by the tenant.

3. The system of claim 1 , wherein, for a particular partition of the plurality of partitions, a particular resource group is associated with a virtual target information, for use with resources of the particular resource group and with the particular partition of the plurality of partitions.

4. The system of claim 3 , wherein the particular resource group references a resource group template that binds resources of the resource group template to partition-specific values.

5. The system of claim 1 , wherein the system is provided within a cloud environment that enables one or more partitions of the plurality of partitions to be associated with a tenant for use by the tenant;

wherein a partition identifier is associated with a tenant identifier; and

wherein a tenant-aware application enables use of the tenant identifier to handle multiple tenants that are using a single instance of the tenant-aware application.

6. The system of claim 1 , wherein:

a first partition of the plurality of partitions is associated with a first partition identifier, and a first plurality of resources is associated with the first partition of the plurality of partitions, and is accessible by a first tenant and clients associated therewith; and

a second partition of the plurality of partitions is associated with a second partition identifier, and a second plurality of resources is associated with the second partition of the plurality of partitions, and is accessible by a second tenant and clients associated therewith.

7. The system of claim 1 , wherein a networking layer associates incoming requests with partition identifiers based on a request Uniform Resource Locator (URL), and wherein the networking layer determines a target partition identifier for the received request, and adds the determined target partition identifier to the received request's execution context.

8. A method for supporting multi-tenancy in a cloud or other computing environment, comprising:

providing, at a computer that includes one or more processors and a cloud or other computing environment executing thereon, and having a domain configuration that is used at runtime to define a domain for execution of software applications, and for a plurality of partitions;

wherein each partition, of the plurality of partitions, is associated with a partition identifier and a partition configuration, and provides an administrative and runtime subdivision of the domain;

wherein each partition, of the plurality of partitions, is associated with a local namespace that a system uses to communicate requests to particular partitions of the plurality of partitions; and

wherein upon a request received from a client directed to a software application or resource executing or provided within a particular partition of the plurality of partitions:

determining a particular partition associated with the received request, and a particular partition identifier, and stores the particular partition identifier in the received request's execution context; and

routing the received request to the particular partition associated with the received request, for use by the software application or resource executing or provided within the particular partition of the plurality of partitions.

9. The method of claim 8 , wherein the system enables one or more partitions of the plurality of partitions to be associated with a tenant, for use by the tenant.

10. The method of claim 8 , wherein, for a particular partition of the plurality of partitions, a particular resource group is associated with a virtual target information, for use with resources of the particular resource group and with the particular partition of the plurality of partitions.

11. The method of claim 8 , wherein the system is provided within a cloud environment that enables one or more partitions of the plurality of partitions to be associated with a tenant for use by the tenant;

wherein a partition identifier is associated with a tenant identifier; and

wherein a tenant-aware application enables use of the tenant identifier to handle multiple tenants that are using a single instance of the tenant-aware application.

12. The method of claim 8 , wherein:

a first partition of the plurality of partitions is associated with a first partition identifier, and a first plurality of resources is associated with the first partition of the plurality of partitions, and is accessible by a first tenant and clients associated therewith; and

a second partition of the plurality of partitions is associated with a second partition identifier, and a second plurality of resources is associated with the second partition of the plurality of partitions, and is accessible by a second tenant and clients associated therewith.

13. The method of claim 8 , wherein the particular resource group references a resource group template that binds resources of the resource group template to partition-specific values.

14. The method of claim 8 , wherein a networking layer associates incoming requests with partition identifiers based on a request Uniform Resource Locator (URL), and wherein the networking layer determines a target partition identifier for the received request, and adds the determined target partition identifier to the received request's execution context.

15. A non-transitory computer readable storage medium, including instructions stored thereon which when read and executed by one or more computers cause the one or more computers to perform a method comprising:

providing, at a computer that includes one or more processors and a cloud or other computing environment executing thereon, and having a domain configuration that is used at runtime to define a domain for execution of software applications, and for a plurality of partitions;

wherein each partition, of the plurality of partitions, is associated with a partition identifier and a partition configuration, and provides an administrative and runtime subdivision of the domain;

wherein each partition, of the plurality of partitions, is associated with a local namespace that a system uses to communicate requests to particular partitions of the plurality of partitions; and

wherein upon a request received from a client directed to a software application or resource executing or provided within a particular partition of the plurality of partitions:

determining a particular partition associated with the received request, and a particular partition identifier, and stores the particular partition identifier in the received request's execution context; and

routing the received request to the particular partition associated with the received request, for use by the software application or resource executing or provided within the particular partition of the plurality of partitions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2022
From: MORDANI, RAJIV; ISLAM, NAZRUL; KUMAR, ABHIJIT; QUINN, TIMOTHY; BOWER, PETER; FEIGEN, LAWRENCE; DIPOL, JOSEPH
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 059762/0857 →
Continuity (6)
Continuation 16918631 · Jul 1, 2020
Continuation 15948721 · Apr 9, 2018
Continuation 14601883 · Jan 21, 2015
Provisional Application 62015966 · Jun 23, 2014
Provisional Application 61929888 · Jan 21, 2014
Related Publication 20220255879A1 · Aug 11, 2022
Cited By (1)
US 12,265,549