Gapless delivery and durable subscriptions in a content-based publish/subscribe system
First Claim
1. A content-based publish/subscribe system for providing gapless message delivery from a publishing client to a subscribing client, comprising:
- a plurality of brokers operatively coupled together via a network, each of the brokers including at least one processor and memory coupled to the processor, each of the brokers being operative in at least one of a publisher-hosting broker mode, a subscriber-hosting broker mode and an intermediate broker mode, wherein;
in the publisher-hosting broker mode, the at least one processor is operative to;
(i) receive a message from a publishing client coupled to the publish/subscribe system;
(ii) store the received message and a stream state corresponding thereto; and
(iii) transmit the message to one or more downstream brokers;
in the intermediate broker mode, the at least one processor is operative to;
(i) receive a knowledge message from an upstream broker;
(ii) accumulate the received knowledge message with an existing information stream;
(iv) in response to a request for knowledge, transmit at least a portion of the accumulated knowledge messages satisfying at least a portion of the request for knowledge to one or more downstream brokers; and
(v) transmit curiosity messages corresponding the knowledge messages that cannot be satisfied to one or more upstream brokers;
in the subscriber-hosting broker mode, the at least one processor is operative to;
(i) receive a knowledge message from an upstream broker;
(ii) determine an original maximum time interval in which all messages therein are known;
(iii) accumulate one or more received knowledge messages in a subend knowledge stream;
(iv) determine a new maximum time interval in which all messages therein are known based on the accumulated knowledge messages; and
(v) when the new maximum time interval is greater than the original maximum time interval, transmit all knowledge messages between the new and original maximum time intervals to one or more subscriber clients;
whereby at least a portion of the plurality of brokers are configured so as to eliminate a need for persistent storage of messages at brokers operating in the intermediate broker mode and to substantially guarantee a gapless delivery of one or more messages transmitted by the publishing client to the subscribing client, even in the presence of a failure in the publish/subscribe system.
0 Assignments
0 Petitions
Accused Products
Abstract
A content-based publish/subscribe system for providing gapless message delivery from a publishing client to a subscribing client, the system includes a plurality of brokers operatively coupled to one another via a network. Each of the brokers include at least one processor and are configured as a publisher-hosting broker, a subscriber-hosting broker or an intermediate broker. The subscriber-hosting broker is operatively coupled to the publisher-hosting broker via the network through the intermediate broker. At least a portion of the plurality of brokers are configured so as to eliminate a need for persistent storage of messages at the intermediate broker and to substantially guarantee a gapless delivery of one or more messages transmitted by the publishing client to the subscribing client, even in the presence of a failure in the publish/subscribe system.
-
Citations
14 Claims
-
1. A content-based publish/subscribe system for providing gapless message delivery from a publishing client to a subscribing client, comprising:
-
a plurality of brokers operatively coupled together via a network, each of the brokers including at least one processor and memory coupled to the processor, each of the brokers being operative in at least one of a publisher-hosting broker mode, a subscriber-hosting broker mode and an intermediate broker mode, wherein;
in the publisher-hosting broker mode, the at least one processor is operative to;
(i) receive a message from a publishing client coupled to the publish/subscribe system;
(ii) store the received message and a stream state corresponding thereto; and
(iii) transmit the message to one or more downstream brokers;
in the intermediate broker mode, the at least one processor is operative to;
(i) receive a knowledge message from an upstream broker;
(ii) accumulate the received knowledge message with an existing information stream;
(iv) in response to a request for knowledge, transmit at least a portion of the accumulated knowledge messages satisfying at least a portion of the request for knowledge to one or more downstream brokers; and
(v) transmit curiosity messages corresponding the knowledge messages that cannot be satisfied to one or more upstream brokers;
in the subscriber-hosting broker mode, the at least one processor is operative to;
(i) receive a knowledge message from an upstream broker;
(ii) determine an original maximum time interval in which all messages therein are known;
(iii) accumulate one or more received knowledge messages in a subend knowledge stream;
(iv) determine a new maximum time interval in which all messages therein are known based on the accumulated knowledge messages; and
(v) when the new maximum time interval is greater than the original maximum time interval, transmit all knowledge messages between the new and original maximum time intervals to one or more subscriber clients;
whereby at least a portion of the plurality of brokers are configured so as to eliminate a need for persistent storage of messages at brokers operating in the intermediate broker mode and to substantially guarantee a gapless delivery of one or more messages transmitted by the publishing client to the subscribing client, even in the presence of a failure in the publish/subscribe system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. In an intermediate broker associated with a content-based publish/subscribe system, a method for providing gapless message delivery from a publishing client to a subscribing client, comprising the steps of:
-
receiving a knowledge message from an upstream broker;
accumulating the received knowledge message with an existing information stream;
in response to a request for knowledge, transmitting at least a portion of the accumulated knowledge messages satisfying at least a portion of the request for knowledge to one or more downstream brokers; and
transmitting one or more curiosity messages corresponding to one or more knowledge messages that cannot be satisfied to one or more upstream brokers;
- View Dependent Claims (13)
-
-
14. In a subscriber-hosting broker associated with a content-based publish/subscribe system, a method for providing gapless message delivery from a publishing client to a subscribing client, comprising the steps of:
-
receiving a knowledge message from an upstream broker;
determining an original maximum time interval in which all messages therein are known;
accumulating one or more received knowledge messages in a subend knowledge stream;
determining a new maximum time interval in which all messages therein are known based on the accumulated knowledge messages; and
when the new maximum time interval is greater than the original maximum time interval, transmitting all knowledge messages between the new and original maximum time intervals to one or more subscriber clients.
-
Specification