BPEL4WS Facts

This document provides facts related to BPEL4WS for usage in the written part of my diploma thesis.

General

  • Business Process Execution Language for Web Services
  • supports service composition [FS03]

What is BPEL4WS?

Article foundFact
Secure, Reliable, Transacted Web Services [FS03]
  • BPEL4WS specification supports service composition. It enables developers to define the structure and behavior of a set of Web services that jointly implement a shared business solution. Each element of the set of services defines its interface using WSDL and WS-Policy. The composed solution is itself a Web service, which supports HTTP/SOAP messages and defines its interface using WSDL and WS-Policy.
  • Composition has three aspects: structure, information and behavior. BPEL4WS introduces three constructs supporting each composition aspect.

    A partnerLink defines a named association between the composite service and a Web service that participates in the overall solution. The composite service and participating service define their interfaces to each other using WSDL and WS-Policy. An example might be an association between a manufacturing company and a supplier.

    The partnerLink concept and the WSDL/WS-Policy interfaces between the composition and partners define the structure of the service composition. They define the types of services that collaborate to form the composition, and which messages they exchange with which levels of assurance (security, transactions, etc.)

    BPEL4WS also provides support for defining the information of the service composition. BPEL4WS defines the concept of a container. The composite service defines a set of containers, each of which has an XSD definition. The current state of a specific service is the state of its containers. This defines what messages it has received or sent.

    Finally, BPEL4WS supports defining the behavior of the composite service by the concept of an activity. A BPEL4WS defined service is a set of activities or "steps", which define the behavior of the service. The most basic activities are sending a message to a partner or receiving a message from a partner. Each message corresponds to a container. BPEL4WS provides support for moving data between containers.

    One key aspect of BPEL4WS activities is that BPEL4WS provides special support for defining externally visible (public) behavior of services by allowing controlled use of non-deterministic behavior. For instance the fact that a credit check is performed in a specific way in the decision process for accepting a PO may be a private matter for a supplier. BPEL4WS allows the decision process to be hidden by dropping the credit check behavior from the process description but showing that the response to the PO may be either acceptance or rejection. This type of abstract process can be used in conjunction with WSDL to define interoperable business protocols between business partners and for vertical industry domains such as supply chain.

    BPEL4WS also supports several approaches to controlling the flow of execution of activities. These include sequencing and graph based flows. BPEL4WS support predicates on containers to determine which control paths the composite service follows.

    To summarize, BPEL4WS makes two additions to the previously defined Web service specifications:
    1. BPEL4WS extends WSDL and WS-Policy support for describing services. BPEL4WS support combining Web services into aggregate services, and documenting the associations between services, such as the information flow and behavior. This provides support for interoperability between higher layer tools supporting collaborative design of Web services.
    2. BPEL4WS is an execution language. BPEL4WS allows developers to fully specify the behavior of a composite Webservice. IBM, Microsoft, and other partners will provide environments that execute BPEL4WS documents and support design and execution time binding to partners.