Wednesday, August 4, 2010

Multi-Tenancy: Maintenance Dream or Nightmare?

Although multi-tenancy can lead to an improvement in the ease with which software can be deployed, maintenance can become more difficult due to the more complex code required in multi-tenant systems. Multi-tenancy is a concept which spans several software architecture layers and therefore, should be implemented in several software layers. If this is not done correctly, maintenance can become a nightmare. In our IWPSE-EVOL 2010 paper "Multi-Tenant SaaS Applications: Maintenance Dream Or Nightmare?" we discuss the pros and cons of multi-tenant systems with regards to maintenance.
We believe that the code complexity introduced by enabling multi-tenancy should not be significant in a well-designed single-tenant system. As a research project, we have migrated an existing single-tenant application to a multi-tenant one. We have used our multi-tenant reengineering pattern as a guideline:


We were able to do the migration by adding < 100 LOC to a 165 KLOC application. You can find the details of this process in our ICSM 2010 industrial paper "Enabling Multi-Tenancy: An Industrial Experience Report".

I'll be presenting this at the IWPSE-EVOL and ICSM conferences, so if you are there, drop by and we can have a beer afterwards!