Hey guys and gals, I am working on a scientific paper about persionalization in multi-tenancy web information systems.
The question I have is whether I am missing a personalization technique in the following list:
The first personalization is that of model change, where the underlying (data-) model is adjusted to fit a tenant's needs. Typical changes vary from the addition of an attribute to an object, to the complete addition of entities and relationships to an existing model. An example of an industrial application is SalesForce, in which one can add entities to any model, such as domain specific entities. The variability for SalesForce was introduced at architecture design time and can be bound at run-time.
The second type of personalization is that of view change, where the view is changed on a per-tenant basis. Typical changes vary from a tenant-specific logo, to complete varying interfaces and templates. An example of an industrial application is the content management system Wordpress, in which different templates can be created at runtime to show tenant-specific views of the content.
Controller change is the third type of personalization, where the controller responds differently for different tenants and guides them, based on the same behavior, through the information system in different ways. An example of an industrial application is the online multi-tenant version of Microsoft CRM, which enables the tenant to create specific workflows for end-users.
The fourth type of personalization is system connector change, where an extension that connects to another system is made variable, to enable connecting to different information systems that provide similar functionality. An example might be that of two tenants that want to authenticate their users without having them enter their credentials a second time, based on two different user administration systems.
Finally, the fifth type of personalization is system component change, where similar feature sets are provided by different components, which are selected based on the tenants' requirements. A practical use of system component change is that of Facebook, a social networking site, which enables an end-user to install components from both Facebook and third parties to gain more functionality.
Feel free to comment. I hope this question isn't too far out of the stackoverflow.com scope. Depending on your answers I will acknowledge the Stackoverflow site in the article :-).
Please note we have published our results from two case studies in this paper:
Jansen, S., Houben, G., Brinkkemper, S. (2010). Customization Realization in Multi-tenant Web Applications: Case Studies from the Library Sector, accepted for publication in the proceedings of the 10th International Conference on Web Engineering, 2010