BPMN, XPDL, WS-BPEL, and WF-XML. These are some of the common standards we hear when discussing BPM. But what problems do they attempt to solve? This blog post gives a brief introduction into these standards for those who are new to the BPM scene.
Business Process Model and Notation (BPMN)
BPMN’s main goal is to have a visual representation for business processes so that business and technical people can:
- Easily reason about the overall process and
- Have a shared understanding about it.
BPMN defines a set of graphical elements that are used to model a business process and its collaborations with other business processes. To avoid vendor confusion on how their software should interpret BPMN elements, the recently released BPMN 2.0 standard defines precisely the execution semantics of its graphical elements, removing any chance of ambiguity. Additionally, BPMN 2.0 addresses a serious shortcoming present in its previous version. It specifies an exchange format for BPMN process diagrams so that they can be moved between different process modelling tools without losing their content or layout. Learning BPMN is a prerequisite to mastering most of today’s BPM modelling tools.
XML Process Definition Language (XPDL)
XPDL enables the portability of process diagrams across process modelling tools by representing them in XML. It has gained attention from the BPM community because it has been leveraged to serialise processes modelled in BPMN. Consequently, many BPM products offer XPDL export/import functionality for BPMN diagrams. However, since such support is now included in BPMN 2.0, XPDL’s prominence in BPM may start to falter.
Workflow Extensible Markup Language (WF-XML)
The WF-XML is the least known among these standards and its focus is on the interoperability between BPM systems (BPMS). The latest version of the standard uses a WSDL interface to expose a specific set of operations which BPMS’ use to interact with each other. This interaction occurs via SOAP messages. There was talk about including a REST interface into the standard but I was unsuccessful in finding any information on its current status.
I was shocked when I discovered the lack of support offered by vendors for WF-XML. I really hope WF-XML gains some traction as such a standard would facilitate the:
- Gradual migration of processes from one BPMS to another instead of having to port all process at once
- Creation of federated business processes, that is, creating processes which are not governed by any one single authority
- Linkage of processes at run-time rather than at design-time.
Web Services Business Process Execution Language (WS-BPEL)
WS-BPEL (a.k.a. BPEL4WS or WSBPEL), commonly referred to as just BPEL, is a standard designed for orchestrating business processes, like BPMN, albeit in a less abstract manner: BPMN is expressed visually while WS-BPEL is expressed in XML. The first thing you should know about WS-BPEL is that it is built on top of Web Services. This means that WS-BPEL depends on other standards such as XML, SOAP, WSDL, and UDDI. In WS-BPEL, a process step is accomplished through an invocation of a Web Service. Hence, a process is orchestrated via a series of Web Service calls. Moreover, the standard allows for additional logic to be incorporated into the process definition such as conditional and iterative constructs.
There is some confusion out there as to whether WS-BPEL process definitions equate to portability of processes across different process manager engines. The answer is yes BUT only if you restrict your WS-BPEL process definition to some serious constraints. The standard makes it pretty clear: “The language effectively defines a portable execution format for business processes that rely exclusively on Web Service resources and XML data”. Therefore, using WS-BPEL for the sake of portability is a bad idea if you are thinking about accessing functionality or data outside of Web Services (e.g., retrieving data from a database directly).
Now that you know what BPMN and WS-BPEL are all about, you might ask “Why is WS-BPEL needed if BPMN can offer the same thing at a higher level of abstraction?”. There is a debate raging on about the merits of having BPMN transformed to WS-BPEL before it’s executed by the process manager engine. Hopefully, this post, apart from offering some enlightenment on the subject, also gets you started on forming your own opinion.