Java object-sharing in Habanero

has become possible to consider designing tools that support collaboration. Whereas network communications links previously required semi-custom solutions for each user community, Internet/Web-based communications are capable of reaching a much larger group of people. Habanero was written to facilitate the use of realtime multi-user software tools in education and the sciences. Unlike earlier projects (such as NCSA Telnet, NCSA Collage, NCSA Mosaic), where different source code was used for each supported hardware platform, the Habanero framework supports multiple hardware platforms by virtue of implementation in the Java programming language from Sun Microsystems. Implementation in Java necessitates, with minor exceptions, production of only a single source code. Beyond the obvious economic advantages of a single source code base, Java allows passing instantiated objects between hardware platforms. Shared software tools quickly become important as distributed, virtual, ephemeral work teams are used to pool resources. Current collaboration practice frequently involves travel, face-to-face meetings, and the use of printed material and photographs or drawings in an attempt to communicate underlying concepts, design rationale, and the range of design options considered. In complex problem domains such as CAD models, numerical visualization displays, and mathematical models, this very basic style of communications generally does not provide sufficient expressive power. Further, when attempts are made to actually conduct work in such ways, the resultant amalgam of fax transmissions, overnight shipments, and telephone calls significantly burdens the process. If the principal design and analysis tools in use by the scientists and engineers could themselves be shared between colleagues, a team member could very Java Object-Sharing in