<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Evolving Multi-Tenant SaaS Cloud Applications Using Model-Driven Engineering</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Assylbek Jumagaliyev</string-name>
          <email>a.jumagaliyev@lancaster.ac.uk</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jon Whittle</string-name>
          <email>j.n.whittle@lancaster.ac.uk</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Yehia Elkhatib</string-name>
          <email>y.elkhatib@lancaster.ac.uk</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>School of Computing and</institution>
          ,
          <addr-line>Communications</addr-line>
          ,
          <institution>Lancaster University</institution>
          ,
          <country country="UK">United Kingdom</country>
        </aff>
      </contrib-group>
      <fpage>60</fpage>
      <lpage>64</lpage>
      <abstract>
        <p>Cloud computing promotes multi-tenancy for efficient resource utilization by sharing hardware and software infrastructure among multiple clients. M ulti-tenant applications running on a cloud infrastructure are provided to clients as Software-as-a-Service (SaaS) over the network. Despite its benefits, multi-tenancy introduces additional challenges, such as partitioning, extensibility, and customizability during the application development. Over time, after the application deployment, new requirements of clients and changes in business environment result application evolution. As the application evolves, its complexity also increases. In multi-tenancy , evolution demanded by individual clients should not affect availability, security , and performance of the application for other clients. Thus, the multitenancy concerns add more complexity by causing variability in design decisions. M anaging this complexity requires adequate approaches and tools. In this paper, we propose modeling techniques from software product lines (SPL) and model-driven engineering (M DE) to manage variability and support evolution of multi-tenant applications and their requirements. Specifically, SPL was applied to define technological and conceptual variabilities during the application design, where M DE was suggested to manage these variabilities. We also present a process of how M DE can address evolution of multi-tenant applications using variability models.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Evolution</kwd>
        <kwd>multi-tenancy</kwd>
        <kwd>variability</kwd>
        <kwd>cloud computing</kwd>
        <kwd>cloud application</kwd>
        <kwd>software product lines</kwd>
        <kwd>model-driven engineering</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>
        Cloud computing provides on-demand, scalable, and flexible
computing resources to develop and deploy cloud applications [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
Applications deployed on cloud are provided to clients as services
over the Internet and are known as SaaS. As mentioned in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], one
key attribute of SaaS is multi-tenant efficiency, which enables
economies of scale and efficient resource utilization by sharing a
cloud infrastructure across multiple clients (i.e., tenants). A tenant
is an organization or company with its end users that uses SaaS
application.
      </p>
      <p>
        As illustrated in Figure 1, there are generally two multi-tenancy
patterns [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]: multiple instances multi-tenancy and single instance
multi-tenancy . In the former, each tenant has a dedicated
application instance on a shared hardware, operating system, or
middleware. In the latter, tenants are served by a single
application instance that runs on shared hardware and software
infrastructure. We explore and address challenges that relate to the
latter multi-tenancy pattern where tenants require isolation in
application and database. Tenants may also want to extend or
customize a business process workflow to cater for their specific
needs. However, extensions and customizations of individual
tenants should not affect the use of t he application by other
tenants. Thus, partitioning, extensibility, and customizability
challenges emerge during the application development.
Over time, applications evolve because of changes in tenant
requirements or new tenant requirements [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. The evolution may
imply changes in the application structure. Usually, cloud
applications consist of several layers (e.g., presentation layer, data
logic layer, and business logic layer) and changes in any layer
may entail changes in other layers. M oreover, multi-tenancy
requires the following architectural considerations to be
addressed. First, the application layers must be multi-tenant aware
to ensure tenant isolation. Second, the application must allow per
tenant customization. Finally, each layer must scale independently
of each other.
      </p>
      <p>Cloud providers offer various technologies and tools for cloud
application development. Nevertheless, multi-tenancy concerns
cause additional variability challenges in design decisions such as
different multi-tenant data architectures, partitioning schemas and
design patterns. The variability represents different available
options to implement a certain functionality and it should be
considered in the whole lifecycle of multi-tenant applications to
meet tenant requirements, and to leverage resource p ooling and
scalability of the cloud.</p>
      <p>
        Variability can be efficiently managed using SPL techniques.
M ainly, SPL engineering focuses on the development of software
products from reusable core assets [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. In SPL, software systems
share common functionality, but each software system has some
variable functionality [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>M odeling the variability can also help to efficiently evolve
applications. During the application development a set of
variability models can be chosen for a given cloud deployment.
When the application evolves, it is possible to evolve the
corresponding code by selecting another set of options from the
variability model. For example, a multi-tenant data architecture
can be modeled in different ways: 1) single database shared by all
tenants, 2) a separate database for each tenant, or 3) multiple
database instances where each instance serves a group of tenants.
Initially, the developers might select a single database for all
tenants. However, the security requirements of tenants may
require a more isolated approach that cannot be provided in a
single database instance. Therefore, the developer selects another
multi-tenant architecture and the application evolves to multiple
database instances.</p>
      <p>
        The main contribution of our ongoing research is exploring
