NCSA Habanero ® - Synchronous collaborative framework and environment

Annie Chabert, Ed Grossman Larry Jackson, Stephen Pietrovicz

Software Development Division at the National Center for Supercomputing Applications

152, Computing Application Building

605 East Springfield Avenue
Champaign IL 61820 USA
+1 217 244 1957
{chabert, egrossma, jackson, srp}ncsa.uiuc.edu

ABSTRACT

This demonstration presents the NCSA Habanero® project, which investigates how interpersonal collaboration can be enhanced by providing work groups with distributed multi-user tools. Habanero is a software framework of inter-computer object transportation capabilities, which facilitates the construction of software for synchronous communication over the Internet. It also provides an environment for creating and participating in collaborative sessions and a suite of tools, which utilize the framework and demonstrate many of its capabilities.

Habanero is designed to allow collaboration among a small or large number of people with no limitation on the numbers or kind of collaborative software and hardware. It also enables construction of groupware systems and supports the transformation of single-user software tools into multi-user collaborative tools. This allows application developers to concentrate on their own areas of expertise. They do not need to become experts on everything from computer networks to security issues.

Keywords

Guides, instructions, authors kit, conference publications

THE HABANERO FRAMEWORK

The NCSA Habanero framework [2] provides state and event synchronization for multiple copies of a software tool. Tools can be hosted on any hardware platform that supports Java® [6], allowing session participation regardless of the participant’s hardware. The cross-platform synchronization of arbitrary tool types is made possible by sharing Java objects using the Habanero API.

Habanero works by replicating applications across clients and then sharing all state changes in those clients. When a new client joins a session, it is sent information about which applications are running in that session. Each application is then sent enough information to completely replicate the important state being shared by the existing copies of that application. Habanero also ensures that all clients see the same state changing events in the same order, which results in applications appearing the same to all clients. Habanero allows programmers a great deal of flexibility in determining what exactly a state-changing event is.

Sometimes serializing events is not sufficient to present a consistent view of an application to a number of distributed users. Habanero also provides a general floor control object, called an arbitrator, those controls which events can be performed at a given time. Some examples of arbitrators are a student-teacher arbitrator, which only allows a privileged person (the teacher) to initiate actions, and a turn-taking arbitrator, which requires events to be initiated in order by each participant. Arbitrators can be further specialized by developers. We illustrate this with our checkers arbitrator, a specialization of the turn-taking arbitrator which also checks that the rules of checkers are being followed, so that an illegal move is rejected rather than being propagated to other participants.

One more important class of arbitrator provides locking. Locks in Habanero are objects, which are used to restrict access to application resources. Locks can conflict with each other, and are thus used to ensure that only one participant has access to a given resource. They also can conflict with actions, so that a given action can only be performed by the creator of the lock. Locks are used in the shared whiteboard to ensure that no one can delete a shape while it is being moved.

THE HABANERO ENVIRONMENT

Additionally, Habanero provides a collaborative environment to support the Session Management process ; the environment enables each participant to create, join, leave, and browse sessions. The Habanero environment supports:

THE SUITE OF COLLABORATIVE TOOLS

The NCSA Software Development Division, and others, have developed a suite of tools to use our framework and demonstrate certain of its key capabilities. We provide basic tools that we think are essential to establish a remote collaboration. These tools cover one or more of the three collaborative dimension [5]: Production to produce the content of the collaboration, Coordination to coordinate individuals, and Communication. Among the Habanero suite of tools, we can distinguish the voting tool as an example of Coordination, the text and audio chats as instances of Communication, while the Text Editor illustrates Production. The Whiteboard covers all three. A number of other tools have been provided by domain experts, such as the Weather Visualizer [7] and the JavaGraph [3].

Because the Habanero framework is designed to allow rapid and easy development of collaborative applications and provides an open API to for those wishing to define new functionality, new collaborative tools are newly designed as our population of users and developers increases.

DEMONSTRATION SCENARIO

In order to demonstrate all the tools, we will focus on few of them by simulating how two medical interns can interact together and can share their knowledge and diagnosis concerning some of their patients’ cases. This demonstration will show some of the key features of the environment such as the notification mechanism to invite participants, awareness of the other, etc…

We will present the Audio and Textual Chats as tools for communicating. The medical data will be shared viewed, annotated...) through the White Board and the HDF Viewer [1]. The Visible Human MRI database browser [4] will allow our collaborators to browse general medical information. The Voting Tool will enable them to reach a compromise about their different diagnosis. Finally, through the Text Editor they will compose their common diagnosis. Figure 1 shows a screen dump of this scenario: using a basic Chat window (a), viewing an x-ray in the whiteboard (b) and browsing MRI data through the MRI viewer(c).


figure 1 : Habanero Environment and tools in a live session

REFERENCES

1. NCSA Collaborative HDF Viewer
http://hdf.ncsa.uiuc.edu/hdf/java/chdv/
NCSA Software Development Division, (1996).
2. NCSA Habanero® Home Page
http://havefun.ncsa.uiuc.edu/habanero/
NCSA Software Development Division (1996).
3. NCSA Relativity group java codes
http://jean-luc.ncsa.uiuc.edu/Codes/java/JavaGraph
NCSA Relativity Group, (1996).
4. The NPAC Visible Human Viewer
http://www.npac.syr.edu/projects/vishuman/VisibleHuman
Chang, M. and Coddington, P. (1996).
5. Salber, D., Coutaz, J., Decouchant, D., and Riveill, M., De l’observalite et de l’honetete:
le cas du contre d’acces dans la communication Homme-Homme mediatise, in the proceedings of IHM’95 (1995), p27-33.
6. The Java® Language: an overview
http://java.sun.com/doc/Overviews/java/java-overview-1.html
Sun Microsystems Inc (1994).
7. Welcome to the IICE Home Page
http://www.atmos.uiuc.edu/horizon/subprojects/iice
Department of Atmospheric Sciences, University of Illinois (1996).