J. Parallel Distrib. Comput. 72 (2012) 450–461
Contents lists available at SciVerse ScienceDirect
J. Parallel Distrib. Comput.
journal homepage: www.elsevier.com/locate/jpdc
A complex event routing infrastructure for distributed systems
Hossein Saiedian
a,*
, Gabe Wishnie
b
a
Electrical Engineering and Computer Science, University of Kansas, Lawrence, KS 66045, USA
b
Bing Infrastructure, Microsoft, Redmond, WA 98052, USA
article info
Article history:
Received 2 March 2011
Received in revised form
21 October 2011
Accepted 8 November 2011
Available online 18 November 2011
Keywords:
Complex event processing
Distributed systems
Event-based middleware
Cloud computing
abstract
With the growing number of mega services and cloud computing platforms, industrial organizations
are utilizing distributed data centers at increasing rates. Rather than the request/reply model, these
centers use an event-based communication model. Traditionally, the event-based middleware and the
Complex Event Processing (CEP) engine are viewed as two distinct components within a distributed
system’s architecture. This division adds additional system complexity and reduces the ability for
consuming applications to fully utilize the CEP toolset. This article will address these issues by proposing
a novel event-based middleware solution. We introduce Complex Event Routing Infrastructure (CERI),
a single event-based infrastructure that serves as an event bus and provides first class integration of
CEP. An unstructured peer-to-peer network is exploited to allow for efficient event transmission. To
reduce network flooding, superpeers and overlay network partitioning are introduced. Additionally, CERI
provides each client node the capability of local complex query evaluation. As a result, applications
can offload internal logic to the query evaluation engine in an efficient manner. Finally, as more client
nodes and event types are added to the system, the CERI can scale up. Because of these favorable scaling
properties, CERI serves as a foundational step in bringing event-based middleware and CEP closer together
into a single unified infrastructure component.
© 2011 Elsevier Inc. All rights reserved.
1. Introduction
Cloud computing, mega services, and thin clients are becoming
mainstream within the industry. Complex applications are moving
off the desktop in favor of deployment within the cloud. The
cloud computing model is reminiscent of mainframes and dummy
terminals. However, our client machines are quite powerful and
our mainframes are a cluster of many servers that appear as a single
entity to the client as opposed to a centralized server. Whether
it be searching the Web, checking email or uploading photos to
share with family, the user gets the impression that he or she is
interacting with a single service. In reality, there is a controlled
chaos behind the scenes among potentially hundreds of servers to
perform a single operation. Companies developing these services
are constantly driven to add additional servers to accommodate
new features, more traffic or lower latencies.
Although the function of these distributed systems is quite di-
verse, there are common threads that run through all of them.
The various components within the system need a mechanism to
communicate with one another, and the components perform op-
erations at a staggering rate. While reply/request communication
*
Corresponding author.
E-mail addresses: saiedian@eecs.ku.edu (H. Saiedian), gabew@microsoft.com
(G. Wishnie).
was traditionally used for communication within a distributed sys-
tem, the industry is starting to adopt event-based communication
mechanisms as their primary communication method. There are
a few predominant reasons which are causing this shift to occur.
Reply/request based communication creates a tight coupling be-
tween two components within a system. This is because the initia-
tor has to be aware of the consumer and both require the ability to
communicate with one another using the same channel and proto-
col. Having components tightly coupled complicates upgrades and
adds fragility into already complex systems. All of these additional
details place unnecessary burdens on the developers of the system
and require them to focus on lower level details rather than the
business level logic of the application.
1.1. Current event-based middleware limitations
Event-based communication solves the problem of spatial
coupling and temporal coupling [3] because the producers of
events and their consumers have no knowledge of one another.
In other words, the producer and consumer do not directly
communicate with one another. Communication within an event-
based system is done via middleware, called the event notification
service, which serves as a message bus within the system. An
event is defined as any observable operation of interest within a
system [8]. When a component wants to notify other components
0743-7315/$ – see front matter © 2011 Elsevier Inc. All rights reserved.
doi:10.1016/j.jpdc.2011.11.005