<!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>SOAMIG Project: Model-Driven Software Migration towards Service-Oriented Architectures</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>A. Winter, C. Zillmann</string-name>
          <email>winter@of</email>
          <email>zillmann@of</email>
          <email>{zillmann, winter}@offis.de</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>A. Fuhr, T. Horn, V. Riediger</string-name>
          <email>horn@uni-koblenz.de</email>
          <email>riediger@uni-koblenz.de</email>
          <email>{afuhr, horn, riediger}@uni-koblenz.de</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>A. Herget, W. Teppe, M. Theurer</string-name>
          <email>mtheurer@de.amadeus.com</email>
          <email>{aherget, wteppe, mtheurer}@de.amadeus.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>U. Erdmenger, U. Kaiser, D. Uhlig,</string-name>
          <email>yvonne.zimmermann}@proetcon.de</email>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <country>Amadeus Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Institute for Software Technology (IST), University of Koblenz-Landau</institution>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>OFFIS Oldenburg, Institute for Information Technology</institution>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Y. Zimmermann, pro et con GmbH</institution>
          ,
          <addr-line>{uwe.erdmenger, uwe.kaiser, denis.uhlig</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>-The SOAMIG project aims at developing a general migration process for model-driven migrations towards Service-Oriented Architectures. This paper highlights the model-driven tools developed during the SOAMIG project for two case studies: A language migration from a COBOL transactional server to Java web services, and a second study on an architecture migration from a monolithic Java fat client to a SOA-based JavaEE web application.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Today, companies are facing a growing competition in
their markets. Competitors are forced to achieve higher
flexibility and faster time-to-market in order to survive.
Often, so-called legacy software developed in the
companies can not keep up with this highly dynamic environment
and therefore slows down innovation.</p>
      <p>For this reason, companies are looking for flexible
software concepts supporting fast adaptability to business
changes. A promising approach to achieve the required
flexibility are Service-Oriented Architectures (SOAs).
SOAs encapsulate functionality in coarse-grained,
looselycoupled and reusable units, called services.</p>
      <p>Adopting SOAs, companies do not want to throw away
their existing systems because much money and
knowledge has been put into them. Instead of reimplementing
the service functionality from scratch, companies are
striving to reuse their legacy software as much as possible.
Transferring existing code into a new technology without
changing functionality is called software migration.</p>
      <p>
        The SOAMIG project, partially funded by the German
Ministry of Education and Research (BMBF)1, brings
together both: transition into SOA by migrating the legacy
code. The overall goals are i) to define a reference process
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], ii) to achieve a high degree of automatic code
migration, and iii) to support the migration process by analysis
and transformation tools.
      </p>
      <p>In this project, two universities and two companies have
been involved: the Universities of Oldenburg (OFFIS) and
Koblenz-Landau (IST) supplying reengineering
knowledge and model-driven tools, pro et con, supplying
longtime expertise in industrial migration projects, language
analysis, and migration tools development, and Amadeus
Germany, providing one of the industrial legacy systems
and know-how in migration of large-scaled systems.</p>
      <p>The LCOBOL case study is conducted by pro et con,
one of the industrial partners. The main challenge in this
case study is to yield a very high degree of automation
for a language migration from COBOL to Java. Also,
the resulting Java code has to be understandable and
maintainable. Figure 1 shows the set-up of the tool chain.</p>
      <p>Every COBOL source file is parsed into a fine-grained
abstract syntax graph by the COBOL front-end CobolFE.
CobolFE can handle various COBOL dialects. The main
translation to Java is done by the model-to-model
transformation Cobol2Java. This tool takes the COBOL
model as input. The actual transformation is defined by
many sophisticated rules defining a semantics-preserving
transformation into a Java model. Project specific rules,
e.g., on how to transform specific transaction monitor
calls, amend the language translation. The transformations
are implemented in C++. Finally, Java source code is
generated by JGen and JFormat. JGen takes a model
of a Java translation unit as input and creates syntactically
correct, but only roughly formatted output. JFormat
is a stand-alone, scriptable Java source code formatter
based on the Eclipse JDT formatter and is individually
configurable to various formatting conventions.</p>
    </sec>
    <sec id="sec-2">
      <title>III. RAILCLIENT: ARCHITECTURE MIGRATION</title>
      <p>In the RailClient case study, an architecture migration
