<!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>Towards Certified Data Flow Analysis of Business Processes</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>
        <aff id="aff0">
          <label>0</label>
          <institution>Friedrich Schiller University Jena</institution>
          ,
          <addr-line>07743 Jena</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Data flow analysis allows for the static analysis of business processes. Certified data flow analysis would even allow for a trustwhorty analysis, as the analysis comes with a machine-checkable correctness proof. In this paper, we argue for a certified analysis of business processes. O. Kopp, J. Lenhard, C. Pautasso (Eds.): 9 th ZEUS Workshop, ZEUS 2017, Lugano, Switzerland, 13-14 February 2017, published at http://ceur-ws.org/</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Data flow analysis has shown to be a utility for business process modeling
and analysis, be it for supporting formal verification [
        <xref ref-type="bibr" rid="ref5 ref6">5,6</xref>
        ], for analyzing
dataor control-flow related process properties [
        <xref ref-type="bibr" rid="ref11 ref2">2,11</xref>
        ], or for optimization and
reengineering [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. In particular two aspects make it such a useful method: (1) Data
lfow analysis provides a general framework which can be easily adjusted to
new domains and analysis problems, (2) data flow analysis is grounded on
wellfounded theories like Kildall’s lattice-theoretic formulation [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] or Cousot’s abstract
interpretation [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. While the latter aspect ofers a way to formally show an analysis
to be correct, until now, only a small number of data flow analyses for business
processes have been proven correct, mostly using pencil-and-paper proofs and just
considering termination [
        <xref ref-type="bibr" rid="ref2 ref5">2,5</xref>
        ]. This is suprising considering the recent advances
made in the verification of static analysis. State-of-the-art approaches define
not only an analysis but rather add a mechanized, that is machine-checkable
proof of its correctness. The term certified analysis has therefore been coined, as
a user does not need to trust in such an analysis but can automatically check
its conjoined correctness proof. Most notably, the verification of an optimizing
C compiler [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] documented the power of the certified analysis approach.
      </p>
      <p>
        In this position paper, we argue for the idea of a certified analysis of business
processes. We believe the advantages to be manifold. For instance, the complexity
of business process modeling languages like BPEL and BPMN make not only
the design and implementation of processes, but also of analyses error-prone. An
approach for proving analysis correctness thus helps in regaining confidence. This
can be of vital importance considering, e.g., business processes in healthcare.
Further, a mechanized correctness proof of a compliance analysis augments
process auditing scenarios [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] with an orthogonal check that the audit itself can
be trusted. Synthesizing an analysis from its correctness proof, even relieves
the analysis designer from the implementation burden. In the following, we will
introduce the concept of certified analysis based upon abstract interpretation,
sketch challenges which arise when applied to business processes and finally
outline our first steps towards a certified data flow analysis of business processes.
Data flow analysis can be seen as abstract interpretation [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], where programs are
evaluated using abstract values instead of concrete values. As an example, instead
of performing arithmetic operations on integers when executing a program, an
analysis may only track whether an integer has abstract value odd or even. In this
way, e.g., addition boils down to four cases: even +even = even, even +odd = odd,
odd + even = odd, and odd + odd = even. The domains of abstract and concrete
values are connected by the concretization function γ , which maps abstract values
to the represented concrete ones, e.g., γ (odd) = { 1, 3, 5, . . . } . In addition, the
abstract domain A should form a partially-ordered set, reflecting precision among
abstract values such that ∀ a, b ∈ A : a ≤ b ↔ γ (a) ⊆ γ (b), and contain a distinct
top element with ∀ a ∈ A : a ≤ top, representing all concrete values. Executing a
program’s statements on concrete values can be formalized using Hoare’s weakest
precondition calculus, as in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], which yields the concrete semantics. The efect of
statements on abstract values is denfied by the analysis in terms of a monotone
function f : A → A mimicing, e.g., above’s addition example, which in this way
provides the abstract semantics. An analysis based upon abstract interpretation
then calculates a fixpoint abstract value, i.e., f (a) = a, for a given program by
continuously applying the abstract semantics to an initial abstract value until the
ifxpoint is reached (optionally using accelerators like widening/narrowing [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]).
      </p>
      <p>
        An analysis can then be shown correct based upon abstract interpretation, if:
∀ a ∈ A : cinitial ∈ γ (a) →
f (a) = a → ∀
c′ : cinitial ⇝ c′ →
c′ ∈ γ (a)
meaning that a fixpoint a of the abstract semantics, that includes the initial
concrete value cinitial of the program in its concretization, also includes the concrete
values c′ of all reachable program states, cinitial ⇝ c′, in its concretization. Note
that correctness here refers to soundness, i.e., the abstract value a is guaranteed
to (over-)approximate the concrete value. The Coq proof assistent1 has been
shown of use for proving analysis correctness [
        <xref ref-type="bibr" rid="ref3 ref9">3,9</xref>
        ]. Its inductive types provide a
way for encoding programs and its recursive functions for encoding concrete and
abstract semantics. Proving analysis correctness in Coq may still require manual
work, yet Coq allows for automatic proof validation and even to synthesize the
analysis implementation1, which justifies the notion of a certified analysis .
3
      </p>
      <p>
        Research Challenges and First Steps
While the automated analysis for certifying business processes has been a recent
research topic [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], we are not aware of any prior work on the certification of such
an analysis for business processes itself. As indicated above, though, the area of
static program analysis provides a rich spectrum of methods for proving analysis
correctness. Yet, business processes and business process modeling languages
feature certain peculiarities which challenge a certified analysis approach:
1 https://coq.inria.fr/ (link was last followed on February 1, 2017)
– First, as parallelism is essential to business processes, the concrete and
abstract semantics need to reflect parallel executions. Application of
(concurrent) separation logic [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] can thus be of advantage, extending the Hoare
calculus with a rule for independently reasoning about parallel processes.
– Second, the phletora of language constructs in languages like BPEL or BPMN
make formalizing the concrete semantics a tedious task. We thus opt for an
approach, where we consider a kernel of basic language constructs, mapping
all other constructs onto the kernel. This is a common method to boil down
the complexity of a language [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and furthermore provides a starting point
for coping with the diferent and often mixed types of data oflw definitions
(XPath, Java, scripting languages, etc.) used in BPMN processes.
– Third, unstructured processes. While unstructuredness in case of sequential
control flow alone can be handled by basing semantics on low-level jump
operations instead of high-level ifelse or loop statements, mixed use of gateways
as possible in BPMN, even more in the presence of the notoriously dificult
to formalize (inclusive) OR gateway, provides for a real research challenge.
Currently, we are formalizing a toy language for business processes in Coq,
supporting basic workflow patterns, e.g, sequence, parallel split/synchronize,
exclusive choice/merge, and a data flow analysis for computing communication
dependencies (see [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]). This language shall be enriched in future steps. Future
work will also address other analyses, where we want to follow a modular approach
using a general analysis framework, which is instantiated for a specific analysis.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Accorsi</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lowis</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sato</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <source>Automated Certification for Compliant Cloud-Based Business Processes. BISE</source>
          <volume>3</volume>
          (
          <issue>3</issue>
          ),
          <fpage>145</fpage>
          -
          <lpage>154</lpage>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Amme</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Martens</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moser</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Advanced verification of distributed WS-BPEL business processes</article-title>
          .
          <source>IJBPIM</source>
          <volume>4</volume>
          (
          <issue>1</issue>
          ),
          <fpage>47</fpage>
          -
          <lpage>59</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Bertot</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Structural Abstract Interpretation</article-title>
          .
          <source>In: Language Engineering and Rigorous Software Development, LNCS</source>
          , vol.
          <volume>5520</volume>
          , pp.
          <fpage>153</fpage>
          -
          <lpage>194</lpage>
          . Springer (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Cousot</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cousot</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          :
          <article-title>Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs</article-title>
          . In: POPL'
          <fpage>77</fpage>
          ,
          <string-name>
            <surname>Proc</surname>
          </string-name>
          . pp.
          <fpage>238</fpage>
          -
          <lpage>252</lpage>
          . ACM (
          <year>1977</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <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>
          :
          <article-title>Sparse Analysis of Variable Path Predicates Based upon SSA-Form</article-title>
          .
          <source>In: ISoLA'16, Proc. (1)</source>
          . LNCS, vol.
          <volume>9952</volume>
          , pp.
          <fpage>227</fpage>
          -
          <lpage>242</lpage>
          . Springer (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <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>Compiling More Precise Petri Net Models for an Improved Verification of Service Implementations</article-title>
          .
          <source>In: SOCA</source>
          <year>2014</year>
          ,
          <article-title>Proc</article-title>
          . pp.
          <fpage>25</fpage>
          -
          <lpage>32</lpage>
          . IEEE (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Kildall</surname>
            ,
            <given-names>G.A.</given-names>
          </string-name>
          :
          <article-title>A Unified Approach to Global Program Optimization</article-title>
          . In: POPL'
          <fpage>73</fpage>
          ,
          <string-name>
            <surname>Proc</surname>
          </string-name>
          . pp.
          <fpage>194</fpage>
          -
          <lpage>206</lpage>
          . ACM (
          <year>1973</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Kopp</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Khalaf</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leymann</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Deriving Explicit Data Links in WS-BPEL Processes</article-title>
          .
          <source>In: SCC 2008, Proc. (2)</source>
          . pp.
          <fpage>367</fpage>
          -
          <lpage>376</lpage>
          . IEEE (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Leroy</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          :
          <article-title>Formal Verification of a Realistic Compiler</article-title>
          .
          <source>Comm. of the ACM</source>
          <volume>52</volume>
          (
          <issue>7</issue>
          ),
          <fpage>107</fpage>
          -
          <lpage>115</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>O</given-names>
            <surname>'Hearn</surname>
          </string-name>
          ,
          <string-name>
            <surname>P.W.</surname>
          </string-name>
          :
          <article-title>Resources, Concurrency and Local Reasoning</article-title>
          .
          <source>In: CONCUR 2004, Proc. LNCS</source>
          , vol.
          <volume>3170</volume>
          , pp.
          <fpage>49</fpage>
          -
          <lpage>67</lpage>
          . Springer (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Saad</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bauer</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Data-Flow Based Model Analysis</article-title>
          and
          <string-name>
            <given-names>Its</given-names>
            <surname>Applications</surname>
          </string-name>
          .
          <source>In: MODELS 2013, Proc. LNCS</source>
          , vol.
          <volume>8107</volume>
          , pp.
          <fpage>707</fpage>
          -
          <lpage>723</lpage>
          . Springer (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>