
[ Previous ] [ Index ] [ Next ]


One way is to keep track of all the events that have occurred since a hablet starts up, and if a new client joins the session, to replay all those events. However, this is not the way that Habanero implements synchornous collaboration, because this method could take a long time to replay all the events, especially if they generate a lot of calculation.
Instead, Habanero sends the current state of the existing hablets to new clients that join the session. Habanero then sends any new events to all clients. The drawback of this approach is that hablets need to know how to package up their internal state to make that state available for sending to other clients. The advantage is that new joining clients immediately reach the same state as the other clients.
Here is an example of this process in diagram form:
Here is an example of this process in diagram form:
| 1. | The user Ian types "Oh, when the saints" and presses return like before. |
| 2. | Because this generates an ActionEvent, and because we had earlier registered ActionEvents to be propogated, the event is sent to Habanero instead of to Ian's FieldListener. |
| 3. | Habanero calls actionPerformed() in both Ian's and Sven's FieldListeners. |
| 4. | The two actionPerformed()s get the data from the event and put it in their respective outAreas. |
Habanero® is a registered trademark owned by The Board of Trustees of the University of Illinois. Copyright 1996-1998. All rights reserved. Java(TM) is a proprietary trademark owned by Sun Microsystems, Inc.
![]()
The National Center for Supercomputing Applications
University of Illinois at Urbana-Champaign
Contacts page