Runtime Evolution of Service-Based Multi-tenant SaaS Applications

The Single-Instance Multi-Tenancy SIMT model for service delivery enables a SaaS provider to achieve economies of scale via the reuse and runtime sharing of software assets between tenants. However, evolving such an application at runtime to cope with the changing requirements from its different stakeholders is challenging. In this paper, we propose an approach to evolving service-based SIMT SaaS applications that are developed based on Dynamic Software Product Lines DSPL with runtime sharing and variation among tenants. We first identify the different kinds of changes to a service-based SaaS application, and the consequential impacts of those changes. We then discuss how to realize and manage each change and its resultant impacts in the DSPL. A software engineer declaratively specifies changes in a script, and realizes the changes to the runtime model of the DSPL using the script. We demonstrate the feasibility of our approach with a case study.

[1]  Jun Han,et al.  Supporting impact analysis and change propagation in software engineering environments , 1997, Proceedings Eighth IEEE International Workshop on Software Technology and Engineering Practice incorporating Computer Aided Software Engineering.

[2]  Jairus Hihn,et al.  Cost estimation of software intensive projects: a survey of current practices , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[3]  Babak Esfandiari,et al.  On feature interactions among Web services , 2004 .

[4]  Filip De Turck,et al.  Developing and managing customizable Software as a Service using feature model conversion , 2012, 2012 IEEE Network Operations and Management Symposium.

[5]  Wouter Joosen,et al.  Context-oriented programming for customizable SaaS applications , 2012, SAC '12.

[6]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[7]  Brice Morin,et al.  Models@ Run.time to Support Dynamic Adaptation , 2009, Computer.

[8]  Jan Bosch,et al.  Software Reuse: Methods, Techniques, and Tools , 2004, Lecture Notes in Computer Science.

[9]  Alan Colman,et al.  Orchestration as Organisation , 2015 .

[10]  Uwe Aßmann,et al.  Co-evolution of models and feature mapping in software product lines , 2012, SPLC '12.

[11]  Shawn A. Bohner,et al.  Impact analysis in the software change process: a year 2000 perspective , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[12]  Fabio Casati,et al.  Developing Adapters for Web Services Integration , 2005, CAiSE.

[13]  Jan Bosch,et al.  Dynamic Variability in Software-Intensive Embedded System Families , 2012, Computer.

[14]  Jun Han,et al.  Using role-based coordination to achieve software adaptability , 2007, Sci. Comput. Program..

[15]  Patrick Donohoe,et al.  Feature-Oriented Project Line Engineering , 2002, IEEE Softw..

[16]  Bikram Sengupta,et al.  Tenant Onboarding in Evolving Multi-tenant Software-as-a-Service Systems , 2012, 2012 IEEE 19th International Conference on Web Services.

[17]  Nelly Bencomo,et al.  A View of the Dynamic Software Product Line Landscape , 2012, Computer.

[18]  Jun Han,et al.  Sharing with a Difference: Realizing Service-Based SaaS Applications with Runtime Sharing and Variation in Dynamic Software Product Lines , 2013, 2013 IEEE International Conference on Services Computing.

[19]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[20]  Luciano Baresi,et al.  Service-Oriented Dynamic Software Product Lines , 2012, Computer.

[21]  August-Wilhelm Scheer,et al.  Process Modeling Using Event-Driven Process Chains , 2005, Process-Aware Information Systems.

[22]  Kyo Chul Kang,et al.  Feature Dependency Analysis for Product Line Component Design , 2004, ICSR.

[23]  Sven Apel,et al.  Granularity in software product lines , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.