<!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>Continuous Migration of Mass Customized Applications</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Michiel Overeem</string-name>
          <email>michiel.overeem@afas.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Leusden</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>The Netherlands</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Utrecht University</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Utrecht</institution>
          ,
          <country country="NL">The Netherlands</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>ion, and thus forgoes on the increase of quality and productivity. In this research we study model-driven engineering environments in which the application is generated from a model. Whenever models or parts of these model-driven engineering environments evolve, the goal is to automatically migrate the application and data as well. In order to reach this goal, we formulate three solution approaches. First of all a categorization of migration triggers that can occur is discussed, to increase the understanding of the context of the migration. Migration triggers can be handled with different migration strategies. Secondly, we discuss the integration of the microservice architecture style to achieve fine-grained incremental migration. Finally, we discuss event sourcing as a software architecture pattern to mitigate the complexity of data migrations. Through these solution approaches we present our work in progress on continuous migration for mass customized applications.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        Model-driven engineering (MDE) is a known approach for
increasing both the quality and productivity of software
development teams. According to Díaz et al. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] these improvements
are achieved by raising the level of abstraction. MDE tools
can also enable business analysts to take a more active role in
the development process. The application of MDE, however,
is not only positive. Multiple experience reports, such as those
      </p>
      <p>
        This work is a result of the AMUSE project. See amuse-project.org for
more information.
by Tolvanen and Kelly [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and Paige and Varró [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], discuss the
challenges and the effort it takes to create MDE tools. Clark
and Muller [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] report on two startups around MDE tools and
the lessons learned from those startups.
      </p>
    </sec>
    <sec id="sec-2">
      <title>Our research focuses on MDE for enterprise software appli</title>
      <p>
        cations (ESAs). Fowler [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] states “Enterprise applications are
about the display, manipulation, and storage of large amounts of
often complex data and the support or automation of business
processes with that data.” According to Gartner [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] examples of
      </p>
    </sec>
    <sec id="sec-3">
      <title>ESAs are CRM and ERP software. The characteristics of ESAs</title>
      <p>are distinct from for instance games and result in different
requirements for application migration.</p>
      <p>
        We believe that the model-centric approach of MDE is
especially promising for ESAs. Brown [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] defines the
modelcentric approach as “the system models have sufficient detail
to enable the generation of a full system implementation from
the models themselves". The first promise is the increase
of productivity and quality. ESAs often contain repetitive
patterns of functionality, such as the maintenance of data.
      </p>
    </sec>
    <sec id="sec-4">
      <title>MDE increases the productivity by generating the software for</title>
      <p>every instance of these patterns. Not only can MDE increase
the productivity by deriving these components from a model,
it also increases the quality of those components by doing it
consistently.</p>
      <p>
        The second promise is flexibility, or mass customization
(as discussed by Krueger [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]) for multi-tenant ESAs. Through
the model it is possible to mass customize the developed
software applications. Mass customization allows software
producing organizations (SPOs) to efficiently produce and
maintain multiple similar software products. Through MDE
the similarities between these products can be exploited while
the variations are managed through models.
      </p>
    </sec>
    <sec id="sec-5">
      <title>The third promise is that of self-service. Not only SPOs</title>
      <p>want to customize the software, customers (tenants) want to
customize their own application to support their business
processes. Tenants want to be in control and make the
customization themselves.</p>
    </sec>
    <sec id="sec-6">
      <title>Multi-tenant ESAs can be developed with MDE through</title>
      <p>
        Model-Driven Engineering Environments (MDEEs). As stated
in our earlier research (Overeem et al. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]), MDEEs implement
the model-centric approach. One of the challenges in MDEEs
is the continuous migration of mass customized applications.
adds
modeler
interacts
      </p>
    </sec>
    <sec id="sec-7">
      <title>We specifically focus on those MDEEs that allow the user</title>
      <p>to also take the role of the modeler. Without intervention of
