IP Library › Granted Patent US 11,343,200
Granted Patent B2
US 11,343,200 · App. 16/918,631 · Granted May 24, 2022

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 (Watchung, NJ); 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,343,200
App. No.
16/918,631
Filed
Jul 1, 2020
Granted
May 24, 2022
Kind
B2
Examiner
CHEN, QING
Art Unit
2191
USPC
709/226
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 (48)

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

a computer that includes one or more processors and an application server, a cloud environment, or other environment executing thereon, and having a domain configuration that is used at runtime to define a domain for execution of software applications, and a plurality of resources accessible within the domain and adapted for use by the software applications;

wherein the system operates at runtime to define a plurality of partitions of the domain, including wherein:

each partition, of the plurality of partitions, is associated with a partition identifier that identifies the partition; and

each partition, of the plurality of partitions, provides a subdivision of the domain for execution of the software applications and use of the plurality of resources within a context of the partition; and

wherein each partition, of the plurality of partitions, is associated with a virtual target associated with the partition, and wherein upon a request received from a client directed to a particular virtual target, the system:

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

routes the received request to the particular partition, for use by the software applications associated with the particular partition.

2. The system of claim 1 , wherein the system is provided within a cloud environment that enables one or more 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.

3. The system of claim 1 , wherein:

a first partition is associated with a first partition identifier, and a first plurality of resources associated with the first partition, and is accessible by clients communicating requests to a first virtual target; and

a second partition is associated with a second partition identifier, and a second plurality of resources associated with the second partition, and is accessible by clients communicating requests to a second virtual target.

4. The system of claim 1 , wherein the system includes a networking layer that 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.

5. The system of claim 1 , wherein the system includes support for channels, including a channel for use by all partitions, and a dedicated channel for each partition of the plurality of partitions, and wherein if a partition is specified, then the partition identifier is used to determine a suitable channel.

6. A method for supporting multi-tenancy in an application server, a cloud environment, or other environment, comprising:

providing, at a computer that includes one or more processors and an application server, a cloud environment, or other environment executing thereon, and having a domain configuration that is used at runtime to define a domain for execution of software applications, and a plurality of resources accessible within the domain and adapted for use by the software applications;

wherein a system operates at runtime to define a plurality of partitions of the domain, including wherein:

each partition, of the plurality of partitions, is associated with a partition identifier that identifies the partition; and

each partition, of the plurality of partitions, provides a subdivision of the domain for execution of the software applications and use of the plurality of resources within a context of the partition; and

wherein each partition, of the plurality of partitions, is associated with a virtual target associated with the partition, and wherein upon a request received from a client directed to a particular virtual target, the system:

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

routes the received request to the particular partition, for use by the software applications associated with the particular partition.

7. The method of claim 6 , wherein the system is provided within a cloud environment that enables one or more 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.

8. The method of claim 6 , wherein:

a first partition is associated with a first partition identifier, and a first plurality of resources associated with the first partition, and is accessible by clients communicating requests to a first virtual target; and

a second partition is associated with a second partition identifier, and a second plurality of resources associated with the second partition, and is accessible by clients communicating requests to a second virtual target.

9. The method of claim 6 , wherein the system includes a networking layer that 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.

10. The method of claim 6 , wherein the system includes support for channels, including a channel for use by all partitions, and a dedicated channel for each partition of the plurality of partitions, and wherein if a partition is specified, then the partition identifier is used to determine a suitable channel.

11. 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 an application server, a cloud environment, or other environment executing thereon, and having a domain configuration that is used at runtime to define a domain for execution of software applications, and a plurality of resources accessible within the domain and adapted for use by the software applications;

wherein a system operates at runtime to define a plurality of partitions of the domain, including wherein:

each partition, of the plurality of partitions, is associated with a partition identifier that identifies the partition; and

each partition, of the plurality of partitions, provides a subdivision of the domain for execution of the software applications and use of the plurality of resources within a context of the partition; and

wherein each partition, of the plurality of partitions, is associated with a virtual target associated with the partition, and wherein upon a request received from a client directed to a particular virtual target, the system:

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

routes the received request to the particular partition, for use by the software applications associated with the particular partition.

12. The non-transitory computer readable storage medium of claim 11 , wherein the system is provided within a cloud environment that enables one or more 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.

13. The non-transitory computer readable storage medium of claim 11 , wherein:

a first partition is associated with a first partition identifier, and a first plurality of resources associated with the first partition, and is accessible by clients communicating requests to a first virtual target; and

a second partition is associated with a second partition identifier, and a second plurality of resources associated with the second partition, and is accessible by clients communicating requests to a second virtual target.

14. The non-transitory computer readable storage medium of claim 11 , wherein the system includes a networking layer that 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. The non-transitory computer readable storage medium of claim 11 , wherein the system includes support for channels, including a channel for use by all partitions, and a dedicated channel for each partition of the plurality of partitions, and wherein if a partition is specified, then the partition identifier is used to determine a suitable channel.

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