SaaS / Multi-Tenancy approaches for Java-based (GWT, Spring, Hibernate) web applications -


I am currently trying to convert a single tenant Java based web-app that is in Spring, GWT, Hibernation Being, Jacobabit, uses Hibernate Search / Lucene (among others) in a fully developed SaaS style app.

I stumbled across an article that highlighted the following 7 things "", as important changes to make a tenant app mother-in-law: AP

  1. Multi -Application should be done to assist the application.
  2. The app should have some level of self-service sign-ups.
  3. The application must be capable of scaling efficiently.
  4. There should be work to monitor, configure and manage applications and tenants.
  5. There should be a mechanism to support unique user identity and authentication.
  6. For every tenant there should be a mechanism to support certain levels of adaptation.

    Anybody near my question have anybody installed any of the above 7 in the Saas / Multi-tenant app using the techniques I have listed?

    As a start, I am pretty sure that I have a good handle on how I can do better to handle several tenants at the level of a model. I have logged on to the user's tenant ID for all questions. To filter by these, add a tenant ID for all your tables and then use the hibernate filter (and a full text filter for hibernate search). I am thinking.

    However, I have some concern about performance, especially when the number of our tenants is very high.

    Any suggestion about implementing such solutions will be highly appreciated (and if I question this question is a little too open-ended).

    I recommend that you separate your four tenant, separate database for each tenant, each tenant Separate schema for, Separate table for each tenant and table shared for all tenants with tenant ID. This will give you flexibility to split your database horizontally, as you have the ability to have a separate database for a large group of tenants, as well as a group of small tenants in each database. Any of your large tenants can also insist that their data (database) should remain in its base, while the application can close the cloud.

    There is a detailed check list of a non-functional and level of infrastructure that you may want to consider when applying your application (some of them may not be needed immediately, but Think about a business situation about how you would take such a need to start your competition.)

    1. tenant level construction and
    2. modules and features For tenant level access control settings, so that specific modules and features can be enabled / disabled on the basis of the membership package, the management of roles and privileges, access to field level permissions, Eta Scope policies
    3. Purchase / events / transactions of metering and monitoring and purchased went quota when restrictions of access control is ended.
    4. Extracting business rules and workflow outside of your code base and representing them as meta data in the future, the ability to meter any new unit, so that you can optimize them Tenant group / tenant
    5. Query builder for creating custom reports that are familiar with the custom field connected with tenants as well as specific tenants. .
    6. Tenant incapses and framework level connection string management such as your developers

      These are all based on our experience in the creation of a general-purpose multi-tenant structure, Can also be used for domain or application. Unfortunately, you can not use our framework because it is based on .net

      But the requirements of engineering of any multi-tenant mother-in-law product (new or migrated) Technology is similar to stack / P>

Comments