<!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>PROtEUS++: A Self-managed IoT Workflow Engine with Dynamic Service Discovery</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ronny Seiger</string-name>
          <email>Ronny.Seiger@tu-dresden.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Stefen Huber</string-name>
          <email>Stefen.Huber@tu-dresden.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Peter Heisig</string-name>
          <email>Peter.Heisig@tu-dresden.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institute of Software and Multimedia Technology, Technische Universität Dresden</institution>
          ,
          <addr-line>D-01062</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <fpage>90</fpage>
      <lpage>92</lpage>
      <abstract>
        <p>Despite ofering various advantages, the usage of Business Process Management technologies to orchestrate workflows in the Internet of Things (IoT) is still in its infancy. In this work, we demonstrate an extended version of our PROtEUS process execution system for IoT. Besides the processing of sensor streams and interacting with humans, PROtEUS++ is capable of dynamic service invocation as well as selfmanagement to detect and repair errors that happen during process execution. We show the system executing various dynamic and errorprone processes in the Smart Home.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Introduction</p>
      <p>PROtEUS Base System
PROtEUS++: A Self-managed IoT Workflow Engine</p>
    </sec>
    <sec id="sec-2">
      <title>Process Execution Engine</title>
    </sec>
    <sec id="sec-3">
      <title>Distribution</title>
    </sec>
    <sec id="sec-4">
      <title>Manager</title>
    </sec>
    <sec id="sec-5">
      <title>Process</title>
    </sec>
    <sec id="sec-6">
      <title>Manager</title>
    </sec>
    <sec id="sec-7">
      <title>Human Task</title>
    </sec>
    <sec id="sec-8">
      <title>Handler</title>
    </sec>
    <sec id="sec-9">
      <title>Local Service Platform</title>
      <p>Service
Service
Service
Actuator</p>
    </sec>
    <sec id="sec-10">
      <title>WebSocket Server</title>
    </sec>
    <sec id="sec-11">
      <title>Service Invoker</title>
    </sec>
    <sec id="sec-12">
      <title>CEP Adapter</title>
    </sec>
    <sec id="sec-13">
      <title>Remote</title>
    </sec>
    <sec id="sec-14">
      <title>Engine Client</title>
    </sec>
    <sec id="sec-15">
      <title>Management</title>
    </sec>
    <sec id="sec-16">
      <title>Client</title>
    </sec>
    <sec id="sec-17">
      <title>Interactive</title>
    </sec>
    <sec id="sec-18">
      <title>Client</title>
      <p>Service
Sensor
Actuator</p>
    </sec>
    <sec id="sec-19">
      <title>Semantic</title>
    </sec>
    <sec id="sec-20">
      <title>Access</title>
    </sec>
    <sec id="sec-21">
      <title>Layer</title>
      <p>Service</p>
      <sec id="sec-21-1">
        <title>Actuator Sensor Sensor</title>
        <p>PROtEUS</p>
      </sec>
    </sec>
    <sec id="sec-22">
      <title>CEP Engine</title>
      <p>
        Process
Goals
Feedback
Service
Monitor
Analyzer
Planner
Executor
Knowledge
Base
PROtEUS is extended with a Semantic Access Layer (SAL) [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] as shown in
Fig. 2. The core of this service is a knowledge base that contains information
about all IoT sensors and actuators, their capabilities and contexts, as well as
their associated IoT services and interfaces. User defined SPARQL queries can
be sent to the SAL from a process activity to find and invoke IoT services in a
specified context at runtime. If an IoT service can be found as a process resource,
a call to our IoT middleware (here: OpenHAB) is issued to execute this service.
      </p>
      <sec id="sec-22-1">
        <title>Process</title>
      </sec>
      <sec id="sec-22-2">
        <title>Model</title>
        <p>(SPARQL)
