Always ready client/server data synchronization
First Claim
1. A method to synchronize information with a server, comprising:
- at a client having one or more processors and memory storing programs for execution by the one or more processors;
sending a request from the client to the server to initiate data synchronization with the client, wherein the request includes information to inform the server about a next data range to be synchronized with the client;
receiving a communication from a server to selectively synchronize information between the server and the client;
receiving information from the server, the information including a first data set and a second data set, wherein;
the first and second data sets are defined by the server based on a record of past synchronizations maintained on the server;
the first data set, distinct from the second data set, consists of data items that have never been synchronized with the client and have been selected in accordance with a priority of the data items, andthe second data set is distinct from the first data set and consists of change operations that have been selected in accordance with a chronological order of the change operations, wherein change operations are deltas for ongoing data changes to previously synchronized data items, the changes occurring since a prior synchronization operation of the record of past synchronizations;
storing at least a portion of the data items from the first data set in memory of the client in accordance with the priority of the data items; and
performing at least a portion of the change operations from the second data set in the chronological order that the change operations occurred, wherein the data items in the first data set and the change operations in the second data set are processed independently;
thereby enabling a user of the client to have access, at the client, to the portion of the stored data items in the first set and the previously synchronized data on which the portion of the change operations from the second set have been performed.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for data synchronization are described. In some embodiments, a method is devised for a client to synchronize information with a server. This client receives a communication from a server to selectively synchronize information between the server and the client, the information includes data that have never been synchronized with the client and change operations that have not been synchronized in last data synchronization, wherein the data is arranged and received in an order from higher priority to lower priority. The client stores at least a portion of the data and at least a portion of the change operations in memory of the client in accordance to order received and enables a user of the client device to have immediate access to the portion of data and the portion of change operations in the communication that are stored on the client at any termination point of information synchronization.
23 Citations
35 Claims
-
1. A method to synchronize information with a server, comprising:
-
at a client having one or more processors and memory storing programs for execution by the one or more processors; sending a request from the client to the server to initiate data synchronization with the client, wherein the request includes information to inform the server about a next data range to be synchronized with the client; receiving a communication from a server to selectively synchronize information between the server and the client; receiving information from the server, the information including a first data set and a second data set, wherein; the first and second data sets are defined by the server based on a record of past synchronizations maintained on the server; the first data set, distinct from the second data set, consists of data items that have never been synchronized with the client and have been selected in accordance with a priority of the data items, and the second data set is distinct from the first data set and consists of change operations that have been selected in accordance with a chronological order of the change operations, wherein change operations are deltas for ongoing data changes to previously synchronized data items, the changes occurring since a prior synchronization operation of the record of past synchronizations; storing at least a portion of the data items from the first data set in memory of the client in accordance with the priority of the data items; and performing at least a portion of the change operations from the second data set in the chronological order that the change operations occurred, wherein the data items in the first data set and the change operations in the second data set are processed independently; thereby enabling a user of the client to have access, at the client, to the portion of the stored data items in the first set and the previously synchronized data on which the portion of the change operations from the second set have been performed. - View Dependent Claims (2, 3, 4)
-
-
5. A method to synchronize information with a client, comprising:
at a server having one or more processors and memory storing programs for execution by the one or more processors; receiving a request from the client to initiate data synchronization with the server, wherein the request includes information to inform the server about a next data range to be synchronized with the client; identifying, based on a record of past synchronizations maintained on the server, data items that have never been synchronized with the client and change operations that have not been synchronized with the client; sending a communication to the client to selectively synchronize information between the server and the client; sending information to the client, wherein the information includes a first data set consisting of data items that have never been synchronized with the client, the first data set being selected from the identified data items in accordance with a priority of the identified data items, and a second data set distinct from the first data set, selected from the identified change operations, in a chronological order that the change operations occurred, wherein change operations are deltas for ongoing data changes to previously synchronized data items, the changes occurring since a prior synchronization operation of the record of past synchronizations, and the data items in the first data set and the change operations in the second data set are processed independently; and updating the record to include portions of the data items and change operations in the communication that have been successfully synchronized with the client upon termination of synchronization. - View Dependent Claims (6, 7)
-
8. A non-transitory computer readable storage medium and one or more computer programs embedded therein, the computer programs comprising instructions, which when executed by a computer system cause the computer system to:
at a client; send a request from the client to the server to initiate data synchronization with the client, wherein the request includes information to inform the server about a next data range to be synchronized with the client; receive a communication from a server to selectively synchronize information between the server and the client; receive information from the server, the information including a first data set and a second data set, wherein; the first and second data sets are defined by the server based on a record of past synchronizations maintained on the server; the first data set, distinct from the second data set, consists of data items that have never been synchronized with the client and have been selected in accordance with a priority of the data items, and the second data set, distinct from the first data set, consists of change operations that have been selected in a chronological order that the change operations occurred, wherein change operations are deltas for ongoing data changes to previously synchronized data items, the changes occurring since a prior synchronization operation of the record of past synchronizations; and store at least a portion of the data items from the first data set in memory of the client in accordance with the priority of the data items; thereby enabling a user of the client to have access, at the client, to the portion of the stored data items in the first set and the previously synchronized data on which the portion of the change operations from the second set have been performed, wherein the data items in the first data set and the change operations in the second data set are processed independently. - View Dependent Claims (9, 10)
-
11. A non-transitory computer readable storage medium and one or more computer programs embedded therein, the computer programs comprising instructions, which when executed by a computer system, cause the computer system to:
at a server; receive a request from the client to initiate data synchronization with the server, wherein the request includes information to inform the server about a next data range to be synchronized with the client; identify, based on a record of past synchronizations maintained on the server, data items that have never been synchronized with the client and change operations that had not been synchronized in last synchronization; send a communication to the client to selectively synchronize information between the server and the client; send information to the client, wherein the information includes a first data set consisting of data items that have never been synchronized with the client, the first data set being selected from the identified data items in accordance with a priority of the identified data items, and a second data set distinct from the first data set, selected from the identified change operations, in a chronological order that the change operations occurred, wherein change operations are deltas for ongoing data changes to previously synchronized data items, the changes occurring since a prior synchronization operation of the record of past synchronizations, and the data items in the first data set and the change operations in the second data set are processed independently; and update the record to include portions of the data items and change operations in the communication that have been successfully synchronized with the client upon termination of synchronization. - View Dependent Claims (12)
-
13. A client system, comprising:
-
one or more processors; memory coupled to the one or more processors; and one or more programs, stored in the memory, configured for execution by the one or more processors, the one or more programs comprising instructions to; send a request from the client to the server to initiate data synchronization with the client, wherein the request includes information to inform the server about a next data range to be synchronized with the client; receive a communication from a server to selectively synchronize information to the client; receive information from the server, wherein the information includes a first data set and a second data set, wherein; the first and second data sets are defined by the server based on a record of past synchronizations maintained on the server; the first data set, distinct from the second data set, consists of at least a portion of data items on the server that have never been synchronized with the client, and has been selected in accordance with a priority of the data items, wherein the first data set is arranged in an order of priority from high priority to low priority, and the second data set is distinct from the first data set and consists of at least a portion of change operations on the server that has been selected in a chronological order that the change operations occurred, wherein change operations are deltas for ongoing data changes to previously synchronized data items, the changes occurring since a prior synchronization operation of the record of past synchronizations, wherein the second data set is arranged in a chronological order from old to new; store at least a portion of the information that has been successfully synchronized; and thereby enable a user of the client to have access, at the client, to the portions of stored information on the client, wherein the data items in the first data set and the change operations in the second data set are processed independently. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A server system, comprising:
-
one or more processors; memory coupled to the one or more processors; and one or more programs, stored in the memory, configured for execution by the one or more processors, the one or more programs comprising instructions to; receive a request from the client to initiate data synchronization with the server, wherein the request includes information to inform the server about a next data range to be synchronized with the client; identify information on the server to be selectively synchronized with a client; send a communication to the client to selectively synchronize the information with the client; send information to the client, wherein the information includes; a first data set consisting of at least a portion of data items on the server that have never been synchronized with the client, and have been selected in accordance with a priority of the data items, wherein the first data set is arranged in an order of priority from high priority to low priority, and a second data set, distinct from the first data set, consisting of at least a portion of change operations on the server have been selected in a chronological order that the change operations occurred, wherein change operations are deltas for ongoing data changes to previously synchronized data items, the changes occurring since a prior synchronization operation of a record of past synchronizations, wherein the second data set is arranged in a chronological order from old to new, wherein the data items in the first data set and the change operations in the second data set are processed independently; and update a synchronization record on the server with the portions of information successfully synchronized with the client upon termination of synchronization. - View Dependent Claims (19, 20, 21, 22, 23)
-
-
24. A method to synchronize information with a server, comprising:
at a client device having one or more processors and memory storing programs for execution by the one or more processors; sending a request to the server, wherein the request includes information related to a next range of data and change operations and instructions to begin a next synchronization; in response to the request, receiving a communication from the server to selectively synchronize information from the server to the client; receiving information from the server, wherein the information includes a first data set and a second data set, wherein; the first and second data sets are defined by the server based on a record of past synchronizations maintained on the client; the first data set, distinct from the second data set, consists of data items on the server that have never been synchronized with the client, and have been selected in accordance with a priority of the data items, wherein the first data set is received in an order of priority from high priority to low priority; and the second data set, distinct from the first data set, consists of change operations have been selected in chronological order that the change operations occurred, wherein change operations are deltas for ongoing data changes to previously synchronized data items, the changes occurring since a prior synchronization operation of the record of past synchronizations, wherein the second data set is arranged in a chronological order based on occurrence of each change operation on the server, with old change operations to be received before new change operations; storing at least a portion of the information in memory of the client; and thereby enabling a user of the client device to, at the client device, access and use at least the portion of the information that has been successfully stored in memory, wherein the data items in the first data set and the change operations in the second data set are processed independently. - View Dependent Claims (25, 26, 27, 28, 29)
-
30. A method to synchronize information with a client device, comprising:
at a server having one or more processors and memory storing programs for execution by the one or more processors; receiving a request from the client, wherein the request includes information related to determining a next range of data and change operations to be synchronized and instructions to begin next synchronization; in response to the request, identifying unsynchronized data items and unsynchronized change operations for synchronization with the client; sending a first communication to the client to selectively synchronize information on the server to the client; sending information to the client, wherein the information includes a first data set and a second data set, wherein; the first and second data sets are defined by the server based on a record of past synchronizations maintained on the client; the first data set, distinct from the second data set, consists of data items on the server that have never been previously synchronized with the client, and have been selected in accordance with a priority of the data items, wherein the first data set is sent in an order of priority from high priority to low priority, and the second data set, distinct from the first data set, consists of change operations that have been selected in chronological order that the change operations occurred, wherein change operations are deltas for ongoing data changes to previously synchronized data items, the changes occurring since a prior synchronization operation of the record of past synchronizations, wherein the second data set is sent in a chronological order based on occurrence of each change operation on the server, with old change operations to be received before new change operations, wherein the data items in the first data set and the change operations in the second data set are processed independently; updating a record in memory on the server, wherein the record includes at least a portion of the information that have been successfully synchronized with the client upon termination of synchronization. - View Dependent Claims (31, 32, 33, 34, 35)
Specification