Accounting for update notifications in synchronizing data that may be represented by different data structures
First Claim
1. In a computing environment that includes a server and one or more clients, a method for enabling synchronization of data stored at the one or more clients with data stored at the server, while accounting for one or more update notifications that either may or may not have been received by the one or more clients and while accounting for any differences in how the server and the one or more clients store data, the method implemented in one of the clients comprising:
- an act of receiving a plurality of update notifications, corresponding to changes made at a server to server data, the notifications being received by the client from the server over an unreliable communication channel without including any request for acknowledgement of receipt of the update notifications by the client, each update notification including (i) at least one of the plurality the changes and (ii) a plurality of tokens, at least one of the plurality of tokens corresponding to the at least one of the plurality of changes;
an act of the client sending a plurality of tokens back to the server, wherein the server interprets one or more tokens that were sent to the client but that were not received back from the client as indications that one or more changes are missing from the client; and
an act of the client receiving a list of one or more missing tokens, the list identifying one or more tokens that were sent to the client but that were not received by the server from the client;
sending a request to the server to resend the one or more missing tokens and corresponding changes; and
an act of receiving the one or more missing tokens and corresponding changes to the one or more requesting clients.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods, systems, and computer program products for synchronizing data stored at one or more message clients with data stored at a message server where the message clients may receive update notifications and may represent the data using different data structures than the message server uses to represent the same data. A token is associated with each data change that occurs at the message server. The message server sends each change and associated token to the message clients. When the message clients request a synchronization, the tokens they received are returned to the message server for comparison with the tokens the message server sent to the message clients. If the message clients do not return a particular token, the message server determines that the clients did not receive the corresponding change and resends the change to the message clients. Tokens may also be used to divide a change into one or more portions, with only one portion being provided initially. Then, in response to receiving the token associated with the portion, the message server may provide the remaining portion of the message to the message clients.
-
Citations
22 Claims
-
1. In a computing environment that includes a server and one or more clients, a method for enabling synchronization of data stored at the one or more clients with data stored at the server, while accounting for one or more update notifications that either may or may not have been received by the one or more clients and while accounting for any differences in how the server and the one or more clients store data, the method implemented in one of the clients comprising:
-
an act of receiving a plurality of update notifications, corresponding to changes made at a server to server data, the notifications being received by the client from the server over an unreliable communication channel without including any request for acknowledgement of receipt of the update notifications by the client, each update notification including (i) at least one of the plurality the changes and (ii) a plurality of tokens, at least one of the plurality of tokens corresponding to the at least one of the plurality of changes;
an act of the client sending a plurality of tokens back to the server, wherein the server interprets one or more tokens that were sent to the client but that were not received back from the client as indications that one or more changes are missing from the client; and
an act of the client receiving a list of one or more missing tokens, the list identifying one or more tokens that were sent to the client but that were not received by the server from the client;
sending a request to the server to resend the one or more missing tokens and corresponding changes; and
an act of receiving the one or more missing tokens and corresponding changes to the one or more requesting clients. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. In an electronic messaging environment that includes a message server and one or more message clients, a method for enabling synchronization of data stored at the one or more message clients with data stored at the message server, while accounting for one or more update notifications that either may or may not have been received by the one or more message clients and while accounting for any differences in how the message server and the one or more message clients store data, the method implemented in one of the clients comprising:
-
the client receiving, over an unreliable communication channel, a plurality of notifications without sending acknowledgement of receipt of the notifications, the plurality of notifications including (i) a plurality of changes to data stored at a message server, and (ii) a plurality of tokens identifying each of the plurality of changes;
an act of receiving a list identifying missing notifications, wherein the missing notifications are determined by the server to be missing based on whether or not the client sends back each of the plurality of tokens identifying each of the plurality of changes to the server;
sending a request to the server to resend the one or more missing notifications; and
an act of receiving the one or more missing notifications. - View Dependent Claims (9, 10, 11, 12, 13, 14, 22)
-
-
15. A computer program product for use in a computing environment that includes a server and one or more clients, the computer program product comprising one or more computer-readable media having computer-executable instructions for implementing a method for enabling synchronization of data stored at the one or more clients with data stored at the server, while accounting for one or more update notifications that either may or may not have been received by the one or more clients and while accounting for any differences in how the server and the one or more clients store data, the method implemented in one of the clients comprising:
-
an act of receiving a plurality of update notifications, corresponding to changes made at a server to server data, the notifications being received by the client from the server over an unreliable communication channel without including any request for acknowledgement of receipt of the update notifications by the client, each update notification including (i) at least one of the plurality the changes and (ii) a plurality of tokens, at least one of the plurality of tokens corresponding to the at least one of the plurality of changes;
an act of the client sending a plurality of tokens back to the server, wherein the server interprets one or more tokens that were sent to the client but that were not received back from the client as indications that one or more changes are missing from the client; and
an act of the client receiving a list of one or more missing tokens, the list identifying one or more tokens that were sent to the client but that were not received by the server from the client;
sending a request to the server to resend the one or more missing tokens and corresponding changes; and
an act of receiving the one or more missing tokens and corresponding changes to the one or more requesting clients. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification