IP Library Granted Patent US 6,889,244
Granted Patent B1
US 6,889,244 · App. 09/703,427 · Granted May 3, 2005

Method and apparatus for passing messages using a fault tolerant storage system

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 6,889,244
App. No.
09/703,427
Granted
May 3, 2005
Kind
B1
Abstract

A method and apparatus pass messages between server and client applications using a fault tolerant storage system (FTSS). The interconnection fabric that couples the FTSS to the computer systems that host the client and server applications may also be used to carry messages. A networked system capable of hosting a distributed application includes a plurality of computer systems coupled to an FTSS via an FTSS interconnection fabric. The FTSS not only processes file-related I/O transactions, but also includes several message agents to facilitate message transfer in a reliable and fault tolerant manner. The message agents include a conversational communication agent, an event-based communication agent, a queue-based communication agent, a request/reply communication agent, and an unsolicited communication agent. The highly reliable and fault tolerant nature of the FTSS ensures that the FTSS can guarantee delivery of a message transmitted from a sending computer system to a destination computer system. As soon as a message is received by the FTSS from a sending computer system, the message is committed to a nonvolatile fault tolerant write cache. Thereafter, the message is written to a redundant array of independent disks (RAID) of the FTSS, and processed by one of the message agents.

Claims (94)

1. A method of transmitting messages between a first node and a second node, wherein the first and second nodes are each coupled to a fault tolerant storage system (FTSS), the method comprising:

transmitting a message from the first node to a communication agent in the FTSS;

storing the message in a data structure in highly reliable fault-tolerant storage media of the FTSS;

processing the message at the FTSS in accordance with a messaging paradigm; and

transmitting the message from the FTSS to the second node.

2. The method of claim 1 wherein the messaging paradigm is a request/reply communication paradigm, and:

transmitting a message from the first node to a communication agent in the FTSS comprises:

transmitting a request message from the first node to a request/reply communication agent in the FTSS;

storing the message in a data structure in highly reliable fault-tolerant storage media of the FTSS comprises:

storing the request message in a request queue in highly reliable fault-tolerant storage media of the FTSS;

processing the message at the FTSS in accordance with a messaging paradigm comprises:

retrieving the request message from the request queue; and

transmitting the message from the FTSS to the second node comprises:

transmitting the request message from the FTSS to a service on the second node;

and the method further comprises:

executing the service on the second node using the request message as an input

and providing a reply message as an output; transmitting the reply message from the second node to the request/reply

communication agent in the FTSS;

storing the reply message in a reply queue in highly reliable fault-tolerant storage

media of the FTSS;

retrieving the reply message from the reply queue; and

transmitting the reply message from the FTSS to the first node.

3. The method of claim 1 wherein the messaging paradigm is a conversational communication paradigm, and:

transmitting a message from the first node to a communication agent in the FTSS comprises:

transmitting a connect message from the first node to a conversational communication agent in the FTSS;

processing the message at the FTSS in accordance with a messaging paradigm comprises:

opening a conversation queue in highly reliable fault-tolerant storage media of the FTSS;

storing the message in a data structure in highly reliable fault-tolerant storage media of the FTSS comprises:

storing the connect message in the conversation queue; and

transmitting the message from the FTSS to the second node comprises:

transmitting the connect message from the FTSS to the second node.

4. The method of claim 3 and further comprising:

transmitting a send message from the first node to the conversational communication agent in the FTSS;

storing the send message in the conversation queue;

transmitting the send message to from the FTSS to a service on the second node;

executing the service in the second node using the send message as an input and providing a receive message as an output;

transmitting the receive message from the second node to the conversational communication agent in the FTSS;

storing the receive message in the conversation queue; and

transmitting the receive message to the first node.

5. The method of claim 3 and further comprising:

transmitting a disconnect message from the first node to the conversational communication agent in the FTSS;

closing the conversation queue; and

transmitting the disconnect message to the second node.

6. The method of claim 1 wherein the messaging paradigm is an event-based communication paradigm, and:

transmitting a message from the first node to a communication agent in the FTSS comprises:

transmitting a post message from the first node to an event-based communication agent in the FTSS;

processing the message at the FTSS in accordance with a messaging paradigm comprises:

accessing a subscription manager to determine whether any nodes have subscribed to receive the event represented by the post message;

storing the message in a data structure in highly reliable fault-tolerant storage media of the FTSS comprises:

storing the post message in an event queue in highly reliable fault-tolerant storage media of the FTSS; and

transmitting the message from the FTSS to the second node comprises:

transmitting the post message from the FTSS to the second node if the

second node has subscribed to receive the event represented by the post message.

7. The method of claim 6 and further comprising:

transmitting a subscribe message from the second node to the event-based communication manager in the FTSS, wherein the subscribe message includes an event; and

accessing the subscription manager to record that the second node has subscribed to receive post messages associated with the event.

8. The method of claim 6 and further comprising:

transmitting an unsubscribe message from the second node to the event-based communication manager in the FTSS, wherein the unsubscribe message includes an event; and

accessing the subscription manager to record that the second node should no longer receive post messages associated with the event.

9. The method of claim 1 wherein the messaging paradigm is a queue-based communication paradigm, and:

transmitting a message from the first node to a communication agent in the FTSS comprises:

transmitting an enqueue message from the first node to a queue-based communication agent in the FTSS;

storing the message in a data structure in highly reliable fault-tolerant storage media of the FTSS comprises:

storing the enqueue message in a queue space in highly reliable fault tolerant storage media of the FTSS;

processing the message at the FTSS in accordance with a messaging paradigm

comprises:

retrieving the enqueue message from the queue space only if the second

node is available; and

transmitting the message from the FTSS to the second node comprises:

transmitting the enqueue message from the FTSS to a service on the second

node only if the second node is available;

and the method further comprises:

executing the service on the second node using the enqueue message as an input

and providing a dequeue message as an output; transmitting the dequeue message from the second node to the queue-based

communication agent in the FTSS;

storing the dequeue message in the queue space;

retrieving the dequeue message from the queue space; and

transmitting the dequeue message from the FTSS to the first node.

10. The method of claim 1 wherein the messaging paradigm is an unsolicited communication paradigm, and:

transmitting a message from the first node to a communication agent in the

FTSS comprises:

transmitting a broadcast message from the first node to an unsolicited

communication agent in the FTSS;

processing the message at the FTSS in accordance with a messaging paradigm

comprises:

accessing determining which nodes should receive the broadcast message

based on the broadcast message;

storing the message in a data structure in highly reliable fault-tolerant storage

media of the FTSS comprises:

storing the broadcast message in an unsolicited message queue in highly

reliable fault-tolerant storage media of the FTSS; and

transmitting the message from the FTSS to the second node comprises:

transmitting the post message from the FTSS to all nodes that should

receive the broadcast message.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2021
From: OT PATENT ESCROW, LLC
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 055403/0001 →
PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT Recorded Jan 26, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: OT PATENT ESCROW, LLC
Reel/Frame 055269/0001 →