<!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>MDE Opportunities in Multi-Tenant Cloud Applications</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mohammad Abu Matar</string-name>
          <email>mohammad.abu-matar@kustar.ac.ae</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="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Etisalat British Telecom Innovation Center Khalifa University of Science, Technology and Research Abu Dhabi</institution>
          ,
          <country country="AE">United Arab Emirates</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>School of Computing and Communications InfoLab21, Lancaster University Lancaster LA1 4WA</institution>
          <country country="UK">United Kingdom</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Cloud computing promotes economies of scale by sharing software and hardware resources across multiple tenants. To date, there has been relatively little research on how MDE can best support multi-tenant cloud applications, where there is a need to separate the logic and data of multiple tenants. In this position paper, we sketch out five key research opportunities for applying MDE to multi-tenant cloud applications.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Cloud computing is a widespread model for sharing computing resources that
promotes economies of scale by hosting software applications on a network of remote
servers shared across multiple customers [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Generally speaking, there are two
models of cloud computing: single-tenant and multi-tenant. In the single-tenant model,
each customer buys a separate instance of a software application which runs on a
logically isolated hardware environment. In the multi-tenant model, all customers use
the same instance of the software and hardware infrastructure. In this case, the cloud
provider must take care only to reveal part of an application appropriate to each
customer. Whilst the single-tenant model is simpler both technically and conceptually,
the multi-tenant model is preferred because it allows cloud providers to minimize
resource requirements as the number of customers increases. By maintaining a single
instance for multiple tenants, the provider can significantly reduce the costs of
hardware provision, software licenses and software maintenance.
      </p>
      <p>
        As has been noted elsewhere (e.g., [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]), cloud computing is an appealing
application area for model-driven engineering (MDE). Cloud computing and MDE can be
related in two ways [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]: (1) MDE for the Cloud, where MDE technologies are used to
develop cloud applications; and (2) MDE in the Cloud, where the cloud is used to
offer modeling technologies as a service (also referred to as Modeling as a Service or
MaaS [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]). Multi-tenant applications bring additional challenges when compared to
single-tenant applications: although a multi-tenant approach is financially
advantageous for a cloud provider, maintaining separation of logic and data from different
clients is complex. In this paper, we argue that this complexity of multi-tenant
applications makes them a good target for MDE.
      </p>
      <p>This position paper presents five key research opportunities for applying ‘MDE for
the Cloud’ specifically in the multi-tenant case: (1) MDE as a way to deal with
“everywhere variability”; (2) Runtime modification of multi-tenant cloud applications; (3)
A Domain-Specific Language (DSL) for the cloud; (4) MDE to support the
economics of the cloud; and (5) MDE for enabling new business opportunities in the cloud.
2</p>
      <p>
        “Everywhere Variability” in Multi-tenant Cloud Applications
Multi-tenant cloud applications exhibit a huge number of variation points at many
different levels. As one example, data segmentation between tenants can be
implemented in different ways: a dedicated database for each tenant, a single database for
all tenants but with a separate schema per tenant, or a single database and schema/
tables for all tenants [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. As another example, each tenant may demand a customized
business process workflow.
      </p>
      <p>
        Indeed, the need for multiple tenants to share resources introduces potential
variabilities at all levels of the cloud computing stack – that is, at the so-called Software,
Platform, and Infrastructure-as-a-Service levels [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Different tenants may be offered
a different hardware configuration, may have access to different APIs from the cloud
provider, and will demand different configurations of an application. The “pay as you
go” model of cloud computing actively encourages tenants to pay only for what they
need; but this necessitates the maintenance of potentially many thousands of different
configurations sharing the same underlying resources.
      </p>
      <p>
        We categorize the different levels of variability in cloud systems as follows: (1)
Application Variability – Software as a Service (SaaS) tenants have varying
functional requirements [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]; (2) Data Variability; (3) Business Process Variability where the
business workflow may vary; (4) Platform Variability – Operating systems,
Programming languages, Frameworks, and solution stacks, i.e. Platform as a Service
(PaaS); (5) Provisioning Variability – Hardware, Networking, Virtual Machines, and
Elasticity, i.e. Infrastructure as a Service (IaaS); (6) Deployment Variability – Public,
Private, Community, and Hybrid clouds [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]; (7) Provider Variability, e.g., Amazon
Web Services (AWS), Google Application Engine (GAE), or SalesForce.
      </p>
      <p>
        One of the potential strengths of MDE is the ability to abstract and manage
variability; this has been demonstrated in many papers that integrate MDE and software
product lines (SPLs) [
        <xref ref-type="bibr" rid="ref11 ref8">8,11</xref>
        ]. Hence, a combination of MDE and SPLs is an obvious
potential solution. Schmid and Rummler [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] discussed how to exploit software
product line (SPL) techniques for runtime customization of cloud-based systems.
Similarly, a case for applying SPLs to cloud-based development is made in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] where
feature models are adapted to cater for specific cloud computing concerns like
provisioning, customization, and price calculation. Schroeter et al. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] propose to extend the
component model (CCM) with tenant configuration and constraints. However, many
of these works are at an early stage and there remain many challenges in applying
MDE/SPLs to variability in cloud-based systems. A key point to note is that
variability management in the cloud is fundamentally different even than dynamic SPL
approaches [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]: dynamic SPLs adapt a configuration at runtime but there is only a
single instance of the product family running at any given time; in cloud-based systems,
there will be multiple variations running, one for each tenant.
3
      </p>
    </sec>
    <sec id="sec-2">
      <title>Runtime Modification of Multi-tenant Cloud Applications</title>
      <p>A cornerstone of cloud computing is dynamic provisioning and resource allocation
to achieve the desired performance and reliability as systems scale. This is especially
true of multi-tenant applications where, for example, data access has to be carefully
managed so that one tenant’s requests do not dominate over others. In the worst case,
a cloud application may have to be re-architected at runtime to, for example, move a
greedy tenant to a separate server. In current practice, these runtime reconfigurations
are handled by dashboards that allow performance monitoring and APIs that allow
reconfigurations. However, MDE potentially supports more sophisticated dynamic
reconfigurations resulting in radical architectural changes: these might be needed, for
example, if an initial estimate on the number of tenants turns out to be wildly off, or if
the security requirements of new tenants differ radically from the initial set of tenants.</p>
      <p>
        There have been some attempts to manage dynamic cloud reconfigurations using
advanced software development techniques. Jegadeesan and Balasubramanian [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]
employ aspect-oriented programming to design service variations for multi-tenant
SaaS systems. Almorsy et al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] apply MDE to generate security aspects for different
tenants and then inject them into tenants’ code. Abu-Matar et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] show that MDE
can play a central role in the runtime modification of multi-tenant systems by using a
shared feature model to manage different tenant requirements at runtime.
      </p>
      <p>Clearly, however, more research is needed in this area. For example, a model based
