<!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>Message Assertions and Predicate-Based Control-Flow Unfolding Revisited</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Thomas S. Heinze</string-name>
          <email>t.heinze@uni-jena.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Wolfram Amme</string-name>
          <email>wolfram.amme@uni-jena.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Simon Moser</string-name>
          <email>smoser@de.ibm.com</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Friedrich Schiller University of Jena, Institute of Computer Science</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>IBM Research &amp; Development Böblingen</institution>
        </aff>
      </contrib-group>
      <fpage>17</fpage>
      <lpage>20</lpage>
      <abstract>
        <p>In our previous work, we considered, on the one hand, the predicate-based unfolding of a business process's conditional control flow and, on the other hand, the introduction of assertions for the contents of messages exchanged between processes. In this paper, we will sketch how both approaches can be smoothly combined for the automated provisioning of precise low-level Petri net models of business processes.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>The quality of Petri-net-based verification of business processes is tightly coupled
to the precision of the process model used. In particular, if verification targets the
soundness or controllability of full-specified processes, i.e., executable BPMN or
WS-BPEL processes, the Petri net model of a process must reflect the process’s
control flow as well as process data relevant to the control flow. Otherwise, a
thus imprecise process model comprises the danger of an erroneous verification.
Yet, a precise and verifiable Petri net model can not be given in the general case
due to the Turing-completeness of languages BPMN and WS-BPEL.</p>
      <p>
        In our previous work [
        <xref ref-type="bibr" rid="ref2 ref3">2,3</xref>
        ], we presented methods which aim at the generation
of precise low-level Petri net models for business processes. At the core of the
methods is the semantic-preserving transformation of a process’s data-based
choices into unconditional control flow, such that process data relevant to the
choices’ conditions, and therefore verification, does not need to be included in
the Petri net model. Despite not being efectful in all cases, the methods allow
for the generation of precise process models in a number of substantial cases.
      </p>
      <p>
        In this paper, in order to widen the range of cases our methods are successfully
applicable, we integrate the individual methods, namely predicate-based
controllfow unfolding [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and assertions for the contents of incoming messages [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], into a
consolidated technique. Specifically, we propose:
– the use of predicate-based abstractions on process data to derive assertions,
– the generalized application of assertions to incoming and outgoing messages,
– the denfiition of a data-sensitive communication model, which fits with
existing algorithms and theories for Petri-net-based process verification.
$value &gt; 500 Calculate
      </p>
      <p>Discount
$discount := $value * 0.01 $discount &gt; 0 Receive</p>
      <p>Account</p>
      <p>Add
Discount
otherwise</p>
      <p>No Discount
$value &gt; 500 Calculate</p>
      <p>Discount
otherwise</p>
      <p>No Discount</p>
      <p>Send</p>
      <p>Discount
$discount := 0
$discount := $value * 0.01
$discount := 0</p>
      <sec id="sec-1-1">
        <title>Send Discount</title>
      </sec>
      <sec id="sec-1-2">
        <title>Send Discount otherwise</title>
      </sec>
      <sec id="sec-1-3">
        <title>Receive Account Add Discount</title>
        <p>
          In principle, predicate-based control-flow unfolding [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] aims at resolving the
databased choices of a business process. To this end, a predicate-based abstraction for
process data is derived by static analysis, which is afterwards used to evaluate
and eliminate the choices’ conditions. However, a single choice’s condition can
be evaluated to true on one path of the control flow and to false on another,
according to the values of process data valid at the respective path. Therefore,
the process’s control flow is unfolded in a controlled fashion, such that difering
(abstract) values of process data are assigned separate control flow paths.
        </p>
        <p>Figure 1 a) gives an example: It shows a snippet of a business process, in
which the discount for a customer’s order is calculated ($discount), sent to
the customer, and booked to the customer’s account if greater than zero. In
Figure 1 b), the result of unfolding the snippet is shown. While unfolding,
abstractions $discount &gt; 5 and $discount = 0 were automatically derived
for $discount’s value using static analysis and assigned individual control flow
paths. Thereupon, the data-based choice with condition $discount &gt; 0 could
be successfully evaluated and resolved based on the abstract values.
3</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Data-Sensitive Message Channels</title>
      <p>
        However, mapping the unfolded snippet in Figure 1 b) to a Petri net, using the
