IT|Redux

BPM 2.0 and Complex Event Processing

Monday, September 29th 2008 | Ismael Ghalimi

Answering to my recent post on Intalio 2.0, Chris Sotudeh wondered if we saw Complex Event Processing (CEP) being part of Intalio 2.0 (the company) or Intalio 6.0 (the product). Chris must be reading my mind, because CEP is very much on our roadmap, even though we said very little about it so far. Here are some more details.

Here is how Wikipedia defines Complex Event Processing:

Complex Event Processing, or CEP, is primarily an event processing concept that deals with the task of processing multiple events from a so called event cloud with the goal of identifying the meaningful events within the event cloud. CEP employs techniques such as detection of complex patterns of many events, event correlation and abstraction, event hierarchies, and relationships between events such as causality, membership, and timing, and event-driven processes.

There are may ways one can build a CEP platform, and rather than trying to compare them against each other, I would like to outline how a BPM 2.0 platform can act as one, essentially out of the box. Some key capabilities of any CEP platform are the ability to process many events, correlate them with each other, and make decisions out of them, ideally in real-time. All these are areas where a good BPMS usually shines.

First, a good CEP platform must treat events as first class citizens, which is one of the reasons why you’d like to use something like BPEL instead of XPDL if you were to build a process-centric CEP platform (Cf. recent post on BPEL).

Second, for it to be used as a CEP development tool, your process design tool should be based on a process notation that can support the definition of virtually any event pattern, which BPMN 2.0 does to a large extent. But you’ll want to make sure that your tool can support the definition of independently-running processes if you want to define correlation rules that can span multiple processes, as opposed to just one. Very few BPEL-producing BPMN modeling tools have these capabilities, so you’ll want to watch out carefully there (just showing multiple swimlanes is not enough).

Third, the ability to abstract events from their actual payload or the transport protocol they used to reach you is critical. This is where the notion of abstract process interfaces and reusable processes can be very handy. The same concepts can be used to define event hierarchies by the way. Here again, very few BPM products support such concepts, but you’ll find them in a few BPM 2.0 products, Intalio 6.0 included.

Fourth, relationships between events such as causality, membership, and timing are where a BPMS can deliver its full potential. While most CEP platforms treat events in isolation from each other, a BPMS puts them back into a process context, where sequencing, repetition, causality, membership, and timing are staring at you.

Fifth, a CEP platform is usually powered by some kind of rules engine used to express conditions dictating which events to look at, and what to make of them. While the business rules engine embedded by earlier BPM products might not have been powerful enough to support the definition of such rules, the ones used by BPM 2.0 products have enough expressive power to handle even the most complex scenarios. Furthermore, these rules can be used not only in the context of process flows, but also to define binding rules between events and processes (Cf. notions of abstraction and hierarchy outlined above).

All that being said, for a BPMS to be used as a suitable CEP platform, it must also have a unique set of characteristics, such as the ability to deploy a very large number of process definitions (CEP systems tend to manage very large sets of event processing rules), handle very large process definitions (to support the correlations of very many different events), and support the real-time execution of processes (CEP systems are usually used for mission-critical applications). All these are qualities found in Intalio 6.0, which makes it a unique candidate for this kind of application.

The one piece that was missing from Intalio|BPMS in order to be used as a suitable CEP platform was the business rules engine. Until recently, all we had in this area was a simple rules editor based on the XPath specification. While it was plenty enough for data assignments and the expression of simple conditional logic, it just wasn’t enough for it to be used in a CEP context. We addressed this requirement with Intalio 6.0 by not only embedding the excellent Drools engine (aka JBoss Rules), but also developing a very powerful visual rules editor built in Eclipse and fully integrated with our process designer. Quite simply, the combination of our BPMN process designer, Drools-enabled business rules editor, and BPEL-powered process engine might be the most powerful CEP platform currently available currently available on the market.

If you’d like to learn more about it, make sure to attend one of our advanced trainings.

Entry filed under: BPM 2.0

Trackback this post  |  Subscribe to the comments via RSS Feed

Leave a Comment

Required

Required, hidden