Complex event processing

This is an old revision of this page, as edited by Elonka (talk | contribs) at 23:37, 22 September 2006 (Tagging as uncategorized using AWB). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Complex Event Processing, or CEP, is a technology for building and managing event-driven information systems. CEP is primarily an event processing concept that deal with the task of processing multiple events from an event cloud with the goal of identifying the meaningful events within the event cloud. CEP employs techniques such as detection of complex patterns of many events, event correlation and abstraction, event hierarchies, and relationships between events such as causality, membership, and timing, and event-driven processes.

A conceptual description of CEP

Examples of events include church bells ringing, the appearance of a man in a tuxedo or morning suit, a girl in a flowing white gown and rice flying through the air. A complex event is what one infers from the simple events: a wedding is happening. CEP is a programming language that helps discover complex, inferred events by analysing and correlating other events: the bells, the man and girl in wedding gear and the rice flying through the air.

Another systemic example of CEP

A more systemic example of CEP involves a car, some sensors and an accident. Imagine that a car has several sensors on it. It is able to measure the tires' pressure, speed, seat occupied (is someone sitting in a seat) and has two buttons "Help" and "Cancel."

Imagine the car is riding and the tire pressure of one of the tires moves from 45 PSI to 41PSI over 5 minutes. The event "lossofTirePresure" is announced. This event triggers a process which analyses the pressure loss. The pressure is still within safety tolerances, but it notes the pressure loss into the car's maintanence log, and alerts the driver via the car's portal that the tire pressure needs to be taken care of. It also determines the closest gas station that advertizes an air-compressor and displays that for the driver's convience.

Imagine that same car has a significant pressure loss in the front, left tire. They change from 45 PSI to 20PSI in 2 seconds. These are announced as separate events of "blowOutTire". And the car's process determines that and takes appropriate measures to keep the car and occupants safe. It alerts the driver and takes actions to slow down the car by anti-lock breaking techniques to bring the car to a stop.

Image that this same car is in an accident when the tire blew and the speed goes quickly to zero. Unfortunately the driver was thrown from the car and the event "driverUnseated" is announced. The combination of "blowOutTire", "zeroSpeed" and "driverUnseated" come in a very short period of time (a few seconds) and the car infers that the driver was thrown from the car and announced the "occupantThrown" event. There is no direct measurement that can determine conclusively that the driver was thrown, but the combination of events allows the conclusion to be made. This is the essence of a complex event. It is complex because one can not directly measure the event, one has to infer or deduce that it has occurred.

Like simple events, complex events are also announced on the same [enterprise service bus] and triggers processes. The process triggered by the "occupeantThrown" event uses services from the GPS system and car communication system to determine the ___location, determine how to contact the local sheriff and ambulances via a web service. Armed with this information, the car contacts the emergency responders and saves the life of the incapacitated driver.

Academic research

  • Aurora (Brandeis University, Brown University and MIT)
  • STREAM (Stanford University)
  • Telegraph (UC Berkeley)

Products

The first commercial implementations of CEP were created in 1998 by Apama and iSpheres (iSpheres is no longer in business). In 1999 Agent Logic enabled end-users to create and manage their own rules for detecting and responding to events. Fast event databases have also emerged in the same time frame, including ObjectStore, Vhayu and KDB, later rebranded as "streaming databases." StreamBase released the "worlds first stream processing engine" in 2005, Red Rabbit Software released a Business Event Processing Platform in 2005 that correlates events conforming to industry specific ___domain models, semantics, and business patterns of interest, and in 2006 AleriLabs and Coral8 announced stream processing software. AptSoft has offered a high performance CEP platform since 2004 that was reviewed in InfoWorld Magazine.

Open source

July 2006 open source software, Esper version 1.0 was released at the Codehaus.

See also