<!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>An LSP infrastructure to build EMF language servers for Web-deployable model editors?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Roberto Rodriguez-Echeverria</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Javier Luis Ca´novas Izquierdo</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Manuel Wimmer</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jordi Cabot</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Quercus SEG</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Universidad de Extremadura</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ca´ceres</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Spain rre@unex.es</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Barcelona</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Spain jcanovasi@uoc.edu</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>CDL-MINT</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>TU Wien</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vienna</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Austria wimmer@big.tuwien.ac.at</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>ICREA - UOC</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Barcelona</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Spain jordi.cabot@icrea.cat</string-name>
        </contrib>
      </contrib-group>
      <abstract>
        <p>The development of modern IDEs is still a challenging and timeconsuming task, which requires implementing the support for language-specific features such as syntax highlighting or validation. When the IDE targets a graphical language, its development becomes even more complex due to the rendering and manipulation of the graphical notation symbols. To simplify the development of IDEs, the Language Server Protocol (LSP) proposes a decoupled approach based on language-agnostic clients and language-specific servers. LSP clients communicate changes to LSP servers, which validate and store language instances. However, LSP only addresses textual languages (i.e., character as atomic unit) and neglects the support for graphical ones (i.e., nodes/edges as atomic units). In this paper, we introduce a novel LSP infrastructure to simplify the development of new graphical modeling tools, in which Web technologies may be used for editor front-ends while leveraging existing modeling frameworks to build language servers. More concretely, in this work, we present the architecture of our LSP infrastructure, based on LSP4J, to build EMF-based graphical language servers.</p>
      </abstract>
      <kwd-group>
        <kwd>Domain-Specific Languages</kwd>
        <kwd>Language Server Protocol</kwd>
        <kwd>Modeling Editors</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        In the last years, there is an increasing interest to move the modeling editing support to
the Web (e.g., Eclipse Che5 or Theia6), which gives new opportunities, but at the same
time, opens new risks and challenges. In a Web-based solution, the deployment of a
decoupled architecture composed by client-server is key to provide a performing and
usable solution to users. In this scenario, we believe the use of protocols between clients
and servers enables the development of decoupled solutions for graphical modeling
languages. However, current graphical modeling editors are generally monolithic
solutions, tailored to a particular language and built upon existing modeling frameworks.
As result, they are not distributable, and therefore they cannot be easily deployed in
the Web as client editors. Indeed, finding the proper approach to develop and maintain
modern Web modeling editors reusing current modeling platforms still remains as a
challenge. Additionally, the development of full-fledged graphical modeling tools is a
challenging and complex task [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
      <p>A similar conclusion has been drawn for programming IDEs (and, in general, textual
editors) last year, thus motivating the creation of the Language Server Protocol (LSP)7
as a community effort. LSP allows decoupling language IDE development into a
clientserver architecture, hence a language-agnostic client tool can connect to (potentially)
any number of language-specific servers by means of a standard protocol.</p>
      <p>
        Conversely, although the advantages of following the path defined by LSP may be
clear for developing IDEs aimed at graphical languages, currently the question about
how to do it properly remains open as LSP has been defined without considering this
kind of languages. In a previous work [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] we discussed different alternatives of using
LSP to decouple graphical modeling language IDEs as well as their pros and cons.
      </p>
      <p>In this paper we present the details of the implementation of our infrastructure to
build full-fledged EMF-based graphical language servers by leveraging an LSP
reference implementation. Those graphical language servers support the connection of
distributable generic client editors, which may be parameterized by a language description.
This solution enables creating platform-agnostic client editors as they can be
implemented in a platform different from the language server and contains no dependences
to modeling frameworks. For illustration purposes, in this paper we present a web-based
client that uses our EMF-based graphical language server.</p>
      <p>This paper is organized as follows. Section 2 provides a brief introduction to LSP.
Section 3 presents an illustrative implementation of our approach as a proof of
concept. Section 4 discusses related work. And finally, in Section 5 we outline the main
conclusions drawn by this work and point out the future work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>The language server protocol</title>
      <p>The Language Server Protocol (LSP) is a communication language aimed at
standardizing the messages exchanged between language client editors and servers. The LSP
is based on an extended version of JSON RPC v2.08. On the lowest level, JSON RPC
just sends messages from a client to a server, which can be notifications, requests or
responses. The relation between an incoming request and a sent response is done through
a request id.</p>
      <p>In an LSP-based architecture, clients provide a language-agnostic front-end editing
support, thus being responsible for managing editing actions without knowing anything
about the semantics of the language; and servers provide language-specific support,
which mainly covers language semantics, e.g., they check for the correctness of the
7 https://langserver.org
8 https://www.jsonrpc.org/specification
source code and correspondingly send any issue to the client to be presented as
syntactic errors. This architecture offers developers the freedom to choose the most suitable
technology to implement the client editor and the language server independently of each
other.</p>
      <p>In its current state, LSP supports only text documents (i.e., textual programming
languages). The protocol defines two main concept groups, namely: (1) the editor (or
IDE) “data types” such as the currently open text document (i.e., URI), (2) the position
of the cursor (i.e., line and column) or a range of selected text in the editor. It is
important to note that these concepts are not at the level of a programming language domain
model which would usually rely on abstract syntax tree elements and compiler symbols
(e.g., resolved types, namespaces, etc.), thus simplifying the protocol significantly. This
way LSP allows clients to connect to different language servers in a seamless way, thus
easily providing support to new languages.</p>
      <p>LSP v3.0 defines more than 40 different message types9 describing requests,
responses and notifications between client and server. These messages are organized
according to their operational scope into five different categories: general, window, client,
workspace and document (textDocument).</p>
      <p>In the last months a number of language serversand clientshave appeared, and its
number is growing. To develop a LSP-enabled server, several approaches have also
appeared. In the context of this work, we will focus on the solution to develop LSP
systems in Java, called LSP4J10, as it is the programming language used to develop
the Eclipse Modeling Framework. LSP4J is a Java binding for LSP which enables the
implementation of both LSP clients and servers.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Approach</title>
      <p>We propose an LSP infrastructure to edit EMF-based graphical languages in the Eclipse
platform. Figure 1 illustrates our approach (LSP infrastructure is shaded), which
includes the following elements: (1) a client, which provides a distributable generic
editor for graphical languages; (2) a full-fledged graphical server, which keeps track of
every change done in the editor and provides additional capabilities like validation or
editing support (e.g., hovering), and (3) the usage of LSP with an Intermediate
Representation Format (IRF), which represents the graphical model instances being edited
and shared between client and server. Note that we are not extending LSP nor creating
a new protocol, and therefore a mapping between editing operations and LSP messages
is required11.</p>
      <p>
        We have created a proof-of-concept prototype to test our LSP infrastructure using a
simple graphical language to represent families including concepts (family and member
concepts) with names and edges between them (to link a member to a family)12. The
9 https://microsoft.github.io/language-server-protocol/
specification
10 https://github.com/eclipse/lsp4j
11 More information about this mapping can be found in a previous work [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] and use cases web
page (http://hdl.handle.net/20.500.12004/1/C/MODELS/2018/423)
12 Available at http://hdl.handle.net/20.500.12004/1/A/LSP4GML/001
      </p>
      <p>Editor &amp; Views
Model
renderer
Templates</p>
      <p>In-memory model
Model operations</p>
      <p>IRF Changes</p>
      <p>IRF
Client</p>
      <p>LSP</p>
      <p>AS Map CS
Modeling Framework (MF)
MF Connector</p>
      <p>Template
Model operations generator</p>
      <p>IRF Changes</p>
      <p>IRF Templates</p>
      <p>Server
prototype includes (1) a distributable generic client (Web-deployable model editor) and
(2) a graphical language server, which both use the IRF and LSP to represent graphical
modeling language instances and communicate with each other, respectively. Next we
describe these elements.
3.1</p>
      <p>
        Distributable generic client
This case illustrates the opposite approach to the monolithic editor commonly found
in current solutions (e.g., [
        <xref ref-type="bibr" rid="ref11 ref13 ref15 ref4 ref6">6, 15, 4, 13, 11</xref>
        ]). A distributable solution includes a
(Webfriendly) model-driven tool to edit and manage any graphical language and relies on a
server to perform most of the language operations. A generic model editor is
parameterized by a language description, which configures the editor including the semantic- and
diagram-aware available operations. This option enables the development of
platformagnostic editors as the graphical modeling editor can be implemented in a platform
which is different from the language server.
      </p>
      <p>In this work, for testing purposes, the client has been developed as a Web-based
application using standard Web technologies (i.e., HTML, CSS, SVG and JavaScript).
Figure 2a shows a snapshot of the developed client, including an instance of our
example graphical language which models the members (see nodes with identifiers starting
with M) of the Ramirez family (see node with F1 identifier). The client interface
includes a canvas, where the user can edit the elements of the language; a set of buttons to
test the LSP messages and a log text box to visualize the status of the editor and
communications. Note, however, that this work is focused on the development of graphical
language servers.</p>
      <p>The client always keeps an instance of the graphical modeling language expressed
in IRF. Any change to the instance of the language updates the IRF definition, which
is synchronized with the server by means of LSP messages (document category).
Likewise, events and editing actions created at the server-side may also update the IRF
definition and consequently the instance.</p>
      <p>IRF definitions are expressed in JSON and includes three main elements, namely:
(1) a metadata section, which includes information about the language being edited;
(2) nodes, which represent an element in the graphical model; and (3) edges, which
represent a relationship between two nodes in the graphical model. Figure 2b shows an
excerpt of the IRF definition representing the instance shown in Figure 2a. It includes
(a)
{ "rootElement": "Family",
"namedElementPackage": "family.model.family.impl.NamedElementImpl",
"implPackage": "family.model.family.impl.",
"nodes": [
{ "id": "1",
"type": "Family",
"abstract": { "name": "F1", "lastName": "Ramirez" },
"concrete": { "width": 100, "height": 50 },
"diagram": { "x": 182, "y": 117, "z": 0 },
},"editorOptions": { "movable": "True", "editable": "True" }
{ "id": "2",
"type": "Member",
"abstract": { "name": "M1", "firstName": "Julio" },
"concrete": { "width": 100, "height": 50 },
"diagram": { "x": 127, "y": 23, "z": 0 },
},"editorOptions": { "movable": "True", "editable": "True" }
"edges": [
{ "id": "1",
""toyrpieg"i:n"":de"f1a"u,lt",
"target": "2",
"abstract": {
"name": "father",
"multiplicity": "1",
},"containment": "yes"
"editorOptions": { "movable": "True", "editable": "True" }
} }, ...</p>
      <p>(b)
the metadata information (see first three lines) and the definitions for two nodes (i.e.,
the family node, F1, and one of its members, M1) and one edge (i.e., the relationship
between the previous nodes). As can be seen, node elements include information
regarding the abstract and concrete syntax of the model elements (see the abstract
and concrete keys in the node element), as well as additional information for
identifying the node (id and type keys), layout information (diagram key) and
behavior information (editorOptions key). Likewise, edge elements share part of the
node structure but add information to specify the source and target of the relationship
(source and target keys, respectively).</p>
      <p>The diagramming support of the client editor relies on JointJS13, a free
diagramming library developed in JavaScript. To enable genericity in the client, the symbols of
the language are retrieved from the server, which publishes a set of SVG-based
templates for the language concepts via a specific LSP message. The client is able to render
language symbols by injecting the information represented in the IRF definition into the
SVG templates. Figure 3 shows an example of a SVG-based template for the concrete
syntax used for the member nodes of Figure 2a. Thus, text SVG elements of Figure 3
are initialized with the values of the corresponding keys of the abstract section of
the IRF definition. These templates are used to configure the JointJS-based diagram
editor, thus the user can drag&amp;drop them to create instances of the graphical language.
13 https://www.jointjs.com
&lt;g class="rotatable"&gt;
&lt;g class="scalable"&gt;
&lt;rect y="0" x="0" height="10" width="20" style="color:#000000;opacity:1;vector-effect:none;</p>
      <p>fill:#ffffff;fill-opacity:1;stroke:#000000; stroke-width:0.25;stroke-opacity:1;"/&gt;
&lt;/g&gt;
&lt;text id="name" y="20" x="5" style="font-family:sans-serif;fill:#000000;fill-opacity:1;"&gt;&lt;/text&gt;
&lt;text id="firstName" y="40" x="25" style="font-family:sans-serif;fill:#000000;fill-opacity:1;"&gt;&lt;/text&gt;
&lt;/g&gt;
A graphical language server comes into play when the client editor does not implement
the full set of operations identified for graphical languages. A full-fledged graphical
language server presents more functionality than textual language servers, basically
because it needs, firstly, to provide a richer editing support to encompass two different
syntaxes (abstract and concrete)14, and secondly, to provide a more complex diagramming
support to cover semantic- and diagram-aware specific capabilities (e.g., autolayout).</p>
      <p>We consider that a graphical language server must provide (at least) the following
stack of functionalities (ordered by dependence): (1) management and validation of
abstract model instances; (2) management and validation of concrete model instances;
(3) a way to provision of language descriptions (stencil palette &amp; compositional rules) to
clients; (4) diagrammatic operations, e.g., autolayout by means of ELK15; (5) auxiliary
operations, e.g., serialization support. Note that some of these functionalities could also
be partially supported by the client, for instance, it may apply compositional rules to
keep a basic layout.</p>
      <p>Our implementation of a language server relies on the Eclipse Modeling Framework
(EMF) and the Graphical Modeling Framework (GMF) to provide model management,
validation and storage of graphical languages. While EMF offers the core support to
manage and validate models and metamodels, GMF provides the required support to
define the concrete syntax of graphical languages. With this solution, any graphical
language of the Eclipse ecosystem could be potentially supported.</p>
      <p>Figure 4 presents the overall architecture of an EMF graphical language server
according to our approach. As shown, three main modules are defined: (1) the LSP4J
language server, implementing the core functionality of the language server; (2) the IRF
(de)serializer, which reads/writes IRF files or snippets; and (3) the Model Framework
(MF) connector, providing a common interface to different modeling frameworks.</p>
      <p>The language server is implemented upon the LSP4J API, which requires
defining a proper implementation for the following interfaces: LanguageServer,
TextDocumentService and WorkspaceService. Those interfaces provide methods to handle LSP
messages from different categories, namely LanguageServer takes care of general
messages (e.g., initialize, shutdown, etc); TextDocumentService handles the text document
synchronization messages; and WorkspaceService implements the methods for
command execution and workspace management.
14 Textual languages are also defined by abstract/concrete syntaxes but the abstraction gap
between them is much shorter than the one for graphical languages.
15 https://www.eclipse.org/elk/</p>
      <p>The IRF de(serializer) contains the modules to save/load IRF files from/into objects
in memory. Its main modules represent the main elements of an IRF file, such as nodes
and edges.</p>
      <p>The Model Framework connector needs to be tailored to the concrete modeling
framework used for language definition and, also, to the specific language defined.
Therefore, this module may bridge the gap between any modeling framework and an
LSP-compliant language server. Basically, this connector provides the following
relevant modules: a model factory, a model operator, a model serializer and a template
generator.</p>
      <p>The model factory is used by the language server to produce an EMF-compliant
model instance from an IRF file or snippet. Therefore, this modules needs to generate
elements that are specific of the language in use. There are two main alternatives to do
that: (i) code generation, and (ii) using the reflective EMF API. In our case, we have
used the reflective EMF API to generate a model instance from an IRF file. Our
algorithm generates a new element from every node, initializing its properties according to
the abstract and concrete sections of its IRF specification, and satisfies their
relationships by parsing the IRF edges.</p>
      <p>The model operator implements a gateway to execute different operations on the
EMF model, such as validation or type-based selection. The values returned are
correspondingly parsed into LSP messages by the LSP4J modules in order to generate the
appropriate response or notification for the Web model editor (client).</p>
      <p>The model serializer is in charge of transforming model instances into the IRF, so
that they can be managed by the language server and, then, edited remotely by the
Web tool. It must consider both abstract and concrete syntax of every model element
to generate the proper IRF node representation (abstract and concrete sections). This
module is useful to load models serialized in a format that EMF can handle, e.g. XMI.</p>
      <p>Finally, taking the concrete syntax as input, the template generator produces SVG
specifications of the stencils associated to each model element of the graphical
language. Those SVG templates may afterwards be sent to the Web model editor as a
response to specific LSP message (executeCommand), hence the Web front-end may
update its stencils palette for each model instance according to its graphical language.</p>
      <p>As a final note, LSP4J provides standard socket connection, working properly for
local inter-process communication, but not adequate for connections through the Web.
Note that nowadays language servers and IDEs are usually run in the same machine,
mainly because performance and security issues. Therefore, in order to provide remote
connection for Web model editors, it is necessary to include a WebSockets server acting
as a gateway between the Web client and the graphical language server.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Related work</title>
      <p>The use of LSP for programming languages is an emerging working area where
companies are addressing the development of language servers for well-known languages.There
are also similar efforts for the development of language servers for textual
domainspecific languages, like the support provided by Typefox using Xtext (i.e., the
framework generates the server for any Xtext-based language). However, to the best of our
knowledge, little attention has been paid for the development of client/servers for
graphical languages.</p>
      <p>Only a few initiatives aim at protocol-enabled client-server solutions, namely: Obeo,
Sprotty and Eclipse Che. Obeo proposes a solution relying on an extension of LSP for
graphical languages. This initiative was released in March 2018 and is still under heavy
development. Typefox is developing Sprotty16, a framework which offers a web-based
environment for graphical languages. The tool relies on Xtext and LSP to synchronize
a textual language instance between client and server, which is then rendered at
clientside to show a diagram projection. The projection is only a view and therefore no edition
is allowed. Eclipse Cheis maybe a special case, as it aims at providing an IDE in the
Cloud. Eclipse Che incorporates a server which provides the set of IDE capabilities
of the original desktop-based Eclipse. The server can also connect to LSP language
servers to provide support to additional textual programming languages. Thus, Eclipse
Che actually works as a generic client for textual LSP language servers. However, the
support for graphical languages is still very limited.</p>
      <p>
        Our work is also related to those approaches developed to deliver modeling
functionality as a service [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] (a.k.a., Model as a Service, MaaS). A MaaS approach can cover
any modeling functionality (e.g., model storage, using CDO17 or Morsa [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]; or code
generation as described by Crocombe et al. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]) but we are specially interested in the
support for designing and creating graphical models. Thus tools such as AToMPM [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ],
GenMyModel [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and WebGME [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] propose client-server solutions where users can
create and edit instances of graphical modeling languages. However, all of them rely on
proprietary protocols for the client-server communication.
16 https://github.com/theia-ide/sprotty
17 https://www.eclipse.org/cdo
      </p>
      <p>
        Several works propose the development of stand-alone Web-based modeling
environments (e.g., [
        <xref ref-type="bibr" rid="ref11 ref13 ref15 ref4 ref6">6, 15, 4, 13, 11</xref>
        ]). However, we may consider these kind of works as
monolithic editors.
5
      </p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion and future work</title>
      <p>In this paper we present the design and implementation of an infrastructure to build
EMF-based model language servers relying on standard LSP and a text-based model
representation shared between clients and servers. From our point of view, reusing
current model-driven technologies is key to language servers affordable implementation.
Moreover, we provide a proof-of-concept implementation of a generic Web-based client
editor connecting to our EMF language servers. As future roadmap, the following
working lines are worth to be highlighted.</p>
      <p>
        Generation of language servers. An automatic approach to generate the required
server implementation would promote the adoption of decoupled solutions. This
implementation could be derived from a textual definition of the language abstract and
concrete syntaxes (e.g., the one used in the Collaboro approach [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]). In our LSP
infrastructure, it could be generated: (1) the modeling framework connector for the specific
language (i.e., model factory and serializer), and (2) the language description in SVG
format (i.e.,template generator).
      </p>
      <p>
        Performance assessment. LSP-based client-server synchronization in a fully
decoupled scenario (i.e., both ends are deployed in different systems) may entail a high
bandwidth consumption and therefore significantly impact the editor performance. The
fewer the operations handled at client-side the greater the number of messages to send to
the server. Therefore, at least for Web-deployable clients, it seems coherent to provide
support to as many operations as possible to reduce bandwidth without compromising
editor genericity. Further studies in real cases should be carried out to identify
performance issues and derive proper optimizations for the LSP infrastructure. Additionally,
one of the main bottlenecks of the current implementation is the lack of support of
incremental updating of EMF models. Therefore, every time an IRF instance needs to
be operated (e.g., for validation) the corresponding EMF model needs to be generated
from scratch. This continuous generation of EMF models may have a significant impact
on tool performance. We plan to deal with it in future versions of the infrastructure.
IRF evolution. IRF design has been mainly driven for two main forces: (1) the
necessity of a representation encompassing abstract and concrete syntaxes properties in a
single resource; and (2) the provision of the strictly necessary information to the client
side. Its definition has been inspired by OMG’s Diagram Interchange Format [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and
the JSON-based protocol used by the AToMPM graphical modeling tool [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
Nevertheless, further and more complex case studies are needed for a proper evaluation of its
completeness and suitability.
      </p>
      <p>Security issues. The development of our Web-deployable model editor raised some
security issues, e.g. Cross-Origin Resource Sharing (CORS). Security issues need to be
analysed in further works.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Crocombe</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>D.S.:</given-names>
          </string-name>
          <article-title>Code Generation as a Service</article-title>
          .
          <source>In: Int. Workshop on ModelDriven Engineering on and for the Cloud</source>
          . pp.
          <fpage>25</fpage>
          -
          <lpage>30</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Dirix</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Muller</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aranega</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>An Online UML Case Tool</article-title>
          . In: Europ.
          <source>Conf. on ObjectOriented Programming</source>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Espinazo-Paga´n</surname>
          </string-name>
          , J.,
          <string-name>
            <surname>Cuadrado</surname>
            ,
            <given-names>J.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Molina</surname>
            ,
            <given-names>J.G.</given-names>
          </string-name>
          :
          <article-title>A Repository for Scalable Model Management</article-title>
          .
          <source>Software and System Modeling</source>
          <volume>14</volume>
          (
          <issue>1</issue>
          ),
          <fpage>219</fpage>
          -
          <lpage>239</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Hiya</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hisazumi</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fukuda</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nakanishi</surname>
          </string-name>
          , T.:
          <article-title>clooca : Web based tool for Domain Specific Modeling</article-title>
          .
          <source>In: Demo at Int. Conf. on Model Driven Engineering Languages and Systems</source>
          . pp.
          <fpage>31</fpage>
          -
          <lpage>35</lpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Izquierdo</surname>
            ,
            <given-names>J.L.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cabot</surname>
          </string-name>
          , J.:
          <article-title>Collaboro: a Collaborative (Meta) Modeling Tool</article-title>
          .
          <source>PeerJ Computer Science</source>
          <volume>2</volume>
          ,
          <issue>e84</issue>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Leal</surname>
            ,
            <given-names>J.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Correia</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paiva</surname>
            ,
            <given-names>J.C.</given-names>
          </string-name>
          :
          <article-title>Eshu: An Extensible Web Editor for Diagrammatic Languages</article-title>
          .
          <source>In: Symp. on Languages, Applications and Technologies</source>
          . pp.
          <volume>12</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          :
          <fpage>13</fpage>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. Maro´ti,
          <string-name>
            <surname>M.</surname>
          </string-name>
          , Kecske´s,
          <string-name>
            <given-names>T.</given-names>
            , Kereske´nyi, R.,
            <surname>Broll</surname>
          </string-name>
          ,
          <string-name>
            <surname>B.</surname>
          </string-name>
          , Vo¨lgyesi,
          <string-name>
            <surname>P.</surname>
          </string-name>
          , Jura´cz, L., andA´ kos Le´deczi, T.L.:
          <article-title>Next Generation (Meta)Modeling: Web- and Cloud-based Collaborative Tool Infrastructure</article-title>
          . In: Workshop on Multi-Paradigm Modeling. pp.
          <fpage>41</fpage>
          -
          <lpage>60</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8. OMG:
          <article-title>UML Diagram Interchange</article-title>
          .
          <source>OMG</source>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Popoola</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Carver</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gray</surname>
          </string-name>
          , J.:
          <article-title>Modeling as a service: A survey of existing tools</article-title>
          .
          <source>In: Workshop on Model-driven Engineering Tools (MDETools'17)</source>
          . vol.
          <year>2019</year>
          , pp.
          <fpage>360</fpage>
          -
          <lpage>367</lpage>
          . CEUR Workshop Proceedings (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Rodriguez-Echeverria</surname>
          </string-name>
          , R., Ca´novas Izquierdo, J.,
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cabot</surname>
          </string-name>
          , J.:
          <article-title>Towards a Language Server Protocol Infrastructure for Graphical Modeling</article-title>
          .
          <source>In: Int. Conf. on Model Driven Engineering Languages and Systems</source>
          . p.
          <source>(on press)</source>
          (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Rose</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paige</surname>
          </string-name>
          , R.:
          <article-title>Eugenia live: a flexible graphical modelling tool</article-title>
          . In: Workshop on Extreme Modeling. pp.
          <fpage>15</fpage>
          -
          <lpage>20</lpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          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>Mannadiar</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hansen</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mierlo</surname>
            ,
            <given-names>S.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ergin</surname>
          </string-name>
          , H.:
          <article-title>AToMPM: A Web-based Modeling Environment</article-title>
          .
          <source>In: Demo at Int. Conf. on Model Driven Engineering Languages and Systems</source>
          . pp.
          <fpage>21</fpage>
          -
          <lpage>25</lpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Thum</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwind</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schader</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>SLIM - A Lightweight Environment for Synchronous Collaborative Modeling</article-title>
          .
          <source>In: Int. Conf. on Model Driven Engineering Languages and Systems</source>
          . pp.
          <fpage>137</fpage>
          -
          <lpage>151</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. Vuyovic´,
          <string-name>
            <surname>V.</surname>
          </string-name>
          , Maksimovic´,
          <string-name>
            <surname>M.</surname>
          </string-name>
          , Perisˇic´,
          <string-name>
            <surname>B.</surname>
          </string-name>
          :
          <article-title>Sirius: A rapid development of DSM graphical editor</article-title>
          .
          <source>In: Int. Conf. on Intelligent Engineering Systems</source>
          . pp.
          <fpage>233</fpage>
          -
          <lpage>238</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , Garrigo´s,
          <string-name>
            <given-names>I.</given-names>
            ,
            <surname>Firmenich</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.</surname>
          </string-name>
          :
          <article-title>Towards Automatic Generation of Web-Based Modeling Editors</article-title>
          .
          <source>In: Int. Conf. on Web Engineering</source>
          . pp.
          <fpage>446</fpage>
          -
          <lpage>454</lpage>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>