IP Library Granted Patent US 10,050,903
Granted Patent B2
US 10,050,903 · App. 14/866,642 · Granted Aug 14, 2018

System and method for multi-tenancy enablement of enterprise JAVA (TM) applications using resource proxies and application tenancy context

Inventors: Sanjeeb Sahoo (Cupertino, CA); Sivakumar Thyagarajan (Bangalore, IN); Jagadish Ramu (Bangalore, IN)
Assignee: ORACLE INTERNATIONAL CORPORATION
H04L47/828G06F8/60G06F9/455G06F9/45504G06F9/50H04L67/10H04L67/2833
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 10,050,903
App. No.
14/866,642
Granted
Aug 14, 2018
Kind
B2
Abstract

In accordance with an embodiment, described herein is a system and method for multi-tenancy enablement of enterprise Java™ applications using resource proxies and application tenancy context. In according with an embodiment, the system and method can provide a plurality of deployable resources which can be used within the application server environment, and one or more application deployments, wherein each application deployment includes at least one of tenant-specific code and shared-tenant code. The system and method can further determine an application tenancy context of a thread, and point to one or more resource proxies, each of the one or more resource proxies being configurable to communicate with a tenant specific resource. Each of the one or more resource proxies can use the application tenancy context of a thread to communicate with a tenant specific resource.

Claims (38)

1. A method for deployment of an application, comprising:

providing, at one or more computers, including an application server that enables deployment and execution of software applications, wherein the application server is associated with a domain configuration that is used at runtime to define a domain for execution of the software applications,

a plurality of deployable resources defined within the application server, and

a plurality of application deployments, each application deployment being associated with a different tenant of a plurality of tenants, wherein an application deployment of the plurality of application deployments is deployed in the context of a tenant of the plurality of tenants and is associated with at least one tenant specific resource of a plurality of tenant specific resources;

running the application deployment of the plurality of application deployments on a thread within the application server, wherein the application deployment communicates with a resource proxy, the resource proxy being bound at a fixed location within the domain; and

determining an application tenancy context of the thread, the determined application tenancy context providing an indication of the tenant based upon the at least one tenant specific resource associated with the running application deployment;

selecting, by the resource proxy, based upon the determined application tenancy context of the thread, a tenant specific resource of the plurality of tenant specific resources, and, on behalf of the running application deployment, communicating with the selected tenant specific resource of the plurality of tenant specific resources.

2. The method of claim 1 , wherein the resource proxy, based upon the determined application tenancy context of the thread, further selects a shared tenant resource to communicate with on behalf of the running application deployment.

3. The method of claim 1 , wherein the application server comprises a multi-tenant application server domain.

4. The method of claim 3 , wherein one or more partitions are provided, and wherein each of the plurality of application deployments comprises an administrative subdivision and a runtime subdivision of the domain for use by a tenant.

5. The method of claim 4 , wherein the runtime subdivision of each application deployment comprises at least one of shared-tenant runtime, tenant scoped runtime, and administrative runtime.

6. The method of claim 3 , wherein each of the plurality of application deployments further includes administrative code.

7. The method of claim 1 , wherein the determining the application tenancy context of a thread is based on at least a current application tenant.

8. A system for deployment of an application, comprising:

one or more computers, including an application server that enables deployment and execution of software applications, wherein the application server is associated with a domain configuration that is used at runtime to define a domain for execution of the software applications;

a plurality of deployable resources defined within the application server; and

a plurality of application deployments, each application deployment being associated with a different tenant of a plurality of tenants, wherein an application deployment of the plurality of application deployments is deployed in the context of a tenant of a plurality of tenants and is associated with at least one tenant specific resource of a plurality of tenant specific resources;

wherein the application deployment of the plurality of application deployments is run on a thread within the application server, wherein the application deployment communicates with a resource proxy, the resource proxy being bound at a fixed location within the domain; and

wherein the system determines an application tenancy context of the thread, the determined application tenancy context providing an indication of the tenant based upon the at least one tenant specific resource associated with the running application deployment; and

wherein the resource proxy, based upon the determined application tenancy context of the thread, selects a tenant specific resource of the plurality of tenant specific resources, and, on behalf of the running application deployment, communicates with the selected tenant specific resource of the plurality of tenant specific resources.

9. The system of claim 8 , wherein the resource proxy, based upon the determined application tenancy context of the thread, further selects a shared tenant resource to communicate with on behalf of the running application deployment.

10. The system of claim 8 , wherein the application server comprises a multi-tenant application server domain.

11. The system of claim 10 , wherein one or more partitions are provided, and wherein each of the plurality of application deployments comprise an administrative subdivision and a runtime subdivision of the domain for use by a tenant.

12. The system of claim 11 , wherein the runtime subdivision of each application deployment comprises at least one of shared-tenant runtime, tenant scoped runtime, and administrative runtime.

13. The system of claim 10 , wherein each of the plurality of application deployments further includes administrative code.

14. The system of claim 8 , wherein the determining the application tenancy context of a thread is based on at least a current application tenant.

15. A non-transitory machine readable storage medium having instructions stored there that when executed cause a system to perform the steps comprising:

providing, at one or more computers, including an application server that enables deployment and execution of software applications, wherein the application server is associated with a domain configuration that is used at runtime to define a domain for execution of the software applications,

a plurality of deployable resources defined within the application server, and

a plurality of application deployments, each application deployment being associated with a different tenant of a plurality of tenants, wherein an application deployment of the plurality of application deployments is deployed in the context of a tenant of the plurality of tenants and is associated with at least one tenant specific resource of a plurality of tenant specific resources;

running the application deployment of the plurality of application deployments on a thread within the application server, wherein the application deployment communicates with a resource proxy, the resource proxy being bound at a fixed location within the domain; and

determining an application tenancy context of the thread, the determined application tenancy context providing an indication of the tenant based upon the at least one tenant specific resource associated with the running application deployment;

selecting, by the resource proxy, based upon the determined application tenancy context of the thread, a tenant specific resource of the plurality of tenant specific resources, and, on behalf of the running application deployment, communicating with the selected tenant specific resource of the plurality of tenant specific resources.

16. The non-transitory machine readable storage medium of claim 15 , wherein the resource proxy, based upon the determined application tenancy context of the thread, further selects a shared tenant resource to communicate with on behalf of the running application deployment.

17. The non-transitory machine readable storage medium of claim 15 , wherein the application server comprises a multi-tenant application server domain.

18. The non-transitory machine readable storage medium of claim 17 , wherein one or more partitions are provided and wherein each of the plurality of application deployments comprises an administrative subdivision and a runtime subdivision of the domain for use by a tenant.

19. The non-transitory machine readable storage medium of claim 18 , wherein the runtime subdivision of each application deployment comprises at least one of shared-tenant runtime, tenant scoped runtime, and administrative runtime.

20. The non-transitory machine readable storage medium of claim 15 , wherein the determining the application tenancy context of a thread is based on at least a current application tenant.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2016
From: SAHOO, SANJEEB
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 037449/0333 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2015
From: THYAGARAJAN, SIVAKUMAR; RAMU, JAGADISH
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 036670/0900 →
Continuity (2)
Provisional Application 62055912 · Sep 26, 2014
Related Publication 20160094486A1 · Mar 31, 2016
Cited By (1)
US 12,250,267