<!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>Framework for Dynamic Architecture Reconfiguration of Cloud Services</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Miguel Zuñiga-Prieto</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Javier Gonzalez-Huerta</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Silvia Abrahao</string-name>
          <email>sabrahao@dsic.upv.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Emilio Insfran</string-name>
          <email>einsfran@dsic.upv.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>ISSI Research Group, Department of Information Systems and Computation Universitàt Politècnica de Valencia Camino de Vera</institution>
          ,
          <addr-line>s/n, 46022, Valencia</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Cloud computing is a paradigm that is transforming the way in which organization
acquire computational resources and is receiving more attention from the research
community. The incremental deployment of cloud services is particularly important in agile
development of cloud services, where successive cloud service increments must be
integrated into existing cloud service architectures. This requires dynamic
reconfiguration of software architectures, especially in cloud environments where services cannot
be stopped in order to apply reconfiguration changes. A model-driven architecture
reconfiguration process uses models to represent architectural and technological concepts
at a high level of abstraction. Then transformations are applied on models to add the
necessary detail in order to generate specific reconfiguration operations. This demands
development efforts that could be alleviated not only by defining the models and
transformation sequences, but also by providing tools that facilitate tasks.</p>
      <p>The aim of this research work is to propose a framework to facilitate the dynamic
architectures reconfiguration of cloud services, triggered by the incremental
deployment of cloud services. The aforementioned aim will be satisfied by dealing with the
following sub-goals, which are:
 Provide a set of tools to support the process of dynamic software architecture
reconfiguration triggered by the deployment of new cloud services.
 Define transformation chains that allow to obtain platform specific
reconfiguration plans, starting from a high level description of how the architecture of a
software increment affect the current cloud service architecture.</p>
      <p>In the next section, we introduce important adaptation concepts applied in this work.</p>
    </sec>
    <sec id="sec-2">
      <title>Background information</title>
      <p>In this section, due to space limitations, we just include the description of important
Software Adaptation Techniques applied in this framework.</p>
      <p>
        Software adaptation patterns represent generic and repeatable solutions to manage
change in recurring architectural adaptation problems, and prescribe the steps needed
to dynamically adapt a software system at runtime from one configuration to another
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. The use of adaptation patterns is a trend to support reuse in evolution for dynamic
adaptive software architecture [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Adaptation of software architectures is not only
supported by change management proposals, but also by proposals for solving the
problems that arise when the interacting entities do not match properly. Software adaptation
promotes the generation of software adaptors to bridge incompatibilities among
services (e.g., different names of methods and services, different message ordering, etc.)
in an nonintrusive way [
        <xref ref-type="bibr" rid="ref3 ref4 ref5">3,4, 5</xref>
        ]. Generation techniques for software adaptors are
beginning to be used in cloud environments [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>Cloud applications integrate and compose different cloud services. The cloud
services to be integrated may come from the delivering of a software increment in an
incremental development approach, or just may be product of maintenance/evolution
phases. When we refer to a software increment, we mean one or more cloud services
than are included in a software increment that need to be effectively deployed.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Proposed Approach and Contributions</title>
      <p>This poster presents a model-driven framework that provides models and tools that
facilitate the dynamic architecture reconfiguration activities followed during the
integration of cloud services. Models allow representing high-level description of how the
Architecture of a Software Increment (ASI) affects the current cloud service
architecture. Transformation chains, establish how to apply consecutive transformations in
order to generate platform specific reconfiguration plans, obtained starting from models..
Finally, tools not only alleviate tasks of specification of models and design of
transformations, but also provide dedicated services to be used during reconfiguration.
3.1</p>
      <p>Reconfiguration Process
The process to which the proposed framework will give support aims to help software
developers during the deployment phase, on activities related to integration of software
increments into existing services in the cloud. This process supports the integration
from an architectural point of view. Its activities support the management of dynamic
reconfiguration of existing cloud services architectures, produced due to the integration
of architectural elements corresponding to the ASI. The main activities of the process
are (see Fig. 1): i) Specify Increments; ii) Check Increment Compatibility; and iii)
Reconfigure Architecture. Below we present a process overview.</p>
      <p>
        In the first activity, Software Architects specify the ASI as well as the impact of the
integration on the current cloud service architecture. The ASI includes: i) information
about structure and behavior of cloud services included in the software increment; ii)
information about how elements of the ASI collaborate to reconfigure the current
architecture; and iii) information about related aspects of architectures of cloud services
[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Next, in the following activity, Software Architects participate in verifying if the
ASI is compatible with the current cloud service architecture. If discrepancies exist
between interfaces of these architectures and it is possible to solve them, Software
Architects apply model-to-text (M2T) transformations to generate skeletons of Software
Adaptors specific for a cloud platform technology. Software Developers complete
Software Adaptors skeletons implementing code to solve discrepancies. Finally, in the last
activity, Software Architects participate in selecting the adaptation patterns best suited
to integrate ASI elements into the current cloud service architecture. Once the
adaptation patterns have been selected, Software Architects apply model transformations to
generate Reconfiguration Plan Specific of Cloud Providerthat operationalize those
adaptation patterns according to the ASI. In the last step of this activity Cloud Specialist,
expert in deployment, integrates the ASI into the current architecture by i) deploying
the Software Adaptors, and ii) using dedicated services to apply the Reconfiguration
Plan Specific of Cloud Provider in corresponding cloud platform. The integration,
dynamically reconfigures instances of the running Actual System Architecture.
      </p>
      <p>Design
Artifacts
in</p>
      <p>SLA
in
in
1</p>
      <p>Current
Architecture</p>
      <p>Model</p>
      <p>in
Increment
Description
Gudelines</p>
      <p>Specify</p>
      <p>Increments
guide out</p>
      <p>Increment
Architecture Model
2
out
Check Increment
Com2patibility</p>
      <p>Cloud
Adaptors</p>
      <p>Actual System
Architecture
In-out
Is Compatible?</p>
      <p>Yes</p>
      <p>In-out
No</p>
      <p>Adaptation
Pattern
Repository
in</p>
      <p>Cloud-Platform
Specific Adaptation</p>
      <p>Operations
in
3
Reconfigure
Architecture</p>
      <p>out
Reconfiguration Plan
Specific of Cloud</p>
      <p>Provider</p>
      <p>
        To support the first activity of the dynamic architecture reconfiguration process (see
Section 3.1), this framework provides to Software Architects a specialized language to
specify the architecture of the software increment. We call it Increment Description
Language (IDL). Service Oriented Architecture Modeling Language (SoaML)[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]
leverages Model Driven Architecture (MDA) and provides a UML profile and meta-model
for the specification of services. However, SoaML does not allow to represent how the
architecture of a software increment affects the existing cloud architecture nor to
specify information related to cloud software architectures. IDL is a Domain-Specific
Language (DSL) that extends SoaML, so IDL meta-model extends the SoaML meta-model
using stereotypes to point out the way in which each element of ASI impacts on current
cloud service architecture. Furthermore, we use tagged values to specify information
related to cloud software architectures.
      </p>
      <p>To support the second and third activity of the dynamic architecture reconfiguration
process (see Section 3.1), this framework identify a set of models and transformation
chains (consecutive transformations) that must be applied to those models. This, in
order to generate platform specific reconfiguration plans, obtained starting from a
highlevel description of how the architecture of a software increment affects the current
cloud service architecture.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Contributions</title>
      <p>A framework for dynamic architecture reconfiguration that properly combines
ModelDriven and Software Adaptation Techniques represents an important step towards the
incremental and dynamic deployment of cloud services into existing cloud service
architectures.</p>
      <p>The first contribution is an Increment Description Language that allows Software
Architects to specify the architecture of the software increment. They will be able to
specify architecture reconfiguration operations (e.g., add service, add connector, etc.)
using a high-level abstraction language. To put it another way, when a Software
Architect specifies the impact of ASI on current architecture, what he/she is really doing is
specifying architecture reconfiguration operations at a high-level of abstraction.</p>
      <p>The second contribution is the definition of Transformation Chains, used to: i)
promote compatibility between the architecture of the increment with the existing cloud
architecture; ii) generate a Reconfiguration Plan Specific of Cloud Provider that applies
adaptation patterns to reconfigure existing cloud architecture.</p>
      <p>Finally, in order to achieve reconfiguration we provide dedicated services. These
services use the information of reconfiguration plans to dynamically reconfigure
instances of the running Actual System Architecture.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Related work</title>
      <p>
        Software evolution based on reconfiguration of software architectures is an active area
of research; however, there are gaps that still need to be covered. Jamshidi et al. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ],
identified a relative lack of contributions for runtime evolution as well as frameworks
to support the reconfiguration process. They found lack of support during the
integration and provisioning stage as well as during deployment stage. In our work, we give
support to the dynamic reconfiguration of software architectures in the deployment
stage of the software life cycle.
      </p>
      <p>
        In this section, due to space limitations, we detail the gaps we found in most relevant
related works [
        <xref ref-type="bibr" rid="ref10 ref11 ref9">9, 10, 11</xref>
        ]. Baresi et al.[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], MOdel-based SElf-adaptation of SOA
