I have a lot of sympathy with Steve’s blog item on the WS-madness:
Vendors will sometimes (inevitably) cynically use standards only for differentiation, standard bodies and the professional standard writers will do what they are paid to do: write standards. And finally end-users are too disengaged to make sure the standards solve the problems they want solved. All of which was going through my mind when I was reading the recently published BPEL4People standard: Is BPEL4People just another piece of WS-madness? (BPEL4People is an extension of WS-BPEL to handle human involvement in business process modelling and execution. BPEL is the WS specification for defining business processes.)
To answer my question, I came up with the following simple sanity test (which many WS-standards fail):
- Does it address problems that users have today or reasonably expect to have tomorrow?
- Is it the unique standard in addressing the problem? Anybody following of the web services standards around reliable messaging will remember the complete mess caused by multiple competing standards( WS-reliable messaging and WS-reliability).
- Is anybody actually going to implement it? There are too many standards both WS and previous which are never quite implemented.
In fact, BPEL has itself struggled to pass the three tests for sanity: While business processes sound all pervasive, BPEL addresses only a subset of all business processes: Those which have a central controller (i.e. not peer-to-peer collaborative processes which are covered by another standard), where the central controller is in the middleware (i.e. not controlled within your SAP application). It has also been heavily criticised by BPM specialists who prefer more formalism than BPEL attempts to provide. Therefore, it struggles to pass points 1 and 2. These limitations have meant that many users are slow to adopt BPEL and are sometimes happy to stick with non-standard approaches with better capabilities. All of which led to vendors delaying implementing BPEL for a number of years – which is point 3. (However, I believe that BPEL does now make the sanity benchmark for those who need it and on that basis would have to disagree with Steve’s exclusion of its from his sane list.)
Turning to BPEL4People, the intention of the standard is to create a “BPEL extension to address human interactions in BPEL as a first-class citizen“. To put it another way, it attempts to tie human-workflow back into the BPEL standard which is mostly used for system to system workflow (or business process flow if you prefer). This means that BPEL4People contains concepts such as human roles, groups and tasks.
Returning to my sanity tests: On the first test, BPEL4People certainly addresses a problem I have seen where some human interaction is required in a system-to-system business process. It is a subset of the set of users of BPEL itself – maybe less than 50% of all BPEL use cases.
A bigger criticism is at point 2: You could (and many have) solved the problem BPEL4People addresses with BPEL on its own. Yes BPEL4People provides standards where people made it up as they went along but it is not clear that the overhead of a new standard justifies its creation. Finally, is it going to be implemented: On the face of it, SAP, BEA, Oracle and IBM’s backing makes it a simple answer: “Yes”. We will have to see.
All of which means that for the moment BPEL4People scrapes a bare pass on the sanity test: If you are sure that your problem domain needs this type of functionality I recommend watching how implementations develop and planning on transitioning to BPEL4People when they are mature. Otherwise, you already have standards and solutions capable of muddling through with.