IP Library Granted Patent US 9,444,913
Granted Patent B2
US 9,444,913 · App. 13/803,558 · Granted Sep 13, 2016

Multi-ring reliable messaging system

Inventors: Roger J. Maitland (Ottawa, CA); Michael J. Richer (Ottawa, CA)
Assignee: Alcatel Lucent
H04L69/02H04L12/42H04L12/437
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,444,913
App. No.
13/803,558
Granted
Sep 13, 2016
Kind
B2
Abstract

A multi-ring reliable messaging system is formed by interconnecting a plurality of token rings via a pair of gateways that includes an active gateway that is configured to communicate with the token rings and a standby gateway that also is configured to communicate with the token rings. The active gateway receives an original message via a first token ring, generates an associated message for a second token ring based on the original message, and propagates the associated message toward the second token ring. The active gateway supports total order delivery of messages within the token rings and causal-order delivery of messages between the token rings. The standby gateway monitors for original and associated messages received via the token rings in a manner for preventing loss of messages when the active gateway fails.

Claims (68)

1. An apparatus, comprising:

a processor and a memory communicatively connected to the processor, the processor configured to:

receive an original message at a first node configured to communicate via a set of token rings, the original message being received via a first token ring of the set of token rings, the original message having associated therewith one or more associated messages to be generated based on the original message, the one or more associated messages to be generated by a second node configured to communicate via the set of token rings, the one or more associated messages to be generated for, respectively, one or more other token rings of the set of token rings;

determine, at the first node based on the original message, the one or more other token rings for which the one or more associated messages are to be generated by the second node;

monitor, at the first node, for receipt of the one or more associated messages via, respectively, the one or more other token rings for which the one or more associated messages are to be generated by the second node; and

based on detection of a failure of the second node before at least one of the one or more associated messages has been received by the first node via, respectively, the one or more other token rings for which the one or more associated messages are to be generated by the second node, initiate distribution of the original message to the at least one of the one or more other token rings via which the at least one of the one or more associated messages has not been received by the first node.

2. The apparatus of claim 1 , wherein the processor is configured to determine the one or more other token rings for which the one or more associated messages are to be generated by the second node based on one or more address fields of the original message.

3. The apparatus of claim 1 , wherein the processor is configured to:

delete the message from the memory in response to receipt of each of the one or more associated messages from, respectively, the one or more other token rings.

4. The apparatus of claim 1 , wherein, to initiate distribution of the original message to the at least one of the one or more other token rings via which the at least one of the associated messages has not been received by the first node, the processor is configured to:

generate at least one associated message, based on the original message, for the respective at least one of the one or more other token rings via which the at least one of the associated messages has not been received; and

propagate the at least one associated message toward the respective at least one of the one or more other token rings via which the at least one of the associated messages has not been received by the first node.

5. The apparatus of claim 1 , wherein the processor is configured to monitor for receipt of the one or more associated messages via the one or more other token rings based on a data structure comprising one or more entries associated with the respective one or more other token rings for which receipt of the one or more associated messages is monitored.

6. The apparatus of claim 5 , wherein the processor is configured to:

generate the one or more entries of the data structure associated with the one or more other token rings for which receipt of the one or more associated messages is monitored.

7. The apparatus of claim 5 , wherein the processor is configured to:

receive one of the one or more associated messages via a respective one of the one or more other token rings associated with one of the one or more entries; and

remove, from the data structure, the one of the one or more entries associated with the one of the one or more other token rings via which the one of the one or more associated messages is received.

8. The apparatus of claim 5 , wherein the processor is configured to:

based on detection of a failure of the second node:

determine whether any of the one or more entries remain within the data structure; and

based on a determination that at least one of the one or more entries associated with at least one of the one or more other token rings remains within the data structure, initiate distribution of the original message to the at least one of the one or more other token rings associated with the at least one of the one or more entries remaining within the data structure.

9. The apparatus of claim 1 , wherein the processor is configured to:

based on detection of a failure of the second node:

receive a second original message via the first token ring;

determine a second token ring to which the second original message is to be provided;

generate a corresponding second associated message for the second token ring based on the second original message; and

propagate the second associated message toward the second token ring.

10. An apparatus, comprising:

a processor and a memory communicatively connected to the processor, the processor configured to:

receive, at a first node via a first token ring, an original message;

determine, at the first node based on the original message, a second token ring to which the original message is to be provided by a second node, the second node providing the original message by generating an associated message based on the original message and providing the associated message to the second token ring;

