<!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>Enabling Compliance Monitoring for Process Execution Engines</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Marwa Hussein Zaki</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ahmed Awad</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Information Systems Department, Faculty of Computers and Information, Cairo University</institution>
          ,
          <addr-line>Giza 12613, Egypt m.hussein, a.gaafar</addr-line>
        </aff>
      </contrib-group>
      <fpage>30</fpage>
      <lpage>37</lpage>
      <abstract>
        <p>Most of organizations try to ensure that their business processes are compliant with regulations and laws, so runtime monitoring of process compliance is considered to be of crucial importance. In this regard, there are several frameworks that enable the monitoring based on variants of event processing technologies. Most of these frameworks presume a rich activity lifecycle model for the execution of tasks. However, most of process execution engines support simpler lifecycle models. Thus, these frameworks fall short in monitoring compliance for such engines due to missing needed input events. The goal of this paper is to enable compliance monitoring for di erent process execution engines. First we propose a middleware layer that maps di erent execution engines' lifecycles states to a reference lifecycle model. Also, unmatched states will be derived from execution's engine states. Additionally, we implement compliance anti patterns to prove the feasibility of our approach.</p>
      </abstract>
      <kwd-group>
        <kwd>Business Process Management</kwd>
        <kwd>web services</kwd>
        <kwd>compliance</kwd>
        <kwd>runtime monitoring</kwd>
        <kwd>lifecycle mapping</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        Most of the organizations try to ensure the compliance of their business processes
