What is BPEL?
BPEL je dnes ustálenou definicí, kterou vzala pod svá kBPEL (Business Process Execution Language) provides a predefined set of activities one can use to model business processes that are to be executed automatically. It is actually pretty similar to traditional programming languages - it uses conditions, loops, variable assignment, service calls, exceptions, etc. All these provide the grounds for development of any process you may need.
Today, BPEL is an established definition as it is controlled by OASIS standardization organization that holds BPEL as a standard for describing interactions between (web) services. That is why the full name of the language is WS-BPEL (Web Services Business Process Execution Language). The definition says that interactions between services can be described using a so-called business process. It is map of activities representing different operations, namely various service calls. Process, as perceived by the WS-BPEL standard, describes a sequence and conditions of service calls in a service-oriented-architecture (SOA), also known as service orchestration. Despite the relatively complex definition, BPEL is a very useful tool for explicit description of company processes that can be used for further automatic execution. Historically, there have been several languages describing business processes: WSFL by IBM, Microsoft's XLANG, BPML and BPMS developed by JBoss and Intalio Inc. Several large companies had cooperated to define BPEL4WS language that was submitted to OASIS for standardization. That is how the WS-BPEL standard (the name fits better to the WS-* standard family) was created in 2004, now already in its 2.0 version.
Main features and goals of BPEL
- Define business processes that interact with external entities using web services and at the same time have a web interface of their own. The process itself thus becomes a service. This is how processes can be composed into larger assemblies.
- Define business processes using an XML-based language. BPEL does not define a graphical representation of processes or provide any particular design methodology for processes; it just standardizes their XML definition.
- Provide data manipulation functions for simple manipulation of data needed to define process data and control flow.
- Support the implicit creation and termination of business process instances as the basic lifecycle mechanism. The process can also be suspended, resumed, etc.
- Define a long-running transaction model that supports transaction scoping and failure recovery when the transaction is not finished successfully.
- Use web services as the model for process decomposition and assembly.
- Built on web services standards.
- Support event-driven process management (asynchronous call model)
Soon it was clear that people or human activities are also part of the real business processes. This means that at certain stage of the process a task must be created for a user and only when it is finished can the process continue as specified.That is why two additional specifications were created - BPEL4PEOPLE and WS-HumanTask - that try to fill the gaps and include humans in the processes.
What are the main extensions introduced by BPEL4People and WS-HumanTask?
- In-line human task - new BPEL activity for human interaction in the process,
- Standalone human task - activity outside the context of the BPEL process (i.e. it is a standalone service),
- Consolidation of lifecycle, features and behavior of a human task activity,
- API to manipulate with human task activity and tasks created by this activity,
- Define task management system - a system for task administration,
- Support role-based allocation of users to human activities,
- Support scenarios such as "four eyes principle", nomination, escalation, notification, etc.
Both BPEL4People and WS-HumanTask specifications are already used in existing process automation solutions and are being standardized by OASIS. It is likely they will become a part of the new version of the language - BPEL 3.0.
BPEL and BPMN
The WS-BPEL standard defines the meaning and features of particular activities, their XML definition; however, it does not specify their graphical representation.
Therefore, some providers have created their own graphic notation of BPEL that is being improved constantly, so that the processes are as clear as possible.
BPMN (Business Process Modeling Notation) is a graphic notation used to model processes in a clear and illustrative way.
The goal of BPMN is to provide companies with the possibility to map their processes and see them in graphical representation. The appearance and meaning of all the symbols are standardized so that everyone can understand what a given model does and how the process works. This means a major improvement when you need to discuss the processes across the company or between business and IT departments.
The difference between BPEL and BPMN is clear:
- BPMN is a descriptive notation for modeling business processes that uses standardized graphical symbols, meanings and logical connections.
- BPEL is a standard for executing and describing processes and it uses more technical tongue. It is an XML-based language.
Automatic conversion of BPMN processing model to BPEL?
Once we decide to automate certain company processes described in the company's business model (and to convert them to BPEL to do so), we often encounter various complications, especially when we attempt to export the data from the modeling tool to BPEL automatically. It is common that several ways exist to convert given BPMN construction into BPEL and in some cases it is impossible to keep the resulting BPEL process human-readable. Sometimes there is not even a simple mapping between BPMN and BPEL.
That is why attempts to generate BPEL processes from the BPMN notation automatically have more or less failed. Although not impossible, the benefits of such conversion have not been significant enough as of yet, as it is usually much more time-consuming to correct and debug the BPEL machine code than to prepare an automated process manually, not talking about subsequent modifications and improvements. In short, for an experienced BPEL developer the manual conversion is usually faster and especially more reliable. Despite all this, BPEL is a de-facto standard in the field of automation of company processes, it is being upgraded and constantly expanded by new features and it is likely it will remain on the market for some time.