Sunday, February 8, 2009

Event Processing Platform (EPP) --- yes, but...

STAC, as cited in the popular Blog of Tim Bass, has determined that the correct name that should be used for event processing products is EPP (Event Processing Platforms) rather than CEP. I actually like the term EPP, actually I used this term before, so I should have copyrighted this name...

However, EPP should be used in the right meaning.

In event processing software there are two different things:
  • Platforms that provide the "programming in the large" -- indeed a container in which different types of functionality can be plugged in.
  • EPA implementation Software - that performs the actual event processing work - e.g. pattern matching, enrichment, filtering etc... This is the "programming in the small" (I called it "event processing engines", but not convinced that this is the best name)
In the EPTS glossary terminology, Platforms implement "event processing networks", while the other type implement various types of event processing agents.

These are not the same, there are vendors who provide platforms, but use other software to implement agents For example - BEA provided a platform, and used Esper for various functions, if I am not mistaken this is also true for Event Zero, IBM's Infosphere Streams is also a platform -- all are indeed platforms. Some products provide both the EPN platforms and various EPA implementations, some provide just the EPA implementation and runs on various platforms (or as a centralized stand alone engine).

So, while I agree that the EPN implementations are platforms, I am not sure that the EPA implementations are also platforms, and we probably may need a different name (engines ?, not sure)...

And one sentence about the term CEP. As I have written several times, I am not a big fan of this term at all, I am consistently talking about event processing and not about complex event processing as the name of the discipline that this Blog covers. However, this reminds me that once I have been a member in a Hebrew technical terminology committee, and one of the terms that came for discussion has been "real-time", for some strange reason, in Hebrew it was translated literally as "true time", and when it came to write the official glossary endorsed by the Israeli Academy of Hebrew Language, their representative who knew Hebrew linguistics, but not computer science, insisted the the Hebrew word should be a true translation of "real time", giving a long talk about "real numbers" and other real stuff. I argued that --- from linguistic point of view he is probably right, but, the scientifically wrong name is already well-known in the industry, and decision on another name would not be accepted by the public. After long discussion he agreed to include my wrong version as an alias to his true version. You can guess which of the two is still being used for "real-time" in Hebrew.
The moral of this story is that it may be too late to change names, since the name CEP has been accepted in the industry for any type of event processing system, whether or not it is scientifically accurate, and as somebody said once -- resistance is futile...

I'll continue to use "event processing", will use "event processing platform" for a platform, and still looking for a term for the "EPA implementation" (engines or otherwise). But -- my guess is that the people that use CEP to denote any type of EP will continue doing it, since this name may already penetrated to the ground. More - Later.


Tim Bass said...

Hi Opher,

As I learned many years ago from very top leaders in the USAF,

"there is no limit to what you can accomplish if you give others credit for the accomplishments".

Please do not start (or continue) this "I invented EPP" first discussion. It is not useful.

First of all, it is debatable that you were actually "the first" and second "it does not matter".


Yours sincerely, Tim

Opher Etzion said...

Hello Tim.

It seems that you have missed the spirit of humor in which my comment about the copyright has been done. I think that this term is quite trivial and don't think it is a big invention, moreover, I attribute little importance to labels, and hope that my contribution is in the substance and not leave the TLA invention to others ...

stay well,


Alex said...

Making a distinction between "platform" and "engine" can quickly be irrelevant. History demonstrates that "platform" ends up with "lightweight" and "modular" as value propostion down the road (f.e. JEE specification evolution demonstrates this after 10 years).
Also, heterogeneity is natural, and off the shelf platform (in a closed form) is sometime just as yet another engine anyway in the eyes of the user who has to compose with his own existing stack. What matters is "capabilities that are orthogonal" to the core feature: tooling, manageability, security etc.