IP Library Granted Patent US 9,742,651
Granted Patent B2
US 9,742,651 · App. 14/639,351 · Granted Aug 22, 2017

Client-side fault tolerance in a publish-subscribe system

Inventors: Kanak B. Agarwal (Austin, TX); Patrick J. Bohrer (Cedar Park, TX); Ahmed Gheith (Austin, TX); Michael D. Kistler (Austin, TX); Ramakrishnan Rajamony (Austin, TX)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
H04L43/10H04L67/145H04L67/26H04L67/42
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,742,651
App. No.
14/639,351
Granted
Aug 22, 2017
Kind
B2
Abstract

To provide client-side fault-tolerance in a publish-subscribe system, a message is received on a channel from a server. At a function executing using a processor and a memory, a determination is made whether the message contains a heartbeat data. When the message contains the heartbeat data, a determination is made whether a content signature contained in the message matches a last known content signature saved from a previous message. When the content signature contained in the message does not match the last known content signature saved from a previous message, a refresh message is sent to the channel.

Claims (82)

1. A method for client-side fault-tolerance in a publish-subscribe system, the method comprising:

receiving, on a channel, a message from a server;

determining, at a function executing using a processor and a memory, whether the message contains a heartbeat data;

determining, responsive to the message containing the heartbeat data, whether a content signature contained in the message matches a last known content signature saved from a previous message;

sending a refresh message to the channel, responsive to the content signature contained in the message not matching the last known content signature saved from a previous message;

clearing, responsive to sending the refresh message, the last known content signature from the previous message;

receiving, responsive to the refresh message, a response message;

setting the last known content signature with a content signature contained in the response message;

activating a timeout timer upon receiving the response message;

receiving, prior to the timeout timer expiring, a next message subsequent to the response message;

determining that the next message carries a second heartbeat data;

determining that a second content signature contained in the next message matches the last known content signature saved from the response message;

resetting and reactivating the timeout timer upon receiving the next message; and

monitoring the channel for a content update from the server.

2. The method of claim 1 , further comprising:

receiving an other message after the message;

determining that the other message carries content and a corresponding content signature; and

saving the content signature of the other message as the last known content signature.

3. The method of claim 1 , wherein the content signature contained in the message comprises a content signature used by the server in a last message that carried content, wherein the content is responsive to a request, and wherein the heartbeat data is not responsive to the request.

4. The method of claim 1 , further comprising:

activating a timeout timer upon receiving the previous message;

determining that the message has been received on the channel prior to the timeout timer expiring; and

resetting and reactivating the timeout timer upon receiving the message.

5. The method of claim 1 , further comprising:

activating a timeout timer upon receiving an other message; and

re-subscribing to the channel, responsive to the timeout timer expiring prior to receiving a next message subsequent to the other message.

6. A computer usable program product comprising a computer readable storage device including computer usable code for client-side fault-tolerance in a publish-subscribe system, the computer usable code comprising:

computer usable code for receiving, on a channel, a message from a server;

computer usable code for determining, at a function executing using a processor and a memory, whether the message contains a heartbeat data;

computer usable code for determining, responsive to the message containing the heartbeat data, whether a content signature contained in the message matches a last known content signature saved from a previous message;

computer usable code for sending a refresh message to the channel, responsive to the content signature contained in the message not matching the last known content signature saved from a previous message;

computer usable code for clearing, responsive to sending the refresh message, the last known content signature from the previous message;

computer usable code for receiving, responsive to the refresh message, a response message;

computer usable code for setting the last known content signature with a content signature contained in the response message;

computer usable code for activating a timeout timer upon receiving the response message;

computer usable code for receiving, prior to the timeout timer expiring, a next message subsequent to the response message;

computer usable code for determining that the next message carries a second heartbeat data;

computer usable code for determining that a second content signature contained in the next message matches the last known content signature saved from the response message;

computer usable code for resetting and reactivating the timeout timer upon receiving the next message; and