monitor, at the first node, the second token ring for receipt of the associated message;

determine, based on detection of a failure of the second node, whether the associated message has been received by the first node via the second token ring; and

initiate, by the first node based on a determination that the associated message has not been received by the first node via the second token ring, distribution of the original message to the second token ring.

11. A method, comprising:

receiving an original message at a first node configured to communicate via a set of token rings, the original message being received via a first token ring of the set of token rings, the original message having associated therewith one or more associated messages to be generated based on the original message, the one or more associated messages to be generated by a second node configured to communicate via the set of token rings, the one or more associated messages to be generated for, respectively, one or more other token rings of the set of token rings;

determining, at the first node based on the original message, the one or more other token rings for which the one or more associated messages are to be generated by the second node;

monitoring, at the first node, for receipt of the one or more associated messages via, respectively, the one or more other token rings for which the one or more associated messages are to be generated by the second node; and

based on detection of a failure of the second node before at least one of the one or more associated messages has been received by the first node via, respectively, the one or more other token rings for which the one or more associated messages are to be generated by the second node, initiating distribution of the original message to the at least one of the one or more other token rings via which the at least one of the one or more associated messages has not been received by the first node.

12. The method of claim 11 , wherein the one or more other token rings for which the one or more associated messages are to be generated by the second node are determined based on one or more address fields of the original message.

13. The method of claim 11 , further comprising:

deleting the message from a memory of the first node in response to receipt of each of the one or more associated messages from, respectively, the one or more other token rings.

14. The method of claim 11 , wherein initiating distribution of the original message to the at least one of the one or more other token rings via which the at least one of the associated messages has not been received by the first node comprises:

generating at least one associated message, based on the original message, for the respective at least one of the one or more other token rings via which the at least one of the associated messages has not been received; and

propagating the at least one associated message toward the respective at least one of the one or more other token rings via which the at least one of the associated messages has not been received by the first node.

15. The method of claim 11 , wherein monitoring for receipt of the one or more associated messages via the one or more other token rings is based on a data structure comprising one or more entries associated with the respective one or more other token rings for which receipt of the one or more associated messages is monitored.

16. The method of claim 15 , further comprising:

generating the one or more entries of the data structure associated with the one or more other token rings for which receipt of the one or more associated messages is monitored.

17. The method of claim 15 , further comprising:

receiving one of the one or more associated messages via a respective one of the one or more other token rings associated with one of the one or more entries; and

removing, from the data structure, the one of the one or more entries associated with the one of the one or more other token rings via which the one of the one or more associated messages is received.

18. The method of claim 15 , further comprising:

based on detection of a failure of the second node:

determining whether any of the one or more entries remain within the data structure; and

based on a determination that at least one of the one or more entries associated with at least one of the one or more other token rings remains within the data structure, initiating distribution of the original message to the at least one of the one or more other token rings associated with the at least one of the one or more entries remaining within the data structure.

19. The method of claim 11 , further comprising:

based on detection of a failure of the second node:

receiving a second original message via the first token ring;

determining a second token ring to which the second original message is to be provided;

generating a corresponding second associated message for the second token ring based on the second original message; and

propagating the second associated message toward the second token ring.

20. A method, comprising:

receiving, at a first node via a first token ring, an original message;

determining, at the first node based on the original message, a second token ring to which the original message is to be provided by a second node, the second node providing the original message by generating an associated message based on the original message and providing the associated message to the second token ring;

monitoring, at the first node, the second token ring for receipt of the associated message;

determining, based on detection of a failure of the second node, whether the associated message has been received by the first node via the second token ring; and

initiating, by the first node based on a determination that the associated message has not been received by the first node via the second token ring, distribution of the original message to the second token ring.

Assignments (4)
SECURITY INTEREST Recorded Jun 1, 2021
From: WSOU INVESTMENTS, LLC
To: OT WSOU TERRIER HOLDINGS, LLC
Reel/Frame 056990/0081 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2020
From: ALCATEL LUCENT
To: WSOU INVESTMENTS, LLC
Reel/Frame 052372/0675 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2014
From: ALCATEL-LUCENT CANADA INC.
To: ALCATEL LUCENT
Reel/Frame 032737/0700 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2013
From: MAITLAND, ROGER J; RICHER, MICHAEL J
To: ALCATEL-LUCENT CANADA INC.
Reel/Frame 030326/0267 →
Continuity (1)
Related Publication 20140280700A1 · Sep 18, 2014