combination of SPL and M DE techniques for managing
variability in design decisions and evolving multi-tenant cloud
applications. Others have advocated the integration of SPL and
M DE for managing variability in multi-tenant cloud applications.
For example, in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], Orthogonal Variability M odel (OVM ) and
Service Oriented M odeling Language (SoaM L) were used to
model variability and customizability in cloud applications. While
in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], a framework was prop osed to model customizable
multitenant cloud applications and to support their evolution. However,
these approaches address application variability , customizability ,
and limited evolution scenarios, such as onboarding new tenants,
removing tenants, and tenant customizations. In our approach, we
use SPL to identify technological and conceptual variability prior
to application implementation, where M DE concepts are applied
to manage variability . Subsequently, variability models may
efficiently support evolution of applications and their
requirements. M oreover, we illustrate our approach by a
multitenant application example.
      </p>
      <p>The reminder of the paper is structured as follows. Section 2
describes variability in multi-tenant applications and their
evolution. It also describes SPL and discusses related work in the
field. Section 3 explains our approach for addressing variability
and evolution challenges in multi-tenant applications. Section 4
presents a case study to motivate and illustrate our work. Finally,
Section 5 concludes the presented approach.</p>
    </sec>
    <sec id="sec-2">
      <title>2. BACKGROUND</title>
      <p>In this section, we briefly explain variability in multi-tenant
applications and their evolution. We also describe SPL and give
an overview of related work.</p>
    </sec>
    <sec id="sec-3">
      <title>2.1 Variability</title>
      <p>
        Variability emerges in all levels of cloud applications. Abu-M atar
et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] categorized the variability into the following levels:
application variability, business process variability, platform
variability, provisioning variability, deployment variability and
provider variability. Through this paper, we consider application
variability and business process variability.
      </p>
      <p>
        In application variability, different tenants may have different
