Method and system for reliable distribution of messages
First Claim
1. A computer-implemented method for managing messages transmitted between a plurality of computing devices in which at least a portion of the plurality of computing devices can be designated as receivers that receive messages from a sender and wherein at least one of the designated receivers can also be designated as a recorder, the computer-implemented method comprising:
- receiving, by a recorder within a plurality of recorders, a first message sent from a sender to a set of receivers, wherein the recorder is included in the set of receivers that receive messages from the sender, and wherein the sender is configured to send a second message only when a direct acknowledgement is received from one recorder in the plurality of recorders and without waiting for an acknowledgement from any other receiver in the set of receivers;
storing, by the recorder, the first message in a message log;
transmitting, by the recorder, a direct acknowledgement to the sender that the first message was received;
transmitting, by the recorder, an indication to one or more receivers in the set of receivers regarding a set of active messages that have been received by the recorder;
receiving, by the recorder, a query from a first receiver in the set of receivers regarding an active message within the set of active messages;
in response to receiving the query, transmitting a response to the first receiver indicating that the recorder can provide the active message;
receiving, by the recorder, a request from the first receiver to provide the active message;
retrieving, by the recorder, the active message from the message log; and
transmitting, by the recorder, the active message to the first receiver.
0 Assignments
0 Petitions
Accused Products
Abstract
A method and system for distributing messages sent from senders to receivers in a reliable and real-time manner. Some of the receivers are designated as recording receivers that are responsible for recording each message that it receives so it can provide to other receivers messages they have missed. When a sender distributes a message, it waits for an acknowledgement from a recorder that it received and recorded the message. If an acknowledgement is received, then the sender knows at least one recorder has a copy of the message that that recorder can provide to other receivers that missed the message. When a receiver detects that it missed a message, it then initiates a “hole filling” process that distributes a request for the missing message to the recorders. A recorder who can provide the missing message sends to the requesting receiver a response indicating it can provide the missing message.
13 Citations
20 Claims
-
1. A computer-implemented method for managing messages transmitted between a plurality of computing devices in which at least a portion of the plurality of computing devices can be designated as receivers that receive messages from a sender and wherein at least one of the designated receivers can also be designated as a recorder, the computer-implemented method comprising:
-
receiving, by a recorder within a plurality of recorders, a first message sent from a sender to a set of receivers, wherein the recorder is included in the set of receivers that receive messages from the sender, and wherein the sender is configured to send a second message only when a direct acknowledgement is received from one recorder in the plurality of recorders and without waiting for an acknowledgement from any other receiver in the set of receivers; storing, by the recorder, the first message in a message log; transmitting, by the recorder, a direct acknowledgement to the sender that the first message was received; transmitting, by the recorder, an indication to one or more receivers in the set of receivers regarding a set of active messages that have been received by the recorder; receiving, by the recorder, a query from a first receiver in the set of receivers regarding an active message within the set of active messages; in response to receiving the query, transmitting a response to the first receiver indicating that the recorder can provide the active message; receiving, by the recorder, a request from the first receiver to provide the active message; retrieving, by the recorder, the active message from the message log; and transmitting, by the recorder, the active message to the first receiver. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for managing messages transmitted between a plurality of computing devices comprising:
-
a memory configured to store computer-executable instructions; a processor in communication with the memory and a data store; and computer-executable instructions stored in the memory, wherein the computer-executable instructions, when executed by the processor, configure the processor to; receive, from a sender, a first message sent to a set of receivers, wherein the sender is configured to send a second message only when a direct acknowledgement is received from one receiver in the set of receivers and without waiting for an acknowledgement from any other receiver in the set of receivers; store the first message in the data store; transmit, to the sender, a direct acknowledgement that the first message was received; transmit, to one or more receivers in the set of receivers, a first indication regarding a set of active messages; receive, from a first receiver in the set of receivers, a query regarding an active message in the set of active messages; and in response to the query, transmit the active message to the first receiver. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer-implemented method for managing messages transmitted between a plurality of computing devices in which at least a portion of the plurality of computing devices can be designated as receivers that receive messages from a sender and wherein at least one of the designated receivers can also be designated as a recorder, the computer-implemented method comprising:
-
receiving, by a first recorder within a plurality of recorders, a first message sent from a sender, wherein a set of receivers that receive messages from the sender includes the first recorder; adding the first message to a set of active messages; transmitting, by the first recorder, a direct acknowledgement to the sender that the first message was received, wherein the sender is configured to send a second message in response to the direct acknowledgement without waiting for an acknowledgement from any other recorder in the plurality of recorders; identifying a missing message within the set of active messages; transmitting, by the first recorder, to at least one of the plurality of recorders, a query regarding the missing message; receiving, by the first recorder, a response from a second recorder indicating that the second recorder can provide the missing message; transmitting, by the first recorder, a request to the second recorder to provide the missing message; and receiving, by the first recorder, the missing message. - View Dependent Claims (17, 18, 19, 20)
-
Specification