systems (MOSES) [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], and Self-architecting Software Systems (SASSY) [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. These
works i) take into account structural and behavioral aspects for reconfiguration; ii) use
SLA or QoS negotiation to discover and select the more suitable service
implementation (instance); and iii) apply dynamic binding for reconfiguration. This means that
reconfiguration improves non-functional properties through perfective changes.
However, adaptive changes (e.g., software increments due to new functionalities) that may
require architecture reconfiguration are not taken into account. They also abstract
models of business requirements or derive high level architectures; however, they do not
take into account the importance of architectural aspects in incremental development
processes [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Despite the fact that the cited approaches propose consistency or
compatibility checking tasks, they do not provide solutions to support deployment on
changing cloud platforms. In addition, those who propose frameworks or support
architecture specification do not consider the architecture of the increment as an
independent entity.
      </p>
      <p>Acknowledgments. This research was supported by the Value@Cloud project
(MICINN TIN2013-46300-R); the Scholarship Program Senescyt, Ecuador; the
Faculty of Engineering, University of Cuenca, Ecuador; and the ValI+D program
(ACIF/2011/235), Generalitat Valenciana.
6</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Gomaa</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hashimoto</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kim</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Malek</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Menascé</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Software Adaptation Patterns for Service-Oriented Architectures</article-title>
          .
          <source>ACM Symposium on Applied Computing</source>
          . pp.
          <fpage>462</fpage>
          -
          <lpage>469</lpage>
          . ACM, New York (
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Jamshidi</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ghafari</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ahmad</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pahl</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>A Framework for Classifying and Comparing Architecture-</article-title>
          <source>Centric Software Evolution Research. 17th European Conference on Software Maintenance and Reengineering</source>
          . pp.
          <fpage>305</fpage>
          -
          <lpage>314</lpage>
          . IEEE,
          <string-name>
            <surname>Genova</surname>
          </string-name>
          (
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Canal</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Poizat</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salaun</surname>
          </string-name>
          , G.:
          <article-title>Model-Based Adaptation of Behavioral Mismatching Components</article-title>
          .
          <source>Softw. Eng. IEEE Trans</source>
          .
          <volume>34</volume>
          ,
          <fpage>546</fpage>
          -
          <lpage>563</lpage>
          (
          <year>2008</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Yellin</surname>
            ,
            <given-names>D.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Strom</surname>
            ,
            <given-names>R.E.</given-names>
          </string-name>
          :
          <article-title>Protocol Specifications and Component Adaptors</article-title>
          .
          <source>ACM Trans. Program. Lang. Syst</source>
          .
          <volume>19</volume>
          ,
          <fpage>292</fpage>
          -
          <lpage>333</lpage>
          (
          <year>1997</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Becker</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brogi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gorton</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Overhage</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Romanovsky</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tivoli</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Towards an Engineering Approach to Component Adaptation</article-title>
          . Springer Berlin Heidelberg (
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Miranda</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guillen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Murillo</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Canal</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <source>Assisting Cloud Service Migration Using Software Adaptation Techniques. 6th Int. Conf. on Cloud Computing</source>
          . pp.
          <fpage>573</fpage>
          -
          <lpage>580</lpage>
          (
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <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>
          . CLOSER. pp.
          <fpage>98</fpage>
          -
          <lpage>103</lpage>
          .
          <string-name>
            <surname>Citeseer</surname>
          </string-name>
          (
          <year>2011</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8. Object Management Group:
          <article-title>Service Oriented Architecture Modeling Language (SoaML)</article-title>
          , http://www.omg.org/spec/SoaML/.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Baresi</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heckel</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thöne</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , Varr´o,
          <string-name>
            <given-names>D</given-names>
            <surname>´</surname>
          </string-name>
          .:
          <article-title>Style-Based Modeling and Refinement of Service-Oriented Architectures</article-title>
          .
          <source>Softw. Syst. Model</source>
          .
          <volume>5</volume>
          ,
          <fpage>187</fpage>
          -
          <lpage>207</lpage>
          (
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Cardellini</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Casalicchio</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grassi</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Lo</given-names>
            <surname>Presti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Mirandola</surname>
          </string-name>
          , R.:
          <article-title>QoS-Driven Runtime Adaptation of Service Oriented Architectures</article-title>
          .
          <source>Proc. 7th Jt. Meet. Eur. Softw. Eng. Conf. ACM SIGSOFT Symp. Found. Softw. Eng</source>
          .
          <volume>131</volume>
          -
          <fpage>140</fpage>
          (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Menascé</surname>
            ,
            <given-names>D.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gomaa</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Malek</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sousa</surname>
            ,
            <given-names>J.P.:</given-names>
          </string-name>
          <article-title>SASSY: A Framework for SelfArchitecting Service-Oriented Systems</article-title>
          . Software, IEEE.
          <volume>28</volume>
          ,
          <fpage>78</fpage>
          -
          <lpage>85</lpage>
          (
          <year>2011</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Babar</surname>
            ,
            <given-names>M.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brown</surname>
            ,
            <given-names>A.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mistrik</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Making Software Architecture and Agile Approaches Work Together: Foundations and Approaches</article-title>
          .
          <source>Agile Software Architecture: ligning Agile Processes and Software Architectures</source>
          . pp.
          <fpage>1</fpage>
          -
          <lpage>22</lpage>
          . Morgan Kaufmann (
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>