functional and non-functional requirements in addition to the core
application. In business process variability, tenants may have
varying business workflows. Therefore, the application must
enable configuration and customization to meet tenant ’s goals and
requirements. In [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], variability is separated as customer-driven
variability and realization-driven variability. The customer-driven
variability comprises tenant requirements. We can classify
application and business process variability as customer-driven
variability. The realization-driven variability represents different
implementation options derived by customer-driven variability. In
this paper, we use design decision variability as realization-driven
variability.
      </p>
    </sec>
    <sec id="sec-4">
      <title>2.2 Evolution</title>
      <p>
        Evolution is an inevitable p rocess in any software system [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and
multi-tenant applications are no exception. There are several
reasons that trigger application evolution, such as fixing bugs,
changes in business environment, improving security and
reliability , changes in tenant requirements, or new tenant
requirements. Applications should respond to such changes to
maintain tenant satisfaction. In application level multi-tenancy,
changes must be adapted at runtime without affecting availability,
security , and performance of an application for other tenants. A
key problem is implementing and managing required changes in
applications [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
2.3 SPL
SPL is a software engineering approach that focuses on the
development of software products from reusable core assets [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. It
promotes feature modeling to analyze and identify the
commonality and variability in applications [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Features are
specific characteristics of an application and are classified in
terms of capabilities, domain technologies, and implementation
techniques [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Capabilities represent functional and
nonfunctional characteristics that are provided by an application to
clients. Domain technologies describe how to implement features
regarding an underlying domain, where implementation
techniques comprise commonly used generic approaches in the
development. Features are also group ed as mandatory, optional,
alternative and at-least-one-of (OR). Common features are
mandatory features, while variability features may be optional,
alternative or at-least-one-of. Optional features can be selected or
neglected, only one feature must be selected from alternative
features, and one or more features can be selected from at
-leastone-of features.
      </p>
    </sec>
    <sec id="sec-5">
      <title>2.4 Related work</title>
      <p>Several authors have prop osed using SPL or M DE techniques for
managing variability in cloud applications to address
multitenancy concerns. M oreover, there are some tools and frameworks
for deploying, provisioning or supporting portability of cloud
applications. However, none combined the strength of these two
paradigms to address the multi-tenancy challenges, design
decision variability challenges and evolution complexity .</p>
      <sec id="sec-5-1">
        <title>2.4.1 MDE and SPLs</title>
        <p>
          M ietzner et al. [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] prop osed variability management in
multitenant SaaS applications and their requirements using explicit
variability models of SPL. Initially, the customer-driven
variability and realization-driven variability were modeled using
Orthogonal Variability M odel (OVM ). Then, the model was used
to support customizability in applications. The authors also
supported efficient SaaS applications deployment for new tenants
based on the information about already deployed SaaS
applications. Nevertheless, this approach addresses the application
variability and does not support evolution.
        </p>
        <p>
          Service line engineering (SLE) [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] (i.e., combination of
serviceoriented development and SPL) was introduced for customizable
multi-tenant SaaS application development. SLE uses feature
modeling to address engineering complexity and manage
variability caused by application-level multi-tenancy. The main
departure from SPL is that customizations are applied to a single
application instance that is shared across multiple tenants. The
author emphasized that SLE also supports application evolution.
Kumara et al. [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] described an approach for realizing
servicebased multi-tenant applications. This approach is also
featureoriented as SLE and it supports evolution by enabling runtime
sharing and tenant-specific variations using Dynamic SPLs.
CloudM L [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], CAM L [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ], and CloudDSL [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] are examples of
modeling languages for cloud applications that exploit ed M DE
techniques. CloudM L automates provisioning for cloud
applications that run on multiple clouds. CloudDSL supports
portability of applications by describing cloud platform entities,
whereas CAM L supports deployment and enables migration of
existing applications to cloud. However, none of these modeling
languages addresses multi-tenancy in design decisions or
evolution of applications.
        </p>
      </sec>
      <sec id="sec-5-2">
        <title>2.4.2 Combining MDE and SPLs</title>
        <p>
          Shahin [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] integrated SPL and M DE to model variability for
customizable SaaS applications. In this approach, SoaM L was
extended to model variability in all layers of Service Oriented
Architecture (SOA). OVM from SPL was exploited to model
variability as separate models. These separate models were used
to generate a customization model for SaaS applications.
Cavalcante et al. [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] applied feature modeling to manage
commonality and variability in cloud applications. In addition,
they modeled costs regarding the use of cloud resources to
minimize expenditure. They also used UM L class diagram for
features to identify dependencies.
        </p>
        <p>
          Abu-M atar et al. [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] described a framework for modeling
serviceoriented customizable multi-tenant cloud applications. They
exploited SPL for managing variability in services from multiple
views (i.e., service-oriented views and cloud views). They also
applied M DE for modeling multi-tenant aware application
artifacts. In [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], the framework was complemented to support
some evolution scenarios such as onboarding new tenants and
removing tenants. In our approach, we address multi-tenancy
concerns by modeling variability in design decisions that emerges
during the architecting process. Thus, developer can use
variability models for further support throughout the whole
lifecycle of multi-tenant cloud applications.
        </p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>3. OUR APPROACH</title>
      <p>
        We consider an integration of feature modeling concepts and
M DE techniques to address the design decision variability and
evolution complexity in multi-tenant cloud app lications. Our
approach is based on the work of Jayaraman et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. The main
idea of this approach is maintaining feature separation and
detection of structural dependencies and conflicts between
features during analysis and design modeling. Features or group s
of features are modeled using UM L, and a model composition
language, M ATA (M odeling Aspects using a Transformation
Approach), detects relationship s and conflicts. However, this
approach requires additional work to support cloud application
development and multi-tenancy.
      </p>
      <p>Figure 2 illustrates modeling multi-tenant applications that
consists of the following steps. Initially, common and variable
functional and non-functional features with dependencies are
captured using feature modeling. This helps to define available
implementation options for the design decisions. Next, common
features are used to model the core of the application using an
UM L composition language. Each variant feature is modeled in
the M ATA language with dependencies to the core UM L model
and relations to other features. This allows features to be modeled
independently of each other and enables reuse of models. Further,
a composed UM L model is generated from the core UM L model
and selected models from models of variant features. At this stage,
conflicts and dependencies of models are checked. Finally, source
code specific to a particular cloud platform is generated.
Figure 2 also describes application evolution which may require
models re-selection, adding new features, or a combination of
both. In the case of model re-selection, developers pick
approp riate features from the models of variant features. When
evolution demands adding new features, developers identify
whether new features are common or variable. The new common
features affect the existing core UM L model, whereas for each
variable feature a corresponding model of variant feature is
created. There might be cases when all new features are common
or variable. In the former, only the core UM L model is updated.
While in the latter, new models are added to the models of feature
variants and it requires models re-selection. Then, developers
generate a composed UM L model and source code.</p>
    </sec>
    <sec id="sec-7">
      <title>4. CASE STUDY</title>
      <p>
        To explore our approach, we present a Surveys service [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] case
study by M icrosoft. Surveys is a multi-tenant SaaS application for
creating and managing online surveys. Tenants can create, publish
surveys, and analyze results. Three different actors interact with
the application: the application provider administrator, the tenant
administrator, and the survey respondent. The application
provider administrator manages all tenants and their surveys,
whereas the tenant administrator manages its own surveys and
survey results, and the survey respondent completes surveys.
Although multiple tenants use the same application instance with
core functionalities and user interface layouts, each tenant can
view and edit its own data. In addition, the application allows
tenants to apply user interface customization by uploading their
corp orate logo, adding tenant name, welcome text, and contact
details. Besides, tenants can customize the business process by
choosing a standard or premium subscription type. With standard
subscription, tenants can publish a limited number of surveys and
cannot export their survey results. Premium subscription tenants
can create and publish any number of surveys, export survey
results for further analysis, and their requests are prioritized by the
application.
      </p>
    </sec>
    <sec id="sec-8">
      <title>4.1 Applying our Approach</title>
      <p>As a first step , we constructed a feature model to define
commonalities and potential variabilities in the application. An
excerp t of the feature model is illustrated in Figure 3. As
mentioned in Section 2.3, features were identified and categorized
into three layers. The capability layer comprises the functional
and non-functional features that are available for tenants. The
domain technology layer describes the way of implementing
features from the capability layer, and the implementation
technique layer represents generic techniques to implement
features on a cloud infrastructure. Further, the features were
classified as mandatory, optional, alternative features, and
atleast-one-of (OR). The mandatory features are common features
that represent core components of the application that will alw ay s
be present in any evolution of the cloud application. Whereas the
optional, alternative and at-least-one-of features are variable
features that describe different possible implementations. Once
the common and variable features are defined, the process (as
defined in Figure 2) would come up with a core UM L model from
the common features and models of variant features from the
variable features. As a next step , a composed UM L model from
the core UM L model and selected models of variant features
would be generated.</p>
      <p>Figure 3 shows that various options were modeled in the domain
technologies and implementation techniques for realizing certain
features. These variability models are used to support evolution.
For example, the application uses a single database instance
shared by all tenants. However, as the number of users per tenant
increases, a more isolated approach must be selected from
variability models to meet user requirements. With the M ATA
language multi-tenant data architectures are modeled separately
with their dependencies to the core model and can be easily
reused. Hence, developers can select any other multi-tenant data
architecture model at any time during the application evolution.</p>
    </sec>
    <sec id="sec-9">
      <title>4.2 Evolution Scenarios</title>
      <p>Over the application lifetime, the functionality and quality of
service offered by the application must increase to meet tenants’
requirements. In this section, we consider some evolution
scenarios that affect design decisions in the application structure.
When architecting the application structure, we decided to use a
single database instance shared by all tenants. However, over time
the number of tenants increases. Therefore, the number of
concurrent end users and amounts of data stored by each tenant
increase as well. M oreover, some tenants may require a separate
database due to privacy requirements. These scenarios require a
more isolated data storage approach and entail model re-selection
from models of variant features. Thus, developers select either a
single database instance for each tenant or multiple database
instances for multiple tenants from the available data architecture
models (as depicted in Figure 3).</p>
      <p>For maintaining a session state while creating a new survey, we
suggest JavaScript/AJAX technologies. This approach is simple,
easy to maintain, scalable, and secure compare to other available
implementation techniques under the M aintaining Session State
feature. However, it relies on client-side JavaScript that makes it
the least robust solution among available techniques. In the future,
to improve robustness and effectiveness, developers must decide
between default in in-memory session state provider and cache
session. This scenario also requires model re-selection from
existing models of variant features.</p>
      <p>Another typical scenario is adding new features. For example,
tenants may want to perform comp lex analysis on survey results.
Currently, the application stores survey answers in blob storage.
To provide the new feature, an SQL database (from different
models under Storage Type) is the best solution for applying
complex queries and join query. When adding a new feature,
develop ers must identify whether the new feature is common or
specific to certain clients. If the feature is common, the core UM L
model will be updated. If the feature is variable, the core UM L
model will remain the same and a model of variant feature for this
variable feature will be generated. At this point, the M ATA
language detects relations and dependencies of the new feature to
other features. The SQL Database also needs partitioning to
support multi-tenancy. Thus, the developers must select one of the
different partitioning models for SQL databases. M oreover, a new
interface must be implemented to view and analyze survey data.</p>
    </sec>
    <sec id="sec-10">
      <title>5. CONCLUSION</title>
      <p>In this paper, we have prop osed an integrated SPL and M DE
modeling approach to address design decision variability and
evolution concerns in multi-tenant SaaS cloud applications. We
have applied feature modeling concepts to identify variability in
implementation. The M ATA language has been suggested to
manage variability , and to support customization and evolution.
Thus, the prop osed approach allows features to be modeled
independently. Furthermore, conflicts in the application structure
and dependencies between models are detected. However, it
requires improvements to enable cloud application development
and multi-tenancy .</p>
      <p>In our future work, we plan to enhance our approach by making
the M ATA language applicable for multi-tenant SaaS cloud
applications and by developing a model to code transformation
prototype to transform composed models to source code. A case
study will be carried out to illustrate and evaluate the
implemented tool. M oreover, we will compare our approach with
other tools to identify benefits and drawbacks.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>P.</surname>
          </string-name>
          <article-title>M ell</article-title>
          , et al.,
          <source>“The NIST Definition of Cloud Computing”, National Institute of Standards and Technology, Special Publication 800-145</source>
          , Bethesda, M aryland,
          <year>2011</year>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>D.</given-names>
            <surname>Betts</surname>
          </string-name>
          , et al.,
          <article-title>“Developing M ulti-Tenant Applications for the Cloud on Windows Azure”, M icrosoft Patterns</article-title>
          and Practices, 2013
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J.</given-names>
            <surname>Guo</surname>
          </string-name>
          , et al.,
          <article-title>“A framework for native multi-tenancy application development and management”</article-title>
          ,
          <source>Proceedings of the 9th IEEE Conference on E-Commerce Technology and the 4th IEEE Conference on Enterp rise Computing</source>
          , ECommerce and E-Services, pp.
          <fpage>551</fpage>
          -
          <lpage>558</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M .</given-names>
            <surname>Abu-M atar</surname>
          </string-name>
          , et al.,
          <source>“Towards Software Product Lines Based Cloud Architectures”, Proceedings of the IEEE Conference on Cloud Engineering</source>
          ,
          <year>2014</year>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>H.</given-names>
            <surname>Gomaa</surname>
          </string-name>
          , “
          <article-title>Designing Software Product Lines with UM L: From Use Cases to Pattern-Based Software Architectures”</article-title>
          ,
          <string-name>
            <surname>Addison-Wesley Professional</surname>
          </string-name>
          ,
          <year>2004</year>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>I. Sommerville</surname>
          </string-name>
          , “Software Engineering”, Pearson,
          <year>2010</year>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>K.</given-names>
            <surname>Lee</surname>
          </string-name>
          , et al.,
          <article-title>“Concepts and guidelines of feature modeling for product line software engineering”</article-title>
          ,
          <source>Proceedings of the 7th Conference on Software Reuse: M ethods, Techniques, and Tools</source>
          , p p .
          <fpage>62</fpage>
          -
          <lpage>77</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>R.</surname>
          </string-name>
          <article-title>M ietzner</article-title>
          , et al., “
          <article-title>Variability modeling to support customization and deployment of multi-tenant-aware Software as a Service applications"</article-title>
          ,
          <source>Proceedings of the 2009 ICSE Workshop on Principles of Engineering Service Oriented Systems</source>
          , pp.
          <fpage>18</fpage>
          -
          <lpage>25</lpage>
          ,
          <year>2009</year>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>S.</given-names>
            <surname>Walraven</surname>
          </string-name>
          , et al.,
          <article-title>“Efficient Customization of M ulti-tenant Software-as-a-Service Applications with Service Lines”</article-title>
          ,
          <source>Journal of Systems and Software</source>
          , Vol.
          <volume>91</volume>
          , pp.
          <fpage>48</fpage>
          -
          <lpage>62</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>A.</given-names>
            <surname>Shahin</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          “
          <article-title>Variability M odeling for Customizable SaaS Applications”</article-title>
          ,
          <source>International Journal of Computer Science and Information Technology</source>
          ,
          <volume>6</volume>
          (
          <issue>5</issue>
          ), pp.
          <fpage>39</fpage>
          -
          <lpage>49</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>I.</given-names>
            <surname>Kumara</surname>
          </string-name>
          , et al.,
          <article-title>“Sharing with a difference: Realizing service-based SaaS applications with run-time sharing and variation in dynamic software product lines”</article-title>
          ,
          <source>IEEE Conference on Services Computing</source>
          , pp.
          <fpage>567</fpage>
          -
          <lpage>574</lpage>
          ,
          <year>2013</year>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bergmayr</surname>
          </string-name>
          , et al., “
          <article-title>The Evolution of CloudM L and its M anifestations”</article-title>
          ,
          <source>Proceeding of the 3rd Workshop on CloudM DE</source>
          ,
          <year>2015</year>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bergmayr</surname>
          </string-name>
          , et al.,
          <string-name>
            <surname>“UM L-Based</surname>
            <given-names>Cloud Application</given-names>
          </string-name>
          <article-title>M odeling with Libraries, Profiles and Templates”</article-title>
          ,
          <source>Proceedings of the 2nd Workshop on CloudM DE</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>G. S.</given-names>
            <surname>Silva</surname>
          </string-name>
          , et al., “
          <string-name>
            <surname>Cloud</surname>
            <given-names>DSL</given-names>
          </string-name>
          :
          <article-title>A Language for Supporting CloudPortability by Describing Cloud Entities”</article-title>
          ,
          <source>Proceedings of the 2nd Workshop on CloudM DE</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>E.</given-names>
            <surname>Cavalcante</surname>
          </string-name>
          , et al.,
          <source>“Exploiting Software Product Lines to Develop Cloud Computing Applications,” the 16th Software Product Line Conference</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>P.</given-names>
            <surname>Jayaraman</surname>
          </string-name>
          , et al.,
          <string-name>
            <surname>“</surname>
          </string-name>
          <article-title>M odel Composition in Product Lines and Feature Interaction Detection Using Critical Pair Analysis”</article-title>
          ,
          <source>Conference on M odel Driven Engineering Languages and Systems</source>
          , 2007
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>F.</surname>
          </string-name>
          <article-title>M ohamed</article-title>
          , et al.,
          <article-title>“SaaS Dynamic Evolution Based on M odel-Driven Software Product Lines”</article-title>
          ,
          <source>Proceedings of the IEEE 6th Conference on Cloud Computing Technology and Science</source>
          , 2014
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>