<!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>Tagging Model Properties for Flexible Communication</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Manuela Dalibor</institution>
          ,
          <addr-line>Nico Jansen, J o ̈rg Christian Kirchhof, Bernhard Rumpe, David Schmalzing</addr-line>
          ,
          <institution>Andreas Wortmann Software Engineering, RWTH Aachen University</institution>
        </aff>
      </contrib-group>
      <fpage>39</fpage>
      <lpage>46</lpage>
      <abstract>
        <p>-Model-based systems engineering and digital manufacturing aim to facilitate monitoring, integration, and optimization of cyber-physical production systems (CPPS) through so-called “digital shadows”. In contrast to “digital twins”, digital shadows are purposefully abstracted models of information emitted by the underlying CPPS, hence they do not manipulate the system themselves. We present a method to derive digital shadows from design-time models that can be extended with sophisticated analyses and operate physically distributed without changing the original models. To this end, tag models assign communication information to properties of design-time models from which we generate an Message Queuing Telemetry Transport (MQTT) based communication infrastructure that makes these accessible to other models. This enables the flexible integration and exchange of model information at runtime without polluting these with extra communication information. We present a tagging language for model communication description, a systematic method to apply this to design-time models, generation of a communication infrastructure, and their implementations with the MontiCore language workbench. This, ultimately, facilitates engineering physically distributed digital shadows and, hence, facilitates developing the interconnected CPPS of the future. Index Terms-Digital Shadow, Digital Twin, Cyber-Physical Systems, IoT, Model-based Systems Engineering</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        Manufacturing is shifting from document-based to
modelbased approaches to manage the complexity of the future’s
resilient, distributed, and interconnected cyber-physical
production systems (CPPS) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Model-based systems engineering [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]
enables this shift by leveraging heterogeneous models as
primary development artifacts that conform to domain-specific
languages (DSLs) aimed at the different systems engineering
stakeholders [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Part of this evolution is augmenting CPPS for
the industrial internet of things (IoT) with “digital twins” [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]
or “digital shadows” [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Both serve as abstraction from
the underlying CPPS to analyze manufacturing resources and
processes. In contrast to digital twins, digital shadows are
purposefully abstracted sets of related models based on
information emitted by the underlying CPPS, hence they cannot
manipulate the system themselves. This prevents automatically
interfering with manufacturing processes and resources in
hazardous ways.
      </p>
      <p>This research has partly received funding from the German Research
Foundation (DFG) under grant no. EXC 2023 / 390621612. The responsibility
for the content of this publication is with the authors.</p>
      <p>
        The efficient model-based systems engineering of digital
shadows for CPPS demands translation from their prescriptive
design models to run-time infrastructure that enables
integrating mechanisms for abstraction and analysis as well as
physically distributed communication. Where current research
focuses on integrating models and model interfaces, these
usually only support logical integration [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], provide plain service
interfaces without communication infrastructures [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], or
pollute the design models with communication information
complicating their reuse in other contexts [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Moreover,
such contributions often focus on model-interpretation [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ],
[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] infrastructure not easily available on major digital shadow
platforms (e.g., Microsoft’s Azure, Amazon’s Greengrass, or
Siemens’ MindSphere).
      </p>
      <p>We present a method to derive digital shadow
implementations from design models that can be extended with means
for sophisticated analyses or abstractions and can operate
physically distributed without changing the design models.</p>
      <p>Instead of pairwise combining design models and
communication models a priori or polluting models with communication
information, we propose to derive and use specific tagging
languages that support adding communication information a
posteriori and decoupled from the models’ primary concerns.</p>
      <p>We, therefore, conceived a language-agnostic method to
lift design models to extensible, physically distributed
runtime implementations by tagging their inputs and outputs with
communication information and making these accessible to
other models by integrating these over the Message Queuing
Telemetry Transport (MQTT) protocol. This enables the
flexible integration and exchange of model information at runtime
without adding communication information to these. We,
thus, present mechanisms to derive domain-specific tagging
languages (DSTLs) specific to the DSLs of communicating
models that describe communication information and a
systematic method to apply this to design models to make these
usable at runtime. The tagging languages are strongly typed
w.r.t. the tagged DSLs and the communication infrastructure.</p>
      <p>Our mechanism supports tagging models elements, checking
the validity of the communication description relative to both,
and synthesizing a communication infrastructure.</p>
      <p>The contributions of this article, hence, are</p>
      <p>A concept to derive DSTLs enriching design DSL models
with communication information.</p>
      <p>Copyright © 2019 for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).
A method of deriving digital shadows from design-time
models that supports extension with analyses and
connects digital shadows via MQTT-based communication
using these domain-specific tagging languages.</p>
      <p>A MQTT-based communication infrastructure and model
interfaces for tagged models.</p>
      <p>This, ultimately, facilitates engineering physically distributed
digital shadows and, hence, facilitates developing the
interconnected CPPS of the future.</p>
      <p>In the following Sect. II introduces preliminaries and
Sect. III presents an example. Sect. IV presents our method for
tagging-based model communication, before Sect. V discusses
it. Sect. VI highlights related work and Sect. VII concludes.</p>
    </sec>
    <sec id="sec-2">
      <title>II. BACKGROUND We realize a flexible communication infrastructure by integrating model information using models at runtime, the MontiCore language workbench, and tagging languages.</title>
      <sec id="sec-2-1">
        <title>A. Models at Runtime</title>
        <p>
          Traditional model-driven development (MDD) [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]
incorporates modeling software systems at design time to foster
their development. Runtime models extend this approach to
running applications, enabling models to provide an abstract
representation of system components [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. The resulting
abstraction combines the static structure of the software with
runtime data in a runtime model [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ], which evolves with
the system [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. This enables the encapsulation of running
systems through runtime models, facilitating maintenance and
further development. Additionally, runtime models support
monitoring and reconfiguration of software applications and
serve as interfaces for self-adapting systems [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. Thus, they
bridge the gap between suitable abstraction and the technical
realization during operation.
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>B. MontiCore Language Workbench</title>
        <p>
          MontiCore [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] is a workbench for developing
compositional modeling languages [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]. MontiCore facilitates
language definition via context-free grammars (CFGs) for
simultaneous development of abstract and concrete syntax. These
grammars contain production rules, which consist of terminals
and non-terminals to determine the allowed sentences in a
language. From a grammar, MontiCore generates an infrastructure
for language development comprising parsers, abstract syntax
classes, validity checks, and code generators. Textual models
that adhere to the underlying language are processed and
transformed into a corresponding abstract syntax tree (AST),
a structural representation of the model’s information without
syntactic sugars. MontiCore then performs well-formedness
and validity checks on these ASTs using Java context
conditions. Finally, template based code generators further process
the ASTs and produce artifacts of a target language. For more
sophisticated development, MontiCore also supports language
composition. This facilitates reusability of constituents of
existing languages via inheritance, aggregation, or embedding.
Furthermore, it is possible to extend generated abstract syntax
classes using MontiCore’s TOP mechanism. It allows inserting
a handwritten implementation, which is seamlessly integrated
into the generated artifacts.
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>C. Tagging Modeling Languages</title>
        <p>
          DSTLs [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] are a common approach for enriching models
with further information without modifying the
corresponding DSL definition. They are used to tag constituents of a
model for identifying specific topics and attaching additional
information for further use (e.g., for code generation). The
original models remain free of modifications, which fosters
the separation of concerns and thus reusability [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. In general,
DSTLs comprise a tag language Tag L and schema Schema
L to enable tagging for a language L. Using language
inheritance, Tag L extends L to access the abstract syntax elements,
i.e., its nonterminals. Furthermore, it extends Common Tag,
a predefined language, which provides default modeling rules
to tag models. Thus, Tag L combines the original modeling
language L and Tag L to enable tagging for L. Schema L
contains the overall tagging schema for L. It defines derivation
rules that enable addressing model elements of the original
language. Hence, it defines the general set of usable tags
concerning their corresponding elements. Model schemas,
which conform to Schema L, then specify the concrete set of
tags. A tag model, which is a model of Tag L, finally utilizes
this schema to tag elements for models of the original language
L, optionally adding information. Via this mechanism, the tag
model enriches the initial model for a specific purpose while
maintaining its general usage.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>III. EXAMPLE</title>
      <p>Industry 4.0 is a prominent example of a domain
incorporating complex, interconnected, and physically distributed
CPPS that cooperate to achieve a common goal and exchange
information at runtime. To provide such an example, we
developed a smart factory demonstrator simulating a yogurt
factory consisting of multiple CPPSs and mobile robots 1. Via
a web-based user interface customers can order and customize
yogurts choosing between different kinds of yogurts,
additional fruits, and toppings. The factory consists of multiple,
physically distributed production stations specialized to fulfill
specific tasks. Production stations are connected via conveyor
belts or via mobile robots that drive autonomously between
the stations and submit ingredients or transport yogurts.</p>
      <p>The yogurt production is coordinated by a manufacturing
execution system (MES), which manages production and
ensures that the yogurt factory produces yogurts as ordered
by the customers. When controlling the execution of the
factory, the manufacturing execution system relies on
models describing the factory, the yogurt configuration, and the
behavior of each robot. To produce the configured yogurt the
manufacturing execution system relies on information about
the current state of the factory and its subsystems. We call
these purpose oriented data sets digital shadows. Fig. 1 gives
1https://www.youtube.com/watch?v=KTr uJ5F03E
Runtime
Sensor Data</p>
      <p>Runtime</p>
      <p>Sensor Data
updates
Robot
Shadow
T1</p>
      <p>T2
transport robots
controls</p>
      <p>Position
Task
Max Load</p>
      <p>Manufacturing</p>
      <p>Execution</p>
      <p>System
controls
Factory Shadow</p>
      <p>Processing</p>
      <p>Station</p>
      <p>
        Hardware in industrial settings is often subject to harsh
environmental conditions such as e.g., vibration or high
humidity levels, that may cause the devices to malfunction [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
In our scenario, the mobile transport robots are a common
cause of failure. They receive requests from different
productions stations to transport goods between them, but are
subject to inaccurate sensors and hardware failures and thus
may lose their way or fail otherwise. If one of the mobile
robots fails, it should be ensured that the factory continues
to work nonetheless. The MES achieves this by analyzing
the digital shadows and automatically detects non-responding
robots, by periodically checking registered devices. If the MES
registers a non-responding device it has to adapt the factory’s
behavior accordingly. Digital shadows further help to integrate
previously unknown production systems or mobile robots into
the system at runtime.
      </p>
      <p>A wide variety of systems are in use in the factory, the
development of which requires the experience of different
domain experts, design models of various domain-specific
languages are used to specify the individual systems. To
enable their developers, who may not have MQTT expertise,
to exchange information between the individual, physically
distributed subsystems of the factory, we developed a
methodology that facilitates enriching design models with
communication information.</p>
    </sec>
    <sec id="sec-4">
      <title>IV. METHODOLOGY</title>
      <p>
        We present a method for deriving digital shadow
implementations from design-time models to support efficient
model-based systems engineering. Derived implementations
enable integration at runtime of physically distributed
systems through communication over well-defined interfaces.
an overview about the use case. A digital shadow is abstracted
information emitted by an underlying CPPS, which provide
services and have a location. The digital shadow of the factory
is a map that represents the positions of all production stations,
available paths between stations, and current locations of the
mobile robots. The digital shadow of a transport robot contains
its current position, its current task, and its maximal workload.
The controller relies on the information provided by the digital
shadows to decide which robot should perform which task.
Derivation in this context is the systematic development and
generation of an implementation, as well as the integration
with the implementation of the corresponding CPPS, using
a given set of predefined steps and rules. We use model
tagging [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] to identify those elements of a model that should
be available to or are expected from other systems in the
environment. Therefore, tags define a model’s communication
interface over which integration and message exchange is
possible at runtime.
      </p>
      <p>order</p>
      <p>Fig. 2. Enriching models with communication information through tag models
and deriving physically distributed run-time implementations.</p>
      <p>An exemplary overview of the process for enriching
design models with communication information and deriving
an implementation for distributed communication is presented
in Fig. 2. The top part shows models of our example
(see Sect. III), namely an MES coordinating production and
a CPPS fulfilling production tasks. The bottom part shows the
derived implementation. The models of MES and CPPS have
no relation to each other and can be reused independently. In
particular, knowledge about the systems their implementations
interact with at some future runtime is not required at the
time of their creation, which enables to deploy them in
different contexts. Instead, we define their interfaces ad-hoc
in separate tag models, which identify the inputs and outputs
to given design models. Communication is realized over the so
defined interfaces via topic channels whose types are explicitly
modeled in an overlying domain model. To this end, tag
models also identify the corresponding topics for inputs and
outputs. The exemplary tag models in Fig. 2 identifies the
elements order of the MES and Plan of the CPPS as output
and input respectively and Task as the corresponding topic
channel. From these models, we derive an implementation
that enables integration at runtime and communication of
distributed systems using publish/subscribe via MQTT. To this
end, we generate publish and subscribe components for outputs
and inputs, which realize communication via corresponding
topic channels and need to be manually integrated with the
implementations of tagged models via lightweight interfaces
through the extension of corresponding data classes.
languages
models</p>
      <sec id="sec-4-1">
        <title>A. Deriving Tag and Schema Languages</title>
        <p>
          To derive an implementation realizing a flexible
communication infrastructure for model integration at runtime via
tagging, first, an appropriate tag language suitable for the
target modeling language is needed, so that tags can reference
elements of models of the target language and enrich them
with communication information. Our methodology supports
deriving such tag languages and provides the necessary
infrastructure for the language derivation process. Fig. 3, adapted
from the original source [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], shows the languages and models
involved, as well as their relations.
        </p>
        <p>
          Input for the language derivation process is an existing
DSL L for which a language engineer wants to enable domain
experts to enrich models of L with communication
information. Given L as input, following the language derivation
process, a tag language (Tag L) and a schema language
(Schema L) specific to input language L are derived. The
tag language enables to create tag models (Tags) that
enrich models of L (Design) with communication
information, and the schema language enables to create tagschema
(Schema) that define viable tag types. Tags must conform to
a tagschema and refer to elements of the input model. To
this end, the tag language builds on L using MontiCore’s
language inheritance mechanism. Furthermore, the tag
language also builds on a common tag language (Common
Tag), a provided language that serves as a basis for all
tag languages and defines the fundamental structure of all
tag models in this context. Besides defining the basic
abstract and concrete syntax of all tag models, the grammar
of the common tag language also provides extension points
through interfaces, which need to be implemented to derive
a specific tag language, so that elements of models of the
input language can be unambiguously referenced. Fig. 4
shows the MontiCore grammar of the common tag language
(Common Tag), which is based on [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] with some
adjustments for deriving tag languages suitable for enriching target
domain models with communication information. Defined
in the top level production TagModel, each tag model
starts with a conforms to keywords followed by a list
of QualifiedName referencing the tagschemata a tagmodel
conforms to. Each tag model has a name, which is defined by
Name after the tags keyword, and defines tags for a specific
target model, which is referenced by a QualifiedName
after the for keyword. In the following block individual tags
can be specified through the TargetElement production.
Each tag starts with the keyword tag followed by a list
of ModelElementIdentifier, which identify elements
of the target model the corresponding tag refers to and is
an interface which is implemented in the derived tag
language (Tag L) by productions of the input language L. A
ModelElementIdentifier uniquely identifies an
element and could, e.g., be a QualifiedName or the concrete
syntax of the target element.
        </p>
        <p>By default, using the derived tag language, tags can be
defined for all nonterminals of input language L. However,
tags must conform to tag types defined in a tagschemata
(Schema), restricting the element types a tag can be added
to and providing a type system for tags. Tagschemata are
models of the derived schema language (Schema L), which
builds on a common schema language (Common Schema)
and depends on L during the language derivation process.
Similar to the common tag language, the common schema
language is the basis of all schema languages, that is it
defines the fundamental structure of all schema models which
(Schema L) inherits. Besides defining the basic concrete and
abstract syntax of all schema models, the grammar of the
common schema language also offers extension points through
interfaces, which must be implemented so that elements of the
input language can be referenced unambiguously. Fig. 5 shows
the MontiCore grammar of the common schema language
(Common Schema). Defined in the TagSchema production,
a tagschema starts with the keyword tagschema and has
a name. A TagSchema holds a list of tag type definitions
01 grammar CommonTags extends Common {
02 TagModel =
03 "conforms" "to" identifier of tagschemas
04 QualifiedName ("," QualifiedName)* ";"
05 "tags" Name "for" targetModel:QualifiedName
06 "{" (Context | tags:TargetElement)* "}";
07 target model identifier
08 Context = "within" ModelElementIdentifier "{"
09 (Context | tags:TargetElement)* "}";
10 context for nested
11 interface Tag; model elements
12 interface ModelElementIdentifier;
13
14 TargetElement =
15 "tag" ModelElementIdentifier
16 ("," ModelElementIdentifier)*
17 "with" Tag ("," Tag)* ";";
18
19 OutTag implements Tag = "outgoing" topic:Name;
20 InTag implements Tag = "incoming" topic: Name;
21 }
topic identifier
(TagType), which are each introduced through the tagtype
keyword. The OutTagType and InTagType productions
are the implementations of TagType. Each tag type has
an optional scope (Scope), which is a list of identifiers
(ScopeIdentifier) referencing those language elements
of L a tag type can be defined for. The ScopeIdentifier
is an interface that is implemented in the schema language
(Schema L) during the language derivation process. Here, the
name of each nonterminal of L is used as its unique identifier.
01 grammar CommonTagSchema extends Common {
02 TagSchema = "tagschema" Name
03 "{" TagType* "}"; list of tag types
04
05 interface TagType;
06 interface ScopeIdentifier;
07
08
09
10
11 OutTagType implements TagType =
12 "tagtype" "outgoing" Scope? ";";
13
14 InTagType implements TagType =
15 "tagtype" "incoming" Scope? ";";
16 }
applicable language
Scope = "for" element identifier
ScopeIdentifier ("," ScopeIdentifier)*;
MCG</p>
      </sec>
      <sec id="sec-4-2">
        <title>B. Enriching DSL Models with Communication Information</title>
        <p>The derivation of the tag language (Tag L) and schema
language (Schema L), which extend the respective commons,
enables to enrich input models with communication
information, from which we derive implementations that emit digital
MCM
MCM
01 statechart CPPS {
02 initial state Idle;
03 state Assign; guard
04 Idle -&gt; Assign [Plan == true] / {plan()};
05 ...
06 } transition action
shadows via MQTT-based communication. Central for the
derivation are tag models (Tags) that enrich target models
with communication information. Each tag refers to elements
of a target model and assigns tag-type-specific properties to
that element. Tags of the derived tag language (Tags L)
can mark elements of a target model as output or input and
assign topics (cf. Fig. 4, ll. 19-20), defining for which model
elements and via which topics values are communicated to
and expected from systems in the environment. Tags must
conform to a tag type definition. By defining tag types in a
tagschema (Schema), a language developer specifies the type
of model elements a tag can be applied for. To this end, tag
type definitions in a tagschema refer to nonterminals in L.
Besides elements of the target design model, tags also refer to
elements of an overlaying domain model (Topics) specifying
the topic channels over which models can communicate. Tags
define the model’s interface, that is the set of input and
output model elements and the topic channel over which their
values are communicated. This way of defining interfaces of
models facilitates avoiding pollution of the original model, as
tags are defined externally. Moreover, it supports the concept
of encapsulation, as inter-communication is realized through
well-defined interfaces.</p>
        <p>An example for enriching a model, here a statechart, with
communication information is shown in Fig. 6. The statechart
in textual notation is the modeled behavior of a CPPS that
can be commissioned to execute some tasks. The CPPS is
initially in an Idle state. If a new task is available for the
CPPS, then it transitions into a Assign state and plans the
execution of its task. The information whether a new task is
available may not necessarily be provided by the CPPS itself,
but instead is expected as input from other systems in the
«rte»</p>
        <p>Subscriber
void subscribe()</p>
        <p>«gen»
PlanSubscriber
Task getTask()
void update()
«gen»
Task</p>
        <p>CPPS’s environment, which operate physically distributed and
may be exchanged at runtime. To not pollute the behavioral
model of the CPPS with additional information and therefore
allow to reuse the model in different context, the interface
for distributed communication of the CPPS is modeled in the
tag model MyTags. The tag model refers to the statechart of
the CPPS and provides two of its elements with additional
properties. That the availability of new tasks is expected as
input is provided by the tag of Plan (l. 5), which also
specifies Task as the corresponding topic channel via which
the information is received at runtime. To uniquely identify
Plan, which is not a top-level element of the statechart, its
scope needs to be provided. To this end, the within statement
(l. 4) provides a unique scope identifier through the concrete
syntax of the corresponding transition. The tag model further
specifies the state Assign as output (l. 7) and Busy as the
corresponding topic channel, that is the CPPS informs systems
in its environment whenever it is assigned a task, i.e., enters
the Assgin state. The corresponding topics themselves are
modeled in an overlaying domain model which is not provided
here. As stated in the tag model (l. 1), tags must conform to the
tagschema SCPubSubTagSchema, which defines tag types
for statecharts. Here it is specified that only Variables of a
statechart can be specified as input and that only States can
be specified as output. Tag models that claim conformity to
this tagschema but violate at least one of its tag type definitions
are invalid.</p>
      </sec>
      <sec id="sec-4-3">
        <title>C. Deriving a Communication Integration</title>
        <p>The integration of systems always poses a challenge,
especially if their integration was not planned in advance. Using
tags we are able to enrich design models with communication
information a posterior. We now need to derive an
implementation from these while maintaining the abstraction of
communicational detail. As the realization of elements of the
base model and the messaging structure to a given topic may
have incompatible types, the derivation of the implementation
is not fully automated but requires application developers to
implement a wrapper between these.</p>
        <p>
          The resulting implementation for the derivation process
for MQTT-based integration is shown in Fig. 7 using the
example in Fig. 6. From an overlaying domain model, which
defines available topics and their message types, we generate
classes that type the data structure for the respective topics.
In our example, these are the classes Busy and Task. The
derived implementation automatically supports publishing and
subscribing to these topics. To this end, for specified outputs
and inputs we generate corresponding tag-specific publisher
and subscriber classes, respectively, that provide the required
functionality for publishing and subscribing to topics with
respect to the defined data structure. As Assign and Plan are
specified output and input in our example, we receive
generated classes AssignPublisher and PlanSubscriber.
Tag-specific publisher and subscriber classes extend classes
Publisher and Subscriber of the provided run-time
environment, which encapsulate a realization of MQTT.
Application developers need to integrate this realization into the
implementation derived from the corresponding target model. To this
end, tag-specific publisher and subscriber classes function as
a lightweight interface between the realization of MQTT and
the system’s implementation. That is, tag-specific publisher
classes provide a method publish(X x), where X is the
corresponding topic data class, such as publish(Busy b)
of AssignPublisher, that automatically wraps received
values in an appropriate message and publishes to the
corresponding topic. Application developers need to realize the
call of this method in the implementation of the target model.
To this end, we assume that the generator translating the
target model supports the TOP mechanism [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] and provides
a data class for each model element that can be enriched
with communication information, together with corresponding
getter and setter. Using the TOP mechanism, an application
developer can extend generated implementation classes such
as Subject1 with handwritten code and thus override the
setter setAssign(A a) to publish value changes through
the call of publish(Busy b) of AssignPublisher if
the setter is called. An application developer furthermore needs
to provide a transformation between system-specific and topic
specific data types, such as between the implementation of
Assign and Busy. Realizing the data transformation and
appropriately calling the corresponding publish() method
completes the integration of the publishing functionality via
the MQTT client. Vice versa, for subscription functionalities
an application developer needs to integrate the tag-specific
subscriber class, such as PlanSubscriber. To this end, the
subscriber class stores values received via the MQTT client,
which can be access in the implementation of the target model.
Again, a transformation between system specific and topic
specific data types are required.
        </p>
        <p>
          Our process for MQTT-based integration of physically
distributed systems thus enables flexible integration of modeled
systems for arbitrary DSLs. The use of the TOP mechanism
further supports easy integration of analyses and data
preparation already at the CPPS, i.e., before sending the data. Thus it
is possible to modify the transmission behavior, e.g., to define
under which conditions a message is sent. While the provided
methodology may be applicable to other object-oriented
programming languages and technological spaces, we realized the
derived implementation in Java using M2T transformations via
MontiCore’s template-based code generators and the Eclipse
Paho Java Client [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ].
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>V. DISCUSSION</title>
      <p>Our approach of realizing a flexible communication
infrastructure for models at run-time is based on tagging languages
and the publish/subscribe mechanism of the MQTT protocol.
The goal was to achieve this communication without suffering
from the disadvantages of current connectivity solutions. The
communication structure should support the exchangeability
of individual devices. Additionally, the models themselves
should be free of communication overhead to facilitate domain
experts’ development and promote reusability.</p>
      <p>
        Our solution provides flexible communication and
communication reconfiguration between models at runtime
independent of pre-defined interfaces and underlying hardware.
Tagging input and output of the models describes the
communication infrastructure. Since the modifications are established
in separate tag models, the original models remain unchanged.
For communication we use MQTT, additionally increasing the
exchangeability of models. The publish/subscribe mechanism
allows information transfer between models without the need
for mutual knowledge. Thus, both models and communication
interfaces are highly flexible and interchangeable. We have
decided to use MQTT over other protocols based on the
intended use case. MQTT is very well suited for
connecting devices in the context of the Internet of Things (IoT).
Furthermore, our solution is highly scalable in terms of the
number of used models. Following the proposed concept of
[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], our approach is extensible to any modeling language,
providing a general solution. Since tagging languages can be
automatically derived from the modeling language, tagging
new languages is convenient. This makes the communication
infrastructure highly adaptable to new languages. Since the
presented approach is based on tagging languages and the
MQTT protocol, it is also subject to their disadvantages.
As tagging languages are automatically derived from a base
language, the scope identifier suffers limitations, as identifying
statements in highly nested structures would require
replicating containment hierarchies. Although manual extension of
derived tagging languages to provide more convenient scope
identifier, such as qualified names, can solve this problem, they
may no be available in all cases. Therefore, external tagging is
most suitable in rather flat languages. Furthermore, evolution
of the base model or modeling language introduce additional
effort, as tag model and tagging language need to evolve
as well, tough this effort is reduced through the automatic
derivation of tagging languages. MQTT requires a broker to
distribute messages, which is a bottleneck and single point of
failure. However, as our approach is intended for production
networks in the IoT, MQTT proved to be very well suited for
the realization.
      </p>
      <p>Our contribution provides a suitable approach towards smart
factories, as digital shadows can be easily established to
support planning, monitoring, and communication of individual
factory constituents. The flexible communication infrastructure
also supports the application of digital shadows in the context
of advanced systems engineering in Industry 4.0. Future work
may include the investigation of smart failure management via
a business logic over the communication infrastructure.</p>
    </sec>
    <sec id="sec-6">
      <title>VI. RELATED WORK</title>
      <p>
        Combining the data of different models at runtime requires
monitoring the system. Different commercial cloud providers
offer monitoring for their (industrial) IoT devices [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]–[
        <xref ref-type="bibr" rid="ref23">23</xref>
        ].
Amazon Web Services (AWS) offers a device shadow that is
a representation of a device’s state at runtime in JSON
format [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. The device shadow can be modified and will then be
synchronized with the device the next time it connects to AWS.
Microsoft Azure offers similar functionality with Azure digital
twins [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. Spatial intelligence graphs can further describe
the location the devices are deployed in. Similarly, Siemens
Mindsphere offers a digital twin, whose data can be used to
optimize the performance of the production system [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. These
systems do not include design-time models while extracting
knowledge from monitored data. None of these supports
deriving digital twins (or shadows) from models.
      </p>
      <p>
        B-COol [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] allows connecting models using coordination
patterns. The approach requires all connected languages to
conform to an interface that abstracts from the behavioral
semantics of the language. Models then communicate via
events which are combined using coordination patterns. In
contrast to B-COol, our method allows us to connect
models distributed over multiple devices. MontiArc [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] allows
to embed behavioral DSLs into components of component
&amp; connector architectures. Information between models of
embedded DSLs is exchanged over component ports and
demands for their apriori architectural integration by establishing
connectors between the components at design time. The same
holds, when using other architecture modeling languages, such
as UML-RT [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ], for instance. This inflexibility is also visible
in many IoT modeling frameworks. Many frameworks, such
as MDE4IoT [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], embed communication-related code in the
models. SysML4IoT [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] transforms system models into
platform specific models that are based on the Data Distribution
Service (DDS) to realize a publish/subscribe communication.
ThingML [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ] and FRASAD [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ] provide DSLs that require
users to specify sent and received messages. Compared to
these approaches, our approach is more flexible as the modeler
does neither need to know about the concrete messages, neither
do the models rely on a specific communication framework or
are polluted with communication information.
      </p>
      <p>
        UML profiles [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ] enable to enrich UML models with
stereotypes and tag values through a generic extension
mechanism. Though originally limited to UML models, they have
been extended to EMF [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ]. UML stereotypes and tag values
provide additional information to models, however in an
informal way, as properties are not made explicit for
stereotypes and there is no explicit type system for tagged values.
Moreover, they are added to model elements directly whereas
in our approach tags are provided externally to support adding
information a posteriori and using models in different context.
      </p>
    </sec>
    <sec id="sec-7">
      <title>VII. CONCLUSION</title>
      <p>We have presented a non-invasive method to enrich design
models with communication information from which their
MQTT-based integration can be derived. This method relies
on tagging base models according to communication-specific
tag schemata that define which of their properties are
communicated over MQTT topics. From these, we generate the
infrastructure to make the models’ implementations talk (i.e.,
read and write messages from and to MQTT topics). This
generation considers handcrafted augmentations and
automatically integrates these into the resulting artifacts such that some
analyses can already be performed at the CPPS before sending
tagged information. Overall, our method facilitates deriving
digital shadows of system models without polluting the design
models and, ultimately, can serve as a basis for self-adaptive
digital twins of CPPS.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Estefan</surname>
          </string-name>
          , “
          <article-title>Survey of Model-based Systems Engineering (MBSE) Methodologies,” Incose MBSE Focus Group</article-title>
          , vol.
          <volume>25</volume>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A. L.</given-names>
            <surname>Ramos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. V.</given-names>
            <surname>Ferreira</surname>
          </string-name>
          , and J. Barcelo´,
          <source>“Model-based Systems Engineering: An Emerging Approach for Modern Systems,” IEEE Transactions on Systems, Man, and Cybernetics</source>
          , Part C (
          <article-title>Applications</article-title>
          and Reviews), vol.
          <volume>42</volume>
          , pp.
          <fpage>101</fpage>
          -
          <lpage>111</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Wortmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Combemale</surname>
          </string-name>
          , and
          <string-name>
            <given-names>O.</given-names>
            <surname>Barais</surname>
          </string-name>
          , “
          <string-name>
            <given-names>A Systematic</given-names>
            <surname>Mapping</surname>
          </string-name>
          <article-title>Study on Modeling for Industry 4</article-title>
          .0,” in
          <source>Conference on Model Driven Engineering Languages and Systems (MODELS'17)</source>
          . IEEE,
          <year>September 2017</year>
          , pp.
          <fpage>281</fpage>
          -
          <lpage>291</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>B.</given-names>
            <surname>Schleich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Anwer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Mathieu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Wartzack</surname>
          </string-name>
          , “
          <article-title>Shaping the Digital Twin for Design and Production Engineering,”</article-title>
          <source>CIRP Annals</source>
          , vol.
          <volume>66</volume>
          , pp.
          <fpage>141</fpage>
          -
          <lpage>144</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>T. H.-J. Uhlemann</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Lehmann</surname>
            , and
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Steinhilper</surname>
          </string-name>
          , “
          <article-title>The digital twin: Realizing the cyber-physical production system for industry 4</article-title>
          .0,” Procedia Cirp, vol.
          <volume>61</volume>
          , pp.
          <fpage>335</fpage>
          -
          <lpage>340</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>D.</given-names>
            <surname>Wohlfeld</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Weiss</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Becker</surname>
          </string-name>
          , “
          <article-title>Digital shadow-from production to product</article-title>
          ,” in 17. Internationales Stuttgarter Symposium. Springer,
          <year>2017</year>
          , pp.
          <fpage>783</fpage>
          -
          <lpage>794</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>A.</given-names>
            <surname>Haber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Look</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Mir Seyed Nazari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. Navarro</given-names>
            <surname>Perez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Rumpe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Voelkel</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Wortmann</surname>
          </string-name>
          , “
          <article-title>Integration of Heterogeneous Modeling Languages via Extensible and Composable Language Components</article-title>
          ,”
          <source>in Proceedings of the 3rd International Conference on Model-Driven Engineering and Software Development. Scitepress</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>K.</given-names>
            <surname>Ho</surname>
          </string-name>
          <article-title>¨lldobler and B</article-title>
          .
          <string-name>
            <surname>Rumpe</surname>
          </string-name>
          ,
          <article-title>The MontiCore Language Workbench</article-title>
          ,
          <year>Edition 2017</year>
          . Shaker,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M. E. V.</given-names>
            <surname>Larsen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Deantoni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Combemale</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Mallet</surname>
          </string-name>
          , “
          <article-title>A behavioral coordination operator language (bcool</article-title>
          ),
          <source>” in 2015 ACM/IEEE 18th International Conference on Model Driven Engineering Languages and Systems (MODELS)</source>
          . IEEE,
          <year>2015</year>
          , pp.
          <fpage>186</fpage>
          -
          <lpage>195</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>T.</given-names>
            <surname>Greifenberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Look</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Roidl</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Rumpe</surname>
          </string-name>
          , “Engineering Tagging Languages for DSLs,” in
          <source>Conference on Model Driven Engineering Languages and Systems (MODELS'15)</source>
          . IEEE,
          <year>2015</year>
          , pp.
          <fpage>34</fpage>
          -
          <lpage>43</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>C.</given-names>
            <surname>Wende</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Thieme</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Zschaler</surname>
          </string-name>
          , “
          <article-title>A role-based approach towards modular language engineering</article-title>
          ,” in
          <source>International Conference on Software Language Engineering</source>
          . Springer,
          <year>2009</year>
          , pp.
          <fpage>254</fpage>
          -
          <lpage>273</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>E.</given-names>
            <surname>Bousse</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Degueule</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Vojtisek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Mayerhofer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Deantoni</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Combemale</surname>
          </string-name>
          , “
          <article-title>Execution Framework of the Gemoc Studio (Tool Demo</article-title>
          ),
          <source>” in International Conference on Software Language Engineering. ACM</source>
          ,
          <year>2016</year>
          , pp.
          <fpage>84</fpage>
          -
          <lpage>89</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M.</given-names>
            <surname>Vo</surname>
          </string-name>
          ¨lter, T. Stahl,
          <string-name>
            <given-names>J.</given-names>
            <surname>Bettin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Haase</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Helsen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          ,
          <string-name>
            <surname>Model-Driven Software</surname>
          </string-name>
          Development: Technology, Engineering, Management, ser.
          <source>Wiley Software Patterns Series</source>
          . Wiley,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>R.</given-names>
            <surname>France</surname>
          </string-name>
          and
          <string-name>
            <given-names>B.</given-names>
            <surname>Rumpe</surname>
          </string-name>
          , “
          <article-title>Model-Driven Development of Complex Software: A Research Roadmap,” in Future of Software Engineering 2007 at ICSE</article-title>
          .,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>M.</given-names>
            <surname>Rohr</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Boskovic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Giesecke</surname>
          </string-name>
          , and W. Hasselbring, “
          <article-title>Model-driven Development of Self-managing Software Systems</article-title>
          ,” in Model-Driven
          <source>Engineering Languages and Systems</source>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>J.</given-names>
            <surname>Dubus</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Merle</surname>
          </string-name>
          , “Applying OMG
          <string-name>
            <surname>D</surname>
          </string-name>
          &amp;
          <article-title>C Specification and ECA Rules for Autonomous Distributed Component-based Systems</article-title>
          ,” in
          <source>International Conference on Model Driven Engineering Languages and Systems</source>
          . Springer,
          <year>2006</year>
          , pp.
          <fpage>242</fpage>
          -
          <lpage>251</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>A.</given-names>
            <surname>Haber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Look</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Mir Seyed Nazari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. Navarro</given-names>
            <surname>Perez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Rumpe</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.</surname>
          </string-name>
          <article-title>Vo¨lkel, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Wortmann</surname>
          </string-name>
          , “
          <article-title>Composition of Heterogeneous Modeling Languages,” in Model-Driven Engineering and Software Development, ser</article-title>
          .
          <source>Communications in Computer and Information Science</source>
          , vol.
          <volume>580</volume>
          . Springer,
          <year>2015</year>
          , pp.
          <fpage>45</fpage>
          -
          <lpage>66</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>J.-M. Je</surname>
            ´ze´quel,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Leduc</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Barais</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Mayerhofer</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <string-name>
            <surname>Bousse</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Cazzola</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Collet</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Mosser</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Combemale</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Degueule</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Heinrich</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Strittmatter</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Kienzle</surname>
            , G. Mussbacher,
            <given-names>M.</given-names>
          </string-name>
          <article-title>Scho¨ttle, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Wortmann</surname>
          </string-name>
          , “
          <article-title>Concern-oriented language development (COLD): Fostering reuse in language engineering</article-title>
          ,”
          <source>Computer Languages, Systems &amp; Structures</source>
          , vol.
          <volume>54</volume>
          , pp.
          <fpage>139</fpage>
          -
          <lpage>155</lpage>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>V. C.</given-names>
            <surname>Gungor</surname>
          </string-name>
          and
          <string-name>
            <given-names>G. P.</given-names>
            <surname>Hancke</surname>
          </string-name>
          , “Industrial Wireless Sensor Networks: Challenges,
          <string-name>
            <given-names>Design</given-names>
            <surname>Principles</surname>
          </string-name>
          , and Technical Approaches,”
          <source>IEEE Trans. on Ind. Electronics</source>
          , vol.
          <volume>56</volume>
          , no.
          <issue>10</issue>
          , pp.
          <fpage>4258</fpage>
          -
          <lpage>4265</lpage>
          ,
          <year>Oct 2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20] “Eclipse Paho Java Client,” [Online]. Available: https://www.eclipse.org/ paho/clients/java/ Last checked:
          <volume>25</volume>
          .
          <fpage>08</fpage>
          .
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>AWS</given-names>
            <surname>Documentation</surname>
          </string-name>
          , “What Is AWS IoT?” [Online]. Available: https: //docs.aws.amazon.com/iot/latest/developerguide/what-is
          <article-title>-aws-iot</article-title>
          .
          <source>html, Accessed</source>
          <volume>11</volume>
          .
          <fpage>06</fpage>
          .
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Microsoft</surname>
          </string-name>
          , “Azure Digital Twins,” [Online]. Available: https://azure. microsoft.com/en-us/services/digital-twins/,
          <source>Accessed</source>
          <volume>11</volume>
          .
          <fpage>06</fpage>
          .
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Siemens</surname>
          </string-name>
          , “
          <article-title>MindSphere The Cloud-based, Open IoT Operating System for Digital Transformation</article-title>
          ,” [Online]. Available: https://cdn2.hubspot. net/hubfs/1147371/Resources/Siemens MindSphere Whitepaper.pdf,
          <source>Accessed</source>
          <volume>11</volume>
          .
          <fpage>06</fpage>
          .
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>M. E. Vara Larsen</surname>
            , J. DeAntoni,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Combemale</surname>
            , and
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Mallet</surname>
            , “
            <given-names>A Behavioral</given-names>
          </string-name>
          <string-name>
            <surname>Coordination Operator Language (BCOoL)</surname>
          </string-name>
          ,
          <source>” in ACM/IEEE 18th International Conference on Model Driven Engineering Languages and Systems (MODELS)</source>
          ,
          <year>Sep</year>
          .
          <year>2015</year>
          , pp.
          <fpage>186</fpage>
          -
          <lpage>195</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>A.</given-names>
            <surname>Butting</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Haber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Hermerschmidt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Kautz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Rumpe</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Wortmann</surname>
          </string-name>
          , “
          <article-title>Systematic Language Extension Mechanisms for the MontiArc Architecture Description Language,” in European Conference on Modelling Foundations and Applications (ECMFA'17), ser</article-title>
          .
          <source>LNCS 10376</source>
          . Springer,
          <year>Juli 2017</year>
          , pp.
          <fpage>53</fpage>
          -
          <lpage>70</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>K.</given-names>
            <surname>Jahed</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Dingel</surname>
          </string-name>
          , “
          <article-title>Enabling Model-Driven Software Development Tools for the Internet of Things</article-title>
          ,” in 11th Workshop on Modelling in Software Engineering (MiSE'
          <year>2019</year>
          ), May
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>F.</given-names>
            <surname>Ciccozzi</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Spalazzese</surname>
          </string-name>
          , “
          <article-title>MDE4IoT: Supporting the Internet of Things with Model-Driven Engineering,” in 10th International Symposium on Intelligent Distributed Computing</article-title>
          ,
          <year>Oct 2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>M.</given-names>
            <surname>Hussein</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Radermacher</surname>
          </string-name>
          , “
          <article-title>Model-driven Development of Adaptive IoT Systems,</article-title>
          ” in
          <source>Proceedings of MODELS 2017. Workshop ModComp</source>
          , vol.
          <year>2019</year>
          . Austin, United States: CEUR,
          <year>2017</year>
          , pp.
          <fpage>17</fpage>
          -
          <lpage>23</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>N.</given-names>
            <surname>Harrand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Fleurey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Morin</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          K. E. Husa, “
          <article-title>ThingML: A Language and Code Generation Framework for Heterogeneous Targets</article-title>
          ,”
          <source>in Proceedings of the ACM/IEEE 19th International Conference on Model Driven Engineering Languages and Systems</source>
          , ser.
          <source>MODELS '16</source>
          . New York, NY, USA: ACM,
          <year>2016</year>
          , pp.
          <fpage>125</fpage>
          -
          <lpage>135</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>X. T.</given-names>
            <surname>Nguyen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. T.</given-names>
            <surname>Tran</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Baraki</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Geihs</surname>
          </string-name>
          , “
          <article-title>FRASAD: A framework for model-driven IoT Application Development</article-title>
          ,”
          <source>in IEEE 2nd World Forum on Internet of Things (WF-IoT)</source>
          ,
          <year>2015</year>
          , pp.
          <fpage>387</fpage>
          -
          <lpage>392</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>B.</given-names>
            <surname>Selic</surname>
          </string-name>
          , “
          <article-title>A Systematic Approach to Domain-specific Language Design using UML,” in 10th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC'07)</article-title>
          . IEEE,
          <year>2007</year>
          , pp.
          <fpage>2</fpage>
          -
          <lpage>9</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>P.</given-names>
            <surname>Langer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Wieland</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Cabot</surname>
          </string-name>
          et al.,
          <article-title>“EMF Profiles: A Lightweight Extension Approach for EMF Models</article-title>
          .
          <source>” Journal of Object Technology</source>
          , vol.
          <volume>11</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>29</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>