Some people, I’m told, get scared when they hear the word “complex”, as in “Complex Event Processing” (CEP). They want to hear “simple” event processing — or so some IT marketing people tell me. They say there is a feeling that software systems have gotten too complicated and non-programmers can’t use them anymore. Well, let’s understand what a “complex” event is.
Start with a basic question, is life simple? Most people will truthfully answer, “no”. Events happen in life that are neither simple in how they happen, nor in the effects they have. We all know that. We face complex events every day of our lives. Take the December 26, 2004 Indonesian Tsunami. It was a very complex event, and NOAA has very sophisticated simulations to explain how that event happened. And its effects are continuing as we speak.
If you want a technology that can deal with life, or in your case, with all of the events in the business and IT infrastructures upon which your enterprises depend, that technology will have to deal with complex events. You can’t talk your way around that fact by using some other word, like “simple” or “composite”!
CEP is a foundational technology for detecting and managing the events that happen in event driven enterprises. One of the first objectives of CEP is to help us understand the events in the enterprise. Only when we understand what is happening, or going to happen, can we plan and take action. CEP provides techniques to help in taking action too.
Here are some of the basic concepts aimed at achieving understanding:
1. Events in any enterprise can be organized into hierarchies, called event hierarchies.
Figure 1 shows an example in which the event layers are (1) middleware events such as formatted messages with various subject headers, (2) application events, i.e., events resulting from use of applications such as database insertions, email, etc., and (3) business process events such steps in a sales transaction. Of course, there are other layers too, but lets focus on just these three. The idea behind classifying events into levels in a hierarchy is to achieve understanding of what’s happening in the enterprise. One can focus first on the high level events associated with the business operations. Those events are closest to management and decision making, and their significance for the enterprise is most easily understood. To explain how they happened one uses their dependencies on lower level events. That brings us to a second concept.
2. Events are related to one another. Common relationships are cause, time, and aggregation.