 |
Networked Distribution and Collaboration
We advocate the approach of integrating a collection of
function-specific tools into a distributed and extensible environment,
where tools can easily use facilities provided by other tools.
Isolation of functionality makes the environment modular, and makes
tools easy to develop and maintain. Distribution lets us benefit from
the cumulative computation power of workstation clusters. Tool-level
cooperation allows us to exploit the commonality that is inherent to
many scientific manipulation systems. An enabling infrastructure of
communication and interaction tools, display and visualization
facilities, symbolic processing substrates, and simulation and
animation tools saves avoidable re-implementation of existing
functionality, and speeds up the application development.
The Shastra environment consists of multiple interacting tools. Some
tools implement scientific design and manipulation functionality (the
Shastra Toolkits). Other tools are responsible for managing the
collaborative environment (Kernels and Session Managers). Yet others
offer specific services for communication and animation (Service
Applications). Tools register with the environment at startup,
providing information about the kind of services that they offer
(Directory), and how and where they can be contacted for those
services (Location). The environment supports mechanisms to create
remote instances of applications and to connect to them in
client-server or peer-peer mode (Distribution). In addition, it
provides facilities for different types of multi-user interaction
ranging from master-slave blackboarding (Turn Taking) to synchronous
multiple-user interaction (Collaboration). It implements functionality
for starting and terminating collaborative sessions, and for joining
or leaving them. It also supports dynamic messaging between different
tools. Tools are thus built on top of the abstract Shastra layer. The
architecture of the system is depicted below:
Collaborative Sessions, or Sessions, are instances of synchronous
multi-user collaborations or conferences in the Shastra environment. A
collaboration in Shastra consists of a group of cooperating tools
regulated by a Session Manager, the conference management tool of
Shastra. One Session Manager runs per collaborative session. It
maintains the session and handles details of connection and session
management, interaction control and access regulation. It keeps track
of membership of the collaborative group, and serves as a repository
of the shared objects in the collaboration. It supports a multicast
facility needed for information exchange in a synchronous multi-user
conferencing scenario. It has a constraint management subsystem that
resolves conflicts that arise as a result of multi-user interaction,
enabling maintenance of mutual consistency of operations. It has a
regulatory subsystem that controls synchronous multi-party
interaction, and provides a floor control facility based on
turn-taking. Every Session Manager implements functionality to service
the following session control requests. The Information Flow in the
Shastra Environment is shown in the following Figure.
|
 |