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."
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.
In addition to providing facilities to enable sending and receiving messages, the BPEL programming language was initially created to also support and/or provide:
- 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.
An additional aim of BPEL was to enable "programming in the large." The concepts of "programming in the large" and "programming in the small" distinguish between two aspects of writing the type of long-running asynchronous processes that one typically sees in business processes:
- Programming in the large generally refers to the high-level state transition interactions of a process; BPEL refers to this concept as an abstract process, which represents a set of publicly observable behaviors in a standardized fashion. An abstract process includes information such as when to wait for messages, when to send messages, and when to compensate for failed transactions.
- Programming in the small, in contrast, deals with short-lived programmatic behavior, often executed as a single transaction and involving access to local logic and resources such as files, databases, etc.
By March 2001, IBM and Microsoft had each already defined their own, fairly similar "programming in the large" languages: WSFL (Web Services Flow Language) and XLANG, respectively. Both companies, however, decided in July 2002 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 September 14, 2004 to name their spec "WS-BPEL 2.0." On April 12, 2007, version 2.0 of the standard was approved by OASIS. Public adoption of the new 2.0 standard was mixed, however, with some criticizing the "considerable differences to its previous 1.1 version."
In June 2007, Active Endpoints, Adobe Systems, BEA, IBM, Oracle, and SAP published the BPEL4People specification, which introduces an extension to BPEL for implementing human interaction into processes. In February 2008, OASIS created a technical committee to further examine this specification. A revised version 1.1 arrived on August 17, 2010.
Note: Some of the links at Cover Pages may need to be run through the Internet Archive's Wayback Machine.
An element or two of this article is reused from the Wikipedia article.
- ↑ Manasco, Britton (11 January 2005). "New view of BPEL". ZDNet. CBS Interactive. http://www.zdnet.com/blog/service-oriented/new-view-of-bpel/124. Retrieved 19 August 2014.
- ↑ 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.
- ↑ 6.0 6.1 6.2 Ryan, Frank (2007). "WS-BPEL 2.0" (PDF). OASIS. https://www.oasis-open.org/committees/download.php/23068/WS-BPEL%20Technical%20Overview%20for%20Developers%20and%20Architects%20-%20Part%201%20%28Frank%20Ryan%29.pdf. Retrieved 19 August 2014.
- ↑ Lawson, Stephen (3 May 2001). "WWW10: IBM readies Web services workflow proposal". InfoWorld. IDG Network. Archived from the original on 06 March 2009. https://web.archive.org/web/20090306224354/http://www.infoworld.com/articles/hn/xml/01/05/03/010503hnworkflow.html. Retrieved 19 August 2014.
- ↑ Anderson, Eric Binary (22 November 2000). "Talking in XLANG". ENT Online. 101 Communications. Archived from the original on 21 April 2001. https://web.archive.org/web/20010421152412/http://www.entmag.com/displayarticle.asp?ID=11220072307AM. Retrieved 19 August 2014.
- ↑ Krill, Paul (15 April 2003). "OASIS to get BPEL4WS jurisdiction". InfoWorld. IDG Network. Archived from the original on 24 July 2008. https://web.archive.org/web/20080724032537/http://www.infoworld.com/article/03/04/15/HNbpel_1.html. Retrieved 19 August 2014.
- ↑ "WS BPEL issues list". Choreology Ltd. 28 August 2006. Archived from the original on 21 July 2007. https://web.archive.org/web/20070721002815/http://www.choreology.com/external/WS_BPEL_issues_list.html#Issue98. Retrieved 19 August 2014.
- ↑ Cover, Robin (12 April 2007). "Members Approve Web Services Business Process Execution Language (WS-BPEL) as OASIS Standard". Cover Pages. http://xml.coverpages.org/WS-BPELv20-Standard.html. Retrieved 19 August 2014.
- ↑ McKendrick, Joe (29 September 2006). "BPEL bopped, for the umpteenth time". ZDNet. CBS Interactive. http://www.zdnet.com/blog/service-oriented/bpel-bopped-for-the-umpteenth-time/717. Retrieved 19 August 2014.
- ↑ Agrawal, Ashish; et al (June 2007). "WS-BPEL Extension for People (BPEL4People), Version 1.0" (PDF). Cover Pages. http://xml.coverpages.org/BPEL4People-V1-200706.pdf. Retrieved 19 August 2014.
- ↑ McKendrick, Joe (20 February 2008). "BPEL4People advances toward the mainstream". ZDNet. CBS Interactive. http://www.zdnet.com/blog/service-oriented/bpel4people-advances-toward-the-mainstream/1061. Retrieved 19 August 2014.
- ↑ OASIS BPEL4People TC (17 August 2010). "WS-BPEL Extension for People (BPEL4People) Specification Version 1.1". OASIS. http://docs.oasis-open.org/bpel4people/bpel4people-1.1.html. Retrieved 19 August 2014.