<!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>AToMPM: A Web-based Modeling Environment</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Eugene Syriani</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>Hans Vangheluwe</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Raphael Mannadiar</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>Conner Hansen</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>Simon Van Mierlo</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Huseyin Ergin</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Highlight of Features</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>McGill University</institution>
          ,
          <country country="CA">Canada</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>University of Alabama</institution>
          ,
          <country country="US">U.S.A</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>University of Antwerp</institution>
          ,
          <country country="BE">Belgium</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>We introduce AToMPM, an open-source framework for designing domain-specific modeling environments, performing model transformations, manipulating and managing models. It runs completely over the web, making it independent from any operating system, platform, or device it may execute on. AToMPM offers an online collaborative experience for modeling. Its unique architecture makes the framework flexible and completely customizable, given that AToMPM is modeled by itself, and external applications can be easily integrated. Demo: https://www.youtube.com/watch?v=iBbdpmpwn6M</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Today, several tools and technologies allow modelers to develop domain-specific
modeling languages (DSMLs) and manipulate models, such as AToM3 [1], DSLTools [
        <xref ref-type="bibr" rid="ref4">2</xref>
        ],
EMF [
        <xref ref-type="bibr" rid="ref1">3</xref>
        ], GME [4], MetaEdit+ [5], and VMTS [6], just to name a few. They often
require an installation of the tool and depend on external artifacts such as operating
sys3
tem (VMTS), middleware platform (DSL Tools), or virtual machine (EMF, AToM ).
Furthermore, the degree of collaboration between developers and their models is often
restricted to the version controlled repository used by the tool (SVN, CVS, or GitHub).
Nevertheless, one of the reasons for the success and popularity of EMF is its plugin
framework that allows tremendous extensions of its core which gave birth to a suite of
numerous modeling and transformation tools, such as ATL [7], Epsilon [8], XText [9],
VIATRA2 [10]. However, the development of these extensions requires expertise in
EMF, and its Java API.
      </p>
      <p>In this paper, we introduce AToMPM (A Tool for Multi-Paradigm Modeling) [11],
3
the successor of AToM . AToMPM is an open-source framework for designing DSML
environments, performing model transformations, manipulating and managing models.
It runs completely over the web, making it independent from any operating system,
platform, or device it may execute on. AToMPM follows the philosophy of modeling
everything explicitly, at the right level of abstraction(s), using the most appropriate
formalism(s) and process(es), being completely modeled by itself (i.e., bootstrapped).
AToMPM is a modern, versatile and theoretically sound multi-paradigm modeling
environment. It is a tool for modeling any and every part of a system at the most appropriate
level(s) of abstraction, using the most appropriate formalism(s). For instance, AToMPM
is explicitly modeled using a combination of UML Class diagrams and Statecharts. The
tool offers unique features given its web-based nature that we outline below.
2.1</p>
      <sec id="sec-1-1">
        <title>Modeling in the Cloud</title>
        <p>AToMPM runs entirely online and requires no client-side installation. It allows one to
model in the cloud, although it is possible to install the server on-premise. The client
consists only of an SVG-compliant web browser. Models can be downloaded locally if
desired.
2.2</p>
      </sec>
      <sec id="sec-1-2">
        <title>Graphical Modeling vs. Textual Commands</title>
        <p>AToMPM is primarily a graphical modeling environment. On the concrete syntax side,
all model elements displayed are SVG elements. All static and dynamic manipulation
offered by SVG are fully supported (e.g., translation, scaling, rotation, transparency,
Bézier curves). Model manipulation, such as CRUD operations, can be performed with
mouse clicks and movements as in traditional modeling environments. In AToMPM, it
is also possible to write textual commands to perform the same manipulations, designed
with a modeled textual DSL. Textual commands can be more useful for more advanced
users, especially for creating/deleting/updating multiple elements at a time.
2.3</p>
      </sec>
      <sec id="sec-1-3">
        <title>Synthesis of Domain-Specific Modeling Environments</title>
        <p>As in any modeling tool, the specification and synthesis of DSMLs is central
functionality of AToMPM. The default modeling language for defining meta-models is a
simplification of UML class diagrams. Nevertheless, any modeling language can be used
to define meta-models, as long as there is a transformation defined mapping that
metamodeling language to the default language. Synthesis of a DSML editing environment
for that new DSML is automatically supported. Static constraints are expressed on top
of the meta-model in a textual DSL for constraints or using the Javascript API directly.</p>
        <p>Multiple concrete syntaxes can be assigned to the same abstract syntax. This allows
different users to have their own representation of the same model. A graphical concrete
syntax is defined by mapping a group of SVG elements to each meta-model element,
both class-like and association-like elements. Since everything is modeled explicitly in
AToMPM, the concrete syntax is itself specified by a DSML representing geometric
shapes.
2.4</p>
      </sec>
      <sec id="sec-1-4">
        <title>Model Transformation, Code Generation and Debugging</title>
        <p>Model transformations are also explicitly modeled in AToMPM. All model
transformations are based on T-Core [12], a minimal collection of model transformation operators.
This has the advantage of executing automatically any custom-built rule-based
transformation language. Given the input and output meta-models of a transformation, a
language for designing domain-specific rules is automatically generated [13]. Rules are
defined with a left-hand side, right-hand side and negative application conditions, as in
graph transformations. The patterns inside the rules are represented using the concrete
syntax of the input and output languages, adapted to patterns. The default scheduling
language of a model transformation is MoTif [14]. Nevertheless, any modeling
language can be used to define the transformation language, as long as there is a
higherorder transformation defined mapping that language to the T-Core language. Execution
and debugging of that new model transformation language is automatically supported.</p>
        <p>There are two modes of execution of model transformations in AToMPM. In release
mode, the input model displayed on the canvas is sent to the server, transformed
completely, and the new resulting model is then displayed on the canvas. In debug mode,
the transformation is animated on the client’s canvas. The execution can be continuous,
or step-by-step. Breakpoints can be specified at the control flow level and a new
window pops up to inspect the current state of the model and transformation as depicted in
Fig. 1. The model transformation execution is deployed as a plugin in AToMPM, which
may run on a dedicated server. The transformation engine is based on Himesis [15], a
Python implementation.
2.5</p>
      </sec>
      <sec id="sec-1-5">
        <title>Process Modeling</title>
        <p>Any process enforced by AToMPM is also modeled explicitly by a UML activity
diagramlike DSML. For example, the process for defining a meta-model, then assigning the
concrete syntax and, finally, generating the modeling environment is a process model.
A chain of model transformations is also modeled with this language. The activities in
a process model can be automatic (like a transformation or plugin) or manual. In the
latter case, a window pops up to let the user manipulate a model.
2.6</p>
      </sec>
      <sec id="sec-1-6">
        <title>Collaborative Modeling</title>
        <p>One motivation behind an online development environment is the ability to collaborate
and share modeling artifacts among users. Multiple users can be logged in
simultaneously with each having their own view of the models. Models and model elements
visibility is controlled with permission roles that an administrator can assign and specify.
Currently, AToMPM supports two types of real-time distributed collaboration
mechanisms. Screenshare allows two or more clients to share the exact same canvas: any
change made to a model (abstract or concrete syntax) is replicated on all observing
clients. Modelshare only shares the abstract syntax of a model between clients. Each
client has its own view of the same model, using its own concrete syntax. For example,
if a client updates the value of an attribute of a model element, this may change the
displayed text next to the represented element on that client’s model while changing the
color of that element on another client’s representation.
3</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Modeled Plugin Framework Architecture</title>
      <p>Client 1
Client 2</p>
      <p>Custom Plugins
PluginManager</p>
      <p>GUIUtils
socket-io SCION DB driver</p>
      <p>Stateful
Node.js</p>
      <p>AToMPM Server</p>
      <p>Database</p>
      <p>AToMPM is a completely bootstrapped environment. The client-server architecture
depicted in Fig. 2 allows multiple web-browsers (client) to send and receive HTTP
requests with AToMPM (server) following the MVC pattern. AToMPM is a Node.js
server driven by SCXML statecharts executed within the SCION engine [16]. It consists
of a minimal kernel “Stateful” deprived from any modeling-specific functionality. It is
a plugin framework where every toolbar and functionality is modeled explicitly as a
plugin.</p>
      <p>On startup, Stateful loads the kernel statechart, which handles all requests to and
responses from the server. The kernel also brings in the PluginManager plugin during
initialization, which is enough to then drive the loading of various custom plugins, such
as AToMPM. The PluginManager design provides register/unregister hooks so that any
plugin can easily register and load or unregister and unload itself within the
PluginManager package system. Stateful allows for plugins to register their own statecharts to
respond to specific server endpoints, which allows for plugins to easily extend the
behavior of Stateful. Within this framework, if some degree of communication is needed
with an external server then that behavior can be added, made accessible, and begin
responding in Stateful. This provides the ability for a backend to be written in a
completely different language than Javascript, while still being able to fully interact with
Stateful using only a very small amount of mostly generatable code. While this design
does allow for easy extension, it also relies heavily on plugins being properly designed
which may make it less robust from the client’s experience.</p>
      <p>There are client side variants for the kernel and PluginManager components as well.
When a user first attempts to access Stateful, these components are sent over which then
load either the default plugins or plugins that are specific to that user’s configuration if
logged in. Any client side components that are available on the server can be loaded
by a client at any time, allowing for plugins to be able to be dynamically loaded and
unloaded.</p>
      <p>As depicted in Fig. 2, there four asynchronous communication paths in this
framework. (1) A call-back mechanism allows a client to send requests to the server and
receive results. (2) A headless mode allows the client to send requests to be processed in
batch. (3) A broadcast mechanism allows the server to notify multiple client observers.
(4) AToMPM can communicate with external servers in the same way as it does for
clients. The latter is very useful when interoperating external tools (such as
transformation engine, model verification) with AToMPM. These communications are all modeled
with plugins.</p>
    </sec>
    <sec id="sec-3">
      <title>Acknowledgments</title>
      <p>We would like to thank all the members of MSDL at McGill University and the
