I rarely disagree with Ismael, but I think his latest piece, in which he argues that a BPMS is the “right” way to build a Complex Event Processing (CEP) platform, is a little off base. All first-tier BPMS platforms today, not just those based on BPEL, can listen for events to instantiate a process, resume a waiting process, or interrupt a running activity. I don’t think that has anything to do with CEP, which is about correlating events from multiple streams and applying rules to detect patterns of interest, e.g. suspicious or fraudulent activity. In a BPMS, such capabilities are similar to those found in the BAM component, which correlate process events to aggregate KPIs and apply rules to detect performance problems. But even vendors that offer both BPMS and CEP, such as IBM or TIBCO, employ a special purpose engine for CEP, not the BPMS. That’s because CEP does not mean “good” everyday event processing, but special capabilities needed to look for rare (and complex) correlations among events in extremely high speed message streams. You can combine CEP with BPMS, e.g. to take action on a “hit”, but to suggest that the type of event processing needed in CEP is the same as needed for ordinary process orchestration is incorrect.
BPM and CEP
About the Author: Bruce Silver
Related Posts
5 Comments
Leave A Comment
You must be logged in to post a comment.
This site uses Akismet to reduce spam. Learn how your comment data is processed.
Bruce,
I think that we agree more than we disagree. We agree in that most BPMS products are not suitable for use in a CEP context, and the ones that would need to offer very high performance levels, in terms of their ability to process many messages really fast. This is something that Intalio|Server was designed for.
What your post tells me is that I need to explain in more details why doing CEP in the context of BPM is better, especially with respects to the business goals CEP is going after (governance, risk management, and compliance).
I’ll write a follow-up post that should help.
Best regards
-Ismael
Actually, Bruce is 100% correct – CEP requires a special type of processing versus say BPMN-based workflow. But Ismael is correct in that something like a rule+state driven CEP engine can also do BPM.
Unfortunately, if you wanted to build a high performance CEP engine for both CEP and BPM, you almost certainly wouldn’t want to start with an orchestration language like BPEL (hint: CEP is about continuous event pattern detection, not orchestrations). But I wouldn’t want to stop anyone trying…
Also: one of Intalio’s open source BPM competitors has just announced a CEP offering, but using an open source CEP engine (actually the same one Oracle/BEA license).
Disclaimer: TIBCO has both high-performance high-scalability BPM (iProcess) and CEP (BusinessEvents) and BPEL (BusinessWorks) engines. So we know a little about this area 🙂
[Perhaps we should rename BPM to be Human Event Processing!]
Paul,
I do not see why you could not model continuous event pattern detection in BPMN and execute such event pattern agents as BPEL processes. In fact, this is precisely what SAP is doing with Coral8, as explained on the following page:
http://www.coral8.com/developers/BPEL.html
Now, if your BPEL engine is not fast enough nor cannot handle very many process definition concurrently, you will certainly need a third-party CEP engine, which is the reason why the competitor you’re hinting to licensed the CEP product you’re not mentioning (I am very familiar with the case).
Sorry, but you’ll have to dive deeper in the technical stack to convince me that I’m wrong on this one.
Best regards
-Ismael
[…] post on BPM 2.0 and Complex Event Processing started quite a few discussions, some online (like this one with Bruce Silver and Paul Vincent), some offline with a few prominent CEP vendors, who seemed to […]
I really recommend Luckham’s book The Power Of Events to any BPM expert really interested in CEP.
BPMN is designed for orchestrating human-event processing and cannot *easily* (or sensibly, in cases) model complex event patterns (including out-of-order, time-based order, missing events, etc), nor the concept of continuous event processing.
Ismael may have misinterpreted the Coral8 link he included, which shows a BPEL (not BPMN) to CEP language mapping, used for the purposes of monitoring the BPEL processes (viewing the process events as event streams on which to detect interesting patterns). Which either proves that CEP languages are a superset of BPEL, or that you can extract events from a BPEL process definition. (Both are probably true in most cases, although I have never seen the former proven). It does not prove that BPEL can represent CEP patterns. If it did, why on earth would SAP employ an additional dedicated CEP engine?
Of course, one can (and some TIBCO customers do) map BPMN orchestrations to a CEP language (e.g. for Straight Thru Processing). Note that the act of mapping a BPMN model to a CEP language does not magically turn your business orchestration into a CEP model.
Regardless, Ismael’s own follow-up blog comments: “saying that a good BPEL engine could be used for CEP purposes does not mean that it?s enough. In fact, it?s not…”.
If anyone is interested, we are following the possible future extension / profile of BPMN to CEP on the TIBCO CEP blog.