Context-oriented Programming for Customizable SaaS Applications
Loading...
Date
2012
Journal Title
Journal ISSN
Volume Title
Publisher
Annual acm symposium on applied computing
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 multitenant
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.
Description
Keywords
Multi-tenancy, Customization, Context-oriented programming, Software-as-a-Service, Google App Engine
Citation
Truyen, E., Cardozo, N., Walraven, S., Vallejos, J., Bainomugisha, E., Günther, S., ... & Joosen, W. (2012, March). Context-oriented programming for customizable SaaS applications. In Proceedings of the 27th annual acm symposium on applied computing (pp. 418-425).