Sample Web Process and support of different standards to model the process
Lets consider an example for a typical web process in e-business domain, an electronic toy manufacturer processing a distributor's order. When the distributor places an order, the manufacturer checks the inventory to verify if it has enough goods to satisfy the order. In case there is enough stock then the manufacturer contacts its delivery partner for a date of delivery and its agreement database or accounts dept to fix price for the order. The delivery date and the agreed price are returned to the distributor. In the other case when there is not enough stock in the inventory, the manufacturer contacts its supplier partner for the required components. Then he contacts its delivery partner to arrange for delivery of components to its manufacturing site and later to deliver the products to the distributor.
If this order processing is implemented by the Manufacturer as a workflow of Web
services, it can be done using BPEL4WS, BPML or DAML-S. All of these standards
support modeling the flow specification of web services in a process. In BPEL it
can be implemented as an executable process. BPEL4WS takes the perspective of
the Manufacturer to implement this process. Other involved parties like the
distributor, the supplier partner and the delivery partner are viewed as
partners of this process who either invoke the process or the services that are
invoked by the service. This dependency is established using the service link
types. The basic activities in BPEL receive/reply and invoke help in handling
messages from the partner and sending messages to the partner respectively. Each
of the partner and the process take respective roles defined by service link
type that represents collaboration. This is achieved by referencing to
port-types contained in WSDL interface definition that are to be supported by
the partners. A service that implements this port-type interface definition can
act as a partner to the process. Different activities in BPEL pass information
among them using global data variables. In addition to these, BPEL also has
constructs to handle transactions and exceptions using correlation set in BPEL
and related standards WS-Coordination and WS-Transaction. This enables features
like exception handling when the toy ordered by the distributor is not listed in
the inventory and transaction management which allows multiple distributors to
place order using the Manufacturer's system and it also helps messages from
delivery/supplier partners to reach correct process instances. BPML has similar
process flow constructs. In BPML, the <action> activity
performs or invokes a single operation that involves the exchange of input and
output messages. In the context of WSDL, operations are specified using Port
type and operation. The action tag also supports representing
correlation features. BPML also supports transactions, exception handling and
recursive decomposition. In the above example if the fixPrice part is to be
implemented as a process in Accounts department, BPML can be used to model this
sub-process as a part of the Manufacturer's orderProcessing process as the
The DAML-S initiative for semantic web services provides process model to describe the operation of a web service. To achieve automatic service operation and interoperation, DAML-S provides declarative specifications of the prerequisites and consequences of individual services. For a detailed perspective of services they are viewed as processes and represented using processmodel. The process model conceives each program as either an atomic process or as a composite process. A non-decomposable web service is described as an atomic process. If in the above example 'checkInventory' is non-decomposable, meaning that it can be executed using a single call, then it's process model will define it as an atomic process. The entire order processing process is decomposable as it is made of subprocesses (other atomic or composite processes). Hence the process model will define it as a composite process. The Process ontology that describes the process has 'Process' (name of a daml-class) as the primary kind of entity. It can have any number of inputs and outputs that respectively represent the information that is, under some conditions, required for the execution of the process and the information that the process provides, conditionally, after its execution. In DAML-S ProcessModel, inputs to the processes can be made either mandatory or optional and the outputs are generally conditional. For example given above, after processing the order the Manufacturer's e-process can either return a confirmation message on successful order processing with price and delivery details or other kind of unsuccessful order processing message with related details. To describe different output types, DAML-S defines conditional output class (ConditionalOutput) to describe a condition and an associated output. Since each activity in a process will have its own process model, potentially, every activity can have conditional outputs. In addition it will have parameters to specify the participants in the process and other declarative parameters for giving details. It can also have preconditions and effects associated with the process. The process upper ontology of DAML-S has also a minimal set of control constructs to describe the process. The semantics of the control constructs are similar to the semantics of the respective control constructs in BPEL, BPML or any other process modeling standard. DAML-S ProcessModel is meant to be agnostic of the process modeling formalisms like BPEL and BPML. Instead, it provides a general, canonical approach using vocabulary and properties for a process model to remain compatible with any process-modeling standard. After reprenting the order processing e-process using DAML-S, it can be made available for use. To access the order processing service it can be viewed as a black box whose internal components and the operation details are hidden to the end user. This is done by defining a "simple process" that charecterizes this black-box view and it can be related to the detailed composite process. While these standards provide constructs to describe workflow model (orchestration), they do not provide conversational model (choreography) that are common in collaborative business processes. Detailed discussion on standards that model collaboration are found below.
Executable processes help in web service orchestration. Choreography of the collaborative business processes is defined using abstract processes. Abstract processes in BPEL are aimed to describe business protocols that specify the sequencing of messages exchanged by one particular partner with its other partners to achieve a business goal. The messages that are exchanged are based on some activities within internal business processes. When defining the abstract process the logic behind message creating and the logic behind branching condition need not be defined with respect to the business protocol data that defines the context of the process. Hence it need not describe the internal decision-making and data manipulation. Abstract business processes always operate on properties that are generic way to name and distinguish data elements in a message. In the above example if the message exchange with the delivery partner is as follows:
From Manufacturer - To Delivery Partner : Date, location to Pickup and location of delivery.
From Delivery Partner - To Manufacturer : Data of delivery and Price.
The above sequence of message exchanges can be represented as an abstract process. The protocol data would be the price and date the delivery partner sends to the manufacturer. The deal confirmation message could be based on a value of a variable that is non-deterministically assigned. The value is decided by the decision-making activity. It is not a visible behavior of the manufacturer's collaboration with the delivery partner. The abstract processes allow assignment of non-deterministic values to properties to model this. However, an abstract BPEL process defines the business protocol from the perspective of a single entity in the collaboration. While real world business collaboration need a peer-to-peer conversational model. Other standards like BPSS, WSCI and WSCL try to achieve this kind of model.
The above listed message exchange sequence can be defined as a conversation from the perspective of the manufacturer and the delivery partner. WSCL models this kind of business level interactions using exchange of XML documents. The above conversation can be defined either as four one-way interactions or as a pair of two-way interactions (1,2 and 4,5). In either case the permissible sequence these interaction can be defined using transition elements. If the conversation supported by Manufacturer's system is made available then potential delivery partners can use this to figure out the conversation support expected from them. However WSCL does not specify the binding of these interactions to specific communication protocol. So the specification suggests three ways of combining the WSCL descriptions to the WSDL descriptions of the participating services. WSCL does not explicitly model roles of the collaboration. Hence if there is a standard collaboration pattern and if a service conforms to a role in collaboration. The role that it supports in collaboration cannot be modeled using WSCL.
WSCI is like WSCL but provides a more comprehensive model for organizing the sequence of WSDL operations. In the conversation (message exchange) between manufacturer and delivery partner given above, the conversation is not limited to invoking a single operation. Hence a collaboration description is needed. For detailing the collaboration definition WSCI interface definition is embedded inside WSDL definitions. Correlation names can be be defined with the help of property 'deliveryId' to identify and correlate messages about the same delivery deal. If the manufacturer or delivery partner support different kind if interfaces the respective WSDL document can have multiple interface elements. Each interface has processes to model the observable behaviour of the the service in the context of that process. The action is the basic WSCI construct that identifies a unit of work associated with a given operation. Each of the operations receive delivery details and receive ack by the delivery partner can be different actions and can be defined for execution sequentially to properly handle message exchange. WSCI also provides ways to represent more than one logical role in the exchange. In addition it supports transactions, exception handling capabilities.
In ebXML, the above-mentioned entire process can modeled precisely in all aspects. In the overall process both the distrbutor and manufacturer will provide information on what they can contribute to the collaboration. It clearly models the process with the auxiliary parties like deliveryPartner identified as intermediaries. The single step activity orderParts to suppliers may consist of individual sub-steps. To carry out the business transactions between the manufacturer and supplier partner and to choreograph the business transactions, the roles involved may be defined in a binary business collaboration specification. The transactions are mapped to the services that each partner (role) must implement. The above-mentioned example could be explained with the following steps:
These steps will automate the business process between the distributor and the manufacturer. In this way, with the use of BPSS, CPP and registries, ebXML standards propose standardising the processes and interactions between them.