Migration is defined as the steps that need to be executed the SPO and its engineers and administrators, the user should
to make the actual deployment of an application reflect the be able to evolve the application through model evolution. This
desired deployment. Examples of application migrations can results in more agility for the customer organization, they will
be the re-generation of the application to reflect an evolved not be dependent on the SPO for the continuous development
model, it could be the migration to a new version of the virtual of their application (at least within the capabilities of the
machine, or even the migration to a new cloud provider. model). Therefore our research focuses on four operational
requirements for the migration of applications: automation,
II. MODEL-DRIVEN ENGINEERING ENVIRONMENTS performance, availability, and safety.</p>
      <p>First, the migration should be automated. With automated,</p>
      <p>
        Model-driven engineering environments (MDEEs) allow the we mean that the required migration steps should be derived
design and develop of software using the MDE approach. While from the migration trigger. At no point should an engineer
there are different variation points, all MDEEs share three manually analyze the required migration and develop custom
characteristics. First, they serve three key personas: the modeler, software to execute the migration. The automation will allow
the administrator, and the user. The engineer is involved as the the user/modeler to evolve the application without support of
fourth persona, but this person is not served by the MDEE, the SPO.
but builds and maintains it. Second, three key artifacts are Second, the migration should be performant. Research on
produced in the MDEE: the model, the application package, and live programming is rapidly gaining traction (see for instance
the application instance. Third, an MDEE offers four essential the work of van Rozen and van der Storm [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] and Kubelka
system functions: the modeling environment, the transformation et al. [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]). While we do not aim for a live feedback loop, we
environment, the management environment, and the runtime believe that faster feedback will improve the usability of the
environment. The MDEE concept is visualized by Fig. 1. MDEE, supporting agile development of the application.
      </p>
      <p>The modeler uses the modeling environment to produce the Third, the migration should not negatively effect the
model. The modeling environment varies between different availability of the application. We aim for a fully automated
MDEEs, examples are graphical or text based modeling envi- continuously migration, meaning that scheduling should not be
ronments. Versioning, sharing, and collaboration are features necessary. Migration can thus happen on inconvenient moments
that could be offered, but are not essential for the MDEE. The (from a business perspective), and therefore should not be
essential function is the production of the model. noticed by the users. We do not expect users to asses the</p>
      <p>
        The modeler persona represents different types of modelers, impact of changes on the availability, and therefore aim to let
we identified four types of modelers in earlier research the migration have no impact at all.
(Overeem et al. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]): laymen, technical business users, sql
experts, and developers.
      </p>
      <p>The model is processed by the transformation engine which
generates an application package. The application package
takes on different formats, for example binaries when code
generation is used.</p>
      <p>The application package is input for the management
environment. One of the responsibilities of the management
environment is the deployment the application package. Through
the deployment the application instance is created. The
management environment is responsible for managing the
application instances. Migration of applications, caused by
different triggers, is executed by this environment. The intent
of the management environment is to automate this process,
however, the administrator can also use the management
environment to execute manual tasks.</p>
      <p>The application instance is executed by the runtime
environment. This runtime environment consists of infrastructure
(such as operating systems and database platforms), services,
frameworks, and other components required to execute the
application instance. The third persona, the user, interacts
with this environment to execute the features offered by the
application.</p>
    </sec>
    <sec id="sec-8">
      <title>III. REQUIREMENTS FOR CONTINUOUS MIGRATION</title>
      <p>Model changes
the regulations are part of the model) or to runtime environment
changes (when the regulations influence technical decisions).</p>
      <p>However, due to scope restrictions these are not discussed at
this point. We discuss three of the identified triggers and a
possible migration strategy as examples.</p>
      <p>The first and maybe most essential trigger is the change of
a model by the modeler. The changed model is processed to
produce a changed application package, and this application
package needs to be redeployed in order to upgrade the
application instance. The change of the model could also be
triggered by a meta-model change or a change to the modeling
environment. In the last two cases, all existing models could
be changed instead of a single model.</p>
      <p>A second trigger is a change to the transformation
environment. Whenever the model transformations are changed,
existing models need to be reprocessed to produce updated
application packages. Again, those updated packages need to
be redeployed in order to upgrade the instances.</p>
      <p>The third trigger that we discuss as an example is a change
to the runtime environment. When a change to the runtime
environment causes changes to the application instance, the
management environment also needs to change. Therefore
the application needs to be migrated, in fact, all deployed
applications need to be migrated.
Legend Event SEtavretnintg Leads to Pleoasdssibtloy theAinsteecgornadtiosnoluotfiotnheapmpircoraocshervthicaet warechairteectfuorceussintygleo.nWies
believe that this architecture style makes it possible to achieve
fine-grained incremental migration. The integration of this
architecture style manifests itself in two ways.</p>
      <p>First of all, the runtime environment should be able to
lFeiagduirneg2t.o apAplciclaastsioifincmatiigornatoiofnm.igration triggers: changes from the MDEE host distributed microservices. The benefits of this are an
improved upgradability, scalability, resilience, and resource
sharing. The improved upgradability is the most important:</p>
      <p>Finally, the migration should be safe. It should not be the possibility of updating a single service without affecting
possible to deploy an application that does not respond, causes the other services. The microservices make it possible to do
unexpected data-loss, or makes the application non-functional fine-grained migrations.
in some other manner. While not necessary, we believe that this style needs to
percolate all the way through to the meta-model. When</p>
      <p>
        IV. A CATEGORIZATION OF MIGRATION TRIGGERS the engineers enforce thinking in clear boundaries, smaller
A complete categorization of the migration triggers and independent model elements will arise in the meta-model.
the migration strategies is necessary to develop a MDEE These smaller model elements again help to transform the
that supports continuous migration of application. Migration model into microservices.
triggers originate from within the MDEE and require the Second, the transformation environment should consist of
migration of one or more applications. The triggers are caused independent microservices. This enables incremental
transforby requirements that are implemented by different personas mation of the model through the pattern Incrementality by
taking action. These requirements are added by the modeler, traceability as described by Varró [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
administrator, or user of the MDEE (see Fig. 1).
      </p>
      <p>
        Fig. 2 show an initial categorization of the triggers that occur VI. DATA MIGRATION IN EVENT STORES
in the MDEE and (possibly) cause an application migration. We In earlier work (Overeem et al. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]) we researched data
recognize that the requirements that cause these triggers (such conversion in event sourcing and proposed a framework
as changing market requirements or strategic business changes) to execute these conversions. Event sourcing is a software
are important. For instance regulatory requirements lead to architecture pattern in which not the current state of an
market requirements which can lead to model changes (when application is stored, but every change leading to the current
state is stored as a log of changes. These events can be used
to derive the current state, but they can also show how that
state was reached. Common in event sourced systems is the
usage of multiple data models. The first data model is the event
store, the store with all state changes. It is the most important
data model, and recognized as the source of truth for the state.
      </p>
      <p>The other data models (which can be as many as required) are
derived from these events. Examples are for instance:
a relational data model with the current state of the
application,
a full text search index, and
a timeline showing the history of certain objects.</p>
      <p>Migration of applications in an MDEE do not only impact
the application, but also the application state. The data that
is stored by the application might need to be converted to
conform to the new desired state. We believe that adopting event
sourcing in the runtime environment of the MDEE simplifies
data migration. In event sourced systems only the events need
to be transformed, because all other data models can be derived
from these events. We believe that in many scenarios these
events do not require migration, and thus data migration in
MDEEs is less complex when using event sourcing.</p>
    </sec>
    <sec id="sec-9">
      <title>VII. RELATED WORK</title>
      <p>
        Meijler et al. [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] research fine-grained evolution for
generated applications. However, they take the viewpoint of a single
application, instead of a multi-tenant MDEE with multiple
applications. The integration of the model environment and
the runtime environment is seen by Meijler et al. [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] as
crucial to achieve fine-grained evolution. The solution they
descibe is focused on Model-Driven Architecture (MDA) and
the JVM environment. We propose a separate management
environment instead of a tight integration of the model and
runtime environment. Our approach is less coupled to specific
technology or meta-models.
      </p>
      <p>
        Bruneliere et al. [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] propose Modeling as a Service (MaaS),
the synergy of cloud computing and MDE. The research agenda
they propose focuses on bringing (parts of) the MDEE to the
cloud, such as the modeling environment and the transformation
engine. The (continuous) migration of resulting applications
is not mentioned. Popoola et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] survey different MDE
tools and if they are capable of delivering MaaS functionality.
This research too focuses on the modeling and transformation
functions of the MDEE.
      </p>
      <p>
        Scalable MDE is researched by Rajbhoj and Kulkarni [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ],
