<!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>Towards Model-Defined Cloud of Clouds</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Xiaodong Zhang</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mauricio Tsugawa</string-name>
          <email>tsugawa@acis.ufl.edu</email>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ying Zhang</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Hui Song</string-name>
          <email>hui.song@sintef.no</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Chun Cao</string-name>
          <email>caochun@nju.edu.cn</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Gang Huang</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jose Fortes</string-name>
          <email>fortes@acis.ufl.edu</email>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Nanjing University</institution>
          ,
          <country country="CN">China</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Peking University</institution>
          ,
          <country country="CN">China</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>SINTEF</institution>
          ,
          <country country="NO">Norway</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>University of Florida</institution>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>With the growth in the number of Cloud Service Providers, many enterprises and organizations are now able to use multiple Cloud platforms in order to achieve improved overall Quality of Service (QoS), reliability and cost efficiency. However, due to the diversity in architecture and functionalities among different Cloud platforms, it is difficult to build a system that simultaneously manages multiple Clouds, i.e., a Cloud of Clouds. In this paper, we present a model-defined approach to the development of a Cloud of Clouds, and a real case study to demonstrate its feasibility.</p>
      </abstract>
      <kwd-group>
        <kwd>model-defined</kwd>
        <kwd>Cloud of Clouds</kwd>
        <kwd>runtime model</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>With the growth in the number of Cloud Service Providers, many enterprises and
organizations can use and combine services from multiple providers. The use of
multiple Clouds brings many advantages: cost optimization, Quality of Service (QoS)
improvements, high availability, avoiding vendor lock-in, disaster recovery and so on.
Due to differences in services and exported interfaces (APIs), current practice is to
interact with each Cloud separately: e.g., use CloudStack tools to interact with
CloudStack Clouds and use VMware vCloud to interact with VMware Clouds. While this
approach does not require additional software development, it has many
disadvantages: administrators may need to continually switch among two or more
completely different Cloud systems, the global and unified view of all available resources
is not provided, and different Clouds do not interact with each other.</p>
      <p>In order to efficiently use resources and services from multiple Cloud providers,
there is a need for a management system that can interact with different Clouds
offering a unified view of the entire system. Such management system is often referred as
inter-Cloud, sky computing, or “Cloud of Clouds”.</p>
      <p>There are many challenges to the development of Cloud of Clouds. This work
focuses on three main challenges: (1) each Cloud system has its own way of organizing
resources, and exposes different management interfaces, making it difficult to develop
an integrated and unified management system; (2) Cloud providers are physically
located on geographically separate sites, and a networking system that can be
dynamically reconfigured is needed to enable the interaction among different Clouds; and
(3) there are different personalized management requirements consisting of specific
scenarios and appropriate management styles.</p>
      <p>
        A runtime model is a causally connected self-representation of the associated
systems. We have developed a model-based runtime management tool called SM@RT
(Supporting Model AT Run Time [
        <xref ref-type="bibr" rid="ref6 ref7">6,7</xref>
        ]), which provides the synchronization engine
between a runtime model and its corresponding running system.
In recent years, the interest in Cloud of Clouds has been increasing both in academia
and industry. Some libraries such as Apache jclouds and Apache Libcloud provide
abstraction layers facilitating the provisioning and deployment of multiple Cloud
systems through a unified interface. They support numerous IaaS providers such as
OpenStack, CloudStack, Eucalyptus and Rackspace. Commercial products and
research projects such as RightScale and EnStratus also adopt a similar approach. While
these products and projects effectively foster their deployment and maintenance, they
remain on the code-level, which makes redesign difficult and error-prone. Liu et.al.
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] propose a Multi-Cloud management platform that locates between Cloud users
and Cloud sites and provides unified Cloud services from the SOA perspective. Ferry
et.al. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] propose a model-based framework called CLOUDMF to manage multiple
Clouds. Liu and Ferry’s work are on a higher level, but both lack the support of
interCloud network connection. Houidi et.al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] present a Cloud broker framework to
enable inter-Cloud links between two different Clouds by using OpenFlow
technology, however, it needs the network infrastructure to support OpenFlow, which is
currently not widely deployed. Riteau et.al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] present an approach to building dynamic
computing infrastructures over distributed Clouds and propose an inter-Cloud live
migration mechanism called Shrinker. It shows good inter-Cloud network
performance, however, it uses Nimbus to achieve the unified management of multiple
Clouds, which is at code-level and not flexible to meet personalized requirements.
3
      </p>
    </sec>
    <sec id="sec-2">
      <title>Example</title>
      <p>We use an example to illustrate the proposed approach. There are two Cloud systems
in different geographical locations: a Cloud managed by PKU InternetwareCloud2,
and a Cloud managed by OpenStack3.
2 A IaaS Cloud system. The Cloud website: http://internetwarecloud.acis.ufl.edu
3 The Cloud website: https://openstack.futuregrid.tacc.utexas.edu/horizon</p>
      <sec id="sec-2-1">
        <title>3.1. Construct the runtime models of both Clouds and ViNe</title>
        <p>First, we construct the architecture-based meta-model and the access model, as shown
