Patent ID: 7293046

Claim:
A computer program product for use, in an electronic messaging environment that includes a message server and one or more message clients, the computer program product for implementing 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 sent from the message server to 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 computer-program product comprising one or more physical storage media having stored thereon computer-executable instructions that, when executed by a processor, cause the message server to perform the method, including the following: a step for providing, over an unreliable communication channel, a plurality of notifications to the one or more message clients without requesting or receiving acknowledgement of receipt of the notifications by the one or more message clients, the plurality of notifications including (i) a plurality of changes to the data stored at the message server, and (ii) a plurality of tokens identifying each of the plurality of changes; a step for determining whether or not the one or more message clients are missing any of the plurality of notifications based on whether or not the one or more message clients provide back each of the plurality of tokens identifying each of the plurality of changes; an act of sending a list identifying missing notifications to the one or more corresponding message clients; an act of receiving a request from the one or more message clients to resend the one or more missing notifications; and an act of resending the one or more missing notifications to the one or more requesting message clients.