Kolovos et al. [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], Cuadrado and de Lara [19]. Rajbhoj
and Kulkarni [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] focuses on the scalability of modeling:
collaboration and model management. Kolovos et al. [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]
define a research agenda for scalable MDE, in which they
focus on language design, transformation, collaboration, and
persistence. Cuadrado and de Lara [19] specifically research
model transformations, and how they can be made streaming.
      </p>
      <p>Our solution proposes integration of the microservice
architecture in the MDEE. Sorgalla et al. [20] discuss how
microservices can be generated from MDE platforms. Their
research group has published more related research:
Diepenbrock et al. [21], Rademacher et al. [22], Wizenty et al. [23].
They focus on the team organization and autonomy.</p>
    </sec>
    <sec id="sec-10">
      <title>VIII. CONCLUSION</title>
    </sec>
    <sec id="sec-11">
      <title>This paper discusses the research that we are conducting</title>
      <p>on continuous migration of applications. This challenge is
prominent in MDEEs that are used to develop and execute
ESAs. The promises offered by MDEEs for ESAs (increased
quality, productivity, and flexibility) are only delivered when
the challenge of continuous migration is solved. We discussed
three solution approaches.</p>
      <p>First of all, a categorization of migration triggers including
possible migration strategies. This categorization increases the
understanding of the challenge. Optimized strategies can be
developed when the challenges are clear.</p>
      <p>Second, the integration of the microservice architecture
style in the MDEE makes fine-grained incremental migration
possible. The runtime environment benefits from loosely
coupled microservices, because it increases scalability and
flexibility. Instead of re-deploying the complete application on
every migration trigger, the microservices allow to update only
part of the application.</p>
      <p>Finally, the adoption of event sourcing in the runtime
environment removes complexity from the data migration
challenge. The essential characteristic of event sourcing is
that every state change is stored as an event. Data models used
to present the state of the application are derived from these
events. As a result of this approach, these data models are
volatile and can be rebuild when needed. These data models
thus do not require migration.</p>
      <p>These three solution approaches are based on an ongoing
