<!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>A Model-driven Approach to Develop and Manage Cyber-Physical Systems ?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Adalberto R. Sampaio Junior</string-name>
          <email>adalbertojunior@inf.ufg.br</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Fábio M. Costa</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Peter Clarke</string-name>
          <email>clarkep@cis.fiu.edu</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Instituto de Informática, Universidade Federal de Goiás</institution>
          ,
          <country country="BR">Brazil</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>School of Computing and Information Sciences, Florida International University</institution>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Cyber-Physical Systems (CPS) integrate computing, networking, and physical processes to digitally execute tasks on or using the physical elements of a system. Power microgrids are a particular kind of CPS that enables management and autonomic control of local smart grids, aiming at reliability, fault tolerance and energy efficiency, among other goals. This paper explores a new approach based on MDE that uses models at runtime techniques to manage and control microgrids. The approach employs a model execution engine that manages a causally connected runtime model of the microgrid and interprets user-defined models in order to generate controls for the microgrid elements. We demonstrate the approach by building the lower layer of the model execution engine. Furthermore, we explore a model-driven technique to build the execution engine and use the resulting experience to argue that the approach can be extended to other kinds of cyber-physical systems.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Cyber-physical systems (CPS) are an integration of computational and physical
processes that can interact with humans and the environment [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ]. These
systems have operations that are monitored, coordinated, controlled and integrated,
typically using with feedback loops where physical processes affect computation
and vice versa [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ].
      </p>
      <p>
        CPS research is structured into a number of sub-disciplines, with abstraction
and architecture, modeling, and control as some of the main study areas [
        <xref ref-type="bibr" rid="ref2 ref5">5, 2</xref>
        ].
The architecture of CPS must provide a common way to handle both the cyber
and physical elements of systems, but as CPS is a new research area, many
architectural details remain open. Furthermore, modeling CPS is still a challenge
when it comes to the integration of system and model [
        <xref ref-type="bibr" rid="ref5 ref6">5, 6</xref>
        ]. Clearly, model driven
engineering (MDE) is one of the key techniques to solve these architectural and
integration challenges [
        <xref ref-type="bibr" rid="ref2 ref4 ref5 ref6">5, 2, 6, 4</xref>
        ].
      </p>
      <p>
        The goal of MDE is to raise the abstraction level and reduce the effort and
complexity of development [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. In CPS, models can be used at different
architectural levels [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and, with models@run.time (M@RT) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], they can be used not
? This work was supported by FAPEG and CNPq (Grant # 473939/2012-6).
only to build and configure the system, but also to dynamically monitor and
control its functionality and behavior while running.
      </p>
      <p>Using M@RT, a system may have a high-level, causally connected (i.e.,
reflective), representation of itself in the form of one or more related models that
are kept in sync with the system as it executes. This is so that changes in the
system are immediately reflected in the model, and vice-versa.</p>
      <p>
        A promising approach to M@RT consists in using a model execution engine
that maintains a causally connected runtime model of the system and interprets
high-level user-defined models that may be submitted at any time as the means
for users to dynamically reconfigure the system [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. This approach to configure
systems can decrease the burden of designing and maintaining complex systems,
such as CPS, as it eliminates the dependence on highly skilled personnel [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>
        This paper explores a model-driven approach to build model execution
engines, and propose its use for the management of CPS at different levels, from
definition (topology) to the control of their physical components. We present a
realization of this approach in the domain of microgrid energy management, a
kind of CPS that is now common in many parts of the world as a way to
optimize the use of distributed energy resources (DERs) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. The model execution
engine consists of different layers, each with a different abstract view (a model
at runtime) of the CPS, thereby making it easier for these models to be verified
and analyzed, based on the concerns of that layer. In this work we focus on the
layer that interfaces with the physical components of the microgrid.
      </p>
      <p>Section 2 describes how microgrids and CPS are conceptually linked with
models at runtime in our work, and the implications of this for microgrid
management. Section 3 presents the architecture for a model execution engine to
manage and execute microgrid models. In Section 4 we describe how the physical
elements of the microgrid are accessed via the model execution engine, and how
the internal mechanisms of the execution engine were developed using MDE. In
Section 5 we discuss related work, and in Section 6 we conclude with a discussion
on the impact of M@RT for the development of CPS.
2
Microgrids are small, typically local, power grids that integrate small scale and
distributed energy sources into electrical distribution systems, improving energy
efficiency with the use of smart control techniques. This approach has a positive
impact on power consumption, as it lowers the emission of greenhouse gases and
reduces costs related to power transmission. Besides these advantages, microgrids
also help increase the overall reliability of the power infrastructure. For instance,
by using control policies it is possible to configure the behavior of the microgrid
in order to maintain vital components working seamlessly, even in the presence
of grid faults, as must happen in critical facilities, such as hospitals.</p>
      <p>The smart behavior of a microgrid is enabled by a set of controllers that
manage the loads, sources and storage elements of the plant. A microgrid has
two types of controllers: local controllers that manage the individual microgrid
elements, and a central controller that manages all local controllers and is
responsible for coordinating the entire system, optimizing its behavior according
to policies set by the microgrid owner. The controllers are connected forming a
complex distributed system that manages all physical devices in the microgrid.</p>
      <p>Controllers can process events from devices, enabling the management
mechanisms to react to changes in the plant. In addition, they receive and process
commands from the user (in our case, from the execution engine), which are
transformed into commands to control the physical devices. Therefore, controllers are
at the frontier between the cyber and physical elements in this domain.</p>
      <p>In CPSs in general, and microgrids in particular, problems such as the
heterogeneity of devices pose a great challenge to the design of large-scale systems.
In addition, security, real-time assurance and network connectivity are also
challenges that must be addressed when designing such systems. Several techniques
have been considered to improve the design of CPSs, models being among them.
Generally speaking, model-driven mechanisms can be used to capture events
from the physical elements and, based on such events and on what is prescribed
in the models, generate commands to configure and/or control those elements.</p>
      <p>Furthermore, the models used to design and control CPSs can be specified in
user-friendly domain-specific modeling languages (DSML), which abstract away
many of the system’s low-level concerns and focus on modeling constructs that
are familiar to users. In addition, automatic processing of such models by an
execution engine enables them to be directly used to exert the user’s intent in
the form of the corresponding changes in the system.</p>
      <p>
        In the context of microgrids, [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] proposes a domain-specific modeling
language, MGridML, which captures the structural and semantic features of
microgrids. This language is interpreted by a layered execution engine, MGridVM,
which reads user input models and configures the microgrid accordingly.
      </p>
      <p>Each layer of MGridVM maintains part of the runtime model of the
microgrid, thus keeping track of the state and configuration of the plant. As each layer
has its own part of the runtime model, different aspects of the configuration are
maintained during system execution and can be dynamically changed as a result
of events from the plant elements or new input models submited by the user.</p>
      <p>
        Aiming to generalize the applicability of such model execution engines, and
also to decrease their complexity of development, [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] proposes an approach that
uses metamodels to design and implement execution engines such as MGridVM
for different application domains. In the following we show how this approach can
be used to build execution engines to manage CPSs. Specifically, we demonstrate
the use of the approach to build the bottom layer of the execution engine (the
layer that accesses the physical resources) for microgrids, providing insights on
how the approach could be exploited in other CPS application domains.
3
      </p>
    </sec>
    <sec id="sec-2">
      <title>Architecture of the execution engine</title>
      <p>
        MGridVM is a model execution engine that interprets models built using the
MGridML language [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. MGridML models are composed of two schemas that
together define the configuration of a microgrid: the control schema, which
represents the logic configuration and the policies that govern the structure and
behavior of a microgrid; and the data schema, which represents the actual
physical elements in the plant.
      </p>
      <p>
        As shown in Figure 1, MGridVM is built using a layered architecture inspired
by the CVM platform, which defines a model execution engine for the
communications domain [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Each layer deals with a distinct stage of model creation and
execution, besides maintaining state in the form of a runtime model.
      </p>
      <p>When MGridVM executes a microgrid model, the
model provided by the user is compared with the
current runtime model, and any differences between the
two are used to generate commands (or calls) to
reconfigure the microgrid accordingly. These model dif- MicrogridAModel UsersMicrogridAModel
ferences are also used to update the runtime model,
which always reflects the current microgrid configura- MGridVM
tion. In addition, any relevant changes in the under- MicrogridAUserAInterfaceA(MUI)
lwyhinicghmairceropgroricdespsleadntbycaMusGertidhVe Mgenineroartdioenr toof uevpednattse, MicrogridAModel MicrogridAModel
the runtime model accordingly, thus completing the MicrogridASynthesisAEngineA(MSE)
causal connection link. In addition, an event may also ControlAScripts MSEAEvents
trigger an autonomic management mechanism, which
uses the runtime model to reason about the system MicrogridAC(MonCtMro)lAMiddlewareA
and react by performing any necessary reconfigura- APIACals MCMAEvents
tion in response.</p>
      <p>Thus, communication between adjacent layers, or MicrogridAHardwareABrokerA(MHB)
between the MHB layer and physical devices, happens APIACals MHBAEvents
through calls to (or events from) a layer or physical
device.</p>
      <p>
        Calls are processed as transactions, avoiding in- PlantAControllers
consistencies in the runtime model maintained by the
execution machine. When a call is processed, other Fig. 1. Architecture of
calls may be generated from it; when this occurs, calls MGridVM and the flow of
are chained with their parent call, creating an execu- the calls and events
durtion tree. A call may only apply its changes at the ing the microgrid model
runtime model of a layer if, and only if, all its child processing [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
calls are successfully executed in their respective
contexts (i.e., layer); if this does not happen, a rollback of
all calls in the execution tree is carried out, and upper
layers are notified in the form of events.
      </p>
      <p>Events may be raised at any layer of the architecture. If a event is received
(from below) by a layer and causes its runtime model to change, such change
needs to be reflected at the runtime model of all layers in order to avoid
inconsistencies between the layers. Therefore, similarly to calls, events also need to be
processed as transactions in order to ensure that their effects will only be made
permanent if event processing at all layers is successful.</p>
      <p>In the following, we describe the layers of MGridVM.</p>
      <p>Microgrid User Interface - MUI : provides the user (specialist or not) with
the ability to specify the configuration and requirements of a microgrid in the
form of a graphical model. MUI validates this model and transforms it into an
XML-based model, which is then passed to the next layer for processing.</p>
      <p>Microgrid Synthesis Engine - MSE : receives a text-based model from MUI
and transforms it into control scripts to be executed by the lower layers. It
performs a comparison between the input model (from MUI) and the current
runtime model and, according to the differences between them, generates control
scripts. These scripts are used by the lower layers to effect the corresponding
changes in the underlying microgrid plant. Control scripts are generated by MSE
using a series of state machines that constitute a labeled transition system (LTS)
at the heart of MSE.</p>
      <p>Microgrid Control Middleware - MCM : executes the commands of the
control scripts in order to manage the controllers and their managed device types,
mapping the types (logic representation of devices) to specific physical devices
in the system. MCM may also apply non-functional properties to the commands
before they are sent to the MHB layer.</p>
      <p>Microgrid Hardware Broker - MHB : executes the commands received from
MCM and applies them to the physical devices. MHB has a generic API to handle
physical devices in a vendor-independentsway. It also has a number of adaptors
that translate the vendor-independent commands into vendor-specific commands
for each device, thus dealing with the heterogeneity problem. In addition, MHB
has an autonomic manager (see Section 4.1) that receives and processes events
generated by the underlying devices as described above.
4</p>
    </sec>
    <sec id="sec-3">
      <title>Metamodel-based implementation</title>
      <p>
        MDE is a suitable approach for the development of complex systems such as
CPSs [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], but the use of models to develop such systems brings another kind of
complexity: model interpretation is a non-trivial process, and the related
mechanisms are hard to develop. In this work, we employ the approach proposed in
[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] to reduce this complexity of developing such mechanisms. In what follows,
we present the metamodel proposed in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] and describe its use to develop the
MHB layer of MGridVM.
      </p>
      <p>A high-level view of the metamodel is shown in Figure 2. It defines a set of
managers, each one with a specific function in the broker. Managers are
responsible for processing the events received from the physical devices and the calls
received from the upper layers, as well as for applying the appropriate policies
and context information in this process.</p>
      <p>The main class of the metamodel is Manager, and an instance of this class
represents the broker from the point of view of the layer above (MCM). It
defines the scope for resource management and groups other components (lower
level managers) that define the specific attributes and functionality of the broker
layer. Figure 2 shows how the following elements are associated: (a) Interface
Handler
Action
0..*
0..*</p>
      <p>Interface 1
1</p>
      <p>Manager
0..1</p>
      <p>ResourceManager
1
0..1
1</p>
      <p>StateManager
PolicyManager</p>
      <p>AutonomicManager
– defines the operations supported by a manager and the events it may
generate; (b) Action/Handler – defines how events and calls are processed; (c)
ResourceManager – defines the resources managed by a specific Manager,
including their interfaces and how they are obtained; (d) StateManager – handles
the data structures that represent the runtime model maintained by the layer;
(d) AutonomicManager – defines the elements that provide the autonomic
behavior of the layer; and (e) PolicyManager – handles and evaluates policies
for resource selection.</p>
      <p>Once an instance of Manager is created, it can be used as a resource for
another (higher-level) instance of Manager. This enables the creation of a
hierarchy of managers as part of the architecture of the MHB layer. In this work,
this hierarchy is key to the management of hierarchical microgrids.
4.1</p>
      <sec id="sec-3-1">
        <title>Microgrid Hardware Broker Implementation</title>
        <p>A microgrid system has several controllers that manage its physical devices,
applying policies that govern their behavior in the presence of calls (from the
upper layer) and events (from the physical devices). Controllers group physical
devices according to their characteristics and the topology of the microgrid.</p>
        <p>All configuration actions upon physical devices are performed in terms of
procedures defined in the controller interface. These procedures are responsible
for controls such as turning on and off a device or controller, or getting/setting
device or controller properties. Thus, when designing a model-based microgrid
management system, we can abstract the low-level details the microgrid plant
and focus on the interface of the controllers.</p>
        <p>As an aside, controllers can manage both legacy and smart devices. In the
former case the controller has to process all signals raised by the devices, and
send only elementary controls to the devices. In the latter, the devices have
mechanisms to process signals and are able to execute more complex commands
sent by the controller.</p>
        <p>
          In a hierarchical microgrid [
          <xref ref-type="bibr" rid="ref13 ref14">13, 14</xref>
          ], as shown in Figure 3, there are two kinds
of controllers: the central controller, which coordinates the microgrid and
provides its non-functional properties; and several local controllers, which manage
the elementary physical devices, such as distributed energy resources (DER)
and loads. Each kind of local controller manages a specific kind of resources.
The central controller in turn manages a group of local controllers as resources.
As a result, the MHB layer manages resources at different levels, working as
an abstraction of the microgrid plant, meaning that the calls supported at its
interface are a superset of the calls that are available to control the plant.
        </p>
        <p>Local MHB
Central MHB
Local Controller
Central Controller
Power Connection
Data Connection
Loads</p>
        <p>PV
Microturbine</p>
        <p>CHP</p>
        <p>Flywheel
Battery
Fuel
Cel</p>
        <p>As seen in Figure 4, when modeling the MHB layer using the proposed MDE
approach, the metamodel is used to build a two-level broker, composed by a
centralized top level, called Central MHB, which abstracts the central controller
interface, and a distributed bottom level, formed by several sub-brokers, called
Distributed Local MHBs, each one abstracting a local controller in the microgrid.
Both the central and local MHBs are instances of class Manager.</p>
        <p>At the broker’s top level, the Central MHB
has a ResourceManager that groups the
several local controllers of the microgrid and
provides an interface to access them. The MHB Microgrid Plant
StateManager at this level maintains the CMenHtBral CConetnrtorlalelr
state of the microgrid’s central controller as ... ...
well as references and properties for each of Distributed Local MHBs Local Controllers
the local controllers. This state is part of the
runtime model maintained by MHB and thus Fig. 4. Interfaces between the
is defined according to the metamodel. MHB and the plant of the
micro</p>
        <p>At the lower level, the Distributed Local grid.</p>
        <p>MHB works in a similar way and its
ResourceManager keeps track of the
elementary devices of the microgrid, exposing the
interfaces used to change their properties in the case of smart devices. Moreover,
the StateManager at the bottom level maintains its share of the runtime model,
namely the state of a local controller and the properties and references to the
physical devices it controls.</p>
        <p>The resources managed by the MHB layer are used through an interface that
is a generic facade to physical devices. For each different kind of device there is
a specific resource class, which abstracts the vendor-specific interfaces.</p>
        <p>When a call arrives at MHB from the upper layer, it is handled by both levels
before being executed on a physical element. The call is first analyzed by the
Central MHB, which selects the Distributed Local MHB representing the local
controller that manages the resource targeted by the call. The selection is made
by querying the runtime-model and its policies.</p>
        <p>Events that arrive from the physical resources are handled in a similar way.
An event is first analyzed by the manager controlling the resource that generated
it, and then by the central manager. If the model has a handler for the event, the
event is analyzed by the corresponding manager, which selects the resource or
the runtime property to be reconfigured. On the other hand, if no handler exists,
the event is forwarded to the upper layer (MCM) where it may be processed.</p>
        <p>At both levels, the AutonomicManager and the PolicyManager are
responsible for the autonomic behavior of MHB.
4.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Model execution by the MHB layer</title>
        <p>A microgrid configuration model is created and interpreted in a series of steps
carried out by the four layers of MGridVM. Note that each layer, including
MHB, can only process what can be modeled using MGridML, the DSML of
MGridVM. Thus, if MGridML has some limitation to model a microgrid, this
reflects as a limitation on MHB’s management capabilities. The model execution
process is described below.</p>
        <p>
          First a graphical model is created at the MUI layer, using MGridML, and
analyzed by the MSE layer. At MSE, a control script is generated and sent to
the lower layers for execution. An example script generated by MSE is shown in
Table 1. The process carried out by MUI and MSE is presented in detail in [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
        <p>Based on the script generated by MSE, MCM executes and configures its
runtime model. After this step, commands may need to be executed on the
physical devices to actually configure the microgrid. These commands (namely
addXxxDevice, remXxxDevice, addXxxController, remXxxController,
setProperty, requestProperty and initializeMGrid) need to be sent to MHB
for execution. However, they must first be transformed into the lower-level
commands supported by the MHB interface, as shown in Table 2.</p>
        <p>When MHB receives calls (commands) from MCM (except for calls 8 and 9 in
Table 2), each call usually follows two distinct flows of execution: one to configure
the physical devices, and another to configure the layer’s runtime model.</p>
        <p>Commands 1, 4, 5, 7 and 9 are related to
controllers, and generally need to be sent only to the top
level of MHB. At this layer, calls are handled to the
Central Controller (flow 1) and, if their execution is
successful, the runtime model of this layer is updated
(flow 2); otherwise an exception is thrown and is
handled as an event by the Manager, as described in
Section 4.</p>
        <p>Note that commands 4 and 5, although not
related to DERs and loads, need to be sent to the bot- Table 2. Mapping
betom level, after transforming them into startCtrlr tween the MCM
comand stopCtrlr commands, respectively, in order to mands and the MHB
inmatch the bottom level API. This is required because terface
controllers are not necessarily physically added or
removed from the system, but started or stopped in the
microgrid topology.</p>
        <p>On the other hand, commands 2, 3, 6, 8 are related to devices, and thus
need to be sent to the bottom level of MHB, where the layer has access to the
microgrid’s Local Controllers, which can directly access the DERs and loads.</p>
        <p>CoMmCmMand MCHalBl
1 initializeMGrid start
2 addXxxDevice addDevice
3 remXxxDevice remDevice
4 addXxxController addCtrlr
5 remXxxController remCtrlr
6 setProperty setDevProperty
7 setProperty setCtrlrProperty
8 requestProperty getDevProperty
9 requestProperty getCtrlrProperty
5</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Related Work</title>
      <p>
        A similar approach to microgrid management using a multilayer architecture is
employed in [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], which proposes an architecture based on economic and technical
criteria. The microgrid model is structured in two layers, a bottom layer that
inspects DERs and loads, and a top layer that receives signals from the bottom
and applies configurations to optimize execution. In contrast to our approach,
signals are sent intermittently by the system to the top layer. In our approach,
the bottom level of the broker captures events and, only when necessary, throws
them upwards for analysis, avoiding bottlenecks in large systems due to a large
amount of events that need to be dealt with by the centralized part of the broker.
      </p>
      <p>
        In a more general sense, the use of models do develop CPSs has also been
proposed. In [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] a model-driven approach is used to control fault tolerance in
CPSs. The model represents how events propagate through the components and
how the system analyzes them to prevent faults. The approach to event handling
is similar to ours. It defines the events that need to be treated, as well as the
actions that must be applied. The main difference is that we treat events as
soon they arrive at the broker, while in [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] events must propagate to different
components in order to be handled.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] an approach is presented to build CPSs using UML-based models. As
in our work, it can, in principle, be used to manage any kind of CPS. However,
their approach is limited to code generation, not allowing runtime management.
      </p>
      <p>
        Finally, within our group work has been carried out that proposes a
domainindependent definition of model execution based on metamodeling [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. The
approach enables construction of model execution engines for different domains
as instances of the proposed metamodel. We build on this work by adapting it
and demonstrating its applicability to the domain of CPS.
6
      </p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>
        This paper presented a model-driven approach to manage microgrids in the form
of an engine (MGridVM) that executes microgrid models. Despite being work
in progress, the way microgrid concepts were linked to the execution engine
constructs, and the way the microgrid components were embodied by the
broker’s metamodel indicates that this is a promising approach for other kinds of
CPSs. The metamodel for the broker layer captures the main control features
of a CPS: event manipulation, actuation on physical devices and coordination.
These features are hard to manage using more traditional CPS development
techniques [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], and the use of a model-driven approach is a way to overcome the
challenges involved. The model used to build the broker defines, in the handlers,
the way events and calls related to physical devices must be treated, without
implementation-specific concerns such as the kind and location of the physical
device, which are common concerns in traditional CPS development.
      </p>
      <p>Coordination of the system is also managed in a natural way through policy
and autonomic managers. Using the policies in the model, the broker can
autonomously respond to events from the physical devices, as well as to calls from
above to configure the microgrid, thus autonomically adapting system behavior.</p>
      <p>
        Furthermore, our work provides additional validation for the use of models
as a generic way to build broker layers for model execution engines, as proposed
in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. The approach was first validated in the communication domain, and now
we demonstrated its applicability for microgrids, with further indication of its
applicability in the more general domain of CPS.
      </p>
      <p>Implementation of MHB is currently being concluded and will enable a
preliminary validation, using a microgrid simulator, of the results of call/event
processing and runtime model maintenance. Future work involves analyzing how the
approach impacts microgrid management, and what are the tradeoffs between
the cost of model processing and the flexibility provided by the approach for
configuration and autonomic control of microgrids, and whether these costs are
acceptable in real microgrids and in other kinds of CPSs.</p>
      <p>Another important issue to be tackled is the autonomic management of
microgrids, using policies to capture the user’s preferences (user’s policies) and
the general behavior of any microgrid (system’s policies). Furthermore, we also
want to investigate the use of the approach to improve the reliability CPSs,
considering issues such as electric power safety and stability.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Baheti</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gill</surname>
          </string-name>
          , H.:
          <article-title>Cyber-physical Systems</article-title>
          .
          <source>The Impact of Control Technology (March</source>
          <year>2011</year>
          )
          <fpage>161</fpage>
          -
          <lpage>166</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Sanislav</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Miclea</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Cyber-Physical</surname>
          </string-name>
          Systems-Concept,
          <source>Challenges and Research Areas. Journal of Control Engineering and Applied Informatics</source>
          <volume>14</volume>
          (
          <issue>2</issue>
          ) (
          <year>2012</year>
          )
          <fpage>28</fpage>
          -
          <lpage>33</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Rajkumar</surname>
            ,
            <given-names>R.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sha</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stankovic</surname>
          </string-name>
          , J.:
          <article-title>Cyber-physical systems</article-title>
          .
          <source>In: Proceedings of the 47th Design Automation Conference on - DAC '10</source>
          , New York, New York, USA, ACM Press (
          <year>2010</year>
          )
          <fpage>731</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>E.a.</given-names>
          </string-name>
          :
          <article-title>Cyber Physical Systems: Design Challenges</article-title>
          . In:
          <year>2008</year>
          11th
          <string-name>
            <given-names>IEEE</given-names>
            <surname>International</surname>
          </string-name>
          <article-title>Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC)</article-title>
          , IEEE (May
          <year>2008</year>
          )
          <fpage>363</fpage>
          -
          <lpage>369</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Derler</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vincentelli</surname>
            ,
            <given-names>A.S.: Modeling</given-names>
          </string-name>
          <string-name>
            <surname>Cyber-Physical Systems</surname>
          </string-name>
          .
          <source>Proceedings of the IEEE</source>
          <volume>100</volume>
          (
          <issue>1</issue>
          ) (
          <year>January 2012</year>
          )
          <fpage>13</fpage>
          -
          <lpage>28</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Karsai</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sztipanovits</surname>
          </string-name>
          , J.:
          <article-title>Model-integrated development of cyber-physical systems</article-title>
          .
          <source>Software Technologies for Embedded and Ubiquitous Systems</source>
          (
          <year>2008</year>
          )
          <fpage>46</fpage>
          -
          <lpage>54</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Hailpern</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tarr</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Model-driven development: The good, the bad, and the ugly</article-title>
          .
          <source>IBM Systems Journal</source>
          <volume>45</volume>
          (
          <issue>3</issue>
          ) (
          <year>2006</year>
          )
          <fpage>451</fpage>
          -
          <lpage>461</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Blair</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bencomo</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          , France, R.B.:
          <article-title>Models@ run.time</article-title>
          .
          <source>Computer</source>
          <volume>42</volume>
          (
          <issue>10</issue>
          ) (
          <year>October 2009</year>
          )
          <fpage>22</fpage>
          -
          <lpage>27</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Deng</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Masoud Sadjadi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Clarke</surname>
            ,
            <given-names>P.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hristidis</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rangaswami</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>CVM - A communication virtual machine</article-title>
          .
          <source>Journal of Systems and Software</source>
          <volume>81</volume>
          (
          <issue>10</issue>
          ) (
          <year>October 2008</year>
          )
          <fpage>1640</fpage>
          -
          <lpage>1662</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Wu</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Allen</surname>
            ,
            <given-names>A.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hernandez</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          , France,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Clarke</surname>
          </string-name>
          ,
          <string-name>
            <surname>P.J.:</surname>
          </string-name>
          <article-title>A domain-specific modeling approach to realizing user-centric communication</article-title>
          .
          <source>Software: Practice and Experience</source>
          <volume>42</volume>
          (
          <issue>3</issue>
          ) (
          <year>March 2012</year>
          )
          <fpage>357</fpage>
          -
          <lpage>390</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Allison</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Morris</surname>
            ,
            <given-names>K.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yang</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Clarke</surname>
            ,
            <given-names>P.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Costa</surname>
            ,
            <given-names>F.M.</given-names>
          </string-name>
          :
          <article-title>Towards Reliable Smart Microgrid Behavior Using Runtime Model Synthesis</article-title>
          .
          <source>In: 2012 IEEE 14th International Symposium on High-Assurance Systems Engineering. Number Cm</source>
          , IEEE (
          <year>October 2012</year>
          )
          <fpage>185</fpage>
          -
          <lpage>192</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Sousa</surname>
            ,
            <given-names>G.C.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Costa</surname>
            ,
            <given-names>F.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Clarke</surname>
            ,
            <given-names>P.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Allen</surname>
            ,
            <given-names>A.A.</given-names>
          </string-name>
          :
          <article-title>Model-driven development of DSML execution engines</article-title>
          .
          <source>In: Proceedings of the 7th Workshop on Models@run.time - MRT '12</source>
          , New York, New York, USA, ACM Press (
          <year>2012</year>
          )
          <fpage>10</fpage>
          -
          <lpage>15</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Zamora</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Srivastava</surname>
            ,
            <given-names>A.K.</given-names>
          </string-name>
          :
          <article-title>Controls for microgrids with storage: Review, challenges</article-title>
          , and research needs.
          <source>Renewable and Sustainable Energy Reviews</source>
          <volume>14</volume>
          (
          <issue>7</issue>
          ) (
          <year>2010</year>
          )
          <fpage>2009</fpage>
          -
          <lpage>2018</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Jiang</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dougal</surname>
            ,
            <given-names>R.A.</given-names>
          </string-name>
          :
          <article-title>Hierarchical microgrid paradigm for integration of distributed energy resources</article-title>
          .
          <source>In: 2008 IEEE Power and Energy Society General Meeting - Conversion and Delivery of Electrical Energy in the 21st Century</source>
          ,
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>July 2008</year>
          )
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Enrich</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Skovron</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tolos</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Torrent-Moreno</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Microgrid management based on economic and technical criteria</article-title>
          .
          <source>In: 2012 IEEE International Energy Conference and Exhibition (ENERGYCON)</source>
          ,
          <source>IEEE (September</source>
          <year>2012</year>
          )
          <fpage>551</fpage>
          -
          <lpage>556</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Dubey</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karsai</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mahadevan</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          :
          <article-title>Model-based software health management for real-time systems</article-title>
          .
          <source>2011 Aerospace Conference (March</source>
          <year>2011</year>
          )
          <fpage>1</fpage>
          -
          <lpage>18</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Magureanu</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gavrilescu</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pescaru</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Doboli</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Towards UML modeling of cyber-physical systems: A case study for gas distribution</article-title>
          .
          <source>IEEE 8th International Symposium on Intelligent Systems and Informatics (September</source>
          <year>2010</year>
          )
          <fpage>471</fpage>
          -
          <lpage>476</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>