Fault-tolerant messaging system and methods
First Claim
1. A method for providing messages on a fault tolerant basis, the method comprising the steps of:
- establishing a connection between a first broker and a second broker;
replicating a state of the first broker to the second broker;
maintaining dynamic run-time synchronization of the state of the first broker in an active state and the second broker in a standby state by (1) receiving a message from the first broker that includes a copy of transactions and events that comprise the state of the first broker and (2) storing, to a volatile memory of the second broker, the transactions and the events included in the message;
recovering to the second broker upon a failure of the first broker using the transactions and events stored in the volatile memory of the second broker;
bi-directionally connecting the first broker to at least one client, wherein the at least one client is configured to send messages to and receive messages from the first broker;
wherein the step of connecting the first broker to at least one client comprises establishing a fault tolerant connection between the at least one client and the first broker that permits the at least one client to re-establish the connection to the first broker before failing over to the second broker,aligning the state of the first broker and the at least one client if an attempt to re-establish the connection was successful; and
synchronizing connection and message protocols if the attempt to re-establish the connection was successful, andwherein the state of the first broker reflects messages sent and received by the first broker.
6 Assignments
0 Petitions
Accused Products
Abstract
A fault-tolerant messaging system comprises a primary broker, a first network, a back up broker, and a second network. The primary broker and the back up broker are coupled to the first network for communication with clients thus creating a messaging system. The primary broker and the back up broker are also coupled to the second network for replicating state from the primary broker and the back up broker, and also sending transaction events immediately to maintain synchronization. The brokers further comprise a replication module for communicating state between the primary broker and the back up broker, a recovery module for performing recovery on the back up broker upon failure of the primary broker, and a fault-tolerant connection module for establishing a fault-tolerant connection between the primary broker and the back up broker over the second network. The present invention also includes a number of novel methods for performing fault tolerance.
-
Citations
36 Claims
-
1. A method for providing messages on a fault tolerant basis, the method comprising the steps of:
-
establishing a connection between a first broker and a second broker; replicating a state of the first broker to the second broker; maintaining dynamic run-time synchronization of the state of the first broker in an active state and the second broker in a standby state by (1) receiving a message from the first broker that includes a copy of transactions and events that comprise the state of the first broker and (2) storing, to a volatile memory of the second broker, the transactions and the events included in the message; recovering to the second broker upon a failure of the first broker using the transactions and events stored in the volatile memory of the second broker; bi-directionally connecting the first broker to at least one client, wherein the at least one client is configured to send messages to and receive messages from the first broker; wherein the step of connecting the first broker to at least one client comprises establishing a fault tolerant connection between the at least one client and the first broker that permits the at least one client to re-establish the connection to the first broker before failing over to the second broker, aligning the state of the first broker and the at least one client if an attempt to re-establish the connection was successful; and synchronizing connection and message protocols if the attempt to re-establish the connection was successful, and wherein the state of the first broker reflects messages sent and received by the first broker. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A fault tolerant messaging system, the system comprising:
-
a first broker having an input and output for processing messages to and from a client, the first broker having a state reflecting the processing of messages and events, the first broker adapted to maintain dynamic run-time synchronization of the state of the first broker by transmitting a synchronization message that includes a copy of transactions and events that comprise the state of the first broker; a second broker having an input and output for processing messages, the second broker adapted to receive and store the synchronization message in a volatile memory of the second broker, the second broker also adapted to use the stored synchronization message from the volatile memory of the second broker in recovering and communicating with the client upon failure of the first broker; and a first bi-directional connection coupled to the first broker and the second broker, the first connection being used to send and receive state information; and a fault tolerant connection between the first broker and at least one client, the fault tolerant connection permitting at least one client to re-establish the connection to the first broker before failing over to the second broker, wherein the state of the first broker reflects messages sent and received by the first broker, and wherein if an attempt to re-establish the connection between the first broker and the at least one client is successful, the first broker and the client are configured to align states and to synchronize connection and message protocols. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
Specification