Business Process Execution Language
From Wikipedia, the free encyclopedia
Categories: All articles with unsourced statements | Articles with unsourced statements since January 2008 | XML-based standards | Specification languages | Web service specifications | Workflow technology | Process management
|
As defined in the abstract of the Web Services Business Process Execution Language OASIS Standard WS-BPEL 2.0, WS-BPEL (or BPEL for short) is a language for specifying business process behavior based on Web Services. Processes in WS-BPEL export and import functionality by using Web Service interfaces exclusively. Business processes 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. WS-BPEL provides a language for the specification of Executable and Abstract business processes. By doing so, it extends the Web Services interaction model and enables it to support business transactions. WS-BPEL defines an interoperable integration model that should facilitate the expansion of automated process integration in both the intra-corporate and the business-to-business spaces. The origins of BPEL can be traced to WSFL and XLANG. It is serialized in XML and aims 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.
PurposeProgramming in the large generally refers to the high-level state transition interactions of a process—BPEL refers to this concept as an Abstract Process. A BPEL Abstract Process 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, when to compensate for failed transactions, etc. 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. BPEL's development came out of the notion that programming in the large and programming in the small required different types of languages. BPEL Design GoalsThere were ten original design goals associated with BPEL:
The BPEL languageBPEL is an Orchestration language, not a choreography language (see Web Service Choreography). The primary difference between orchestration and choreography is executability and control. An orchestration specifies an executable process that involves message exchanges with other systems, such that the message exchange sequences are controlled by the orchestration designer. A choreography specifies a protocol for peer-to-peer interactions, defining, e.g., the legal sequences of messages exchanged with the purpose of guaranteeing interoperability. Such a protocol is not directly executable, as it allows many different realizations (processes that comply with it). A choreography can be realized by writing an orchestration (e.g. in the form of a BPEL process) for each peer involved in it. The orchestration and the choreography distinctions are based on analogies: orchestration refers to the central control (by the conductor) of the behavior of a distributed system (the orchestra consisting of many players), while choreography refers to a distributed system (the dancing team) without centralized control. BPEL's focus on modern business processes, plus the histories of WSFL and XLANG, led BPEL to adopt web services as its external communication mechanism. Thus BPEL's messaging facilities depend on the use of the Web Services Description Language (WSDL) 1.1 to describe outgoing and incoming messages. In addition to providing facilities to enable sending and receiving messages, the BPEL programming language also supports:
What's new in WS-BPEL 2.0?
Adding 'programming in the small' support to BPELBPEL's control structures such as 'if-then-elseif-else' and 'while' as well as its variable manipulation facilities depend on the use of 'programming in the small' languages to provide logic. All BPEL implementations must support XPath 1.0 as a default language. But the design of BPEL envisages extensibility so that systems builders can use other languages as well. BPELJ is an effort related to JSR 207 that may enable Java to function as a 'programming in the small' language within BPEL. HistoryIBM and Microsoft had each defined their own, fairly similar, 'programming in the large' languages, WSFL and XLANG, respectively. With the popularity and advent of BPML, and the growing success of BPMI.org and the open BPMS movement led by 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 you are not discussing a specific version, BPEL is sufficient. In June 2007, Active Endpoints, Adobe, BEA, IBM, Oracle and SAP published the BPEL4People and WS-HumanTask specifications, which describe how human interaction in BPEL processes can be implemented. There is growing controversy over the direction of BPEL development. The need to add semantics to BPEL, in the form of WS-HumanTask, etc., only serves to highlight the fact that BPEL was never a complete language. Indeed, in practical application, there is nearly always the need to extend the language with other programming tools. This contrasts with BPML. In BPML, being a complete language, additional semantics could be implemented as processes, in BPML, rather than adding new 'tags' to the XML as is needed in order to extend BPEL. Therefore, end users of so-called BPEL-compliant products have to be careful about which version of BPEL is claimed by vendors. A BPEL-compliant product cannot necessarily implement any business process in BPEL alone. The implications of this only become apparent in practice. An analogy is having a computer programming language in which it is not possible to complete the code because of missing operators. Relationship of BPEL to BPMNThere is no standard graphical notation for WS-BPEL, as the OASIS technical committee decided this was out of scope. Some vendors have invented their own notations. These notations take advantage of the fact that most constructs in BPEL are block-structured (e.g. sequence, while, pick, scope, etc.) This feature enables a direct visual representation of BPEL process descriptions in the form of structograms, in a style reminiscent of a Nassi-Shneiderman diagram. Others have proposed to use a substantially different business process modeling language, namely Business Process Modeling Notation (BPMN), as a graphical front-end to capture BPEL process descriptions. As an illustration of the feasibility of this approach, the BPMN specification includes an informal and partial mapping from BPMN to BPEL 1.1. A more detailed mapping of BPMN to BPEL has been implemented in a number of tools, including an open-source tool known as BPMN2BPEL. However, the development of these tools has exposed fundamental differences between BPMN and BPEL, which make it very difficult, and in some cases impossible, to generate human-readable BPEL code from BPMN models. Even more difficult is the problem of BPMN-to-BPEL round-trip engineering: generating BPEL code from BPMN diagrams and maintaining the original BPMN model and the generated BPEL code synchronized, in the sense that any modification to one is propagated to the other. Dissenting view about BPELBusiness Process Execution Language (or BPEL), is a process specification language that is executable. However, BPEL omits certain process constructs. Therefore it is not possible, in BPEL, to express all conceivable business processes. For this reason, BPEL is often used in conjunction with programming languages, for example Java, or extended by the proprietary scripting languages inherent to commercial implementations of workflow or integration broker engines. The origins of BPEL can be traced to WSFL and XLANG. It is serialized in XML and aims 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. BPEL was developed, by IBM and Microsoft, to compete with an earlier language, BPML, developed by BPMI.org (Business Process Management Initiative). The reasons are debated, but the likely cause was personalities in the various camps who could not reach agreement on details. Unlike BPEL whose roots were in workflow theory, BPML was inspired by the Pi calculus. This afforded, to BPML, a complete and formalized semantic. Powerful implementations were emerging in the marketplace, and this worried IBM and Microsoft who needed control of the standards governing the development of their application servers.[citation needed] Today, the differences between BPEL and BPML in the past are largely academic. BPEL syntax won out. BPML semantics won out. The power of IBM and Microsoft carried the day with the name BPEL. BPEL is evolving slowly into BPML. This is inevitable, since BPML was formally complete. See also
Standards
BPEL and business process sites
BPEL articles
de:Business Process Execution Language es:BPEL fr:Business Process Execution Language it:BPEL hu:BPEL ja:BPEL pl:Business Process Execution Language ru:BPEL sv:Business Process Execution Language |


