<!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>Dynamic Software Architecture for Distributed Embedded Control Systems</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Tomáš Richta</string-name>
          <email>irichta@fit.vutbr.cz</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vladimír Janoušek</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Radek Kočí</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Brno University of Technology, Faculty of Information Technology, IT4Innovations Centre of Excellence Božetěchova 2</institution>
          ,
          <addr-line>612 66 Brno</addr-line>
          ,
          <country>The Czech Republic</country>
        </aff>
      </contrib-group>
      <fpage>133</fpage>
      <lpage>150</lpage>
      <abstract>
        <p>This paper focuses on the field of dynamically reconfigurable distributed embedded control systems construction process and presents a substantial part of the methodology aimed at this application area which is based on formal models, namely some variants of Petri Nets. Initial system specification is represented by a set of Workflow Petri Nets transformed into decomposed multi-layered Reference Petri Nets model, that is used during the generation of interpretable target system components representation. The main objective of presented approach is the introduction of dynamic reconfigurability features into the target system implementation reflecting changes in system specification during its run-time. Reconfigurability is achieved by the system decomposition into smaller interpretable pieces of computation that are installed on and performed by the underlying infrastructure. Introduced approach brings several layers of reconfigurability through a set of specific translation rules applied in different layers and scenarios for pseudo-code generation and by the possibility of installing the resultant functional parts on system nodes using well-defined communication protocol. The heart of described architecture lies within the specification of hosting platform called Petri Nets Operating System (PNOS) that includes the Reference Petri Nets interpreter.</p>
      </abstract>
      <kwd-group>
        <kwd>Dynamic Reconfigurability</kwd>
        <kwd>Embedded Systems</kwd>
        <kwd>Control Systems</kwd>
        <kwd>Model-Driven Development</kwd>
        <kwd>Model Transformation</kwd>
        <kwd>Model Execution</kwd>
        <kwd>Workflow Petri Nets</kwd>
        <kwd>Reference Petri Nets</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction and Motivation</title>
      <p>Control systems lie on the thin border between physical and information worlds.
The process of control is usually described as a loop switching between
reading data from sensors and triggering a number of actuators installed within
the physical environment. Above all, the process should respect all user-defined
rules. Control systems could be constructed as a set of programmable logic
controllers with proprietary software installation, communicating with each other,
thus forming distributed embedded control system. Our work considers a target
platform for this type of systems implementation to be a set of minimalistic and
low energy consumption hardware devices, e.g. ATmega, PIC, or ARM
microcontrollers, equipped with wireless transmission modules. Such devices are often
used in the area of Wireless Sensor Networks (WSN) systems.</p>
      <p>Usually a hardware part of any system implementation starts with selection
of proper set of devices and their installation within the physical environment,
including sensors and actuators attachment. The software part of system
implementation complements the hardware one with the construction of appropriate
application software, that controls each system unit and represents the whole
system functionality. Dynamic reconfigurability features are necessary for the
ability of the system to adapt itself to changes in environment and also to
provide its maintainer with a possibility to change the system behaviour, while it
is in runtime, i.e. without the necessity of complete destruction and further
reconstruction, or even restart. Our main goal is to describe the software part of
the process, that respects our focus on formal specification and dynamic
reconfigurability.</p>
      <p>
        In this paper, we are going to describe some recent results of the research
in the field of dynamically reconfigurable distributed embedded control systems,
and basic ideas of our research that aims to introduce complete methodology
for control systems construction and administration, which uses formal and
human readable notation as a system functionality specification, and provides the
user of resulting system with the possibility to change its behaviour within the
runtime. Introduced solution to the dynamic reconfigurability problem follows
the model transformation and executable model paradigms - Workflow Petri
Nets[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] are used as an abstract system specification modelling language, and
the MULAN-like[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] multi-layered Reference Petri Nets[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] structure for modelling
the resultant system implementation. The system run-time model is constructed
from the work-flow one using graph transformations and then translated into
the executable form, run by our specialized target platform.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>Related work could be divided into the following areas - embedded and operating
systems, software engineering methods applied to the area of embedded systems,
the usage of higher-level or visual languages for embedded systems specification
and implementation, the dynamical reconfigurability within embedded systems,
reconfigurable control systems (e.g. FMSs), multi-agent approach to the
reconfigurable embedded systems development, system partitioning, code generation,
and reconfigurable hardware.</p>
      <p>The usage of formal modelling control system with dynamic reconfigurability
features is not a new idea. Research activities in this topic are primarily focused
on direct or indirect approach. The direct approach offers specific functions or
rules, allowing to modify system structure, whereas the indirect approach
introduces mechanisms allowing to describe system reconfigurations. The main
difference consists usually in the level of reconfigurability implemented. Direct
methods use formalisms containing intrinsic features allowing to reconfigure the
system. Indirect methods use specific kind of frameworks or architectures, that
make possible to change the system structure.</p>
      <p>
        In our field of research the first group consists of formalisms based usually
on some kind of Petri nets. Reconfigurable Petri Nets [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], presented by Guan
and Lim, introduced a special place describing the reconfiguration behaviour.
Net Rewriting System [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] extends the basic model of Petri Nets and offers
a mechanism of dynamic changes description. This work has been improved
[
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] by the possibility to implement net blocks according to their interfaces.
Intelligent Token Petri Nets [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] introduces tokens representing jobs. Each job
reflects knowledge about the system states and changes, so that the dynamic
change could be easily modelled. All the presented formalisms is able to describe
the system reconfiguration behaviour, nevertheless only some of them define the
modularity. Moreover, the study [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] shows, that the level of reconfigurability is
dependent on the level of modularity and also that there are modular structures
that are not reconfigurable.
      </p>
      <p>
        The second group handles reconfigurations using extra mechanisms.
