14
ing consistency) have explored looser notions of consistency (Narayanaswamy and Goldman
1992).
The Timewarp system uses a similar set of class definitions to Prospero’s to determine
conflict sets (operations that may potentiallyconflict). Operations in the same conflict set
are then checked at runtime by a fixed algorithm, guided by application-specific callbacks
that test for actualas opposed to potential conflicts. Any actual conflicts then invoke a set
of standard conflict-resolution strategies that can be customized by the application writer.
Timewarp is based on editing histories (including explicitly available alternative histories). It
also includes a standard display protocol that enables conflicts to automatically apply “ren-
dering filters” that can change the display of an object that takes part in one or more unre-
solved conflicts. (Edwards 1997; Edwards and Mynat 1997).
The GINA editing environment (Berlage 1994) also retains full editing histories of applica-
tion objects, and these are used to synchronize replicated copies of the edited objects in the
separate active editing sessions. GINA’ supports conflict resolution by providing a flexible
undo facility capable of supporting out-of-sequence undo operations. This enables conflicts
to be directly resolved by users of the system.
From a collaboration point of view, one critical concurrency issue is what view applica-
tions have of the edited object:
Does the shared artifact have one state, or many, and what constraints are enforced on
those states?
State Configurations Convergent Divergent
Single State Typical relational data-
base
Prospero (at each node) HTTP
without DAV extensions
Multiple sequential states Augment/NLS
Multiple branching states
(Version trees)
RCS, SCCS CVS
Multiple states with merge
(Version DAGs)
Configuration Manage-
ment systems
Timewarp,
Prospero (globally)
Arbitrary state sets
(Operational selection)
GINA, distEdit Palimpsest, Prospero, PEDIT,
Epos
ing consistency) have explored looser notions of consistency (Narayanaswamy and Goldman
1992).
The Timewarp system uses a similar set of class definitions to Prospero’s to determine
conflict sets (operations that may potentiallyconflict). Operations in the same conflict set
are then checked at runtime by a fixed algorithm, guided by application-specific callbacks
that test for actualas opposed to potential conflicts. Any actual conflicts then invoke a set
of standard conflict-resolution strategies that can be customized by the application writer.
Timewarp is based on editing histories (including explicitly available alternative histories). It
also includes a standard display protocol that enables conflicts to automatically apply “ren-
dering filters” that can change the display of an object that takes part in one or more unre-
solved conflicts. (Edwards 1997; Edwards and Mynat 1997).
The GINA editing environment (Berlage 1994) also retains full editing histories of applica-
tion objects, and these are used to synchronize replicated copies of the edited objects in the
separate active editing sessions. GINA’ supports conflict resolution by providing a flexible
undo facility capable of supporting out-of-sequence undo operations. This enables conflicts
to be directly resolved by users of the system.
From a collaboration point of view, one critical concurrency issue is what view applica-
tions have of the edited object:
Does the shared artifact have one state, or many, and what constraints are enforced on
those states?
State Configurations Convergent Divergent
Single State Typical relational data-
base
Prospero (at each node) HTTP
without DAV extensions
Multiple sequential states Augment/NLS
Multiple branching states
(Version trees)
RCS, SCCS CVS
Multiple states with merge
(Version DAGs)
Configuration Manage-
ment systems
Timewarp,
Prospero (globally)
Arbitrary state sets
(Operational selection)
GINA, distEdit Palimpsest, Prospero, PEDIT,
Epos