BPEL
BPEL is a language to define, as business processes, a series of procedures to invoke features of multiple applications on the network in order and execute tasks. Business Process Execution Language.
Contents |
Overview of BPEL
| What is an Abstract Process? |
|---|
| It represents interaction among business processes, such as a message flow. It does not show the details of business processes. |
BPEL is a language to define, as business processes, a series of procedures to automatically utilize features of multiple applications on the network in order and execute tasks. It is used for the following two purposes.
- Definition of abstract processes
- Implementation in execution engines
Business processes defined with BPEL are called "BPEL processes" or "BPEL flows."
In processes defined with BPEL, activities are processed automatically, and a series of flows can be invoked as if it were a single service. Such a service is called a "composite application." In addition, services in which features of applications can be used via network are called "web services," and they rely on technologies related to www (World Wide Web). In case of web services, when we send a command, an expected action is automatically returned via web. BPEL is a language to execute processes by using such web services.
Characteristics of BPEL
XML Based
BPEL is a language based on XML (Extended Markup Language). Since it defines prcesses that utilize network to use application features, it is designed based on XML.
Use of Web Services
When defining business processes by using BPEL, basically we need to combine the activities listed below and create a process that is "started when it receives a request message and ends with replying with the execution result."
- invoke (Call features of applications)
- receive (Receive requests)
- reply (Return results)
These are automatically executed via web services.
Comparison of BPMN, BPEL, and XPDL
BPEL neither defines the ways of graphical representation of business processes nor provides specific design techniques for them. BPMN defines the ways of graphical representation of business processes.
| BPMN | BPEL | XPDL | |
|---|---|---|---|
| Characteristics | Notation for drawing | Format to save processes | Format to save images |
| Primary Purpose | Visualization | Control over other systems | XMLization of BPMN diagrams |
| Diagram Information | Suitable | Impossible | Possible |
| Data Format | Image | XML | XML |
BPEL is an execution language to design processes relying on web services and is useful when we integrate applications and thereby automatically execute processes. The format of data written in BPEL is a text file. On the other hand, BPMN defines the way to draw business process diagrams and is suitable for graphical representation of business processes. The data created by following BPMN are image files. XPDL is a language to save business process diagrams represented in BPMN as text data.
Conversion from BPMN to BPEL
Although mapping from BPMN to BPEL is presented in BPMN, it does not mean that all BPMN artifacts can be converted into BPEL. In many cases, some definitions get complicated or can not be converted.
Example of Conversion
Suppose a case in which, at one part of some business, the subsequent task is different depending on a condition. Let's assume that task "A" is executed "if X is greater than or equal to 10" and that task "B" is executed "if X is less than 10."
BPEL
We can define such business in BPEL as follows. The section after switch near the bottom corresponds to the colored part in the figure below.
<process
name="processX"
targetNamespace="http://www.questetra.com"
xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
・
・
<partnerLinks>
<partnerlink partnerLinktype="ns1:RiskAssessmentPT"
name="assessor"/ partnerRoles="assessor">
・
・
<variables>
<variables messagetype=“ns1:CreditInformationMessage” name="request"・
・
・
<switch name="sub_DeicideRisk">
<case condition="bpws:getVariableData('request','X')">=10
<sequence name="DecideRisk_seq1">
<invoke operation="check" inputVariable="request"
name="A""outputVariable="risk"
portType="ns1:RiskAssessmentPT" partnerLink="assessor"/>
</sequence>
</case>
・
・
BPMN
We can represent this business as a process diagram by following BPMN as shown in the figure on the right. The branching section corresponds to the colored part.
Specification of BPEL
BPEL4WS 1.0
In 2002, this was proposed by IBM, BEA, and Microsoft by combining WSFL, whose specification was being designed by IBM, and XLANG, which Microsoft was developing. BPEL4WS stands for Business Process Execution Language for Web Services.
BPEL4WS 1.1
In 2003, this was submitted to OASIS, a standards organization, by IBM, BEA, Microsoft, SAP, and Siebel.
WS-BPEL 2.0
In 2007, this was published by OASIS. WS-BPEL stands for Web Service Business Process Execution Language.
WS-BPEL Extension for People1.0 (WS-BPEL4People)
This is the extended version of WS-BPEL published by 6 companies, Oracle, IBM, BEA, SAP, Adobe, and Active Endpoints, in 2007. Unlike WS-BPEL, which is suitable for definition of business processes that utilize multiple applications in order during the execution, this is suitable for definition of workflow managing human tasks, such as review, authentication, data input, and so on.
Relationship between BPEL and SOA
| What is ESB? |
|---|
| ESB stands for Enterprise Service Bus and is a design technique to connect each software via a bus, instead of connecting software individually.
In this case, individual interfaces are not necessary. |
SOA is an acronym of Service-Oriented Architecture and is system architecture that aims to establish systems by reciprocally coordinating software parts and features that are designed and organized according to the structural units of business over the network. Once applications that are turned into services by SOA are prepared, we can construct business processes by combining them. BPEL enables us to define such business processes. Furthermore, ESB deals with issues like "how to connect applications."
BPEL Tags
| What is Synchronization? |
|---|
| This means to wait until the data are updated upon completion of other tasks in case the results affect the subsequent processes etc. |
Basic tag definitions in BPEL are shown below.
- Invocation of web services <invoke>
- Waiting status (Receive requests) <receive>
- Creation of response of synchronized operations <reply>
- Data manipulation <assign>
- Display of errors and exceptions <throw>
- Explicit waiting status for a pre-determined time period <wait>
- Termination of the entire process <terminate>
- Representation of a set of consecutive activities <sequence>
- Representation of a set of activities invoked in parallel <flow>
- Case-switch representation of branches (Conditional branches) <switch>
- Define loops <while>
- Selection among a couple of activities <pick>







