WS-BPEL is Web Service Business Process Execution Language.WS-BPEL is a secure means of communication between business processes. WS-BPEL allows business processes to separate the public and private (business) aspects. WS-BPEL makes it possible to exchange messages between partners without exposing their internal and private business logic and implementation. WS-BPEL uses message properties for communication and to exchange data. Using WS-BPEL business processes can achieve portability and interoperability.
WS-BPEL defines an integration model which describes the behavior of interaction between business process and its partners. Communication is done through web service interfaces and partner links.
WS-BPEL is laid on top of some XML specifications like WSDL 1.1, XML Schema 1.0, and XPath1.0. WS-BPEL processes use the WSDL messages and XML Schema type definitions data model. XPath is useful for data manipulation. WS-BPEL considers all partners as web services.
There are two types of design patterns of WS-BPEL. One is Abstract Process and other is Execution Process. In Abstract processes there is a relationship between two parties (partners in communication) called as Partner Link. The level of data exchanged is abstract. Only the protocol-relevant data is exchanged between two partners. While in Executable processes the both the protocol relevant data and business logic are embedded behind the external protocol.
2. WS-BPEL Language Structure
- Business processes are considered as WSDL services.
- Business partners publish their services as WSDL services.
- Messages are exchanged to WSDL methods through WSDL interfaces.
2.2 Partner links:
- These are the communication channel for the business partners to interact with their partners.
- These links are established between the partners and are secured.
- Using Partner links peer to peer communication is possible.
2.3 Data handling
- WS-BPEL uses variables for storing data values.
- Values or state of data is stored using expressions
- Values are updated using assignments.
2.4 Properties and correlation
- Messages are correlated to correct business process. Service instance.
- Typed properties defined in WSDL are named and mapped to parts of several
WSDL messages used by the process
2.5 Basic and structured activities
- Basic Activities includes receive, reply, invoke, assign, validate, etc
- Structured activities include flow, sequence, while, etc
2.6 Scopes and Handlers
- Scope is the context of each activity.
- Scope is limited to local variable, local partner-links.
- Handlers include different handlers like event handlers for message events, fault events, etc
Now, I will discuss very important part of my paper i.e. interaction of business processes.
3. Interaction of business processes through WS-BPEL using Partner Links
There are two types of interaction with WS-BPEL
- WS-BPEL process receives invocation request from the client.
- WS-BPEL process sends invocation request to other process and acts as a client.
Generally each WS-BPEL process has minimum one client and one server process to which it can invoke. The interaction (between business processes) in above both cases is basically done through the Partner links. All Messages are exchanged using partner-links. Partner-link is considered as communication channel or connector.
3.1 What are the Partner links????
Partner Links is one of the major areas of interaction using WS-BPEL. As the name suggests the partner link is the link which determines the other business partner of the business process. Partner-links define interaction between different parties with business process using port types. Each partner link has a particular name which is used while interaction to invoke the service. These links are confidential and secured between the partners only.
Before Interacting with other process it (other process) should be invoked using partner link. At that time binding data and communication data should be available for the communication. The other partner may have some information about the service. This information can be used while deployment of the business process.WS-BPEL provides a mechanism for assigning or setting services dynamically using end point references. End point reference is implicitly present in the partner link and used for dynamic assignment. End point references are explained below in detail.
Name of the partner link should be unique among the other partner links in the scope. Access rules for the partner link are same as that of variables. For message sending and assignment of data the local partner link is used regardless of the type of the element. Partner link life cycle is similar to that of the scope in which it is present.
Partner-link has one or two attributes:
myRole: Represents the role of the business process itself or the web service it has implemented.
partnerRole: Represents the role of the partner or the web service the partner has implemented.
In synchronous request or response partner-link represents single role while in asynchronous it represents two partner-link roles.
To initialize value of Partner Role attribute of partner link the attribute initializePartnerRole is required. InitializePartnerRole attribute cannot be used when partner links does not have partner role. When the initializePartnerRole attribute is not specified or omitted then its value is considered as 'no'.
3.2 Port Types:
Port type represents the web service itself. It describes the interface to web service, medium used to interact with the web service and location of the service. Sometimes, it happens that both the roles of the partner links are defined in terms of port types. Port type uses abstract messages for abstract functionality.
3.3 Partner Link Type
Partner-link is characterized by particularPartner Link Type. More than one partner link can be characterized by same partner link type. Partner Link Type also defines the roles of the partners in the interaction. Each role indicates one WSDL port type. Partner link type in the WSDL document specifies interaction of the service with other services or the partners. It also shows the dependencies between partners.
The partner link type definition can be a separate artifact independent of either service's WSDL document. Alternatively, the partner link type definition can be placed within the WSDL document defining the port types from which the different roles are defined.
Partner Link Type is defined by the extensibility mechanism of WSDL 1.1. Sometimes, the Partner Link Type is linked with the port types of two different services.Sometimes partner type roles are defined in terms of port types from the same namespace. Partner link types also define call back operations between services. It defines up to two roles and list of port type that should be supported by each role during interaction.
3.4 End Point Reference
Endpoint reference is useful for dynamic communication between processes. An endpoint reference makes it possible for WS-BPEL to choose a web service for particular type dynamically. Every partner in the interaction has one unique endpoint reference.WS-BPEL interacts other partner through endpoint reference of a partner-link. A unique end point reference is assigned to service by activities in business process.
Service Reference container is the endpoint reference associated with partner role and my role of a partner link. Service Reference container is referred as "bpws:service-ref". "bpws:service-ref" has an optional attribute "reference-scheme" which specifies the URI of the reference interpretation of service end point. Generally, this attribute is used when the service end point is ambiguous. It specifies further information that can clear ambiguity. When manipulation of end point reference of partner link is done by users "bpws:service-ref" is not exposed. During WS-BPEL interaction using end point reference of a partner link, the container is used as an envelope to wrap the end point reference value.
Dynamic assignment of endpoint references to partner services:
Dynamic assignment can be done using assignment activity which is used to copy endpoint references to and from partner links. The
3.5 Interaction Using Activities
Interaction between different business processes includes basic and structured activities.
Above figure 2 shows how partner-link is used for interaction between business processes.There are three basic activities which are used while interaction are
• Invoke activity :
There are two types of invocation in this activity. One is synchronous and other is asynchronous. Invoke specifies input and output containers. In synchronous both input and output variables are requires. While in asynchronous only one input variable is required. Invoke has fault handler in it which handles faults during invocation.
• Receive activity :
Receive activity receives a input for a operation of a web service. The business process receive massages through receive activity. Receive activity specifies that the process is able to generate a process instance. Receive activity has the matching reply activity. The pair of
• Reply Activity :
Reply activity is used to send the reply to the requesting partner. The reply activity is optional. There can be multiple reply activities defined in process but only one match with the specific receive activity. Multiple replies can be sent using multiple reply activities. One receive activity may sent multiple reply using these multiple reply activities. Fault messages are also sent to partner via reply activity.
Following are the few other basic activities used during interaction,
- Assign- Manipulation of data variables.
- Throw - Indicates faults and exceptions
- Wait - Waits for some time
- Terminate - Terminates the entire process of interaction.
WS-BPEL is the language which makes the interaction between different easier and more secure. It makes business processes independent and inter-operable. The messages exchanges between business processes can be modified so WS-security should be implemented. WS-BPEL allows good separation of public and private aspects of business logic. WS-BPEL defines two different type of process like abstract and execution. WS-BPEL partner-links are the one to one communication link between partners so the security and reliability increases. They provides the necessary information to the other partner about type of the web service and also type of the invoking web service.
- http://www.oasis-open.org/committees/download.php/14616/wsbpel-specification- draft.htm#s.bpdef.structure