Semantically Enhanced Unified Service Discovery

Aphrodite Tsalgatidou, Michael Pantazoglou, George Athanasopoulos
National and Kapodistrian University of Athens
Dept. of Informatics and Telecommunications
{atsalga, michaelp, gathanas}
Abstract. The way in which service lookup is performed in the areas of Web, P2P, and Grid services depends primarily on their existing registry/repository infrastructure and supporting protocols. Moreover, semantics exploitation within the course of service discovery, if supported, lacks standardisation and unification, with respect to service heterogeneity. In this paper, we introduce a language for expressing service requirements in a rich, semantically enhanced, and unified manner. In addition, we present an implementation of the language, which enables service requestors to access and effectively query heterogeneous registries for Web, P2P, and Grid services.

1. Introduction

The Web bustles with heterogeneous services, employing incompatible architectural models, protocols, and standards. However, there is no available infrastructure, in terms of languages and tools, facilitating the integration and interoperability of such services. This is strongly related to the lack of a unified service discovery mechanism that would make heterogeneous services available to the developer for composition and integration. Moreover, existing infrastructures for service discovery provide limited, or not at all, support for semantics.

We argue that the Service-Oriented Development (SOD) community will inevitably turn to standards-based methodologies, languages and tools that will enable the development of applications composed of heterogeneous services such as Web, P2P, and Grid services. To satisfy these needs, we introduce a query language and its enacting engine, as the first step towards enabling the discovery of heterogeneous services in a unified, standard-based, and semantically enhanced manner. The results may then be used for the development of service compositions, regardless of the nature of the constituent services.

2. The Unified Service Query Language

The Unified Service Query Language (USQL) is an XML-based language enabling service requestors to interact with heterogeneous service registries and/or repositories, for the discovery of available services. USQL provides a formal description of the unified service requests along with their corresponding responses.

Although syntactic information suffices for the description of a service from a technical point of view, experience has shown that confining a service query to syntactic matching yields in most cases to scrappy results; the response to a syntax-based query either misses services, or contains services which are actually irrelevant to the initial request. Furthermore, the limited expressiveness of syntactic information is an obstacle when applying service discovery at runtime. To tackle such cut-backs, USQL enhances service requests with semantic information, in order to provide users with more expressive means. The supported semantics consist of domain-specific annotations which are bound to service operations and their respective input/output.

Briefly, USQL provides the following elements for semantically annotating service requests:

  • Domain: This element enables requestors to specify an application domain for the requested services and thus to semantically enhance the query and to confine the search range. This is the first step towards overcoming scrappy and irrelevant results.
  • Input/Output: These elements enable requestors to apply semantic criteria regarding the expected input/output of an operation offered by a service.
  • Capability: This element enables requestors to apply semantic criteria regarding the expected capability (i.e. the abstract functionality) of an operation offered by a service.

The Input, Output, and Capability features are combined in the context of an Operation element introduced in USQL, which is used for explicitly expressing requirements at the operation level, rather than at the service level. Hence, USQL moves one step further with respect to well known service registries and their query mechanisms, such as UDDI [1], by applying service discovery in a more sophisticated and fine-grained manner.

In addition to providing semantics for expressing service requirements, USQL defines a set of operators, which are applied to the aforementioned semantic annotations and enhance the matchmaking process with reasoning and inference, thus yielding to more solid and accurate query results.

USQL supports the following semantic operators:

  • Exact: Indicates that the element's value must be an exact match of the value of the corresponding element in the service advertisement.
  • Abstraction: Indicates that the element's value must be subsumed by that of the corresponding element in a service advertisement.
  • Extension: Indicates that the element's value must subsume that of the corresponding element in a service advertisement, besides exact matching.

The following snippet illustrates a sample of a semantically enhanced USQL request:

A sample USQL request making use of semantics.

Figure 1: A sample USQL request making use of semantics

A USQL request is generic enough to enable the discovery of any type of service. In the above example, the service requestor asks for services pertinent to the Finance domain, or its parent domain, offering an operation capable of calculating the credit score of a loan applicant. The desired input for this operation should consist of the applicant's ID, or some other concept extending it, e.g. the applicant's SSN (Social Security Number). The desired output should consist of the applicant's credit score. Since no type of match has been explicitly defined for the output, it is implied that exact match is requested. The values of the Domain, Input, Output, and Capability elements come from the ontology specified by the ontologyURI attribute's value.

Besides supporting semantics, USQL offers a set of QoS elements enabling users to look for services based on their advertised cost (price), availability, and reliability. The combination of semantics and QoS provides a powerful tool in the hands of service requestors.

A sample USQL response to the aforementioned request is depicted in the figure below (Figure 2):

A sample USQL response.

Figure 2: A sample USQL response

