Complex Event Processing, or CEP, is a technology for building and managing event-driven information systems. CEP is primarily a set of programming language constructs that deal with the task of processing multiple streams of event data with the goal of identifying the meaningful events within those streams. 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.
CEP provides the core event language processing capabilities for Event Stream Processing (ESP), or ESP, which includes technologies such as event databases, and event visualization software.
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 sensor on it. It is able to measure tire pressure, speed, occupant 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 triggers a process which analysis the pressure loss. The presure is still within safety tolerances, but it notes the pressure loss in 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. It goes from 45 PSI to 20PSI in 2 seconds. An event of "blowOutTire" is announced. And the car's process determines that and takes approprate measures to keep the car and occupants safe. It slows down the car by anti-lock breaking techniques to bring the car to a stop.
Unfortunitely the driver was thrown from the car and the event "driverUnseated" is announced. The combination of "blowOutTire", "zeroSpeed" and "driverUnseated" came 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 could determine conclusively that the driver was thrown, but the combination of events allows the conclusion to be made. This is a complex event. It is complex because one can not directly measure the event, one has to infer or deduce that it occured.
Like simple events, complex events are also announced and triggers processes. This process uses the GPS system and car communication system to look up 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
Products
The first commercial implementations of CEP were created by Apama and iSpheres in 1998. 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.
See also
- Event Stream Processing (ESP) ESP is the general class of technologies that includes CEP that process streams of data
- Real-time computing CEP systems are typically real-time systems
- RFID Radio Frequency Identification, or RFID, requires CEP
External links
- The Power of Events by David Luckham, from Stanford University, a book on CEP.
- David Luckham's CEP web site
- Event Stream Processing Resource Site
- CEP: a start here guide and blog by David Soul
- Separating the Wheat from the Chaff Article about CEP as applied to RFID, appeared in RFID Journal
- Complex Event Processing Technical Communityon egroups