in fig.2 (which illustrates the meta-model of InternetwareCloud). Although the
architecture-based meta-model is constructed as an Ecore model, the equivalent UML
model without the attributes of each class is shown for a better presentation. In this
particular case, we abstract the following elements: Cloud, Domain,
ComputeOffering, DomainUser, DomainAdmin, Project, VirtualMachine, Template, and Volume.
The access model describes how to access and manipulate these elements. Taking the
meta-model and the access model as input, SM@RT tool can automatically generate
the runtime model.</p>
      </sec>
      <sec id="sec-2-2">
        <title>3.2. Construct the composite model through model merge</title>
        <p>
          In order to manage both Clouds in a unified way, we merge the runtime models of
InternetwareCloud and OpenStack Cloud to construct the composite model. The
composite model integrates all the managed elements and their management methods. We
also propose a data synchronization mechanism between the Cloud models and the
composite model. More details can be found in [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>3.3. Transform the composite model to the customized model</title>
        <p>The composite model is an aggregation of the runtime models of each Cloud and
ViNe. In order to meet the personalized management requirements of the Cloud of
Clouds, we use the model transformation to transform the composite model to the
customized model. The transformation is based on a set of mapping rules between the
two models. Figure 3 shows the managed elements in the customized model. For
example, the element of “Cloud” is transformed to the element of “CloudofClouds”. The
elements of “Tenant” and “VirtualNetwork” are transformed to the elements of
“Project”. The elements of “Server”, “VirtualRouter” and the elements of “Volume”
whose attribute “volume_type” is “root” are transformed to the element of “VM”.</p>
      </sec>
      <sec id="sec-2-4">
        <title>3.4. Inter-Cloud network connection</title>
        <p>ViNe is a user-level virtual network software developed at the University of Florida.
The ViNe network consists of a set of Virtual Networks (VNs). Each VN consists of a
set of Virtual Routers (VRs). Any machine deployed with ViNe software can serve as
a VR and VRs in the same VN have network connection with each other. In this case
study, every VM serves as a VR. We transform the elements of “VirtualRouter” and
the elements of “Server” to the elements of “VM”. Every time an element of “VM” is
created on the customized model, an element of “VirtualRouter” will be created on
the runtime model of ViNe, and the ViNe software will be configured automatically
on this VM. By using our approach, the administrators don’t have to do the virtual
network configuration manually, which can be complex and error-prone.
4</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Conclusion and Future Work</title>
      <p>In this paper, we presented a model-defined approach to the development of a Cloud
of Clouds. Through model construction, model merge and model transformation,
multiple Clouds can be managed in a unified and personalized manner. By merging
with the runtime model of ViNe, inter-Cloud communication is enabled in the
modeldefined Cloud of Clouds, which considerably reduces the need for user interventions.</p>
      <p>In a runtime model, all the resources are modeled as managed elements and all the
management interfaces are abstracted as manipulations on the elements. From this
perspective, there’s no difference between developing based on system management
interfaces with developing based on runtime models in regards to feasibility. In our
approach, we also guarantee the synchronization between the customized model, the
composite model and the distributed models. Therefore, our approach is feasible.</p>
      <p>We plan to leverage the developed base system to implement advanced
management tasks such as virtual machine placement in a Cloud of Clouds environment.
ACKNOWLEDGMENT. This work is supported by the National High Technology
Research and Development Program of China (863 Program) under Grant No.
2013AA01A208; the National Natural Science Foundation of China under Grant No.
61361120097 and No. 61300002.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          , et.al.
          <article-title>Multi cloud management for unified cloud services across cloud sites</article-title>
          .
          <source>CCIS</source>
          <year>2011</year>
          . IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Ferry</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          , et.al.
          <article-title>Managing multi-cloud systems with CloudMF</article-title>
          .
          <source>In Proceedings of the Second Nordic Symposium on Cloud Computing &amp; Internet Technologies</source>
          (pp.
          <fpage>38</fpage>
          -
          <lpage>45</lpage>
          ). ACM.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Houidi</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          , et.al.
          <article-title>Cloud service delivery across multiple cloud platforms</article-title>
          .
          <source>SCC</source>
          <year>2011</year>
          . IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Tsugawa</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , et.al.
          <article-title>A virtual network architecture for grid computing</article-title>
          .
          <source>IPDPS</source>
          <year>2006</year>
          . IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>P.</given-names>
            <surname>Riteau</surname>
          </string-name>
          .
          <article-title>Building dynamic computing infrastructures over distributed clouds</article-title>
          .
          <source>NCCA</source>
          <year>2011</year>
          . IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>H.</given-names>
            <surname>Song</surname>
          </string-name>
          , et.al.
          <source>Generating Synchronization Engines between Running Systems and Their Model-Based Views. Models in Software Engineering, Pages</source>
          <volume>140</volume>
          -
          <fpage>154</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>H.</given-names>
            <surname>Song</surname>
          </string-name>
          , et.al.
          <article-title>Inferring Meta-Models for Runtime System Data from the Clients of Management APIs</article-title>
          .
          <source>MODELS</source>
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>X.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Yao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Huang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Lin</surname>
          </string-name>
          .
          <article-title>Runtime Model Based Management of Diverse Cloud Resources</article-title>
          . MODELS2013
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>