Operating System. App. DB. App. DB. Hardware. Shared OS. App. Database. Operating System. App App ... Add Custom Fields requires. Premium subscription.
Evolving Multi-‐Tenant SaaS Cloud Applications Using Model-‐Driven Engineering Assylbek Jumagaliyev Jon Whittle Yehia Elkhatib
Overview Problem: • Multi-‐tenant SaaS cloud application challenges and their evolution concerns
Solution: • A combination of Software Product Line (SPL) and Model-‐Driven Engineering (MDE) techniques
Our approach enables: • Model re-‐use • Conflict detection in application structure
What is the Software-‐as-‐a-‐Service? Benefits of SaaS: • Lower initial costs • High availability • Less effort on maintenance and upgrades Key attributes of SaaS [1]: • Configurability • Scalability • Multi-‐tenant efficiency
Resource Sharing in Multi-‐tenancy Multiple Instances Multi-‐tenancy
App
App
App
App
App
App
DB
DB
DB
DB
DB
DB
OS
OS
OS
App
Single Instance Multi-‐tenancy
App
App
Application
Database
Database
Operating System
Operating System
Operating System
Hardware
Hardware
Hardware
Hardware
Shared Hardware
Shared OS
Shared Middleware
Shared Application
Figure 1. Two types of multi-‐tenancy patterns [2]
Resource Sharing in Multi-‐tenancy Multi-‐tenancy challenges • Tenant isolation in application and database • Partitioning application and database • Availability, security, and performance • Problem: Variability in design decisions
Single Instance Multi-‐tenancy
Application Database Operating System Hardware Shared Application
Variability Example: Multi-‐tenant Data Architecture
Database
Single database instance for all tenants
Database
Database
Database
A database instance for each tenant
Database
Database
Multiple database instance for multiple tenants
Our approach: Combination of SPL and MDE techniques • Feature modelling allows us to analyze and identify commonalities and variabilities in software systems [3]. • Software systems share common features, but each software system has variable features. • Features are functional and non-‐functional characteristics that make up a software system.
Feature model to application evolution Capability Layer
Surveys Subscription
Manage Surveys Create Surveys
Standard Premium
Separate Table Per Tenant Cache Session
Delete Surveys
Storage Type Table Storage
JavaScript /Ajax
Analyse Surveys
Publish Surveys
View Summary Statistics
Export Results
Data Storage
Maintaining Session State
Implementation Technique Layer
Complete Surveys
Browse Surveys
Add Custom Fields Domain Technology Layer
Manage Survey Results
Blob Storage
Data Architecture SQL Database
Single Schema with Separate Tables Single Table with Multiple Schemas
Single-‐Instance, Multi-‐Tenant
Single-‐Instance, Single-‐Tenant
Shared Database with Custom Schema Shared Database with Separate Schema or Tables
Single-‐Instance, Single-‐Tenant
Single Fixed Schema with Custom Columns
Composition Rules • Add Custom Fields requires Premium subscription. • Export Results requires Premium subscription. • SQL Database requires Premium subscription and Export Results.
Our approach: Combination of SPL and MDE techniques • Features or groups of features are modeled using UML. • A model composition language, MATA (Modeling Aspects using a Transformation Approach) [4] • Maintaining feature separation • Detection of structural dependencies and conflicts between features.
• However, this approach requires additional work to support cloud application development and multi-‐tenancy.
Applying the MATA language Data Architecture
Single-‐instance, Multi-‐tenant Single-‐instance, Single-‐tenant
Multi-‐instance, Multi-‐tenant
• Model each variable feature independently • Detects dependencies and relations • Allows to select any other model at any time
Our approach: Application Modelling Application modelling steps: 1. Feature modelling 2. Defining core and variant features 3. Core UML model and models of variant features generation 4. Composed UML model generation 5. Code generation
Feature Model
Core Features
Variant Features
Core UML Model
Models of Variant Features
Composed UML Model Code Generation
Conflict and Dependency Detector
Our approach: Application Evolution Application evolution may involve: • Models re-‐selection from models of variant features • Composed UML model update
• Evolved requirements
Feature Model
Core Features
Core UML Model
• Core UML model update • Models re-‐selection
• Code generation
Update models
Evolved Requirements
Variant Features
Models of Variant Features
Composed UML Model Code Generation
Models re-‐selection
Conflict and Dependency Detector
Novelty of the approach Mietzner [5]
Shahin [6]
SLE [7]
Abu-‐Matar [8] Mohamed [9]
SPL
ü
ü
ü
ü
ü
ü
MDE
û
ü
û
ü
ü
ü
Multi-‐tenancy
ü
ü
ü
ü
ü
ü
Customization
ü
ü
ü
ü
ü
ü
Design Decision Variability
ü
ü
û
û
û
ü
Evolution
û
û
ü
û
ü
ü
Table 1. A comparison of our approach with related work SLE –Service Line Engineering
Our approach
SUMMARY • An integrated SPL and MDE modeling approach has been proposed to address • Design decision variability • Evolution concerns
in multi-‐tenant SaaS cloud applications. • Feature modelling to identify variability in implementation. • The MATA language has been suggested to • Manage variability • Support customization and evolution.
• Our approach enables
• Models reuse by modelling features independently • Conflicts and dependencies detection
References 1.
D. Betts et al., Developing Multi-‐tenant Applications for the Cloud on Windows Azure. Microsoft patterns & practices, 2013.
2.
C. J. Guo et al., “A framework for native multi-‐tenancy application development and management,” in The 9th IEEE International Conference on E-‐ Commerce Technology and The 4th IEEE International Conference on Enterprise Computing, E-‐ Commerce and E-‐Services (CEC-‐EEE 2007). E-‐Commerce Technology and the 4th IEEE, 2007, pp. 551–558.
3.
H. Gomaa, “Designing Software Product Lines with UML: From Use Cases to Pattern-‐Based Software Architectures”, Addison-‐ Wesley Professional, 2004
4.
P. Jayaraman, et al., “Model Compositionin Product Lines and Feature Interaction Detection Using Critical Pair Analysis”, Conference on Model Driven Engineering Languages and Systems, 2007 R. Mietzner, et al., “Variability modeling to support customization and deployment of multi-‐tenant-‐aware Software as a Service applications", Proceedings of the 2009 ICSE Workshop on Principles of Engineering Service Oriented Systems, pp. 18-‐25, 2009 A. Shahin, A “Variability Modeling for Customizable SaaS Applications”, International Journal of Computer Science and Information Technology, 6(5), pp.39-‐49,2014
5. 6. 7.
S. Walraven, et al., “Efficient Customization of Multi-‐tenant Software-‐as-‐a-‐Service Applications with Service Lines”, Journal of Systems and Software, Vol. 91, pp. 48-‐62, 2014
8.
M. Abu-‐Matar, et al., “ Towards Software Product Lines Based Cloud Architectures”, Proceedings of the IEEE Conference on Cloud Engineering, 2014
9.
F. Mohamed, et al., “SaaS Dynamic Evolution Based on Model-‐Driven Software Product Lines”, Proceedings of the IEEE 6th Conference on Cloud Computing Technology and Science, 2014