Saros
Distributed Collaborative Editing and Distributed Party Programming
|
Classes | |
class | ConsistencyWatchdogClient |
class | ConsistencyWatchdogHandler |
class | ConsistencyWatchdogServer |
class | DocumentChecksum |
class | IsInconsistentObservable |
The consistency watchdog is one of the most important modules in Saros, because it is responsible to recover from situations such as programming faults or misuse by the user which have caused an inconsistent state between the participants in a Saros session.
Def: Consistency == The state of having files and folders equivalent to those at the hosts side.
This definition has three important parts:
Consistency is about files and folders, not about Editors, Viewports or Permissions
The host is the reference point for consistency. The host himself thus can never be in an inconsistent state.
How does it work in Saros?
Important components are:
ConsistencyWatchdogServer --- Generates checksums every 10 seconds for all files which are opened anywhere (host and clients)
ConsistencyWatchdogClient --- Receives incoming checksums and checks whether the local files match the checksums
ConsistencyAction --- Action for starting a recovery if the ConsistencyWatchdogClient found inconsistent files