Abstract
Application-level multi-tenancy is an architectural design principle for Software-as-a-Service applications to enable the hosting of multiple customers (or tenants) by a single application instance. Despite the operational cost and maintenance benefits of application-level multi-tenancy, the current middleware component models for multi-tenant application design are inflexible with respect to providing different software variations to different customers.
In this paper we show that this limitation can be solved by a multi-tenancy support layer that combines dependency injection with middleware support for tenant data isolation. Dependency injection enables injecting different software variations on a per tenant basis, while dedicated middleware support facilitates the separation of data and configuration metadata between tenants. We implemented a prototype on top of Google App Engine and we evaluated by means of a case study that the improved flexibility of our approach has little impact on operational costs and upfront application engineering costs.
Chapter PDF
Similar content being viewed by others
References
Apprenda Inc.: SaaSGrid Middleware, http://apprenda.com/saasgrid/
Azeez, A., Perera, S., Gamage, D., Linton, R., Siriwardana, P., Leelaratne, D., Weerawarana, S., Fremantle, P.: Multi-tenant SOA Middleware for Cloud Computing. In: International Conference on Cloud Computing, pp. 458–465 (2010)
Bezemer, C.P., Zaidman, A., Platzbeecker, B., Hurkmans, T., Hart, A.: Enabling Multi-Tenancy: An Industrial Experience Report. In: ICSM 2010: International Conference on Software Maintenance (2010)
Blair, G.S., Coulson, G., Robin, P., Papathomas, M.: An architecture for next generation middleware. In: Middleware 1998: IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing, pp. 191–206 (1998)
Cai, H., Wang, N., Zhou, M.J.: A Transparent Approach of Enabling SaaS Multi-tenancy in the Cloud. In: SERVICES-1 2010: Congress on Services, pp. 40–47 (2010)
Chohan, N., Bunch, C., Pang, S., Krintz, C., Mostafa, N., Soman, S., Wolski, R.: AppScale: Scalable and Open AppEngine Application Development and Deployment. In: International Conference on Cloud Computing, pp. 57–70 (2010)
Chong, F., Carraro, G.: Architecture Strategies for Catching the Long Tail. Microsoft Corporation (April 2006), http://msdn.microsoft.com/en-us/library/aa479069.aspx
Coulson, G., Blair, G.S., Clarke, M., Parlavantzas, N.: The design of a configurable and reconfigurable middleware platform. Distributed Computing 15(2), 109–126 (2002)
DeMichiel, L., Shannon, B.: JSR 342: JavaTM Platform, Enterprise Edition 7 (Java EE 7) Specification (2011), http://www.jcp.org/en/jsr/detail?id=342 (last visited at May 26, 2011)
Filman, R.E., Elrad, T., Clarke, S., Akşit, M.: Aspect-Oriented Software Development. Addison-Wesley, Boston (2004)
Fowler, M.: Inversion of Control Containers and the Dependency Injection pattern (January 2004), http://martinfowler.com/articles/injection.html
GigaSpaces Technologies Inc.: SaaS-Enablement Platform for ISVs, http://www.gigaspaces.com/saas-enablement
Google, Inc.: Google App Engine, http://code.google.com/appengine/
Google Inc.: Guice, http://code.google.com/p/google-guice/
Guo, C.J., Sun, W., Huang, Y., Wang, Z.H., Gao, B.: A Framework for Native Multi-Tenancy Application Development and Management. In: CEC/EEE 2007: International Conference on E-Commerce Technology and International Conference on Enterprise Computing, E-Commerce, and E-Services, pp. 551–558 (2007)
JBoss Community: JBoss AOP, http://www.jboss.org/jbossaop/
Kang, K.C., Cohen, S.G., Hess, J.A., Novak, W.E., Peterson, A.S.: Feature-Oriented Domain Analysis (FODA) Feasibility Study. Tech. Rep. 21, SEI, CMU, Pittsburgh, PA (1990)
Kon, F., Costa, F., Blair, G., Campbell, R.H.: The case for reflective middleware. Commun. ACM 45(6), 33–38 (2002)
Kon, F., Román, M., Liu, P., Mao, J., Yamane, T., Magalhães, L.C., Pasquale, F.: Monitoring, Security, and Dynamic Configuration with the dynamicTAO Reflective ORB. In: Coulson, G., Sventek, J. (eds.) Middleware 2000. LNCS, vol. 1795, pp. 121–143. Springer, Heidelberg (2000)
Lagaisse, B., Joosen, W.: True and Transparent Distributed Composition of Aspect-Components. In: van Steen, M., Henning, M. (eds.) Middleware 2006. LNCS, vol. 4290, pp. 42–61. Springer, Heidelberg (2006)
Mietzner, R., Metzger, A., Leymann, F., Pohl, K.: Variability modeling to support customization and deployment of multi-tenant-aware Software as a Service applications. In: PESOS 2009: ICSE Workshop on Principles of Engineering Service Oriented Systems, pp. 18–25 (2009)
Müller, J., Krüger, J., Enderlein, S., Helmich, M., Zeier, A.: Customizing Enterprise Software as a Service Applications: Back-End Extension in a Multi-tenancy Environment. In: Filipe, J., Cordeiro, J. (eds.) Enterprise Information Systems. LNBIP, vol. 24, pp. 66–77. Springer, Heidelberg (2009)
Nicoară, A., Alonso, G.: Dynamic AOP with PROSE. In: ASMEA 2005: Workshop on Adaptive and Self-Managing Enterprise Applications, pp. 125–138 (2005)
Pawlak, R., Seinturier, L., Duchien, L., Florin, G.: JAC: A Flexible Solution for Aspect-Oriented Programming in Java. In: Matsuoka, S. (ed.) Reflection 2001. LNCS, vol. 2192, pp. 1–24. Springer, Heidelberg (2001)
Pohl, K., Böckle, G., Van Der Linden, F.: Software Product Line Engineering: Foundations, Principles, and Techniques. Springer, New York (2005)
Rouvoy, R., Eliassen, F., Floch, J., Hallsteinsen, S., Stav, E.: Composing Components and Services Using a Planning-Based Adaptation Middleware. In: Pautasso, C., Tanter, É. (eds.) SC 2008. LNCS, vol. 4954, pp. 52–67. Springer, Heidelberg (2008)
Rouvoy, R., Eliassen, F., Beauvois, M.: Dynamic planning and weaving of dependability concerns for self-adaptive ubiquitous services. In: SAC 2009: Symposium on Applied Computing, pp. 1021–1028 (2009)
Salesforce.com, Inc., http://www.salesforce.com
SpringSource: Aspect Oriented Programming with Spring, http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/aop.html
Sun, W., Zhang, X., Guo, C.J., Sun, P., Su, H.: Software as a Service: Configuration and Customization Perspectives. In: SERVICES-2 2008: Congress on Services Part II, pp. 18–25 (2008)
Tao, L.: Shifting paradigms with the application service provider model. Computer 34(10), 32–39 (2001)
Truyen, E., Janssens, N., Sanen, F., Joosen, W.: Support for Distributed Adaptations in Aspect-Oriented Middleware. In: AOSD 2008: International Conference on Aspect-oriented Software Development, pp. 120–131 (2008)
Truyen, E., Vanhaute, B., Jørgensen, B.N., Joosen, W., Verbaeten, P.: Dynamic and selective combination of extensions in component-based applications. In: ICSE 2001: International Conference on Software Engineering, pp. 233–242 (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 IFIP International Federation for Information Processing
About this paper
Cite this paper
Walraven, S., Truyen, E., Joosen, W. (2011). A Middleware Layer for Flexible and Cost-Efficient Multi-tenant Applications. In: Kon, F., Kermarrec, AM. (eds) Middleware 2011. Middleware 2011. Lecture Notes in Computer Science, vol 7049. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-25821-3_19
Download citation
DOI: https://doi.org/10.1007/978-3-642-25821-3_19
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-25820-6
Online ISBN: 978-3-642-25821-3
eBook Packages: Computer ScienceComputer Science (R0)