BPEL - The Business Process Execution Language

What is BPEL?

BPEL is an XML-based grammar for describing the logic to coordinate and control web services in a business process. The roots of BPEL began in December of 2000, when Microsoft published XLANG. This was followed in March of 2001 when IBM published the Web Services Flow Language or WSFL.

BPEL itself was first released in July of 2002, as BPEL 1.0. BPEL 1.0 merged the flat-graph process definition approach and the structural constructs approach of the previous languages into BPEL 1.0. In May of 2003, BPEL v1.1 was released with a set of revisions, and that was the version of the specification that was submitted to the OASIS organization.

OASIS standardized the language in April of 2007 and it is now known as formally as WS-BPEL 2.0.

Why do we need BPEL?

So, why was the new language created? Why do we even need BPEL? BPEL provides:
  • Support for web services relationships and interactions that are engaged in both short- and long-term business transactions. BPEL provides the foundation for automating business processes.
  • Message exchange correlation for long running message exchanges, not just over a minute or two, but over days, weeks or months. BPEL provides industry-standard support for processes that require very long time periods to complete.
  • Implementation for the parallel processing of activities, which permits the execution of non-dependent actions concurrently to improve process performance.
  • For the mapping of data between partner interactions, so it is possible, for example, to take the result from one web service and use it to invoke another web service.
  • The BPEL standard provides consistent exception and recovery handling for deployed business processes.

BPEL Benefits

Some of the benefits of using BPEL include:
  • BPEL is SOA (Service Oriented Architecture) compliant, meaning that it is based on web services, which are the set of protocols by which such services can be published, discovered and used in a technology neutral, standard form.
  • BPEL allows us to leverage existing standards and skill sets, all in a common language.
  • BPEL deployed orchestrations are web services themselves, and therefore fit naturally into the existing Web Services stack.
  • BPEL is expressed entirely in XML, uses and extends the WSDL 1.1 definitions and uses XML Schema 1.0 for the data model.
  • BPEL is platform and vendor agnostic, and so a BPEL process will run on any engine that is BPEL-compliant.
  • BPEL processes are interoperable between and among existing/running web services because they are themselves web services.

Click to take a screenshot tour of a BPMN designer that executes models as native BPEL 2.0