WS-Business Process Execution Language

from Wikipedia, the free encyclopedia

The WS-Business Process Execution Language ( BPEL ) is an XML -based language for describing business processes , the individual activities of which are implemented by web services . WS-BPEL is part of the so-called WS- * specifications as an industrial standard from OASIS .

Introduced in 2002 by IBM , BEA Systems, and Microsoft , it is used to describe orchestration of web services. The description itself is also provided in the form of a web service and can be used as such.

The abstraction by means of BPEL can be used to describe the interface of a superordinate web service that controls the web services involved in a process, for example in which order messages must arrive.

overview

The process model WS-BPEL, formerly BPEL4WS (English, acronym for BPEL for Webservices ), is based on the service model of WSDL . The standards XML Schema , XPath and WS-Addressing are also used.

The language combines the ideas of the calculus-based language XLANG from Microsoft and the graph- based language WSFL from IBM .

The aim of BPEL is to enable programming on a large scale. It should be noted that BPEL does not support direct interaction with people . BPEL processes only communicate with web services. The latter can be an interface to people, but not people themselves .

BPEL itself represents a base on which various pillars can be built. The pillars of abstract business process and executable business process are already contained in the specification itself. Other pillars are BPELJ and WS-BPEL4People .

At BPELJ, the goal is that activities themselves can also contain Java code, which speeds up the process itself, but makes it dependent on the Java programming language.

Together with SAP, IBM has published a whitepaper under the name BPEL4People , which specifies the requirements for human interaction for an extension of BPEL. In the meantime, a specification has been created based on this in cooperation with other companies, which is currently available to OASIS for standardization (as of April 2009).

BPEL masters both block-structured and graph-based modeling. With block structuring, the control flow is expressed using structured activities such as sequence , if , foreach or pick , similar to procedural programming languages. The graph-based modeling allows the control flow to be expressed via so-called transitions between the activities. These transitions can be annotated with transition conditions , which must be evaluated before a workflow machine follows the transition and navigates to the next activity. When entering the follow-up activity, a join condition can be used to determine the status of the incoming transitions in order for the activity to be executed. Cycles are not allowed. Both modeling approaches can be combined, e.g. B. when modeling is based on graphs, but local environments with local variables are to be used with the help of scopes . Error handling (Fault Handler), compensation handling (Compensation Handler) and event handling (Event Handler) can also be associated with the Scopes.

The BPEL standard itself does not define a graphic representation of the modeled processes. The Business Process Model and Notation (BPMN), which contains a description for mapping from BPMN to BPEL, is often used for this. However, the possibilities of BPMN are not exactly the same as those of BPEL. In other words, it is possible to model processes with BPMN that cannot be implemented with the help of BPEL.

Abstract and executable processes

Executable BPEL processes can be deployed on a workflow machine and can be executed by them. Abstract processes are used to describe the behavior of the process (“behavioral interface”). They are used as a view of an executable process and serve to understand the internal behavior of the process e.g. B. to hide from a business partner.

Subprocesses

BPEL itself has no sub-processes. For example, it is not always possible to terminate a subprocess when the main process is terminated. This functionality can be provided by explicit operations of a web service, but this is not prescribed by the BPEL standard.

A whitepaper was published by IBM and SAP under the name WS-BPEL 2.0 Extensions for Sub-Processes (BPEL-SPE), in which an extension of BPEL for sub-processes is explained.

state of development

The current version is 2.0, in which other manufacturers such as SAP and Siebel have contributed. Up to version 1.1 the BPEL standard was named BPEL4WS ( Business Process Execution Language for Webservices ). The standard was handed over to OASIS for standardization in April 2003 .

The OASIS WS-BPEL committee decided on September 14, 2004 to name the specification WS-BPEL 2.0 in order to be in line with the other WS- * standards such as WSDL , WS-Security , etc.

The standardization of WS-BPEL 2.0 was completed on April 11, 2007. It contains detailed improvements, but is incompatible with the 1.x versions.

Language components

