System and methods for exchanging messages between a client and a server for synchronizing datasets
First Claim
1. A method of communicating between a client device and a server device to enable synchronization between a client dataset in the client device and a server dataset in the server device, the client device and the server device communicating with one another over a communication medium, the method comprising:
- a first ply, in which the client device sends to the server device, over the communication medium, changes that have been made to the client dataset;
a second ply, in which the server device sends to the client device, over the communication medium, changes that have been made to the server dataset, said changes including an addition of a new record;
the client device sending to the server device, over the communication medium, a new record mapping indicating a client record ID for a new record added to the client dataset in response to the addition received from the server device; and
the server device sending to the client device, over the communication medium, an acknowledgement of receipt of the new record mapping, wherein the steps of the client device sending the new record mapping to the server device and the server device sending an acknowledgement of the new record mapping may occur during third and fourth plies, respectively, of the same synchronization, or these steps may occur during the first and second plies, respectively, of a subsequent synchronization.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and methods for synchronizing information in datasets via a communication medium are provided that are suitable for synchronizing even across communication mediums that are susceptible to high latency, non-FIFO (non-First-In-First-Out) delivery order, or other adverse characteristics. According to an aspect of the invention, in an information processing system, a method for synchronizing a first dataset with at least a second dataset via a communication medium includes a step of storing information that is indicative of a first version of user data of the first dataset, wherein the first version has been involved in prior use for synchronizing with the second dataset. The method further includes steps of 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.
244 Citations
28 Claims
-
1. A method of communicating between a client device and a server device to enable synchronization between a client dataset in the client device and a server dataset in the server device, the client device and the server device communicating with one another over a communication medium, the method comprising:
-
a first ply, in which the client device sends to the server device, over the communication medium, changes that have been made to the client dataset;
a second ply, in which the server device sends to the client device, over the communication medium, changes that have been made to the server dataset, said changes including an addition of a new record;
the client device sending to the server device, over the communication medium, a new record mapping indicating a client record ID for a new record added to the client dataset in response to the addition received from the server device; and
the server device sending to the client device, over the communication medium, an acknowledgement of receipt of the new record mapping, wherein the steps of the client device sending the new record mapping to the server device and the server device sending an acknowledgement of the new record mapping may occur during third and fourth plies, respectively, of the same synchronization, or these steps may occur during the first and second plies, respectively, of a subsequent synchronization. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for a client device to communicate with a server device to enable synchronization between a client dataset in the client device and a server dataset in the server device, the client device and the server device communicating with one another over a communication medium, the method comprising:
-
a first ply, in which the client device sends to the server device, over the communication medium, changes that have been made to the client dataset;
a second ply, in which the client device receives from the server device, over the communication medium, changes that have been made to the server dataset, said changes including an addition of a new record;
the client device sending to the server device, over the communication medium, a new record mapping indicating a client record ID for a new record added to the client dataset in response to the addition received from the server device; and
the client device receiving from the server device, over the communication medium, an acknowledgement of receipt of the new record mapping, wherein the steps of the client device sending the new record mapping to the server device and the client device receiving an acknowledgement of the new record mapping may occur during third and fourth plies, respectively, of the same synchronization, or these steps may occur during the first and second plies, respectively, of a subsequent synchronization.
-
-
14. A method for a server device to communicate with a client device to enable synchronization between a client dataset in the client device and a server dataset in the server device, the client device and the server device communicating with one another over a communication medium, the method comprising:
-
a first ply, in which the server device receives from the client device, over the communication medium, changes that have been made to the client dataset;
a second ply, in which the server device sends to the client device, over the communication medium, changes that have been made to the server dataset, said changes including an addition of a new record;
the server device receiving from the client device, over the communication medium, a new record mapping indicating a client record ID for a new record added to the client dataset in response to the addition received from the server device; and
the server device sending to the client device, over the communication medium, an acknowledgement of receipt of the new record mapping, wherein the steps of the server device receiving the new record mapping from the client device and the server device sending an acknowledgement of the new record mapping may occur during third and fourth plies, respectively, of the same synchronization, or these steps may occur during the first and second plies, respectively, of a subsequent synchronization.
-
-
15. A method of synchronizing a client dataset in a client device with a server dataset in a server device using multiple synchronization sessions, the client device and the server device communicating with one another over a communication medium, the method comprising:
-
the client device initiating a first synchronization session with the server device, the first synchronization session comprising;
a first ply, in which the client device sends to the server device, over the communication medium, changes that have been made to the client dataset;
a second ply, in which the server device sends to the client device, over the communication medium, changes that have been made to the server dataset, said changes including an addition of a new record, wherein the server device performs a conflict resolution between the first ply and the second ply, so that the changes sent to the client device are conflict-free;
a third ply, in which the client device sends to the server device, over the communication medium, a new record mapping indicating a client record ID for a new record added to the client dataset in response to the addition received from the server device; and
a fourth ply, in which the server device sends to the client device, over the communication medium, an acknowledgement of receipt of the new record mapping, wherein the client device permits a user to make changes to the client dataset during the first synchronization session, but any changes made to the client dataset after the first ply are held by the client device for synchronization during a subsequent synchronization session.
-
-
16. A method for a client device to communicate with a server device during multiple synchronization sessions to facilitate synchronizing a client dataset in the client device with a server dataset in the server device, the client device and the server device communicating with one another over a communication medium, the method comprising:
-
the client device initiating a first synchronization session with the server device, the first synchronization session comprising;
a first ply, in which the client device sends to the server device, over the communication medium, changes that have been made to the client dataset;
a second ply, in which the client device receives from the server device, over the communication medium, changes that have been made to the server dataset, said changes including an addition of a new record, wherein the client device treats the received changes as conflict-free changes;
a third ply, in which the client device sends to the server device, over the communication medium, a new record mapping indicating a client record ID for a new record added to the client dataset in response to the addition received from the server device; and
a fourth ply, in which the client device receives from the server device, over the communication medium, an acknowledgement of receipt of the new record mapping, wherein the client device permits a user to make changes to the client dataset during the first synchronization session, but any changes made to the client dataset after the first ply are held by the client device for synchronization during a subsequent synchronization session. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A client device in a synchronization system, the client device communicating with a server device over a communication medium to enable synchronization between a client dataset in the client device and a server dataset in the server device, the client device comprising:
-
means for sending to the server device, changes that have been made to the client dataset, the changes being sent over the communication medium in a first ply;
means for receiving from the server device, changes that have been made to the server dataset, the changes being sent over the communication medium in a second ply, the changes including an addition of a new record;
means for sending to the server device, over the communication medium, a new record mapping indicating a client record ID for a new record added to the client dataset in response to the addition received from the server device; and
means for receiving from the server device, over the communication medium, an acknowledgement of receipt of the new record mapping, wherein the steps of sending the new record mapping to the server device and receiving the acknowledgement of the new record mapping may occur during third and fourth plies, respectively, of the same synchronization, or these steps may occur during the first and second plies, respectively, of a subsequent synchronization.
-
-
27. A server device in a synchronization system, the server device communicating with a client device over a communication medium to enable synchronization between a client dataset in the client device and a server dataset in the server device, the server device comprising:
-
means for receiving from the client device, changes that have been made to the client dataset, the changes being sent over the communication medium in a first ply;
means for sending to the client device, changes that have been made to the server dataset, the changes being sent over the communication medium in a second ply, the changes including an addition of a new record;
means for receiving from the client device, over the communication medium, a new record mapping indicating a client record ID for a new record added to the client dataset in response to the addition received from the server device; and
means for sending to the client device, over the communication medium, an acknowledgement of receipt of the new record mapping, wherein the steps of receiving the new record mapping from the client device and sending the acknowledgement of the new record mapping may occur during third and fourth plies, respectively, of the same synchronization, or these steps may occur during the first and second plies, respectively, of a subsequent synchronization.
-
-
28. A client device in a synchronization system, the client device communicating with a server device during multiple synchronization sessions to facilitate synchronizing a client dataset in the client device with a server dataset in the server device, the client device and the server device communicating with one another over a communication medium, the client device comprising:
-
means for performing a first synchronization session with the server device, said means comprising;
means for sending to the server device, changes that have been made to the client dataset, said changes being sent over the communication medium during a first ply;
means for receiving from the server device, changes that have been made to the server dataset, said changes including an addition of a new record, said changes being received over the communication medium during a second ply, wherein the client device treats the received changes as conflict-free changes;
means for sending to the server device, a new record mapping indicating a client record ID for a new record added to the client dataset in response to the addition received from the server device, said new record mapping being sent over the communication medium during a third ply; and
means for receiving from the server device, an acknowledgement of receipt of the new record mapping, said acknowledgement being received over the communication medium during a fourth ply;
means for permitting a user to make changes to the client dataset during the first synchronization session; and
means for holding any changes made to the client dataset after the first ply for synchronization during a subsequent synchronization session.
-
Specification