computer usable code for monitoring the channel for a content update from the server.

7. The computer usable program product of claim 6 , further comprising:

computer usable code for receiving an other message after the message;

computer usable code for determining that the other message carries content and a corresponding content signature; and

computer usable code for saving the content signature of the other message as the last known content signature.

8. The computer usable program product of claim 6 , wherein the content signature contained in the message comprises a content signature used by the server in a last message that carried content, wherein the content is responsive to a request, and wherein the heartbeat data is not responsive to the request.

9. The computer usable program product of claim 6 , further comprising:

computer usable code for activating a timeout timer upon receiving the previous message;

computer usable code for determining that the message has been received on the channel prior to the timeout timer expiring; and

computer usable code for resetting and reactivating the timeout timer upon receiving the message.

10. The computer usable program product of claim 6 , further comprising:

computer usable code for activating a timeout timer upon receiving an other message; and

computer usable code for re-subscribing to the channel, responsive to the timeout timer expiring prior to receiving a next message subsequent to the other message.

11. The computer usable program product of claim 6 , wherein the computer usable code is stored in a computer readable storage device in a data processing system, and wherein the computer usable code is transferred over a network from a remote data processing system.

12. The computer usable program product of claim 6 , wherein the computer usable code is stored in a computer readable storage device in a server data processing system, and wherein the computer usable code is downloaded over a network to a remote data processing system for use in a computer readable storage device associated with the remote data processing system.

13. A data processing system for client-side fault-tolerance in a publish-subscribe system, the data processing system comprising:

a storage device, wherein the storage device stores computer usable program code; and

a processor, wherein the processor executes the computer usable program code, and wherein the computer usable program code comprises:

computer usable code for receiving, on a channel, a message from a server;

computer usable code for determining, at a function executing using a processor and a memory, whether the message contains a heartbeat data;

computer usable code for determining, responsive to the message containing the heartbeat data, whether a content signature contained in the message matches a last known content signature saved from a previous message;

computer usable code for sending a refresh message to the channel, responsive to the content signature contained in the message not matching the last known content signature saved from a previous message;

computer usable code for clearing, responsive to sending the refresh message, the last known content signature from the previous message;

computer usable code for receiving, responsive to the refresh message, a response message;

computer usable code for setting the last known content signature with a content signature contained in the response message;

computer usable code for activating a timeout timer upon receiving the response message;

computer usable code for receiving, prior to the timeout timer expiring, a next message subsequent to the response message;

computer usable code for determining that the next message carries a second heartbeat data;

computer usable code for determining that a second content signature contained in the next message matches the last known content signature saved from the response message;

computer usable code for resetting and reactivating the timeout timer upon receiving the next message; and

computer usable code for monitoring the channel for a content update from the server.

14. The data processing system of claim 13 , further comprising:

computer usable code for receiving an other message after the message;

computer usable code for determining that the other message carries content and a corresponding content signature; and

computer usable code for saving the content signature of the other message as the last known content signature.

15. The data processing system of claim 13 , wherein the content signature contained in the message comprises a content signature used by the server in a last message that carried content, wherein the content is responsive to a request, and wherein the heartbeat data is not responsive to the request.

16. The data processing system of claim 13 , further comprising:

computer usable code for activating a timeout timer upon receiving the previous message;

computer usable code for determining that the message has been received on the channel prior to the timeout timer expiring; and

computer usable code for resetting and reactivating the timeout timer upon receiving the message.

17. The data processing system of claim 13 , further comprising:

computer usable code for activating a timeout timer upon receiving an other message; and

computer usable code for re-subscribing to the channel, responsive to the timeout timer expiring prior to receiving a next message subsequent to the other message.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2015
From: AGARWAL, KANAK B.; BOHRER, PATRICK J.; GHEITH, AHMED; KISTLER, MICHAEL D.; RAJAMONY, RAMAKRISHNAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 035093/0507 →
Continuity (1)
Related Publication 20160261480A1 · Sep 8, 2016