вторник, 5 июня 2012 г.

JMS 2.0: Support for Multi-tenancy

Java EE 7 будет серьезно сфокусирована на clouds/PaaS и, как следствие, на обеспечении multitenancy [Arun Gupta about Java EE 7].

Нашел документ, описывающий как multitenancy, возможно, будет введена в JMS 2.0 (JMS 2.0 - часть Java EE 7) - JMS 2.0: Support for Multi-tenancy.




@JMSConnectionFactoryDefinition {
    name="jms/connFactory",
    className="javax.jms.ConnectionFactory”,
    initialPoolSize="32",
    maxPoolSize="64"
}


1. Each tenant application uses a completely different JMS server. This gives the highest  degree of isolation but requires the highest amount of resources. It does not require the  JMS server to be aware that the application is multi-tenant. Let's call this "isolation  using multiple providers".
2. Each tenant application uses the same JMS server but different destinations for each  tenant. This gives an intermediate level of isolation with an intermediate use of  resources.  The deployer will be responsible for provisioning administered objects to  ensure that that each tenant uses a different destination. It does not require the JMS  server to be aware that the application is multi-tenant. Let's call this "isolation using  multiple destinations".
3. Each tenant application uses the same JMS server and the same destinations for each  tenant., with the JMS provider isolating each the different tenant applications using the  same destination. Te degree of isolation this provides would depend on the JMS  provider, but it might potentially require the lowest level of resources. Inevitably the  JMS server would need to be aware that the application is multi-tenant, and would need  to be able to identify which tenant application is using it for a given operation. Let's call  this "isolation using a multi-tenant destination".


The JMS server needs to be aware that the destination is being used by different tenants, and
needs to be able to distinguish one tenant from another. There are several ways this might be
achieved:
• by setting the tenantId on the connection factory,
• by the JMS provider looking up the tenantId from a well-known location in JNDI, or
• by the application server passing in the tenantId using the JCA API.




Комментариев нет:

Отправить комментарий