39
tion. One way to make manipulation of changes possible and easy is to use an underlying
data model that treats changes as first class objects.
The best-known change-oriented implementation technique is operational transforma-
tion. However, these algorithms make little use of changes as objects in the user interface,
nor do they expose change-based manipulation to the application. This means that Ellis and
Gibbs’ original algorithm is not in our direct scope, even though it manipulates changes as
first class internal objects. On the other hand, some operational transformation algorithms
do qualify, such as Prakash and Knister’s extension of Ellis and Gibbs’ algorithm to solve the
problem of collaborative undo. In this algorithm, individual changes are manipulable, and
can be added to or removed from local editing histories by the user. I am interested in sys-
tems where change orientation is fundamental, and not ones that simply use as part of pro-
tocol design and optimization.
While version control is certainly one core issue in system design, and one that fits well
with a change-oriented system, it is far from the only reason to track operations. In
authoring and design tasks, merge and undo capabilities are the really interesting points for
exploration and research, as is taking effective advantage of divergent editing without cre-
ating chaos. Different ways of implementing the bookkeeping of version management are
useful adjuncts to exploration of these issues. This chapter will explain what change-
oriented concurrency implies, as well as why one might want to use it. It will also elaborate
on some of the complex problems of data and activity modeling that are required in a system
that accords changes first-class status.
2.1 The fundamentals of change-oriented concurrency control
The basic idea is in fact the simple one implied by name. The fundamental service pro-
vided to the application by a collaboration infrastructure is a sharable data structure. Rather
than directly accessing and manipulating the state of that shared structure, change-oriented
tion. One way to make manipulation of changes possible and easy is to use an underlying
data model that treats changes as first class objects.
The best-known change-oriented implementation technique is operational transforma-
tion. However, these algorithms make little use of changes as objects in the user interface,
nor do they expose change-based manipulation to the application. This means that Ellis and
Gibbs’ original algorithm is not in our direct scope, even though it manipulates changes as
first class internal objects. On the other hand, some operational transformation algorithms
do qualify, such as Prakash and Knister’s extension of Ellis and Gibbs’ algorithm to solve the
problem of collaborative undo. In this algorithm, individual changes are manipulable, and
can be added to or removed from local editing histories by the user. I am interested in sys-
tems where change orientation is fundamental, and not ones that simply use as part of pro-
tocol design and optimization.
While version control is certainly one core issue in system design, and one that fits well
with a change-oriented system, it is far from the only reason to track operations. In
authoring and design tasks, merge and undo capabilities are the really interesting points for
exploration and research, as is taking effective advantage of divergent editing without cre-
ating chaos. Different ways of implementing the bookkeeping of version management are
useful adjuncts to exploration of these issues. This chapter will explain what change-
oriented concurrency implies, as well as why one might want to use it. It will also elaborate
on some of the complex problems of data and activity modeling that are required in a system
that accords changes first-class status.
2.1 The fundamentals of change-oriented concurrency control
The basic idea is in fact the simple one implied by name. The fundamental service pro-
vided to the application by a collaboration infrastructure is a sharable data structure. Rather
than directly accessing and manipulating the state of that shared structure, change-oriented