Business Process Modeling and Management

Posted on Tuesday, March 13, 2007 10:45 PM

I recently attended the Microsoft Architect Insight conference in Wales where I gave a presentation on SOA. One of my ex-colleagues (Dr Andrew Rivers) gave a presentation on Business Process Management with a particular focus on Microsoft BizTalk Server and it just got me thinking...

One thing I have noticed is that the Microsoft don't have their own business process modeling & simulation tool. Other vendors in this space often boast about theirs. Although these tools are very useful in the analysis and design phases, and in later iterations, it occurred to me that none I have seen attempt to go to the next level.

At University, on my engineering course, I remember grappling with a couple of relevant concepts; namely Finite Element Analysis and Dead Beat Control. The first is a system for modeling complex systems (in my case it was mainly for modeling compressible flow) and the second is also a system of describing feed back loops to control systems. One to model behaviour and one to control behaviour.

So, for example, if we could model the basic dynamics of a car we could describe how more power translates to greater speed. However, we could improve the model to describe how, as the car went faster, rolling resistance increases in a certain way, wind resistance increases exponentially, engine efficiency varies across the range of RPM and so on. If we could model this we would see that as we increased power output of the engine through throttle position and gears the car would accelerate very well initially, then blip as a gear change was required, and then continue on a slightly gentler curve. Eventually the resistances will have increased to a point where they match the total output of the engine and acceleration will cease. In fact as the car then reaches a hill the forces would in fact cause deceleration. Etc. etc.

Dead beat control on the other hand is more akin to the cruise control on a car. It takes all sorts of inputs and a control model to determine how much throttle or resistance to apply to achieve the correct speed. Notice how good cruise control does not use constant acceleration to reach the desired speed and then, as it flies past it, issue powerful braking forces to bring it back, only to miss the desired speed again and then apply the accelerator and so on. Other examples include the chemical systems of the body attempting to keep blood sugar level in homeostasis without violent deviation. Perfect control will reach the required level very quickly without some form of damped oscillation around this level.

Now, if we could model a business process, its feedback loops, bottlenecks, constraints, inputs, outputs, variables we could use this to understand how the business process will behave given the data we could have available. Deploy this model into your Business Process Management system and wire it up to all the right telemetry as input and all the right activators (to control the system) and you'd have a Business Process Model-Managed system. Such a system could assist in leveling the schedule in a supply chain or deploying just the right amount of resources to an operation in response to incoming orders etc. A business process autopilot.

One place where we are already starting to see this is Health Modeling. Systems are instrumented via SNMP, WMI, Event Logs etc. The health model receives this input and resutls in transitions in the state machine (health model) to a new state (reduced service, failed service etc.) and then via scripted responses attempts to correct the system. Sometimes it is all 100% automated and sometimes it signals human intervention because the system is too complex (or uneconomical) to be modeled.

Current BPM systems really rely today on that human intervention. Business Activity Monitoring systems are the business telemetry that is visualised on a dashboard of KPIs (scorecards etc.), business managers then perform the modeling of the system and signal the response to correct the system - they then watch all the lag indicators and speculate on trends and issue more corrections. If we could begin to model more and more of this behaviour using next generation Business Process Modeling tools we could make them a runtime operational component of the system: tying up business telemetry (BAM) to the system controls for autonomation.

How far can we take business rules engines? What about AI? What about Finite Element Analysis? What about Windows Workflow Foundation state machine workflows? We don't have to boil the ocean but clearly we can make BAM do more than just let business managers know what is going on!