Tenant SaaS Cloud Applications Using Model ...

3 downloads 173295 Views 477KB Size Report
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