Wednesday, January 27, 2010

Event Processing and Process Management

I am of the opinion that we in the software industry as obsessed, yet fickle, about acronyms... We insist on coining acronyms, yet we tire of them easily and introduce new acronyms that (almost) mean what the old ones did.  Must be something in our genetic makeup...

If you are acronym obsessed - today's topic relates to CEP and BPM.  Both relate to Business. The former is all about "Event Processing" and the latter is all about "Process Management".  They are very closely related.

Event Processing is conceptually really simple:  When X happens, do Y.
Process Management is also conceptually really simple: Perform these Activities in this order.

In reality, Process Management is Event Processing:
  1. When the Process Starts, do Activity One
  2. When Activity One completes, do Activity Two
  3. etc. etc. etc.
The primary difference between a CEP system and a BPM system lies in defining relationships between events.  In a BPMN diagram we define a flow of events - an order in which we expect those events to occur.  For example, Activity One always comes first in a process instance... It's completion triggers the start of Activity Two.  We're diagramming the expected sequence of events.

Truth be told, all real BPM solutions have to include a bit of CEP because real business processes must always take into account "out of band" events.  For example, an "Order" can be cancelled at any step of the "Order Fulfillment Process". When an Order is canceled, we need to perform some cleanup steps.  Based on where we were in the process, we may need to perform different cleanup steps.

We certainly would not want to "mess up" a nice clean BPMN diagram by adding a "Cancel Order" handler to each Activity, but we do have to deal with this eventuality or our solution isn't worth spit.  In general we will model an "Order Cancelled" sub-process - which is kicked off by a "Cancel Order" event.  Sounds kind of like "Complex Event Processing", doesn't it?

Acronyms and cache phrases are great... but they are highly overrated.  When you are building a Process solution for a Business, you're going to touch on CEP, BAM, Business Rules, Business Performance Monitoring, etc. etc. etc.  These are all aspects of what your Business needs to succeed, and you are going to have to deal with all of these aspects.

The challenge is to integrate all of these concepts in a manner that is comprehensible and maintainable by the Business... Your BPM solution must work (of course), but it can't be a magic trick and it can't be a black box or you haven't really met your goals. 

When it's time to modify the Process (notice that I said "when" and not "if") there will probably be a whole new crop of acronyms to confuse things - Don't let your solution get caught in that trap.

No comments:

Post a Comment