Data synchronization between multiple devices
First Claim
1. A method, comprising:
- storing subsidiary device data on a synchronization device, wherein the subsidiary device data includes one or more truncation rules corresponding to one or more truncated records, a variable schema categorizing the subsidiary device data by relationships, and a static description of one or more device capabilities, and wherein the subsidiary device data is stored in a truth table that includes a copy of records associated with a plurality of subsidiary devices;
negotiating, using one or more processors, a synchronization mode for each subsidiary device using an associated device conduit that includes synchronization software, such that;
when a device conduit is able to identify record deltas since a last synchronization of a subsidiary device, a fast synchronization mode is negotiated for the subsidiary device, wherein during a fast synchronization, the device conduit transmits only the record deltas from the subsidiary device to the synchronization device, andwhen a device conduit is unable to identify record deltas since a last synchronization of a subsidiary device, a slow synchronization mode is negotiated for the subsidiary device, wherein during a slow synchronization, the device conduit transmits all records from the subsidiary device to the synchronization device, and wherein the synchronization device identifies record deltas by comparing each transmitted record to a record stored in the truth table;
serially and individually synchronizing each record delta from each subsidiary device with a corresponding record stored in the truth table, wherein synchronizing includes optimizing a set of record deltas associated with a subsidiary device by discarding all but the last record delta received; and
transmitting the last record delta from the synchronization device to each device conduit, wherein each device conduit uses the schema, the static description, and the one or more translation rules to translate any truncated records, and wherein each device conduit uses the last record delta to update an associated subsidiary device.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention comprises a method of data synchronization between multiple devices by, in one embodiment, classifying one device to be a primary device and other devices to be subsidiary devices. Synchronization is performed, in one embodiment, by updating the primary device with data from the subsidiary devices, and then updating each subsidiary device using data from the updated primary device. The exemplary data synchronization according to the present invention can accommodate for absent devices, avoid redundant synchronization operations, accommodate for data truncation or translation and preserve synchronization of relationships. The devices may be any one of computers, handheld devices (e.g. a Palm device), personal digital assistants, music devices, and mobile telephones. The data to be synchronized may include any data, and even applications can be synchronized.
-
Citations
21 Claims
-
1. A method, comprising:
-
storing subsidiary device data on a synchronization device, wherein the subsidiary device data includes one or more truncation rules corresponding to one or more truncated records, a variable schema categorizing the subsidiary device data by relationships, and a static description of one or more device capabilities, and wherein the subsidiary device data is stored in a truth table that includes a copy of records associated with a plurality of subsidiary devices; negotiating, using one or more processors, a synchronization mode for each subsidiary device using an associated device conduit that includes synchronization software, such that; when a device conduit is able to identify record deltas since a last synchronization of a subsidiary device, a fast synchronization mode is negotiated for the subsidiary device, wherein during a fast synchronization, the device conduit transmits only the record deltas from the subsidiary device to the synchronization device, and when a device conduit is unable to identify record deltas since a last synchronization of a subsidiary device, a slow synchronization mode is negotiated for the subsidiary device, wherein during a slow synchronization, the device conduit transmits all records from the subsidiary device to the synchronization device, and wherein the synchronization device identifies record deltas by comparing each transmitted record to a record stored in the truth table; serially and individually synchronizing each record delta from each subsidiary device with a corresponding record stored in the truth table, wherein synchronizing includes optimizing a set of record deltas associated with a subsidiary device by discarding all but the last record delta received; and transmitting the last record delta from the synchronization device to each device conduit, wherein each device conduit uses the schema, the static description, and the one or more translation rules to translate any truncated records, and wherein each device conduit uses the last record delta to update an associated subsidiary device. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system, comprising:
-
one or more processors; one or more computer-readable storage mediums containing instructions configured to cause the one or more processors to perform operations including; storing subsidiary device data on a synchronization device, wherein the subsidiary device data includes one or more truncation rules corresponding to one or more truncated records, a variable schema categorizing the subsidiary device data by relationships, and a static description of one or more device capabilities, and wherein the subsidiary device data is stored in a truth table that includes a copy of records associated with a plurality of subsidiary devices; negotiating a synchronization mode for each subsidiary device using an associated device conduit that includes synchronization software, such that; when a device conduit is able to identify record deltas since a last synchronization of a subsidiary device, a fast synchronization mode is negotiated for the subsidiary device, wherein during a fast synchronization, the device conduit transmits only the record deltas from the subsidiary device to the synchronization device, and when a device conduit is unable to identify record deltas since a last synchronization of a subsidiary device, a slow synchronization mode is negotiated for the subsidiary device, wherein during a slow synchronization, the device conduit transmits all records from the subsidiary device to the synchronization device, and wherein the synchronization device identifies record deltas by comparing each transmitted record to a record stored in the truth table; serially and individually synchronizing each record delta from each subsidiary device with a corresponding record stored in the truth table, wherein synchronizing includes optimizing a set of record deltas associated with a subsidiary device by discarding all but the last record delta received; and transmitting the last record delta from the synchronization device to each device conduit, wherein each device conduit uses the schema, the static description, and the one or more translation rules to translate any truncated records, and wherein each device conduit uses the last record delta to update an associated subsidiary device. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer-program product, tangibly embodied in a machine-readable storage medium, including instructions operable to cause a data processing apparatus to:
-
store subsidiary device data on a synchronization device, wherein the subsidiary device data includes one or more truncation rules corresponding to one or more truncated records, a variable schema categorizing the subsidiary device data by relationships, and a static description of one or more device capabilities, and wherein the subsidiary device data is stored in a truth table that includes a copy of records associated with a plurality of subsidiary devices; negotiate a synchronization mode for each subsidiary device using an associated device conduit that includes synchronization software, such that; when a device conduit is able to identify record deltas since a last synchronization of a subsidiary device, a fast synchronization mode is negotiated for the subsidiary device, wherein during a fast synchronization, the device conduit transmits only the record deltas from the subsidiary device to the synchronization device, and when a device conduit is unable to identify record deltas since a last synchronization of a subsidiary device, a slow synchronization mode is negotiated for the subsidiary device, wherein during a slow synchronization, the device conduit transmits all records from the subsidiary device to the synchronization device, and wherein the synchronization device identifies record deltas by comparing each transmitted record to a record stored in the truth table; serially and individually synchronize each record delta from each subsidiary device with a corresponding record stored in the truth table, wherein synchronizing includes optimizing a set of record deltas associated with a subsidiary device by discarding all but the last record delta received; and transmit the last record delta from the synchronization device to each device conduit, wherein each device conduit uses the schema, the static description, and the one or more translation rules to translate any truncated records, and wherein each device conduit uses the last record delta to update an associated subsidiary device. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification