Complex Event Processing
Complex Event Processing

When I first read The Power of Events: An Introduction to Complex Event Processing in Distributed Enterprise Systems by David Luckham I took away three high level ideas:

  1. Events are important in business.
  2. Events can be processed in a hierarchical way.
  3. Rapide is a modeling tool developed at Stanford that can be used to model complex systems.

These three key points were what I took away from reading the book. The Power of Events provided no discussion of systems architecture at any level except the abstraction of “event hierarchies” and the use of the RAPIDE tool. The Power of Events also offered no code, pseudo code or system architecture to process events (with the exception of the Stanford Rapide project). The “rest of the story” was left to the imagination of the reader.

What The Power of Events did accomplish, however, was to put the name of a well respected professor of electrical and computer engineering with credentials in artificial intelligence, and the name of one of the top universities in the world, on a book about business events. That book took the phrase “complex event processing”, coined in an earlier academic paper of the same name Complex Event Processing in Distributed Systems, and put the weight of Stanford University behind it.

It so happens that the author lived in Palo Alto which is also the headquarters for TIBCO Software. So, it probably comes as no surprise that David Luckham specifically mentions TIBCO’s messaging bus technology in his earlier work. It also should not come to any surprise that TIBCO’s first product offering related to this technology was called “Business Events”. The original concept of CEP was “a technology used to extract information from message-based systems“. In fact, a quote from the original CEP paper defines complex event processing as:

Complex event processing is a new technology for extracting information from message-based systems.” – David Luckham and Brian Frasca

Complex Event Processing in Distributed Systems concludes:

This paper has outlined a method of specifying abstraction hierarchies to define levelwise views of a distributed message-based system [emphasis added]. This methodology utilizes event pattern mappings. We have also illustrated a process for employing hierarchical views to quickly zero in on the low level causes of errors in such systems.

Event pattern languages are a fundamental technology for extracting information from distributed message-based systems. They are the underlying basis for specifying abstraction hierarchies by means of event aggregation maps, and for automated monitoring and aggregation of data from communication layers. The actual expressive power required of an event pattern language depends upon the nature of the information required and the abstraction hierarchy needed to specify it. The RAPIDE event pattern
language includes causal and timing relationships between events, as well as the usual set-theoretic relations, and is probably the most powerful event pattern language required for complex event processing.

I will elaborate on this more in my next post on this topic, The Power of Events Revisited (Part 2)