Variability in Multi-tenant Environments:Architectural Design Patterns from Industry
Jaap Kabbedijk and Slinger Jansen
Utrecht UniversityDepartment of Information and Computing SciencesPrincetonplein 5, 3584CC, Utrecht, Netherlands
In order to serve a lot of diﬀerent customers in a SaaS envi-ronment, software vendors have to comply to a range of diﬀerent vary-ing requirements in their software product. Because of these varyingrequirements and the large number of customers, a variable multi-tenantsolution is needed to achieve this goal. This paper gives a pragmaticapproach to the concepts of multi-tenancy and variability in SaaS en-vironments and proposes three architectural patterns that support vari-ability in multi-tenant SaaS environments. The
Customizable Data Views
Module Dependent Menu
pattern and the
pattern are explained and shown as good practices for applyingvariability in a multi-tenant SaaS environment. All patterns are based oncase studies performed at two large software vendors in the Netherlandswho are oﬀering an ERP software product as a service.
Software-as-a-Service, Variability, Multi-tenancy, Architec-tural Patterns.
Increasingly, product software vendors want to oﬀer their product as a serviceto their customers . This principle is referred to in literature as Software as aService (SaaS). Turning software into a service from a vendor’s point of viewmeans separating the possession and ownership of software from its use. Softwareis still maintained and deployed by the vendor, but used by the customer. Theproblem of moving a software product from diﬀerent on-premises locations to onecentral location, is the fact that it becomes really diﬃcult to comply to speciﬁccustomer wishes. In order to serve diﬀerent customers’ wishes, variability ina software product is needed to oﬀer speciﬁc functionality. By making use of variability in a software product, it is possible to supply software functionalityas optional modules, that can be added to the product at runtime. Applyingthis principle can overcome many current limitations concerning software use,deployment, maintenance and evolution in a SaaS context. It also reducessupport costs, as only a single instance of the software has to be maintained.Besides complying to speciﬁc customer requirements, a software vendor shouldbe able to oﬀer a service to a large number of customers, each with their own
O. De Troyer et al. (Eds.): ER 2011 Workshops, LNCS 6999, pp. 151–160,2011.c
Springer-Verlag Berlin Heidelberg 2011