The discussion above shows that DAML-S provides a promising framework to control Web Services interaction. It provides all the information that Web Services need to negotiate autonomously on the Internet, minimizing interventions of programmers while maintaining a very flexible and reliable connection with their providers. Still, it leaves open the problem of harvesting all the information available and make use of it in real implemented Web Services. This is the center of our work as we are trying to develop a Web Service architecture that can take advantage of the information available in DAML-S descriptions and to produce a DAML-S toolkit that facilitates the implementation of DAML-S enabled Web Services.
The first requirement of a DAML-S enabled Web Service is to understand the structure and the information contained in a DAML-S description. This requirement entails the ability of compiling correct requests for service, processing the descriptions of the services retrieved and finally, correctly following the workflow described in the process model as well as drawing the correct inferences on the preconditions and effects of the processes in the Process Model.
A precondition for the first requirement is that Web Services understand ontologies encoded in DAML. Dealing with DAML ontologies is fundamental because it allows the Web Service to derive inferences on the different statements included in a DAML-S description. Furthermore, it is required to extract the information included in the messages exchanged with other Web Services, as long as this information is compiled in DAML
Finally, the Web Service needs to include ways to use WSDL descriptions of the Grounding to send and receive messages correctly. This last module should be responsible for the exchange of messages with other Web Services managing not only the WSDL description, but also managing the network protocol and the transmission of information or the reception of such information.
The architecture that we adopted is displayed in figure
. It shows that a DAML-S Web service can be divided in two main
parts: a DAML-S Port which corresponds to the three modules
in the center column, which is responsible for the management of
the interaction with other Web services; and the actual
Service, represented by the box on the right, which
determines what the Web service does. Examples of services may
include a stock reporting Web service, in which case the Service
module would monitor the stock market, or an airline booking Web
service, the Service module interacts with the airlines to book
seats, gather information about airplanes and so on. Ultimately,
DAML-S is silent about the application of the Web service, so we
display it as a black box.
The DAML-S Port consists of three modules which are roughly used
in a sequence. The DAML Parser is used to load DAML-S
specifications of Web services, specifically their Process Model
and Grounding, as well as loading other DAML ontologies from the
Web. The DAML Parser transforms the DAML files into lists of
predicates to be processed by the DAML-S Virtual Machine
(DAML-S VM). The DAML-S VM defines a knowledge base that
is based on the Jess Theorem [8],
but it specializes with rules that implement the DAML axiomatic
semantics
[9,
7] as well as the semantics of the DAML-S Process Model and the
semantics of the Grounding. Finally, the Web service
Invocation module takes responsibility for transforming
abstract information to the sent to other Web services, into
concrete messages, or RPC calls, to be exchanged
. During the interaction, Web services exchange
information through the Web service invocation module, incoming
messages are translated into DAML through the Grounding Rules and
added to the Knowledge Base where the new knowledge can interact
with the rest of the knowledge of the Web service.
The DAML-S VM is the core of the architecture and it controls the interaction with other Web services. The first task of the DAML-S VM is to follow the Process Model of the Provider, this is accomplished through the implementation of the Process Model semantic with the Process Model Rules. These rules set contains rules the location of the next process to execute, for the extraction of inputs and outputs of each process and for the management of non-deterministic choices. Similarly, the Grounding Rules specify the correspondence between atomic processes of the Process Model and the WSDL operations, and the mapping between the inputs and outputs of the atomic processes in the corresponding input and outputs of the process model.