Message delivery system and method with queue notification
AssigneeSolace Systems, Inc.
InventorsDuane Pauls, Richard Chan, Ragnar Paulson, Tony Zoght, Jonathan Bosloy, Shawn McAllister
Life of this patent
Estimating the term…
Abstract
In a message delivery system, messages are published by publishers and delivered to subscribers based on subscriptions relating to message content. Activation and de-activation notifications are supplied to applications that are bound to a queue in the message delivery system.
Claims14
In a message delivery system for delivering messages from publishing clients to subscribing clients, comprising a queue containing messages received from the publishing clients for delivery to a plurality of the subscribing clients bound to the queue, wherein a certain number of said subscriber clients bound to the queue are active at any one time and a remainder of said subscriber clients bound to the queue are inactive at any one time, said active subscriber clients being subscriber clients to whom the message delivery system forwards messages from the queue and said inactive subscriber clients being clients to whom the message delivery system does not forward messages from the queue, and wherein the message delivery system selects the subscriber clients as active or inactive, a method of managing the subscriber clients bound to the queue, comprising:
- the message delivery system:
- (i) storing state information determining which of the subscriber clients bound to the queue is/are currently active and which of the subscriber clients bound to the queue is/are currently inactive;
- (ii) upon a new subscribing client binding to the queue, sending a bind acknowledgement message to said new subscribing client, determining whether said new subscribing client is to be selected as active, and if said new subscribing client is selected as active, sending a flow active indication message generated by the message delivery system to said new subscribing client for the queue indicating that it is currently active to receive messages from the queue originating from publishing client, and if said new subscribing client is selected as inactive, sending a flow inactive indication message generated by the message delivery system to said new subscribing client for the queue indicating that it is currently inactive;
- (iii) when the message delivery system selects a previously inactive subscribing client bound to the queue to become active, sending a corresponding notification message generated by the message delivery system to the previously inactive subscribing client;
- and
- (iv) when the message delivery system selects a previously active subscribing client bound to the queue to become inactive, sending a corresponding notification message generated by the message delivery system to the previously active subscribing client indicating that it is currently inactive;
- and
- wherein the message delivery system has a configurable parameter that determines the maximum number of active subscriber clients that can be bound to the queue at any one time;
- and
- wherein when a new subscribing client binds to the queue by sending a bind request message to the message delivery system, the message delivery system sends back a bind acknowledgment message and an indication of active/inactive status.
A message delivery system for delivering messages from publishing clients to subscribing clients, comprising:
- a queue provisioned for the delivery of messages received from the publishing clients to a plurality of subscriber clients bound to the queue, wherein a certain number of said subscriber clients bound to the queue are active at any one time and a remainder of said subscriber clients bound to the queue are inactive, said active subscriber clients being subscriber clients to whom the message delivery system forwards messages from the queue and said inactive subscriber clients being clients to whom the message delivery system does not forward messages from the queue;
- a look-up table storing state information determining which of the subscriber clients bound to the queue is/are currently active and which of the subscriber clients bound to the queue is/are currently inactive, the selection of said subscriber client as active or inactive being performed by the message delivery system;
- and
- a processor configured to:
- (i) retrieve the state information to determine which of the subscriber clients bound to the queue is/are currently active and which of the subscriber clients bound to the queue is/are currently inactive;
- (ii) upon a new subscribing client binding to the queue, send a bind acknowledgement message to said new subscribing client, determine whether said new subscribing client is to be selected as active, and if said new subscribing client is selected as active, send a flow active indication message generated by the message delivery system to said new subscribing client for the queue indicating that it is currently active to receive messages from the queue originating from publishing client, and if said new subscribing client is selected as inactive, sending a notification message generated by the message delivery system to said new subscribing client for the queue indicating that it is currently inactive;
- and
- (iii) when the message delivery system selects a previously inactive subscribing client bound to the queue to become active, send a corresponding notification message generated by the message delivery system to the previously inactive subscribing client;
- and
- (iv) when the message delivery system selects a previously active subscribing client bound to the queue to become inactive, send a corresponding notification message generated by the message delivery system to the previously active subscribing client indicating that it is currently inactive;
- and
- wherein the message delivery stores has a configurable parameter that determines the maximum number of active subscriber clients that can be bound to the queue at any one time;
- and
- wherein the processor sends back a bind acknowledgment message and an indication of active/inactive status when a new subscribing client binds to the queue by sending a bind request message to the message delivery system.
Dependencies are inferred from the claim text.