Context-Oriented Programming for Customizable SaaS Applications

Authors
Eddy Truyen, Nicolás Cardozo, Stefan Walraven, Jorge Vallejos, Engineer Bainomugisha, Sebastian Günther, Theo DHondt
Tags
, ,
Title
Context-Oriented Programming
Authors
Eddy Truyen, Nicolás Cardozo, Stefan Walraven, Jorge Vallejos, Engineer Bainomugisha, Sebastian Günther, Theo DHondt
 truyen12sac.pdf Δ   349Kb   14 Nov 2011
Type
In Proceedings
Book title
Symposium on Applied Computing
Series
SAC'12
Publisher
ACM press
Year
2012
Note
Best paper award

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.

Tags Tags: , ,


BibTeX Record
  @inproceedings{RELEASeD-2012-799195,
    title = {Context-Oriented Programming},
    author = {Eddy Truyen and Nicolás Cardozo and Stefan Walraven and Jorge Vallejos and Engineer Bainomugisha and Sebastian Günther and Theo DHondt },
    year = {2012},
    booktitle = {Symposium on Applied Computing},
    publisher = {ACM press},
    series = {SAC'12},
    note = {Best paper award},
  }