BPEL: Difference between revisions
m (→Links) |
m (→Links) |
||
Line 106: | Line 106: | ||
* [http://www.oracle.com/technology/pub/articles/matjaz_bpel2.html A Hands-on Introduction to BPEL, Part 2: Advanced BPEL] by Matjaz B. Juri, Oracle, undated, retrieved July 2010. | * [http://www.oracle.com/technology/pub/articles/matjaz_bpel2.html A Hands-on Introduction to BPEL, Part 2: Advanced BPEL] by Matjaz B. Juri, Oracle, undated, retrieved July 2010. | ||
* Matjaz B. Juric, (2004) Business Process Execution Language for Web Services (Packt Publishing), ISBN 1904811183 | * Matjaz B. Juric, (2004) Business Process Execution Language for Web Services (Packt Publishing), ISBN 1904811183 | ||
* Charlton Barreto (2003, +). [http://charltonb.typepad.com/weblog/2003/08/what_is_bpel4ws.html What is BPEL?] plus several followups, e.g. [http://charltonb.typepad.com/weblog/2003/08/in_order_to_dem.html BPEL - Creating a simple process »] | |||
; Discussion | ; Discussion |
Revision as of 14:40, 26 July 2010
<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 and the foundation for the process modeling language is the Pi calculus (Milner, 1999). 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)
- Organization and structure of a PBEL process
“A BPEL Process is a container where you can declare relationships to external partners, declarations for process data, handlers for various purposes and, most importantly, the activities to be executed.” (BPEL v2.0 Primer, retrieved 11:13, 1 July 2010 (UTC)).
Below is an outline of a simple process structure that can be found in BPEL v2.0 Primer
<process name="purchaseOrderProcess" ...
xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
<partnerLinks>
<partnerLink name="purchasing" partnerLinkType="lns:purchasingLT"
myRole="purchaseService" />
...
</partnerLinks>
<sequence>
<receive partnerLink="purchasing"
operation="sendPurchaseOrder"
variable="PO"
createInstance="yes" />
<flow>
... shipping, invoicing and scheduling ...
</flow>
<invoke partnerLink="purchasing"
operation="returnInvoice"
inputVariable="invoice" />
</sequence>
</process>
As you can see the root element of a BPEL 2.0 file is process.
- partnerLinks provide links to web services)
- variables define global variables, i.e. will hold the data that constitute the state of a business process during runtime)
- scope allows to define subcontexts (i.e. define partners, data, etc. locally)
There exist several basic types of activities that consume or provide messages to web service partners:
- receive, receiving messages from an external partner
- reply, used in conjunction with the receive activity it allows to return data to the caller
- invoke is used to call a web service provided by a partner.
Other activities
- assign is used to copy data received to variables
The process logic can be structured in with several elements
- sequence (sequential order)
- if-else (conditional branching)
- while (repetitions)
- repeatUntil (repetitions)
- forEach (iterate N times over a sequence of activities)
- flow (execution of activities in pararell, links allow for synchronization)
- pick
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.
Since BPEL was rather designed to implemented the orchestration of computerized processes, the potential of BPEL for modeling pedagogical scenarios is probably not that interesting. BPMN 2.0 might be a much better candidate we believe - Daniel K. Schneider 11:17, 1 July 2010 (UTC)
Links
- Introductions
- Business Process Execution Language (Wikipedia)
- Brenda Michelson (2005). BPEL Primer, retrieved June 30 2010. A longer version is available here (registration needed).
- A Hands-on Introduction to BPEL by by Matjaz B. Juric, undated, retrieved July 2010.
- A Hands-on Introduction to BPEL, Part 2: Advanced BPEL by Matjaz B. Juri, Oracle, undated, retrieved July 2010.
- Matjaz B. Juric, (2004) Business Process Execution Language for Web Services (Packt Publishing), ISBN 1904811183
- Charlton Barreto (2003, +). What is BPEL? plus several followups, e.g. BPEL - Creating a simple process »
- Discussion
- 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.
- Milner, Robin (1999). Communicating and Mobile Systems: the Pi-Calculus, Cambridge Univ. Press, ISBN 0-521-65869-1