Blogger Tricks

14 May 2012

Business Process Execution Language for Web Services (BPEL4WS)

Business Process Execution Language (BPEL), short for Web Services Business Process Execution Language (WS-BPEL) is an OASIS standard executable language for specifying actions within business processes with web services. Processes in BPEL export and import information by using web service interfaces exclusively.

Web service interactions can be described in two ways: executable business processes and abstract business processes. 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/or process template. WS-BPEL is meant to be used to model the behavior of both Executable and Abstract Processes
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.

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