BPEL
<pageby nominor="false" comments="false"/>
Definition
Business Process Execution Language (BPEL), short for Web Services Business Process Execution Language (WS-BPEL) is an OASIS standard executable language for specifying interactions with web services (Wikipedia). As such it is part of the growing infrastructure for business process modeling.
“Web service interactions can be described in two ways. Executable business processes model actual behavior of a participant in a business interaction. Abstract business processes are partially specified processes that are not intended to be executed. An Abstract Process may hide some of the required concrete operational details. Abstract Processes serve a descriptive role, with more than one possible use case, including observable behavior and process template. WS-BPEL is meant to be used to model the behavior of both Executable and Abstract Processes.(Business Process Execution Language, retrieved jan 5 2009).”
The language
- History
According to Wikipedia (retrieved 11:14, 30 June 2010 (UTC)), IBM and Microsoft had each defined their own similar business execution languages: WSFL and XLANG XLANG. With the popularity and advent of BPML, and the growing success of BPMI.org and the open BPMS movement led by JBoss and Intalio Inc., IBM and Microsoft decided to combine these languages into a new language, BPEL4WS. In April 2003, BEA Systems, IBM, Microsoft, SAP and Siebel Systems submitted BPEL4WS 1.1 to OASIS for standardization via the Web Services BPEL Technical Committee. Although BPEL4WS appeared as both a 1.0 and 1.1 version, the OASIS WS-BPEL technical committee voted on 14 September 2004 to name their spec WS-BPEL 2.0. This change in name was done to align BPEL with other Web Service standard naming conventions which start with WS - and accounts for the significant enhancements between BPEL4WS 1.1 and WS-BPEL 2.0. If not discussing a specific version, the moniker BPEL is commonly used. In June 2007, Active Endpoints, Adobe Systems, BEA, IBM, Oracle and SAP published two extensions, i.e. BPEL4People and WS-HumanTask, which describe how human interaction in BPEL processes can be implemented.
- Principle
BPEL is an orchestration language, i.e. it defines the behavior of a single actor (participant, business unit) in terms of an execution of a business process, sequentially or not. “BPEL is used to define the coordination of a process flow as well as related semantics, including parallelism, sophisticated exception handling, data transformation, and transaction compensation facilities. [...] Asynchrony, parallelism, sophisticated exception handling, long-running processes, and a need for compensating transactions change the fundamental nature of what we think of as an application. In order to support the required executable behavior, BPEL provides constructs for control-flow (conditionals, sequencing, parallelism, loops), variables, and constructs for manipulating them; event handlers, timeouts, exceptions, and forward recovery; and nested scoping units of work.” (Process-Centric Realization of SOA, retrieved June 30 2010).
PBEL is expressed entirely in XML and uses WSDL 1.1 adding some extensions. The data model uses XML Schema. In principle a BPEL model is portable across platforms and vendors.
- Programming in the large
PBEL and associated design tools allow non-programmers to implement flows, i.e. combine functions (programmed by "real" programmers) in order to solve problems like the processing of an order in a business.
- The WS-BPEL Metamodel
Below is a metamodel, i.e. an UML diagram that describes the language (not meant for end users)
Tools
- PBEL design and execution tools
See also the links section. As of 2010 there exist many design and execution tools.
A possible solution is to use the BPEL Project designer (an eclipse module for WS-BPEL 2.0) and Apache ODE (an orchestration director engine). Read Developing, Deploying and Running a Hello World BPEL Process with the Eclipse BPEL Designer and Apache ODE. The eclipse product is still in Beta, ODE seems to be WS_BPEL compliant - Daniel K. Schneider 09:09, 1 July 2010 (UTC).
- Visual design tools
- BPMN is an example of a visual design language. Some engines can compile into PBEL, although this is not an obligation for a BPMN tool
- BPEL applied to e-science
- OMII-BPEL, OMII-BPEL brings an industrial standard, BPEL (Business Process Execution Language) to scientific workflow modeling and Grid services orchestration.
In education
Karampiperis and Sampson argued that BPEL (or rather a graphical representation language) could be used to design learning designs/ pedagogical scenarios that then can be compiled into IMS Learning Design Level A Representations.
Links
- Introductions
- Business Process Execution Language (Wikipedia)
- Brenda Michelson (2005). BPEL Primer, retrieved June 30 2010. A longer version is available here (registration needed).
- Standards
- BPEL 2.0 (OASIS standard)
- Tools
- Comparison of BPEL engines (Wikipedia)
Bibliography
- Barreto, Charlton et al. (2007). Web Services Business Process Execution Language Version 2.0 Primer, OASIS, DOC, PDF, HTML
- Karampiperis, P and D.Sampson: "Towards a Common Graphical Language for Learning Flows: Transforming BPEL to IMS Learning Design Level A Representations", in Proc. of the 7th IEEE International Conference on Advanced Learning Technologies (ICALT 2007), ISBN: 9780769529165, pp. 798-800, Niigata, Japan, IEEE Computer Society, July 2007.
- Hilderbrad, Hal, Nickolaos Kavantzas, Ashwini Surpur, Mohamad Afshar, Dave Shaffer (2004). Process-Centric Realization of SOA, BPEL Moves Into the Limelight, SOAWorld Magazine, november 5, 2004.