DELIVERING MESSAGES FROM MESSAGE SOURCES TO SUBSCRIBING RECIPIENTS
First Claim
1. A method of configuring a message server having a processor and a message store to deliver messages respectively generated by a message source to at least one recipient that is assigned to the message server, respective recipients having a recipient profile identifying the message sources subscribed by the recipient, the method comprising:
- executing on the processor instructions configured to;
generate a subscription filter indicating, for respective message sources, whether at least one recipient subscribes to the message source;
upon receiving a message from a message source;
examine the subscription filter to determine whether at least one recipient subscribes to the message source, andupon determining that at least one recipient subscribes to the message source;
store the message in the message store, andassociate with the message the recipients subscribing to the message source; and
upon receiving from a recipient a receive request to receive messages;
retrieve from the message store at least zero retrieved messages associated with the recipient, andpresent the retrieved messages to the recipient.
3 Assignments
0 Petitions
Accused Products
Abstract
Many scenarios involve the delivery of messages received from various message sources to recipients, based on subscriptions established between various recipients and message sources. The recipients may be distributively assigned to one or more message servers, either operating independently or as part of an interoperating message server set. Respective message servers may generate a subscription filter indicating whether at least one assigned recipient subscribes to respective message sources, and may utilize the subscription filter to determine, upon receiving a message from a message source, whether to discard the message or store the message for delivery. Interoperating message servers may also exchange subscription filters, and upon receiving a message from any message source, a message server may utilize the subscription filters of the other message servers to determine which other message servers are assigned at least one subscribing recipient, and may retransmit the message only to such message servers.
-
Citations
20 Claims
-
1. A method of configuring a message server having a processor and a message store to deliver messages respectively generated by a message source to at least one recipient that is assigned to the message server, respective recipients having a recipient profile identifying the message sources subscribed by the recipient, the method comprising:
executing on the processor instructions configured to; generate a subscription filter indicating, for respective message sources, whether at least one recipient subscribes to the message source; upon receiving a message from a message source; examine the subscription filter to determine whether at least one recipient subscribes to the message source, and upon determining that at least one recipient subscribes to the message source; store the message in the message store, and associate with the message the recipients subscribing to the message source; and upon receiving from a recipient a receive request to receive messages; retrieve from the message store at least zero retrieved messages associated with the recipient, and present the retrieved messages to the recipient. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
19. A system configured to deliver messages respectively generated by a message source to at least one recipient that is assigned to a message server, respective recipients subscribing to at least one message source, the system comprising:
-
a message store configured to store messages; a recipient profile store configured to store recipient profiles identifying the message sources subscribed by respective recipients; a subscription filter indicating, for respective message sources, whether at least one recipient subscribes to the message source; a message receiving component configured to, upon receiving a message from a message source; examine the subscription filter to determine whether at least one recipient subscribes to the message source, and upon determining that at least one recipient subscribes to the message source; store the message in the message store, and associate with the message the recipients subscribing to the message source; and a message presenting component configured to, upon receiving from a recipient a receive request to receive messages; retrieve from the message store at least zero retrieved messages associated with the recipient, and present the retrieved messages to the recipient.
-
-
20. A computer-readable storage medium comprising instructions that, when executed on a processor of a message server of a message server set, the message server having a processor and a message store, deliver messages respectively generated by a message source to at least one recipient that is assigned to the message server, respective recipients assigned to a message server in the message server set based on a predicted shared set of message sources subscribed by the recipients, respective recipients having a recipient profile identifying the message sources subscribed by the recipient, and the message servers of the message server set sharing an assignment map indicating an assignment of respective recipients to a message server in the message server set, by:
-
upon joining the message server set; generating a subscription filter comprising a bloom filter and indicating, for respective message sources, whether at least one recipient subscribes to the message source; and sending the subscription filter to at least one second message server of the message server set; upon receiving a subscribe request from a recipient to subscribe to a message source; updating the recipient profile of the recipient to identify the message source subscribed by the recipient, and updating the subscription filter by inserting the message source into the bloom filter to indicate that at least one recipient subscribes to the message source; upon receiving an unsubscribe request from a recipient to unsubscribe from a message source; updating the recipient profile of the recipient to identify the message source not subscribed by the recipient, and regenerating the bloom filter based on the recipient profiles of the message server; upon receiving a removal request to remove a recipient from the message server; removing the recipient profile of the recipient, and regenerating the bloom filter based on the recipient profiles of the message server; upon receiving the add request to add the new recipient to the message server; identifying a recipient message server for which the new recipient may share a predicted shared set of message sources with the recipients assigned to the recipient message server; if the recipient message server comprises the message server; generating a new recipient profile identifying the message sources subscribed by the new recipient, and updating the assignment map indicating an assignment of the new recipient to the message server; and if the recipient message server does not comprise the message server, forwarding the add request to the recipient message server; upon generating the subscription filter, sending the subscription filter to at least one other message server of the message server set; upon identifying at least one shared message source subscribed by a first recipient hosted by the message server and a second recipient hosted by a second message server, sending to the second message server a transfer request to transfer the second recipient to the message server; upon receiving a transfer request to transfer a recipient from the message server to a second message server; sending the recipient profile of the recipient to the second message server; removing the recipient profile from the message server; updating the subscription filter; and updating the assignment map indicating the assignment of the recipient to the second message server; upon receiving a second subscription filter from a second message server, storing the second subscription filter of the second message server; upon receiving a message from a message source, for respective second subscription filters; examining the subscription filter to determine whether at least one recipient subscribes to the message source; upon determining that at least one recipient subscribes to the message source; storing the message in the message store, and associating with the message the recipients subscribing to the message source; examining the second subscription filter to determine whether at least one recipient assigned to the second message server subscribes to the message source; and upon determining that at least one recipient assigned to the second message server subscribes to the message source, forwarding the message to the second message server; upon receiving from a recipient a receive request to receive messages; using the assignment map, identifying a recipient message server to which the recipient is assigned; if the recipient message server comprises the message server; retrieving from the message store at least zero retrieved messages associated with the recipient, and presenting the retrieved messages to the recipient; and if the recipient message server does not comprise the message server, forwarding the receive request to the recipient message server; and upon leaving the message server set; for respective recipients assigned to the message server, transferring the recipient to another message server of the message server set; and requesting at least one second message server of the message server set to remove the subscription filter for the message server.
-
Specification