runtime environment could be developed to manipulate tenant configurations by
having a representation of the tenants’ models at runtime. Another opportunity could be
the development of a model-driven platform-as-a-service (PaaS) where multitenant
applications can be deployed automatically.
4</p>
    </sec>
    <sec id="sec-3">
      <title>Domain-Specific Languages (DSLs) for the Cloud</title>
      <p>
        Multi-tenant cloud applications are specialist applications with their own set of
concerns, such as partitioning for different tenants, extensibility to support new
tenants, provisioning, testability of a single code base used by multiple tenants, and
customization of a single code base for multiple tenants with different requirements [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
In essence, these concerns define a domain of interest, which could be encapsulated
into a DSL for generating and/or maintaining cloud implementations.
      </p>
      <p>
        There has been some initial work in this direction. For example, CloudML [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] is a
DSL to model the provisioning of multi-cloud applications, that is, applications that
could run on multiple cloud providers. CloudML models the provisioning of these
applications on IaaS clouds and it provides runtime support to deploy the modeled
apps. Additionally, the DSL has an associated IDE, namely MODACloudML [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
However, CloudML does not provide support for multi-tenant cloud software
applications, nor it does provide support for tenants’ applications evolution at runtime.
      </p>
      <p>
        A DSL for multitenant cloud applications would include concepts like: Tenant,
Tenant Configuration, Cloud Provider, Tenant Database, Tenant Schema, Tenant
Table, and Deployment Type. Our previous work on SPL support for cloud
architectures included a service oriented cloud meta-model that incorporates some of these
concepts [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Transformation rules could then be used to model the evolution of
multitenant applications like: Tenant Onboarding and Tenant Customization.
5
      </p>
    </sec>
    <sec id="sec-4">
      <title>MDE to Support the Economics of the Cloud</title>
      <p>Service providers using the cloud must think carefully about how they charge their
customers. Since cloud applications typically run on a “pay as you go” model, service
providers must decide if their customers will be charged on a subscription basis or per
transaction. In both cases, the service provider must reconcile these charges with the
amounts they pay to the cloud provider. Hence, the issue of pricing in multi-tenant
cloud applications can be complex, especially when coupled with software
maintenance costs which vary widely depending on the architecture chosen. MDE could be
used in a novel way to manage these economics. For example, there could be a tool
that lets service providers model their applications where the financials are evaluated
on the model; hence, service providers can continuously refine their applications
based on the predicted financials of the model.</p>
      <p>Most current cloud pricing models are based on the usage and/or lease of virtual
infrastructure resources where consumers pay for computing, storage, and network
resources either on subscription or on-demand basis. For SaaS tenant-based
consumption, pricing has to be based on which software features a tenant uses. This would
necessitate that SaaS applications are built in a modular manner where features are
associated with pricing units. Thus, MDE could be used to generate different metered
versions of the same cloud application to suit consumers’ needs. MDE could also be
used as an enabler for self-service pricing decision support systems.
6</p>
    </sec>
    <sec id="sec-5">
      <title>Enabling New Business Opportunities in the Cloud</title>
      <p>
        Whittle et al. [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] argue that MDE is more likely to be a success if it enables new
business opportunities rather than simply bringing productivity gains to existing
business opportunities. There is a strong case that MDE can bring such new business
opportunities to the cloud. In multi-tenant applications, customizations for each tenant
are required; however, current approaches typically only allow somewhat simple
customizations because of the software maintenance costs that would be incurred by
allowing more complex customizations. For example SalesForce [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], the largest
SaaS provider, handles tenants’ customizations through metadata that allows
customers to modify mainly the database.
      </p>
      <p>However, cloud providers typically stop short of allowing radical customizations,
such as wildly different business logic or architecture. This is because of the costly
maintenance and evolution costs that would be associated with this. MDE, however,
potentially allows these maintenance costs to be reduced, hence enabling service
providers to open up completely new business avenues by allowing tenants to add new
business functionality that distinguish them from other tenants in contrast to mere
database or simple interface customization.
7</p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <p>Cloud computing is rapidly becoming the favored computing paradigm for the IT
industry. New technological innovations are needed to make multi-tenant cloud
computing a sustainable mainstream. To that end, we believe that MDE has the potential
to create new disruptive opportunities for multi-tenant applications. In this paper, we
have highlighted some of these opportunities and provided samples of ongoing
research in this field.
8</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>P.</given-names>
            <surname>Mell</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Grance</surname>
          </string-name>
          , “
          <source>The NIST Definition of Cloud Computing.” National Institute of Standards and Technology, Special Publication 800-145</source>
          , Bethesda, Maryland,
          <year>September 2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>K.</given-names>
            <surname>Schmid</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Rummler</surname>
          </string-name>
          , “
          <article-title>Cloud-based software product lines</article-title>
          ,”
          <source>in Proceedings of the 16th International Software Product Line Conference</source>
          ,
          <volume>164</volume>
          -
          <fpage>170</fpage>
          . New York, NY,
          <year>2012</year>
          ,
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>H.</given-names>
            <surname>Brunelière</surname>
          </string-name>
          , et al,“
          <article-title>Combining Model-Driven Engineering</article-title>
          and Cloud Computing,” in 4th Workshop on Modeling, Design, and
          <article-title>Analysis for the Service Cloud</article-title>
          , Paris, France,
          <year>June 2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>H.</given-names>
            <surname>Jegadeesan</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Balasubramaniam</surname>
          </string-name>
          , “
          <article-title>A Method to Support Variability of Enterprise Services on the Cloud,”</article-title>
          <source>IEEE International Conference on Cloud Computing</source>
          ,
          <fpage>117</fpage>
          -
          <lpage>124</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>M.</given-names>
            <surname>Almorsy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Grundy</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A. S.</given-names>
            <surname>Ibrahim</surname>
          </string-name>
          , “
          <article-title>Adaptable, model-driven security engineering for SaaS cloud-based applications</article-title>
          ,”
          <source>Automated Software Eng. Journal</source>
          , vol.
          <volume>29</volume>
          ,
          <year>2013</year>
          ,
          <fpage>1</fpage>
          -
          <lpage>38</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>D.</given-names>
            <surname>Betts</surname>
          </string-name>
          et al.,
          <article-title>“Developing Multi-tenant Applications for the Cloud on Windows Azure,” Microsoft Patterns &amp; Practices, March 2013</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>S.</given-names>
            <surname>Walraven</surname>
          </string-name>
          , et al, “
          <article-title>Efficient Customization of Multi-tenant Software-as-a-Service Applications with Service Lines”</article-title>
          ,
          <source>The Journal of Systems &amp; Software</source>
          , vol.
          <volume>91</volume>
          ,
          <fpage>48</fpage>
          -
          <lpage>62</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>M.</given-names>
            <surname>Abu-Matar</surname>
          </string-name>
          , et al, “
          <source>Towards Software Product Lines Based Cloud Architectures,” Proceedings of the IEEE International Conference on Cloud Engineering (IC2E)</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Nicolas</given-names>
            <surname>Ferry</surname>
          </string-name>
          , et al, “
          <article-title>Towards Bridging the Gap Between Scalability</article-title>
          and Elasticity,
          <source>” 4th International Conference on Cloud Computing and Services Science</source>
          ,
          <volume>746</volume>
          -
          <fpage>751</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>K.</given-names>
            <surname>Schmid</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Rummler</surname>
          </string-name>
          , “
          <article-title>Cloud-based Software Product Lines,”</article-title>
          <source>Proceedings of 16th International Software Product Line Conference (SPLC)</source>
          ,
          <fpage>164</fpage>
          -
          <lpage>170</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. E.
          <string-name>
            <surname>Cavalcante</surname>
          </string-name>
          , et al, “
          <article-title>Exploiting Software Product Lines to Develop Cloud Computing Applications,” the 16th</article-title>
          <source>International Software Product Line Conference</source>
          ,
          <volume>179</volume>
          -
          <fpage>187</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>J. Schroeter</surname>
          </string-name>
          , et al.,
          <article-title>“Towards Modeling a Variable Architecture for Multi-Tenant SaaSApplications</article-title>
          ,”
          <source>VaMoS</source>
          <year>2012</year>
          ,
          <fpage>111</fpage>
          -
          <lpage>120</lpage>
          , ACM, New York, NY.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. https://developer.salesforce.com/page/Multi_Tenant_Architecture, June 8,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>J. Whittle</surname>
          </string-name>
          , et al, “
          <article-title>The State of Practice in Model-Driven Engineering</article-title>
          .”
          <source>IEEE Software 31(3)</source>
          ,
          <fpage>79</fpage>
          -
          <lpage>85</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>