Context-oriented programming for customizable SaaS applications

  • Authors:
  • Eddy Truyen;Nicolás Cardozo;Stefan Walraven;Jorge Vallejos;Engineer Bainomugisha;Sebastian Günther;Theo D'Hondt;Wouter Joosen

  • Affiliations:
  • K. U. Leuven, Celestijnenlaan, Leuven, Belgium;Vrije Universiteit Brussel, Pleinlaan, Brussels, Belgium and ICTEAM, Université Catholique de Louvain, Place Sainte-Barbe, Louvain-la-Neuve, Belgium;K. U. Leuven, Celestijnenlaan, Leuven, Belgium;Vrije Universiteit Brussel, Pleinlaan, Brussels, Belgium;Vrije Universiteit Brussel, Pleinlaan, Brussels, Belgium;Vrije Universiteit Brussel, Pleinlaan, Brussels, Belgium;Vrije Universiteit Brussel, Pleinlaan, Brussels, Belgium;K. U. Leuven, Celestijnenlaan, Leuven, Belgium

  • Venue:
  • Proceedings of the 27th Annual ACM Symposium on Applied Computing
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

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 model, cross-tier 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. Concretely, we provide a technical case study based on Google App Engine (GAE), a cloud platform for building multi-tenant web applications. We contribute by showing: (a) how ContextJ, a context-oriented programming (COP) language, can be used with GAE, (b) the increase in flexibility and customizability of tenant-specific software variations using ContextJ as compared to Google's dependency injection framework Guice, and (c) that the performance of using ContextJ is comparable to Guice. Based on these observations, we come to the conclusion that COP can be helpful for providing software variations in SaaS.