Where does BPEL fit in?
The concept of a Business Process Execution Language (BPEL) has gotten considerable press recently, particularly since the OASIS publication of WS-BPEL (Web Services BPEL) in a mature version 2. BPEL lets you embody the functions of Web services, which have to cooperate to carry out a complex business task, in a standardized XML format. Let's examine some of the trends which provide the background for this idea.
Coordinating Complex Systems
Ask any expert to explain a complex system and, if there is a whiteboard handy, you will soon be looking at a diagram in which named entities are connected by lines representing processes, transactions, or transitions. In order to talk about complex systems, people just naturally prefer the spatial representation that a diagram offers. A diagram is a big help when you are trying to communicate complex relationships to people outside your immediate specialty, as I found when doing environmental impact statements.
One important feature of a diagram is the hiding of details. Thats why truly usable diagrams are relatively simple, too much detail just overwhelms and prevents clarity. The whole history of computing has been vitally concerned with hiding detail. In the early days before object-oriented programming (OOP), we built flow charts that almost tracked the code line for line. The progress that the computing community has made in figuring out how to hide details of low level processes so that more complex systems can be represented is the whole reason for the success of OOP, Web services and now SOA.
Early History of Diagramming Computer Systems
The ideas of describing business processes by diagramming goes back to the early days of object oriented software engineering. In the early 1990s there were three main methodologies, each with various champions—mostly consultants pushing their competing unique approaches. In what I thought at the time was a minor miracle, the Unified Modeling Language (UML) uniting many competing approaches, was adopted in 1997. UML is now a de-facto industry standard maintained by the Object Management Group (OMG). In contrast with BPEL, UML does provide standardized process diagramming methods.
OMG is also responsible for the Common Object Request Broker Architecture (CORBA) standard. I think it is fair to call CORBA an important precursor to SOAP and Web Services. OMG also manages the Business Process Modeling Notation (BPMN) standard for diagramming business processes at a higher level of abstraction than UML. A recent OMG development is the new Service-oriented architecture Markup Language (SoaML) standard based on UML.
Evolution of BPEL
Some early developments leading to BPEL include Microsoft's XLANG (December 2000)and IBM's Web Services Flow Language (March 2001). The intent of both was to provide process definition at a level of abstraction above that of a single Web service port. IBM then merged the concepts as BPEL4WS in 2002. Together with a number of industry heavyweights, IBM submitted version 1.1 of BPEL4WS to OASIS (Organization for the Advancement of Structured Information Standards). The 2002 version of BPEL4WS and the principles behind the specification are summarized in this IBM library publication.
The Pivotal Role of WSDL
The evolving low-level support toolkits for web services such as Apache AXIS2 have quickly zeroed in on the essential role of WSDL and XML Schema for defining to the outside world what a service does and how to talk to it. WSDL hides the details of service implementation with an abstract representation. Many tools for many computer languages can take a WSDL description and automatically create client side code. The WSDL version 1.1 (2001) as published by the W3C tries for a level of abstraction suitable for general use and explicitly allows for extensions. WSDL version 2.0 offers better support for REST-style Web services and is a formal W3C-recommended standard (2007), however it is not yet widely supported in tools.
OASIS BPEL 2.0
The OASIS non-profit industry group took over standardization and has released version 2.0. OASIS describes BPEL succinctly as "a language for specifying business process behavior based on Web services." You might say that BPEL lets you "orchestrate" interactions between Web services by defining the roles each service performs and the communication between services. This OASIS tutorial gives a history of develoment and examples of WS-BPEL 2.0 XML.
WS-BPEL version 2.0 relies heavily on an extended version of WSDL 1.1 using XML schema 1.0 to define data types. OASIS uses the acronym WS-BPEL to emphasize the interrelated nature of all of the WS-* standards. In the typical picture of a services "stack," BPEL sits on top where it works through the WSDL descriptions of services which are, at lower levels, conducted by messaging and communication protocols such as SOAP.
The WSDL extensions are needed to support long-running asynchronous processes. Recall that SOAP by itself is essentially a stateless protocol, so any process that requires continuity between messages and extended conversations between components requires extra definitions. Rather than define a replacement for WSDL, the architects have chosen to extend it. Ease of extension is of course one of the great advantages of XML.
OASIS has not attempted to tie BPEL to any particular process diagramming school, thus avoiding the notation squabbles which infested early OOP and contrasting with UML. Naturally, anybody trying to describe services orchestrated with BPEL ends up using diagramming extensively in the documentation. There are still many process description and diagramming schools of thought.
A BPEL Engine
The Apache Software foundation hosts a project called the Orchestration Director Engine (ODE). This Java-based program handles execution of business processes defined in WS-BPEL notation. ODE compiles a BPEL document plus the referenced WSDL documents into "compiled process definitions" usable by the ODE runtime engine. The project provides runtime components capable of standalone operation in a servlet container or integration into larger Java programs.
ODE claims to be largely compliant with WS-BPEL 2.0. The developers added "extensions" to the standard to handle situations not covered by the specification but found necessary to cover the programming details as revealed by the building of the compiler, such integrating RESTful services. Thus ODE is well ahead of WS-BPEL in embracing modern REST concepts.
Competing Concepts and Implementations
If your business description needs do not seem to fit BPEL, perhaps one of the following could do the trick:
- Business Process Modeling Notation: The Object Management Group is actively developing this standard, with version 2.0 in beta. This standard specifies a complete graphical notation for diagramming processes. BPMN is supported in 61 commercial and open source implementations with varying levels of support for turning diagrams into code.
- XML pipelines: The pipeline processing style could be what you need if XML data transformation is required. The W3C has a (hopefully final) draft of XProc, a language for describing operations in XML Pipelines and several open source implementaions exist.
- Workflow Engines: This Wikipedia article describes the principles of workflow engines and contrasts workflow with BPEL. This review found ten separate Java workflow engines worthy of consideration.
- Enterprise Service Bus: ESB-style software architecture coordinates multiple processes by means of a standard messaging system and is thus related to pipelines and workflow. See the ESB tutorial for more.
I found the field of defining business processes to support coordination of large scale enterprises to be in ferment. Many similar concepts and standards are competing in the business process control arena and it is anybody's guess whether BPEL will come out on top or simply be part of the pack. Even though BPEL is based on standards such as WSDL, "extensions" and "improvements" make it hard for toolkit makers to keep up. Because WS-BPEL is tied to WSDL 1.1, designers pursuing a RESTful style architecture may not find it much use.
Article on a pioneer in environmental model diagraming, H.T.Odum: In my opinion developers attempting to coordinate business processes have much to learn from natural ecosystems.
A simple example of BPEL4WS: Note the extensive use of diagrams to explain the flow.
The Workflow Management Coalition publishes Business Process Management and Workflow standards and case studies.
Many OASIS standards are related to web services.
The OMG publishes a wealth of information on Business Process Modeling Notation (BPMN)
SoaML can be viewed in this proprietary example.
ODEis theApache Software Foundation's open source BPEL Engine.
For WSDL 2.0 documentation at the W3C, start here.