24
• It must order all operations temporally, not only to avoid conflicts between operations,
but to ensure that the proper transformations can be computed for each operation.
• It must transformallsucceeding operations in this history whenever a new operation is
received that has an earlier timestamp, or an old operation is undone.
The need to maintain a global temporal order means that relatively heavyweight data dis-
tribution algorithms must be used in order to assure a correct total temporal order is avail-
able at each node. In addition, the fact that operations interact means that information
must be tracked about exactly what changes have been received by other instances of the
collaborative application, in order to calculate the correct transformation function at each
node. The fact that operations do not have an invariant representation means that each col-
laborator needs to transmit information about its own state along with the representation of
a change, so that that change’s representation can be properly interpreted.
In addition to the bookkeeping required to enforce a total temporal order on operations,
and to determine enough information about the editing history at other instances of the
collaborative application, a large number of operations may need to be transformed, de-
pending on how early in a local instance’s history the change has occurred. Just as configu-
ration management systems that use “forward deltas” (the equivalent of editing operations)
must recapitulate the history of an object to retrieve a particular version, an operational
transformation system, in order to transform the operations that have been affected by a
change in the history, must revisit the entire history of the object after a particular point in
time
One of the things I will show is that it is possible to represent operations in an invariant
way, so that transformations are not required. While the addressing mechanism becomes
more complicated, the ability to avoid transformations over successors in a history will turn
out to be very useful, as will the ability to support a wider variety of data distribution
mechanisms. These benefits come directly from removing the total temporal ordering re-
• It must order all operations temporally, not only to avoid conflicts between operations,
but to ensure that the proper transformations can be computed for each operation.
• It must transformallsucceeding operations in this history whenever a new operation is
received that has an earlier timestamp, or an old operation is undone.
The need to maintain a global temporal order means that relatively heavyweight data dis-
tribution algorithms must be used in order to assure a correct total temporal order is avail-
able at each node. In addition, the fact that operations interact means that information
must be tracked about exactly what changes have been received by other instances of the
collaborative application, in order to calculate the correct transformation function at each
node. The fact that operations do not have an invariant representation means that each col-
laborator needs to transmit information about its own state along with the representation of
a change, so that that change’s representation can be properly interpreted.
In addition to the bookkeeping required to enforce a total temporal order on operations,
and to determine enough information about the editing history at other instances of the
collaborative application, a large number of operations may need to be transformed, de-
pending on how early in a local instance’s history the change has occurred. Just as configu-
ration management systems that use “forward deltas” (the equivalent of editing operations)
must recapitulate the history of an object to retrieve a particular version, an operational
transformation system, in order to transform the operations that have been affected by a
change in the history, must revisit the entire history of the object after a particular point in
time
One of the things I will show is that it is possible to represent operations in an invariant
way, so that transformations are not required. While the addressing mechanism becomes
more complicated, the ability to avoid transformations over successors in a history will turn
out to be very useful, as will the ability to support a wider variety of data distribution
mechanisms. These benefits come directly from removing the total temporal ordering re-