Petri net semantics of [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], still does not result in a precise process model. In
the snippet, an order with a value greater 500 requires the customer to send
another message while an order smaller or equal 500 implies no further interaction.
Unfortunately, this relation is not reflected in the Petri net, since the snippet’s
(remaining) choice is therein modeled by nondeterminism, so that a partner is
not able to determine if it is expected to send another message or not.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], we introduced assertions for incoming messages, based upon simple
relational expressions over constants, in order to distinguish between messages
with diferent message contents. Apparently, this approach can as well be applied
to outgoing messages and arbitrary predicates. Thus, a (data-sensitive) message
channel CP is now assigned an assertion ∀x: P (x), where x denotes the message
Message Assertions and Predicate-Based Control-Flow Unfolding Revisited
      </p>
      <sec id="sec-2-1">
        <title>Account Discount[P(x) = (x=0)]</title>
        <p>content and P a first-order predicate. As a remark, this definition can be easily
extended to messages containing multiple data items and to assertions with
formulas over more than one predicate. Doing so in particular allows for reusing
the predicate-based abstraction for process data, which has been derived and
utilized in the process of unfolding, as assertions for (outgoing) messages.</p>
        <p>For the example in Figure 1 b), message channels with assertions ∀x: (x &gt; 5)
and ∀x: (x = 0) are introduced for outgoing message Discount. Consequently,
mapping the snippet to a Petri net now yields a precise process model (Figure 2),
such that a partner is enabled to determine whether it is expected to send another
message or not by considering the assertions assigned to message Discount.</p>
        <p>
          Since existing Petri net models for (distributed) business processes do not
support assertions for message contents, we need to extend their communication
model. For open workflow nets [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], such an extension is obtained by modifying
the composition operator so that it considers the assertions while gluing interface
places. Note that this can be challenging, i.e., requires the use of a SMT solver,
for messages with difering assertions. Further, each incoming message is attached
an additional channel with assertion true, conflicting the message’s other
datasensitive channels, and conventional channels are assigned assertion true too.
4
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Related Work</title>
      <p>
        Existing approaches for mapping business processes to Petri nets either omit
process data entirely or restrict themselves to finite data [
        <xref ref-type="bibr" rid="ref1 ref4 ref5">1,4,5</xref>
        ]. This also applies
to the process-to-Petri-net compiler in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], where, despite being defined on
highlevel nets, a low-level net is generated in which data-based choices are mapped to
nondeterminism and messages are modeled as indistinguishable tokens. High-level
nets support data modeling, though, can in general not be verified in the presence
of infinite data [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. To the authors’ knowledge, there is no other work done on
the application of predicate abstraction to a process-to-Petri-net-mapping.
5
      </p>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>In this paper, we have sketched the smooth integration of our previously
introduced methods into a consolidated technique by way of an example. Using the
technique then allows for generating more precise Petri-net-based process models
for business processes in a significant number of cases. In particular, applying
the technique to a set of problematic patterns of distributed processes, supplied
by an industrial partner (see Appendix A), revealed the successful generation of
precise process models for six out of ten process patterns. However, the thorough
assessment of eficacy remains subject to future work. To this end, we plan to
evaluate the consolidated technique using our process-to-Petri-net compiler.</p>
    </sec>
    <sec id="sec-5">
      <title>Appendix A – Process Patterns</title>
      <p>$v:=true
else
$v=true
message B</p>
      <sec id="sec-5-1">
        <title>Receive B</title>
        <p>Reply B
message A</p>
      </sec>
      <sec id="sec-5-2">
        <title>Receive A</title>
        <p>$v:=false</p>
      </sec>
      <sec id="sec-5-3">
        <title>Reply A</title>
        <sec id="sec-5-3-1">
          <title>Pattern 1 (solved)</title>
          <p>$v:=1</p>
          <p>else
$v&gt;0
$v:=Receive A
Reply A</p>
        </sec>
        <sec id="sec-5-3-2">
          <title>Pattern 2 (solved)</title>
          <p>$v:=Receive A</p>
        </sec>
      </sec>
      <sec id="sec-5-4">
        <title>Reply A</title>
        <p>$v:=12</p>
      </sec>
      <sec id="sec-5-5">
        <title>Invoke X($v)</title>
        <p>else
$v&gt;0
$v:=$v−1</p>
      </sec>
      <sec id="sec-5-6">
        <title>Invoke X</title>
        <sec id="sec-5-6-1">
          <title>Pattern 3 (unsolved)</title>
          <p>$v&gt;0
$v:=$v−1</p>
        </sec>
      </sec>
      <sec id="sec-5-7">
        <title>Receive C</title>
        <p>Pattern 4
(solved)
$v:=0
$a:=(−1)
else
$v&gt;$a
$v:=$a
$a:=Receive A</p>
      </sec>
      <sec id="sec-5-8">
        <title>Reply A</title>
        <sec id="sec-5-8-1">
          <title>Pattern 5 (unsolved)</title>
          <p>$v:=0
$v:=v+1</p>
        </sec>
      </sec>
      <sec id="sec-5-9">
        <title>Invoke X($v) $v:=(−1)</title>
      </sec>
      <sec id="sec-5-10">
        <title>Invoke X($v)</title>
        <sec id="sec-5-10-1">
          <title>Pattern 6 (solved)</title>
          <p>message A
message B
message A
message B</p>
        </sec>
      </sec>
      <sec id="sec-5-11">
        <title>Receive A</title>
        <p>Receive B
$a:=Receive A
$b:=Receive B
$v:=0</p>
      </sec>
      <sec id="sec-5-12">
        <title>Reply A</title>
        <p>$v:=1
Reply B
$v:=$a
Reply A
$v:=$b
Reply B
$v&gt;0
else
$v&gt;0
else</p>
      </sec>
      <sec id="sec-5-13">
        <title>Receive C</title>
        <p>Receive D
Receive C
Receive D
message A
message B
message C
message D
$a:=Receive A
$b:=Receive B
$c:=Receive C
$d:=Receive D
$x:=$a
$x:=$b
$x:=$c
$x:=$d
$c:=Receive C
$d:=Receive D
$d:=Receive D $c:=Receive C
$y:=$c
$y:=$d
$y:=$d
$y:=$c
else
else</p>
      </sec>
      <sec id="sec-5-14">
        <title>Receive D</title>
      </sec>
      <sec id="sec-5-15">
        <title>Receive C</title>
      </sec>
      <sec id="sec-5-16">
        <title>Receive D</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Dijkman</surname>
            ,
            <given-names>R.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dumas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ouyang</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Semantics and analysis of business process models in BPMN</article-title>
          .
          <source>Information and Software Technology</source>
          <volume>50</volume>
          (
          <issue>12</issue>
          ),
          <fpage>1281</fpage>
          -
          <lpage>1294</lpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Heinze</surname>
            ,
            <given-names>T.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Amme</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moser</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Process Restructuring in the Presence of Message-Dependent Variables</article-title>
          .
          <source>In: ICSOC Workshops</source>
          . pp.
          <fpage>121</fpage>
          -
          <lpage>132</lpage>
          . Springer (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Heinze</surname>
            ,
            <given-names>T.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Amme</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moser</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Control Flow Unfolding of Workflow Graphs Using Predicate Analysis and SMT Solving</article-title>
          .
          <source>In: ZEUS 2013</source>
          . pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Lohmann</surname>
          </string-name>
          , N.:
          <article-title>A Feature-Complete Petri Net Semantics for WS-BPEL 2.0</article-title>
          . In: WS-FM
          <year>2007</year>
          . pp.
          <fpage>77</fpage>
          -
          <lpage>91</lpage>
          . Springer (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Ouyang</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Verbeek</surname>
            , E., van der Aalst,
            <given-names>W.M.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Breutel</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dumas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>ter Hofstede</surname>
            ,
            <given-names>A.H.M.:</given-names>
          </string-name>
          <article-title>Formal semantics and analysis of control flow in WS-BPEL</article-title>
          .
          <source>Science of Computer Programming</source>
          <volume>67</volume>
          (
          <issue>2-3</issue>
          ),
          <fpage>162</fpage>
          -
          <lpage>198</lpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>van der Aalst</surname>
            ,
            <given-names>W.M.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hirnschall</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Verbeek</surname>
            ,
            <given-names>H.M.W.:</given-names>
          </string-name>
          <article-title>An Alternative Way to Analyze Workflow Graphs</article-title>
          . In: CAiSE
          <year>2002</year>
          . pp.
          <fpage>535</fpage>
          -
          <lpage>552</lpage>
          . Springer (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>van der Aalst</surname>
            ,
            <given-names>W.M.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stahl</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Westergaard</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Strategies for Modeling Complex Processes using Colored Petri Nets</article-title>
          . In: ToPNoC VII, pp.
          <fpage>6</fpage>
          -
          <lpage>55</lpage>
          . Springer (
          <year>2013</year>
          ) else
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>