07.24.07
BPM versus CEP, which goes BAM?
My apologies for the title, but I couldn’t resist… I was part of a meeting with a very interesting software technology we use internally (AptSoft), and we had a spirited discussion about the role of BPM, the role of CEP, and which is best suited for BAM. But first, let me expand the acronyms:
- BPM == Business Process Management
- CEP == Complex Event Processing
- BAM == Business Activity Monitoring
Rather than a hypothetical discussion, I want to position each of these in the world of electronic commerce, especially when traditional EDI documents are at issue.
BPM is about “managing the expected” (before I get angry posts from BPM devotees, I do not mean only the “success case”, but the finite universe of expected “paths”, including errors and timeouts…). Given the way modern electronic commerce plays out, this encompasses most of what goes on. When a purchase order is issued (say an X12 850, for our purposes), we may expect a response within a certain period of time. Either the response, or its absence is reasonably predictable, as are the ensuing shipment notice, invoices, RAs, etc. Although much can go wrong with this business process driven by EDI documents — most of it is predictable, and can be nicely modeled using a BPM tool.
But what it I get a shipment notice for something I didn’t order? Or what if sales are collapsing (demand) for something that I am ordering? Or what if a price changes, as sales fluctuate and shipments are late? Or suppose that not only did Partner ABC not acknowledge my purchase order, but he has not “done anything” for six hours — even though I normally receive traffic from him every 15 minutes (some partners are very needy….). These situations are examples of problems that are better addressed by CEP, or Complex Event Processing.
My rule of thumb is that if the occurrence is not “likely enough” to be modeled in a process diagram, you should not handle it via business process management. Also, if you are looking to correlate events across several processes (like a partner suddenly going “dead”, or sending bad data in all of their communications), BPM is likely to disappoint. The reason is reasoning (pun intended). BPM tools are following a defined process, and are usually not rules driven. CEP systems, on the other hand, use sets of rules to analyze and respond to events in context (this means that each event is considered in light of all the events that occurred earlier — where appropriate — and all the subsequent events). I consider this kind of rules based process to be “reasoning”, which is what enables such systems to respond to circumstances on the basis of “principles” rather than process models.
So given this amazing “reasoning” capability, why not use CEP for everything? Because BPM’s predictability and clarity are among its greatest virtues. Having sat with customers and sketched out their business processes on many whiteboards, I would not relish attempting the same exercise by “writing rules”. Rules engines are deeply enmeshed in mathematical logic, and not necessarily a natural way of thinking for many people. Also, the CEP system’s very flexibility is not an asset when you are trying to execute the exact same process a few thousand times. Your auditors (or the government’s) will likely appreciate the predictability of standard BPM.
I firmly believe there is a place in most supply chains for the application of both technologies — but what about business activity monitoring? BAM is all about seeing what is going on while there is still time to act on it (everything beyond that is more properly data-warehousing…), and that means BAM needs to have data from both BPM and CEP. “Talking” to BPM systems will let your business monitoring tell you what is going on in terms of the “plan” (on target, delayed, in error, etc) and the micro level, while CEP provides information on the unplanned and the macro level. Basically, even if you are using a BAM solution that is a component of a BPM or CEP suite, it had better be hooked up to the rest of the world…
