| 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. |
|
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. |
|
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. |