The USQL response returns specific types of services, as opposed to the USQL request. Each service entity in the USQL response conveys two parts of information; the first part consists of information that is required for invoking the service, while the second part accommodates additional, human-readable information, like the service provider, a textual description of the service, etc.

USQL is currently evolving, so as to provide more detailed information for invoking a Web/Grid service. Such information will most likely include operation signatures, ports, etc. In addition, we're working towards providing support for P2P services, regarding the concrete information that is required for invoking them.

3. The USQL Engine

The USQL Engine is a powerful service search engine, based on the USQL language. Its main contribution lies in that service requestors are not required to hold technical and protocol-specific knowledge for neither registries nor services and they can thus focus on the formulation of service requirements in a consistent and rich way. The combination of the engine and the language constitute a high-level solution for discovering heterogeneous services (web, grid, p2p) in a unified way.

The USQL Engine high-level architecture.

Figure 3: The USQL Engine high-level architecture

Figure 3 depicts a high-level architectural view of the USQL Engine. Users may access the engine through a web service interface. The Ontology Repository maintains the domain ontologies, which are used for the semantic annotation of the USQL requests and the matchmaking process. Registry and P2P/Grid network entries are also incorporated in the ontologies, and they are associated with the domains their hosted service advertisements adhere to.

The Ontology Repository is managed by the Domain Administrator and Registry Manager interfaces, through the use of the Ontology Handler plug-in. These interfaces are exposed to authorized users through the engine's web service interface. Hence, domains, domain-specific concepts, and registry/network entries may be inserted, updated, deleted and retrieved during the configuration of the engine, while the service requestor interacts with the ontology repository only for retrieving domains and related concepts, so as to annotate the USQL request. The Ontology Handler plug-in wraps all implementation-specific details of the ontologies.

Another important functionality offered by the engine is the validation of USQL documents. The USQL Validator interface may be accessed through the web service interface, for validating USQL request and response documents. Its functionality is also implicitly used during the service discovery process.

The Service Discoverer interface provides the main functionality of the USQL Engine, being responsible for accepting and executing USQL requests. The target heterogeneous registries and/or networks are identified implicitly, according to the domain of interest expressed within the query, and accessed through the appropriate Registry Plug-ins. Each registry plug-in implements a standard interface and is further decomposed into pluggable components for handling syntactic, semantic, and QoS information conveyed by the USQL request. This approach unties the engine from specific standards regarding syntactic, semantic, and QoS descriptions. As far as semantics are concerned, the USQL Engine provides by default support for the OWL-S [2] framework, by implementing an OWL-S handler plug-in, which is responsible for mapping specific parts of the Service Profile and Service Model to USQL. Nevertheless, semantic handler components can be easily plugged in the engine, so as to provide support for other frameworks, such as the WSMO [3].

Finally, the handling of USQL documents is exclusively performed by the USQL Handler, a separate component responsible for validating, evaluating and processing USQL requests, as well as formulating the corresponding USQL responses, in the course of service discovery. The USQL Handler minimizes interdependencies among the engine and the language, since any future changes in USQL will only affect this specific component.

4. Discussion

This position paper introduces a language and its supporting engine for enabling the unified and semantically enhanced discovery of various types of services over heterogeneous registries and networks. USQL defines a minimal set of semantic features that can be used to annotate service requirements. These features are easily mapped by the USQL Engine to well known semantic frameworks, like OWL-S or WSMO, through a flexible, plug-in based mechanism. Thus, semantically enhanced service descriptions are exploited by our infrastructure, and may be applied to P2P and Grid services in the same way they do to Web services today.

Furthermore, our work foregrounds the need for integrating semantic descriptions in existing registry and network infrastructures. Information structures, as well as their respective publish-and-discover mechanisms, e.g. UDDI for Web services, JXTA [4] for P2P services, LDAP directories for Grid services, etc., need to be extended to support semantics. Although there have been a number of significant efforts towards this direction in the domain of Web services [5], little has been made with respect to other service types. We expect that such issues will be addressed in the near future, through the definition of standardized and widely accepted solutions, automating the process of service discovery, and bringing the vision of the Semantic Web [6] closer to its fulfillment.


This work is partially supported by the European Commission under contract IST-FP6-4559 for the SODIUM project (

5. References

  1. UDDI, Universal Description, Discovery & Integration,
  2. OWL-S, W3C Member Submission 22 November 2004, "OWL-S: Semantic Markup for Web Services",
  3. WSMO, Web Service Modeling Ontology,
  4. Juxtapose (JXTA) Technology,
  5. Massimo Paolucci, Takahiro Kawamura, Terry R. Payne, Katia Sycara, "Importing the Semantic Web in UDDI", Proceedings of Web Services, E-business and Semantic Web Workshop, 2002
  6. T. Berners-Lee, J. Hendler, and O. Lassila, "The Semantic Web", Scientific American, 284(5):34-43, 2001