<!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>Cloud DSL: A Language for Supporting Cloud Portability by Describing Cloud Entities</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Gabriel Costa Silva</string-name>
          <email>gabriel@cs.york.ac.uk</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Louis M. Rose</string-name>
          <email>louis.rose@york.ac.uk</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Radu Calinescu</string-name>
          <email>radu.calinescu@york.ac.uk</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer Science, University of York</institution>
          ,
          <addr-line>Deramore Lane, York YO10 5GH</addr-line>
          ,
          <country country="UK">UK</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Di erent cloud platforms o er similar services with di erent characteristics, names, and functionalities. Therefore, describing cloud platform entities in such a way that they can be mapped to each other is critical to enable a smooth migration across platforms. In this paper, we present a DSL that uses a common cloud vocabulary for describing cloud entities covering a wide variety of cloud IaaS services. Through analysis of existing cloud DSLs, we advocate that our cloud DSL is more expressive for the purpose of describing di erent cloud IaaS services. In addition, when used along with TOSCA, our preliminary analysis suggests that our Cloud DSL signi cantly reduces the workload of creating cloud descriptions in a TOSCA speci cation.</p>
      </abstract>
      <kwd-group>
        <kwd>DSL</kwd>
        <kwd>Cloud computing</kwd>
        <kwd>Portability</kwd>
        <kwd>TOSCA</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Costa Co ee, Starbucks, and Ca e Nero are the three largest co ee shop