Basic Activities - These are the basic - atomic, so to speak - activities that are not built up from other activities:

  • assign - changing the content of a variable.
  • invoke - synchronous ( request / response ) or asynchronous call of a web service
  • receive / reply - offering a synchronous or asynchronous web service interface
  • throw - Explicit signaling of an error, which can be caught by error handling . If an error is not caught, i.e. if it reaches the global scope, the process terminates.
  • wait - waiting for a point in time or for a period of time
  • empty - do nothing, e.g. B. to do nothing in an error handling and to suppress the error

Structured Activities - These activities contain other activities and thus allow the recursive composition of complex processes.

  • sequence - The activities are processed sequentially in a sequence.
  • while - execution of activities as long as a boolean condition is met
  • repeatUntil (since BPEL 2.0) - execution of activities until a Boolean condition is met
  • foreach (since BPEL 2.0) - carry out activities a certain number of times, either sequentially or in parallel.
  • switch (not in BPEL 2.0) - conditional execution of activities
  • if (since BPEL 2.0) - conditional execution of activities
  • flow - The activities can be run in parallel or in any order, with control dependencies indicated by left .
  • pick - from a process perspective, non-deterministic selection through external events (messages, point in time or time span)

Scopes - With the help of this construct, activities can be bundled and combined into a transactional unit. By a scope of a group of activities may be a fault handler ( "fault handler"), event handlers ( "event handler"), a Terminationsbehandler and a compensation handler ( "compensation handler") are assigned. The compensation handler enables long-lasting transactions .

BPEL engines

BPEL engines allow BPEL process instances to be executed. For this purpose, the BPEL processes must be deployed in the BPEL engine and the deployment information dependent on the respective BPEL engine must be provided.

Open source BPEL engines

  • Apache ODE - ODE stands for Orchestration Director Engine , supports WS-BPEL 2.0 and BPEL4WS 1.1
  • bpel-g - open source -BPEL engine (based on the discontinued open source version of ActiveBPEL, now ActiveVOS)

Commercial BPEL engines

  • ActiveVOS - commercial further development of ActiveBPEL ( open source implementation ( GPL ) of BPEL4WS 1.1 and WS-BPEL 2.0)
  • Intalio | BPMS - Commercial Open Source BPEL Server, is based on open source components ( Apache ODE , Tempo) that have been combined to form a closed source product.
  • Oracle BPEL Process Manager - (formerly Collaxa BPEL Orchestration Server) Native implementation of the BPEL standard, with graphical modeling / orchestration tool for JDeveloper and Eclipse . Oracle is one of the main drivers in the further development of the BPEL standard within OASIS. In the new version 11g, BPEL processes are integrated within the framework of composites within service component architectures (SCA standard).
  • SAP Exchange Infrastructure - Implementation of the BPEL standard 1.1, graphic modeling using ARIS for SAP NetWeaver. Deployment in Solution Manager and XI, which work on the basis of SAP NetWeaver
  • SEEBURGER Business Integration Server - part of the B2B integration server is a BPEL engine and an Eclipse-based process designer. This means that all integration processes (not just for WebService) can be designed.
  • WebSphere Process Server - BPEL runtime environment from IBM is based on WebSphere Application Server , the Java EE server from IBM.
  • BPWS4J - IBM experimental BPEL implementation available through AlphaWorks
  • Microsoft BizTalk Server - BizTalk Server 2006 can run process models created with modeling tools such as Microsoft Visio.
  • Microsoft Windows Workflow Foundation on MSDN - The Windows Workflow Foundation is part of .NET 3.0 and also includes a complete mapping of BPEL. The Designer is available in Visual Studio 2005 as an add-on, Visual Studio 2008 offers the functionality natively.
  • Serena Business Manager - Since the end of 2015, the server component has contained the Apache ODE -BPEL engine, which executes BPEL processes in combination with human workflows (a so-called mashup )
  • Software AG webMethods BPM - commercial engine (incl. ESB) with a designer based on Eclipse; close integration in ARIS (called 'Model-2-Execute').

Comparable languages

Development of important BPM standards

See also

literature

Web links

Standards

Tools

Others

Individual evidence

  1. BPMN FAQ on the relationship between BPEL and BPMN ( Memento from December 18, 2008 in the Internet Archive ) (English)
  2. http://help.serena.com/doc_center/sbm/ver11_0/online_readme_sbms.htm