next up previous contents
Next: Java source files Up: A Simple Shared Data Previous: Multiart

Conclusions

 

The combination of Java and shared data spaces can turn the World Wide Web into a powerful collaboration tool. Performance and scalability are improved by migrating functions and data from a server to the user's machine. Full functioning shared data spaces with disconnected operation, optimized caches, and propagation policies that reduce network communication will enable a range of Web-based DCAs.

This thesis describes a simple implementation of a shared data space, a data substrate that aims to satisfy the common needs of distributed collaborative applications. Efficient, scalable, and robust shared data spaces can be useful for a variety of distributed systems applications.

Our implementation is designed for graphical DCAs, applications that can tolerate weak cache consistency. The level of consistency needed for an application's shared state will dictate the type of consistency policy needed in the shared data space. For instance, any data that relates to money (i.e., bank accounts, brokerage accounts, etc.) will require strict consistency for shared data. Ideally, shared data spaces will provide a number of policies for cache coherency. Our system provides a consistency policy through downloadable code. Extending this single piece of code (the Relay cache object) can put a different policy in effect for all clients. The WebFS project at the University of California, Berkeley [16] defines a data substrate similar to a shared data space which allows applications to choose a cache coherency policy.

Weakly ordered eventual consistency is a viable policy for graphical applications with human interaction. Humans have the ability to interpret the data they see on the screen. Short-lived inconsistencies are tolerable for certain applications, and this allows us to simplify the design of a shared data space for the Web by using weakly ordered eventual consistency. This variant of eventual consistency can be implemented as a last writer wins policy without the overhead of locks or ordered delivery of updates.

The Relay system is an implementation of a simple shared data space. It satisfies the three basic needs of DCAs:

  1. shared state,
  2. client-side updates, and
  3. data consistency.
The system is also a testbed for use of weakly ordered eventual consistency in Web-based DCAs. We believe that weakly ordered eventual consistency is a sufficient policy for applications that run in a graphical environment.

The Java development platform is well equipped to handle the programming needs of DCAs. Graphics, networking, and multithreaded APIs set a solid foundation for distributed Web applications. Java is young, but it is quickly becoming accepted as a programming language for the Web, mostly because of its integration with popular browsers.

As far as shared data spaces are concerned, Java applets do lack the ability to arbitrarily communicate with any machine. Although this thesis argued for a client/server structure, some may argue that shared data spaces should be designed as peer-to-peer systems. While a peer-to-peer structure offers some benefits, it is incompatible with currently accepted security policies for Java applets.

Our work is meant to be a stepping stone for future shared data space implementations. Many simplifications were made in the design and implementation of Relay and Multiart. Future work could improve on:


next up previous contents
Next: Java source files Up: A Simple Shared Data Previous: Multiart

Carmine F. Greco
Wed Mar 26 23:44:38 EST 1997