Simple CDL
objectiser May 28, 2010 12:48 PMCurrently Savara is caught between two stages in its evolution - the first being the introduction of the "testable architecture" concept based on the only choreography description language available (i.e. WS-CDL), and the second being the application of "testable architecture" to a more widely adopted standard that now incorporates choreography (i.e. BPMN2).
The problem is that the BPMN2 standard is not yet finalized - this should happen within the next couple of weeks. However that still leaves the time delay before suitable BPMN2 modelling tools become available - and possibly even longer before open source tools are available.
Therefore its possible that WS-CDL may play a role in Savara for some time. On that basis, I think we need to consider two options:
1) Continue to use the existing WS-CDL tools as they are now, and focus efforts on either building, collaborating or waiting on an open source BPMN2 modeller. The problem with this approach is that WS-CDL is not so widely adopted, or understood, and therefore there is a learning curve in terms of understanding the concepts.
2) The other approach is to see whether WS-CDL can be simplified in such a way that makes it suitable for its role in "testable architecture", but at the same time minimises the learning curve for new users.
In terms of option (2), its possible that unnecessary constructs such as Channel and Relationship Types could be removed. Maybe we don't even need to have Participant Types explicitly defined - just have a Participant Type automatically generated per Role Type.
Other constructs that could be removed are finalizers - the semantics of the finalization mechanism are not found in any endpoint execution language (e.g. BPEL or BPMN2), and unlikely to be implemented by services implemented in general programming languages (e.g. Java).
So just wanted to explore the potential for presenting a simplified CDL editor to uses - based on filtering out unnecessary constructs - as a means of reducing the learning curve.
It will be a separate issue to determine what constructs should be hidden in this simplified view, how much work would be involved in making the changes, and whether this is a worthwhile effort compared to option (1).
Comments welcome.