Browse Prior Art Database

Apparatus and Method of Tenant Context Generation and Propagation in SaaS Environment

IP.com Disclosure Number: IPCOM000198980D
Publication Date: 2010-Aug-19
Document File: 3 page(s) / 278K

Publishing Venue

The IP.com Prior Art Database

Abstract

SaaS (Software as a Service) provides application vendors a delivery model to serve big amount of users from different tenants with a shared application instance by network. In a standard SaaS J2EE application, there are all different kinds of resources (e.g. EJB, Static Variable, LDAP, Database etc). In Massive Multi-tenancy scenario, thousands of small & medium tenants share a same set of resources to support economic of scale. While a tenant access any shared resource, need 'TenantContext' to guide it to ensure tenant isolation of resource accessing during a end to end of application. But the problem is that Lack for mechanism of tenant information maintenance & propagation while accessing to multiple kinds of resources, application developer need to modify source code to include explicit. such as, all methods need to be modified as MethodXXX (tenantContext, biz-parameters) so as to add tenantcontext into method parameters. It is very high effort, especially for some legacy single-tenancy application We provide a mechanism of Transparent Tenant Context Maintenance and Propagation in SaaS Environment: define a unified tenant context, which contains tenant unique identification and tenant-related information (organization, resource allocated, SLA [security level, performance etc] ); provide a complete lifecycle mechanism to manage tenant context; provide a end to end transparently and lightweight Tenant context propagation mechanism, includes: browser & Web server; Inside JVM; Cross JVMs. Corresponding apparatus includes: A) MT Interceptor: intercept requests http session from browser, and set tenantid into thread local; B) MT Stub & Skeleton: propagate tenant identification cross JVMs: 1) Stub: get current tenantid from thread local and set it into remote call requests (HTTP/REST/SOAP, RMI, JMS, Socket etc); 2)Skeleton: intercept request from remote calls (HTTP/REST/SOAP, RMI, JMS, Socket etc), and set tenantid into thread local. C) MT Thread Local: propagate tenant context inside JVM; while accessing resource, Tenant Resource Isolation Logic can implicitly get current tenant context. D) MT Context Manager: Maintain tenant context in JVM; E) MT Management Service: Manage tenant context in metadata repository; F) MT Metadata Repository: Store tenant context.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 58% of the total text.

Page 1 of 3

Apparatus and Method of Tenant Context Generation and Propagation in SaaS Environment

We define a unified tenant context ,

which contains tenant unique identification and

tenant-related information:
organization, resource allocated, SLA [security level, performance etc] …

Provide a complete lifecycle mechanism to manage tenant context
Tenant context maintenance and synchronization

Provide a end to end transparent and lightweight Tenant context propagation mechanism

Browser and Web Server: http session
Inside a JVM: associate tenant context with each request JVM thread of tenant user
Cross JVMs: MT stub/skeleton mechanism to transfer tenant identification

Main idea as follows:

Idea Illustration

4

Tenant propagation cross JVMs

3

Tenant User's subsequen t requests

Tenant propagation in JVM

   MT Request Filter

Browser

  MT Stub

   MT Skeleton

MT Thread local

HTTP Session

Tenant propagation in JVM

TID

Tenant Cxt.

T1

context1

T2

context2

..

MT Context Manager

TID

Tenant Cxt.

T1

context1

T2

context2

..

MT Context Manager

MT Thread local

2

Tenant

User login

MT login Module

5

Synchronize

Tenant Context

MT Runtime Service

MT Mgt. Service

SaaS Operator

  MT User Repository

Manage Tenant Context

MT Metadata Repository

1

Tenant users login process, and tenant users subsequent requests process with tenant context propagation in a JVM.:

1

[This page contains 2 pictures or other non-text objects]

Page 2 of 3

Implementation Details (1)

 Tenant user login with unique name or tenant id

 Authenticate the user by MT login module to access MT user repository

Tenant user subsequent request in same session arrive

no

successful

yes

  MT request filter...