|
The ultimate goal of the Shastra Collaboration project is to make
multi-user collaborative computing as simple and easy to use as
single-user computing is today. Collaborative computing has
applications in distance learning, system support, computational
steering, and collaborative entertainment. The following three
examples illustrate the power of web based collaborative computing:
- While attending a conference an attendee plugs her portable laptop into a
conference network connection and engages in a collaborative conference, and
shared computational visualization with co-workers at her home site.
This was actually done by a student at Supercomputing 98.
- A collection of scientists at remote sites engage in a
collaborative visualization and analysis of a strand of the human
genome by retrieving the strand directly from the Human Genome Project
database and visualizing the structure at interactive rates.
- A user walks up to a machine with a Java enabled WWW browser
installed, visits the collaboration homepage where the software is
automatically downloaded and they join into collaborative sessions
with any other users on the fly.
The Shastra Collaboratory Web is an
infrastructure that supports collaboration over wide area networks and
integrates extremely well with the open internet standards of the
world wide web. The following design goals where of paramount
importance during the creation of the system:
- Availability - the system should be available to as many users as
possible.
- Cross-Platform - the system should operate on as many types of
machines as possible.
- High-Performance - the system should support supercomputing
applications.
- Multi-Lingual - the system should be programmable in multiple
languages (C, C++, Java, etc).
The Shastra Collaboration Architecture defines an extensible,
programmable, computing environment for developing, using, and
experimenting with sophisticated collaborative applications that
support large scale geographically dispersed collaboration amongst
multiple participants and systems. The architecture is connectionless,
scalable, supports multi-group federation, has an adaptable data
location model, supports flexible application coupling, multiple
coordination strategies, dynamic downloading of executable code and is
event driven. Interoperable implementations exist in C, C++, and Java.
Some of the key features of the current system are:
- Dynamicaly downloadable - the Java version is automatically
downloaded and executed in a secure fashion on demand. No components
need to be downloaded prior to the operation of the system.
- Distributed - their is no global dependence on any single server.
The system can continue operation even if the server originating the
activity crashes.
- Locality - communication and transfer of information is localized
to those users who are involved in the activity. No central server is
used.
- Scalability - the unconnected nature of the system and the
locality property allow the system to scale to a large size.
|