Data synchronization protocol
First Claim
1. A method of synchronizing data, the method comprising:
- receiving, at a server, a request to initiate a sync session, comprisingreceiving a separate proposed sync mode for each of multiple dataclasses in parallel, andreceiving changes to the multiple dataclasses;
generating, at the server, one or more status codes to indicate whether the proposed sync mode for each dataclass is accepted;
based on the generated status code, using the accepted sync mode for each dataclass to selectively update data items associated with the one or more changes to the multiple dataclasses in parallel; and
selectively committing the updated data items at the server when receiving a command to commit the undated data items from a client device.
2 Assignments
0 Petitions
Accused Products
Abstract
Among other things, techniques and systems are disclosed for syncing data between a client device and a server. Synchronizing data includes initiating a sync session by negotiating a sync mode between a client device and a server for each of one or more dataclasses. A status code is generated based on a result of the negotiating. Based on the generated status code, the client device and the server exchanges one or more data items to be updated for the one or more dataclasses using the negotiated sync mode for each dataclass. The exchanged one or more data items are updated at the client device or the server The updated one or more data items are committed at the client or the server.
-
Citations
44 Claims
-
1. A method of synchronizing data, the method comprising:
-
receiving, at a server, a request to initiate a sync session, comprising receiving a separate proposed sync mode for each of multiple dataclasses in parallel, and receiving changes to the multiple dataclasses; generating, at the server, one or more status codes to indicate whether the proposed sync mode for each dataclass is accepted; based on the generated status code, using the accepted sync mode for each dataclass to selectively update data items associated with the one or more changes to the multiple dataclasses in parallel; and selectively committing the updated data items at the server when receiving a command to commit the undated data items from a client device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer program product, embodied on a computer readable storage medium, operable to cause a data processing apparatus to perform operations comprising:
-
receiving a request to initiate a sync session, comprising receiving a separate proposed sync mode for each of multiple dataclasses in parallel, and receiving changes to the dataclasses; generating at least one status code to indicate whether the proposed sync mode for each dataclass is accepted; based on the generated status code, using the accepted sync mode for each dataclass to selectively update data items associated with the changes to the dataclasses in parallel; and selectively committing the updated data items at a data repository when receiving a command to commit the undated data items from a client device. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A synchronization server comprising:
a processor configured to operate a transport protocol that enables opening of one or more connections to one or more client devices; and a sync protocol that enables data synchronization between the server and the one or more client devices over the opened one or more connections, wherein the sync protocol enables the server to receive a request to initiate a sync session, wherein the request includes a separate proposed sync mode for each of multiple dataclasses received in parallel, and changes to the multiple dataclasses, generate one or more status codes to indicate whether the proposed sync mode for each dataclass is accepted, based on the generated status code, using the accepted sync mode for each dataclass to selectively update data items associated with the changes to the data classes, and selectively commit the updated data items when receiving a command to commit the undated data items from one of the one or more client devices. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25)
-
26. A method of synchronizing data, the method comprising:
-
sending, from a client device, a request to a server to initiate a sync session, comprising sending a proposed sync mode for each of multiple dataclasses in parallel, and sending one or more changes to the dataclasses; receiving, at the client device, one or more status codes indicative of whether the proposed sync mode for each dataclass has been accepted by the server; sending, from the client device, a command to the server to commit changes to data items associated with the one or more changes to the dataclasses; based on the received status code, using the accepted sync mode to receive from the server additional changes to the dataclasses; and committing, at client device, the additional changes received from the server. - View Dependent Claims (27, 28, 29, 30, 31)
-
-
32. A computer program product, embodied on a computer-readable storage medium, operable to cause a data processing apparatus to perform one or more operations comprising:
-
sending a request to a server to initiate a sync session, comprising sending a separate proposed sync mode for each of multiple dataclasses in parallel, and sending one or more changes to the dataclasses; receiving one or more status codes indicative of whether the proposed sync mode for each dataclass has been accepted by the server; sending a command to the server to commit changes to data items associated with the one or more changes to the dataclasses; based on the received status code, using the accepted sync mode to receive from the server additional changes to the dataclasses; and committing, at the data processing apparatus, the additional changes received from the server. - View Dependent Claims (33, 34, 35, 36, 37, 44)
-
-
38. A client device comprising:
a processor configured to operate a transport protocol that enables opening of one or more connections to a server; and a sync protocol that enables data synchronization between the client device and the server over the opened one or more connections, wherein the sync protocol enables the client device to send a request to a server to initiate a sync session, wherein the request includes a separate proposed sync mode for each of multiple dataclasses sent in parallel, and one or more changes to the one or more dataclasses; receive one or more status codes indicative of whether the proposed sync mode for each dataclass has been accepted by the server; send a command to the server to commit changes to data items associated with the one or more changes to the dataclasses; based on the received status code, use the accepted sync mode to receive from the server additional changes to the dataclasses; and commit at a client device the additional changes received from the server. - View Dependent Claims (39, 40, 41, 42, 43)
Specification