Sunday, September 9, 2007

EP, CEP, ESP, DSP, SEP, MEP, BPEP and more

Still in the Babylon tower, there is some discussion about terms, and thus the importance of the consensus glossary, that will hopefully be finalized soon. Today I'll discuss some of the *-EP terms. Two years ago I suggested to use a common name "Event Processing", for the discipline we are dealing it, this was, first, a compromise between two competing names "event stream processing" that Mark Palmer from Progress tried to promote, and the "complex event processing" name that David Luckham coined, and was supported by some. The first point of confusion was that Mark Palmer did not mean what in the academia was defined as "data stream processing", if we look at Apama, this is clearly not the same concept. The rationale behind the name "event processing" is that nobody had strong objections to it, and also typically names of areas consist of two words and not three (example: information retrieval, data management, image processing, autonomic computing and more...), it seems that there is now an agreement that event processing is the name of the entire discipline, so how the other names are positioned against it? Roy Shculte had a presentation saying that EP = {SEP + MEP + CEP + BPEP [which he omitted in some later presentations]}, this is a good starting direction.
According to this distinction - SEP (simple event processing) deals with filtering and routing (e.g. pub/sub) and is the most pervasive means of event processing, MEP (Mediated event processing) enables transformation (translation, aggregation, splitting), validation and enrichment of events. CEP (Complex Event Process) derive events based on detected patterns in the event history. BPEP is really making the consumer and producer - ready for event processing, by instrumentation on one side, and orchestration on the other side, thus, while it is part of the architecture, it is somewhat different creature.

There is, however, some potential overlap between the different levels -- i.e. aggregation can be either MEP or CEP. One possible border line is "stateless" (MEP) vs. "statefull" (CEP), but this will limit the concept of MEP, another possible border is that MEP may have a state, but in this state raw events are not preserved and only accumulative information is preserved.

And what about DSP, ESP etc.. -- some people in the community makes the distinction that CEP processes "posets" (partial order sets), while ESP processes sequences (totally ordered set). Since sequence is a special case of poset, one can claim that if poset is supported than also sequence is supported. In some applications the order is important, and we can indeed look at them as a class of event processing applications, but there are other classes of applications with characteristics - examples: transactional applications, applications that support uncertain events, applications that require retrospective processing, applications that do not require recoverability and more - thus, the "total order" is just one of many sub-types of event processing. Furthermore, in the same application, some patterns may require total order, while others don't require it.

A common misconception about "complex event processing" stems for the possible ambiguity in parsing this expression. While some people interpret it as "complex processing of events", the meaning is "processing of complex events"; this processing can be quite simple, indeed...

Interestingly - we see that the term "stream processing" which came from the academia. did not survive as a marketing term. Looking at the homepage of "streambase" I find the terms CEP and complex event processing all over ( the term "stream processing" has disappeared), Coral8 also have "complex event processing" in their title, and so is Apama - that used "event stream processing" in the past. Apama is now talking about "event processing platform" and "complex event processing language", which seems to be consistent with what's written here.

Bottom line: It seems that Event Processing is catching as the name of the area (or end-2-end game), Complex Event Processing as the name of the part that does processing of multiple events (detect patterns and derive events), and stream processing - is very much alive in the academic community, but did not survive in the market.

More - about the relations of event processing to databases -- later ...

No comments: