A peer-to-peer protocol is based on the use of global timestamps and
client priorities in serializing modifications to a shared
workspace of real-time
collaboration. The method caters to dynamic clients wherein a
client can leave or join an ongoing
collaboration session as long as there is always at least one
client present / remaining in the
collaboration session. The method can support multiple definitions of a modification, including partitioning-based definitions, wherein the method provides full support for locking of partitions, and a full treatment of inter-partition synchronization via a modification definition over multiple partitions. The method is capable of utilizing the many
standard methods of creating a global, distributed, synchronized
clock for the global timestamps utilized by it. The method is
rollback-based for correcting tentative but incorrect serializations, and provides additional
backup in terms of checkpoints for additional safety and for the support of lightweight, pervasive clients. The method includes many optimizations for efficiency, and includes a method of switching to and back from distributed
server-based
serialization for the periods when the network response is better suited to a distributed
server than the peer-to-peer protocol.