# US 10,873,624 B2 · System and method for use of a global runtime in a multitenant application server environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,873,624 B2
- Document ID: US10873624B2
- Status: Granted
- Kind: B2
- Application number: 16/415,636
- Filed: 2019-05-17
- Published: 2019-09-05
- Granted: 2020-12-22
- Earliest claimed: 2014-09-25
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Rajiv Mordani; Nazrul Islam
- Web page: https://patentgrep.com/patent/US10873624B2

## CPC

- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 16/213: {with details for schema evolution support}
- G06F 16/217: {Database tuning (G06F16/2282 takes precedence; database performance monitoring G06F11/3409)}
- H04L 47/70: Admission control; Resource allocation
- H04L 67/1001: for accessing one among a plurality of replicated servers
- H04L 67/1044: {Group management mechanisms (management of multicast group membership H04L12/185; reconfiguring of node membership in a computing system to eliminate errors G06F11/1425)}
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In accordance with an embodiment, described herein is a system and method for providing an end-to-end lifecycle in a multi-tenant application server environment. A lifecycle manager enables configuration integration across different components, for example application servers, traffic directors or load balancers, and database or other components, which may have their own partition-specific configurations. In accordance with an embodiment, the end-to-end lifecycle infrastructure includes a plugin-based mechanism which enables the different components within a multi-tenant application server environment to use a lifecycle plugin to provide their own component-specific lifecycle functionality. In accordance with an embodiment, the system includes support for a tenant onboarding functionality, which can be used to onboard a tenant for a service to a particular partition. In accordance with an embodiment, the system supports the use of a global runtime within the multi-tenant application server environment.

## Claims

### Claim 1

A system for supporting a global runtime in an application server environment, comprising
one or more computers, comprising an application server environment executing thereon that enables deployment and execution of software applications, wherein the application server environment includes:
a domain configuration that defines an application server domain for execution of the software applications, and a plurality of partitions of the domain; and
a plurality of resources that can be used within the application server environment;
wherein each partition, of the plurality partitions, is associated with a partition configuration and provides a subdivision of the domain, and includes one or more resources or resource groups for use with the partition;
wherein the application server operates a global runtime scoped to the application server domain, that includes one or more applications or resources that are specified at the domain level and can execute either in a global context or a partition or tenant context; and
wherein the global runtime is adapted to perform operations associated with the partitions, including, for an operation associated with a particular partition, switching a thread context from the global context to at least one of a partition or tenant context associated with the particular partition, and executing the operation at the particular partition.

### Claim 2 (depends on 1)

The system of claim 1, wherein the global runtime includes one or more applications or libraries that are shareable with tenant-specific applications running in the one or more partitions.

### Claim 3 (depends on 1)

The system of claim 1, further comprising a lifecycle manager that configures components of the application server environment with partition-specific configurations, for use with the one or more partitions, wherein each particular component, of a plurality of components, is associated with a component-specific lifecycle that enables lifecycle operations to be performed with the particular component.

### Claim 4 (depends on 3)

The system of claim 3, wherein, during tenant onboarding, the system performs lifecycle operations, within a context of a determined tenant context, to configure one or more components of the application server environment, with partition-specific configurations.

### Claim 5 (depends on 1)

The system of claim 1, wherein resources in a resource group are targeted to all targets specified for the resource group, and wherein when the resource group is targeted to a cluster, applications therein run on the managed servers in the cluster.

### Claim 6 (depends on 1)

The system of claim 1, further comprising, for each tenant of a plurality of tenants, a tenant context associated with the tenant that can is mapped to a partition context for use with the tenant.

### Claim 7 (depends on 1)

The system of claim 1, further comprising one or more resource group templates that enable information to be associated with a referenced resource group template, to indicate partition-specific information for one or more of the deployable resources.

### Claim 8

A method for supporting a global runtime in an application server environment, comprising:
providing, at one or more computers, an application server environment executing thereon that enables deployment and execution of software applications, wherein the application server environment includes:
a domain configuration that defines an application server domain for execution of the software applications, and a plurality of partitions of the domain; and
a plurality of resources that can be used within the application server environment;
wherein each partition, of the plurality partitions, is associated with a partition configuration and provides a subdivision of the domain, and includes one or more resources or resource groups for use with the partition;
wherein the application server operates a global runtime scoped to the application server domain, that includes one or more applications or resources that are specified at the domain level and can execute either in a global context or a partition or tenant context; and
wherein the global runtime is adapted to perform operations associated with the partitions, including, for an operation associated with a particular partition, switching a thread context from the global context to at least one of a partition or tenant context associated with the particular partition, and executing the operation at the particular partition.

### Claim 9 (depends on 8)

The method of claim 8, wherein the global runtime includes one or more applications or libraries that are shareable with tenant-specific applications running in the one or more partitions.

### Claim 10 (depends on 8)

The method of claim 8, further comprising providing a lifecycle manager that configures components of the application server environment with partition-specific configurations, for use with the one or more partitions, wherein each particular component, of a plurality of components, is associated with a component-specific lifecycle that enables lifecycle operations to be performed with the particular component.

### Claim 11 (depends on 10)

The method of claim 10, wherein, during tenant onboarding, lifecycle operations are performed, within a context of a determined tenant context, to configure one or more components of the application server environment, with partition-specific configurations.

### Claim 12 (depends on 8)

The method of claim 8, wherein resources in a resource group are targeted to all targets specified for the resource group, and wherein when the resource group is targeted to a cluster, applications therein run on the managed servers in the cluster.

### Claim 13 (depends on 8)

The method of claim 8, further comprising, for each tenant of a plurality of tenants, providing a tenant context associated with the tenant that can is mapped to a partition context for use with the tenant.

### Claim 14 (depends on 8)

The method of claim 8, further comprising providing one or more resource group templates that enable information to be associated with a referenced resource group template, to indicate partition-specific information for one or more of the deployable resources.

### Claim 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 the method comprising:
providing an application server environment that enables deployment and execution of software applications, wherein the application server environment includes:
a domain configuration that defines an application server domain for execution of the software applications, and a plurality of partitions of the domain; and
a plurality of resources that can be used within the application server environment;
wherein each partition, of the plurality partitions, is associated with a partition configuration and provides a subdivision of the domain, and includes one or more resources or resource groups for use with the partition;
wherein the application server operates a global runtime scoped to the application server domain, that includes one or more applications or resources that are specified at the domain level and can execute either in a global context or a partition or tenant context; and
wherein the global runtime is adapted to perform operations associated with the partitions, including, for an operation associated with a particular partition, switching a thread context from the global context to at least one of a partition or tenant context associated with the particular partition, and executing the operation at the particular partition.

### Claim 16 (depends on 15)

The non-transitory computer readable storage medium of claim 15, wherein the global runtime includes one or more applications or libraries that are shareable with tenant-specific applications running in the one or more partitions.

### Claim 17 (depends on 15)

The non-transitory computer readable storage medium of claim 15, further comprising providing a lifecycle manager that configures components of the application server environment with partition-specific configurations, for use with the one or more partitions, wherein each particular component, of a plurality of components, is associated with a component-specific lifecycle that enables lifecycle operations to be performed with the particular component.

### Claim 18 (depends on 17)

The non-transitory computer readable storage medium of claim 17, wherein, during tenant onboarding, lifecycle operations are performed, within a context of a determined tenant context, to configure one or more components of the application server environment, with partition-specific configurations.

### Claim 19 (depends on 15)

The non-transitory computer readable storage medium of claim 15, wherein resources in a resource group are targeted to all targets specified for the resource group, and wherein when the resource group is targeted to a cluster, applications therein run on the managed servers in the cluster.

### Claim 20 (depends on 15)

The non-transitory computer readable storage medium of claim 15, further comprising, for each tenant of a plurality of tenants, providing a tenant context associated with the tenant that can is mapped to a partition context for use with the tenant.
