Distributed synchronization data in a message management service
First Claim
Patent Images
1. A computer-implemented method comprising:
- receiving, by a server of a message management service, a plurality of messages from a message server of a messaging service, wherein each message of the plurality of messages comprises an external identifier set by the message server;
selecting, by the server of the message management service, a set of messages from the plurality of messages based on one or more criteria, wherein the set of messages is less than a number of messages of the plurality of messages;
generating, by the server of the message management service, an internal identifier for each message of the set of messages;
storing, by the server of the message management service, the set of messages in a message management service window, the set of messages comprising at least a first message;
generating, by the server of the message management service, a synchronization data bundle for each message in the message management service window, wherein the synchronization data bundle includes the internal identifier linked to a corresponding external identifier;
identifying, by the server of the message management service, that a client device is online;
receiving, from the client device, a set of queued action requests;
defining, by the server of the message management service, a reconciled message window based at least in part on a current state of the message management service window, wherein a number of messages in the reconciled message window exceeds a nominal maximum size of the message management server window;
updating, by the server of the message management service, the message management server window to correspond to the reconciled message window, such that the message management server window temporarily exceeds the nominal maximum size;
sending, to the client device, an instruction to update the messages stored thereon to conform to the reconciled message window;
upon identifying that the client device is online, synchronizing, by the server of the message management service, the set of messages in the message management service window with a client message window hosted on a client device remote from the server, by sending the set of the messages and the corresponding synchronization data bundle for each message in the set of messages to the client device;
performing, by the server of the message management service, an update to the message management service window during a time when the client device is offline, wherein performing the update comprises removing the first message from the message management services window;
receiving, by the server of the message management service, a first request from the client device to perform an action on the first message, the first request comprising the synchronization data bundle for the first message;
determining, by the server of the message management service, that the first message has been removed from the message management services window based on the internal message identifier of the first message; and
based on the determination, sending, by the server of the message management service to the message server, a second request to perform the action on the first message at the message server, the second request identifying the first message to the messaging service using the external message identifier.
3 Assignments
0 Petitions
Accused Products
Abstract
A message management service that acts as intermediary between a messaging service and a client device can generate a synchronization data bundle for a message that includes an external message identifier usable to retrieve the message from the messaging service. The message management service can send the synchronization data bundle to the client along with the message, and the client can store the synchronization data bundle for each message in its local data store. The client can later return the synchronization data bundle to the message management service, which can use information contained therein to facilitate synchronization and related operations.
11 Citations
18 Claims
-
1. A computer-implemented method comprising:
-
receiving, by a server of a message management service, a plurality of messages from a message server of a messaging service, wherein each message of the plurality of messages comprises an external identifier set by the message server; selecting, by the server of the message management service, a set of messages from the plurality of messages based on one or more criteria, wherein the set of messages is less than a number of messages of the plurality of messages; generating, by the server of the message management service, an internal identifier for each message of the set of messages; storing, by the server of the message management service, the set of messages in a message management service window, the set of messages comprising at least a first message; generating, by the server of the message management service, a synchronization data bundle for each message in the message management service window, wherein the synchronization data bundle includes the internal identifier linked to a corresponding external identifier; identifying, by the server of the message management service, that a client device is online; receiving, from the client device, a set of queued action requests; defining, by the server of the message management service, a reconciled message window based at least in part on a current state of the message management service window, wherein a number of messages in the reconciled message window exceeds a nominal maximum size of the message management server window; updating, by the server of the message management service, the message management server window to correspond to the reconciled message window, such that the message management server window temporarily exceeds the nominal maximum size; sending, to the client device, an instruction to update the messages stored thereon to conform to the reconciled message window; upon identifying that the client device is online, synchronizing, by the server of the message management service, the set of messages in the message management service window with a client message window hosted on a client device remote from the server, by sending the set of the messages and the corresponding synchronization data bundle for each message in the set of messages to the client device; performing, by the server of the message management service, an update to the message management service window during a time when the client device is offline, wherein performing the update comprises removing the first message from the message management services window; receiving, by the server of the message management service, a first request from the client device to perform an action on the first message, the first request comprising the synchronization data bundle for the first message; determining, by the server of the message management service, that the first message has been removed from the message management services window based on the internal message identifier of the first message; and based on the determination, sending, by the server of the message management service to the message server, a second request to perform the action on the first message at the message server, the second request identifying the first message to the messaging service using the external message identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer system comprising:
-
a message management service server having one or more processors and a memory, cause the computer system to; receive a plurality of messages for a first client device from a messaging service running on a messaging server, wherein each message of the plurality of messages comprises an external identifier set by the message server; select a set of messages from the plurality of messages based on one or more criteria, wherein the set of the messages is less than a number of messages of the plurality of messages; store, by the message management service server, the set of messages in a server message window, the set of the messages comprising at least a first message; generate a synchronization data bundle for each message in the message management service window, wherein the synchronization data bundle includes the internal identifier linked to a corresponding external identifier; identify that a client device is online; receive, from the client device, a set of queued action requests; define a reconciled message window based at least in part on a current state of the message management service window, wherein a number of messages in the reconciled message window exceeds a nominal maximum size of the message management server window; update the message management server window to correspond to the reconciled message window, such that the message management server window temporarily exceeds the nominal maximum size; send, to the client device, an instruction to update the messages stored thereon to conform to the reconciled message window; upon identifying that the client device is online, synchronize the set of messages in the server message window with a client message window hosted on a client device remote from the server, by sending the set of messages and the corresponding synchronization data bundle for each message in the set of messages to the client device; receive a request from the first client device to perform an action on the first message, the request including the synchronization data bundle for the first message; in the event that the first message is present in the server message window stored for the client device, use information stored server message window to perform the requested action on the first message; and in the event that the message is absent from the server message window stored for the client device, use information from the synchronization data bundle to perform the requested action on the first message, including sending information from the synchronization data bundle to the messaging service at the messaging server. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A non-transitory computer-readable storage medium having stored thereon program code instructions that, when executed by a server computer system, cause the server computer system to perform a method comprising:
-
receiving, by a server of a message management service, a plurality of messages from a message server of a messaging service, wherein each message of the plurality of messages comprises an external identifier set by the message server; selecting, by the server of the message management service, a set of messages from the plurality of messages based on one or more criteria, wherein the set of messages is less than a number of messages of the plurality of messages; storing, by the server of the message management service server, the set of messages in a message management service window, the set of messages comprising at least a first message; obtaining, from a client device, a set of synchronization data bundles, each synchronization data bundle in the set of synchronization data bundles corresponding to a different one of a plurality of messages stored by the client device, and where each synchronization data bundle includes an internal message identifier generated by the server of the message management service for the corresponding message and the external message identifier for the corresponding message; determining, based at least in part on the synchronization data bundles, whether one or more of the plurality of messages stored by the client device is absent from a message management service window; and for each one of the plurality of messages stored by the client device that is absent from the message management service window; extracting, from the synchronization data bundle corresponding to the message that is absent from the message management server window, the external message identifier assigned to the message by a messaging service; using the external message identifier to retrieve the message from the messaging service; adding the retrieved message to the message management service window; receiving, from the client device, a set of queued action requests; defining a reconciled message window based at least in part on a current state of the message management service window, wherein a number of messages in the reconciled message window exceeds a nominal maximum size of the message management server window; updating the message management server window to correspond to the reconciled message window, such that the message management server window temporarily exceeds the nominal maximum size; and sending, to the client device, an instruction to update the messages stored thereon to conform to the reconciled message window. - View Dependent Claims (15, 16, 17, 18)
-
Specification