<!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>MONDO: Scalable Modelling and Model Management on the Cloud</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Dimitrios S. Kolovos</string-name>
          <xref ref-type="aff" rid="aff5">5</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Antonio Garcia-Dominguez</string-name>
          <xref ref-type="aff" rid="aff5">5</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Richard F. Paige</string-name>
          <xref ref-type="aff" rid="aff5">5</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Esther Guerra</string-name>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jesus Sanchez Cuadrado</string-name>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Juan De Lara</string-name>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Istvan Rath</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Daniel Varro</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Gerson Sunye</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Massimo Tisi</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>dimitris.kolovos</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>antonio.garcia-dominguez</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>richard.paigeg@york.ac.uk</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Esther.Guerra</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jesus.Sanchez.Cuadrado</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Juan.deLarag@uam.es</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>varrog@mit.bme.hu</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>gerson.sunye</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>massimo.tisig@inria.fr</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>AtlanMod (Inria</institution>
          ,
          <addr-line>Mines Nantes, LINA)</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Budapest University of Technology and Economics</institution>
          ,
          <country country="HU">Hungary</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Nantes, Budapest University of Technology and Economics</institution>
          ,
          <addr-line>IKERLAN, SOFTEAM, Soft-Maint, UNINOVA</addr-line>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Project start date/duration: Nov 1</institution>
          ,
          <addr-line>2013, 30 months</addr-line>
        </aff>
        <aff id="aff4">
          <label>4</label>
          <institution>Universidad Autonoma de Madrid</institution>
          ,
          <country country="ES">Spain</country>
        </aff>
        <aff id="aff5">
          <label>5</label>
          <institution>University of York</institution>
          ,
          <country country="UK">United Kingdom</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Achieving scalability in modelling and MDE involves being able to construct large models and domain-speci c languages in a systematic manner, enabling teams of modellers to construct and re ne large models in collaboration, advancing the state of the art in model querying and transformations tools so that they can cope with large models (of the scale of millions of model elements), and providing an infrastructure for e cient storage, indexing and retrieval of large models. This paper outlines how MONDO, a collaborative EC-funded project, has contributed to tackling some of these scalability-related challenges.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        As MDE is increasingly applied to larger and more complex systems, the current
