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:
- assigning a first chain of the gateway servers to a first client device, the first chain starting at a first gateway server of the gateway servers that hosts the first client device and ending at a second gateway server of the gateway servers;
assigning a second chain of the gateway servers to a second client device, the second chain starting at a third gateway server of the gateway servers that hosts the second client device and ending at a fourth gateway server of the gateway servers;
receiving, at the first gateway server, an electronic message from a sender associated with the first client device to a recipient associated with the second client device;
determining a sequence of the gateway servers that starts at the first gateway server and ends at the third gateway server, the sequence comprising the first and second chains;
sending, by each of the gateway servers in the sequence, the electronic message to the subsequent gateway server in the sequence;
storing the electronic message in a message queue associated with the sender in each of the gateway servers of the first chain, andstoring the electronic message in a message queue associated with the recipient in each of the gateway servers of the second chain.
2 Assignments
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:
-
assigning a first chain of the gateway servers to a first client device, the first chain starting at a first gateway server of the gateway servers that hosts the first client device and ending at a second gateway server of the gateway servers; assigning a second chain of the gateway servers to a second client device, the second chain starting at a third gateway server of the gateway servers that hosts the second client device and ending at a fourth gateway server of the gateway servers; receiving, at the first gateway server, an electronic message from a sender associated with the first client device to a recipient associated with the second client device; determining a sequence of the gateway servers that starts at the first gateway server and ends at the third gateway server, the sequence comprising the first and second chains; sending, by each of the gateway servers in the sequence, the electronic message to the subsequent gateway server in the sequence; storing the electronic message in a message queue associated with the sender in each of the gateway servers of the first chain, and storing the electronic message in a message queue associated with the recipient in each of the gateway servers of the second chain. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system comprising:
a message transmission module comprising at least one processor and configured to; assign a first chain of gateway servers to a first client device, the first chain starting at a first gateway server of the gateway servers that hosts the first client device and ending at a second gateway server of the gateway servers; assign a second chain of the gateway servers to a second client device, the second chain starting at a third gateway server of the gateway servers that hosts the second client device and ending at a fourth gateway server of the gateway servers; detect that an electronic message, from a sender associated with the first client device to a recipient associated with the second client device, is received at the first gateway server; determine a sequence of the gateway servers that starts at the first gateway server and ends at the third gateway server, the sequence comprising the first and second chains; instruct each of the gateway servers in the sequence to send the electronic message to the subsequent gateway server in the sequence; store the electronic message in a message queue associated with the sender in each of the gateway servers of the first chain, and store the electronic message in a message queue associated with the recipient in each of the gateway servers of the second chain. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
15. A non-transitory storage medium storing instructions that are executable by at least one hardware processor of a machine to cause the machine to perform operations including:
-
assigning a first chain of the gateway servers to a first client device, the first chain starting at a first gateway server of the gateway servers that hosts the first client device and ending at a second gateway server of the gateway servers; assigning a second chain of the gateway servers to a second client device, the second chain starting at a third gateway server of the gateway servers that hosts the second client device and ending at a fourth gateway server of the gateway servers; receiving, at the first gateway server, an electronic message from a sender associated with the first client device to a recipient associated with the second client device; determining a sequence of the gateway servers that starts at the first gateway server and ends at the third gateway server, the sequence comprising the first and second chains; sending, by each of the gateway servers in the sequence, the electronic message to the subsequent gateway server in the sequence; storing the electronic message in a message queue associated with the sender in each of the gateway servers of the first chain, and storing the electronic message in a message queue associated with the recipient in each of the gateway servers of the second chain. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification