Context-oriented Programming for Customizable SaaS Applications

Created by Kim Mens at September 23, 2011.

Nicolas Cardozo submitted, together with Stefan Walrave, Eddy Truyen and Wouter Joosen (KUL), and Jorge Vallejos, Sebastian Gunther and Engineer Bainomugisha (VUB), a paper to the Cloud Computing technical track of the 27th Symposium On Applied Computing, Trento, Italy, March 26-30 2012.

Software-as-a-Service (SaaS) applications are multi-tenant software applications that are delivered as highly configurable web services to individual customers, which are called tenants in this context. For reasons of complexity management and to lower maintenance cost, SaaS providers maintain and deploy a single version of the application code for all tenants. As a result, however, custom-made extensions for individual tenants cannot be efficiently integrated and managed. In this paper we show that by using a context-oriented programming (COP) model, tenant-specific software variations can be easily integrated into the single-version application code base. Moreover, the selection of which variations to execute can be configured on a per tenant basis. As evaluation, we implemented a customizable SaaS application by integrating the context-oriented programming model on top of Google App Engine, a cloud platform for building multi-tenant web applications.