10
these improved machine calculated differences will sometimes differ from the actual editing
operations applied by an author, making them less useful for a system attempting to respect
the authors’ intentions.
Like Prep, when change distribution is enabled, Lotus Notes uses a loosely coupled dis-
tributed update protocol that synchronizes values between separate servers at regular inter-
vals (Greif and Sarin 1987). This protocol guarantees eventual consistency, but does not pro-
tect against data loss in every situation. Servers can be configured to enforce varying levels
of security, depending on the importance of particular data and the pattern or work on that
data.
The Bayou system (Edwards 1997) implements a different method of supporting loosely
coupled collaboration. Bayou builds on the traditional concurrency analysis used in database
theory. Every operation is either a write or a read of a shared data object. Write operations
are propagated between collaborating instances of an application, along with information
about dependencies between operations. In addition to dependency information, which al-
lows the detection of conflicts, Bayou also transmits merge procedures, code fragments that
can be executed to resolve conflicts between operations. Conflicts and resolutions are de-
tected and resolved in terms of the update setof fields affected by an operation. In addition
to merge procedures and the operational information about conflicts and collaborative ac-
tions, applications can control distribution policies, ask for session guarantees promising
various levels of consistency, and pick particular replicated data stores as primary synchroni-
zation points. While the architecture is nominally client-server, Bayou’s support for off-line
operation and local date replicas cause it to function like more like a peer to peer applica-
tion, since an external server is not always required to be available.
these improved machine calculated differences will sometimes differ from the actual editing
operations applied by an author, making them less useful for a system attempting to respect
the authors’ intentions.
Like Prep, when change distribution is enabled, Lotus Notes uses a loosely coupled dis-
tributed update protocol that synchronizes values between separate servers at regular inter-
vals (Greif and Sarin 1987). This protocol guarantees eventual consistency, but does not pro-
tect against data loss in every situation. Servers can be configured to enforce varying levels
of security, depending on the importance of particular data and the pattern or work on that
data.
The Bayou system (Edwards 1997) implements a different method of supporting loosely
coupled collaboration. Bayou builds on the traditional concurrency analysis used in database
theory. Every operation is either a write or a read of a shared data object. Write operations
are propagated between collaborating instances of an application, along with information
about dependencies between operations. In addition to dependency information, which al-
lows the detection of conflicts, Bayou also transmits merge procedures, code fragments that
can be executed to resolve conflicts between operations. Conflicts and resolutions are de-
tected and resolved in terms of the update setof fields affected by an operation. In addition
to merge procedures and the operational information about conflicts and collaborative ac-
tions, applications can control distribution policies, ask for session guarantees promising
various levels of consistency, and pick particular replicated data stores as primary synchroni-
zation points. While the architecture is nominally client-server, Bayou’s support for off-line
operation and local date replicas cause it to function like more like a peer to peer applica-
tion, since an external server is not always required to be available.