IP Library › Granted Patent US 9,961,011
Granted Patent B2
US 9,961,011 · App. 14/601,883 · Granted May 1, 2018

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 9,961,011
App. No.
14/601,883
Granted
May 1, 2018
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 (33)

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

a computer, which includes an application server or other environments executing thereon, and having a domain for execution of software applications, and one or more resources that are deployed to the domain for use by the software applications;

one or more resource group templates, wherein each resource group template defines, at domain level, a collection of resources that are referenced from a resource group;

one or more resource groups, wherein each resource group references a resource group template, and defines a fully-qualified collection of resources; and

one or more partitions, wherein each partition provides a subdivision of the domain, and includes one or more resource groups, and references one or more resource group templates;

wherein, for a particular partition, a resource group template is referenced by a resource group in that particular partition, to provide configuration data for use with the resource group template to which it refers, and to bind resources of the resource group template to partition-specific values, for use by the referencing resource group in that particular partition or a software application associated therewith; and

wherein a tenant is associated with a partition for use by that tenant.

2. The system of claim 1 , wherein the one or more resource group templates, the one or more resource groups, and the one or more partitions are defined by a configuration file.

3. The system of claim 1 , wherein the one or more deployable resources comprise one or more partition-aware resources and one or more partition-unaware resources.

4. The system of claim 1 , wherein the application server or the cloud environment includes a Java application server, and wherein each resource group template includes one or more related Java applications together with resources upon which those applications depend.

5. The system of claim 1 , wherein the system is provided within a cloud environment, and supports multiple tenants operating within the cloud environment.

6. The system of claim 1 , further comprising a multi-tenant container database (CDB) which corresponds with the domain, and which includes one or more pluggable databases (PDB) each of which corresponds with a particular partition.

7. The system of claim 6 , wherein the system supports multiple tenants, and wherein each tenant is associated with their own partition and PDB.

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

providing, at a computer, an application server or other environments executing thereon, and having a domain for execution of software applications, and one or more resources that are deployed to the domain for use by the software applications;

defining, at the computer, one or more resource group templates, wherein each resource group template defines, at domain level, a collection of resources that are referenced from a resource group;

defining, at the computer, one or more resource groups, wherein each resource group references a resource group template, and defines a fully-qualified collection of resources; and

defining, at the computer, one or more partitions, wherein each partition provides a subdivision of the domain, and includes one or more resource groups, and references one or more resource group templates;

wherein, for a particular partition, a resource group template is referenced by a resource group in that particular partition, to provide configuration data for use with the resource group template to which it refers, and to bind resources of the resource group template to partition-specific values, for use by the referencing resource group in that particular partition or a software application associated therewith; and

wherein a tenant is associated with a partition for use by that tenant.

9. The method of claim 8 , wherein the one or more resource group templates, the one or more resource groups, and the one or more partitions are defined by a configuration file.

10. The method of claim 8 , wherein the one or more deployable resources comprise one or more partition-aware resources and one or more partition-unaware resources.

11. The method of claim 8 , wherein the application server or the cloud environment includes a Java application server, and wherein each resource group template includes one or more related Java applications together with resources upon which those applications depend.

12. The method of claim 8 , wherein the system is provided within a cloud environment, and supports multiple tenants operating within the cloud environment.

13. The method of claim 8 , further comprising a multi-tenant container database (CDB) which corresponds with the domain, and which includes one or more pluggable databases (PDB) each of which corresponds with a particular partition.

14. The method of claim 13 , wherein the system supports multiple tenants, and wherein each tenant is associated with their own partition and PDB.

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

providing an application server or other environments executing thereon, and having a domain for execution of software applications, and one or more resources that are deployed to the domain for use by the software applications;

defining one or more resource group templates, wherein each resource group template defines, at domain level, a collection of resources that are referenced from a resource group;

defining one or more resource groups, wherein each resource group references a resource group template, and defines a fully-qualified collection of resources; and

defining one or more partitions, wherein each partition provides a subdivision of the domain, and includes one or more resource groups, and references one or more resource group templates;

wherein, for a particular partition, a resource group template is referenced by a resource group in that particular partition, to provide configuration data for use with the resource group template to which it refers, and to bind resources of the resource group template to partition-specific values, for use by the referencing resource group in that particular partition or a software application associated therewith; and

wherein a tenant is associated with a partition for use by that tenant.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2015
From: MORDANI, RAJIV; ISLAM, NAZRUL; KUMAR, ABHIJIT; QUINN, TIMOTHY; BOWER, PETER; FEIGEN, LAWRENCE; DIPOL, JOSEPH
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 034878/0771 →
Continuity (3)
Provisional Application 61929888 · Jan 21, 2014
Provisional Application 62015966 · Jun 23, 2014
Related Publication 20150207758A1 · Jul 23, 2015