information (regarding potential service providers –
Figure 1, step 3) and plans the execution process.
If the service providers of a certain atomic
service (invoked in the received composed service)
are not available, SEA interacts with a service
discovery agent (through the AIC – Figure 1,
steps *) to discover available providers for the
atomic services that are part of the OWL-S
compound service. If the service discovery agent
cannot find adequate service providers, the EC can
interact with a service composition agent asking it to
create an OWL-S compound service that produces
the same effects as the original service.
After having a service ready for execution, with
suitable context information, the EC sends it to the
SEC (Figure 1, step 4), for execution. Throughout
the execution process, the EC is also responsible for
providing context information to the context system,
whether it is its own information (such as service
execution requests’ queue, average time of
execution) or other entities’ relevant context
information (such as availability of providers and
average execution time of services).
The SEC was developed as an extension of the
OWL-S API (Sirin, 2004) and its goal is to execute
semantic web services (Figure 1, steps 5a and 6a)
described using OWL-S service description and
WSDL grounding information. The extension of the
OWL-S API allows for the evaluation of logical
expressions in conditioned constructs, such as the
If-then-Else and While constructs, and in the
service’s pre-conditions and effects. OWL-S API
was also extended in order to support the execution
of services that are grounded on service provider
agents (Figure 1, steps 5b, 6b). This extension is
called AgentGrounding and it is explained in detail
in (Lopes and Botelho, 2005). When the SEC
receives a service execution request from the EC, it
executes it according to the description of the
service’s process model. During the execution
process, SEC collects relevant context information
(such as providers’ availability, quality of service
and execution times). After execution of the
specified service and generation of its results, the
SEC sends them to the EC (Figure 1, step 7) for
further analysis and post-processing, which includes
sending gathered context information to the context
system (Figure 1, step 8) and sending the results to
the client agent (through the AIC – Figure 1, steps 9,
10).
3.2 Execution Process
OWL-S is an OWL-based ontology used to describe
semantic web services. OWL-S Services are
described in three parts: a Profile (which tells "what
the service does"); a Process Model (which tells
"how the service works"); and a Grounding (which
tells "how to access the service").
The general approach for the execution of
OWL-S services consists of the following sequence
of steps: i) validate the service’s pre-conditions,
whereas the execution process continues only if all
pre-conditions are true; ii) decompose the compound
service into individual atomic services, which in turn
are executed by evoking their corresponding service
providers (described in the grounding section of the
service); iii) validate the service’s described effects
by comparing them with the actual effects of the
service execution, whereas the execution process is
only valid if the service has produced the expected
effects; iv) collect the results, if any (the service may
be only a “change-the-world” kind of service), and
send them to the client who requested the execution.
4 EVALUATION
The enhancement provided by the use of context
information consists on the adaptation of the
execution agent to a specific situation (according to
available context information) in a way such that the
execution is done in the requested time-frame (by
the client agent) and that in case of failure of some
of the elements of the compound service, suitable
alternatives can be found. Using context
information, SEA can determine who the “best”
service providers are, by building a sort of
“reputation” schema of the available service
providers, which then can be used to determine the
fastest way to execute a compound service or find
alternatives in case of failure.
Even though this approach of service
coordination (the combination of service execution
with discovery and composition planning) improves
the way compound services are executed (by
allowing the determination of the best service
providers in a specific situation and by providing a
failure recovery method), it introduces an
“overhead” time that doesn’t exist in the actual
semantic web services execution environments. This
“overhead” time is composed of the procedures that
SEA must perform when communicating and
managing conversations with other agents (client,
service discovery and composition agents),
retrieving and processing context information
(related to the service providers) and preparing the
execution of compound services. It is important to
A CONTEXT-AWARE SEMANTIC WEB SERVICE EXECUTION AGENT
233