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