Patent ID: 7693958

Claim:
A method comprising: during an instant messaging session: establishing, by a client device, a shared space accessible by the client device and one or more other client devices; specifying data by the client device to be shared with the one or more other client devices, wherein at least one said other client device is not available during the instant messaging session; storing the data in a local storage or in a storage that is not included in the client device and the one or more other client devices; synchronizing the shared data with each said other client device when the client device is available, wherein synchronizing the shared data with each said other client device includes communicating a message, the message comprising a version vector that contains at least one entry that identifies an item in the shared data, from the client device to each said other client device when each said other client device is available, the version vector utilized to trigger replicating shared data that is modified when the version vector from the client device differs from a version vector maintained by at least one said other client device, and updating the shared data to a current status based on each entry that differs between the version vector from the client device and the version vector maintained by the at least one said other client device, the updating facilitated by the at least one said other client device contacting the client device and executing a synchronization protocol; detecting when a conflicting change is made to the item in the shared data, wherein when the conflicting change is detected: flagging the item in the shared data as conflicting; and notifying at least one client device of the conflict for correction; and providing the updated shared data stored in the local storage or the storage not included in the client device and the one or more other client devices to the at least one said other client device.