I'm not quite sure if we're doing multi tenancy the right way yet. I'm still 
considering a couple of alternatives here:

1) Running each tenant in its own OSGi container. This does not imply each OSGi 
container actually runs in its own JVM, as it's easy to create a single JVM 
that runs multiple, isolated containers. Advantages of this system would be 
mostly a vastly simplified programming model as you don't need to worry about 
tenants in your application. If services would need to be shared between 
tenants, we could use remote services to "deploy them to each container".

2) Using a notion of a tenant that is a bit more abstract, where each tenant 
(or customer) gets not only simply isolation but also a specific quality of 
service linked to that tenant. Paul Fremantle talks about this in his ApacheCon 
presentation on "building cloud native software" (see 
http://pzf.fremantle.org/2010/11/building-cloud-native-software.html) where he 
discusses the merits of having "coach, business and private jet" service levels.

Greetings, Marcel


Reply via email to