7

Hi I have a question related to SAAS model and multi-tenancy.

As far as I know SAAS multi-tenancy application means common functionality for all clients, with some customizations of UI and functionality underNeath.

If I need make for some customers additional client specific-customization , how I can achieve it?

I know about approach of SalesForce

As for answer I apreciate to see you experience with such - customizations under database level, - architecture of backend in general or in - any links for this topic.

Alexandr
  • 1,452
  • 2
  • 20
  • 42

1 Answers1

11

There are the following two ways of customizing a multi-tenant application 1. Presentation tier changes 2. System change.

The following are the typical customization options preferred in web applications in a multi-tenant environment, they are

1) user interface and branding,

2) workflow and business rules,

3) data model extensions, and

4) access control

In which 1 belongs to the presentation tier change and the rest all form the system level change in a multi-tenant application.

MVC is considered as presentation tier customization option where in we have the option of allowing the tenant to have their own theme , logo and custom layout or custom controllers and custom page sections.

For System settings, there are many ways to achieve this, however the following are the most pervasive

  1. Customization at the database level
  2. Customization at the middleware level.

In SaaS app, there are features and implementation. In the case of the later, there will be a tenant specific configuration that governs which implementation to be invoked for the tenant under consideration based on his configuration and then provides the service. These are achieved using a custom dependency injection mechanism which is tenant aware and also will be required a tenant specific configuration that can be consumed during the runtime to facilitate this process.

In the case of (1), the data in the db should be isolated based on the tenant identifier so that the configuration or the metadata are not shared between the tenants in a multi-tenant environment.

So the main components will be

  1. a tenant identifier obtained from a tenant context
  2. multi-tenant datastorage
  3. Tenant specific authentication [form signing / Single SignOn etc..]

IMHO, since your topic is broad, if you can present us more specific areas, we will discuss on their implementation.

Hope this answers your query, please do post your update.

Saravanan
  • 7,637
  • 5
  • 41
  • 72
  • Thanks, your answer is really helpful. Do you have an implemenation experience in .net? – Alexandr Jun 25 '13 at 09:50
  • @Alexandr: Thank you Alexandr. I do have implementation experience but not on the DI based tenant injection part. I have came across some implementation and blogs on this point. Please do post any other queries from your end related to this post. – Saravanan Jun 26 '13 at 18:21