NTE is designed for use in multimedia conferences where there are other channels of communication between users than just NTE. Thus two users whose sites are not partitioned from each other attempting to modify the same line effectively simultaneously will see the change made by the later site being substituted for the change made by the earlier site. If such changes do not involve adding a line break to the middle of a line, then no lasting confusion should remain, and at least one of the users will be notified of what is happening. Hopefully, at this point the users will talk to each other and decide who should actually make the change. Even if the users do not have an out of band communications channel, they can always create a new block to make meta-comments to resolve the confusion.
It should be noted that although there are circumstances when one site does not even see the change made by the other site (for example, Site 1 does not seer Change 2 in figure 8.5), it is possible for the user interface to flag the fact that another user is attempting to modify the line, so that both users do realise exactly what is happening.
If one of the users adds a line break to the middle of a line, this is mapped into a truncation of the existing line, and the creation of a new line after the existing line with the remainder of the text. The overlapping request, if it happens after the line break insertion, but before the receipt of the message (see figure 8.6) will then re-assert the previous line. This will be confusing for users, as suddenly text has been duplicated.
One way to deal with this is to maintain a very short history, and if a remodification of a line we just modified arrives within the expected round trip time, we reassert (and retransmit with a new timestamp) the old unmodified line, and delete the extra created line. This strategy can of course be defeated by packet loss, but may reduce confusion in those cases where the problem can be detected.
It should be noted that packet loss can be treated as an abnormally long transmission delay for these purposes.
An alternative depends on the model we use for deletion - if deletion is an irreversible operation (i.e., deletion overrides modification), then simply deleting the line to be split and inserting two new lines in its place prevents this undesirable behaviour.
Next: Effectively Simultaneous Changes due Up: Limitations of the Data Previous: Effectively Simultaneous Changes to Jon CROWCROFT