So I think that thinking about whiteboard and WebWisdom in Tango is quite fruitful as it reveals some useful general points about robustness and archiving of Tango Sessions. Firstly note one cannot assume the client applet is there. It takes an unknown time to load and unload. Further user can destroy it or its connection to webwisdom with an innocent click of their mouse. Thus one needs strategy used in shared browser and WebWisdom where one resends URL every 30 seconds or so. One checks URL of client and changes if the new value is different from old one. This covers case where slide changes and also case where user or system has destroyed connection. For applet webwisdom client will create it if necessary and if it exists just load a new image without reloading applet. Now in whiteboard version of WebWisdom we assume 4 layers 1: background Image defined by Image URL 2: Master annotations maintained on master client but sent to all clients in session 3: Separately for each client, user annotations maintained on each machine and NOT sent anywhere 4: Telecursor/marker maintained by master and sent to all clients. Distinguished from layer 2 as not preserved in save operation Layer 1 is created by WebWisdom by calling applet either in create or update mode. Layer 2 and 4 are updated by whiteboard separately from WebWisdom; however for late comers and clients that screw-up, we need an interface to request update of these layers on a particular client. This is done by WebWisdom calling at its or users request an appropriate method in client applet. This applet communicates with master through "bytes" channels. For robustness I need an interface to be able to extract "state" of layers 1 2 and 4. I suggest you label state by a 5-vector (Overall Info gives a fifth label and lets include layer 3 for completeness) which I can determine by calling a suitable method. See below for discussion of state label Database is created for near future by automatic or user requested save of applet to disk. The disk used is on machine where annotations create. We must label the object saved for two reasons. Firstly it will help robustness as I can check from state if all clients do indeed see same state. Secondly we must be able to label each file uniquely so we can properly store into a real database and also check that if reread a file after a crash, we have read back correct version as while reading back master might have changed URL. So what is a good database record label? First note we do have a vector or tuple. Label is Global label: Some Session Name created by Tango; datetime started and perhaps a special user optional field Layer 1 label: URL and datetime fetched Layer 2 label: datetime last updated Layer 3 label: datetime last updated Layer 4 label: datetime last updated Note this type of structure holds for other applications and says Tango needs to generate unique ID's for sessions to label data they produce. These labels need to be distributed to clients so they can be used to label consistently related information from each client. In whiteboard, the applet generates datetime labels but Tango/WebWisdom specifies rest of label. Note that WebWisdom can generate naturally save directory and file name and it may be good to have a method call to set this. Finally can I tell what type of data that is being sent from channel or is this always 41?