<!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>Model-driven software migration towards ifne-grained cloud architectures</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Distributed Systems Group, University of Bamberg</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2019</year>
      </pub-date>
      <volume>2339</volume>
      <fpage>14</fpage>
      <lpage>15</lpage>
      <abstract>
        <p>s from operational concerns. Building CNAs is the aim of many new software projects, but also of migration projects where an existing system should be transformed to a CNA. A key aspect of such a migration is the architectural transformation to the fine-grained architecture of a CNA which typically means decomposing the existing system.</p>
      </abstract>
      <kwd-group>
        <kwd>model-driven</kwd>
        <kwd>migration</kwd>
        <kwd>cloud-native</kwd>
        <kwd>position paper</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        However, such a decomposition is dificult and rarely supported by structured
approaches or tools. Therefore, it would be beneficial to explore possible structured
approaches for the transformation of existing software systems to the fine-grained
cloud architecture of CNAs to support software engineers engaged in such projects.
This support will remain valuable in the future, because even today it argued
that it is a reasonable procedure to start of with a monolithic architecture [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
A monolithic architecture can then be gradually transformed to a fine-grained
cloud architecture, when complexity grows and demand increases.
      </p>
      <p>
        A promising field of research in this regard is Model-Driven Engineering (MDE)
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. In MDE, models are considered as a key resource for software development
and evolution. For architecture transformations, models can help to focus on
the key aspects of the software architecture and enable a structured and
toolsupported transformation. Although reducing the migration to a fine-grained
cloud architecture to a model-based transformation seems promising, a key
challenge in MDE is the alignment between the actual code and the model. The
transition from code to a model and vice versa should be automated to a large
extent, since manual steps in a MDE-based approach would cause an overhead
and hinder reproducibility.
      </p>
      <p>To explore the applicability of MDE for the migration of existing software
towards fine-grained cloud architectures, the following research questions are
investigated:
– Which model or collection of models can be used to represent an existing
software architecture and a fine-grained cloud architecture?
– What are rules and patterns for the transformation to a fine-grained cloud
architecture and how can they be applied to the identified model or collection
of models?
– How can the generation of models from code, the model-to-model
transformation, and the generation of code from models be efectively supported by
tools?
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        Various research directions can be identified covering diferent aspects of the
proposed research questions. Regarding modeling languages for the cloud, the
available languages [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] focus on the required cloud resources and their
configurations, but not on the complete software architecture, i.e. the relations between
the components and how they interact. These languages can be incorporated
when a migrated application should be deployed to diferent cloud providers,
but for the proposed MDE approach there is no suitable modeling language
yet. Considering MDE-based approaches for software migration, a noteworthy
and comprehensive research project was the ARTIST-project [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] which had the
goal of providing a complete methodology and corresponding tools for migrating
legacy applications to the cloud. While MDE was already used in this project,
their focus was more on the general migration from on-premises deployments to
Model-driven software migration towards fine-grained cloud architectures
cloud deployments without a substantial software architecture transformation.
Furthermore, FaaS oferings enabling fine-grained architectures were not yet
available at the time of the project and were not considered. Regarding research
on the software architecture transformation, i.e., how to split an existing system
into smaller components, only some approaches have been proposed, for example
by Gysel et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. However, the existing approaches do not explicitly employ
MDE. Furthermore, the existing approaches are based on exemplary use cases
and need to be evaluated regarding their validity and general applicability.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>The model-driven approach</title>
      <p>In order to answer the given research questions, this position paper proposes
a model-driven migration of existing software systems to fine-grained cloud
architectures. The basic idea is that a model can be generated representing the
existing system. This model can then be (semi-)automatically transformed to a
model of a fine-grained cloud architecture. Finally, artifacts can be generated from
the transformed model to facilitate the implementation of the new architecture.
Because implementing this approach as a whole is ambitious, it should be
separated into diferent concerns, as represented by the corresponding research
questions. First, a modeling language or collection of languages needs to be defined.
It should enable the modeling of an existing application, the identification of
possibilities for deriving fine-grained components, as well as representing the
resulting fine-grained cloud architecture. Therefore, a key challenge for the
modeling language is to find the right level of abstraction. Next, rules and
patterns for splitting an application into more fine-grained components should be
defined and represented in model transformation rules. Finally, because tools are
seen as a key part of MDE, tools should be provided for creating a model from
code, transforming the model and generating artifacts for the new architecture.</p>
      <p>The approach focuses on the actual execution of a migration. However, it
should be noted that before the actual execution, a careful analysis of the
necessity and usefulness of a migration should be conducted. Not every existing
application should be transformed to a CNA and evaluating the applicability of
a transformation is another important research question. Sometimes also hybrid
applications are sensible where only parts of the existing system are migrated to
be cloud-native. The approach could provide additional insights for this question
as well, but to keep the approach focused, it is assumed that a prior evaluation
has been done.</p>
      <p>That said, there are several further challenges which need to be taken into
account. There exists a large technological heterogeneity for existing applications
and especially cloud-native applications. The aim for this approach would be to
make the models for the existing system and the fine-grained cloud architecture
as generic as possible. Technological diferences are then addressed inside the
steps for generating a model from code and generating artifacts, e.g., through
profiles. Furthermore, when thinking about possibilities to split an application
into smaller components, a purely technical view might suggest several diferent
possibilities with potentially conflicting outcomes. In such cases the business
view rather than the technical view is crucial to make reasonable decisions. The
approach could therefore be semi-automatic and suggest diferent options during
the model transformation phase which could then be decided upon using business
knowledge.</p>
      <p>As a starting point, an exemplary application is manually transformed. During
the manual transformation, requirements for the modeling language and first
transformation rules can be identified. For this exemplary application a specific
technological stack needs to be chosen. The diferences with regard to other
technological possibilities, are considered afterwards. Further applications or
successful migration projects are then considered to iteratively evaluate and
improve the approach.</p>
      <p>In conclusion, transforming applications into fine-grained CNAs is an ongoing
challenge for developers. Providing support for this task through structured
approaches and tooling would therefore be beneficial to developers and to research
on CNAs as a whole.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Baldini</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Castro</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chang</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          , Cheng, P.,
          <string-name>
            <surname>Fink</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ishakian</surname>
          </string-name>
          , V., Mitchell, N.,
          <string-name>
            <surname>Muthusamy</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rabbah</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Slominski</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Suter</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          : Serverless Computing:
          <article-title>Current Trends and Open Problems</article-title>
          . In: Research Advances in Cloud Computing, pp.
          <fpage>1</fpage>
          -
          <lpage>20</lpage>
          . Springer Singapore (
          <year>Jun 2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Bergmayr</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Breitenbücher</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ferry</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rossini</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Solberg</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kappel</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leymann</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>A systematic review of cloud modeling languages</article-title>
          .
          <source>ACM Computing Surveys</source>
          <volume>51</volume>
          (
          <issue>1</issue>
          ),
          <fpage>1</fpage>
          -
          <lpage>38</lpage>
          (
          <year>Feb 2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Dragoni</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Giallorenzo</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lafuente</surname>
            ,
            <given-names>A.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mazzara</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Montesi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mustafin</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Safina</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Microservices: Yesterday, Today, and Tomorrow</article-title>
          .
          <source>In: Present and Ulterior Software Engineering</source>
          , pp.
          <fpage>195</fpage>
          -
          <lpage>216</lpage>
          . Springer International Publishing (Sep
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Gysel</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kölbener</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Giersche</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zimmermann</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>Service Cutter: A Systematic Approach to Service Decomposition</article-title>
          .
          <source>In: Service-Oriented and Cloud Computing</source>
          , pp.
          <fpage>185</fpage>
          -
          <lpage>200</lpage>
          . Springer International Publishing (Aug
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Kent</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Model Driven Engineering</article-title>
          .
          <source>In: Lecture Notes in Computer Science</source>
          , pp.
          <fpage>286</fpage>
          -
          <lpage>298</lpage>
          . Springer Berlin Heidelberg (Apr
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Kratzke</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Quint</surname>
            ,
            <given-names>P.C.</given-names>
          </string-name>
          :
          <article-title>Understanding Cloud-native Applications after 10 Years of Cloud Computing - A Systematic Mapping Study</article-title>
          .
          <source>Journal of Systems and Software 126</source>
          ,
          <fpage>1</fpage>
          -
          <lpage>16</lpage>
          (
          <year>Jan 2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Menychtas</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Konstanteli</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Alonso</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Orue-Echevarria</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gorronogoitia</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kousiouris</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Santzaridou</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bruneliere</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pellens</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stuer</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Strauss</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Senkova</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Varvarigou</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Software modernization and cloudification using the ARTIST migration methodology and framework</article-title>
          .
          <source>Scalable Computing: Practice and Experience</source>
          <volume>15</volume>
          (
          <issue>2</issue>
          ) (
          <year>Jul 2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Nakazawa</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ueda</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Enoki</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horii</surname>
          </string-name>
          , H.:
          <article-title>Visualization tool for designing microservices with the monolith-first approach</article-title>
          .
          <source>In: 2018 IEEE Working Conference on Software Visualization (VISSOFT) (Sep</source>
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Papazoglou</surname>
            ,
            <given-names>M.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Traverso</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dustdar</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leymann</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Service-oriented computing: a research roadmap</article-title>
          .
          <source>International Journal of Cooperative Information Systems</source>
          <volume>17</volume>
          (
          <issue>02</issue>
          ),
          <fpage>223</fpage>
          -
          <lpage>255</lpage>
          (
          <year>Jun 2008</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>