A Brief Description
Replication is extremely important in mobile environments
because nomadic users require local copies of important data. Replication
is more important in mobile environments than it is in stationary environments,
because mobile users are often disconnected from a network or pay a high
price for a degraded network connection. While the stationary user has
fast, cheap, and easy access to off-machine resources, the mobile user
does not, and therefore needs to have important data replicated locally.
However, today's replication systems are not "mobile-ready."
Instead of improving the mobile user's environment, current replication
systems actually hinder mobility and complicate mobile operation. Designed
for stationary environments, replication services do not and cannot provide
mobile users with the capabilities they require. Instead, they often force
users to behave as if they were stationary, requiring the user to
make expensive, long-distance phone calls over low bandwidth links to synchronize
data with the server back home.
Consider, for example, the case of two businesspeople
who travel from Los Angeles to New York for a meeting. In their hotel rooms,
they would like to and should be able to directly synchronize data
on each of their laptops. However, existing client-server solutions require
that first laptop A contact the Los Angeles server via a long-distance
connection and upload the changes, and then laptop B can make the same
connection and download the changes . . . even though the two laptops are
physically only a few feet apart. Existing peer-to-peer solutions would
enable such direct communication, but suffers from dramatic scaling problems
in the number of replicas, limiting the number of overall users and impacting
performance.
Replication in mobile environments requires fundamentally
different solutions than those previously proposed, because nomadicity
presents a fundamentally new and different computing paradigm.
Roam
is a system designed to meet those requirements.
Why
Aren't Existing Systems Good Enough?
There are numerous examples, like the one above, that
illustrate scenarios in which mobile users would like to work but
cannot, given the restraints of the replication system. In general, one
main reason for this disparity is that many of the replication systems
and underlying algorithms were designed without considering mobile computing
and the strains mobility places on the system.
Before mobile computing was a feasible reality, software
designers simply didn't design their systems to be mobile-enabled. Computers
were largely stationary, so there was no need to consider what would happen
if it were easy for people to move around geographically. Consider the
case of mobile-IP. When the Internet Protocol (IP) was developed, mobility
was not feasible, and therefore was not considered in the design. Now that
mobility is a reality, many researchers are trying to fix or redesign
IP to support real mobility. Like the mobile-IP case, the replication system
software must also be redesigned to account for mobile computing.
What
Does Roam Provide?
Roam is built using the Ward Model---a new replication
architecture that has been designed especially with mobility in mind, though
of course it applies equally well to stationary environments. The Ward
Model provides a new replication paradigm that is neither strictly peer
nor client-server; rather, it is a hybrid model of the two that allows
everyone to be effectively a peer while maintaining good scalability in
the number of replicas.
Additionally, Roam provides a number of new
distributed algorithms. For instance, Roam contains new and improved
distributed algorithms for garbage collection (the deallocation of disk
space occupied by unnameable files) and for dynamic management of the version
vector, the main data structure behind most optimistic replication systems.
Overall, therefore, Roam provides: |