Patent ID: 7032033

Claim:
A method for maintaining synchronization of data stored on a server, where components of the data are discrete objects that are separately modifiable on clients that are coupled to the server over a network and wherein modification to the components of the data on the clients can be uploaded to the server, comprising the steps of: (a) associating a version identifier with the data, said version identifier being incremented each time that a change to any component of the data occurs on the server; (b) each time that a component of the data is modified on the server, assigning to the component the value of the version identifier that was current at the time the component was modified on the server, other of the plurality of components comprising the data, which were not then modified, retaining a version identifier previously assigned thereto; and (c) detecting a proactive collision between a component of the data just downloaded to any client and a modified version of said component that was previously downloaded and modified by a user on said client, as a function of the values of version identifiers associated with the component downloaded and the modified version of the component, causing an indication of the proactive collision to be provided to the user, enabling the user to resolve the proactive collision.