Replicated Dynamic Web Services Using Server-Side Java

A key challenge in the development of the Internet is to simplify construction of scalable wide-area services, particularly new-generation services with dynamically generated content. One approach to scaling Internet services is to deploy generic computing power and storage in the network, in order to absorb service load through active caching or dynamic service replication. This introduces distributed state that must be kept consistent in order for the service to function correctly.

We are experimenting with an approach to automatic state management for dynamic Internet services based on server-side Java technology. The goal of the research is to allow transparent caching or replication of dynamic services, a key step toward automatically converting unscalable service implementations into scalable ones. Our approach transforms the bytecodes of a Java-based service to capture and propagate object updates using a weak consistency model that preserves update atomicity. The consistency model uses conits--groups of application-defined related objects--as the granularity for caching, consistency, and synchronization. A prototype demonstrates on-demand caching of service code and data in Web application proxies.

Ivory Online



J* Object Instrumentation Environment

Ivory is based on JOIE, a toolkit for transforming Java classes. For more information about JOIE, refer to the following articles:

Related Work at Duke

Sara E. Sprenkle
Last modified: Wed Feb 20 16:33:58 EST 2002