Vishal Saxena, formerly lead BPMS developer at Oracle and Intalio and a member of the BPMN 2.0 technical committee in OMG, today showed me a demo from his new company Roubroo. The interesting thing to me about Roubroo is the ease of modifying process definitions at runtime, either on a single instance or a set of instances, while strictly observing the semantics and rules of BPMN 2.0. Difficulty with ad-hoc behavior is one of the biggest objections some users have about BPMN 2.0. You shouldn’t really have to give up ad-hoc processes to use BPMN 2.0 (or vice versa), and Roubroo is a good example of how to marry the two. Consider the diagram below of a loan origination process. (Note: I would call the merge of parallel flows into Submit All Documents incorrect, a ‘multimerge’, but Vishal claims a join is implied. We can agree to disagree on that; it is not that important to my point.)
This diagram is a runtime view of a particular instance. The yellow border around Citizenship Status (and other tasks) means ‘completed’. The red borders around Property Inspection and Notarize Docs means ‘in progress’. Let’s say at Submit All Documents the user realizes that for this instance, there should have been a Criminal Check in addition to the Citizenship Status check, and also a new future step is required, Archive Docs. Roubroo can define and add those steps to the running instance, and inject a “token” back to the Criminal Check step – which actually comes before the current location of the token.
What happens under the covers is Roubroo creates a new version of the process definition and migrates the current instance, but the end user doesn’t need to see all that. The backward token injection (while retaining all of the downstream token processing requirements of the BPMN 2.0 spec) is the hard part. The UI for making these ad hoc changes seamless to the runtime end user (while guarding against end users doing damage to the process definition) still has some rough edges, but it does show a way to incorporate ad hoc activities and rework steps into executable BPMN 2.0. Roubroo is not a complete BPMS. It just provides the “Token Flow Engine” and associated tools for process design and runtime monitoring, working with partners to round out the solution. An interesting start for a new BPM company.
Hi Bruce,
Thanks for your kind words. Here is a quick list of features some of which we could not cover in detail:
BPMN 2.0 Process Modeler
Native BPMN 2.0 Engine
Process Administration Console
Process Debugger
Forms Designer
Reporting
User Task Console
Instance Management
SalesForce Connector
WebServices Connector
REST Connector
Java API Connector
Here is a URL to the
set of features: http://prezi.com/2o_axrud4oxl/copy-of-product-features/
We are working with partners for portal and CMS integration.
Hello Vishal.
Can you please explain the state of the process instance before ad-hoc changes is made in the process definition? Assuming that Submit All Documents acts as simple uncontrolled merge, it must be activated first time after Citizenship Status was completed, and second time after N… Docs completed.
Is that activity (Submit All Documents) runs as OR-Join in this context and why?
Is the backward token injection plays in conjunction with that “hidden” OR-Join, so Submit All Documents and Verify Documents expected to be executed once, regardless of backward (third) token injection?
Best Regards, Egor Ivanov
[…] https://www.methodandstyle.com/2012/08/13/startup-roubroo-adds-adds-ad-hoc-behavior-to-bpmn-2-0/ Vind ik leuk:LikeBe the first to like this. […]
Thanks Egor,
The default join semantics “without a gateway” was a question of prolonged debate and I agree that it is better to put an IOR gateway ahead of “Submit All Documents”. If we go down the XOR semantics then, not only submit all documents but all subsequent activities will get activated twice. More on this issue in my old blog post here: http://vishals.blogspot.com/2009/05/bpmn-execution-multiple-sequence-flows.html
Interesting question, Vishal!
I came to the conclusion that the ONLY merge semantics needed is OR-join, especially in acyclic diagrams, assuming AND-split (parallel) and XOR-split (exclusive) are extremes of OR-split. So, OR-Join is a first candidate to be default merge behavior.
But BPMN says the opposite.
Exactly my point Egor! And Roubroo has been built to support both options ! The one compliant with your conclusion and also the specification with the flip of a configuration parameter.
Being on the execution semantics team at OMG, gave us unique insights into business expectations but also the nuances of how complex OR semantics can get. There are a bunch of “process patterns” listed on roubroo.com under resources which highlight these scenarios.
[…] what is happening? Would we call it BPMS, Dynamic BPM, Intelligent BPM or ACM …? Check out Bruce Silver’s review of Roubroo. Filed Under: […]