PROtEUS
SAL</p>
      </sec>
    </sec>
    <sec id="sec-23">
      <title>Semantic Query</title>
      <sec id="sec-23-1">
        <title>Lifted Response</title>
      </sec>
    </sec>
    <sec id="sec-24">
      <title>Lowered Invoke Response</title>
      <sec id="sec-24-1">
        <title>IoT-Service</title>
      </sec>
      <sec id="sec-24-2">
        <title>Sensor</title>
      </sec>
      <sec id="sec-24-3">
        <title>IoT-Service</title>
      </sec>
      <sec id="sec-24-4">
        <title>Actuator</title>
      </sec>
      <sec id="sec-24-5">
        <title>Knowledge Base</title>
        <p>(Interface,</p>
      </sec>
    </sec>
    <sec id="sec-25">
      <title>Capabilities, Context)</title>
      <sec id="sec-25-1">
        <title>Cyber World</title>
      </sec>
      <sec id="sec-25-2">
        <title>Physical World</title>
        <p>
          The base system can be used in combination with the Feedback Service [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], which
adds self-management (here: self-healing) in the form a cyber-physical feedback
loop to PROtEUS (cf. Fig. 1). This service implements the MAPE-K loop for
autonomous systems applied to the process execution [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. This loop enables the
linking of the execution of process activities to their physical efects: Monitoring
        </p>
        <p>
          Ronny Seiger et al.
gathers relevant sensor data from the environment and execution system; Analysis
analyzes the data regarding the fulfillment of the process goals; Planning searches
for compensations (here: alternative actuators or services) in case of unexpected
errors; and Execution executes these compensations. All components use the
Knowledge Base to store and retrieve relevant information (e. g., for finding
replacement services). This loop is executed until a process goal is reached or
cancelled if errors cannot be compensated. These Process Goals are specified on
the activity, subprocess or process level. They contain the paths to relevant sensor
data, a condition defining the successful execution, and a condition defining the
need for entering the Planning phase due to an error [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
5
We present several real-world use cases of PROtEUS++ executing three example
processes. 1) A process demonstrating the base system and the dynamic service
selection via the SAL–a health monitoring process asking the user for its
wellbeing in case of a detected emergency and calling an ambulance if the user is
unresponsive. 2) A process demonstrating the base system interacting with the
Feedback Service. A continuous process controls the light levels in a room to be
within certain thresholds–selecting an alternative light source or notifying the
user if the lights fail. 3) A process demonstrating the execution and feedback
control of a distributed process on a service robot–repeating the subprocess on
another robot if it fails during the driving to diferent locations. Along with these
processes, we present the modelling tool [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] as well as a mobile control center
app to interact with the workflows [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
        </p>
        <p>Acknowledgements
This research has received funding under the grant number 100268299 by the
European Social Fund (ESF) and the German Federal State of Saxony.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Autonomic</given-names>
            <surname>Computing</surname>
          </string-name>
          :
          <article-title>An architectural blueprint for autonomic computing</article-title>
          .
          <source>IBM Publication</source>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Huber</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seiger</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schlegel</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Using semantic queries to enable dynamic service invocation for processes in the internet of things</article-title>
          .
          <source>In: ICSC</source>
          . pp.
          <fpage>214</fpage>
          -
          <lpage>221</lpage>
          (
          <year>Feb 2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Seiger</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huber</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heisig</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Assmann</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>Enabling Self-adaptive Workflows for Cyber-physical Systems</article-title>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>17</lpage>
          . Springer International Publishing (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Seiger</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huber</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schlegel</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Proteus: An integrated system for process execution in cyber-physical systems</article-title>
          .
          <source>In: Enterprise, Business-Process and Information Systems Modeling, LNBIP</source>
          , vol.
          <volume>214</volume>
          , pp.
          <fpage>265</fpage>
          -
          <lpage>280</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Seiger</surname>
          </string-name>
          , R., Keller, C.,
          <string-name>
            <surname>Niebling</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schlegel</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Modelling complex and flexible processes for smart cyber-physical environments</article-title>
          .
          <source>JOCS 10</source>
          ,
          <fpage>137</fpage>
          -
          <lpage>148</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Seiger</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lemme</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Struwe</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schlegel</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>An interactive mobile control center for cyber-physical systems</article-title>
          .
          <source>In: UbiComp Adjunct Proceedings</source>
          . pp.
          <fpage>193</fpage>
          -
          <lpage>196</lpage>
          . UbiComp '16,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York, NY, USA (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>