<!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>Complex Event Processing for the Internet of Things</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Ariane Ziehn Supervised by Volker Markl and Steffen Zeuch Technical University of Berlin, German Research Center for Artificial Intelligence</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2020</year>
      </pub-date>
      <abstract>
        <p>Complex Event Processing (CEP) enables autonomous and real-time decision making in data management systems. Today, applications leverage CEP only in cloud-based environments to provide prompt reactions, although data are generated outside the cloud. In particular, the Internet of Things (IoT) will increase the number of data producers that a single IoT application has to handle millions of devices. The centralized data collection before applying data processing introduces a critical bottleneck in current cloudbased solutions, especially for delay-sensitive IoT applications. To overcome this bottleneck, fog computing emerged as a paradigm to process data close to the network edge. However, CEP systems are not yet ready to leverage the fog layer as an extension for cloud-based stream processing. In this paper, we examine how the current system has to adapt to exploit the new capabilities of the fog for CEP. To this end, we analyze principal CEP methodologies and propose new solutions. With this work, we lay the foundation for large-scale in-network CEP applications on top of the IoT.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>
        Complex Event Processing (CEP) is a common method
for real-time stream processing to detect sequences of events
in data streams and triggers actions upon detection [
        <xref ref-type="bibr" rid="ref14 ref16 ref7">7, 14,
16</xref>
        ]. User-de ned rules specify both the events and the
actions that enable autonomous real-time decision making in
a wide range of applications, e.g., tra c congestion
monitoring, live maps, intelligent transportation systems, smart
street lamps, or vehicle pollution control [
        <xref ref-type="bibr" rid="ref1 ref24 ref8">1, 8, 24</xref>
        ].
Several cloud-based stream processing engines (SPEs) [
        <xref ref-type="bibr" rid="ref10 ref21 ref4">4, 10,
21</xref>
        ] provide CEP for rule-based monitoring as the current
solution for the Internet of Things (IoT) scenarios with
lowlatency real-time response requirements. Under
consideration of the constant increase of IoT devices, future IoT
applications will process data from potentially millions of devices.
Thus, cloud-based solutions are not capable of ful lling the
low-latency real-time response requirements due to the
massive amount of data generated in these future IoT
applications [
        <xref ref-type="bibr" rid="ref12 ref22">12, 22</xref>
        ]. Zeuch et al. [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] address this problem and
propose a fog-cloud environment that leverages a fog layer
as extension of the cloud. Figure 1 presents the data ow in
both (a) cloud and (b) fog-cloud environment. On the
lefthand side, the cloud environment collects data of connected
2
1
      </p>
      <p>Fog-Cloud Environments 
 
d
u
o
l
c
g
o
f
k
r
o
w
t
e
n
r
o
s
n
e
s
4</p>
      <p>
        3
(a) (b)
Figure 1: Data Flows in (a) Cloud Environments and (b)
Fog-Cloud Environments.
devices centrally 1 . Usually, the cloud environment uses a
data broker like Kafka for bu ering data. Then, the
cloudbased SPE utilizes its almost unlimited resources to process
the collected data in the cloud 2 . However, the central data
collection before processing is highly resource-intensive and
causes signi cant delays as well as network overhead. Thus,
cloud environments introduce a critical bottleneck for future
IoT data management systems that must handle millions of
data streams [
        <xref ref-type="bibr" rid="ref15 ref22">15, 22</xref>
        ]. On the right-hand side, the fog-cloud
environment introduces an additional fog layer with a
typical tree-like network topology 3 . The fog nodes M
process and reduce data on the paths through the network 4 .
Hence, they mitigate the central bottleneck and release
network capacities for low-latency real-time responses.
      </p>
      <p>We argue that future IoT applications require a fog layer
to process millions of data streams e ciently. Therefore,
it is crucial to leverage fog environments for CEP and its
capabilities to enable future IoT applications with millions of
devices and thousands of rules. However, fog environments
introduce new challenges for CEP, e.g., stateful in-network
processing on low-end devices, changing network topologies,
and mobile IoT devices. We investigate how to tackle these
challenges in order to leverage the fog layer e ciently for
CEP. In this paper, we make the following contributions to
enable the IoT for CEP:</p>
      <p>We analyze state-of-the-art CEP systems and identify
the major limitations to leverage the IoT as a mean
for large-scale, in-network CEP.</p>
      <p>We highlight three concrete problems and sketch
possible solutions to enable the IoT for CEP.
q1
take T1 q2
take T3
partial match </p>
      <p>ful match 
(a) NFA.</p>
      <p>ful match 
partial match 
F</p>
      <p>T1,T2
T1</p>
      <p>T2</p>
      <p>T3
We outline possible improvements to our approaches,
which extend state-of-the-art CEP processing in the
areas of pattern evaluation mechanisms, their
optimization, and pattern speci cation languages.</p>
      <p>In the remainder of this paper, we analyze state-of-the-art
CEP concepts in Section 2. Then, we highlight what
prevents CEP from leveraging the IoT and outline three
concrete problems in Section 3. In Section 4, we summarize
related work and conclude our ndings in Section 5.</p>
    </sec>
    <sec id="sec-2">
      <title>RESEARCH CONTEXT</title>
      <p>In this section, we introduce the concepts of rules and
event patterns. Afterward, we show the state-of-the-art
pattern evaluation and optimization mechanism for CEP.</p>
      <p>
        Rules: Rules build the knowledge base of the CEP engine
and are used in active database systems for autonomous
reactions on data manipulations. For this purpose, the user
speci es rules with up to three components, i.e., event e,
condition c, and action a, which lead to the name
ECArules. Each tuple manipulation represents an event e that
might trigger the user-desired action a if e matches the
relation-speci c or inter-event conditions c. Actions are
application-speci c and can be user noti cations such as
warnings and alerts or autonomous system actions such as
updating attribute values or triggering other rules [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
      </p>
      <p>
        Data Streams: We want to detect those rules in data
streams, where each data stream E is a continuous and
unbounded ow of data tuples. Each generated tuple is an
event e that represents the state of its producer, e.g., an IoT
device, at a speci c point in time ts. Due to the increasing
amount of geographically distributed IoT devices, the device
location s is another essential tuple attribute. To sum up,
each event source produces a stream E of events en with its
set of attributes E = fts; s; a1; :::; ang, where ts and s are
spatiotemporal attributes, and an are non-spatiotemporal
attributes, e.g., measurements and identi ers [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        Event Patterns: In SPEs, users de ne so-called simple
event patterns [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] as a complement to traditional ECA-rules.
A simple pattern is a he; ci pair for one event type T . Event
types are the replacement of relations in stream processing
and provide a uniform schema T = fts; s; a1; :::; ang for a
group of contributing streams En [
        <xref ref-type="bibr" rid="ref20 ref24">20, 24</xref>
        ]. For instance, all
sensors that measure the temperature at di erent locations
contribute to the type Ttemp. All arriving events are
monitored with the event type-speci c conditions cTn , and an
action a is triggered if a matching event is detected.
      </p>
      <p>
        Pattern Speci cation Language: The user formulates
complex patterns of monitoring tasks as a composition of
simple patterns from di erent event types. The
relationships between simple patterns are de ned by event
operators, which are either logical, e.g., AN D, OR, or temporal,
e.g., the window operator W IT HIN or the sequence
operator SEQ, which de nes the order of simple patterns [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
A wide range of pattern languages with di erent sets of event
operators exists, e.g., SQL-like languages such as SASE+ [
        <xref ref-type="bibr" rid="ref20 ref23">20,
23</xref>
        ] and CCL [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], or languages based on event logic, e.g.,
CEL [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. An example pattern for a vehicle pollution control
application can be formulated as follows: Detect if within
30 minutes an increased amount of vehicles (T1) is followed
by a decrease of the average speed (T2), which leads to an
excess of the air pollution level (T3). The example de nes
a sequence of three consecutive simple patterns for di erent
(b) Tree.
      </p>
      <p>
        Figure 2: Evaluations Models for Pattern Detection: NFA
(a) and Tree Structure (b).
event types Tn, including a condition cTn for each type. We
use SASE+ [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] to specify the pattern in Listing 1.
      </p>
      <sec id="sec-2-1">
        <title>Listing 1: Vehicle Pollution Control Example</title>
        <p>PATTERN SEQ (T1 e1; T2 e2; T3 e3 )
WHERE ( e1 . vehicleCount &gt; cT1 AND
e2 . speedLevel &lt; cT2 AND
e3 . pollutionLevel &gt; cT3 )
WITHIN TIME . MINUTES (30)</p>
        <p>
          Pattern Evaluation Mechanisms: To detect
matching events, SPEs create a pattern detection plan given the
internal pattern representation. Common detection plans
are tree-based plans [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], order-based plans with state
machines [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ], e.g., non-deterministic nite automaton (NFA),
as well as event processing networks and graphs [
          <xref ref-type="bibr" rid="ref11 ref6">6, 11</xref>
          ]. We
focus on the research lines with the highest number of
representatives, tree-based and order-based evaluation plans [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
Naive approaches of both lines represent the pattern
identical to the user-given formulation and create one instance
of the evaluation structure for each detected event. The
detection of a complex pattern subsequence is denoted as a
partial match, while the detection of a complete pattern is
called a full match [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. The example evaluation structures
of an NFA in Figure 2a represents each partial match in
one state qn and a full pattern match in the nal state F .
The tree-based mechanism creates a leaf for each simple
pattern (Figure 2b). Each intermediate node presents partial
matches and the root a full match.
        </p>
        <p>
          CEP belongs to the group of stateful query processing
methods as SPEs need to store all partial matches either
until the next partial match is detected or the window is
expired. The number of partial matches is in uenced by
many factors, e.g., query selectivity or event frequency, but
worst-case scenarios have exponential growth [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ].
Therefore, pattern detection plan optimization aims to reduce the
number of partial matches, e.g., by rewriting of single
patterns or sharing techniques for multi-pattern CEP [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ].
        </p>
        <p>
          An e ective rewriting method is called Lazy NFA [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. It
processes the pattern out-of-order by putting rare events in
front of the pattern sequence. Frequent events are bu ered
and only analyzed after the rare event has been detected.
        </p>
        <p>
          A new line of research focuses on the translation of
patterns into multi-join queries. Thereby, patterns can be
evaluated as stream queries and leverage existing join query
optimizations [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. For instance, we could rewrite the example
pattern from Listing 1 (excluding W IT HIN ) by replacing
the SEQ operator with the AN D operator and adding
additional inter-event constraints, as shown in Listing 2 [
          <xref ref-type="bibr" rid="ref13 ref24">13,
24</xref>
          ]. By replacing the temporal operator with a logical
alternative, the pattern can be translated into a join query
and pro t from join-query optimizations.
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Listing 2: CEP Tra c Pattern Example</title>
        <p>PATTERN AND (T1 e1; T2 e2 ,T3 e3 )
WHERE ( e1 . vehicleCount &gt; conditionT1 AND
e2 . speedLevel &lt; cT2 AND
e3 . pollutionLevel &gt; conditionT3 AND
e1 . ts &lt; e2 . ts AND
e2 . ts &lt; e3 . ts )</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>LEVERAGE IOT FOR CEP</title>
      <p>
        As opposed to fog-cloud environments, state-of-the-art
SPEs process a global union of all sources En as one large
stream. This processing strategy causes delays for
modern IoT applications because it enforces the central data
collection from millions of sensors before processing.
Fogcloud environments allow the processing of individual
sensor streams E or subsets of event types T close to the data
producers in the fog layer. Thus, this layer allows data
reduction of more than 80% for stream queries, which reduces
network tra c and enables the system to handle the data
from millions of devices with low-latency [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ].
      </p>
      <p>Research Goal: We aim to leverage fog environments
for CEP and provide a solution that ful lls the low-latency
and real-time response requirements of future IoT
applications. To this end, we investigate the core features of CEP:
pattern evaluation mechanisms, their optimization, and
pattern speci cation languages.
3.1</p>
    </sec>
    <sec id="sec-4">
      <title>Pattern Evaluation Mechanisms</title>
      <p>E cient CEP requires a high-performance pattern
evaluation mechanism. Currently, available evaluation
mechanisms optimized for cloud-based environments could be
applied to fog-cloud environments, yet without leveraging the
fog layer, bottlenecks of cloud solutions would remain. Thus,
the rst problem we want to tackle in this work is:</p>
      <p>Problem I: Common cloud-based pattern evaluation
mechanisms use a central component for data processing, pattern
detection monitoring, or both. This central component
prevents leveraging a fog environment without additional
innetwork distribution strategies.</p>
      <p>Opposed to the cloud paradigm, fog environments allow us
to tailor the data to the relevant only on the paths through
the network. As data is only shared with nodes on the
network path, the pattern detection plan needs to be aware of
the fog nodes that receive the relevant data to execute
subplans. Further, by running sub-plans on fog nodes, we need
to consider that CEP is a stateful processing method that
needs to store partial matches on low-end devices.</p>
      <p>
        Solution Sketch: We intend to identify promising
evaluation mechanisms for distributed pattern detection and
bring them together with the fog paradigm and distribution
strategies. Since no general pattern evaluation mechanism
with explicit performance guarantees exits, the selection of
one research line for fog environments is not straight forward
and requires an experimental evaluation. To this end, we
consider all three approaches, order-based, tree-based, and
pattern translation into multi-join queries (Sec. 2), as
possible candidates. As the next step of our research agenda, we
intend to implement a naive distributed solution for each of
the three pattern evaluation mechanisms, including the
necessary adaptions to leverage the fog layer. Afterward, we
can compare our implementations using stream processing
metrics, e.g., forward delays for matches. Additionally, the
accuracy of our result in comparison with cloud solutions,
where all data is centrally available, can be evaluated by
accuracy metrics [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. To this end, we can identify promising
in-network evaluation mechanism for fog environments and
optimize them further using our evaluation results in the
following step of our research agenda.
3.2
      </p>
    </sec>
    <sec id="sec-5">
      <title>Optimization of Evaluation Mechanisms</title>
      <p>Storing and maintaining large amounts of partial matches
is already a signi cant challenge in cloud environments with
almost unlimited resources capacities. For fog environments,
this challenge is even more critical as they contain low-end
devices with limited capabilities but need to deal with
partial matches of possibly hundreds of patterns. The
heterogeneous hardware in fog environments lead to the second
problem we want to tackle:</p>
      <p>Problem II: Cloud-based optimization techniques do not
consider the limitations and challenges of unreliable and
moving low-end devices and dynamic network topology.</p>
      <p>
        Both optimization techniques, rewriting of single patterns,
and sharing techniques for multi patterns (Sec. 2), aim to
improve the pattern detection plan in order to reduce
partial matches. Cloud-based implementations of these
strategies make assumptions that do not hold in fog
environments. First, cloud-based SPEs examine the NP-complete
problem of calculating one optimal pattern detection plan
for their static network [
        <xref ref-type="bibr" rid="ref13 ref7">7, 13</xref>
        ]. In a dynamically
changing network, the existing solutions would cause the
expensive re-computation of new optimal plans after each
topology change. Second, existing distributable solutions rarely
consider heterogeneous hardware and resource limitations of
low-end devices for distribution strategies [
        <xref ref-type="bibr" rid="ref19 ref2">2, 19</xref>
        ]. Third, to
enable the rewriting technique out-of-order pattern
detection, we need to store event bu ers for retrospective pattern
evaluation. Storing potentially high frequent events from
hundred of producers challenges again the capacity limits of
low-end devices and requires data compression.
      </p>
      <p>
        Solution Sketch: With this work, we want to
identify optimization techniques for distributed pattern
evaluation on mobile low-end devices for hundreds of
concurrently running patterns. First, we intend to prevent the
NPcomplete problem of nding one optimal solution and
investigate strategies that identify sets of possible near-optimal
pattern detection plans. These plans can be used as
available fall-backs in case of topology changes. Second, in a
fog-cloud environment, we can leverage the cloud as
coordinator for pattern maintenance and distribution. By
distributing stateful computation tasks of pattern evaluation
to potentially mobile devices, an additional challenge
appears: pattern evaluation might not be possible due to data
producers. In this case, the user must be informed that
currently, either monitoring is not possible or the results
are probabilistic, e.g., derived from nearby sensors. Third,
we want to investigate e cient compression techniques, e.g.,
partial aggregations [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], for event bu ers on low-end devices
to enable out-of-order pattern detection. Furthermore, the
translation of patterns into multi-join queries enables
another potential optimization strategy. In essence, we can
combine both stream queries and pattern detection in one
engine for optimization and maximize results sharing in
fogcloud environments. To this end, we leverage traditional
CEP optimization strategies for low-end devices in a
dynamic network and herewith enable e cient CEP for
millions of devices and thousands of patterns.
      </p>
    </sec>
    <sec id="sec-6">
      <title>3.3 Pattern Specification Language</title>
      <p>
        Similar to evaluation mechanisms, no general pattern
speci cation language exists, so no comprehensive set of event
operators is available. Further, some languages lack formal
semantics, provide limited expressiveness, or prevent
automated optimization [
        <xref ref-type="bibr" rid="ref19 ref20 ref6">6, 19, 20</xref>
        ]. Besides, these languages are
designed and optimized for single machines or cloud
applications without considering future IoT applications. Thus,
the third problem we want to tackle is:
      </p>
      <p>Problem III: Existing speci cation languages lack
essential event operators because they were initially not intended
for IoT applications. Further, many of them introduce
restrictions that negatively impact e cient distributed CEP
optimizations.</p>
      <p>
        We want to enable the formulation of complex patterns
for IoT applications by identifying an easy-to-use speci
cation language with the necessary set of event operators. For
Problem I and II, we focus on the most common set of event
operators, i.e., AN D, OR, N OT , SEQ [
        <xref ref-type="bibr" rid="ref13 ref6">6, 13</xref>
        ] and extend
it in this step of our research agenda.
      </p>
      <p>
        Solution Sketch: Giatrakos et al. [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] reviewed the
pattern speci cation languages of several CEP systems
according to their expressiveness, including the Big Data SPE
Apache Flink [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. In contrast to other SPEs such as Apache
Storm [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] or Spark [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], Flink provides built-in support for
CEP [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] and additional operators compared to traditional
single-machine CEP systems. However, Flink does not o er
a speci cation language but provides an API with low-level
functions. To this end, we use its pattern API as a baseline
for our operator set and investigate how these operators can
leverage a fog layer. Further, we build a pattern speci cation
language on top of this operator set under the consideration
of other leading languages, e.g., ZStream [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
      </p>
    </sec>
    <sec id="sec-7">
      <title>4. RELATED WORK</title>
      <p>In this section, we summarize the state of the art of related
work and highlight the major di erences to our approach.</p>
      <p>
        CEP Optimization: Kolchinsky and Schuster [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] proved
that the pattern detection plan could be translated into
multi-join queries and leverage join-query optimization. We
utilize this result and consider multi-join queries as one
possible evaluation mechanism for fog-cloud environments.
Another novel approach proposed by Kolchinsky and
Schuster [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] is the combination of rewriting and pre x sharing to
optimize multi-pattern CEP. We intend to leverage a subset
of these techniques for our approach.
      </p>
      <p>
        In-network CEP: Madumal et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] proposed a
treebased pattern evaluation approach for CEP with a rule
engine that schedules the events either to a local CEP engine
of a fog node or the Cloud CEP engine. As opposed to
their approach, we focus on pattern evaluation in multiple
nodes to leverage the tree-like topology of fog environments.
Comet [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] is a decentralized ordered-based CEP approach for
delay-tolerant networks. Akdere et al. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] propose
networkaware distribution strategies managed by a central control
instance. Parts of both the approaches mentioned above
can be reused for our CEP implementation. Nevertheless, in
contrast to both, we focus on a solution that considers the
limitations of low-end devices in a dynamic environment.
Akili [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] motivated the need for decentralized CEP and
proposed a tree-based approach for e cient multi-sink
operator placement for non-hierarchical SPE. Multi-sink operator
placement is a general stream processing problem and thus
a complementing feature of our solution.
      </p>
    </sec>
    <sec id="sec-8">
      <title>5. CONCLUSION</title>
      <p>In this paper, we introduce and motivate our goal to
enable e cient CEP for IoT data management systems in
fogcloud environments. We review the state-of-the-art
solutions, identify their problems to leverage the fog layer, and
suggest possible solutions. Further, we propose the
following three steps to reach our goal: (I) identify and evaluate
appropriate in-network pattern evaluation mechanisms for
fog-cloud environments, (II) leverage and adapt
optimization techniques for these mechanisms that t the properties
of low-end devices, and (III) build a pattern speci cation
language for the IoT with CEP operators that leverage the
fog layer. Next, we focus on Problem (I) and the
implementation of evaluation mechanisms, including adaptions,
to leverage the fog layer. Then, we use this baseline to
optimize our solution.</p>
    </sec>
    <sec id="sec-9">
      <title>6. ACKNOWLEDGMENTS</title>
      <p>This work was partly supported by the German Federal
Ministry for Economic A airs and Energy (BMWi) through
the KI-SIGS { KI-Space for intelligent health systems (grant
no. 01MK20012P). Furthermore, we thank Holmer Hemsen
for the valuable input and discussions.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Ahmed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Arkian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Battulga</surname>
          </string-name>
          , and et al.
          <article-title>Fog computing applications: Taxonomy and requirements</article-title>
          . arXiv preprint:
          <year>1907</year>
          .11621,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Akdere</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Cetintemel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Tatbul</surname>
          </string-name>
          .
          <article-title>Plan-based complex event detection across distributed sources</article-title>
          .
          <source>VLDB Endowment</source>
          , pages
          <volume>66</volume>
          {
          <fpage>77</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S.</given-names>
            <surname>Akili</surname>
          </string-name>
          .
          <article-title>On the need for distributed complex event processing with multiple sinks</article-title>
          .
          <source>In DEBS</source>
          , pages
          <volume>248</volume>
          {
          <fpage>249</fpage>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A.</given-names>
            <surname>Alexandrov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Bergmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ewen</surname>
          </string-name>
          , and et al.
          <article-title>The stratosphere platform for big data analytics</article-title>
          .
          <source>The VLDB Journal</source>
          , pages
          <volume>939</volume>
          {
          <fpage>964</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>L.</given-names>
            <surname>Benson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. M.</given-names>
            <surname>Grulich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Zeuch</surname>
          </string-name>
          , and et al.
          <article-title>Disco: Efficient distributed window aggregation</article-title>
          .
          <source>In EDBT</source>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M.</given-names>
            <surname>Bucchi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Grez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Riveros</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Ugarte</surname>
          </string-name>
          .
          <article-title>Foundations of complex event processing</article-title>
          .
          <source>arXiv preprint:1709.05369</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Ramaswamy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. K.</given-names>
            <surname>Lowenthal</surname>
          </string-name>
          , and et al.
          <article-title>Comet: Decentralized complex event detection in mobile delay tolerant networks</article-title>
          .
          <source>In IEEE</source>
          , pages
          <volume>131</volume>
          {
          <fpage>136</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>W.</given-names>
            <surname>Fengjuan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Xiaoming</surname>
          </string-name>
          , and et al.
          <article-title>The research on complex event processing method of internet of things</article-title>
          .
          <source>In ICMTMA</source>
          , pages
          <volume>1219</volume>
          {
          <fpage>1222</fpage>
          . IEEE,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>I.</given-names>
            <surname>Flouris</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Giatrakos</surname>
          </string-name>
          , and et al.
          <article-title>Issues in complex event processing: Status and prospects in the big data era</article-title>
          .
          <source>JSS</source>
          , pages
          <volume>217</volume>
          {
          <fpage>236</fpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>A. S.</given-names>
            <surname>Foundation</surname>
          </string-name>
          . Apache storm,
          <year>2012</year>
          . Accessed January 2020: https://storm.apache.org/.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>N.</given-names>
            <surname>Giatrakos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Alevizos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Artikis</surname>
          </string-name>
          , and et al.
          <article-title>Complex event recognition in the big data era: a survey</article-title>
          .
          <source>The VLDB Journal</source>
          , pages
          <volume>313</volume>
          {
          <fpage>352</fpage>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M.</given-names>
            <surname>Hung</surname>
          </string-name>
          .
          <article-title>Leading the iot, gartner insights on how to lead in a connected world</article-title>
          .
          <source>Gartner Research</source>
          , pages
          <volume>1</volume>
          {
          <fpage>29</fpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>I.</given-names>
            <surname>Kolchinsky</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Schuster</surname>
          </string-name>
          .
          <article-title>Join query optimization techniques for complex event processing applications</article-title>
          .
          <source>VLDB</source>
          , pages
          <volume>1332</volume>
          {
          <fpage>1345</fpage>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>I.</given-names>
            <surname>Kolchinsky</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Schuster</surname>
          </string-name>
          .
          <article-title>Real-time multi-pattern detection over event streams</article-title>
          .
          <source>In MOD</source>
          , pages
          <volume>589</volume>
          {
          <fpage>606</fpage>
          . ACM,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>J.</given-names>
            <surname>Lin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Yu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , and et al.
          <article-title>A survey on internet of things: Architecture, enabling technologies, security and privacy, and applications</article-title>
          .
          <source>IoT</source>
          , pages
          <volume>1125</volume>
          {
          <fpage>1142</fpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M. P.</given-names>
            <surname>Madumal</surname>
          </string-name>
          and et al.
          <article-title>Adaptive event tree-based hybrid cep computational model for fog computing architecture</article-title>
          .
          <source>In ICTer. IEEE</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Mei</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Madden</surname>
          </string-name>
          .
          <article-title>Zstream: a cost-based query processor for adaptively detecting composite events</article-title>
          .
          <source>In SIGMOD</source>
          , pages
          <volume>193</volume>
          {
          <fpage>206</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>N. W.</given-names>
            <surname>Paton</surname>
          </string-name>
          and
          <string-name>
            <surname>O.</surname>
          </string-name>
          <article-title>D az. Active database systems</article-title>
          .
          <source>ACM CSUR</source>
          , pages
          <volume>63</volume>
          {
          <fpage>103</fpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>N. P.</given-names>
            <surname>Schultz-M ller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Migliavacca</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Pietzuch</surname>
          </string-name>
          .
          <article-title>Distributed complex event processing with query rewriting</article-title>
          .
          <source>In DEBS</source>
          , pages
          <volume>1</volume>
          {
          <fpage>12</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>E.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Diao</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Rizvi</surname>
          </string-name>
          .
          <article-title>High-performance complex event processing over streams</article-title>
          .
          <source>In SIGMOD</source>
          , pages
          <volume>407</volume>
          {
          <fpage>418</fpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>M.</given-names>
            <surname>Zaharia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. S.</given-names>
            <surname>Xin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Wendell</surname>
          </string-name>
          , and et al.
          <article-title>Apache spark: a unified engine for big data processing</article-title>
          .
          <source>ACM</source>
          , pages
          <volume>56</volume>
          {
          <fpage>65</fpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>S.</given-names>
            <surname>Zeuch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Chaudhary</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Del Monte</surname>
          </string-name>
          , and et al.
          <article-title>The nebulastream platform: Data and application management for the internet of things</article-title>
          .
          <source>CIDER</source>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>H.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Diao</surname>
          </string-name>
          , and et al.
          <article-title>On complexity and optimization of expensive queries in complex event processing</article-title>
          .
          <source>In SIGMOD</source>
          , pages
          <volume>217</volume>
          {
          <fpage>228</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>S.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , H. T. Vo, and et al.
          <article-title>Multi-query optimization for complex event processing in sap esp</article-title>
          .
          <source>In ICDE</source>
          , pages
          <volume>1213</volume>
          {
          <fpage>1224</fpage>
          . IEEE,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>