jsr340-experts@servlet-spec.java.net

[jsr340-experts] Re: [servlet-spec users] Re: Re: Multi-tenancy and web container

From: Alex Rojkov <alex_at_caucho.com>
Date: Thu, 15 Dec 2011 13:44:45 -0800

> I haven't heard from others on what the thought is here. Any one else have an opinion? Suggestions on what we should target in this version of the spec?

One of the questions that I struggle with is how to distinguish tenants?. Below are the options that I am thinking of:

- virtual hosts foo.service.com/my-multitenant-app vs bar.service.com/my-multitenant-app
- different client IP ranges (set of ranges per tenant. ranges can't overlap)
- different roles (assumes authorized users) (foo –> foo-tenanat, roo –> roo-tenant)
- different referrer (coming through sales channel A/ vs sales channelB)

I am assuming that the API needs to become tenant - aware (javax.jee.tenant.*), particularly for resolving init parameter values, resource loaders and so on.

The Tenant value needs to be made accessible, possibly through ServletRequest object, Session, etc.

Alex.

>
> Thanks
>
> - Rajiv
>
> On 11/16/2011 1:31 PM, Greg Wilkins wrote:
>>
>>
>> FYI how we currently support this in Jetty is with an overlay deployer.
>>
>> The overlay deployer allows a single war to be overlayed with 1 or more war files to create a specific instance for a tenant.
>>
>> We deploy the WAR file unchanged from it's normal distribution (it can be RO and signed if need be), and then overlay a WAR file with all the common configuration and customisations for all tenants. Each tenant then has an overlay WAR that contains just their configuration and customisations.
>>
>> Each WAR can add or replace static content (eg adding style sheets, logos, XML config files), can add web.xml fragments or can replace the entire web.xml
>>
>> The intent is that the per tenant war has only the data that is specific to that tenant. If the webapp is upgraded, then in many cases the tenant war can be overlayed on the new base war version.
>>
>> regards
>>
>
>