<!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>Formal Analysis of Complex Event Processing - Potential and Challenges</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Deparment of Computer Science, Humboldt-Universitat zu Berlin</institution>
        </aff>
      </contrib-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Complex event processing (CEP) emerged as a paradigm to build systems that
react to situations of interest [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. By evaluating continuous queries over streams
of events, CEP systems provide the foundation for re-active and pro-active
applications in domains such as healthcare and urban transportation. Models for
CEP are an active area of research and various languages for the de nition of
event stream queries have, so far, been proposed. While each of them provides a
di erent syntax and semantics, they typically adopt point-based event semantics
(i.e., the occurrence of an event is atomic), an attribute-based data model (an
event carries payload, which is structured as key-value pairs), and comprise a set
of common query operators [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], such as sequencing of events in terms of their
temporal order; negation to check for the absence of an event; and windows to
bound the temporal interval in which events are considered relevant to the query.
      </p>
      <p>
        Common CEP applications face high-velocity event streams, which renders
the evaluation of queries a performance bottleneck. Therefore, various algorithms
and architectures for e cient CEP have been proposed in recent years, including
techniques for parallelisation and distribution of query evaluation [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], semantic
query rewriting [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], or sub-pattern sharing [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Moreover, re ecting on the
challenges induced by distributed event sources, techniques to achieve robustness of
CEP against out-of-order arrivals of events have been developed [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>Despite all these advancements, we argue that most of these techniques adopt
a pragmatic view|they strive for a technical solution of the issues as they emerge
in a speci c application. We therefore advocate the design of formal methods
to guide the design and implementation of CEP applications. Speci cally, we
suggest to rely on well-established formalisms for concurrent systems to reason
about the following aspects of CEP applications:
{ Query veri cation: Formal analysis may reveal whether a query deployed in
a CEP system can match at all, speci cally if event streams satisfy
domainspeci c constraints.
{ Sound parallelisation: Formal analysis may identify non-determinism in query
evaluation that is introduced through paralelisation schemes for queries that
potentially interact with each other.
{ Robustness guarantees: Formal analysis may enable conclusions on the errors
introduced by out-of-order event arrivals at a CEP system, thereby giving
robustness guarantees.</p>
      <p>
        In the light of the above reasoning tasks, we developed a formal model of
CEP applications that is grounded in Petri-nets [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. The choice of this formalism
is motivated by their concurrent and local semantics, along with the broad
availability of analysis algorithms and tool support.
      </p>
      <p>Major challenges in this endeavour, however, have been the integration of
the various perspectives of a CEP application in a single model: It requires a
comprehensive formalisation of the semantics of event streams, event queries,
and evaluation architectures, properly capturing their interplay. For instance, it
is not su cient to simply capture that an event occurred, but several modalities
have to be encoded on the formal level: An event may have occurred, but may
be consumed by a match of an event query and, thus, no longer be available to
construct further matches. In such a case, the interplay with common evaluation
architectures needs to be taken into account. If an event can be consumed only
by a single match of a query, sequential evaluation of various match candidates
of a query may lead to a di erent result compared to their concurrent evaluation.</p>
      <p>Using our formal model, we are able to approach reasoning on the
aforementioned aspects of CEP applications through standard reachability analysis.
The question of whether a speci c query can match translates into the common
problem of identifying whether a speci c state (i.e., a marking in the Petri-net)
can be obtained from the initial state. Based thereon, conclusions can be drawn
on the general possibility of generating matches; on the changes in the sets of
matches obtained under di erent parallelisation schemes; and on the implications
of out-of-order arrivals of events, whether they potentially lead to false positives
and false negatives in query evaluation.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Cugola</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Margara</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Processing ows of information: From data stream to complex event processing</article-title>
          .
          <source>ACM Comput. Surv</source>
          .
          <volume>44</volume>
          (
          <issue>3</issue>
          ),
          <volume>15</volume>
          :1{
          <fpage>15</fpage>
          :
          <fpage>62</fpage>
          (
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Golovnya</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rundensteiner</surname>
            ,
            <given-names>E.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Claypool</surname>
          </string-name>
          , K.T.:
          <article-title>Sequence pattern query processing over out-of-order event streams</article-title>
          .
          <source>In: ICDE. IEEE</source>
          (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Mayer</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Slo</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tariq</surname>
            ,
            <given-names>M.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rothermel</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          , Graber,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Ramachandran</surname>
          </string-name>
          ,
          <string-name>
            <surname>U.</surname>
          </string-name>
          :
          <article-title>SPECTRE: supporting consumption policies in window-based parallel complex event processing</article-title>
          .
          <source>In: Middleware</source>
          . pp.
          <volume>161</volume>
          {
          <fpage>173</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Ray</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lei</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rundensteiner</surname>
            ,
            <given-names>E.A.</given-names>
          </string-name>
          :
          <article-title>Scalable pattern sharing on event streams</article-title>
          .
          <source>In: SIGMOD</source>
          . pp.
          <volume>495</volume>
          {
          <fpage>510</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Reisig</surname>
          </string-name>
          , W.:
          <string-name>
            <surname>Understanding Petri Nets - Modeling Techniques</surname>
          </string-name>
          ,
          <source>Analysis Methods, Case Studies. Springer</source>
          (
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Weidlich</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ziekow</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gal</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mendling</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weske</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Optimizing event pattern matching using business process models</article-title>
          .
          <source>IEEE Trans. Knowl. Data Eng</source>
          .
          <volume>26</volume>
          (
          <issue>11</issue>
          ),
          <volume>2759</volume>
          {
          <fpage>2773</fpage>
          (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. Zhang, H.,
          <string-name>
            <surname>Diao</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Immerman</surname>
          </string-name>
          , N.:
          <article-title>On complexity and optimization of expensive queries in complex event processing</article-title>
          .
          <source>In: SIGMOD</source>
          . pp.
          <volume>217</volume>
          {
          <fpage>228</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>