Update: 1/22/2008
BPML is a specification that has been deprecated and has moved to
the OMG. It is being worked upon as
BPDL
I have written recently an article that
explains my position on Business Process Execution standard that
you might be interested to read.
I also started to work on the specification of a process centric,
service oriented, model driven programming model called
wsper that relies on
I have decided to discontinue analysis relative to BPML. Last month, even
SAP, once a strong supporter of BPML has announced
that it will support BPEL4WS:
"SAP will base the BPM technology on an emerging
standard, Business Process Execution Language for Web Services. In the past, the
company considered using Business Process Modeling Language in its business
process technology stack."
My last commentary on the subject can be found below. I have also written
analyses on prior versions of the spec available on the left end side menu.
12/2002
BPML came in 3 flavors in 2002: BPML 0.4,
BPML
1.0 (June Version) and BPML 1.0 "final Draft" (November 02) which
I comment here. This
analysis builds on the analysis of the June version. You may also want to read
about BPMN 0.9 (as in notation), a sister specification
to BPML 1.0.
What is striking at first is the quality of this latest draft. The editorial
job is much better. It also seems clear to me that everything that was open for
further design or discussion in June has been closed or removed in order to
release the standard before the year ends (Without a standard today, BPMI would
have no chance to go on). To that extend, even the WfMC partnership seems to be
now just a
vague dream.
Another striking feature or lack thereof is WSCI. WSCI was touted last June
by Intalio as an "ebXML Killer" and a critical spec for BPML itself.
It was so critical that it has been removed. What a blow ! Can't wait until it is
finally blown away at the W3C when the WS-arch realize how bad a spec it is.
The last striking feature of BPML is that the author of the spec now claims
that BPML is about modeling "generic processes". Who knows what
generic processes are, must be a new kind of processes. Maybe it would be nice
to rename BPML as GPML. The consequence of this is that there is not a single
business semantic in BPML. In case Assaf or other people are wondering what a
business semantic is you may want to read this excellent
paper from Bob Haugen and Tony Fletcher to measure how far BPML is from the
reality. Other examples of business semantics that are needed for
expressing business processes include the ability to relate ativities/work items
to an organizational structure (users, groups, roles). This notion for instance
has been in the WfMC standard for over a decade. You can also think that it is
useful to separate the notion of activity and the service that implements that
activity in a particular context. For instance, global companies need typically
to develop common processes, but local "services" should be invoke
when it comes to calculating taxes, providing contract terms and conditions, ...
It also not uncommon for a company to have several dozen SAP systems ! It is
likely in this scenario that the same activity in a process definition will
refer to several service implementations in the different systems. BPML offer
the locator attribute which enable part of capability, however, it forces you to
either import your service hierarchy in the context of every process instance
since the service URI must be coming from a property. It is important that the
binding Activity/Service occurs outside the process definition such that service
implementations can be substituted without changing the process definition.
Writing and testing a business process is a very complex tasks. Once it is in
production, the last thing you want is change this process definition and have
to re-test everything. The business rules that relate a given activity to a pool
of services (N:M relationship) must be defined outside the process definition
itself.
Overall, the goal of a Business Process Definition language is to enable
companies to separate business logic from the code that executes it. The
"generic" approach of BPML will ultimately cause a lot of confusion on
the usefulness of BPM technologies if one can only model a tenth of a fifth of
half the business rules he/she needs to model within its business processes.
What's new (compared to the June version)?
a) The "synch" element has magically appeared such that now the
control flow of BPEL4WS and the one of BPML are relatively well aligned (though
BPMI was touting last August the BPML was already a superset of BPEL4WS).
b) The actions elements have been redesigned. These elements deal with the
message flow of the process definition and are of course critical to the ability
to define processes. This was somewhat poorly designed in the June release, it
has not changed much. The semantics defined by BPML can only deal with
"synchronous" request/response and solicit-response operations. Why
this limitation when WSDL does not have it? It is also very strange when you
consider a solicit-response operation (as a service provided by the process).
How do you actually specify the work that needs to be done in response to the
input message, in order to compute the response (output message)? This basically
means, one cannot use solicit-response operations in a process definition,
unless the output message is already computed prior to receiving the input
message. This is un-usable. BPEL4WS by contrast has found a very elegant and
simple way to deal with this. I am wondering how BPML could be a superset of
BPEL4WS which such a broken message flow?
Where are we?
What was accomplished so far by BPML is modeling the execution of a series of
"long-running" steps which can receive and send messages
asynchronously. I am not saying that this is useless. As I said several time,
this kind of code is hard to write and using this kind of concept to abstract it
out is useful. However solving this problem has nothing to do with
"BUSINESS" process. BPML is specifically designed as a better UML
activity diagram metamodel, which only purpose in life is to simplify the
development of "business components" as described in my paper.
Assaf, the only "author" of the spec, has basically circled back to
where he started in the summer of 2000: i.e. putting an XML language on top of
code concepts and operating system features, nothing more, nothing less. To that
extend, I like much better the approach of Collaxa which is not afraid to call
"a line of code" a line of code and achieve the exact same result in a
much more elegant framework than BPML.
I find it personally very disappointing and disturbing that after almost 3
years in existence BPMI has achieved what it has achieved. It is funny because
BPMI was created because WfMC was not doing much to evolve its standard in the
modern world of e-business and I could content that BPML is even behind XPDL
after 3 years of "hard" work and "aggressive" marketing!
Sorry, but no serious market (tools and engine) can emerge from this kind of
standard. So yes, Intalio's grand' pa' (Smith) and grand commander of BPMI
can tell us everything
about how "weird" this technology is (nothing else to say?
really!), Intalio's big brother, SAP, can tell us it is going to implement
BPML... I have heard that IBM is also supporting BPML. All the marketing in the
world is not going to fill the gap for what people are demanding: a framework
where they can define their process-oriented "business" logic.
They are looking amongst other things at defining and executing
"tasks" or "work items" for their users, they are looking at
linking their internal processes with B2B inter- and trans-actions... BPML, so
far, is just a better way to write code but certainly not a strong metamodel
where complex "business" rules can be expressed.
Incidentally, if you want to see for yourself the kind of marketing crap that
BPMI is capable of, please read this article.
Let me know if anyone believes what is being
said in this article.
If you are not yet convinced that BPMI/Intalio have very
"aggressive" marketing practices, you may want to read this article
"Castor
JDO: simply false advertising", by David Jordan. Note that Exolab is
the open source arm of Intalio and Assaf is also the main actor behind Castor.
It would be good to do something about the first page of the spec. This has
now been embarrassing for long enough: It says "Authors: Assaf Arkin".
So either there are more than one author of the spec in which case they should
also be acknowledged, otherwise "authors" should be singular.
Unless Assaf likes it this way.
It is also funny to see a "copyright" statement on behalf of
BPMI.org after what happened with WSCI. If BPM was not such an important
technology I would laugh about all this.
Jean-Jacques Dubray