Opentopia Directory Encyclopedia Tools

Business Process Execution Language

Encyclopedia : B : BU : BUS : Business Process Execution Language


In computing, Business Process Execution Language (or BPEL, pronounced 'bipple', or 'bee-pell'), is a business process language that grew out of 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.

Purpose

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. 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 language.

BPEL Design Goals

There were ten original design goals associated with BPEL:

The BPEL language

BPEL is an orchestration language, not a choreography language. The primary difference between orchestration and choreography is scope. An orchestration model provides a larger scope, encompassing all parties and their associated interactions (e.g. a peer to peer model). A choreography model is between two participants (specifically focusing on the view of one participant).

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 BPEL

BPEL'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.

History

IBM and Microsoft had each defined their own, fairly similar, 'programming in the large' languages, WSFL and XLANG, respectively. 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 and version number reflects the significant and in many cases incompatible differences between BPEL4WS 1.1 and WS-BPEL 2.0. If you are not discussing a specific version, “BPEL” is sufficient.

There 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. An informal [mapping] from BPMN to BPEL 1.1 is also available.

See also

External links

Standards

BPEL and business process sites

BPEL articles

 


From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.

Search Titles
0123456789
ABCDEFGHIJ
KLMNOPQRST
UVWXYZ?

E-mail this article to:

Personal Message: