Process Model next up previous
Next: DAML-S Grounding Up: Implementing Web Services with Previous: Service Profile

Process Model

The Process Model fulfills two tasks, the first one is to specify the interaction protocol in the sense that it allows the requester to know what information to send to the provider and what information will be sent by the provider at a given time during the transaction. In addition, to the extent that the provider makes public its own processes, it allows the client to know what the provider does with the information.

A Process Model is defined as an ordered collection of processes. The DAML-S Process Model distinguishes between two types of processes: composite processes and atomic processes. Atomic processes correspond to operations that the provider can perform directly. Composite processes are used to describe collections of processes (either atomic, or composite) organized on the basis of some control flow structure. For example, a sequence of processes is defined as a composite process of type sequence. Similarly, a conditional statement (or choice as defined in DAML-S) is also a composite process. The DAML-S process model allows any type of control flow structure including loops, sequences, conditionals, non-deterministic choice and concurrency. Because of its expressivity, the DAML-S Process Model can be used to represent any arbitrary workflow.

Processes are defined as transformations between an initial state and a final state. The initial state is defined by the inputs of the process and a set of preconditions for the process to run successfully. Inputs represent the information that the Web Service needs to collect to execute the process correctly; while preconditions represent conditions that have to be true for the execution of the process to succeed. The result of a process is described as a set of outputs, or information that results from the execution of the process, and a set of effects that represent physical changes that result from the execution of the process. DAML-S distinguishes two types of input and outputs: the first type are internal input and outputs, in such a case the output of one process will feed into the input of a following process. The second type are external input and outputs: they define information that will be provided by a requester, and that will be reported to a requester.

During the interaction with the provider, the requester analyzes the process model to infer what process the provider is currently executing. The requester is particularly interested in the input the provider needs and the outputs that result from the execution of the process, since most likely the requester will have to provide the input information and interpret the output information.

By following the process model, and interpreting the information received by the provider, the requester can infer what information the provider expects at that time, or what information that provider will send next. Implicitly, the process model of the provider specifies the interaction protocol between the provider and the requester providing details of what information the provider needs and in what order. The message format and the binding information is instead specified by the DAML-S Grounding.

The specification of preconditions and effects of processes allow the specification of the consequences of their execution. The preconditions specify under what conditions a process can be executed, while the effects specify what results from the execution of the process. As an example, the precondition to a buy action is that the credit card used is a valid one and that it is not overdrawn, while the effect is that the credit card is charged. The role of preconditions is to provide a way to the requester to reduce the likelihood of failures: the requester knows that if the preconditions are not satisfied, the provider will not be able to execute correctly the process. The description of the effects of the process specify the consequences of the execution of the process, so for instance a buying process will have as a consequence the transferring of ownership of some goods and the requester know that after the execution of the process it will own the goods.

Through the specification of input, outputs, preconditions and effects of processes, the DAML-S process model provides the information the requester needs to interact with the provider: specifically, it specifies the interaction protocol with the provider by specifying the abstract messages the the provider and the requester exchange, on the other side it also provides information on the requirements to be satisfied by the requester to execute the Web Service correctly, and what will result from the execution of the processes. It will be up to the requester to make use of this information to decide whether to use a given provider, knowing what it requires and what are the consequences of this choice.

next up previous
Next: DAML-S Grounding Up: Implementing Web Services with Previous: Service Profile
Massimo Paolucci 2003-02-28