System and methods for synchronizing data between multiple datasets
First Claim
1. A method of synchronizing data values between a first device and a second device, the second device comprising a second dataset, the first device having a first plurality of data value changes to the second dataset and the second device having a second plurality of data value changes to the second dataset, the method comprising the steps of:
- establishing a communication interface between the first device and the second device, the communication interface comprising a wireless interface;
repeating the following steps until the second device receives all of the first plurality of changes;
the first device sending to the second device one or more changes from the first plurality of changes that have not yet been received by the second device;
the second device sending a message to the first device acknowledging receipt of whichever changes the second device actually receives; and
the first device determining which, if any, of the first plurality of changes have not yet been received by the second device, based on the acknowledgement message from the second device;
the second device resolving conflicts between the first plurality of changes and the second plurality of changes;
the second device incorporating into the second dataset those changes from the first plurality of changes that survived the conflict resolution.
3 Assignments
0 Petitions
Accused Products
Abstract
Methods for synchronizing PIM data between a wireless telephone and a synchronization server. A communication in interface is established between the telephone and the server, using a wireless network and the Internet. The telephone initiates the synchronization by placing a data call to the server and logging on to the server. A sync client within the telephone sends recent changes to its dataset to the server and requests an acknowledgement of these changes. In an acknowledgement message, the server specifies which changes were actually received. Based on this acknowledgment, the client continues resending changes until it receives confirmation that the server has received all of its changes. The server performs conflict and duplicate resolution between the changes received from the client and other changes of which the server is aware, and enters into its dataset those changes that survive the resolutions. The client also requests that the server send changes that have been made to the server'"'"'s dataset. The server identifies all changes that should be sent to the client and that have survived the conflict and duplicate resolutions. The server then sends its changes to the client, requests acknowledgement, and resends changes until it confirms that the client has received all of the changes. The client enters the changes from the server into its dataset without any further conflict or duplicate resolution. The client then logs off of the server and ends the data call.
392 Citations
39 Claims
-
1. A method of synchronizing data values between a first device and a second device, the second device comprising a second dataset, the first device having a first plurality of data value changes to the second dataset and the second device having a second plurality of data value changes to the second dataset, the method comprising the steps of:
-
establishing a communication interface between the first device and the second device, the communication interface comprising a wireless interface;
repeating the following steps until the second device receives all of the first plurality of changes;
the first device sending to the second device one or more changes from the first plurality of changes that have not yet been received by the second device;
the second device sending a message to the first device acknowledging receipt of whichever changes the second device actually receives; and
the first device determining which, if any, of the first plurality of changes have not yet been received by the second device, based on the acknowledgement message from the second device;
the second device resolving conflicts between the first plurality of changes and the second plurality of changes;
the second device incorporating into the second dataset those changes from the first plurality of changes that survived the conflict resolution. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
after the second device resolves conflicts between the first plurality of changes and the second plurality of changes, repeating the following steps until the first device receives all of the second plurality of changes that survived the conflict resolution;
the second device sending to the first device one or more changes from the second plurality of changes that survived the conflict resolution and that have not yet been received by the first device;
the first device sending a message to the second device acknowledging receipt of whichever changes the second device actually receives; and
the second device determining which, if any, of the second plurality of changes that survived the conflict resolution have not yet been received by the first device, based on the acknowledgement message from the first device; and
the first device incorporating into the first dataset the changes from the second device.
-
-
3. The method of claim 2, wherein the first dataset and the second dataset contain PIM data.
-
4. The method of claim 3, wherein the first device comprises a PIM application.
-
5. The method of claim 3, wherein the second device comprises a PIM application.
-
6. The method of claim 2, wherein the first device sends the acknowledgment message in response to an acknowledgment request sent from the second device to the first device.
-
7. The method of claim 2 further comprising the steps of the first device determining if a change received from the second device involves creating a new data record in the first device and, if so, sending a message to the second device indicating the record ID within the first device for the new data record.
-
8. The method of claim 2, wherein the first device and the second device send changes and messages in the form of data packets, over a packet-switching network.
-
9. The method of claim 1, wherein the first device comprises a wireless device and the second device comprises a sync server.
-
10. The method of claim 1, wherein the second device sends the acknowledgment message in response to an acknowledgment request sent from the first device to the second device.
-
11. The method of claim 1 further comprising the step of the second device resolving duplicates between the first plurality of changes and the second plurality of changes.
-
12. The method of claim 1, wherein the first device initiates the synchronization in response to a user activating a key on the first device.
-
13. The method of claim 1, wherein the first device initiates the synchronization in response to a user entering a data value change.
-
14. The method of claim 1, wherein the first device initiates the synchronization in response to a timer interrupt.
-
15. The method of claim 1, wherein the first plurality of changes and the second plurality of changes are fresh changes.
-
16. A method for synchronizing a first set of changes that have been made to a first dataset in a wireless device with a second set of changes that have been made to a second dataset in a second device, the wireless device comprising a sync client and the second device comprising a sync engine, the method comprising:
-
the sync client establishing a communication interface with the sync engine, the communication interface comprising a wireless interface;
the sync client sending the first set of changes to the sync engine;
the sync engine performing a conflict resolution between the first set of changes and the second set of changes;
the sync engine entering those changes from the first set of changes that survived the conflict resolution into the second dataset;
the sync client sending a request for changes to the sync engine and, in response, the sync engine sending one or more changes from the second set of changes that survived the conflict resolution to the sync client;
the sync client entering the changes received from the sync engine into the first dataset. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24)
repeating the following sub-steps until the sync engine receives all of the first set of changes;
the sync client sending to the sync engine one or more changes from the first set of changes that have not yet been received by the sync engine;
the sync engine sending a message to the sync client acknowledging receipt of whichever changes the sync engine actually receives; and
the sync client determining which, if any, of the first set of changes have not yet been received by the sync engine, based on the acknowledgement message from the sync engine.
-
-
18. The method of claim 16, wherein the step of the sync engine sending one or more changes from the second set of changes to the sync client comprises the following sub-steps:
-
repeating the following sub-steps until the sync client receives all of the second set of changes to be sent;
the sync engine sending to the sync client one or more changes from the second set of changes that have not yet been received by the sync client;
the sync client sending a message to the sync engine acknowledging receipt of whichever changes the sync client actually receives; and
the sync engine determining which, if any, of the second set of changes that are to be sent to the sync client have not yet been received by the sync client, based on the acknowledgement message from the sync client.
-
-
19. The method of claim 16, wherein the request for changes from the sync client specifies a number of changes that will be sent from the sync engine to the sync client.
-
20. The method of claim 16, wherein, before the sync client sends the first set of changes to the sync engine, the sync client determines whether a previous synchronization attempt was not completed successfully and, if a previous attempt was not completed successfully, completing the previous synchronization attempt.
-
21. The method of claim 16, wherein the wireless device is a wireless telephone with a PIM application, the second device is a sync server, and the first and second datasets comprise PIM data.
-
22. The method of claim 16, wherein the sync client initiates the synchronization method in response to a user selection of a synchronization function.
-
23. The method of claim 22, wherein the user selection of a synchronization function involves the user activating a key on the wireless device.
-
24. The method of claim 16, wherein the step of the sync client establishing a communication interface involves establishing a data call between the wireless device and the second device and wherein, after the sync client receives the changes from the sync engine, the sync client terminates the data call.
-
25. A method of synchronizing a first dataset in a first device with a second dataset in a second device, the method comprising the steps of:
-
establishing a communication interface between the first device and the second device;
in response to the first device receiving a first change to the first dataset, the first device sending the first change to the second device, the second device performing a conflict resolution between the first change and the second dataset and, if the first change survives the conflict resolution, the second device entering the first change into the second dataset; and
in response to the second device receiving a second change to the second dataset that should also be made to the first dataset, the second device sending the second change to the first device and the first device entering the second change into the first dataset. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
-
-
39. A method of synchronizing a first dataset in a first device with a second dataset in a second device, the method comprising the steps of:
-
establishing a communication interface between the first device and the second device;
in response to a first change being made to the first dataset, the first device sending the first change to the second device, the second device performing a conflict resolution between the first change and the second dataset and, if the first change survives the conflict resolution, the second device entering the first change into the second dataset; and
in response to a second change being made to the second dataset, the second device sending the second change to the first device, the first device performing a conflict resolution between the second change and the first dataset and, if the second change survives the conflict resolution, the first device entering the second change into the first dataset.
-
Specification