Next: Design of a Simple
Up: Related Work
Previous: Bayou
In general, shared data space is a loose term for a system that facilitates
shared state between distributed clients. Desirable characteristics of
shared data spaces include scalability, reliability, and efficient
propagation of updates. By this definition, some of the systems evaluated
in this chapter are shared data spaces. The basic responsibilities of a
shared data space are to maintain share state, handle client-side updates,
and propagate updates to clients to provide data consistency.
In particular, we are concerned with a shared data space that supports
Web-based DCAs. We propose an implementation of a shared data space that
combines a number of the features of these other systems.
Each feature contributes to the performance of a Web-based DCA through an
aspect that relates to the Web environment.
- Fine-grained objects - The fundamental unit of data in a DCA,
fine-grained objects propagate more efficiently than memory pages or disk
blocks. Smaller, faster transmissions are good for keeping network traffic
to a minimum.
- Network-wide name space - The ability to find an object anywhere on
the Web requires a uniform network-wide name space.
- Caching - Users often access the same data repeatedly. Caching
brings that data to the user's machine because accessing local data is
faster and cheaper than accessing it remotely. Local state also enables
the client to run disconnected or with unreliable connections. Caches
also have the potential to keep client applications small in size. Small
client applications with caches containing a minimal working set of data
make it possible to run on computers with limited resources, e.g., PDAs or
network computers.
- Unsynchronized access - Data access without the use of locks
improves response time and simplifies implementation. In graphical
DCAs, it also avoids the problem of denying a
user access to an area of the screen just because someone else is holding a
lock on an object in that area.
- Update-based Protocol - Collaboration implies that users want to
see the contributions of others. Updates should be pushed into the user's
client application as opposed to having the user or client application
pull them in. Eagerly propagating updates will make data presentation
more accurate.
- Global ordering of updates - This ordering of updates will be used
to guarantee eventual consistency in a client/server system.
- Eventual consistency - Users can tolerate short-lived
inconsistencies as long as they are guaranteed eventual consistency, i.e.,
all caches converge over time.
Observing transient inconsistencies in data visualization will most
likely appear as flickers on the screen due to the difference in computer
and human response times.
- Client/server structure - A well-known location for connection to
the server is essential. The server simplifies group management and
encapsulates common system functionality, potentially minimizing the size
of client applications. In addition, a hierarchy of servers makes the system
scalable.
- Disconnected operation - Mobile computing requires disconnected
operation and/or the ability to operate with unreliable connections. Also,
many Internet Service Providers charge for connection time; disconnected
operation saves money.
Encapsulating these techniques and properties into one data substrate will
give us an efficient, scalable, and robust mechanism for sharing data
between client applications over the Web.
Next: Design of a Simple
Up: Related Work
Previous: Bayou
Carmine F. Greco
Wed Mar 26 23:44:38 EST 1997