Data stored on a server are synchronized with corresponding data on a plurality
of client computers. To facilitate synchronization of the data, the data for a
class of nodes on the server are provided with a version identifier (a serial number)
that is incremented each time the data are modified on the server. During synchronization,
the version identifier for the data stored on the client is transferred to the
server, and the nodes stored on the client are updated by downloading nodes modified
on the server since the last synchronization. Data on the client that have been
modified are then uploaded to the server. Collisions between nodes of the data
that have been modified on two different clients are detected, and a user is given
an opportunity to resolve a collision.