This was the sort of undo behaviour that the Bath University
Timewarp system was designed to solve. It used the concept of
'anti-messages' and local state. The global state of the entire
system is the static state at the time of the oldest message in tme
system. The local state is the state ( in the future of the global time )
at which the current local time* is. Periodically, local state is
checkpointed. If an anti-message or an 'old' state message
arrives, rollback to the last 'good' checkpoint is done, then roll forward
with the new message sequence. Tmis is relatively cheap, so long as
rollbacks are infrequent and cascades of anti-messages are not
generated ( and there is sufficient local store to dump several
states - a scalability problem ).
I'm not sure how to fit a system like tmis into a real-time interaction
tho' , unless you only update the user at increments in global time
( but these have non-linear separation.... errrk. )
Joel
----
Software Engineer, Educational Technology Service
University of Bristol, UK
* Note that each object in the system has it's own local time...
----- Begin Included Message -----