There are five major business process definition languages being specified
today.
The meta model of each language vary quite a bit from one specification to
another. BMPL, XLANG and WSFL are all relying on the concept of Web Services.
They also clearly define a data flow (as XML documents), a control flow (block
structured or transition based), a message flow (web services) and transaction
flow. However, they do not spend much time on specifying how users may interact
with a BPMS. The WfMC has mostly focused on that problem in the past (see
"user friendly" column below). On the other hand, the WfMC
specification does not support a real message flow and only a very limited data
flow (process variables). The following table summarizes the differences between
each data model. (Please note that I do not have the UML 2.0 data points yet)
Note that Stefan
Haberl provides another view of this matrix which I like better.
| Specification |
Control flow |
Data flow |
Message flow |
Transaction |
"EAI friendly" |
"B2B friendly" |
"User friendly" |
| BPML 1.0 |
Block structured |
XML |
Web services & Global model |
yes |
no |
no |
no |
| BPML 0,4 |
Block structured |
XML |
Web services |
yes |
yes |
no |
no |
| XLANG |
Block structured |
XML |
Web services & Contracts |
yes |
no |
no |
no |
| WSFL |
Transitions |
XML |
Web services & Global model |
yes |
no |
no |
no |
| BPEL4WS |
Block structured |
XML |
Web services |
yes |
yes |
kind of |
no |
| EDOC |
Event/Notification |
Entities |
Events |
no |
yes |
yes |
no |
| XPDL |
Transitions |
Process variables |
Nested and chained processes |
no |
no |
no |
yes |
| UML 2.0 |
Transitions |
Transitions and data buffers |
collaboration model |
no |
? |
? |
? |
This table makes it pretty clear: the foundations of a modern BPMS are XML
and Web Services and I totally agree with this. However, this is far from
enough.
I have added "B2B EAI and User friendly" columns to measure how
serious each specification is in dealing with the 3
main axes of a BPMS. As you can see, none of the new generation of PML is
taking into account user interactions, though they are essential to resolve
business process exceptions. None of them is considering ebXML (or B2B
semantics) as a first class citizen though they all claim that the main
justification for BPMS is to handle and process the flow of business messages
comes into an organization every day. Lastly, only BPML has a few semantics
(produce and consume) which come close of those needed for enterprise
application integration.
One of the role of this web site is to pin point these discrepancies, and
stimulate each consortium to complete their metamodel. Will all PML
specification converge? unfortunately, I think the answer is no. There are
schools of thoughts (e.g. block structured versus transition based) as well as
specific requirements (e.g. transactions) which will prevent the convergence. I
do hope that there are some level of convergence at the "layers" of a
PML: control, data, message, transaction flows. This will make the exchange of
business process definitions easier, as well as enable the concept of libraries
of business processes (IE5.0 only).
Here is a pointer to an article from web services architecture that compares
and constrats BPML, WSFl, Xlang and BPSS.