Next: Application Model
Up: Distributed Virtual Reality
Previous: General Idea and Problems
For a distributed multi-party application, there are a number
of constraints which we might try to satisfy.
-
Convergence, or does the interface show a system that
reaches eventual consistency.
-
Determinism, or does the system behave according to users'
expectations of the underlying model.
-
Multiple Modifiers - does the system allow more than a single user to
modify an object (write/update state associated with an object).
-
Interactivity - does the system let users lock an object so that they
then have exclusive write/update access.
A key point in the
design of the system is that when operating over a network with loss,
reordering, and different levels of throughput/latency between
different senders and recipients, it is clear that it is
impossible to satisfy all four of these at any one time.
It should be sufficient to relax one of the constraints at one
time, but it will dependent on a particular application and user
requirements which, constraint is the appropriate one to relax.
Network conditions that pertain to each of these constraints are:
-
Capacity - bits per second - may differ between a sender and a set of
recipients - a distribution tree rooted at each sender will have paths
to recipients, and different parts of the sub tree may have different
capacity.
-
Errors/Loss - packet loss may be due to noise on the line, transient
outage, or temporary congestion. Again, in a multi-party application,
this may be different for different receivers.
-
Availability - networks can partition. Some senders or recipients
may crash, or reboot at different times during a multi-party session.
-
Delay - delays over long-haul networks8.4, even without
queues, can be significant. Again, they will usually differ from one
recipient to the next.
Next: Application Model
Up: Distributed Virtual Reality
Previous: General Idea and Problems
Jon CROWCROFT
1998-12-03