Message queues for rapid re-hosting of client devices
First Claim
1. A method for relaying electronic messages between connected gateway servers, the method comprising:
- receiving an electronic message at a first gateway server of a plurality of gateway servers from a first client device associated with a sender of the electronic message;
identifying a second gateway server, of the plurality of gateway servers, that is hosting a second client device that is associated with a recipient of the electronic message;
determining a sequence of gateway servers, of the plurality of gateway servers, that starts at the first gateway server and ends at the second gateway server;
performing by each gateway server in the sequence of the gateway servers;
storing the electronic message in respective user message queues associated with at least one of the sender and the recipient of the electronic message, andsending the electronic message to a subsequent gateway server in the sequence based on the subsequent gateway server following it in the sequence;
detecting that the last gateway server in the sequence is not functioning; and
hosting the second client device by the penultimate gateway server in the sequence.
1 Assignment
0 Petitions
Accused Products
Abstract
Connected gateway servers relay an electronic message from a first client device to a second client device by storing the message in respective user message queues associated with the sender and/or recipient of the message and then sending the message along a sequence of gateway servers to a gateway server that hosts the second client device. Upon receiving the electronic message at a first gateway server, a second gateway server that is hosting the second client device is identified and a sequence of gateway servers starting at the first gateway server and ending at the second gateway server is determined. Each gateway server in the sequence relays the message to the following gateway server in the sequence while maintaining user message queues. Failure of the last gateway server in the sequence results in the penultimate gateway server in the sequence assuming the responsibility of hosting the second client device.
-
Citations
20 Claims
-
1. A method for relaying electronic messages between connected gateway servers, the method comprising:
-
receiving an electronic message at a first gateway server of a plurality of gateway servers from a first client device associated with a sender of the electronic message; identifying a second gateway server, of the plurality of gateway servers, that is hosting a second client device that is associated with a recipient of the electronic message; determining a sequence of gateway servers, of the plurality of gateway servers, that starts at the first gateway server and ends at the second gateway server; performing by each gateway server in the sequence of the gateway servers; storing the electronic message in respective user message queues associated with at least one of the sender and the recipient of the electronic message, and sending the electronic message to a subsequent gateway server in the sequence based on the subsequent gateway server following it in the sequence; detecting that the last gateway server in the sequence is not functioning; and hosting the second client device by the penultimate gateway server in the sequence. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system comprising:
a plurality of gateway servers connected via a network, each of the plurality of gateway servers configured to relay an electronic message by; storing the electronic message in respective user message queues associated with at least one of a sender and a recipient of the electronic message; and sending the electronic message to another gateway server of the plurality of gateway servers; and a message module implemented by at least one processor and configured to; detect that the electronic message, sent from a first client device associated with the sender, has been received at a first gateway server of the plurality of gateway servers; identify a second gateway server, of the plurality of gateway servers, that is hosting a second client device that is associated the recipient of the electronic message; determine a sequence of gateway servers that starts at the first gateway server and ends at the second gateway server; instruct each of the gateway servers in the sequence to relay the electronic message to a subsequent gateway server in the sequence based on the subsequent gateway server following it in the sequence; detect that the last gateway server in the sequence is not functioning; and instruct the penultimate gateway server in the sequence to host the second client device. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
15. A non-transitory computer-readable medium storing program code which, when executed, is operative to cause a computing device to perform the steps of:
-
receiving an electronic message at a first gateway server of a plurality of gateway servers from a first client device associated with a sender of the electronic message; identifying a second gateway server, of the plurality of gateway servers, that is hosting a second client device that is associated with a recipient of the electronic message; determining a sequence of gateway servers, of the plurality of gateway servers, that starts at the first gateway server and ends at the second gateway server; performing by each of the gateway servers in the sequence; storing the electronic message in respective user message queues associated with the sender and the recipient of the electronic message, and sending the electronic message to a subsequent gateway server in the sequence based on the subsequent gateway server following it in the sequence; detecting that the last gateway server in the sequence is not functioning; and hosting the second client device by the penultimate gateway server in the sequence. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification