US2011004584A1PendingUtilityA1

Multi-way, Peer-to-Peer Synchronization

42
Assignee: PALM INCPriority: Feb 2, 2007Filed: Apr 28, 2010Published: Jan 6, 2011
Est. expiryFeb 2, 2027(~0.6 yrs left)· nominal 20-yr term from priority
H04L 67/1095
42
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method of synchronizing data elements between devices can include receiving at a first device, from only one of multiple peer devices with which the first device is configured to synchronize, a request to synchronize data between the first device and the only one peer device; identifying data elements stored in the first device that have changed since a previous synchronization operation between the first device and the only one peer device; and transmitting, directly and solely to the only one peer device, for each of the identified data elements, a local data identifier and a corresponding change to be applied to a data element in the only one peer device that corresponds to the local data identifier. In some implementations, each local data identifier is transmitted in a format in which it is maintained in the first device.

Claims

exact text as granted — not AI-modified
1 . A method of synchronizing data elements between devices, the method comprising:
 directly receiving at a first device, from only one of multiple peer devices with which the first device is configured to synchronize, a remote data identifier and a corresponding change instruction;   determining whether the remote data identifier is included in a mapping in the first device; and   if the remote identifier is included in the mapping, applying the corresponding change instruction to a data element in the first device that is associated by the mapping to the remote data identifier; and if the remote identifier is not included in the mapping, creating a new data element to correspond to the remote data identifier.   
     
     
         2 . The method of  claim 1 , wherein the remote data identifier references a data element in the only one peer device that has changed since a previous synchronization operation between the first device and the only one peer device. 
     
     
         3 . The method of  claim 2 , wherein the corresponding change instruction specifies the manner in which the referenced data element has changed. 
     
     
         4 . The method of  claim 3 , wherein the change instruction specifies that the referenced data element has been added to, deleted from or modified in the only one peer device. 
     
     
         5 . The method of  claim 1 , wherein the new data element is created to have a local data identifier. 
     
     
         6 . The method of  claim 5 , further comprising adding to the mapping a correspondence between the remote data identifier and the local data identifier. 
     
     
         7 . The method of  claim 1 , wherein the remote data identifier is received at the first device in a format in which it is maintained by the only one peer device. 
     
     
         8 . The method of  claim 1 , wherein the first device and each of the multiple peer devices are included in a group of devices, wherein each device in the group is similarly configured to a) initiate a synchronization operation with any one of the other devices in the group and b) respond to a synchronization operation that is initiated by any one of the other devices in the group. 
     
     
         9 . A method of synchronizing data elements between devices, the method comprising:
 receiving at a first device, from only one of multiple peer devices with which the first device is configured to synchronize, a request to synchronize data between the first device and the only one peer device;   identifying data elements stored in the first device that have changed since a previous synchronization operation between the first device and the only one peer device; and   transmitting, directly and solely to the only one peer device, for each of the identified data elements, a local data identifier and a corresponding change to be applied to a data element in the only one peer device that corresponds to the local data identifier.   
     
     
         10 . The method of  claim 9 , wherein each local data identifier is transmitted in a format in which it is maintained in the first device. 
     
     
         11 . The method of  claim 9 , wherein identifying the data elements comprises determining whether a device table that tracks synchronization operations between the first device and other peer devices includes an entry corresponding to the only one peer device. 
     
     
         12 . The method of  claim 11 , wherein identifying the data elements further comprises identifying all data elements stored in the first device if the device table does not include an entry corresponding to the only one peer device. 
     
     
         13 . The method of  claim 11 , wherein identifying the data elements further comprises analyzing a change list that, for each change that has occurred since the previous synchronization operation, stores a data identifier that identifies the corresponding data element that has changed, a change operation that identifies the manner in which the corresponding data element has changed, and a counter value that provides a temporal reference for the change. 
     
     
         14 . The method of  claim 13 , wherein analyzing the change list comprises comparing the counter value of each entry in the change list to a counter value associated with an entry in the device table that corresponds to the only one peer device. 
     
     
         15 . The method of  claim 14 , further comprising updating the counter value associated with the entry in the device table upon initiation of a synchronization event between the first device and the only one peer device. 
     
     
         16 . The method of  claim 14 , further comprising updating the counter value associated with the entry in the device table upon completion of a synchronization event between the first device and the only one peer device. 
     
     
         17 . The method of  claim 16 , further comprising processing the change list to determine whether any entries in the change list can be deleted, wherein processing the change list comprises comparing the counter value of each entry in the change list to a counter value associated with the entry in the device table that corresponds to the only one peer device. 
     
     
         18 . The method of  claim 17 , wherein processing the change list further comprises deleting an entry in the change list whose counter value is less than a lowest counter value stored in the device table. 
     
     
         19 . The method of  claim 9 , further comprising advancing a synchronization counter each time a synchronization operation occurs between the first device and another device. 
     
     
         20 . A device comprising:
 a data store configured to store a plurality of digital data elements;   a synchronization module configured to directly synchronize the plurality of data elements in the data store with corresponding data elements in any one of multiple other peer devices; and   a computer-readable medium comprising program instructions that, when executed, perform operations comprising:
 directly receiving, from only one of multiple peer devices with which the device is configured to synchronize, a remote data identifier and a corresponding change instruction; 
 determining whether the remote data identifier is included in a mapping in the device; and 
 if the remote identifier is included in the mapping, applying the corresponding change instruction to a data element in the data store that is associated by the mapping to the remote data identifier; and if the remote identifier is not included in the mapping, creating a new data element in the data store to correspond to the remote data identifier.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.