Wednesday, May 06, 2009

BPMN 2.0 Execution Semantics - multiple sequence flows - Opinion Poll

Dear readers (or breaders or blog-readers),
My sincere apologies as I have been away from my blog for the past 6 weeks due to a fracture in my right arm. I love to play cricket and if I get a chance to try the same catch again - I will probably go for it, unless my body has built in a subconscious reflex to not attempt it, hopefully not. Feeling much better now, even though I still need physiotherapy sessions that I hate...
The topic of todays post is really urgent and of utmost important. I seek opinion from BPMN modelers out there as to what they think of the following diagram, tool vendors are also welcome to chime in but please identify yourself to maintain the objectivity of this poll . I can assure you that it is synatctically correct as per BPMN 1.x and upcoming 2.x specification. The question I have is - ok first take a look:


The question is : How many times do you expect the activity B to execute? Further how many times to you expect X, Y, Z, C1, C2 and D to execute.

The options are:
Option1: - B should wait for both A1 & A2 to finish and then execute once. Thus B, X, Y, Z, C1, C2 and D all execute only once.

Option2: - B should NOT wait for both A1 & A2 to finish and execute everytime A1 / A2 finish. Thus B, X, Y, Z, C1, C2 all execute only twice and D will execute four times. Further if there were three branches from start event going to A1, A2 and A3 then B, X, Y, Z, C1, C2 all execute thrice and D will execute six times.

So pl go ahead and choose which option do you think is better and more usable.
I do have an opinion but I dont want to share it now to prevent any prejudice. Please express your viewpoint here.

Tuesday, March 17, 2009

Three cups of tea

If there was one thing I was to recommend in a whole year, even a decade, - I would say read "Three Cups of tea". For the past few days, despite personal commitments I have stayed up until 4 AM to, finish this book, - no to soak in this most amazing journey of our times. In the midst of us is a Gandhi, a MLK and I owe it to my eight year old for the wonderful opportunity of a lifetime to be able to meet this gentle giant - Greg Mortenson. I wonder what I would do if I get to meet him again - having read his book and known him better. Probably he deserves that his feet be washed and the water be cherished... - an ancient hindu way to honor the sage that he is.
Now what is it that has offset this chant of worship. Well - go to http://www.threecupsoftea.com or http://www.penniesforpeace.org to see what mountains Greg has moved in the past decade or so. His sole mission is to educate the kids of farway Pakistan and Afghanistan. He believes education is the only way to end the violence, mistrust and hatered that has been built into our very pysche.
Personally, I have decided one thing - I will donate my time, money and energy to support Greg and other projects similar to his. I hope to see him and his work acknowledged with a noble peace prize within the next 3 years.

Tuesday, February 24, 2009

Abstract = Public? => Non executable

I am trying to understand what an abstract BPMN process means. Honestly, I think this is a much overused of not abused term. It could mean an abstraction of the process definition, or it could mean a parent process which is detailed out in a child process, or an externally visible process interface or may be a combination of these. e.g. an abstract process might be EMployee onboarding process which inturn may be actually be subdivided into multiple smaller processes.
A public process is one that is visible to external world. It may call internal processes and services but is shared with the external world. e.g. the process of buying an item on ebay is very much an example of public process.
So does public process have to be non -executable? If I see the example of buying items on ebay - it is executed by a system - thus it is executable. In my opinion public vs private is orthogonal to executable vs non executable.
Going back to abstract processes - well since different backgrounds lead to different interpretations of abstract process, I would rather break this monolith into two specific terms Public/Private and Executable / Non executable. Now executable does not mean ready to execute. Every tool vendor will have a set of vaidations to run besides the standard XSD validations. Today's business user is not in an ivory tower to make that decision without consulting with process analysts / IT experts. Before the process goes into production, it will go thru its lifecycle of dev - test - stage - production and may move from a ready to execute to a non ready state multiple times during this lifecycle.
Let me know what you the people in real world see these types of processes as and feel free to correct me!

Tuesday, February 03, 2009

Interesting Research - Michele Chinosi

I normally do not discuss individual efforts on my blog but found this one compelling. I met Michele last year at the BPM 2008 conference and subsequently we interacted over email and phone several times. Since then he completed his PhD and I find some very interesting areas that he has touched upon. There is one caveat that a large part of his work started with BPMN 1.0 & BPMN 1.1 as the starting point. The highlights are:
a model for BPs;
an XML serialization of such model;
a BP design methodology and business process diagrams views.

The model is labeled 'conceptual' because it was not sufficiently formalized to be considered a complete meta-model. The need to formalize the model is rudimentary because of the forthcoming BPMN 2.0 standard. One of the strengths of this approach is that it is a self-validating XML serialization of BPMN1.1. This means that it is possible to natively check the syntax of a diagram, all the BPMN 1.1 structural semantics rules and most of the behavioral semantics rules. That is, we can check quite all the rules provided by BPMN 1.1 specifications which could be checked without a simulation or an execution of the process (for instance, we can check if a process has loops, but we can not check whether those loops are infinite loops). So, it is a simple but powerful enough model to describe all the relevant features of BPs. The concept of views applied to BPs is another outcome which is a first preliminary result. Views permit the users also to investigate several applications, in particular to define end users policies.

For more information about his research please visit the URL : http://www.dicom.uninsubria.it/~michele.chinosi/"

Thursday, January 08, 2009

BPMN and BPEL

As I alluded in my earlier post , the BPMN 1.1 version lacked a serialization format and clear execution semantics. However, the BPMN 2.0 attempts to close this gap. Further the execution semantics of BPMN 2.0 leverage and build upon the industry adoption of BPM tools, experience with BPEL execution and research efforts of the wider community. There has been some debate around the relationship of BPMN and BPEL and it is captured on Ismael's blog. BPMN vendors bring valuable experience from BPEL standard, execution engines built around it and market experience to the table and it reflects in the specification also. The BPMN 2.0 specification team further clarifies the relationship between BPMN and BPEL in the InfoQ interview.

If I rephrase Manoj's response, currently i.e. until OMG ratifies the BPMN 2.0 spec, BPMN is a modeling standard and BPEL is an execution standard. Both are complementary in that regard and many BPMN models may be executed as BPEL processes. As BPMN 2.0 defines sufficient execution semantics, the implementation engines may start executing BPMN 2.0 natively, creating an overlap with BPEL 2.0. There will be significant consistency between the two from this perspective. Further, there will be different use cases for which the two approaches - BPMN models executed as BPEL and native BPMN execution - will be better suited.
PS: Standard disclaimer: The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.