ACM Logo





Invitation


Ubiquity - The ACM IT Magazine and Forum




The Power of Events



Review By Frank P. Coyle

An overview of more than a decade of work on event systems, formal specification and temporal reasoning

The Power of Events: An Introduction to Complex Event Processing in Distributed Enterprise Systems, David Luckham, Addison Wesley Professional, May 2002, ISBN: 0201727897

Einstein in his Theory of Relativity used the term event to signify the fundamental entity of observed physical reality -- a single point in the time-space continuum. The dictionary defines event as a thing that happens or something to which we attach significance.

The world changes, things happen, time passes. We live in a world where events, both important and mundane, define and demarcate our lives.

Just as events are useful in modeling physical reality, the basic notion of event is widely used to model software. In object-oriented systems, event objects, generated by mouse clicks, button presses and menu selections are passed between GUI components and business objects, programmed to react to user actions. At the operating system level, creation and destruction events mark the beginning and end of life for processes and threads, and at the network level, events mark the sending and receiving of packets, the creation of links and the acceptance or denial of requests. From a systems perspective, events describe, at a foundational level, the reality of asynchronous distributed software systems. If only we could harness the myriad of events triggered by applications, percolating up from the operating system and arriving from network connections.

Within this event-laden milieu, Stanford professor David Luckham takes on the challenge of building a framework for thinking and reasoning about the range of events that define modern software systems. His book, The Power of Events, presents a well-organized distillation of research carried out over the last decade in conjunction with his Rapide project at Stanford. Luckham's early work on software specification has led him to a framework and Complex Event Processing (CEP) toolkit for reasoning about event interactions in large-scale systems. The description of the CEP toolkit provides the core content of the book.

For Luckham, an event has a very specific definition, much like an object-oriented class or an XML schema. Technically, an event is a record of system activity with attributes, significance and relativity. Attributes describe where the event occurred, who or what generated it, and when the event occurred. Significance captures the activity that gives rise to the event and is describable with additional attributes. Relativity ties events to each other, either by hierarchy (similar to object-oriented inheritance) or by time, causality or aggregation. Taken together, these aspects of an event serve as a basis for building an inference system -- a framework that permits temporal reasoning across a collection of event records.

The book is divided into two parts. Part I, titled "A Simple Introduction to Complex Event Processing," targets a broad audience and illustrates the significance of event thinking across a range of applications including the Internet, B2B data exchange and electronic commerce. Here Luckham defines what it means to be an event and introduces the reader to a simple pattern language that can be used to locate events in an event database. He also shows how event hierarchies can be constructed and how events can be aggregated to model more complex systems.

Part II gets down to the technical details of how Luckham's event data structures can be used to reason about systems. It begins with the definition of an event pattern language that has the flavor of regular expressions, complete with wild card matching symbols such as "?" and "*". The pattern language is declarative rather than procedural, and includes more sophisticated matching capabilities that allow locating events based on timing, aggregate and inheritance relationships.

Building on the pattern language, Luckham moves on to building agents that can use rules to reason about system event behavior. One option is through the creation of additional higher-order events that can be processed by other system agents on the alert for whatever conditions and relationships are specified in rule sets. Toward the end of the book, a chapter is devoted to applying the toolkit to reasoning about activity in a financial trading system, building rules to uncover improper behavior on the part of a trader such as the broker trading in a stock ahead of a placing a customer's order.

Overall, the book is well written and presents more than a decade of research in a compact package. However, the scope is quite narrow and personally I was disappointed that that the author didn't bring his work into a broader context. For example, while XML is briefly mentioned as useful technology for capturing event descriptions, the book makes no mention of any of the W3C (www.w3c.org) initiatives that have potential to bring some of Luckham's ideas into broader use. Two examples that come to mind are the XML Query language for extracting data from collections of XML files and the Semantic Web initiative which outlines a framework for building XML-based reasoning systems. It would appear that there are numerous synergies here, yet Luckham plays it close to the vest, limiting his descriptions to his Stanford work and providing only a limited bibliography for the reader.

The book provides a well-written summary of more than a decade of work at Stanford on event systems, formal specification and temporal reasoning. Researchers in software engineering or those thinking of implementing a framework for reasoning about systems will find a well thought out model for event description and building agent-based systems to reason about those events.

Ubiquity, Vol. 4, Issue 4, March 18 - 24, 2003


Forum

********

Frank P. Coyle is a senior lecturer in computer science at Southern Methodist University.



[Home]   [About Ubiquity]   [The Editors]  


Ubiquity welcomes the submissions of articles from everyone interested in the future of information technology. Everything published in Ubiquity is copyrighted ©2001 by the ACM and the individual authors.