journalists. Assume that this service fails. In this
case, it may be necessary to discover services that
can identify journalists at a certain location.
In this paper we present SerDiQueL, an XML-
based service discovery query language allowing the
description of service requests expressing structural,
behavioural, quality, and contextual characteristics
of the systems and services to be identified during
both static and dynamic service discovery.
SerDiQueL supports queries that can be performed
in both push and pull modes during the execution of
service-based systems.
SerDiQueL is composed of three sub-queries.
The first sub-query describes structural
characteristics of the services to be discovered that
comply with the application being developed, or
services already being used by a system. The second
sub-query expresses behavioural characteristics of
services and systems representing the existence of a
certain functionality or sequence of functionalities,
the sequence and order in which certain
functionalities should be executed, pre-conditions,
and dependencies between functionalities. The third
sub-query represents extra constraints. These extra
constraints may involve (i) quality characteristics,
(ii) contextual characteristics, or (iii) extra structural
and behavioural conditions that cannot be
represented in the structural and behavioural sub-
queries of the language. Examples of these extra
constraints are the time or cost to execute a certain
operation in a service, the specific receiver of a
message, the provider of a service, or the number of
parameters in a service operation.
SerDiQueL has been developed as part of a large
programme of research to support service discovery
in static (Kozlenkov et al., 2007) and dynamic
pull/push modes (Zisman et al., 2008). The language
supports the representation of service queries that
are executed by a service discovery framework. In
this paper, we discuss the language and give a brief
overview of the framework. In our work, we assume
services specified from different perspectives such
as interface (WSDL (WSDL)), behavioural
(BPEL4WS (BPEL4WS)), quality, context, and
textual descriptions in XML format. The similarities
between service queries and service specifications
are computed by using distance functions.
The remainder of this paper is structured as
follows. Section 2 presents an overview of our
framework to support static and dynamic service
discovery. Section 3 describes SerDiQueL and gives
example queries to illustrate it. Section 4 presents
related work. Finally, Section 5, provides an overall
discussion, concluding remarks, and future work.
2 OVERVIEW OF SERVICE
DISCOVERY FRAMEWORK
Our service discovery framework has been
developed to support both static (Kozlenkov et al.,
2007) and dynamic identification of services
(Zisman et al., 2008). In the case of static service
discovery, our framework advocates an iterative
process in which service-based systems are
developed based on available services. More
specifically, the framework supports the
identification of services that provide functional and
non-functional characteristics of service-based
systems during the design phase of these systems.
The identified services are used to formulate and
amend the design models of these systems. The
reformulations of the design models may trigger new
service discovery iterations. In the case of dynamic
service discovery, our framework advocates
identification of services in both reactive and
proactive ways, based on subscribed service
requests, to replace services in a service-based
system during execution time.
In both cases, the framework assumes services
described from different perspectives by a set of
XML-based facets. These facets include (i) textual
facets describing general information of the services
in an XML format, (ii) structural facets describing
operations of services with their data types using
WSDL (WSDL), (iii) behavioural facets describing
behavioural models of services in BPEL4WS
(BPEL4WS), (iv) quality of service facets describing
non-functional aspects of services, and (v) context
facets describing quality aspects of a service that
change dynamically.
Figure 1 shows the overall architecture of our
service discovery framework. As shown in the
figure, the main components of the framework are:
(a) service requestor, (b) query processor, and (c)
service registry intermediary. The framework also
uses external service registries and, is invoked by an
external client application, and uses special servers
and listeners to support notification of changes in
services and application environment.
The external client application supports the
creation of service requests to be executed both
statically and dynamically. These service requests
may contain structural, behavioural, quality, and
contextual characteristics. The service requestor
receives a service request from the client
application, as well as context information about the
services and application environment in the case of
dynamic service discovery. It prepares service
queries to be evaluated, organises the results of a
ICSOFT 2009 - 4th International Conference on Software and Data Technologies
56