<!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>From Distributed Sources to Distributed Sinks: Towards Truly Decentralized Event Stream Processing</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Samira Akili Supervised by Matthias Weidlich Humboldt-University of Berlin</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2019</year>
      </pub-date>
      <abstract>
        <p>Distributed stream processing evaluates queries over data produced by geographically distributed sources. To eciently handle large amounts of decentralized data, whilst coping with bandwidth restrictions, applications employ in-network processing. To this end, a query is modularized and its operators are assigned to network nodes, especially those that act as data sources. The latter is known as the operator placement problem. Existing solutions to it, however, handle data generated by distributed sources, whereas query results are gathered at one designated node - the sink. We argue that such single-sink solutions are not applicable for non-hierarchical system, in which multiple nodes need to be informed about query results. Also, having a single sink enforces centralisation in compositional applications, where the result of one query is the input to another query. This PhD project therefore aims to develop algorithms for multisink operator placement. We show that the computation of network costs for ecient operator placement, however, requires us to incorporate various aspects of event generation, query processing semantics, and network properties.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>INTRODUCTION</title>
      <p>
        In domains such as logistics, smart grids, or supply chain
management, applications rely on data produced by
geographically distributed sources [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. They exploit this data
by evaluating streaming queries in large networks, whose
nodes are defined by sensors, middleware components, and
information systems. While centralized approaches for
distributed stream processing (DSP) typically do not scale due
to bandwidth and delay restrictions, decentralized in-network
processing takes advantage of data locality to reduce
networking costs. To this end, the queries of an application
are split into operators, which are evaluated inside the
network, possibly directly at the nodes that denote data sources.
Hence, at the core of (DSP) lies the modularization of a
query workload and the assignment of operators to the nodes
sink
operator
      </p>
      <p>
        source
of the network. The latter is known in literature as the
operator placement problem [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
      <p>
        While existing approaches for DSP place operators inside
the network, the results of an application are gathered at one
designated node [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], i.e. the sink, which is usually located
in a data centre. In this work, we argue that a single-sink
approach is not suitable for non-hierarchical systems and
compositional applications. Non-hierarchical systems, such
as autonomous agent networks or car platooning, require a
large number of nodes, potentially the whole network, to be
informed about query results. At the same time, it is often
desirable to build streaming applications by composition:
The sink of one query represents a source for another one.
By enforcing a single sink, however, existing approaches do
not support decentralisation beyond a single query.
      </p>
      <p>This PhD project aims at developing foundations of
distributed stream processing with multiple sinks. Unlike
traditional operator placement that enforces a single sink node, see
Figure 1 (left), we strive for placements with multiple sinks,
see Figure 1 (right). This way, we achieve truly decentralised
stream processing that caters for distributed information
demands in non-hierarchical systems and avoids centralisation
in query composition. Considering multiple sinks yields a
higher degree of freedom for operator placement. Hence,
traditional algorithms to determine placements that minimise
network costs can no longer be used.</p>
      <p>
        We illustrate our research setting with a case study
provided by [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], which deals with autonomous transport robots
serving machines in a factory. The robots are equipped with
various sensors and communicate over wifi. The robots di↵er
in the types of their sensors, as they are assigned di↵erent
kinds of tasks. Sensor signals and network messages
constitute continuous streams of events. Based thereon, queries are
evaluated to monitor the conduct of transport jobs. These
jobs are announced by machines and distributed among the
robots that engage in a bidding process.
      </p>
      <p>In the remainder, Section 2 gives a formulation of our
research context. We review related work in Section 3, and
present our preliminary results in Section 4. In Section 5,
we conclude and outline our research agenda.</p>
    </sec>
    <sec id="sec-2">
      <title>2. RESEARCH CONTEXT</title>
      <p>We first define a query model for stream processing. We
then formalize the problem of operator placement with
multiple sinks and elaborate on various dimensions of this problem.
2.1</p>
    </sec>
    <sec id="sec-3">
      <title>Query Model</title>
      <p>
        To exemplify our approach, we employ a query language
model as used in Complex Event Processing (CEP) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
Let U = E1, . . . , En denote the universe of primitive event
types. Each event type E consists of a set of attributes
E = (A1, . . . , An), with, w.l.o.g., A1 being a timestamp. A
query defines a composite event pattern through a set of
operators, predicates describing correlation between events, and
a time window within which the pattern has to be detected.
An operator of a query is either defined by a primitive event
type, or composed of other operators. Common composite
operators are SEQ, AND, OR and NOT [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. The AND operator
matches, if all input event types occur; the SEQ operator
requires all inputs in the specified order; the OR operator
matches, if at least one of the inputs occurs; and the NOT
operator requires the absence of its input and is typically
defined in the context of another operator. An example
for the latter is the query SEQ(A a, NOT(B b), C c), which
matches if no event of type B occurs between events of types
A and C. We write An as a shorthand for SEQ(A a1, ..., A an).
      </p>
      <p>Consider the above case of autonomous transport robots. A
monitoring query detects the following situation: An obstacle
is reported (event type Ob) three times (a single observation
is not trustworthy due to workers passing the area). Then,
a request is issued to tow away the obstacle (Tow Req). A
robot capable of towing obstacles acknowledges the request
(Tow Ack). However, within five minutes the obstacle is still
observed at the respective position. This situation hints at
overloading of the robots capable of towing away obstacles
and may be detected with the following query:
SEQ ( ( Ob o ) 3 , Tow Req tq , Tow Ack ta , Obst o ’ )
WHERE o . p o s i t i o n = o ’ . p o s i t i o n
AND o ’ . timestamp t a . timestamp 5 min
WITHIN 10 min
2.2</p>
    </sec>
    <sec id="sec-4">
      <title>Problem Statement</title>
      <p>A query can be represented as operator tree (neglecting the
correlation predicates and time window). This is formalized
as a tuple (O, ), where O is a set of operators with Op ⇢ O
being the operators defined by primitive event types, and
: O ! 2O is a function that assigns input operators to an
operator (i.e. its children in the tree). A workload Q is a set
of queries.</p>
      <p>Queries are evaluated in an event-sourced network, which
is defined as a tuple (G, f ) where G is an undirected graph
G = (V, E) with V as a set of nodes and E as a set of
communication channels, and f : V ! 2U as a function that
defines the types of events generated at a node. Here we only
consider the case that G is complete. Each node generates a
local trace, an infinite sequence of events of the respective
types that are totally ordered by their timestamps.</p>
      <p>Given an event-sourced network (G, f ) and a query (O, ),
a placement p : O ! 2V is a function that assigns each
operator to a set of nodes. We refer to a node to which an
operator o has been assigned as a host of o. Placements are
directly lifted to a query workload Q, i.e., pw : S(O, )2 Q O !
2V assigns all operators of queries of Q to sets of nodes.</p>
      <p>A placement dictates which nodes have to exchange events
to evaluate queries: In general, a node n receives events
from all nodes that host operators that are inputs for at
least one operator hosted at n. The quality of a query
placement is assessed by the network costs it inflicts. We
define the network costs as the total rate with which events
are exchanged. Given a placement pw of a query workload
Q, we denote its total cost by c(pw) 2 R. Based thereon,
we capture the general problem addressed by our work as
follows:</p>
      <p>Problem 1. Let Q be a query workload and (G, f ) a
event-sourced network. The problem of multi-sink
operator placement is to determine a placement pw for Q such
that c(pw) is minimal.</p>
      <p>It is important to note that unlike traditional approaches we
consider to assign an operator to a set of nodes – leading to
placements with multiple sinks.
2.3</p>
    </sec>
    <sec id="sec-5">
      <title>Problem Dimensions</title>
      <p>The problem of multi-sink operator placement needs to be
addressed in the light of various parameters that arise from
an application domain. Below, we provide an overview of this
parameter space, along three dimensions: event generation,
query processing semantics, and network properties.
2.3.1</p>
      <sec id="sec-5-1">
        <title>Event Generation</title>
        <p>Event Rates. To determine an optimal operator
placement, knowledge about the rates of event generation is crucial.
Intuitively, it is beneficial to host an operator where its
input events are generated with high rates. Such knowledge
may be available at di↵erent granularities, in terms of a
local, global, or distributed rate per event type. Under a local
rate, events of a type are generated with a di↵erent rate per
node. An example from our case study are events of type
BATTERY LOW generated by a robot, if it needs to charge
its battery. The rates at which BATTERY LOW events are
generated depends on the deployed battery and di↵ers for
each robot. In contrast, events may be generated with a
global rate, i.e., the same rate per node. An example are
BEACON MESSAGE events emitted periodically by each robot
about its location. Under a distributed rate, only the total
rate of event generation in the network is known, but not the
rates at individual nodes. Consider ACCEPT JOB MESSAGE
events sent by the robots that win the bidding for transport
jobs. While the total rate of these events is known, their
distribution among the wining robots is not.</p>
        <p>Event Uniqueness. The uniqueness of events influences
the cost of operator placements: the local event traces of
nodes may contain only distinct events or show some overlap
(i.e., the same event may be generated by more than one
node). In our case study, the latter is observed for
TEMPERATURE DROP events: If temperature drops below a threshold,
all robots equipped with a thermometer report the situation
simultaneously. From an application point of view, there is
2 1 AANNDD((AA33), C)
3
1 AND(C,D)
Q1: AND(A3, C, D, A3)</p>
        <p>r = rA = rC = rD
unrest. cont.</p>
        <p>p2
1 3 AANNDD((AA33), C)
2 x r 2 x r/6 2 3 AANNDD((AA33), C)
r
no need to distinguish these reports, so that they are
considered as a single event that may be generated at multiple
nodes. Clearly, this influences the costs of a placement.
2.3.2</p>
      </sec>
      <sec id="sec-5-2">
        <title>Query Processing Semantics</title>
        <p>
          Consumption Policy. Semantics of streaming queries
are fine-tuned by a consumption policy that dictates how to
select events for query matching [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. For instance, under an
unrestricted policy, an event may be processed by multiple
operators of the same query [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. In contrast, a continuous
policy allows each event to be processed by exactly one
operator (i.e., the event is consumed by the operator).
        </p>
        <p>Consider Figure 2, which illustrates a network of three
nodes generating events of four types (a box next to a node
shows the generated event types) with the same (local) rate
r and the query Q1. Under an unrestricted policy, the query
would match once a set of three A events, a C event, and a
D event have been observed in the network. With a
continuous policy, a total of six A events is required for a match,
though. The former policy leads to an event being sent from
its generating node to all nodes hosting operators for the
respective type. The latter policy, in turn, means that this is
not required. Figure 2 also illustrates how the the
consumption policy impacts the cost of an operator placement: It
shows two placements, p1 and p2, with the query’s sink node
being placed at either node 1 or node 3, respectively. Each
node optimizes query evaluation and sends partial matches
instead of individual events, e.g. in placement p1, node 2
sends matches for AND(A3,C) to node 1 instead of all events
of type A and C. For an unrestricted policy, p1 yields minimal
network costs, whereas p2 is optimal under a continuous
policy. Thus, the chosen policy impacts the rates with which
A events are sent and leads to di↵erent optimal placement.</p>
        <p>Selectivity. The cost of operator placement is also
influenced by selectivity of an operator, i.e., the portion of events
processed by it that fulfill the correlations predicates (see
Section 2.1). The selectivity may be estimated based on the
distribution of the events’ attribute values. As the selectivity
of an operator governs the output rate of a node hosting the
operator, it influences the costs of a placement.
2.3.3</p>
      </sec>
      <sec id="sec-5-3">
        <title>Network Properties</title>
        <p>
          Push-Pull Communication. Instead of requiring nodes
to send events to other nodes for processing (known as
pushbased communication), DSP may also exploit pull-based
communication [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. Then, operators pull their input events
from other nodes, which potentially reduces network costs.
Both communication paradigms induce space for
optimisation, where low frequency events are pushed, while high
frequency events are pulled on demand.
        </p>
        <p>
          Load Balancing. A simple strategy for load balancing
in DSP is to restrict the maximum number of operators that
can be hosted per node. Yet, this number may be largely
detached from the actual computational load (CPU cycles)
and networking load (number of received events). To achieve
e↵ective load balancing, the types of operators have to be
taken into account. Stateful operators, e.g. SEQ, are
particularly demanding in terms of computational resources [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ].
        </p>
        <p>Constraints on Event Di↵usion. The communication
within the network might be restricted, e.g. due to privacy or
organizational reasons. Such restrictions can be defined on
the node level, prohibiting specific nodes to exchange events,
or on the event level, prohibiting certain event types to be
shared across the network. As a consequence, some nodes
might be not eligible to become host for an operator, which
leads to a reduced space of possible placements.</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>3. RELATED WORK</title>
      <p>
        Operator placement has been investigated in the
context of distributed stream processing [
        <xref ref-type="bibr" rid="ref13 ref14 ref15">13–15</xref>
        ], distributed
CEP [
        <xref ref-type="bibr" rid="ref10 ref18 ref9">9, 10, 18</xref>
        ], and sensor networks [
        <xref ref-type="bibr" rid="ref16 ref8">8, 16</xref>
        ]. For non
treestructured queries, the problem is known to be NP-hard [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ],
so that most existing approaches yield heuristic placement
algorithms. In [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] and [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], distributed stream processing
and CEP applications were surveyed and it was concluded
that they di↵er in their employed system and query model,
optimization goal and in whether the placement algorithm
is centralized or decentralized. In all of the works mentioned
above, the operator placement problem is formulated such
that an operator is placed at exactly one node leading to
single-sink solutions, which are not suitable for our intent.
      </p>
      <p>
        Distributed Stream Processing. In DSP, operators
are usually considered as black-boxes, so that none of the
existing works considers operator semantics. In [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] and [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ],
placement algorithms are introduced to optimize bandwidth
and delay. While di↵erent types of event generation can be
employed in the proposed cost model, none of the factors
we discussed as network properties are addressed. Recently,
Nardelli et al. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] introduced several heuristics to compute
placements, yet considering solely single-sink solutions.
      </p>
      <p>
        Distributed Complex Event Processing. In [
        <xref ref-type="bibr" rid="ref10 ref18 ref9">9, 10,
18</xref>
        ], (single-sink) placement algorithms that optimize
networking costs are introduced. Chen et al. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] employ a language
model similar to ours and support push-pull
communication. However, neither load balancing strategies nor query
semantics are taken into account. Cugola et al. [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]
discuss placement strategies for CEP queries written in TESLA.
While query semantics are incorporated, the approach ignores
requirements in terms of load balancing. Starks et al. [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]
investigate distributed CEP for mobile ad-hoc networks and
propose a decentralized algorithm. They argue that due to
the inherent dynamicity of such systems, placements need to
be recomputed frequently, which calls for optimizations of
the placement algorithm itself in terms of networking costs.
Neither load balancing nor push-pull communication are
supported by the proposed placement mechanism, though.
      </p>
      <p>
        Sensor Networks. Srivastava et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] introduce a
placement algorithm that is optimal in bandwidth
consumption and load balancing. However, their approach is only
applicable for operators resembling filters, which strongly
limits the query language and simplifies load balancing. In [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]
sink
decentralized, adaptive placement are proposed for
continuous queries, minimizing networking costs. Yet, the influence
of network properties on the placement is neglected.
      </p>
    </sec>
    <sec id="sec-7">
      <title>4. PRELIMINARY RESULTS</title>
      <p>
        As a first step towards an ecient multi-sink operator
placement strategy, we adapted the shortest tree algorithm
introduced in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. The algorithm can be applied for a query
having a tree structure and produces an optimal placement
for a query workload having a di↵erent sink for each query.
The idea is to construct a graph such that its vertices reflect
all possible placements and the edge weights the respective
costs. Using a dynamic programming approach we can
efficiently compute a shortest path tree for the graph. The
vertices of the shortest path tree yield an optimal
placement for which costs are given by the sum of the tree’s edge
weights. Figure 3 illustrates such a graph for the query Q2
and a network consisting of three nodes: The vertices are
labelled with tuples of operators from O \ Op (i.e. we do
not consider primitive events as operators here) and node
ids, e.g. the vertex S1@1 reflects the placement of operator
S1 at node 1. The set of vertices describing all placement
possibilities of one operator o is called the layer of o, e.g. the
vertices {S1@1, S1@2, S1@3} form the layer of the SEQ
operator. The edges of the graph connect the nodes according to
the operator tree: If an operator o is a parent of an operator
q in the query graph, then each node of the layer of o is
connected to each node of the layer of q. The weight of an
edge between two vertices A1@1, S@2 reflects the event rates
that have to be exchanged in order to place SEQ at node 2
when AND1 is placed at node 1. The consumption policy,
selectivity and event generation a↵ect the rates events are
exchanged with and thus can be encoded in the edges weights
of the graph. Constrained event di↵usion is also supported
by the algorithm by adding a pruning step: if two nodes are
not allowed to communicate the link weights between two
vertices referring to those nodes are set to infinite. For an
event type that is not to be shared across the network, a
layer of its consuming operator contains only placements at
nodes that generate the respective event type.
      </p>
    </sec>
    <sec id="sec-8">
      <title>5. CONCLUSION AND NEXT STEPS</title>
      <p>We introduced the multi-sink operator placement problem,
thereby paving the way for truly decentralized event stream
processing. Moreover, we sketched a first algorithm to
incorporate various dimensions of the problem. It yields an
optimal placement with a sink for each query of a workload.</p>
      <p>As a next step, we plan to extend our approach to
support load balancing strategies, the push-pull rationale, and
operator reuse between di↵erent queries of a workload.
Furthermore, we intend to investigate how to decentralize the
computation of a placement itself by relying on local
information in the neighbourhood of a node, thereby avoiding the
necessity of having global knowledge on the network. We
expect that decentralizing the placement algorithm favours
ecient recomputation of operator placements to react to
changes in the network. To cope with dynamicity and failures,
we will also explore notions of robustness of a placement.
6.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>proANT Transport</given-names>
            <surname>Robots</surname>
          </string-name>
          . http: //www.insystems.de/en/produkte/proant-transport-roboter/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>R.</given-names>
            <surname>Adaikkalavan</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Chakravarthy</surname>
          </string-name>
          .
          <article-title>Seamless event and data stream processing: Reconciling windows and consumption modes</article-title>
          .
          <source>In DASFAA</source>
          , pages
          <fpage>341</fpage>
          -
          <lpage>356</lpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Adi</surname>
          </string-name>
          and
          <string-name>
            <given-names>O.</given-names>
            <surname>Etzion</surname>
          </string-name>
          .
          <article-title>Amit - the situation manager</article-title>
          .
          <source>VLDB J</source>
          .,
          <volume>13</volume>
          (
          <issue>2</issue>
          ):
          <fpage>177</fpage>
          -
          <lpage>203</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Akdere</surname>
          </string-name>
          , U. C¸
          <article-title>etintemel, and</article-title>
          <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</source>
          ,
          <volume>1</volume>
          (
          <issue>1</issue>
          ):
          <fpage>66</fpage>
          -
          <lpage>77</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A.</given-names>
            <surname>Artikis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Margara</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ugarte</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Vansummeren</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Weidlich</surname>
          </string-name>
          .
          <article-title>Complex event recognition languages: Tutorial</article-title>
          . In DEBS, pages
          <fpage>7</fpage>
          -
          <lpage>10</lpage>
          . ACM,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>S. H.</given-names>
            <surname>Bokhari</surname>
          </string-name>
          .
          <article-title>A shortest tree algorithm for optimal assignments across space and time in a distributed processor system</article-title>
          .
          <source>IEEE TSE</source>
          , (
          <volume>6</volume>
          ):
          <fpage>583</fpage>
          -
          <lpage>589</lpage>
          ,
          <year>1981</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>V.</given-names>
            <surname>Cardellini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Grassi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Lo Presti</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Nardelli</surname>
          </string-name>
          .
          <article-title>Optimal operator placement for distributed stream processing applications</article-title>
          .
          <source>In DEBS</source>
          , pages
          <fpage>69</fpage>
          -
          <lpage>80</lpage>
          . ACM,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>G.</given-names>
            <surname>Chatzimilioudis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cuzzocrea</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Gunopulos</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Mamoulis</surname>
          </string-name>
          .
          <article-title>A novel distributed framework for optimizing query routing trees in wireless sensor networks via optimal operator placement</article-title>
          .
          <source>JCSS</source>
          ,
          <volume>79</volume>
          (
          <issue>3</issue>
          ):
          <fpage>349</fpage>
          -
          <lpage>368</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <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
          <string-name>
            <given-names>S.</given-names>
            <surname>Kalyanaraman</surname>
          </string-name>
          . Comet:
          <article-title>Decentralized complex event detection in mobile delay tolerant networks</article-title>
          .
          <source>In MDM</source>
          , pages
          <fpage>131</fpage>
          -
          <lpage>136</lpage>
          . IEEE,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>G.</given-names>
            <surname>Cugola</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Margara</surname>
          </string-name>
          .
          <article-title>Deployment strategies for distributed complex event processing</article-title>
          .
          <source>Computing</source>
          ,
          <volume>95</volume>
          (
          <issue>2</issue>
          ):
          <fpage>129</fpage>
          -
          <lpage>156</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>I.</given-names>
            <surname>Flouris</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Giatrakos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Deligiannakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Garofalakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kamp</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Mock</surname>
          </string-name>
          .
          <article-title>Issues in complex event processing: Status and prospects in the big data era</article-title>
          .
          <source>JSS</source>
          ,
          <volume>127</volume>
          :
          <fpage>217</fpage>
          -
          <lpage>236</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>G. T.</given-names>
            <surname>Lakshmanan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Li</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Strom</surname>
          </string-name>
          .
          <article-title>Placement strategies for internet-scale data stream systems</article-title>
          .
          <source>IEEE Internet Computing</source>
          ,
          <volume>12</volume>
          (
          <issue>6</issue>
          ):
          <fpage>50</fpage>
          -
          <lpage>60</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M.</given-names>
            <surname>Nardelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Cardellini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Grassi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F. L.</given-names>
            <surname>PRESTI</surname>
          </string-name>
          .
          <article-title>Ecient operator placement for distributed data stream processing applications</article-title>
          .
          <source>IEEE TPDS</source>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>P.</given-names>
            <surname>Pietzuch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ledlie</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Shneidman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Roussopoulos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Welsh</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Seltzer</surname>
          </string-name>
          .
          <article-title>Network-aware operator placement for stream-processing systems</article-title>
          .
          <source>In ICDE</source>
          , pages
          <fpage>49</fpage>
          -
          <lpage>49</lpage>
          . IEEE,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>S.</given-names>
            <surname>Rizou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Durr</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Rothermel</surname>
          </string-name>
          .
          <article-title>Solving the multi-operator placement problem in large-scale operator networks</article-title>
          .
          <source>In ICCCN</source>
          , pages
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          . IEEE,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>U.</given-names>
            <surname>Srivastava</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Munagala</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Widom</surname>
          </string-name>
          .
          <article-title>Operator placement for in-network stream query processing</article-title>
          .
          <source>In PODS</source>
          , pages
          <fpage>250</fpage>
          -
          <lpage>258</lpage>
          . ACM,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>F.</given-names>
            <surname>Starks</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Goebel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kristiansen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Plagemann</surname>
          </string-name>
          .
          <article-title>Mobile distributed complex event processing-ubi sumus? quo vadimus? In Mobile Big Data</article-title>
          , pages
          <fpage>147</fpage>
          -
          <lpage>180</lpage>
          . Springer,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>F.</given-names>
            <surname>Starks</surname>
          </string-name>
          and
          <string-name>
            <given-names>T. P.</given-names>
            <surname>Plagemann</surname>
          </string-name>
          .
          <article-title>Operator placement for ecient distributed complex event processing in manets</article-title>
          .
          <source>In WiMob</source>
          , pages
          <fpage>83</fpage>
          -
          <lpage>90</lpage>
          . IEEE,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <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
          <string-name>
            <given-names>N.</given-names>
            <surname>Immerman</surname>
          </string-name>
          .
          <article-title>On complexity and optimization of expensive queries in complex event processing</article-title>
          .
          <source>In SIGMOD</source>
          , pages
          <fpage>217</fpage>
          -
          <lpage>228</lpage>
          . ACM,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>