companies in the UK. Although they all sell their co ees in three common sizes { small,
medium, and large { they name these sizes di erently. This can create a lot of
confusion. A Starbucks customer might get frustrated when ordering a Grande
in Ca e Nero since that, in the Starbucks vocabularyGrande means medium,
whereas for Ca e Nero it means large. Likewise, those unfamiliar with
Starbucks might nd contradictory that Tall is the smallest size. Furthermore,
similar products also have di erent characteristics. For instance, a medium skimmed
latte in Starbucks1 contains 156% more calories than its Nero2 version. Thus,
although their products look similar, they are not all the same. Therefore, having
a detailed description of each product is critical to prevent misunderstandings.</p>
      <p>Like in the co ee-shop market, cloud platforms o er similar services, but with
di erent names, characteristics, and functionalities. For example, consider the
Amazon S3 and Dropbox storage services. Overall, they provide the same
functionality: le storage, storage elasticity, and interfaces for management. However,</p>
    </sec>
    <sec id="sec-2">
      <title>1 http://www.starbucks.co.uk/quick-links/nutrition-info</title>
    </sec>
    <sec id="sec-3">
      <title>2 http://www.ca enero.co.uk/Nutrition/hotdrinks.aspx</title>
      <p>a closer look reveals critical di erences, including the use of di erent le systems.
Whereas Dropbox has one single le system root, Amazon S3 uses multiple root
containers called \buckets". Furthermore, a bucket has a region, which speci es
a geographical location for the content stored within. Like for co ee shops, to
support a smooth migration of applications across di erent cloud platforms, it
is critical to describe the semantics of cloud entities.</p>
      <p>
        Semantic di erences are critical in cloud as they hinder the smooth migration
of assets (e.g., data and applications) across providers [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. For example, the
di erences between Amazon S3 and Dropbox hinder the migration (transfer) of
les from Dropbox to Amazon S3, as it is necessary to create a bucket and assign
it to a region. Cloud portability, i.e. the ability to migrate an asset deployed in
one cloud to another [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], is one of biggest challenges in cloud computing, and
it has been widely addressed by both academia and industry [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
      </p>
      <p>
        Providing homogeneous description of cloud platforms is a potential solution
to overcome semantic di erences and achieve cloud portability in this highly
heterogeneous environment [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. Recent research reveals three means to
describe cloud platforms [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. Although we present them here, discussing their
bene ts and drawbacks is beyond the scope of this paper.
(i) A platform abstraction solution consist of describing concepts of either the
entire platform or its elements, at di erent levels, e.g. as proposed by
MODAClouds [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. This solution can adopt di erent technologies to achieve their
goals, such as ontologies [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and Model-Driven Architecture [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. This
solution covers both design- and run-time, e.g. as proposed by meta cloud [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ];
(ii) Standardized references focus on design-time only through at de ning
references for cloud platforms [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], APIs [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], or applications [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. In the
context of our paper, a reference is a set of rules, or constraints that a cloud
user or provider must follow. However, most of solutions in this type focus on
setting up references for cloud APIs. According to Escalera &amp; Chavez, cloud
APIs consist of software libraries used by application developers to manage
cloud services [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Apart from [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], which targeted cloud applications, other
solutions in this type target only cloud providers; and
(iii) Domain Speci c Languages (DSLs). A DSL is a language tailored for a
particular domain or context [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Like standardized references, DSL-based solutions
are for use at design-time. However, some solutions might provide support
for run-time mechanisms, such as CloudMF [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. As DSLs are de ned for a
particular purpose [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], these solutions cover a wide range of goals, such as
automatic generation of mobile-cloud applications [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], and description and
comparison of Service Level Agreements (SLAs) [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Regardless of the
purpose, meta-models are the cornerstone of these solutions. Finally, DSL-based
solutions are mainly intended to support cloud users.
      </p>
      <p>
        In this paper, we present a DSL that uses a common cloud vocabulary for
describing cloud platform entities, such as services and resources across a wide
variety of cloud platforms. Unlike existing Cloud DSL, this work covers a wide
variety of cloud IaaS services, contributes to di erent phases of cloud
portability, facilitates the communication of services and resources to di erent levels of
stakeholders, and enables the description of di erent types of clouds, such as
federation and inter-clouds. In addition to positioning this work in the related
literature (Section 5), we contribute to the advance of the state-of-the-art in
both cloud portability and Model-Driven Engineering (MDE) by: (i) supporting
cloud portability via a common meta-model for cloud computing (Section 2); (ii)
facilitating the visualization and communication of cloud assets amongst di
erent stakeholders by providing a graphical editor (Section 3); and (iii) reducing
the e ort of describing cloud entities in TOSCA cloud standard [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] (Section 4).
2
      </p>
      <sec id="sec-3-1">
        <title>Cloud Meta-model</title>
        <p>
          The meta-model, which describes the domain covered by the language, is the
cornerstone of a DSL. A DSL consists of abstract and concrete syntax | whereas
the abstract syntax de nes the constructs of the language, the concrete syntax
de nes the representation of these constructs [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. For example, the abstract
syntax of the Web Service Description Language (WSDL) de nes a set of
entities and their properties, such as ServiceType and InterfaceType, representing,
respectively, a service exposed to a client, and its interfaces. To specify Services
and Interfaces, one uses XML statements like &lt;service /&gt; and &lt;interface /&gt;.
These XML statements are the concrete syntax of the WSDL.
        </p>
        <p>
          Due to the heterogeneity of cloud platforms and services, creating a cloud
meta-model that covers a broad range of cloud services is not a
straightforward task. To devise a cloud meta-model, we: (i) analysed four sources of
information; (ii) identi ed correspondences amongst similar entities across these
di erent sources; and (iii) combined entities and their relationships into a new
meta-model. Our analysis started with an extensive literature review [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ], in
which we identi ed some critical cloud entities. Next, we leveraged the
contribution of two important standardization e orts, OGF OCCI [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] and DTMF CIMI
[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. We also investigated relevant research projects focusing on cloud portability,
in particular MODAClouds3 and REMICS4. Finally, we examined a wide range
of cloud IaaS services, including Amazon SQS, Microsoft Azure Compute, and
Rackspace Cloud Files. Figure 1 shows our cloud meta-model.
        </p>
        <p>A cloud Platform provides Service, such as computing and storage. A cloud
Platform has a name, such as Amazon Web Services, or OpenNebula. A Service
might be managed through multiple Management Interfaces, which are provided
by cloud Platform. A Management Interface has a type, such as RESTful, or
Query-based, and properties, such as authentication attributes. The Platform is
responsible for the Cloud User management. A Cloud User is identi ed by its
name, and can have several keys to access its Resources. A Service is identi ed by
its name, such as EC2, or Cloud Servers. A Service might be supported by other
service. For example, Amazon EBS and S3 supports Amazon EC2, providing
persistent storage. Each Service might operate in a di erent Region. A Region
represents a wide geographical location, such as Europe or Asia. In addition to</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>3 http://www.modaclouds.eu</title>
    </sec>
    <sec id="sec-5">
      <title>4 http://www.remics.eu</title>
      <p>its name, a Region might have a particular code assigned by the cloud Platform.
This code is represented in this meta-model by the url attribute. A Region might
have several Datacentres, which are identi ed by their names and urls.</p>
      <p>A Service has ServiceOperations. A ServiceOperation represents those
management operations that a Cloud User can perform on its Resource through
a Management Interface, such as sending a message to a queue in a message
queue service. A ServiceOperation is identi ed by its name, such as runInstance
or listImages, for example. Some operations rely on input parameters, such as
the name of image, and region. As these operations are implemented by APIs,
they have a single return value, which might be a list of results, for example. A
Service exists to provide Resources, such as VMs and storage containers. Each
Platform might de ne di erent properties and states for Resources provided by
its Service. However, two properties are present in most of Resources: id and
name. Once the Resource has been created, it is made accessible by one or more
Endpoints. The Resource is available in one of the Region supported by the
Service. One Resource might support another. This is the case of storage containers,
which are used to support a set of les (Resource).</p>
      <p>Some Resources rely on OperationalResource. An OperationalResource
represents internal resources provided by the Service, such as the hardware of a VM,
or the engine of a database service. In addition to the Cloud User credentials,
some services provide further Security Mechanism, such as rewall and
permissions. A Security Mechanism consists of a set of Security Entry. For example, a
le in a storage service might have di erent permissions (SecurityEntry ). Each
SecurityEntry is assigned to the Resource it protects. More sophisticated
mechanisms require further elements, represented in the meta-model by Security Rule.
This is the case of security groups, provided by Amazon EC2.
3</p>
      <sec id="sec-5-1">
        <title>Proof of Concept</title>
        <p>
          To implement our Cloud DSL, we adopted Epsilon5, a suite of languages and
tools for model management operations, such as model transformation and
analysis. The implementation process consisted of four steps: (i) creating the cloud
meta-model using Emfatic, a textual notation for creating Ecore models; (ii)
annotating the meta-model with EuGENia annotations. EuGENia is a tool that
takes advantage of model transformation techniques to mitigate the complexity
of GMF and EMF [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]; (iii) generating the graphical editor using the EuGENia
tool; and (iv) adjusting graphical components, such as gures used to represent
cloud entities. The graphical editor consists of three parts (Figure 2): (i) a
canvas, in which cloud entities and their relationships are represented by graphical
components; (ii) a palette, which presents the cloud meta-model entities; and
(iii) the properties tab, which shows the properties of each selected entity.
        </p>
        <p>To evaluate the expressiveness of our Cloud DSL, we used our Cloud DSL
to describe the Amazon Web Application Hosting (AWAH) reference
architecture6. The reference architecture consists of seven di erent Amazon services,
which provides several resources for a Web application, such as storage and
DNS routing. In order to implement this reference architecture, we hosted the
Java PetStore7 application using the services de ned in the reference. Figure
2 shows the description of two services: Amazon CloudFront and Amazon S3.
Amazon CloudFront is a content distribution service, which routes requests to
the nearest content storage location.</p>
        <p>In this implementation of AWAH reference architecture, we have only one
distribution con gured, which represents a Resource for this service
(Distribution PetPictures ). As Amazon CloudFront does not store the content, it relies on
a storage service, in this case, Amazon S3. The gure shows three resources
provided by Amazon S3: PetPictures, petstorestaticpages, and index.html. Whereas
the rst two resources are buckets, the third is a le. The two buckets are
protected by a Security Entry, de ned using the Security Mechanism
(PERMISSION). The location of PetPictures bucket is explicitly de ned by a Region,
represented by US Standard in this example.</p>
        <p>The concrete syntax of our Cloud DSL represents a ServiceOperation as a
container inside the Service. ServiceOperation might have several parameters. In
this example, the operations described represent those required to operationalise
the AWAH architecture, such as starting an instance. In Figure 2, Amazon S3
operations are hidden in the Service entity (note the \+" signal just below the
service name). Figure 3 (a), shows the Amazon RDS service and the operations
described: launchDBInstance, and terminateDBInstance. Whereas the rst
operation has six parameters, the second has only one. Parameters are represented
by an \i" signal. This notation is used throughout our Cloud DSL to represent
parameters. For example, Figure 3 (b) shows two OperationalResources
(HARD</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>5 http://www.eclipse.org/epsilon/</title>
      <p>6 http://aws.amazon.com/architecture/?nc1=f_cc
7 http://www.oracle.com/technetwork/articles/javaee/petstore-137013.html
WARE and VM IMAGE) which contain particular properties. Figure 3 (c) shows
the properties tab for one cloud Resource (VM INSTANCE).</p>
      <p>Figure 3 (b) shows the Amazon EC2 service, and its related Resource,
DynamicWebSite. This resource is a VM which hosts the dynamic content of the
Java PetStore application. In the properties tab (Figure 3 (c)), it is possible
to see the properties of this resource, such as id (generated by the cloud
platform), and the Cloud User which owns the VM. DynamicWebSite is supported
by two OperationalResources : HARDWARE, and VM IMAGE. Whereas the
former represents the type of instance used, the latter represents the Amazon
Machine Image (AMI) used. The AMI contains the operational system as well as all
applications required to run the Website. Di erent from Amazon S3 (Figure 2),
Amazon EC2 enables specifying a particular datacentre. It is possible to note it
in the Figure 3 (b), just above the globe, which represents a Region. Finally, in
order to access the VM, an endpoint is made available. The concrete syntax for
it is small rings, located just in the right side of DynamicWebSite resource.
4</p>
      <sec id="sec-6-1">
        <title>Towards Simplifying Cloud Services and Resources</title>
      </sec>
      <sec id="sec-6-2">
        <title>Description in TOSCA</title>
        <p>
          Topology and Orchestration Speci cation for Cloud Applications (TOSCA) is
a standard supported by OASIS, and intended to support application
portability across clouds. TOSCA de nes types, that describe applications and cloud
services, and templates that represent instances of these types. The TOSCA
ecosystem comprises: speci cation and run-time environments. Whereas the
former covers both application topology and activity orchestration, the latter is
responsible for processing these speci cations [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. Several companies demonstrated
the bene ts of using TOSCA migrating an application across cloud platforms8.
        </p>
        <p>Despite from the bene ts that TOSCA can provide, describing cloud
resources in a TOSCA speci cation is a cumbersome task. TOSCA does not use
the typical cloud vocabulary, such as services and resources. Instead, it de nes a
set of abstract elements, such as nodes, capabilities, and policies. Although this
strategy enables the speci cation of both cloud and application components, it
complicates the speci cation of cloud platform entities using TOSCA elements,
specially because TOSCA o cial documentation does not de ne how to map
cloud entities to TOSCA elements. In addition, as TOSCA speci cation is
dened as a XML document, it is quite hard to have an overview of cloud entities.</p>
        <p>
          Therefore, we proposed using our Cloud DSL to specify cloud services and
resources for TOSCA speci cation. To this end, we are taking advantage of
MDE techniques, in particular, model-to-model and model-to-text
transformations (MT). As Hermans, Pinzger &amp; van Deursen identi ed in their study [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], a
DSL along with MT techniques contribute to reduce e ort and increase
productivity by automating repetitive tasks, such as code generation. Indeed, Brambilla,
8 https://www.oasisKopen.org/events/cloud/2013/TOSCAdemo
Cabot &amp; Wimmer analyse that code generation can save much e ort for
implementing CRUD operations, which are responsible for 80% of software
functionality in data-intensive applications [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. To achieve these bene ts, we have begun
work on mapping between our cloud meta-model and TOSCA elements.
        </p>
        <p>
          However, this cloud-to-TOSCA mapping is an on-going work, which has
required substantial intellectual and technical e ort. Thus, describing these
mappings is beyond the purposes of this paper. Here, we report on what we want to
achieve once the mapping is complete. Our preliminary analysis has shown that
it is possible to achieve similar results to those reported in [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], in particular,
e ort reduction. Our hypothesis for such statement is underpinned by the fact
that a single cloud entity can be mapped to more than one TOSCA element.
        </p>
        <p>For example, a cloud Service is represented in TOSCA as a TNodeType.
However, as exists dependences between services, they also become a
TCapabilityType and a TRequirementType. For instance, Amazon EC2 relies on Amazon
EBS to store persistent data. Therefore, Amazon EBS provides the storage
capability whereas Amazon EC2 requires such a capability. In addition, a cloud
Service carries information used by TOSCA TNodeTemplate. Thus, writing a
TOSCA speci cation manually would require that those four entities and all
their related information were encoded by a human developer | which is both
a time consuming and an error-prone activity.
5</p>
      </sec>
      <sec id="sec-6-3">
        <title>Related Work</title>
        <p>
          In 2010, Goncalves et al. presented the rst DSL devised speci cally to
describe cloud entities, CloudML [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. CloudML is underpinned in the D-Cloud
context aiming at allowing cloud computing providers to describe both cloud
resources and services, and cloud developers, to describe their computing
requirements. D-Clouds stands for Distributed Clouds, and authors de ne it as
\smaller datacentres sharing resources across geographic boundaries." CloudML
is an XML-based language, and it is based on three requirements: (i)
representation of physical and virtual resources as well as their state; (ii) representation
of services provided; and (iii) representation of developer's requirements. In
contrast to this DSL, our work is not limited to a particular context. As our Cloud
DSL captures essential characteristics of cloud platforms, it can be used to model
di erent types of clouds, such as federation and inter-cloud.
        </p>
        <p>
          In 2011, Liu &amp; Zic presented Cloud#, a textual DSL that enables cloud
providers to describe internal organization of cloud resources [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. Focused on
computing services, their requirements are: (i) to express computation units and
di erent privilege levels of computation; (ii) to allow programmable bidirectional
control and data transfer between computation units; and (iii) to model physical
resources. The two cornerstone entities in their meta-model are CUnit, which
represents a cloud, a virtual machine, or an operating system; and Action, which
de nes a computation task. Di erent from this DSL, which de nes a textual
language to describe computing services, our Cloud DSL provides a graphical
representation of cloud entities, presented in a diagram. Thus, our Cloud DSL
facilitate not only the visualisation of cloud entities, but also the communication
of the cloud strategy amongst di erent levels of stakeholders.
        </p>
        <p>
          In 2012, Alkandari &amp; Paige reported on-going work towards a DSL for
describing and comparing SLAs o ered by di erent cloud providers [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. Authors
came up with two meta-models, one for describing SLAs o ered by cloud provider,
and another to describe SLAs required by cloud users. In addition, an algorithm
was developed to compare models from cloud users to those from cloud providers.
However, this DSL is limited to the rst phase of cloud portability - analysis.
Although our Cloud DSL cannot describe SLAs with the richness of detail as this
DSL does, our Cloud DSL contributes to di erent phases of cloud portability,
such as analysis and migration.
        </p>
        <p>
          Finally, in 2013, Ferry et al. introduced the CloudMF [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. CloudMF aims
at supporting provisioning and deployment of applications in multiple clouds
at run- and design-time. To accomplish this objective, CloudMF covers four
requirements: (i) separation of concerns; (ii) provider independence; (iii)
reusability; and (iv) abstraction. CloudMF consists of two components: (i) CloudML,
the modelling environment (DSL); and (ii) Models@run-time, which provides an
abstract representation of the running system. However, this DSL is limited to
computing and storage services. Our Cloud DSL enables the description of a
wide variety of cloud services, such as message queue, scaling, and DNS routing.
6
        </p>
      </sec>
      <sec id="sec-6-4">
        <title>Conclusion</title>
        <p>This paper introduced a Cloud DSL which supports cloud portability by
describing cloud platform entities. The wide coverage of cloud IaaS services, and our
ongoing work towards the integration of our Cloud DSL and TOSCA, suggest
that our Cloud DSL can cover critical aspects of cloud service speci cation. As
next step, we will investigate literature to identify means of evaluating and
comparing our Cloud DSL to other cloud-related languages. Finally, in our project,
we have been working towards mapping our Cloud DSL to platform-speci c
offerings by mapping entities of cloud meta-model to platform-speci c cloud APIs.
Exploiting these capabilities requires the maintenance of these mappings.
Acknowledgments. This work was funded in part by CNPq - Brazil and EU
FP7 project OSSMETER (Contract #318736).</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>DTMF</surname>
            <given-names>CIMI</given-names>
          </string-name>
          , http://www.dmtf.org/standards/cloud
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Alkandari</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paige</surname>
            ,
            <given-names>R.F.</given-names>
          </string-name>
          :
          <article-title>Modelling and comparing cloud computing service level agreements</article-title>
          .
          <source>In: 1st Intl Workshop on Model-Driven Engineering for High Performance and CLoud computing</source>
          . pp.
          <volume>1</volume>
          {
          <issue>6</issue>
          . ACM Press, New York, USA (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Ardagna</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Di</given-names>
            <surname>Nitto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Mohagheghi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Mosser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Ballagny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>D'Andria</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Casale</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Matthews</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Nechifor</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.S.</given-names>
            ,
            <surname>Petcu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Gericke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Sheridan</surname>
          </string-name>
          ,
          <string-name>
            <surname>C.</surname>
          </string-name>
          :
          <article-title>MODAClouds: A model-driven approach for the design and execution of applications on multiple Clouds</article-title>
          .
          <source>In: 4th Intl Workshop on Modeling in Software Engineering</source>
          . pp.
          <volume>50</volume>
          {
          <fpage>56</fpage>
          . IEEE,
          <string-name>
            <surname>Zurich</surname>
          </string-name>
          (Jun
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Binz</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          , Breitenbucher, U.,
          <string-name>
            <surname>Kopp</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leymann</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <source>TOSCA: Portable Automated Deployment and Management of Cloud Applications. In: Advanced Web Services</source>
          , pp.
          <volume>527</volume>
          {
          <fpage>549</fpage>
          . Springer, New York (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Brambilla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cabot</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Model-Driven Software</surname>
          </string-name>
          Engineering in Practice. Morgan &amp; Claypool Publishers (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Ejarque</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Alvarez</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sirvent</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Badia</surname>
            ,
            <given-names>R.M.:</given-names>
          </string-name>
          <article-title>A Rule-based Approach for Infrastructure Providers' Interoperability</article-title>
          .
          <source>In: IEEE 3rd CloudCom</source>
          . pp.
          <volume>272</volume>
          {
          <fpage>279</fpage>
          . IEEE, Athens (Nov
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Escalera</surname>
            ,
            <given-names>M.F.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chavez</surname>
            ,
            <given-names>M.A.L.</given-names>
          </string-name>
          :
          <article-title>UML model of a standard API for cloud computing application development</article-title>
          .
          <source>In: 9th Intl Conf on Electrical Engineering, Computing Science and Automatic Control</source>
          . pp.
          <volume>1</volume>
          {
          <issue>8</issue>
          . IEEE,
          <string-name>
            <surname>Mexico City</surname>
          </string-name>
          (
          <year>Sep 2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Ferry</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chauvel</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rossini</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Morin</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Solberg</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Managing multi-cloud systems with CloudMF</article-title>
          .
          <source>In: 2nd Nordic Symposium on Cloud Computing and Internet Technologies</source>
          . pp.
          <volume>38</volume>
          {
          <fpage>45</fpage>
          . ACM, Oslo, Norway (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Forum</surname>
            ,
            <given-names>O.G.</given-names>
          </string-name>
          :
          <article-title>Open Cloud Computing Interface (OCCI</article-title>
          ), http://occi-wg.org/
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Goncalves</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Endo</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Santos</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sadok</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kelner</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Melander</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mangs</surname>
            ,
            <given-names>J.E.</given-names>
          </string-name>
          :
          <article-title>CloudML:An Integrated Language for Resource,Service and Request Description for D-Clouds</article-title>
          .
          <source>In: IEEE 3rd CloudCom</source>
          . pp.
          <volume>399</volume>
          {
          <fpage>406</fpage>
          . IEEE, Athens (Nov
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Hamdaqa</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Livogiannis</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tahvildari</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>A reference model for developing cloud applications</article-title>
          .
          <source>In: 1st International Conference on Cloud Computing and Services Science</source>
          . pp.
          <volume>98</volume>
          {
          <fpage>103</fpage>
          . SciTePress,
          <string-name>
            <surname>Noordwijkerhout</surname>
          </string-name>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Hermans</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pinzger</surname>
          </string-name>
          , M.,
          <string-name>
            <surname>van Deursen</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Domain-Speci c Languages in Practice: A User Study on the Success Factors</article-title>
          .
          <source>In: Model Driven Engineering Languages and Systems</source>
          , pp.
          <volume>423</volume>
          {
          <fpage>437</fpage>
          . Springer Berlin Heidelberg, Berlin (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rose</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abid</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paige</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Polack</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Botterweck</surname>
          </string-name>
          , G.:
          <article-title>Taming emf and gmf using model transformation</article-title>
          .
          <source>In: Model Driven Engineering Languages and Systems, LNCS</source>
          , vol.
          <volume>6394</volume>
          , pp.
          <volume>211</volume>
          {
          <fpage>225</fpage>
          . Springer Berlin Heidelberg (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zic</surname>
          </string-name>
          , J.: Cloud#
          <article-title>: A Speci cation Language for Modeling Cloud</article-title>
          .
          <source>In: IEEE 4th CLOUD</source>
          . pp.
          <volume>533</volume>
          {
          <fpage>540</fpage>
          . IEEE, Washington, DC (Jul
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Loutas</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peristeras</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bouras</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kamateri</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zeginis</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tarabanis</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Towards a Reference Architecture for Semantically Interoperable Clouds</article-title>
          .
          <source>In: IEEE 2nd CloudCom</source>
          . pp.
          <volume>143</volume>
          {
          <fpage>150</fpage>
          . IEEE, Indianapolis (Nov
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Mernik</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heering</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sloane</surname>
            ,
            <given-names>A.M.</given-names>
          </string-name>
          :
          <article-title>When and how to develop domain-speci c languages</article-title>
          .
          <source>ACM Computing Surveys</source>
          <volume>37</volume>
          (
          <issue>4</issue>
          ),
          <volume>316</volume>
          {344 (Dec
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Petcu</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <article-title>: Multi-Cloud: expectations and current approaches</article-title>
          .
          <source>In: MultiCloud '13</source>
          . pp.
          <volume>1</volume>
          {
          <issue>6</issue>
          . ACM Press, Prague (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Petcu</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Macariu</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Panica</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Craciun</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Portable Cloud applications|From theory to practice</article-title>
          .
          <source>Future Generation Computer Systems (Jan</source>
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Ranabahu</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maximilien</surname>
            ,
            <given-names>E.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sheth</surname>
            ,
            <given-names>A.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thirunarayan</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>A domain speci c language for enterprise grade cloud-mobile hybrid applications</article-title>
          .
          <source>In: SPLASH '11 Workshops</source>
          . pp.
          <volume>77</volume>
          {
          <fpage>84</fpage>
          . ACM Press (
          <year>Oct 2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Satzger</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hummer</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Inzinger</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leitner</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dustdar</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Winds of Change: From Vendor Lock-In to the Meta Cloud</article-title>
          .
          <source>IEEE Internet Computing</source>
          <volume>17</volume>
          (
          <issue>1</issue>
          ),
          <volume>69</volume>
          {73 (Jan
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Sheth</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ranabahu</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Semantic Modeling for Cloud Computing, Part 1</article-title>
          .
          <source>IEEE Internet Computing</source>
          <volume>14</volume>
          (
          <issue>3</issue>
          ),
          <volume>81</volume>
          {83 (May
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>G.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rose</surname>
            ,
            <given-names>L.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calinescu</surname>
            ,
            <given-names>R.:</given-names>
          </string-name>
          <article-title>A Systematic Review of Cloud Lock-In Solutions</article-title>
          .
          <source>In: IEEE 5th CloudCom</source>
          . pp.
          <volume>363</volume>
          {
          <fpage>368</fpage>
          . IEEE, Bristol,
          <string-name>
            <surname>UK</surname>
          </string-name>
          (Dec
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>