Next: ACKNOWLEDGMENTS
Up:
Tools for Implementing
Previous: USING MULTIPLE MULTIUSER
Three main conclusions can be drawn from this paper:
-
A variety of tools can be used
to support the implementation of multiuser applications.
Some of them such as shared object systems extend programming
language abstractions,
others such as distributed RPC systems extend communication abstractions,
while still others such as shared window systems,
GroupKit,
Rendezvous,
and multiuser Suite
extend user-interface abstractions
such as windows, widgets, views, and active variables,
respectively.
-
Each of these tools has both important advantages
and disadvantages.
More important,
each one of them offers
some benefits that are not
offered by other tools and thus supports some class of applications
better than the others.
Database systems offer efficient querying of
large data structures and are thus suitable
for traditional applications such as airline reservation systems
that support independent multiuser interaction.
Distributed RPC and constraint
systems provide a high-level mechanism for keeping arbitrary
relationships among distributed
data and are thus suitable for applications such as the Mercury multiuser
module editor,
which allows users to make consistent changes to
related, distributed modules.
Message servers provide flexible mechanisms
allow clients for different users to be unaware of each other.
GroupKit supports extensible multiuser interfaces to applications developed
using an existing single-user toolkit.
Rendezvous provides high-level support for sharing of both
semantic data and their screen representation while making no
assumptions about how the screen representations are generated.
Multiuser Suite provides high-level and efficient
support for a variety of sharing,
concurrency control, communication, and access control schemes,
and allows users and applications to change these schemes
dynamically.
-
The approach of
using a single-user tool as a basis for a multiuser tool
must be taken to support collaborative interaction requiring
sharing of interaction state that is not stored in client data
structures.
It is for this reason that almost all of the current
work in multiuser tools is being carried out by the user-interface community.
In this paper,
we have considered only a subset of the collaboration functions
to compare the automation, flexibility, and performance of multiuser
tools.
It is necessary to also
consider other important collaboration functions
such as support for multimedia
[Man91],
undo/redo
[Cho92],
and navigation
[Jef92]
in multiuser applications.
It would be also useful to
consider other criteria for comparing these tools such as how easy it is
to use the applications supported by them.
One of the important conclusions of this paper is that each of these tools
has important advantages and drawbacks.
We see two future approaches for solving this problem.
One approach is to make these tools ``open'',
that is,
allow a single client to use the services of multiple tools,
thereby allowing the application to use
different multiuser tools to share different parts of its data.
A second,
more difficult and challenging,
approach is to build an integrated system that offers the benefits
of all of these tools.
By describing the main concepts behind the design of these tools and
pointing out the similarities and differences among the approaches
implemented by them,
this paper has taken a first step towards this goal.
Next: ACKNOWLEDGMENTS
Up:
Tools for Implementing
Previous: USING MULTIPLE MULTIUSER
Prasun Dewan
Wed Mar 3 12:06:07 EST 1999