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.