Build online collaboration applications that can be run from any Java client.

Platform(s):  All Java capable Operating Systems
Date Posted:  13 December 1996
Updated:  16 July 1997

ShakingHands is a Java-based collaborative application system for creating and conducting online collaborations. ShakingHands' architecture defines a single method and location for real-time access to both a collaborative application and its associated data. All components of a ShakingHands collaborative system reside on the network. Users "join" a collaborative application, gaining access to both the application and the data from the same network-based Java server. With ShakingHands, developers can create applications for support synchronous white board sharing and Web page viewing; audio conferencing; network gaming; or joint form-editing.

ShakingHands includes four collaborative applications: Foil Server, White Board, Chat Server and Network Gaming. Foil Server is a presentation application that allows multiple users to view and navigate a set of foils, or "overheads," simultaneously. The White Board program, which can be used with Foil Server, enables multiple users to use and view an online whiteboard. Chat Server, an online chat server similar to IRC, can also be used concurrently with Foil Server. Network Gaming is a demonstration of ShakingHands' ability to support inter-client, multi-party games.

Users connect to a ShakingHands collaborative system by loading its URL. (The Java servers handling the collaborative applications run on the same node or cluster as this Web server.) A collaborative applet is then automatically downloaded to the client from the Web server. User events are marshaled by the applet and sent to the appropriate Java server, which then propagates the events to other clients. Clients can archive information for later playback.

ShakingHands collaboratory servers are extensible and scaleable. Clients can dynamically attach new objects or methods to a server, or modify the behavior of the existing objects. To provide scalability, Java collaboratory servers are designed to run multiple server processes on a cluster of processors. The ShakingHands architecture also includes a conference bus so that the collaboratory servers can communicate amongst themselves. Using this inter-server communications, on the conference bus and by partitioning parties across servers running on distinct nodes.