Modelbased control design method, presented by Ohashi and Shin [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], uses state
transition diagrams and general graph representations. Discrete-event controller
based on finite automata has been presented by Liu and Darabi [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. For
reconfiguration, this method uses mega-controller, a mechanism, which responses
to external events. Real-time reconfigurable supervised control architecture has
been presented by Dumitrache [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], allowing to evaluate and improve the
control architecture. All the presented methods are based on an external mechanism
allowing system reconfiguration. Nevertheless, most of them do not deal with
validity and do not present a compact method.
      </p>
      <p>
        So far, we have investigated formalisms and approaches to the control
system development. They have one common property, they are missing complex
design and development methods analogous to software engineering concepts.
Of course, the methods and tools that are applied in ordinary software systems
are not as simply applicable to embedded systems. Nevertheless, we can be
inspired with software engineering approaches and adopt them to the embedded
control systems [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. To develop embedded control system, the developer has to
consider several areas. We can distinguish five areas [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] as follows— Hardware,
Processes (development processes and techniques), Platform (drivers, hardware
abstraction, operating systems), Middleware (application frameworks, protocols,
message passing), and Application (user interface, architecture, design patterns,
reusing).
      </p>
      <p>Presented approach is based on existing formalisms and architecture that
are together used in the specific platform developed by our team. In relation to
previously defined areas of software engineering for embedded control systems,
we deal with Process, Platform, and Middleware areas in this paper. Process area
focuses on work-flow modelling using Petri Nets, transformation of the
workflow models into the Reference Nets, and definition of the levels of abstraction.
Middleware area focuses on multi-layered architecture inspired by the MULAN
architecture. Platform area introduces Petri Nets Operating System (PNOS)
linked with Petri Net Virtual Machine (PNVM) that offer specific means for
system reconfigurability. All mentioned elements will be described in details in
next chapters.
3
3.1</p>
    </sec>
    <sec id="sec-3">
      <title>Formalisms and Tools</title>
      <sec id="sec-3-1">
        <title>Workflow Modelling</title>
        <p>
          Work-flow modelling is very popular for its aim to precisely define the
functionality requirements using intuitive and human-readable form, while offering
enough precision to be interpretable by machines. For its formal and verifiable
characteristics and large research background we adopted for the purposes of
our research Wil van der Aalst’s specification for system work-flow modelling,
so called Extended Workflow Petri Nets[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. Aalst’s work is well-defined and
resulting work-flow models could be used for the system processes verification and
validation purposes. This way is very similar to the BPMN work-flow models,
so it might be easily used by the business process modelling domain experts.
For that reason we decided to use the Aalst’s YAWL notation[
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] and Workflow
Petri Nets formalism[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] in the early beginning of system construction process.
The main advantage of using Workflow Petri Nets is the possibility of system
specification and its adaptation by the non-technically educated domain
specialists.
3.2
Second step of the system construction process consists of the transformation of
Workflow Petri Nets model into the multi-layered Reference Nets model
complying with the nets-within-nets concept defined by Rüdiger Valk [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] and formalized
as Reference Nets by Olaf Kummer [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. In our proposed system development
methodology, Reference Nets are translated into the interpretable form, that
is transferred through the network to the specific nodes, responsible of its
execution. The problem of generating the code from formal specification to its
runnable form is mainly based on the decomposition of the whole system model
to a set of sub-models, that is usually called the partitioning problem. We use
similar concept to the MULAN architecture defined by Cabac et al.[
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. This
architecture divides the model into four levels of abstraction - infrastructure, agent
platform, agents, and protocols. Our architecture also uses four layers -
infrastructure, platform, processes and sub-process. Each of these layers is mapped
from the formal specification to the target platform specification.
4
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Reconfigurable Architecture</title>
      <p>
        Reference Nets allows to construct the system hierarchically, in several layers of
abstraction. Each element of layer at any level of abstraction could be changed
by change in nets marking. Nets representing system functionality are migrating
over nets of other layers changing the system functionality. The multi-layered
nature of the system and responsibilities of particular levels of system
decomposition is described in more detail in our previous work[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>
        The core characteristics of resulting system, its dynamic reconfigurability,
is based in our solution on the ability of Reference Petri Nets interpretable
representations to migrate among places of the system as tokens, similarly as in
reference Nets. The new or modified Petri Net, that represents the system partial
behaviour change could be sent over other Petri Nets to its destination place to
change the whole system functionality. In our solution, these Petri Nets parts
are maintained by the Petri Nets Operating System (PNOS) and interpreted
by the Petri Nets Virtual Machine (PNVM) engine[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. System decomposition
is inspired by MULAN architecture [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].The PNOS contains PNVM (Petri Net
Virtual Machine) engine that interprets Petri Nets which are installed within
the system in the form of a interpretable byte-code called Petri Nets ByteCode
(PNBC). PNOS also provides the installed processes with the access to input and
output of the underlying hardware that is connected to sensors and actuators,
and also with the serial communication port that is connected to the wired or
wireless communication module (e.g. ZigBee)[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], or Ethernet interface.
      </p>
      <p>The important net (lying above processes nets) interpreted in PNOS is so
called Platform net. Platform net is responsible for the interpretation of
commands which are read from buffered serial line, or Ethernet. These commands
allow to install, instantiate, and uninstall other Petri Nets. The Platform also
allows to pass messages to the other layers, which are responsible for
applicationspecific functionality. Since we need reconfigurability in all levels, the installation
and uninstallation of functionality is implemented in each level of resulting
system. Next section describes the Reference nets formalism that is used as an
intermediate language for the target implementation.
5</p>
    </sec>
    <sec id="sec-5">
      <title>The Development Process</title>
      <p>
        System development process is described in Fig. 1. It starts with the
specification of the whole system work-flow, in an hierarchical way. Work-flow model
is transformed to the Reference Nets layered architecture and might be
further simulated and debugged using the Renew Reference Nets tools [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. After
this stage, the final set of Reference Nets is then translated into the Petri Nets
ByteCode (PNBC) that is used either for the target prototype simulation
using SmallDEVS tools [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and also to be transferred to the nodes of the system
infrastructure. More detailed description of the whole PNOS architecture and
functionality could be found in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
5.1
      </p>
      <sec id="sec-5-1">
        <title>Model Transformations</title>
        <p>There are two translation phases. The translation of the Workflow Petri Nets
model into the Reference Petri Nets model and translation of the Reference Petri
Nets model into its interpretable form. The first transformation phase takes into</p>
        <p>Graph
transformations</p>
        <p>reference
nets production</p>
        <p>PNML
SmallDEVS</p>
        <p>Model
of controlled</p>
        <p>system
Node</p>
        <p>PNOS
account the set of work-flow specifications described within the work-flow model
of the system and produces target node representations. Such a representation
should contain the basic PNOS I/O functionality, and the platform functionality,
which means the ability of receiving nets specifications, nets instantiation,
removing nets instances, removing nets specifications, etc. Using this functionality
the node main processes should be installed. It usually consists of the
description of sub-processes interactions and ordering. Then the main processes of each
node are installed with translated sub-processes. The communication between
resources is represented by transitions, that are not part of any other role and
serve as a data transport part of the system. Particular data types should be
described in the terms dictionary, that holds all the necessary information needed
for nets translation, that is not included within the diagram. Regarding the
work-flow model, also other specific rules for the communication protocol could
be derived.
5.2</p>
      </sec>
      <sec id="sec-5-2">
        <title>Basic Definitions</title>
        <p>Let us introduce some basic definitions of formalisms used during the system
development. As a basement the classical Petri nets definition describes the
main rules of the specification formalism.</p>
      </sec>
      <sec id="sec-5-3">
        <title>Definition 1 (Petri Net).</title>
        <p>A Petri net is a triple P N = (P, T, F ) where:
– P and T are disjoint finite sets of places and transitions, respectively and
– F ⊆ (P ×T )∪(T ×P ) is a binary relation called the flow relation representing
arcs of the net.
– •x = y|yF x is called input set (preset) of the element x and
– x• = y|xF y is called output set (postset) of the element x, where x ∈ P ∪ T .</p>
        <p>Van der Aalst’s extensions to Petri Nets add two basic conditions to the
nets construction. Our modelling approach is very similar, so we can use his
definition, but for the further transformation of models we need some more rules
to be added. First let us introduce the simple work-flow net definition.</p>
      </sec>
      <sec id="sec-5-4">
        <title>Definition 2 (Workflow Net).</title>
        <p>
          (WorkFlow net) if and only if [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]:
        </p>
        <p>A Petri net P N = (P, T, F ) is a WF-net
– P N has two special places: i ∈ P and o ∈ P . Place i is a source place: •i = ∅.</p>
        <p>Place o is a sink place: o• = ∅.
– If we add a transition t∗ to PN which connects place o with i (i.e. •t∗ = {o}
and t∗• = {i}), then the resulting Petri net is strongly connected.</p>
        <p>
          Some other simplification rules added by Aalst and Hofstede extended
workflow models to provide for better human-readability. Some special types of
transitions representing logical operators and some special operations for
manipulation with tokens were added. Transitions and places are considered to be tasks
and conditions. Each EWF-net consists of tasks (either composite or atomic)
and conditions which can be interpreted as places. Tasks in elementary form are
atomic units of work, and in compound form modularize an execution order of
a set of tasks. In contrast to Petri nets, it is possible to connect “transition-like
objects” like composite and atomic tasks directly to each other without using a
“place-like object” (i.e., conditions) in-between[
          <xref ref-type="bibr" rid="ref2">2</xref>
          ].
        </p>
        <p>
          Definition 3 (Extended Workflow Net). An extended work-flow net
(EWFnet) is a tuple EW F = (C, i, o, T , F , S, name, split, join, rem, nof i) such
that [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]:
– C is a set of conditions,
– i ∈ C is the input condition,
– o ∈ C is the output condition,
– T is set of tasks,
– F ⊆ (C \ {o} × T ) ∪ (T × C \ {i}) ∪ (T × T ) is the flow relation,
– every node in net graph (C ∪ T, F ) is on a directed path from i to o,
– split : T → {AN D, XOR, OR} specifies the split behaviour of each task,
– join : T → {AN D, XOR, OR} specifies the join behaviour of each task,
– rem : T 6→ P(T ∪ C \ {i, o}) specifies the additional tokens to be removed by
emptying a part of the work-flow, and
– nof i : T 6→ N × Ninf × Ninf × {dynamic, static} specifies the
multiplicity of each task (minimum, maximum, threshold for continuation, and
dynamic/static creation of instances).
        </p>
        <p>Our approach follows the previous definitions and adds some more rules to
enable the extended work-flow models with communication features to satisfy
the developer ability to combine multiple work-flow specifications.
Definition 4 (Extended Communicating Workflow Net). We call
Extended Communicating Workflow net ECW F = (EW F ,I,O,F C ) a EWF net
that has following properties:
– I ∪ PEW F = ∅ ∧ O ∪ PEW F = ∅.
– EW F is an extended work-flow net,
– I is a set of ECW F input places, where ∀pI ∈ I : •pI = ∅ ∧ pI 6= i,
– O is a set of ECW F output places, where ∀pO ∈ O : p•O = ∅ ∧ pO 6= o,
– F C is a communication flow F C ⊆ (I × T ) ∪ (T × O),</p>
        <p>To specify complete work-flow model a definition of Workflow Specification
was introduced by Aalst and Hofstede. We adopted this definition and added
some slight change to one of the rules.</p>
      </sec>
      <sec id="sec-5-5">
        <title>Definition 5 (Workflow Specification).</title>
        <p>tuple (Q, top, T ,map) such that:</p>
        <sec id="sec-5-5-1">
          <title>A Workflow Specification</title>
          <p>
            S is a
n– Q is a set of ECWF-nets,
– top ∈ Q is the top level work-flow[
            <xref ref-type="bibr" rid="ref2">2</xref>
            ],
– T = ∪N∈QTN is the set of all tasks[
            <xref ref-type="bibr" rid="ref2">2</xref>
            ],
– ∀N1,N2∈QN1 6= N2 ⇒ (CN1 ∪TN1 )∩(CN2 ∪TN2 ) = ∅, i.e., no name clashes[
            <xref ref-type="bibr" rid="ref2">2</xref>
            ],
– map : T 6→ Q \ {top} is a surjective injective (bijective) function which
maps each composite task onto a EWF net[
            <xref ref-type="bibr" rid="ref2">2</xref>
            ], and
– the relation {(N1, N2) ∈ Q × Q | ∃t∈dom(mapN1 )mapN1 (t) = N2} is a tree[
            <xref ref-type="bibr" rid="ref2">2</xref>
            ].
          </p>
          <p>And also some special types of tasks representing composite and
multiinstance tasks were added by Aalst and Hofstede.</p>
          <p>
            Definition 6. Whenever we introduce a work-flow specification S = (Q, top,
T , map), we assume T A, T C , T SI , T MI , C to be defined as follows [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ]:
– T A = {t ∈ T |t 6∈ dom(map)} is the set of atomic tasks,
– T C = {t ∈ T |t ∈ dom(map)} is the set of composite tasks,
– T SI = {t ∈ T |∀N∈Qt ∈ dom(nof iN )} is the set of single instance tasks,
– T MI = {t ∈ T |∃N∈Q t ∈ dom(nof iN )} is the set of (potentially) multiple
instance tasks, and
– C = ∪N∈QCNext is the extended set of all conditions.
          </p>
          <p>Final definition describes the Workflow System consisting of set of Extended
Communicating Workflow Specifications and communication transitions.</p>
        </sec>
      </sec>
      <sec id="sec-5-6">
        <title>Definition 7 (Workflow System).</title>
        <p>= (Sb, T W S , F W S ), where:</p>
        <sec id="sec-5-6-1">
          <title>Let us call Workflow System the triple</title>
          <p>W S
– Sb is non-empty finite set of extended communicating work-flow specifications,</p>
          <p>
            Target system representation for the first phase of system model
transformation is constructed as a set of Reference Nets based on Valk’s nets-within-nets
paradigm that is formalized as an Elementary Object System which consists of
elementary net systems (EN System) EN = (B,E,F ,C), which is defined as
finite set of places B, finite set of transitions E, disjoint from B, a flow relation
F ⊆ (B × E) ∪ (E × B) and an initial marking C ⊆ B [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ].
          </p>
          <p>
            Definition 8 (Elementary Object System). An elementary object system
is a n-tuple EOS = (SN, OdN , Rho, type, Mc) where [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ]:
– SN = (P, T, W ) is a Petri net, called system net of EOS,
– ON = {ON1, . . . , ONn}(n ≥ 1) is a finite set of EN systems, called
obd
ject systems of EOS, denoted by ONi = (Bi, Ei, Fi, m0i), which is either
elementary net system or a system net of embedded EOS,
– Rho = (ρ, σ) is the interaction relation, consisting of a system/object
interaction relation ρ ⊆ T × E where E := S{Ei|1 ≤ i ≤ n} and symmetric
object/object interaction relation σ ⊆ (E × E) \ idE ,
– type : W → 2{1,...,n} ∪ N is the arc type function, and
– Mc is a marking defined in following definition.
          </p>
          <p>Definition 9 (System Marking). The set Obj := {(ONi, mi)|1 ≤ i ≤ n, mi ∈
R(ONi)} is the set of objects of the elementary object system. An object-marking
(O-marking) is a mapping Mc : P → 2Obj ∪ N such that Mc(p) ∩ Obj 6= ∅ ⇒
Mc(p) ∩ N = ∅ for all p ∈ P .</p>
          <p>Next paragraphs are going to describe both transformation process phases.
The first one is the transformation of the work-flow model into the operational
nets-within-nets model, second one the transformation of the nets-within-nets
model into its interpretable form, reflecting the target PNOS platform.
5.3</p>
        </sec>
      </sec>
      <sec id="sec-5-7">
        <title>From Workflow Nets to Reference Nets</title>
        <p>
          We decided to describe our methods on the sample home automation example.
The whole system functionality is described in the form of work-flow model in
our approach represented by the Workflow System depicted in Fig. 2. There are
following elements within the work-flow models - places, transitions, and logical
transitions[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], sub-process transitions[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], connecting arcs, and system nodes
borders. Places could be named, when there is a name on the place it is further
considered as an variable name. Transitions could be also named. The named
transition represents calling some particular atomic function of the underlying PNOS.
Logical transitions are: AND-split, AND-join, OR-split, OR-join, and
AND/ORsplit, they simplify the model to be easily readable for the non-technically
educated domain experts. Sub-process transitions represent condensed parts of the
system, that are described in another diagram, e.g. in Fig. 3.
        </p>
      </sec>
      <sec id="sec-5-8">
        <title>Generating the Infrastructure layer Work-flow model of the intended sys</title>
        <p>tem is translated into multi-layered Reference Nets model. Each layer of the
Reference Nets model is generated separately using different production rules.
First part of the system, that should be generated from the original model is
the top level Infrastructure layer net, that describes the communication among
all nodes of the system and could be used as a sort of deployment diagram.
Infrastructure layer is a basic layer of the Reference Nets model and serves for the
validation purposes and also as a description of the distribution of target system
structure. Basically the main purpose of Infrastructure layer lies in description
of the system nodes and their communication.</p>
        <p>Within the Infrastructure layer, each node is represented as a place in which
the particular Platform layer net is located. If there is any communication
between nodes, this communication is represented as a transition between
corresponding nodes. For example model described in Fig. 2 should be translated into
the Infrastructure net described in Fig. 4. This layer is produced by the following
set of rules.</p>
        <p>Let W S = (Sb, P W S , T W S , F W S ) be a Workflow System which has to be
transformed and SN = (P I , T I , W I ) a system net representing the
Infrastructure layer of the target elementary object system should be generated using
Algorithm 1.</p>
      </sec>
      <sec id="sec-5-9">
        <title>Algorithm 1</title>
        <p>(∗ demonstrates infrastructure net construction ∗)
1. P I = T I = W I ← ∅
2. for each work-flow specification produce place in the system net, ∀s ∈ Sb :</p>
        <p>P I = P I ∪ {pname(s)}
3. for every set of the communication transitions with the same name, place
one transition to the system net, ∀ξ(t) ∈ χ(T W S ) = [χ(TiW S )]i∈&lt;1,...,n&gt; :
T I = T I ∪ {tname(ξ(t))}, where name(ξ(ti)) = name(ξ(tj ))(i 6= j)
4. connect all communication transitions to the corresponding places with
double-sided arcs, ∀pI ∈ P I , ∀tI ∈ T I : piI ∈ •tiI ∧ piI ∈ tiI •, where
tW S ∈ T W S : ∀piW S inCi : piW S ∈ •tW S ∨ piW S ∈ tW S •
5. annotate all arcs with arbitrary names
6. place inscriptions to the transitions that invoke the : output up-link in the
source node and places the result to the : input up-link of all the target
nodes</p>
        <p>Each node of the system, placed logically within the Infrastructure net place
is considered to run on some piece of hardware installed with the PNOS. Because
PNOS also consists of the PNVM it is able to interpret Reference Nets translated
into the PNBC pseudo-code. Basic layer of the system, that must be installed
on all nodes of the system is Platform layer, that brings a set of basic
metaoperations that enables the node with other Reference Nets manipulation means
- like loading, unloading nets, passing values, etc. This layer is described in
Fig. 5. After the Platform layer was installed on the basic PNOS and become
interpreted by the PNVM kernel, it is possible to send to it some other nets to
define or modify the node behaviour. Basic types of such nets are Processes and
Sub-processes of the target system.
Generating the Process layer The translation of Processes layer also has
its own set of production rules. When translating the work-flow model, there is
at least one process net generated for each Workflow Specification within the
the system model. Main process net consists of the set of meta-operations, that
enable the main process to receive and run new nets definitions, and to pass the
received values to running subnets. Input place is used for receiving the data
by : input up-link. Output place serves as an buffer for the : output up-link.
Nets place then stores all sub-process nets. During the main process life-cycle,
each sub-process net is taken from the nets place, it is started, or served with
parameters and started. Started net is then put back to nets place, where it
resides, until the result is produced. When the result is ready, the net is taken
from the temporary place again, the output result is taken, and the net is then
stored again back to the nets place, or it could be stopped. The result of the net
is then propagated according to the logic specified in the main process net. The
example of translating the garden node main process net is shown in Fig. 6.</p>
        <p>All the process nets should be produced according to the following rules.
Let Si = (Q, top, T , map) be a Workflow Specification to be transformed and
ONi = (PiP , TiP , WiP ) a net of the Processes layer of the target system. For the
translation following Algorithm 2 should be used.</p>
      </sec>
      <sec id="sec-5-10">
        <title>Algorithm 2</title>
        <p>
          (∗ demonstrates process nets construction ∗)
1. PiP = TiP = WiP ← ∅
2. add nets, input and output places, PiP = PiP ∪ {pnets, pin, pout}
3. add the platform meta-operations, TiP = TiP ∪ {tname, tpass, tcreate, tremove}
4. for each sub-process in swim-lane construct the first transition that takes the
subnet from the nets place and invokes the : start up-link and a transition
that triggers the : output up-link, ∀tSi ∈ T top : TiP = T P P
i ∪ {ti(start), ti(out)},
where •ti(start) = pnets = ti•(start) ∧ •ti(out) = pnets = ti•(out)
5. connect both transitions with synchronization place and corresponding arcs,
∀tC ∈ TiC , where ∃p ∈ P, t ∈ Ti ⊂ T \ S{Ti} : p ∈ tC• ∧ p ∈ t• : PiP =
PiP ∪ {piP }, where tiP(s•tart) = piP = •tiP(out)
6. add one more place for each output communication to store the results of
the sub-process, PiP = PiP ∪ {piP } : tiP(s•tart) = piP
7. if the output is to be sent to another node add the transition that constructs
the message and puts the resulting message into the output sink, TiP =
TiP ∪ {tiP } : •tiP = piP ∧ tiP • = pout
8. translate special transitions according to the rules defined by Aalst [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]
9. omit input places
10. copy left places, ∀c ∈ C : PiP = P P P
        </p>
        <p>i ∪ cc
11. copy left transitions, ∀t ∈ T : TiP = T P P
i ∪ tt
Generating the Sub-process layer Within the house work-flow model, there
is a measure sub-process used in meteo and house modules. This sub-process
should be translated to the Sub-process layer using Algorithm 3.</p>
      </sec>
      <sec id="sec-5-11">
        <title>Algorithm 3</title>
        <p>(∗ demonstrates sub-process nets construction ∗)
1. fPoiPr a∪llccPsub-process places produce corresponding places, ∀c ∈ C : PiP =
2. for all sub-process transitions produce corresponding transitions, ∀t ∈ T :</p>
        <p>
          TiP = TiP ∪ ttP
3. translate special transitions according to rules defined by Aalst [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]
4. if there’s a loop, switch the do-while-do loop to the while-loop and add
the while condition place to the beginning of loop and add the : stop
transition to enable removing the condition, search for the transitions inscriptions
within the dictionary - transition producing the values and transitions
consuming the values
        </p>
        <p>Resulting sub-process net is described in Fig. 7.
5.4</p>
      </sec>
      <sec id="sec-5-12">
        <title>From Reference Nets to Petri Nets Byte Code</title>
        <p>Following part of the development process comprises of target system code
generation. In our approach, each layer of the system should be compiled to target
code independently. All generated levels communicate with each other using
up-links and down-links.</p>
        <p>Fig. 7. Measure Sub-process net</p>
        <p>
          The only part of the system, which is implemented natively, is the PNOS
kernel, including PNVM [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. The example of byte-code follows. It represents the
measure net (depicted in Fig. 7). In fact, it is a human-readable version of the
byte-code. In this representation, numbers are represented as text and also some
spaces and line breaks are added. This means that the contents of the code
memory is a bit more condensed. Each byte of the code is either an instruction
for PNVM, or data.
(Nmeasure
(measure/wind)
(cond/wind/cst/value/name)
(Ustart()()(P1(B1)(V1)))
(Ustop()()(O1(B1)(V1)))
(Uoutput(val)()(P4(B1)(V1)))
(Uname(name)()(P5(B1)(V1)))
(I(O5(B1)(S1)))
(Tread(cond/raw)
(P1(B1)(V1))
(A(:(V2)(r(S2))))
(O2(B1)(V2)))
(Tconst(cst)
(A(:(V1)(r(S2))))
(O2(B1)(V1)))
(Tmultiply(raw/cst/val)
(P2(B1)(V1))
(P3(B1)(V2))
(A(:(V2)(/(*(V1)(V2))(I10000))))
(O4(B1)(V2))))
        </p>
        <p>
          The important feature of the system is its reconfigurability. It is based on
operations of the operating system that are designated for manipulations with
nets (in the form of PNBC) and their instances. Nets could be sent to a node as a
part of the command for its installation. The command is executed by Platform
net. Using other commands, the platform can instantiate a net, pass a command
to it, destroy a net instance and unload a net template - see Fig. 5. The PNOS
Platform functionality is described in more detail in [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ], [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
        </p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>6 Installation and Reconfiguration</title>
      <p>The main operating principle of resulting system could be described on the tasks
of system construction - installation, and its reconfiguration. The installation of
the system starts with placing proper nodes to the target environment. Each
node should be installed with the PNOS, PNVM and basic platform layer. The
physical communication between nodes using different wired or wireless
communication technologies should be established. In our running example the scenario
should start with installing the processes for each Workflow Specification and
then sending particular sub-processes nets to relevant nodes.
meteo load measure-wind
meteo create mw1 measure-wind
meteo load measure-anemo
meteo create ma1 measure-anemo
...
meteo start
meteo pass mw1 start
meteo pass ma1 start
...</p>
      <p>The other important part of system functionality is its reconfiguration. It
should be performed on each defined level of the system architecture. Basically,
the node firmware including the PNOS and PNVM could be reprogrammed and
rebuilt and then sent over the air to the particular node. The Platform net could
be modified and also sent to the particular node, but usually we do not expect
this layer to be modified often. The next level of reconfiguration is the processes
layer. All processes of the node could be changed and then passed to its platform
to change the behaviour of the node. Finally all the sub-processes nets could be
modified and sent to particular nodes processes that reinstall them within the
nets place. The example of the reconfiguration process follows.
meteo pass mw1 stop
meteo destroy mw1
meteo unload measure-wind
meteo load measure-wind
meteo create mw1 measure-wind
meteo pass mw1 start
...</p>
      <p>There is a plan in future to add the pause and resume operations to the
platform, to be able to pause any particular net instance, change its template
and resume then. For that it is necessary to invent, how to represent the pausing
and resuming conditions in Petri Nets, that is not part of this material.</p>
    </sec>
    <sec id="sec-7">
      <title>Conclusion</title>
      <p>We described the basics of model transformation and execution-based
methodology of distributed embedded control system development. Among the main
methods it uses Petri Nets models transformations and target system prototype
code generation. Development process starts with the work-flow model of the
system specification defined according to the rules of Van der Aalst’s Workflow
Specifications. Work-flow model of the system describes the functionality from
user’s or domain specialist’s point of view. Using our methods, the work-flow
model is further transformed to the multi-layered architecture based set of
Reference Petri Nets. Each layer of the system is then translated to the specific
target representation called Petri Nets ByteCode (PNBC), which is interpreted
by the Petri Nets Virtual Machine (PNVM), that is a part of the Petri Nets
Operating System (PNOS), that is installed on all nodes of the system. Targeted
dynamical system reconfigurability is achieved by the possibility of PNBC net
templates and instances replacement with its new versions. After the
replacement, PNVM interpretation engine starts to perform a new version of partial
functionality of the system. That makes the dynamic reconfigurability possible.</p>
      <sec id="sec-7-1">
        <title>Acknowledgement</title>
        <p>This work has been supported by the European Regional Development Fund in
the IT4Innovations Centre of Excellence project (CZ.1.05/1.1.00/02.0070), by
BUT FIT grant FIT-11-1, and by the Ministry of Education, Youth and Sports
under the contract MSM 0021630528.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Van der Aalst</surname>
            ,
            <given-names>W.M.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Van Hee</surname>
            ,
            <given-names>K.M.</given-names>
          </string-name>
          <year>2002</year>
          .
          <article-title>Workflow Management: Models, Methods, and Systems</article-title>
          . IT press, Cambridge, MA.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Van der Aalst</surname>
            ,
            <given-names>W.M.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ter</surname>
            <given-names>Hofstede</given-names>
          </string-name>
          ,
          <string-name>
            <surname>A.H.M.</surname>
          </string-name>
          <year>2005</year>
          .
          <article-title>YAWL: yet another workflow language</article-title>
          .
          <source>Inf. Syst</source>
          .
          <volume>30</volume>
          ,
          <issue>4</issue>
          (
          <year>June 2005</year>
          ), p.
          <fpage>245</fpage>
          -
          <lpage>275</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Valk</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <year>1998</year>
          .
          <article-title>Petri Nets as Token Objects: An Introduction to Elementary Object Nets</article-title>
          .
          <source>Proceedings of the 19th International Conference on Application and Theory of Petri Nets (ICATPN '98)</source>
          , Jörgen Desel and Manuel Silva (Eds.). SpringerVerlag, London, UK, p.
          <fpage>1</fpage>
          -
          <lpage>25</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Kummer</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          <year>2001</year>
          .
          <article-title>Introduction to Petri nets and reference nets</article-title>
          .
          <source>SozionikAktuell</source>
          <volume>1</volume>
          :2001 / Rolf von Lüde, Daniel Moldt, Rüdiger
          <string-name>
            <surname>Valk</surname>
          </string-name>
          (Hrsg.).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Cabac</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Duvigneau</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moldt</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rölke</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <year>2005</year>
          .
          <article-title>Modeling dynamic architectures using nets-within-nets</article-title>
          .
          <source>Proceedings of the 26th international conference on Applications and Theory of Petri Nets (ICATPN'05)</source>
          ,
          <source>Gianfranco Ciardo and Philippe Darondeau (Eds.)</source>
          . Springer-Verlag, Berlin, Heidelberg, p.
          <fpage>148</fpage>
          -
          <lpage>167</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Kummer</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wienberg</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Duvigneau</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Köhler</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moldt</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Rölke</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <year>2003</year>
          . Renew - the
          <source>Reference Net Workshop</source>
          . Tool Demonstrations. Eric Veerbeek (ed.).
          <source>24th International Conference on Application and Theory of Petri Nets (ATPN</source>
          <year>2003</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Janoušek</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kironský</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <year>2009</year>
          .
          <article-title>Interactive evolutionary modelling and simulation of discrete-event systems using prototypical objects</article-title>
          .
          <source>International Journal of Autonomic Computing</source>
          . London: Inderscience Publishers,
          <year>2009</year>
          , Vol.
          <volume>1</volume>
          ,
          <issue>Iss</issue>
          .
          <volume>2</volume>
          , p.
          <fpage>104</fpage>
          -
          <lpage>120</lpage>
          . ISSN 1741-8569.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Richta</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Janoušek</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <year>2013</year>
          .
          <article-title>Operating System for Petri Nets-Specified Reconfigurable Embedded Systems</article-title>
          .
          <source>Proceedings of Computer Aided Systems Theory - EUROCAST</source>
          <year>2013</year>
          ,
          <article-title>published as LNCS 8111</article-title>
          . Berlin Heidelberg: Springer Verlag,
          <year>2013</year>
          , p.
          <fpage>444</fpage>
          -
          <lpage>451</lpage>
          . ISBN 978-3-
          <fpage>642</fpage>
          -53855-1.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Richta</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Janoušek</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kočí</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <year>2012</year>
          .
          <article-title>Code Generation For Petri Nets-Specified Reconfigurable Distributed Control Systems</article-title>
          ,
          <source>Proceedings of 15th International Conference on Mechatronics - Mechatronika</source>
          <year>2012</year>
          , Prague, CZ,
          <string-name>
            <surname>FEL</surname>
            <given-names>Č</given-names>
          </string-name>
          ,
          <year>2012</year>
          , p.
          <fpage>263</fpage>
          -
          <lpage>269</lpage>
          . ISBN 978-80-01-04985-3.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Richta</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Janoušek</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kočí</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <year>2013</year>
          .
          <article-title>Petri nets-based development of dynamically reconfigurable embedded systems</article-title>
          . In Daniel Moldt and Heiko Rölke, editors,
          <source>Petri Nets and Software Engineering</source>
          . International Workshop, PNSE'13,
          <string-name>
            <surname>Milano</surname>
          </string-name>
          , Italy, June 24-25,
          <year>2013</year>
          . Proceedings, volume
          <volume>989</volume>
          <source>of CEUR Workshop Proceedings</source>
          , pages
          <fpage>203</fpage>
          -
          <lpage>217</lpage>
          . CEUR-WS.org,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Guan</surname>
            , S.,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lim</surname>
            ,
            <given-names>S.</given-names>
            , S.
          </string-name>
          <year>2004</year>
          .
          <article-title>Modeling adaptable multimedia and self-modifying protocol execution</article-title>
          .
          <source>Future Gener. Comput. Syst.</source>
          , Vol.
          <volume>20</volume>
          ,
          <string-name>
            <surname>Iss</surname>
          </string-name>
          .
          <volume>1</volume>
          , p.
          <fpage>123</fpage>
          -
          <lpage>143</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Llorens</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Oliver</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <year>2004</year>
          .
          <article-title>Structural and dynamic changes in concurrent systems: Reconfigurable Petri Nets</article-title>
          .
          <source>IEEE Transactions on Automation Science and Engineering</source>
          , Vol.
          <volume>53</volume>
          ,
          <string-name>
            <surname>Iss</surname>
          </string-name>
          .
          <volume>9</volume>
          , p.
          <fpage>1147</fpage>
          -
          <lpage>1158</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dai</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Meng</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          <year>2009</year>
          .
          <article-title>Automatic reconfiguration of Petri net controllers for reconfigurable manufacturing systems with an improved net rewriting system based approach</article-title>
          .
          <source>IEEE Transactions on Automation Science and Engineering</source>
          , Vol.
          <volume>6</volume>
          ,
          <issue>Iss</issue>
          .
          <volume>1</volume>
          , p.
          <fpage>156</fpage>
          -
          <lpage>167</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Wu</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            ,
            <surname>Zhou</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          ,
          <string-name>
            <surname>C.</surname>
          </string-name>
          <year>2011</year>
          .
          <article-title>Intelligent token Petri nets for modelling and control of reconfigurable automated manufacturing systems with dynamic changes</article-title>
          .
          <source>Transactions of the Institute of Measurement and Control</source>
          , Vol.
          <volume>33</volume>
          ,
          <string-name>
            <surname>Iss</surname>
          </string-name>
          .
          <volume>1</volume>
          , p.
          <fpage>9</fpage>
          -
          <lpage>29</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Almeida</surname>
            ,
            <given-names>E.</given-names>
            , E.
          </string-name>
          ,
          <string-name>
            <surname>Luntz</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Tibury</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <year>2007</year>
          .
          <article-title>Event-condition-action systems for reconfigurable logic control</article-title>
          .
          <source>IEEE Transactions on Automation Science and Engineering</source>
          , Vol.
          <volume>4</volume>
          ,
          <issue>Iss</issue>
          .
          <volume>2</volume>
          , p.
          <fpage>167</fpage>
          -
          <lpage>181</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Ohashi</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shin</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <year>2011</year>
          .
          <article-title>Model-based control for reconfigurable manufacturing systems</article-title>
          .
          <source>Proceedings of IEEE International Conference on Robotics and Automation</source>
          , p.
          <fpage>553</fpage>
          -
          <lpage>558</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Darabi</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <year>2004</year>
          .
          <article-title>Control reconfiguration of discrete event systems controllers with partial observation</article-title>
          .
          <source>IEEE Transactions on Systems, Man, and Cybernetics</source>
          ,
          <string-name>
            <surname>Part</surname>
            <given-names>B</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cybernetics</surname>
          </string-name>
          , Vol.
          <volume>34</volume>
          ,
          <string-name>
            <surname>Iss</surname>
          </string-name>
          .
          <volume>6</volume>
          , p.
          <fpage>2262</fpage>
          -
          <lpage>2272</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Dumitrache</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Caramihai</surname>
            ,
            <given-names>S</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            ,
            <surname>Stanescu</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <year>2000</year>
          .
          <article-title>Intelligent agent-based control systems in manufacturing</article-title>
          .
          <source>Proceedings of IEEE International Symposium on Intelligent Control</source>
          , p.
          <fpage>369</fpage>
          -
          <lpage>374</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Oshana</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kraelig</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <year>2013</year>
          .
          <article-title>Software Engineering for Embedded Systems: Methods, Practical Techniques, and</article-title>
          <string-name>
            <surname>Applications</surname>
          </string-name>
          , Newnes.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>