Thursday, January 22, 2015

Business Process Decomposition in My View


A business process is a set of logically ordered actions. Each of those actions is a sub-process, which means each of them is a set of logically ordered actions too. So where does the decomposition end? Two factors to consider: reusability and atomicity. If an action is partly being used by other actions, it is subjected to being further decomposed. On the other hand, if an action bears atomic conceptual integrity in the business context, which means further decomposition will make it lose the business semantics, and it has to be treated as a unit-of-work, then decomposition has to end there. It is very interesting to realize that the reusability consideration goes with a top-down mindset focusing on the process, while the atomicity consideration goes with a bottom-up mindset being object-oriented. There is a clear line between them.

What about parallelism? In my view, process decomposition should not consider much about parallelism since it is not something indigenous to the process itself but to the execution of the process. You may argue that a process is actually an execution, and when I say no consideration on execution, I actually assume a sequential single-thread execution. In fact, a process running with parallelism should be the norm because activities in a process is a partially-dependent set, which means they can be run in parallel. But the point is we can run a process sequentially and single-threaded even though logically it can be run in parallel. It depends on the facility that runs the process, not much a concern of the process per se. So, I prefer separation of process execution from process definition.

The latest technologies do promote the “divide and conquer” strategy, with that a task is partitioned and distributed to multiple processors or computers in a cluster. But generally this is about partitioning data to be processed in parallel rather than partitioning an algorithm. All partitioned data set are executed with the same algorithm in parallel. So parallelism really is not a big concern for business process decomposition.

No comments: