# US 10,873,627 B2 · System and method for supporting use of an in-memory data grid with 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,627 B2
- Document ID: US10873627B2
- Status: Granted
- Kind: B2
- Application number: 14/748,139
- Filed: 2015-06-23
- Published: 2015-12-24
- Granted: 2020-12-22
- Earliest claimed: 2014-06-23
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Gene Gleyzer; Tim Middleton; Ballav Bihani
- Web page: https://patentgrep.com/patent/US10873627B2

## CPC

- 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 9/5072: {Grid computing}
- 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)}
- H04L 45/566: {Routing instructions carried by the data packet, e.g. active networks}
- H04L 47/829: {Topology based}
- H04L 67/1001: for accessing one among a plurality of replicated servers
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In accordance with an embodiment, the system supports use of an in-memory data grid or other distributed memory environment, for example Oracle Coherence. A partition provides a runtime and administrative subdivision or slice of an application server domain. An application can be deployed to a particular partition, or otherwise associated with a particular domain partition name. The domain partition name can be used by the data grid to enable a separation of data between different partitions or between tenants associated with those partitions. In some embodiments, one or more data grid services, for example caches and clustered services, can be shared across multiple partitions. Alternatively, the data grid can provide read-shared/write-specific access to data grid services, in which multiple partitions can share an initial set of data, but their subsequent modifications to that data are then isolated from each other.

## Claims

### Claim 1

A system for supporting partitions in an application server environment, comprising:
one or more computers, including an application server environment that provides deployment and execution of software applications, wherein the application server environment includes:
a domain configuration that is used at runtime to define a domain for execution of software applications, and 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, and
wherein each partition of the plurality of partitions includes one or more resource groups, and wherein each partition is associated with a virtual target information and is accessible via a partition-specific virtual target associated with the partition at which that partition accepts incoming traffic to that partition and its resources; and
wherein the application server environment includes a data grid module that provides access by an application container to an in-memory data grid that supports separation of data associated with different partitions of the plurality of partitions from each other of the plurality of partitions, including that:
upon a software application being deployed to a particular partition of the plurality of partitions, or otherwise associated with the particular partition, a domain partition name associated with the particular partition is incorporated in an execution context associated with the software application, and is used by the in-memory data grid in associating the domain partition name with a data grid service name and creating one or more data grid resources and services, for use by the deployed software application, including that:
the domain partition name is provided by the application container, via the data grid module, to a container adapter at the in-memory data grid, for use in creating a data grid service for the partition, and
the container adapter injects the domain partition name into a cache factory, which passes the provided domain partition name to service builder instances that modify names of one or more partition-related data grid resources or services to include the provided domain partition name, wherein the deployed software application, at the particular partition, uses the domain partition name to access the partition-related data grid resource and services.

### Claim 2 (depends on 1)

The system of claim 1, wherein the system can associate a partition with a tenant, for use by the tenant, wherein the software application is a tenant-aware application, and whereupon the tenant-aware application is deployed to or otherwise associated with the particular partition, the domain partition name is included in the application's execution context, so that data grid tenant-aware components can obtain the domain partition name.

### Claim 3 (depends on 1)

The system of claim 1, wherein data grid resources and services are shared across multiple partitions, including domain partition name can be used by the data grid to enable a separation of data between different partitions or between tenants associated with those partitions.

### Claim 4 (depends on 1)

The system of claim 1, wherein the data provides read-shared/write-specific access to data grid services, in which multiple partitions can share an initial set of data, but their subsequent modifications to that data are then isolated from each other.

### Claim 5 (depends on 1)

The system of claim 1, wherein the system is provided within a cloud environment, to support multiple tenants operating within the cloud environment.

### Claim 6

A method for supporting partitions in an application server environment, comprising:
providing, at one or more computers, an application server environment that provides deployment and execution of software applications, wherein the application server environment includes:
a domain configuration that is used at runtime to define a domain for execution of software applications, and 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, and
wherein each partition of the plurality of partitions includes one or more resource groups, and wherein each partition is associated with a virtual target information and is accessible via a partition-specific virtual target associated with the partition at which that partition accepts incoming traffic to that partition and its resources; and
providing access by an application container to an in-memory data grid that supports separation of data associated with different partitions of the plurality of partitions from each other of the plurality of partitions; and
upon a software application being deployed to a particular partition of the plurality of partitions, or otherwise associated with the particular partition:
incorporating a domain partition name associated with the particular partition in an execution context associated with the software application, for use by the in-memory data grid in associating the domain partition name with a data grid service name and creating one or more data grid resources and services, for use by the deployed software application, including that:
the domain partition name is provided by the application container to a container adapter at the in-memory data grid, for use in creating a data grid service for the partition, and
the container adapter injects the domain partition name into a cache factory, which passes the provided domain partition name to service builder instances that modify names of one or more partition-related data grid resources or services to include the provided domain partition name, wherein the deployed software application, at the particular partition, uses the domain partition name to access the partition-related data grid resource and services.

### Claim 7 (depends on 6)

The method of claim 6, further comprising associating a partition with a tenant, for use by the tenant, wherein the software application is a tenant-aware application, and whereupon the tenant-aware application is deployed to or otherwise associated with the particular partition, the domain partition name is included in the application's execution context, so that data grid tenant-aware components can obtain the domain partition name.

### Claim 8 (depends on 6)

The method of claim 6, wherein data grid resources and services are shared across multiple partitions, including domain partition name can be used by the data grid to enable a separation of data between different partitions or between tenants associated with those partitions.

### Claim 9 (depends on 6)

The method of claim 6, wherein the data grid provides read-shared/write-specific access to data grid services, in which multiple partitions can share an initial set of data, but their subsequent modifications to that data are then isolated from each other.

### Claim 10 (depends on 6)

The method of claim 6, wherein the method is provided within a cloud environment, to support multiple tenants operating within the cloud environment.

### Claim 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 the steps comprising:
providing an application server environment that provides deployment and execution of software applications, wherein the application server environment includes:
a domain configuration that is used at runtime to define a domain for execution of software applications, and 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, and
wherein each partition of the plurality of partitions includes one or more resource groups, and wherein each partition is associated with a virtual target information and is accessible via a partition-specific virtual target associated with the partition at which that partition accepts incoming traffic to that partition and its resources; and
providing access by an application container to an in-memory data grid that supports separation of data associated with different partitions of the plurality of partitions from each other of the plurality of partitions; and
upon a software application being deployed to a particular partition of the plurality of partitions, or otherwise associated with the particular partition:
incorporating a domain partition name associated with the particular partition in an execution context associated with the software application, for use by the in-memory data grid in associating the domain partition name with a data grid service name and creating one or more data grid resources and services, for use by the deployed software application, including that:
the domain partition name is provided by the application container to a container adapter at the in-memory data grid, for use in creating a data grid service for the partition, and
the container adapter injects the domain partition name into a cache factory, which passes the provided domain partition name to service builder instances that modify names of one or more partition-related data grid resources or services to include the provided domain partition name, wherein the deployed software application, at the particular partition, uses the domain partition name to access the partition-related data grid resource and services.

### Claim 12 (depends on 11)

The non-transitory computer readable storage medium of claim 11, further comprising associating a partition with a tenant, for use by the tenant, wherein the software application is a tenant-aware application, and whereupon the tenant-aware application is deployed to or otherwise associated with the particular partition, the domain partition name is included in the application's execution context, so that data grid tenant-aware components can obtain the domain partition name.

### Claim 13 (depends on 11)

The non-transitory computer readable storage medium of claim 11, wherein data grid resources and services are shared across multiple partitions, including domain partition name can be used by the data grid to enable a separation of data between different partitions or between tenants associated with those partitions.

### Claim 14 (depends on 11)

The non-transitory computer readable storage medium of claim 11, wherein the data grid provides read-shared/write-specific access to data grid services, in which multiple partitions can share an initial set of data, but their subsequent modifications to that data are then isolated from each other.

### Claim 15 (depends on 11)

The non-transitory computer readable storage medium of claim 11, wherein the method is provided within a cloud environment, to support multiple tenants operating within the cloud environment.

### Claim 16 (depends on 1)

The system of claim 1, wherein each application server or data grid component, that performs work on behalf of a tenant, and dispatches work to an other thread, propagates the domain partition name to the other thread, wherein the domain partition name is thereafter accessible via an interface, by other application server or data grid components.

### Claim 17 (depends on 1)

The system of claim 1, wherein during an application deployment prepare phase, the domain partition name is provided by the application container, via the data grid module, to a data grid container adapter constructor; and
wherein during an activate phase, the domain partition name is passed to the service builder instances.

### Claim 18 (depends on 1)

The system of claim 1, wherein the virtual target information associated with each particular partition is used to define the partition-specific virtual target for use by that partition, which is then made accessible via a uniform resource locator.

### Claim 19 (depends on 1)

The system of claim 1, wherein the plurality of partitions includes:
a first partition configured to be accessible via a first virtual target; and
a second partition configured to be accessible via a second virtual target.

### Claim 20 (depends on 1)

The system of claim 1, whereupon the system starts the plurality partitions, it creates a plurality of virtual targets associated with the plurality of partitions, including a virtual target for each partition, according to its configuration.
