Shared applications that currently exist in the Mbone are what is termed Collaboration Aware, which is to say that they have been written specifically to be used by multiple simultaneous users, rather than simply being adapted through some kind of wrapper such as a shared windowing system with floor controller, to such use.
Wb and Nt represent a fairly radical departure from previous shared applications, in that they are engineered in the context of very large numbers of users (1000s) and over very long haul networks, where there are very poor guarantees of full connectivity for the duration of a conference that is using the application, and where the capacity and delay from any given source to the group of users of the shared application may be varying by orders of magnitude.
To deal with this, the authors of both of these tools recognize up front that consistency of views for all users is a holy grail, and simply unachievable within finite resources. However, correctness of view should be possible up to some point.
The starting point for solving this is that an application specific reliability is required, and that it is different for Wb and Nt.
Wb defines a set of operations that each user can carry out on the whiteboard, each of which is idempotent, or can be repeated without danger. The reliability in Wb is achieved through retransmission of missing operations. Again, to gain scaling to large numbers of participants, there is a very ingenious scheme to decide who requests a retransmission: Conventional schemes really on recipients notifying senders of missing packets through negative acknowledgement packets or NACKs. However, a NACK/Retransmit style protocols would not scale, as typically, a loss that is incurred somewhere in the MBone might be perceived by entire cohorts of receivers when a subsequent operation arrives; an implosion of NACKs from all of them would then result. Wb uses multicast to its own benefit. All messages for all functions are always multicast. They also all contain timestamps, and all participants monitor their closeness to each other. When a recipient wishes to request a repair retransmission, they first throw a dice with a number of sides depending on how near they are to the source of the missing message, and wait for the time indicated by the dice. If they subsequently see a repair request from one of their cohorts, they suppress timer that would otherwise have gone off and caused them to make the request.
The Wb scheme is self tuning, and works very well
Nt is somewhat different, in that it is not a whiteboard, but a shared document editor (Network Text). Thus the operations by different users cannot be conveniently made idempotent. Nt attempts a stronger ordering than Wb, but uses similar schemes to achieve the repair. In the event of a partition of the network, followed by a healed network, Nt will offer the users a choice of which branch of the now disjoint edits to follow (or to revert to the pre-partition version of the document).
Next: Background to NTE Up: Applications Previous: Roadmap Jon CROWCROFT