Fakultät für Informatik TU München - Fakultät für Informatik
Lehrstuhl III: Datenbanksysteme
Technische Universität München
Home  |  Personen  |  Forschung  |  Lehre  |  Sonstiges  | 

Semantic Caching for Web Services

Abstract

We develop a semantic caching scheme suitable for caching responses from Web services on the SOAP protocol level. Existing semantic caching schemes for database systems or Web sources cannot be applied directly since Web services typically have more constraints on requests and there is no semantic knowledge available about the requests to and responses from Web services. We utilize an XML based declarative language to annotate WSDL documents (describing the syntax of requests and responses of Web services) with information about the semantics of requests and responses. Using this information, our semantic cache answers requests based on the responses of similar, previously executed requests.

Introduction

Caching for Web services has been addressed more than once in the past, e.g., by Akamai or by the World Wide Web Consortium in their usage scenarios S032 and S037. But the proposed approaches are either very abstract or are limited to a more or less straightforward store-and-resend of SOAP responses. Therefore, this paper proposes an alternative, more flexible solution: a Semantic SOAP Protocol Level Cache (SSPLC) for SOAP responses in request/response message exchange patterns (like RPC). The resulting Web service architecture is shown in Figure 1. Clients are not accessing the central servers directly; instead they are accessing instances of SSPLC. As long as requests can be answered based on cached data, there is no need to contact the central servers hosting the Web service. Therefore, processing demands on the central servers are reduced, bandwidth consumption is diminished and latency is reduced. The advantage of a semantic cache is that it reuses the responses of prior requests to answer similar requests, not only exactly the same. Thus, if a request R1 is sent to a Web service asking for all books written by ``Kemper'' and afterwards a request R2 is sent asking for all books written by ``Alfons Kemper'', a semantic cache can reuse the response of R1 to answer R2.

Our cache has manifold applications: it can be used as client cache, proxy cache, or edge server cache. Of course, there are major savings when the cache is used as proxy or edge server cache because of synergy effects between clients. The usage of our proposed cache is very similar to the usage of an HTTP proxy, because the SSPLC is a generic solution for arbitrary Web services. Therefore, an existing SSPLC instance can be used for the caching of several different Web services. Thus, additionally to the afore mentioned advantages, SSPLC instances need not be hosted by service providers themselves, but can be run by anyone, just like companies and universities nowadays naturally run HTTP proxies.

Our approach relies on server cooperation. All instructions to control the SSPLC are embedded by the provider of a service either in SOAP result documents or in the WSDL document of the service using a declarative language. The ability to augment the SOAP results is the only modification to a Web service required for the use of SSPLC and can easily be implemented without much coding effort.

 

Figure 1:
Web Service Architecture With Distributed Caching

Work

A paper about this topic is submitted for publication.
This paper sketches basic ideas of semantic caching of Web services. It introduces an example Web service used to explain our semantic caching scheme and presents some background information for semantic caching and Web services. Several basic design decisions are described and a detailed description of the SSPLC, the embedded control instructions of service providers, and some sophisticated features of the SSPLC are presented. Experimental results are shown and related work is discussed.

Lehrstuhl für Datenbanksysteme
Letzte Änderung: 25.05.2005 um 14:38:36