from a monolithic Java system into a SOA-based web
application is investigated by all four project partners.
Figure 2 outlines the tools developed in this part of the
SOAMIG project. Amadeus Germany provided the
business case and the subject system, an order management
and booking system for train tickets. OFFIS contributed
to the definition and realization of the target architecture.</p>
      <p>The SOAMIG repository forms a common core of the
tool-chain. In this repository, artifacts used during
migration are stored as models. The main part of the repository
Translator chain</p>
      <p>Cobol2Java
Monolithic legacy system</p>
      <p>Java
code</p>
      <p>maScthaitnees rMepeosssiatogrey pBroucseinsessess
Code generation tools
FGM
Dynamic
Analysis
Toolset
is based on the TGraph technology developed by IST.
TGraphs are a versatile data structure formally defined by
grUML (graph UML). The TGraph technology is generic
and can represent arbitrary artifacts. In SOAMIG, the
tools are integrated by an XML-based exchange format
for metamodels and models.</p>
      <p>
        To ease initial program understanding and
redocumentation, the explorative tool FGM (Flow Graph Manipulator)
by pro et con was used. This partner also provided
JavaFE, an extractor from Java source to fine-grained
abstract syntax graphs stored in the repository. Not only
source code, but also various other parts of the legacy
system, such as automatons controlling GUI behavior,
message descriptions, and redocumented business
processes are combined into one comprehensive model. Links
between these parts are established by static and
dynamic analysis. Static analysis is covered by JavaFE and
GReQL (Graph Repository Query Language). Dynamic
analysis of certain test cases covering the selected business
processes is used to detect relevant portions of the source
code, and to mark service candidates [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>Among the transformation tools in this case study is
GReTL (Graph Repository Transformation Language), a
general-purpose transformation language that allows to
define and execute arbitrary graph transformations. A
system specific DataModelGenerator combines message
descriptions and dynamic traces to compile service specific
data structures for the target architecture.</p>
      <p>The SoamigExtractor tool provides a graphical
interactive user interface to enable model transformations.
Examples are incorporating dynamic traces, pruning
generalization hierarchies, selection and completion (slicing)
of multi-class Java models based on execution traces,
establishment of traceability links between source and target
models, and export of translation unit models to the above
mentioned JGen and JFormat tools. The generated Java
code requires manual rework. It contains human readable
as well as machine processable annotations to link to the
relevant legacy sources.</p>
    </sec>
    <sec id="sec-3">
      <title>IV. CONCLUSION</title>
      <p>Summarizing, a set of powerful model-driven tools
and technologies has been developed to support various
tasks during the migration process. Most of the tools are
independent of the concrete legacy system and are reusable
as-is, others have to be configured or have even been
built from scratch. The SOAMIG repository technology
is largely generic, enabling integration of additional
metamodels and traceability to the already existing parts.</p>
      <p>Every migration project requires adaption and
specialization of process, repository, and tools to the specific
needs of the legacy and target systems, the organizational
requirements, and other factors. While the complete
migration of the case study systems is out of scope of the
project, the model-driven tools have proven to be
applicable in real-world scenarios. Transfer to other business
cases and different migration tasks is an opportunity to
further evolution of the SOAMIG process and technology.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>U.</given-names>
            <surname>Erdmenger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Fuhr</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Herget</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Horn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Kaiser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Riediger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Teppe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Theurer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Uhlig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Winter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Zillmann</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zimmermann</surname>
          </string-name>
          , “
          <article-title>The SOAMIG Process Model in Industrial Applications</article-title>
          ,”
          <source>in Proceedings of the 15th European Conference on Software Maintenance and Reengineering</source>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Mens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Kanellopoulos</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          . Winter, Eds. Los Alamitos: IEEE Computer,
          <year>2011</year>
          , pp.
          <fpage>339</fpage>
          -
          <lpage>342</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A.</given-names>
            <surname>Fuhr</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Horn</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Riediger</surname>
          </string-name>
          , “
          <article-title>Dynamic Analysis for Model Integration (Extended Abstract)</article-title>
          ,
          <source>” SoftwaretechnikTrends</source>
          , vol.
          <volume>30</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>70</fpage>
          -
          <lpage>71</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>