Web Services Business Process Execution Language
Web Services Business Process Execution Language (WS-BPEL, sometimes referred to as Business Process Execution Language or BPEL) is an XML-based language used in the specification of executable and abstract business processes. WS-BPEL enables "users to describe business process activities as Web services and define how they can be connected to accomplish specific tasks."[1]
BPEL is an orchestration language and not a choreography language. Orchestration languages specify an executable process that involves message exchanges with other systems, such that the message exchange sequences are controlled by the orchestration designer. A choreography language specifies a protocol for peer-to-peer interactions, defining for example the legal sequences of messages exchanged with the purpose of guaranteeing interoperability. Such a protocol is not directly executable; it simply allows many different processes to comply with it. Choreography can be realized by writing an orchestration for each peer involved in it.[2][3]
In addition to providing facilities to enable sending and receiving messages, the BPEL programming language was initially created to also support and/or provide[4]:
- a property-based message correlation mechanism;
- XML and WSDL typed variables;
- an extensible language plug-in model to allow writing expressions and queries in multiple languages;
- structured-programming constructs, including if-then-else, if-else, while, sequence, and flow;
- a scoping system to allow the encapsulation of logic with local variables, fault-handlers, compensation-handlers, and event-handlers; and
- serialized scopes to control concurrent access to variables.
External links
Note: Some of the links at Cover Pages may need to be run through the Internet Archive's Wayback Machine.
References
- ↑ Cover, Robin (1 July 2008). "Business Process Execution Language for Web Services (BPEL4WS)". Cover Pages. http://xml.coverpages.org/bpel4ws.html. Retrieved 19 August 2014.
- ↑ Reynolds, John (19 January 2006). "Service Orchestration vs. Service Choreography". Java.net. Oracle. https://weblogs.java.net/blog/johnreynolds/archive/2006/01/service_orchest.html. Retrieved 19 August 2014.
- ↑ Dijkman, Remco; Dumas, Marlon (2004). "Service-oriented Design: A Multi-viewpoint Approach". International Journal of Cooperative Information Systems 13 (4): 337–378. doi:10.1142/S0218843004001012. http://eprints.qut.edu.au/622/. Retrieved 19 August 2014.
- ↑ Webber, Jim; Little, Mark (August 2003). "Introducing BPEL4WS 1.0". Web Services Journal (SYS-CON Publications) 3 (8). Archived from the original on 29 August 2003. https://web.archive.org/web/20030829222907/http://www.sys-con.com/webservices/article.cfm?id=622. Retrieved 19 August 2014.