against regulations and laws to avoid non-compliance penalties [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. As a result, di
erent approaches were developed to check the compliance of a business processes through
di erent phases of a business process lifecycle [
        <xref ref-type="bibr" rid="ref13 ref21">13,21</xref>
        ] e.g., at design time [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], at the
process execution (runtime) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] or at the evaluation phase [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
      </p>
      <p>
        Compliance monitoring at process execution time is considered of utmost
importance because not every possibility of violation can be checked at design time. Several
approaches have been developed to enable the monitoring of running processes
compliance, e.g. [
        <xref ref-type="bibr" rid="ref14 ref3">14,3</xref>
        ]. Most of the monitoring frameworks presume a rich activity lifecycle
model, cf. [
        <xref ref-type="bibr" rid="ref10 ref3">3,10</xref>
        ] compared to the simple task lifecycle models supported by business
process execution engines. So, many of the expected execution events by the
monitoring frameworks will be missing. This introduces the threat of having violations go
undetected. To make use of those frameworks, the gap between what is provided by
execution engines and what is expected by monitoring frameworks has to be filled.
      </p>
      <p>
        In this paper, we propose a mapping approach that fills the gap between the
activity lifecycle models supported by di erent process execution engines and the reference
lifecycle model proposed by Russell et al. [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] and supported by the BP-MaaS
monitoring framework [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], as an example monitoring framework, and two process execution
engines: Activiti [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] and jBPM [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. For each, we have studied the supported task
lifecycle models of the engines, compared them to the reference lifecycle and identified
the mapping. To achieve the compliance monitoring, we implemented the compliance
patterns presented in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        The rest of the paper is organized as follows: Section 2 presents our proposed model,
Section 3 discusses related work and Section 4 concludes the paper with an outlook on
future work. The needed preliminaries, some of the background techniques and a simple
running example are provided in an extended version of this paper [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Enabling Monitoring</title>
      <p>Compliance</p>
      <p>Rules</p>
      <p>Lifecycle Mapping Logic</p>
      <p>Event Mapping
Monitoring</p>
      <p>System</p>
      <p>Engine Raw
Events Stream</p>
      <p>Violation</p>
      <p>Events</p>
      <p>
        Our contribution can be seen as a middleware which consists of: a) An
enginespecific mapping to the reference task lifecycle b) Implementation of the compliance
monitoring anti patterns in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Fig. 1 depicts the architecture of the middleware. The
Lifecycle Mapping Logic is a set of rules used to perform the mapping from Engine’s
raw events to the reference events. Currently, these rules are manually derived and
programmed into an executable language. For the case of jBPM, the mapping rules are
encoded as Drools rules. For Activiti, rules are encoded as extensions to the engine and
written in EPL syntax, more details are given later in this section. The mapping logic is
done o ine and once per process execution engine. It only needs to be revisited in case
either the engine lifecycle or the reference lifecycle is changed. At runtime, the
monitoring system detects and throws violation events, if any, based on the input compliance
rules and the events coming from the reference events stream.
The lifecycle in Fig. 2 illustrates the state transitions of tasks as follows: a work item (a
task) is created by the system. It is either directly started or allocated to a resource. A
task can be delegated to another resource either by the system (escalate), or the
responsible resource (delegate). After assigning a resource, the task will be started. However,
the resource can skip it to be completed directly. Moreover, a resource can suspend a
task to be suspended and resume it again (resume) to be started and finally completed
or (redo) it after completion. If the resource fails to execute the task failed, it can try
to (restart) it again or (reallocate) to another resource . More details about this lifecycle
could be found in the extended version of this paper [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
The lifecycle mapping part has two inputs: (1) Engine Raw Events Stream and (2)
Lifecycle Mapping Logic which contains a list of rules used to obtain the corresponding
reference event. The output of this part is the Reference Event Stream which contains
the mapped and the derived missing reference events.
      </p>
      <p>There are four di erent possibilities for mapping an engine-specific event/state to
the reference state. The first possibility is that there is a direct correspondence. Both the
engine activity state and the reference state carry the same name and meaning. The
second possibility is that there is a naming mismatch but a conceptual match. For instance,
the engine defines activity state assigned which is matched with the reference state
allocated. The third possibility is that the reference state can be derived via observing a
pattern over one or more of the engine’s states. As an example, the reference state
transition resumed can be derived by detecting a sequence of suspended and started events
of the same task instance and the same performer. The last possibility is that there is no
mapping possible, this means that the engine does not support this state.</p>
      <p>
        We investigated di erent execution engines’ lifecycles for di erent languages such
as BPMN, BEPL and workflow systems (YAWL). A survey about these engines and
their lifecycles could be found on the extended version of this paper [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] We report
implementation on jBPM [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and Activiti [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] as Camunda 1 and Activiti almost have the
same API functions. We investigated the YAWL workflow engine’s lifecycle [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]
without a specific implementation as this workflow system is more scientific and complex
for regular user; rather than BPMN execution engines which are easier to understand
and use. Table 1 summarizes the mapping between the di erent states of these engines’s
lifecycle to the reference lifecycle.
      </p>
      <sec id="sec-2-1">
        <title>1 https://camunda.com/</title>
        <p>The direct mapping and the naming mismatch are straightforward. In the latter case,
when the engine generates an event with the mis-named state, our approach generates
another event copying all the data of the original event except for the state where the
conceptually equivalent state is substituted. In the third case, the approach can derive
the reference state by observing the occurrence of one or more of the engine’s events.
This process happens by adding engine extension to throw a new event when the engine
performs an operation on the task that is not supported by its lifecycle. The following
rules are specific for each engine.</p>
        <p>For Activiti and Camunda engines:
– Rule 1: (Start on Create) action can be inferred when task t is created with
performer ri and the system directly starts this task. If the start event is not supported
by the engine, we consider that the task is immediately started after creation and a
new start on create event is thrown and mapped to started reference event.
– Rule 2: (Suspended) event can be inferred when the whole process instance is
suspended as the engine doesn’t support the suspended state on the task level. When
the engine reports a wait state for the process instance, we can detect that a
suspended event occurred and is thrown to the stream.</p>
        <p>After the investigation of the Activiti and Camunda engines, we found that the failed
state is not supported and there is no way of mapping this state.
2.3</p>
        <p>Compliance Monitoring Implementation
This subsection provides the implementation details of compliance monitoring within
Activiti and jBPM engines. We use complex event processing (CEP) with the help of
Esper within Activiti which consists of four parts: (1) Business Process Model where we
define task listeners in the XML file defining the process, (2) Task Listeners that detect
any change in the task’s state through the process execution and generate a predefined
event to be analyzed later, (3) Esper Engine that is responsible for generating streams
and populating them with events coming from di erent sources, initiating listeners to
detect events from the engine, throwing new events in case of any changes after
processing and communicating with our middleware (4) Stream; that contains all kinds of</p>
        <sec id="sec-2-1-1">
          <title>2 Enabled state with more information about the resource</title>
          <p>events either raw, mapped or complex events thrown from our middleware. All the logic
for mapping events or implementation of compliance anti patterns is implemented using
Event Processing Language (EPL) and Drools Rule Language (DRL).</p>
          <p>The following lists present a sample EPL query of the implementation of the
mapping cases.</p>
          <p>Listing 1.1: EPL statements for naming mismatch for the allocated state
1 insert into referenceeventsstream ( taskInstanceId , receiveTime ,
2 eventType , performer ) select taskInstanceId , receiveTime ,
3 'allocated ',performer from engineraweventsstream where
4 eventType = ? "</p>
          <p>
            jBPM supports the CEP technology through the integration with Drools [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ]. The
mapping approach on jBPM starts by defining an active session to register the streams
which contains the raw events generated from the process instances execution. After
that Drools rules match the incoming events with the defined mapping logic and fires
when a mapping match is found.
          </p>
          <p>The following list introduces a sample of the Drools rule used in the naming
mismatch case in jBPM for the inprogress state.</p>
          <p>Listing 1.2: inprogress detection drools rule</p>
        </sec>
      </sec>
      <sec id="sec-2-2">
        <title>1 rule " inprogress Rule "</title>
        <p>2 when
3 $mevent : events ( tasktype ==" InProgress ") from
4 entry - point engineStream then
5 $mevent . seteventType (" started ");
6 update ( $mevent );</p>
        <p>
          The second part of our approach is the implementation of the compliance rules
using the anti patterns technique presented in [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. We implemented most of the patterns,
e.g. exist,absence, response, one to one response, next, sequence and separation of duty
using the rule semantics logic of the Drools engine [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. The framework uses the
reference events stream and the compliance patterns as input and matches each pattern with
its corresponding anti-pattern rule to detect any possible violation as depicted in Fig. 1.
        </p>
        <p>We implement this part using the Drools fusion component which contains complex
event processing features. The anti patterns queries are written using the Drools rule
language (DRL) and are stored in the production memory of the Drools engine. The
compliance rules which present one of the inputs for the compliance monitoring part is
stored in the working memory of the engine as ”facts” to be compared later with the
stored Drools rules. The streams containing events in Drools engine are called entry
points. Based on the compliance rules and the events from the entry points, Drools
rules fire and throw a violation event whenever a violation occurs. The following list
introduces sample of the rules used to implement the compliance rules anti-patterns.</p>
        <sec id="sec-2-2-1">
          <title>Listing 1.3: Exist anti pattern rule</title>
          <p>1
2 Exist anti pattern
3 when Event ( $task : task , $ts : tistamp , $type : type ,
4 $pi : processinstance ) from entry - point Stream
5 $comprules : Comprules ( pattern == " exist ", scopestart == $type ,
6 $mul : multiplicity )
7 $total : Number ( intValue &gt; $mul )
8 from accumulate ( Event ( task == $comprules . antecedent ,
9 tistamp &gt; $ts , type == $comprules . scopeend , processinstance == $pi ,
10 $ant : task ) from entry - point Stream , count ( $ant ))
11 then System .out. println (" Exist pattern VIOLATION --&gt;
12 the antecedent count
13 is GREATER THAN multiplicity , Evaluate Loan request delegation
14 happened more than once ");</p>
          <p>
            The full set of implemented rules and mapping part implementation on Activiti and
jBPM engines could be found here:
https://github.com/MarwaHusseinZaki/LifecycleMapping.git. Also more details about the evaluation and results of our approach could
be found in this extended version of the paper [
            <xref ref-type="bibr" rid="ref9">9</xref>
            ].
3
          </p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Related Work</title>
      <p>
        Regarding runtime monitoring frameworks, [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] combines BPM with CEP for
monitoring business process execution. They used the activity lifecycle from [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], the refined
process structure tree (RPST) [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] to analyze process models, CEP queries and
process event monitoring points (PEMPs) to monitor business process execution based on
events in semi-automated environments. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] introduces a framework that addresses the
gap between events occurring during process execution and the correlation of these
events to the corresponding process using PEMPs. In [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] the authors present a
framework for monitoring the progress of task execution and predicting problems during
runtime, using Support Vector Machines (SVMs) machine learning. The authors in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
present a runtime business process compliance monitoring framework, BP-MaaS. Their
work is based on compliance patterns for the specification of runtime constraints and
anti-pattern queries notation to detect runtime compliance violations using CEP.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref11 ref12">11,12</xref>
        ], authors presented a framework for monitoring business process
compliance by introducing the extended Compliance Rule Graph (eCRG) for monitoring
compliance rules visually with respect to all relevant process perspective. This
framework supports the activity lifecycle by capturing the activity states and implements a
correlation mechanism between events. [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] presented a generic framework to monitor
process instances from di erent process perspectives. They are using the lifecycle from
[
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] and defines the events as a points to be tracked by their monitoring system which
carry information from di erent perspectives. Our work could complement their work
as they are not focusing on the resource perspective in their implementation. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]
focused on realizing a monitoring component for the YAWL system using sensors, which
monitors conditions that can be achieved through cases.
      </p>
      <p>All the previous work focused on monitoring business process over runtime
environment based on events with di erent task or activity lifecycles. Our work aims at
trying to help them by developing a mapping approach that will unify the states of
events produced from process execution with their supported lifecycle to remove any
inconsistency.</p>
      <p>
        With respect to task lifecycle used in monitoring systems, [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] discuss increasing the
number of observed events by capturing data state transition events in non automated
environment. They focus on the object lifecycle states generated from data objects. [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]
addresses the problem of modeling processes with complex data dependencies and their
enactment from process models. They focus on the process data level and data objects.
Meanwhile, [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] presents an approach that captures the whole process life cycle and
all kinds of changes in an integrated way. They are focusing mainly on control-flow
changes. The changes of the resource perspective or data perspective are out of the
scope of that paper.
      </p>
      <p>As discussed above, most of the monitoring frameworks use di erent task lifecycle
models. Also, most of researches which address lifecycle models focus on either the
data perspective or the lifecycle states extracted from the non automated environments,
not generated from execution engine. For those approches that support automated
process execution, we position our work as complementary to their work when it comes to
actual implementations on available open source process execution engines.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Conclusion and Future Work</title>
      <p>In this paper, we proposed an approach that maps di erent execution engines’
lifecycles states to a reference lifecycle model. Also, the approach infers missing events that
the execution engine does not support. The proposed approach serves as a middleware
between process enactment and third party monitoring systems. To prove the validity of
our middleware, we implemented most of the compliance patterns presented by the
BPMaas framework to enable compliance monitoring over jBPM engine. We implemented
our approach using Activiti and jBPM open source execution engine and we use CEP
technology with Esper, Java and EPL language and CEP with Drools Rule Language
(DRL). Our approach focus on the compliance monitoring as one of the many cases
of business process monitoring over runtime, but the mapping part can be used by any
framework to support any kind of process monitoring. As a future work, we intend to
apply our mapping approach on more execution engines to prove its feasibility. Also we
will try to expand our monitoring framework by building a dashboard to enable users
enter the compliance patterns and determine the events stream to let the framework
detect possible violations.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Michael</given-names>
            <surname>Backmann</surname>
          </string-name>
          , Anne Baumgrass, Nico Herzberg, Andreas Meyer, and Mathias Weske.
          <article-title>Model-driven event query generation for business process monitoring</article-title>
          .
          <source>In ICSOC Workshops</source>
          , volume
          <volume>8377</volume>
          <source>of LNCS</source>
          , pages
          <fpage>406</fpage>
          -
          <lpage>418</lpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Michal</given-names>
            <surname>Bali</surname>
          </string-name>
          .
          <source>Drools JBoss Rules 5.0 Developer's Guide. Packt Publishing</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Ahmed</given-names>
            <surname>Barnawi</surname>
          </string-name>
          , Ahmed Awad, Amal Elgammal, Radwa Elshawi, Abduallah Almalaise, and
          <string-name>
            <given-names>Sherif</given-names>
            <surname>Sakr</surname>
          </string-name>
          .
          <article-title>An anti-pattern-based runtime business process compliance monitoring framework</article-title>
          .
          <source>INTERNATIONAL JOURNAL OF ADVANCED COMPUTER SCIENCE AND APPLICATIONS</source>
          ,
          <volume>7</volume>
          (
          <issue>2</issue>
          ),
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Cristina</given-names>
            <surname>Cabanillas</surname>
          </string-name>
          , Claudio Di Ciccio, Jan Mendling, and
          <string-name>
            <given-names>Anne</given-names>
            <surname>Baumgrass</surname>
          </string-name>
          .
          <article-title>Predictive task monitoring for business processes</article-title>
          .
          <source>In BPM</source>
          , volume
          <volume>8659</volume>
          <source>of LNCS</source>
          , pages
          <fpage>424</fpage>
          -
          <lpage>432</lpage>
          . Springer,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. Ra aele Conforti, Marcello La Rosa, and
          <string-name>
            <given-names>Giancarlo</given-names>
            <surname>Fortino</surname>
          </string-name>
          .
          <article-title>Process monitoring using sensors in YAWL</article-title>
          .
          <source>In Proceedings of the First YAWL Symposium</source>
          , volume
          <volume>982</volume>
          <source>of CEUR Workshop Proceedings</source>
          , pages
          <fpage>49</fpage>
          -
          <lpage>55</lpage>
          . CEUR-WS.org,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Simone</given-names>
            <surname>Fiorini</surname>
          </string-name>
          and Arun V Gopalakrishnan.
          <article-title>Mastering jBPM6</article-title>
          .
          <source>Packt Publishing</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Nico</given-names>
            <surname>Herzberg</surname>
          </string-name>
          and Andreas Meyer.
          <article-title>Improving process monitoring and progress prediction with data state transition events</article-title>
          . volume
          <volume>1029</volume>
          , pages
          <fpage>20</fpage>
          -
          <lpage>23</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Nico</given-names>
            <surname>Herzberg</surname>
          </string-name>
          , Andreas Meyer, and
          <string-name>
            <given-names>Mathias</given-names>
            <surname>Weske</surname>
          </string-name>
          .
          <article-title>An Event Processing Platform for Business Process Management</article-title>
          .
          <source>In EDOC</source>
          , pages
          <fpage>107</fpage>
          -
          <lpage>116</lpage>
          . IEEE Computer Society,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Marwa</given-names>
            <surname>Hussein</surname>
          </string-name>
          , Ahmed Awad, and
          <string-name>
            <given-names>Osman</given-names>
            <surname>Hegazy</surname>
          </string-name>
          .
          <article-title>Enabling compliance monitoring for process execution engines</article-title>
          .
          <source>technical report, Faculty of Computers and Information</source>
          , Cairo University,
          <year>2017</year>
          . http://scholar.cu.edu.eg/?q=marwa_hussein/files/paper. pdf.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>Amin</given-names>
            <surname>Jalali</surname>
          </string-name>
          and
          <string-name>
            <given-names>Paul</given-names>
            <surname>Johannesson</surname>
          </string-name>
          .
          <article-title>Multi-perspective business process monitoring</article-title>
          .
          <source>In BPMDS</source>
          , volume
          <volume>147</volume>
          <source>of LNBIP</source>
          , pages
          <fpage>199</fpage>
          -
          <lpage>213</lpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. David Knuplesch,
          <string-name>
            <given-names>Manfred</given-names>
            <surname>Reichert</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Akhil</given-names>
            <surname>Kumar</surname>
          </string-name>
          .
          <article-title>Visually monitoring multiple perspectives of business process compliance</article-title>
          .
          <source>In BPM</source>
          , volume
          <volume>9253</volume>
          <source>of LNCS</source>
          , pages
          <fpage>263</fpage>
          -
          <lpage>279</lpage>
          . Springer,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. David Knuplesch,
          <string-name>
            <given-names>Manfred</given-names>
            <surname>Reichert</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Akhil</given-names>
            <surname>Kumar</surname>
          </string-name>
          .
          <article-title>A framework for visually monitoring business process compliance</article-title>
          .
          <source>Inf. Syst.</source>
          ,
          <volume>64</volume>
          :
          <fpage>381</fpage>
          -
          <lpage>409</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. Linh Thao Ly, Stefanie Rinderle-Ma, Kevin Go¨ser, and
          <string-name>
            <given-names>Peter</given-names>
            <surname>Dadam</surname>
          </string-name>
          .
          <article-title>On enabling integrated process compliance with semantic constraints in process management systems - requirements, challenges, solutions</article-title>
          .
          <source>Information Systems Frontiers</source>
          ,
          <volume>14</volume>
          (
          <issue>2</issue>
          ):
          <fpage>195</fpage>
          -
          <lpage>219</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. Fabrizio Maria Maggi, Marco Montali,
          <string-name>
            <given-names>Michael</given-names>
            <surname>Westergaard</surname>
          </string-name>
          , and
          <string-name>
            <surname>Wil M. P. van der Aalst</surname>
          </string-name>
          .
          <article-title>Monitoring business constraints with linear temporal logic: An approach based on colored automata</article-title>
          .
          <source>In BPM</source>
          , volume
          <volume>6896</volume>
          <source>of LNCS</source>
          , pages
          <fpage>132</fpage>
          -
          <lpage>147</lpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. Andreas Meyer, Luise Pufahl, Dirk Fahland, and
          <string-name>
            <given-names>Mathias</given-names>
            <surname>Weske</surname>
          </string-name>
          .
          <article-title>Modeling and enacting complex data dependencies in business processes</article-title>
          .
          <source>In BPM</source>
          , volume
          <volume>8094</volume>
          <source>of LNCS</source>
          , pages
          <fpage>171</fpage>
          -
          <lpage>186</lpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Artem</surname>
            <given-names>Polyvyanyy</given-names>
          </string-name>
          , Jussi Vanhatalo, and
          <article-title>Hagen Vo¨lzer. Simplified computation and generalization of the refined process structure tree</article-title>
          .
          <source>In WS-FM Workshop</source>
          , volume
          <volume>6551</volume>
          <source>of LNCS</source>
          , pages
          <fpage>25</fpage>
          -
          <lpage>41</lpage>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>Tijs</given-names>
            <surname>Rademakers</surname>
          </string-name>
          . Activiti in Action.
          <source>Manning Publications</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Elham</surname>
            <given-names>Ramezani</given-names>
          </string-name>
          , Dirk Fahland, and
          <string-name>
            <surname>Wil M. P. van der Aalst</surname>
          </string-name>
          .
          <article-title>Where did I misbehave? diagnostic information in compliance checking</article-title>
          .
          <source>In BPM</source>
          , volume
          <volume>7481</volume>
          <source>of LNCS</source>
          , pages
          <fpage>262</fpage>
          -
          <lpage>278</lpage>
          . Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Nick</surname>
            <given-names>Russell</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wil M. P. van der Aalst</surname>
          </string-name>
          ,
          <string-name>
            <surname>Arthur H. M. ter Hofstede</surname>
          </string-name>
          , and David Edmond.
          <article-title>Workflow resource patterns: Identification, representation and tool support</article-title>
          .
          <source>In Advanced Information Systems Engineering</source>
          , volume
          <volume>3520</volume>
          <source>of LNCS</source>
          , pages
          <fpage>216</fpage>
          -
          <lpage>232</lpage>
          . Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Arthur H. M. ter Hofstede</surname>
          </string-name>
          ,
          <string-name>
            <surname>Wil M. P. van der Aalst</surname>
          </string-name>
          , Michael Adams, and Nick Russell, editors.
          <source>Modern Business Process Automation - YAWL and its Support Environment</source>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21. Oktay Tu¨retken, Amal Elgammal, Willem-Jan van den Heuvel, and
          <string-name>
            <given-names>Mike P.</given-names>
            <surname>Papazoglou</surname>
          </string-name>
          .
          <article-title>Enforcing compliance on business processes through the use of patterns</article-title>
          .
          <source>In ECIS, page 5</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Barbara</surname>
            <given-names>Weber</given-names>
          </string-name>
          , Manfred Reichert, Stefanie Rinderle-Ma, and
          <string-name>
            <given-names>Werner</given-names>
            <surname>Wild</surname>
          </string-name>
          .
          <article-title>Providing Integrated Life Cycle Support in Process-Aware Information Systems</article-title>
          .
          <source>International Journal of Cooperative Information Systems</source>
          ,
          <volume>18</volume>
          (
          <issue>01</issue>
          ):
          <fpage>115</fpage>
          -
          <lpage>165</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>Mathias</given-names>
            <surname>Weske</surname>
          </string-name>
          .
          <source>Business Process Management: Concepts</source>
          , Languages, Architectures. Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>