Claims
- 1. In an information processing system, a method for synchronizing a first dataset with at least a second dataset via a communication medium, the method comprising:
storing information that is indicative of a first version of user data of the first dataset, wherein the first version was involved in prior use for synchronizing with the second dataset; identifying a change in the second dataset that is new relative to the first version of the user data of the first dataset; via the communication medium, communicating the change in the second dataset and indicating the first version based on the stored information; determining whether user data currently in the first dataset has changed relative to the first version that was indicated in the communicating and indicating step; deciding whether to commit the communicated change to the first dataset based at least in part on the determining step; and committing the communicated change to the first dataset if the communicated change is decided to be committed in the deciding step.
- 2. The method of claim 1 further comprising:
acknowledging the communicated change in an ordinary manner, if the communicated change was decided to be committed in the deciding step; and refraining from acknowledging the communicated change in the ordinary manner, if the communicated change was decided not to be committed in the deciding step.
- 3. The method of claim 1 wherein the deciding step comprises deciding to refrain from committing the communicated change to the first dataset, if the user data currently in the first dataset was determined in the determining step to have changed relative to the first version.
- 4. The method of claim 1 further comprising:
as a part of the prior use, via the communication medium, communicating a change in the first dataset that reflects the first version and indicating the first version; wherein the step of storing the information is responsive to the step of indicating the first version as a part of the prior use.
- 5. The method of claim 4 wherein:
the step of communicating the change in the first dataset and indicating the first version comprises sending the change in the first dataset at a send time; and the step of sending the change in the first dataset comprises sending the send time.
- 6. The method of claim 5 wherein the send time is according to a clock that is used in the first dataset.
- 7. The method of claim 6 wherein the clock is a non-real-time clock.
- 8. The method of claim 5 wherein the step of communicating the change in the second dataset and indicating the first version comprises sending the send time.
- 9. The method of claim 8 wherein the storing step comprises storing the send time, and the information that is indicative of the first version includes the stored send time.
- 10. The method of claim 4 wherein:
the first dataset resides on a first device; the second dataset resides on a second device; the first and second devices are capable of communication via the communication medium; the step of communicating the change in the first dataset and indicating the first version comprises communicating from the first device to the second device via the communication medium; and the step of communicating the change in the second dataset and indicating the first version comprises communicating from the second device to the first device via the communication medium.
- 11. The method of claim 10 wherein the step of storing the information that is indicative of the first version comprises storing the information on the second device.
- 12. The method of claim 11 wherein the second device includes a processor and the step of determining the change in the second dataset is performed by the processor.
- 13. The method of claim 10 wherein the first device includes a portable pager, and the step of communicating the change in the second dataset and indicating the first version comprises sending a paging message.
- 14. The method of claim 4 wherein the communication medium includes a public cellular wireless network, and the step of communicating the change in the second dataset and indicating the first version comprises sending a wireless signal over the public cellular wireless network.
- 15. The method of claim 4 wherein the communication medium is susceptible to communication latency of greater than a minute.
- 16. The method of claim 1 wherein the change in the second dataset includes one of a data record addition, a data record modification, and a data record deletion.
- 17. The method of claim 16 wherein the user data of the first dataset includes at least one of contact data and event data.
- 18. The method of claim 1 wherein:
the user data of the first dataset includes a first data record, and the first data record, under the first version, was last modified at a first modification time; and the step of determining whether user data currently in the first dataset has changed relative to the first version comprises determining whether the first data record has been modified after the first modification time.
- 19. The method of claim 18 wherein:
the step of communicating the change in the second dataset and indicating the first version comprises communicating a timestamp that is no earlier than the first modification time; and the step of determining whether the first data record has been modified after the first modification time comprises determining whether the first data record was last modified after the communicated timestamp, wherein the first data record is determined to have been modified after the first modification time if the first data record was modified after the communicated timestamp.
- 20. The method of claim 18 wherein:
the user data of the first dataset further includes a second data record, and the second data record was last modified at a second modification time; and the step of communicating the change in the second dataset and indicating the first version comprises:
communicating a first indicator that is indicative of the first modification time if the change in the second dataset relates to the first data record; and communicating a second indicator that is indicative of the second modification time if the change in the second dataset relates to the second data record.
- 21. The method of claim 20 further comprising, as a part of the prior use, indicating the first version via the communication medium, wherein the step of indicating the first version as a part of the prior use comprises communicating the first indicator and the second indicator, and wherein the stored information is indicative of the first and second indicators.
- 22. The method of claim 21 wherein:
the first indicator includes a first timestamp that is no earlier than the first modification time; the second indicator includes a second timestamp that is no later than the second modification time; and the step of determining whether the first data record has been modified after the first modification time comprises determining whether the first data record was last modified after the first timestamp, wherein the first dataset is determined to have been modified after the first modification time if it was modified after the first timestamp.
- 23. The method of claim 22 wherein the step of indicating the first version as a part of the prior use comprises sending a send time as the first timestamp, wherein the send time corresponds to a time at which the first data record, under the first version, was sent via the communication medium.
- 24. The method of claim 23 wherein the send time is according to a clock that is used for the first dataset.
- 25. The method of claim 1 wherein the communication medium includes a message-based network, and the step of communicating the change in the second dataset and indicating the first version comprises sending a message over the message-based network.
- 26. The method of claim 25 wherein the message-based network includes one of a paging network and an electronic mail network, and the step of communicating the change in the second dataset and indicating the first version comprises sending one of a paging message and an electronic mail message over the message-based network.
- 27. The method of claim 1 wherein the communication medium is susceptible to communication latency of greater than an hour.
- 28. The method of claim 1 wherein the change involves a data record of the second dataset that has a corresponding record in the first dataset, and the deciding step further comprises:
determining whether the communicated change was sent earlier than a previously-received change involving the data record of the second dataset; and deciding to refrain from committing the communicated change to the first dataset, if the communicated change was determined to have been sent earlier than the previously-received change.
- 29. The method of claim 28 wherein the step of determining whether the communicated change was sent earlier than the previously-received change comprises determining whether the first version that was indicated in the communicating and indicating step is older than a version previously-indicated for the previously-received change.
- 30. The method of claim1 wherein the determining and deciding steps do not require comparison of timestamps generated by different clocks.
- 31. A system for synchronizing a first dataset with at least a second dataset via a communication medium, the system comprising:
means for storing information that is indicative of a first version of user data of the first dataset, wherein the first version was involved in prior use for synchronizing with the second dataset; means for identifying a change in the second dataset that is new relative to the first version of the user data of the first dataset; means for communicating the change in the second dataset and indicating the first version based on the stored information, via the communication medium; means for determining whether user data currently in the first dataset has changed relative to the first version that was indicated in the communicating and indicating step; means for deciding whether to commit the communicated change to the first dataset based at least in part on the determining step; and means for performing synchronization, including committing the communicated change to the first dataset if the communicated change is decided to be committed in the deciding step.
RELATED APPLICATIONS
[0001] The present application is related to and claims the benefit of priority from the following commonly-owned U.S. patent applications, the disclosures of which are hereby incorporated by reference in their entirety, including any appendices or attachments thereof, for all purposes:
[0002] Ser. No. 60/123,265, filed Mar. 8, 1999 and entitled SYSTEM AND METHODS FOR SYNCHRONIZING DATASETS IN A COMMUNICATION ENVIRONMENT HAVING HIGH-LATENCY OR OTHER ADVERSE CHARACTERISTICS; and
[0003] The present application is also related to the following commonly-owned U.S. patent applications, the disclosures of which are hereby incorporated by reference in their entirety, including any appendices or attachments thereof, for all purposes:
[0004] Ser. No. 09/208,815, filed Dec. 8, 1998 and entitled SYSTEM AND METHODS FOR ROBUST SYNCHRONIZATION OF DATASETS;
[0005] Ser. No. 60/109,983, filed Nov. 25, 1998 and entitled SYSTEM AND METHODS FOR TRANSACTION-BASED SYNCHRONIZATION; and
[0006] Ser. No. 60/106,189, filed Oct. 28, 1998 and entitled SYSTEM AND METHOD FOR TRANSACTION-BASED SYNCHRONIZATION.
[0007] Ser. No. 09/136,215, filed Aug. 18, 1998 and entitled SYSTEM AND METHODS FOR SYNCHRONIZING TWO OR MORE DATASETS;
[0008] Ser. No. 09/136,212, filed Aug. 18, 1998 and entitled DATA PROCESSING ENVIRONMENT WITH METHODS PROVIDING CONTEMPORANEOUS SYNCHRONIZATION OF Two OR MORE CLIENTS;
[0009] Ser. No. 08/923,612, filed Sep. 4,1997 and entitled SYSTEM AND METHODS FOR SYNCHRONIZING INFORMATION AMONG DISPARATE DATASETS; and
[0010] Ser. No. 08/693,677, filed Aug. 12, 1996 and entitled SCHEDULING SYSTEM WITH METHODS FOR PEER-TO-PEER SCHEDULING OF REMOTE USERS.
Provisional Applications (3)
|
Number |
Date |
Country |
|
60123265 |
Mar 1999 |
US |
|
60109983 |
Nov 1998 |
US |
|
60106189 |
Oct 1998 |
US |