The Evolving Philosophers Problem: Dynamic Change Management
IEEE Transactions on Software Engineering
Dynamic and selective combination of extensions in component-based applications
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Aspect-oriented programming: Introduction
Communications of the ACM
Software as a Service: Configuration and Customization Perspectives
SERVICES-2 '08 Proceedings of the 2008 IEEE Congress on Services Part II
Virtualization-based techniques for enabling multi-tenant management tools
DSOM'07 Proceedings of the Distributed systems: operations and management 18th IFIP/IEEE international conference on Managing virtualization of networks and services
Multi-tenant SOA Middleware for Cloud Computing
CLOUD '10 Proceedings of the 2010 IEEE 3rd International Conference on Cloud Computing
Transactions on Aspect-Oriented Software Development I
A middleware layer for flexible and cost-efficient multi-tenant applications
Middleware'11 Proceedings of the 12th ACM/IFIP/USENIX international conference on Middleware
Modularizing tenant-specific schema customization in SaaS applications
Proceedings of the 8th international workshop on Advanced modularization techniques
Proceedings of the Eighth International Workshop on Variability Modelling of Software-Intensive Systems
Hi-index | 0.00 |
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.