University of Antwerp for their work and contributions to the built-in formalisms available in
AToMPM: Sadaf Mustafiz, Levi Lucio, Maris Jukss, Johachim Denil, and Bart Meyers.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          3 1. de Lara, J.,
          <string-name>
            <surname>Vangheluwe</surname>
          </string-name>
          , H.:
          <article-title>AToM : A Tool for Multi-formalism and Meta-Modelling</article-title>
          . In:
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <source>FSE'02</source>
          . Volume 2306 of LNCS., Springer-Verlag (
          <year>2002</year>
          )
          <fpage>174</fpage>
          -
          <lpage>188</lpage>
          2. Cook,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Jones</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Kent</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Wills</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.C.</given-names>
            :
            <surname>Domain-Specific Development</surname>
          </string-name>
          with Visual Studio
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <given-names>DSL</given-names>
            <surname>Tools. Addison-Wesley Professional</surname>
          </string-name>
          (
          <year>2007</year>
          )
          <article-title>3</article-title>
          .
          <string-name>
            <surname>Steinberg</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Budinsky</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paternostro</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Merks</surname>
          </string-name>
          , E.: EMF: Eclipse Modeling Framework.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <article-title>2nd edn</article-title>
          .
          <source>Addison Wesley Professional</source>
          (
          <year>2008</year>
          )
          <article-title>4</article-title>
          .
          <string-name>
            <surname>Lédeczi</surname>
          </string-name>
          , Á.,
          <string-name>
            <surname>Bakay</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maroti</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Völgyesi</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nordstrom</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sprinkle</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karsai</surname>
          </string-name>
          , G.:
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <given-names>Composing</given-names>
            <surname>Domain-Specific Design</surname>
          </string-name>
          <article-title>Environments</article-title>
          . IEEE Computer
          <volume>34</volume>
          (
          <issue>11</issue>
          ) (
          <year>2001</year>
          )
          <fpage>44</fpage>
          -
          <lpage>51</lpage>
          5. Kelly,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Lyytinen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Rossi</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.:</surname>
          </string-name>
          <article-title>MetaEdit+ A fully configurable multi-user and multi-</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <surname>Engineering</surname>
          </string-name>
          . Volume
          <volume>1080</volume>
          of LNCS., Crete, Springer-Verlag (may
          <year>1996</year>
          )
          <fpage>1</fpage>
          -
          <lpage>21</lpage>
          6. Levendovszky,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Lengyel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            ,
            <surname>Mezei</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Charaf</surname>
          </string-name>
          , H.:
          <article-title>A Systematic Approach</article-title>
          to Metamod-
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <article-title>eling Environments and Model Transformation Systems in VMTS</article-title>
          . In: GraBaTs'
          <fpage>05</fpage>
          . Volume
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <article-title>127 of ENTCS</article-title>
          ., Amsterdam, Elsevier (mar
          <year>2005</year>
          )
          <fpage>65</fpage>
          -
          <lpage>75</lpage>
          7.
          <string-name>
            <surname>Jouault</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Allilaire</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bézivin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kurtev</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>ATL: A model transformation tool</article-title>
          . Science
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <source>of Computer Programming</source>
          <volume>72</volume>
          (
          <issue>1-2</issue>
          ) (jun
          <year>2008</year>
          )
          <fpage>31</fpage>
          -
          <lpage>39</lpage>
          8. Kolovos,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Paige</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Polack</surname>
          </string-name>
          ,
          <string-name>
            <surname>F.</surname>
          </string-name>
          :
          <article-title>The Epsilon Object Language (EOL)</article-title>
          .
          <source>In: ECMDA-FA'06.</source>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <article-title>Volume 4066 of LNCS</article-title>
          ., Springer (
          <year>2006</year>
          )
          <fpage>128</fpage>
          -
          <lpage>142</lpage>
          9. Eysholdt,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Behrens</surname>
          </string-name>
          , H.:
          <article-title>Xtext: implement your language faster than the quick</article-title>
          and dirty
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          way.
          <source>In: OOPSLA'10</source>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2010</year>
          )
          <fpage>307</fpage>
          -
          <lpage>309</lpage>
          10.
          <string-name>
            <surname>Varró</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Balogh</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>The model transformation language of the VIATRA2 framework</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <source>Science of Computer Programming</source>
          <volume>68</volume>
          (
          <issue>3</issue>
          ) (
          <year>2007</year>
          )
          <fpage>214</fpage>
          -
          <lpage>234</lpage>
          11. https://acom.cs.mcgill.ca/trac/AToMPM/ 12.
          <string-name>
            <surname>Syriani</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vangheluwe</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>LaShomb</surname>
          </string-name>
          , B.:
          <string-name>
            <surname>T-Core</surname>
          </string-name>
          :
          <article-title>A Framework for Custom-built Trans-</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <source>formation Languages. Journal on Software and Systems</source>
          Modeling (jul
          <year>2013</year>
          )
          <article-title>13</article-title>
          .
          <string-name>
            <surname>Syriani</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gray</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vangheluwe</surname>
          </string-name>
          , H.:
          <article-title>Modeling a Model Transformation Language</article-title>
          . In:
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          <string-name>
            <given-names>Domain</given-names>
            <surname>Engineering: Product Lines</surname>
          </string-name>
          ,
          <source>Conceptual Models, and Languages</source>
          . Springer (
          <year>2012</year>
          )
          <fpage>14</fpage>
          .
          <string-name>
            <surname>Syriani</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vangheluwe</surname>
          </string-name>
          , H.:
          <article-title>A Modular Timed Model Transformation Language</article-title>
          . Journal
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          <source>on Software and Systems Modeling</source>
          <volume>12</volume>
          (
          <issue>2</issue>
          ) (jun
          <year>2011</year>
          )
          <fpage>387</fpage>
          -
          <lpage>414</lpage>
          15.
          <string-name>
            <surname>Syriani</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vangheluwe</surname>
          </string-name>
          , H.:
          <article-title>Performance Analysis of Himesis</article-title>
          .
          <source>Technical Report</source>
          SOCS-
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          <string-name>
            <surname>TR-</surname>
          </string-name>
          <year>2010</year>
          .8,
          <string-name>
            <surname>McGill</surname>
            <given-names>University</given-names>
          </string-name>
          , School of Computer Science (aug
          <year>2010</year>
          )
          <volume>16</volume>
          . https://github.com/jbeard4/SCION
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>