generation of modelling and model management technologies are being stressed
to their limits in terms of their capacity to accommodate collaborative
development, e cient management and persistence of models larger than a few hundreds
of megabytes in size. As discussed in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], achieving scalability in MDE involves:
{ being able to construct large models and Domain Speci c Languages (DSLs)
in a systematic manner;
{ enabling large teams of modellers to construct and re ne large models in a
collaborative manner;
{ advancing the state of the art in model querying and transformations tools
so that they can cope with large models (with millions of model elements);
{ providing an infrastructure for e cient storage, indexing and retrieval of
such models.
      </p>
      <p>This paper discusses how the MONDO project has contributed to tackling
these challenges. Section 3 provides an overview of the open-source MONDO
platform and then Sections 4{8 concentrate on each of the platform's major
components. Section 9 outlines the ongoing evaluation process and concludes
the paper.
3</p>
    </sec>
    <sec id="sec-2">
      <title>Platform overview</title>
      <p>The MONDO platform currently consists of the following components:
1. A framework (DSL-tao &amp; EMF-Splitter) for automated development of
scalable Eclipse-based editors for DSLs;
2. Cloud-based (CloudATL) and Reactive (ReactiveATL) versions of the widely
used ATL model-to-model transformation language;
3. A new version of the VIATRA model transformation engine, built on a
reactive virtual machine architecture supported by the EMF-IncQuery
incremental model query framework;
4. A framework for online and o ine collaborative modelling that supports
query-based access control based on IncQuery queries and VIATRA
transformations;
5. A framework for indexing of heterogeneous models stored in le-based
version control repositories such as Git or SVN.</p>
      <p>These components are then integrated into ve classes of artifacts:
1. Cloud server nodes, which implement web service APIs that expose the
cloud-based tools in MONDO, and may host \golden" and \front" SVN/Git
repositories for collaborative modelling (further discussed in Section 8).
2. Cloud worker nodes for CloudATL-based model transformations.
3. Eclipse workbenches, which include the Eclipse-based tools from MONDO.</p>
      <p>Some of these tools invoke the cloud API.
4. Standalone Java applications, which use the tools from MONDO as
additional libraries that may invoke the cloud API.
5. Other clients, which invoke the cloud API or use the web UI of the
collaboration framework.</p>
      <p>Cloud frontends and Eclipse workbenches use OSGi to integrate the various
components in MONDO in a controlled manner, ensuring they do not
unintentionally interfere with each other and enabling their independent evolution
beyond the lifetime of this project. The cloud API is largely implemented in Apache
Thrift (thrift.apache.org), an open source library for e cient cross-language
Remote Procedure Calls and serialization. Figure 1 illustrates how these
components are interconnected and organised internally. In the following sections, we
focus on the various ways in which the tools enable these integrations into the
platform.</p>
    </sec>
    <sec id="sec-3">
      <title>Heterogeneous Model Indexing Framework (Hawk)</title>
      <p>
        Hawk [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] is a model indexing framework that can monitor large collections of
models stored in regular le-based version control systems (e.g. Git or SVN)
and maintain a high-performance graph database with a snapshot of the latest
version of the models. Hawk can speed up advanced queries using its support
for indexed and derived attributes, and the API is designed for managing its
con guration and querying the indexed models.
      </p>
      <p>Hawk has been integrated with the rest of the platform in two ways: by
integrating new components into Hawk, and by developing compatibility layers
so other tools can use Hawk with minimal changes. The main components of
Hawk are:
{ Client components: Hawk provides local and remote (Thrift-based) client
components to manipulate Hawk indexes with the same UI.
{ Model parsers: Hawk provides components that can parse Ecore XMI,
Modelio XMI/EXML, IFC2x3 STEP/XML, IFC4 STEP/XML and BPMN
models. The Ecore XMI component allows Hawk to index models developed
using the scalable modelling tools discussed in Section 7, produced by the
transformation engine outlined in Section 5, or developed collaboratively
with the framework presented in Section 8.
{ Version control systems: Hawk provides components for monitoring local
folders, Git/SVN version control systems, workspaces and HTTP locations.
The Git/SVN version control systems can be one of the \front" repositories
maintained by the collaboration framework discussed in Section 8.
{ Backends: Hawk can use Neo4j or OrientDB for storing its graphs. Neo4j
is the current market leader for graph databases, and OrientDB is another
high-performance open source graph database with a more permissive license
that simpli es redistribution in certain scenarios.</p>
      <p>Hawk also provides abstractions that allow the tools developed in the other
work packages to treat a local or a remote Hawk index as a standard
EMFcompliant model, without requiring any changes. CloudATL can use Hawk
indexes as the source of a transformation, IncQuery can query Hawk indexes and
update the query results as their contents change, and DSL-tao can use a Hawk
index for faster discovery and editing of cross- le references.
5</p>
    </sec>
    <sec id="sec-4">
      <title>CloudATL and ReactiveATL</title>
      <p>CloudATL is an extended version of the ATL transformation engine that can
distribute large-scale transformations over a Hadoop cluster of worker nodes.
The engine operates in a transparent manner to the user, who does not need to
have any knowledge about distributed programming. The engine shares input
data among the slaves, except for the the input model that is equally divided
among them. The engine also relies on the MapReduce communication protocols
to aggregate the intermediate results and provide the nal output model.</p>
      <p>CloudATL can be submitted to a standard Hadoop cluster through the
Hadoop APIs as well as through standalone console-based tools. The latter
use a service-oriented API that turns a MONDO server into a frontend for a
dedicated Hadoop cluster. The API provides services to launch, monitor and
stop CloudATL transformations on the Hadoop cluster, and CloudATL jobs can
read remote Hawk indexes through the EMF resource abstractions mentioned
above. For validation and experimentation purposes, a virtualized Hadoop
cluster (based on Docker1) has been made publicly available, and automated scripts
for launching, stopping, and resizing the cluster are provided2.</p>
      <sec id="sec-4-1">
        <title>1 https://www.docker.com/</title>
      </sec>
      <sec id="sec-4-2">
        <title>2 https://github.com/atlanmod/hadoop-cluster-docker/</title>
        <p>
          Initial versions of CloudATL ran into scalability limitations of the
standard XMI model serialization format, especially the lack of support for
concurrent reads and writes. To solve this issue, a decentralized persistence backend
(NeoEMF/HBase [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]) was developed and integrated with CloudATL.
NeoEMF/HBase is transparent to standard EMF tools, since it exposes its persistence
functionality through the usual EMF interfaces. A persistence manager
communicates with the underlying data nodes through a persistence driver, and
supports a pluggable caching strategy. The design of the persistence manager
decouples the high level EMF-based code from the low-level data structures and
code accessing the database engine. Maintaining these uniform APIs between the
di erent levels allows including additional functionality on top of the persistence
driver by using the decorator pattern, such as di erent caching strategies.
        </p>
        <p>NeoEMF/HBase o ers lightweight on-demand loading and e cient garbage
collection. Model changes are automatically re ected in the underlying storage,
making changes visible to all the clients. In the case of CloudATL, it guarantees
that only the model elements needed to perform the partial transformation are
loaded by each CloudATL worker. Moreover, NeoEMF/HBase has explicit
support for ACID properties. This allows the use of NeoEMF/HBase as a scalable
persistence backend for distributed and concurrent model transformations.</p>
        <p>ReactiveATL3 is a reactive engine for the ATL transformation language. It
is designed to perform on-demand transformation in model-driven applications,
by activating only the strictly needed computation in response to updates or
requests of model elements. Computation is updated when necessary, in an
autonomous and optimized way by using incrementality and lazy evaluation.
6</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>IncQuery and VIATRA</title>
      <p>
        VIATRA [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] is a reactive, event-driven and incremental model transformation
platform. It integrates IncQuery [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] as a graph query engine over EMF models
with support for RETE-based incremental and local-search based query
evaluation [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Within the MONDO project, initial support was provided for distributed
incremental graph queries [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] deployed over a cloud infrastructure to scale
complex graph queries for models with over 100 million elements.
      </p>
      <p>
        Incremental queries enable to uniformly handle elementary model changes
(e.g. change of an attribute) and aggregate model changes (e.g. disappearance of
a match in the query result set) as atomic events. To identify speci c sequences of
such events, BME introduced complex event processing to model transformations
in VIATRA [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], which is especially suitable for streaming transformations [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        Reactive model transformations [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] following the paradigm of reactive
programming [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] may trigger reactions to atomic and complex events where rules
can be immediately red upon certain changes are detected (live mode). This
also enables to incrementally chain multiple views and transformations [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>MONDO partners collaborated to allow IncQuery to query Hawk indexes
directly, and through the EMF resource abstractions of Hawk. An optimised</p>
      <sec id="sec-5-1">
        <title>3 https://github.com/atlanmod/org.eclipse.atl.reactive</title>
        <p>
          version of IncQuery was developed that can load only the part of the model that
is required. It accesses all instances of a type using direct edge traversal instead
of having to iterate through the entire model. The optimised version also passes
the Train Benchmark [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] test suite of the IncQuery implementation.
7
        </p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Scalable DSL Modelling Tools</title>
      <p>
        DSL-tao [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] is a meta-modelling tool which enables the description of DSLs
and their graphical modelling environments by means of patterns. It provides an
extensible catalogue of recurrent patterns that can be instantiated to contribute
to the DSL's abstract syntax (e.g., typical domain patterns like state machines
or work ows, and meta-modelling design patterns like di erent realizations for
tree-like data structures), the DSL's concrete syntax (e.g., graphical or tabular)
and infrastructure (i.e., functionalities of the modelling environment).
      </p>
      <p>Of special relevance for scalability are infrastructure patterns related to DSL
modularity. While modularity mechanisms have been developed and are well
supported for programming languages, this is not so for DSLs. In order to
obtain more scalable DSL modelling tools, DSL-tao includes a modularity pattern
which permits customising model fragmentation strategies for DSLs. Hence,
similar to how programming languages organize software projects, one can identify
the meta-model elements playing the roles of project, package and unit. The
generated modelling environment will then fragment and physically organize models
into packages (folders) and units ( les) of smaller size, so that they can be more
e ciently managed. As an example, Figure 2 shows a modelling environment
that instantiates the modularity pattern for wind-turbine models, enabling the
de nition of each subsystem in a di erent package, and its constituent
components and state machines as les inside the package.</p>
      <p>
        The modularity pattern is realised by EMFSplitter [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], a framework that
generates domain-speci c Eclipse-based model editors according to the de ned
model fragmentation strategy. As a model is fragmented across the workspace,
EMFSplitter needs an e cient way to nd candidate values for non-containment
references, according to a given scope. For this purpose, EMFSplitter relies on
Hawk. The nal version of Hawk can monitor the generated local workspace and
provide e cient local and global queries over the fragmented models.
      </p>
      <p>The user only needs to open the Eclipse preferences page produced by
EMFSplitter and select Hawk to nd candidate values for non-containment references
(window labelled 1 in Figure 3). The next time that the EMFSplitter dialog for
editing a non-containment reference is opened, the Hawk+EMFSplitter
integration will create a Hawk index (backed by OrientDB) that monitors over all the
models in the workspace, and will use it to e ciently nd the candidate values.
The same index will be reused on later queries, and will be kept up to date
automatically by Hawk.
1
2</p>
      <p>The dialog for editing non-containment references is the same whether Hawk
is used or not (window labelled 2 in Figure 3). Depending on the scope (workspace,
project, package, or unit), Hawk will be used in a di erent way. In a rst stage,
Hawk will be queried to either nd all the instances of the EType of the reference
across the workspace, or nd only the instances that are contained within a
speci c project, package, or unit. In the second (and optional) stage, the retrieved
instances can be ltered by project nature.</p>
    </sec>
    <sec id="sec-7">
      <title>Collaboration Framework</title>
      <p>The MONDO Collaboration Framework provides support for both online and
o ine collaborative modeling scenarios by using graph queries for de ning
negrained model-level access control policies and locks, and bidirectional model
transformations to derive ltered views for each collaborator and to propagate
changes introduced in these views back to a server. The transformation uniformly
enforces high-level ne-grained access control policies during the derivation of
views and the back-propagation of changes.</p>
      <p>In an o ine collaboration scenario (see Fig. 4), models are stored in a gold
repository of an o -the-shelf version control system (VCS) that is not directly
accessible by end users. Instead, the VCS server instead hosts a separate front
repository dedicated to each collaborator (group) that contains a copy of the
gold repository ltered according to read access privileges of that user (using
the get operation of the bidirectional transformation). This front repository of
the user, which contains complete version history, can also be used to commit his
changes. Then the MONDO Collaboration Framework tries to propagate these
changes to the gold repository (by a putback operation), but these changes may
be denied based on write permissions.</p>
      <p>In an online collaboration scenario, users can connect via their web browsers
to open, view and edit models stored in the backends in live sessions. Multiple
users can collaborate on the same model simultaneously along the same access
control policy (used for o ine collaboration as well). The editor is provided as an
Eclipse RAP-based web application, which can optionally be co-deployed with
other server-side components. The main conceptual di erence with the o ine
case is that the live detection of violating access control policies by incremental
queries. At the end of an online collaborative session, the result is persisted back
in the VCS as in the o ine case.</p>
      <p>
        Con icting model changes need to be resolved by collaborators prior to a
successful commit, which is carried out by search-based automated model merge
[
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] where rule-based design space exploration [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] is used to search the space
of solution candidates that represent con ict-free merged models. Our method
allows to easily incorporate domain-speci c knowledge into the merge process
to provide better solutions. The merge process automatically calculates multiple
merge candidates to be presented to domain experts for nal selection.
9
      </p>
    </sec>
    <sec id="sec-8">
      <title>Evaluation and Conclusions</title>
      <p>In this paper we provided an outline of important scalability challenges in the
context of MDE, and MONDO's technical contributions for addressing them.
MONDO has already contributed novel techniques and several prototype
implementations in all four identi ed key-areas. Currently, the research contributions
of MONDO are under assessment in the context of four industrial case studies.</p>
      <p>The rst case study (provided by UNINOVA4) comes from the construction
domain and involves collaborative development and automated management of
large computer-aided design (CAD) models of buildings. The second case study
(provided by Soft-Maint5) involves exploration and automated regeneration of
code from large models, which have been reverse-engineered from existing legacy
codebases. The third case study (provided by IKERLAN6) involves multi-device
collaborative development of models for o shore wind power generators, and
the fourth case study involves managing large collections of UML models
captured in a proprietary format supported by Softeam's7 Modelio8 tool. To assess
the usefulness and impact of the technologies produced by MONDO, industrial
partners speci ed a set of concrete requirements and measures with reference to
existing state-of-the-art technologies during the rst six months of the project.
We intend to present the evaluation results in a follow-up publication as soon as
the evaluation reports have been produced by the respective MONDO partners.</p>
      <sec id="sec-8-1">
        <title>4 http://www.uninova.pt/</title>
      </sec>
      <sec id="sec-8-2">
        <title>5 http://www.sodifrance.fr/</title>
      </sec>
      <sec id="sec-8-3">
        <title>6 http://www.ikerlan.es/</title>
      </sec>
      <sec id="sec-8-4">
        <title>7 http://www.softeam.fr/</title>
      </sec>
      <sec id="sec-8-5">
        <title>8 https://www.modeliosoft.com/</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Dimitrios</surname>
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Kolovos</surname>
            , Louis M. Rose, Richard F. Paige, Esther Guerra, Jesus Sanchez Cuadrado, Juan de Lara, Istvan Rath, Daniel Varro, Gerson Sunye, and
            <given-names>Massimo</given-names>
          </string-name>
          <string-name>
            <surname>Tisi</surname>
          </string-name>
          .
          <article-title>MONDO: scalable modelling and model management on the cloud</article-title>
          .
          <source>In Projects Showcase</source>
          , pages
          <volume>44</volume>
          {
          <fpage>53</fpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Konstantinos</given-names>
            <surname>Barmpis</surname>
          </string-name>
          and
          <string-name>
            <given-names>Dimitrios S.</given-names>
            <surname>Kolovos</surname>
          </string-name>
          .
          <article-title>Towards scalable querying of large-scale models</article-title>
          .
          <source>In Jordi Cabot and Julia Rubin</source>
          , editors,
          <source>Modelling Foundations and Applications</source>
          , volume
          <volume>8569</volume>
          <source>of LNCS</source>
          , pages
          <volume>35</volume>
          {
          <fpage>50</fpage>
          . Springer,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Abel</given-names>
            <surname>Gomez</surname>
          </string-name>
          , Amine Benelallam, and
          <string-name>
            <given-names>Massimo</given-names>
            <surname>Tisi</surname>
          </string-name>
          .
          <article-title>Decentralized Model Persistence for Distributed Computing</article-title>
          . In 3rd BigMDE Workshop, L'Aquila,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Daniel</given-names>
            <surname>Varro</surname>
          </string-name>
          , Gabor Bergmann, Abel Hegedus, Akos Horvath, Istvan Rath, and
          <string-name>
            <given-names>Zoltan</given-names>
            <surname>Ujhelyi</surname>
          </string-name>
          .
          <article-title>Road to a reactive and incremental model transformation platform: Three generations of the VIATRA framework</article-title>
          .
          <source>Software and Systems Modeling</source>
          ,
          <year>2016</year>
          . In press.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Zoltan</given-names>
            <surname>Ujhelyi</surname>
          </string-name>
          , Gabor Bergmann, Abel Hegedus, Akos Horvath, Benedek Izso, Istvan Rath, Zoltan Szatmari, and Daniel Varro.
          <article-title>EMF-IncQuery: An Integrated Development Environment for Live Model Queries</article-title>
          .
          <source>Science of Computer Programming</source>
          ,
          <volume>98</volume>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Marton</given-names>
            <surname>Bur</surname>
          </string-name>
          , Zoltan Ujhelyi, Akos Horvath, and Daniel Varro.
          <article-title>Local search-based pattern matching features in emf-incquery</article-title>
          .
          <source>In Graph Transformation - 8th Int. Conf., ICGT</source>
          <year>2015</year>
          , L'Aquila, Italy, volume
          <volume>9151</volume>
          <source>of LNCS</source>
          , pages
          <volume>275</volume>
          {
          <fpage>282</fpage>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Gabor</given-names>
            <surname>Szarnyas</surname>
          </string-name>
          , Benedek Izso, Istvan Rath, Denes Harmath, Gabor Bergmann, and Daniel Varro.
          <article-title>Incquery-d: A distributed incremental model query framework in the cloud</article-title>
          .
          <source>In ACM/IEEE 17th International Conference on Model Driven Engineering Languages and Systems, MODELS</source>
          <year>2014</year>
          , Valencia, Spain,
          <year>2014</year>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Istvan</surname>
            <given-names>David</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Istvan</given-names>
            <surname>Rath</surname>
          </string-name>
          , and Daniel Varro.
          <article-title>Streaming model transformations by complex event processing</article-title>
          .
          <source>In Juergen Dingel and Wolfram Schulte</source>
          , editors,
          <source>ACM/IEEE 17th International Conference on Model Driven Engineering Languages and Systems, MODELS</source>
          <year>2014</year>
          , Valencia, Spain,
          <year>2014</year>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Jesus</given-names>
            <surname>Sanchez</surname>
          </string-name>
          Cuadrado and
          <string-name>
            <given-names>Juan</given-names>
            <surname>Lara</surname>
          </string-name>
          .
          <article-title>Streaming model transformations: Scenarios, challenges and initial solutions</article-title>
          .
          <source>In Keith Duddy and Gerti Kappel</source>
          , editors,
          <source>Theory and Practice of Model Transformations</source>
          , volume
          <volume>7909</volume>
          <source>of LNCS</source>
          , pages
          <volume>1</volume>
          {
          <fpage>16</fpage>
          . Springer Berlin Heidelberg,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Engineer</surname>
            <given-names>Bainomugisha</given-names>
          </string-name>
          , Andoni Lombide Carreton, Tom Van Cutsem,
          <string-name>
            <surname>Stijn Mostinckx</surname>
          </string-name>
          , and Wolfgang De Meuter.
          <article-title>A survey on reactive programming</article-title>
          .
          <source>ACM Computing Surveys</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Csaba</surname>
            <given-names>Debreceni</given-names>
          </string-name>
          , Akos Horvath, Abel Hegedus, Zoltan Ujhelyi, Istvan Rath, and Daniel Varro.
          <article-title>Query-driven incremental synchronization of view models</article-title>
          .
          <source>In 2nd Workshop on View-Based, Aspect-Oriented and Orthographic Software Modelling (VAO</source>
          <year>2014</year>
          ), pages
          <fpage>31</fpage>
          :
          <fpage>31</fpage>
          {
          <fpage>31</fpage>
          :
          <fpage>38</fpage>
          . ACM,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Benedek</surname>
            <given-names>Izso</given-names>
          </string-name>
          , Gabor Szarnyas, Istvan Rath, and Daniel Varro.
          <article-title>MONDO-SAM: A framework to systematically assess MDE scalability</article-title>
          .
          <source>In BigMDE 2014 2nd Workshop on Scalable Model Driven Engineering, page 40. ACM</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Ana</surname>
            <given-names>Pescador</given-names>
          </string-name>
          , Antonio Garmendia, Esther Guerra, Jesus Sanchez Cuadrado, and Juan de Lara.
          <article-title>Pattern-based development of domain-speci c modelling languages</article-title>
          .
          <source>In MoDELS</source>
          , pages
          <volume>166</volume>
          {
          <fpage>175</fpage>
          . IEEE,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. Antonio Garmendia, Esther Guerra, Dimitrios S. Kolovos, and Juan de Lara.
          <article-title>EMF splitter: A structured approach to EMF modularity</article-title>
          .
          <source>In XM@MoDELS</source>
          , volume
          <volume>1239</volume>
          <source>of CEUR Workshop Proceedings</source>
          , pages
          <volume>22</volume>
          {
          <fpage>31</fpage>
          . CEUR-WS.org,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Csaba</surname>
            <given-names>Debreceni</given-names>
          </string-name>
          , Istvan Rath, Daniel Varro, Xabier De Carlos, Xabier Mendialdua, and
          <string-name>
            <given-names>Salvador</given-names>
            <surname>Trujillo</surname>
          </string-name>
          .
          <article-title>Automated model merge by design space exploration</article-title>
          . In Fundamental Approaches to Software Engineering - 19th
          <source>International Conference (FASE</source>
          <year>2016</year>
          ), volume
          <volume>9633</volume>
          <source>of LNCS</source>
          , pages
          <volume>104</volume>
          {
          <fpage>121</fpage>
          . Springer,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. Abel Hegedus, Akos Horvath, and
          <string-name>
            <given-names>Daniel</given-names>
            <surname>Varro</surname>
          </string-name>
          .
          <article-title>A model-driven framework for guided design space exploration</article-title>
          .
          <source>Automated Software Engineering</source>
          ,
          <volume>22</volume>
          :
          <fpage>399</fpage>
          {
          <fpage>436</fpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>