case study at AFAS Software. They form the hypotheses that
direct our research. These three solution approaches tackle the
challenge of continuous migration from different angles.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>V. G.</given-names>
            <surname>Díaz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. R. N.</given-names>
            <surname>Valdez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. P.</given-names>
            <surname>Espada</surname>
          </string-name>
          ,
          <string-name>
            <given-names>b. C. P. G.</given-names>
            <surname>Bustelo</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. M. C. Lovelle</surname>
            , and
            <given-names>C. E. M.</given-names>
          </string-name>
          <string-name>
            <surname>Marín</surname>
          </string-name>
          , “
          <article-title>A brief introduction to model-driven engineering</article-title>
          ,” Tecnura, vol.
          <volume>18</volume>
          , no.
          <issue>40</issue>
          , pp.
          <fpage>127</fpage>
          -
          <lpage>142</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>J.-P.</given-names>
            <surname>Tolvanen</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Kelly</surname>
          </string-name>
          , “
          <article-title>Model-Driven Development Challenges and Solutions - Experiences with Domain-Specific Modelling in Industry,”</article-title>
          <source>Proceedings of the 4th International Conference on ModelDriven Engineering and Software Development</source>
          , no.
          <source>January</source>
          , pp.
          <fpage>711</fpage>
          -
          <lpage>719</lpage>
          ,
          <year>2016</year>
          . [Online]. Available: http://www.scitepress.org/DigitalLibrary/Link. aspx?doi=10.5220/0005833207110719
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>R. F.</given-names>
            <surname>Paige</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Varró</surname>
          </string-name>
          , “
          <article-title>Lessons learned from building model-driven development tools</article-title>
          ,
          <source>” Software &amp; Systems Modeling</source>
          , vol.
          <volume>11</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>527</fpage>
          -
          <lpage>539</lpage>
          ,
          <year>2012</year>
          . [Online]. Available: http://link.springer.
          <source>com/10. 1007/s10270-012-0257-9</source>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>T.</given-names>
            <surname>Clark</surname>
          </string-name>
          and
          <string-name>
            <given-names>P. A.</given-names>
            <surname>Muller</surname>
          </string-name>
          , “Exploiting model
          <string-name>
            <given-names>driven N.</given-names>
            <surname>Matragkas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. F.</given-names>
            <surname>Paige</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Guerra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. S.</given-names>
            <surname>Cuadrado</surname>
          </string-name>
          ,
          <article-title>technology: A tale of two startups,” Software</article-title>
          and
          <string-name>
            <surname>Systems J. De Lara</surname>
            ,
            <given-names>I. Ráth</given-names>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Varró</surname>
          </string-name>
          , “A research Modeling, vol.
          <volume>11</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>481</fpage>
          -
          <lpage>493</lpage>
          ,
          <year>2012</year>
          .
          <article-title>roadmap towards achieving scalability in model driven</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M.</given-names>
            <surname>Fowler</surname>
          </string-name>
          , Patterns of Enterprise Application Architec- engineering,”
          <source>Proceedings of the Workshop on Scalability ture. Addison-Wesley</source>
          ,
          <year>2002</year>
          . in Model Driven Engineering - BigMDE '13, pp.
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          ,
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Gartner</surname>
          </string-name>
          , “Enterprise Application Software,”
          <year>2012</year>
          .
          <year>2013</year>
          . [Online]. Available: http://dl.acm.org/citation.cfm? [Online]. Available: https://www.gartner.com/it-glossary/ doid=2487766.2487768 enterprise-application-software [19]
          <string-name>
            <given-names>J. S.</given-names>
            <surname>Cuadrado</surname>
          </string-name>
          and J. de Lara, “Streaming model trans-
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>A. W.</given-names>
            <surname>Brown</surname>
          </string-name>
          , “
          <article-title>An introduction to Model Driven formations: Scenarios, challenges and initial solutions,” Architecture,”</article-title>
          <source>The Rational Edge</source>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>16</lpage>
          ,
          <year>2004</year>
          . in International Conference on Theory and Practice of [Online]. Available: http://www.ibm.com/developerworks/ Model Transformations. Springer,
          <year>2013</year>
          , pp.
          <fpage>1</fpage>
          --
          <lpage>16</lpage>
          . rational/library/3100.html [20]
          <string-name>
            <given-names>J.</given-names>
            <surname>Sorgalla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Rademacher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Sachweh</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Zündorf</surname>
          </string-name>
          ,
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>C.</given-names>
            <surname>Krueger</surname>
          </string-name>
          , “
          <article-title>Easing the Transition to Software Mass “On Collaborative Model-driven Development of Customization</article-title>
          ,” in International Workshop on Software Microservices,” in MSE Workshop @ STAF2018,
          <year>2018</year>
          , pp.
          <string-name>
            <surname>Product-Family Engineering</surname>
          </string-name>
          . Springer,
          <year>2002</year>
          , pp.
          <fpage>282</fpage>
          -
          <issue>1</issue>
          -8. [Online]. Available: http://arxiv.org/abs/
          <year>1805</year>
          .01176 293. [Online]. Available: http://link.springer.com/10.1007/ [21]
          <string-name>
            <given-names>A.</given-names>
            <surname>Diepenbrock</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Rademacher</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Sachweh</surname>
          </string-name>
          , “An 3-
          <fpage>540</fpage>
          -47833-7{_
          <article-title>}25 Ontology-based Approach for Domain-driven Design of</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Overeem</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Jansen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Fortuin</surname>
          </string-name>
          , “Generative Microservice Architectures,”
          <article-title>INFORMATIK 2017, no. versus interpretive model-driven development: Moving September</article-title>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          ,
          <year>2017</year>
          . past 'It depends',” in Communications in Computer and [22]
          <string-name>
            <given-names>F.</given-names>
            <surname>Rademacher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Sorgalla</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Sachweh</surname>
          </string-name>
          , “
          <source>Challenges Information Science</source>
          , vol.
          <volume>880</volume>
          ,
          <year>2018</year>
          , pp.
          <fpage>222</fpage>
          -
          <lpage>246</lpage>
          . of Domain-Driven Microservice Design,” IEEE Software,
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10] R. van Rozen and T. van der Storm, “Toward live domain- p.
          <fpage>8</fpage>
          ,
          <year>2018</year>
          .
          <article-title>specific languages: From text differencing to adapting</article-title>
          [23]
          <string-name>
            <given-names>P.</given-names>
            <surname>Wizenty</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Sorgalla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Rademacher</surname>
          </string-name>
          , and models at run time,
          <source>” Software and Systems Modeling</source>
          , pp.
          <source>S. Sachweh, “Magma: Build Management-based 1-18</source>
          ,
          <year>2017</year>
          . Generation of Microservice Infrastructures,” Pro-
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>J.</given-names>
            <surname>Kubelka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Robbes</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Bergel</surname>
          </string-name>
          , “
          <article-title>The road ceedings of the 11th European Conference on to live programming</article-title>
          ,
          <source>” Proceedings of the 40th Software Architecture Companion Proceedings - International Conference on Software Engineering - ECSA '17</source>
          , pp.
          <fpage>61</fpage>
          -
          <lpage>65</lpage>
          ,
          <year>2017</year>
          . [Online].
          <source>Available: ICSE '18</source>
          , pp.
          <fpage>1090</fpage>
          -
          <lpage>1101</lpage>
          ,
          <year>2018</year>
          . [Online]. Available: http://dl.acm.org/citation.cfm?doid=
          <volume>3129790</volume>
          .3129821 http://dl.acm.org/citation.cfm?doid=
          <volume>3180155</volume>
          .
          <fpage>3180200</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>D.</given-names>
            <surname>Varró</surname>
          </string-name>
          , “
          <article-title>Patterns and styles for incremental model transformations,”</article-title>
          <source>in CEUR Workshop Proceedings</source>
          , vol.
          <volume>1657</volume>
          ,
          <year>2016</year>
          , pp.
          <fpage>41</fpage>
          -
          <lpage>43</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M.</given-names>
            <surname>Overeem</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Spoor</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Jansen</surname>
          </string-name>
          , “
          <article-title>The Dark Side of Event Sourcing: Managing Data Conversion,”</article-title>
          <source>in IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER)</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>193</fpage>
          -
          <lpage>204</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>T. D. Meijler</surname>
            ,
            <given-names>J. P.</given-names>
          </string-name>
          <string-name>
            <surname>Nytun</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Prinz</surname>
            , and
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Wortmann</surname>
          </string-name>
          , “
          <article-title>Supporting fine-grained generative model-driven evolution,”</article-title>
          <source>Software &amp; Systems Modeling</source>
          , vol.
          <volume>9</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>403</fpage>
          -
          <lpage>424</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>H.</given-names>
            <surname>Bruneliere</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Cabot</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          , “
          <article-title>Combining Model-Driven Engineering</article-title>
          and Cloud Computing,” in Modeling, Design, and
          <article-title>Analysis for the Service CloudMDA4ServiceCloud'10: Workshop's 4th edition (colocated with the 6th European Conference on Modelling Foundations and Applications-ECMFA</article-title>
          <year>2010</year>
          ),
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>S.</given-names>
            <surname>Popoola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Carver</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Gray</surname>
          </string-name>
          , “
          <article-title>Modeling as a service: A survey of existing tools</article-title>
          ,
          <source>” CEUR Workshop Proceedings</source>
          , vol.
          <year>2019</year>
          , pp.
          <fpage>360</fpage>
          -
          <lpage>367</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>A.</given-names>
            <surname>Rajbhoj</surname>
          </string-name>
          and
          <string-name>
            <given-names>V.</given-names>
            <surname>Kulkarni</surname>
          </string-name>
          , “
          <article-title>Large scale model-driven engineering for a multi-site team-Experience report</article-title>
          ,
          <source>” Proceedings - Asia-Pacific Software Engineering Conference</source>
          , APSEC, no.
          <issue>2</issue>
          , pp.
          <fpage>123</fpage>
          -
          <lpage>128</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Kolovos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tisi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Cabot</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Rose</surname>
          </string-name>
          ,
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>