IP Library Granted Patent US 8,139,596
Granted Patent B2
US 8,139,596 · App. 12/139,588 · Granted Mar 20, 2012

Communicating prioritized messages to a destination queue from multiple source queues using source-queue-specific priority values

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 8,139,596
App. No.
12/139,588
Granted
Mar 20, 2012
Kind
B2
Abstract

There is disclosed a method, apparatus and computer program for communicating messages between a first messaging system and a second messaging system. The messaging system comprises a set of source queues with each source queue owning messages retrievable in priority order. It is determined that a message should be transferred from the first messaging system to the second messaging system. A source queue is selected which contains a message having at least an equal highest priority when compared with messages on the source queues. A message having the at least equal highest priority from the selected source queue of the first messaging system is then transferred to a target queue at the second messaging system.

Claims (54)

1. A method for communicating messages between a first messaging system and a second messaging system, wherein the first messaging system comprises a plurality of source queues, each source queue owning messages retrievable in priority order, each message having a priority independent of its position in the queue, the method comprising:

determining that a message should be transferred from the first messaging system to the second messaging system by a bridge operatively coupled between the first and second messaging systems based on a registration by the second messaging system with the bridge;

selecting a source queue from the plurality of source queues which contains a message having at least an equal highest priority when compared with other messages on the plurality of source queues, which comprises:

determining that a plurality of the source queues have messages of equal highest priority when compared with the source queues; and

selecting one of the plurality of source queues having a message of equal highest priority based on the weightings applied to these queues; and

selecting a message in the selected source queue having at least an equal highest priority, wherein selecting the source queue and selecting the message are performed by the bridge; and

transferring the selected message from the selected source queue of the first messaging system to a target queue at the second messaging system via the bridge.

2. The method of claim 1 , further comprising: maintaining, at the bridge, an indication for each of the source queues as to the highest priority of messages held in each source queue.

3. The method of claim 2 , wherein the step of maintaining an indication comprises:

determining that a message has arrived on a source queue;

determining the priority of the message newly arrived on the source queue;

comparing the priority of the newly arrived message with a stored indication of the current highest priority of the source queue; and

updating the indication if the current highest priority is less than the priority of the newly arrived message.

4. The method of claim 2 , further comprising: periodically updating the indication as to the highest priority of messages held by each source queue.

5. The method of claim 2 , wherein the step of maintaining an indication as to the highest priority of messages held by each source queue comprises further maintaining an indication of the number of messages held by each source queue with this priority.

6. The method of claim 5 comprising: consecutively transferring more than one message from a source queue to the second messaging system.

7. The method of claim 1 , wherein the step of selecting one of the plurality of source queues having a message of equal highest priority comprises:

randomly selecting the one of the plurality of source queues having messages of equal highest priority.

8. Apparatus comprising hardware and software for communicating messages between a first messaging system and a second messaging system, wherein the first messaging system comprises a plurality of source queues, each source queue owning messages retrievable in priority order, wherein the priority order is not determined by message position in a queue, the apparatus comprising:

a determining component, comprising computer program instructions stored on at least one non-transitory storage medium, said computer program instructions able to be executed by at least one processor, wherein said determining component is operable for determining that a message should be transferred from the first messaging system to the second messaging system based on a registration of the second messaging system with the apparatus, the registration indicating the plurality of sources queues as being of interest to the second messaging system;

a selecting component, comprising computer program instructions stored on at least one non-transitory storage medium, said computer program instructions able to be executed by at least one processor, wherein said selecting component is operable for selecting a source queue which contains a message having at least an equal highest priority when compared with messages on the source queues, wherein the selecting component comprises:

a determining component for determining that a plurality of the source queues have a messages of equal highest priority when compared with the source queues, and

wherein said selecting component is further operable for selecting one of the plurality of source queues having a message of equal highest priority based on weightings applied to these queues; and

a transferring component, comprising computer program instructions stored on at least one non-transitory storage medium, said computer program instructions able to be executed by at least one processor, wherein said transferring component is operable for transferring a message having the at least equal highest priority from the selected source queue of the first messaging system to a target queue at the second messaging system via the apparatus.

9. The apparatus of claim 8 comprising:

a priority table in the apparatus for maintaining an indication of the priority of a message in each source queue having the highest priority of messages held in each source queue.

10. The apparatus of claim 9 , wherein a maintaining component for maintaining an indication comprises:

a determining component for determining that a message has arrived on a source queue;

a determining component for determining the priority of the message newly arrived on the source queue;

a comparing component, comprising computer program instructions stored on at least one non-transitory storage medium, said computer program instructions able to be executed by at least one processor, wherein said comparing component is operable for comparing the priority of the newly arrived message with a stored indication of the current highest priority of the source queue; and

an updating component, comprising computer program instructions stored on at least one non-transitory storage medium, said computer program instructions able to be executed by at least one processor, wherein said updating component is operable for updating the indication if the current highest priority is less than the priority of the newly arrived message.

11. The apparatus of any of claims 9 , comprising:

an updating component for periodically updating the indication as to the highest priority of messages held by each source queue.

12. The apparatus of claim 9 , wherein the priority table further maintains an indication of the number of messages held by each source queue with this priority.

13. The apparatus of claim 12 comprising:

a transferring component, comprising computer program instructions stored on at least one non-transitory storage medium, said computer program instructions able to be executed by at least one processor, wherein said transferring component is operable for consecutively transferring more than one message from a source queue to the second messaging system.

14. The apparatus of claim 8 , wherein the selecting component is further operable for

randomly selecting the one of the plurality of source queues having messages of equal highest priority.

15. A method for communicating messages between a first messaging system and a second messaging system, wherein the first messaging system comprises a plurality of source queues, each source queue owning messages retrievable in priority order, each message having a priority independent of its position in the queue, the method comprising:

determining that a message should be transferred from the first messaging system to the second messaging system by a bridge operatively coupled between the first and second messaging systems based on a registration by the second messaging system with the bridge; selecting a source queue from the plurality of source queues which contains a message having at least an equal highest priority when compared with other messages on the plurality of source queues, which comprises:

determining that a plurality of the source queues have messages of equal highest priority when compared with the source queues; and

randomly selecting one of the plurality of source queues having messages of equal highest priority; and

selecting a message in the selected source queue having at least an equal highest priority, wherein selecting the source queue and selecting the message are performed by the bridge; and

transferring the selected message from the selected source queue of the first messaging system to a target queue at the second messaging system via the bridge.

16. The method of claim 15 , wherein the step of maintaining an indication comprises:

determining that a message has arrived on a source queue;

determining the priority of the message newly arrived on the source queue;

comparing the priority of the newly arrived message with a stored indication of the current highest priority of the source queue; and

updating the indication if the current highest priority is less than the priority of the newly arrived message.

17. The method of claim 16 , further comprising: periodically updating the indication as to the highest priority of messages held by each source queue.

18. The method of claim 16 , further comprising:

periodically updating the indication as to the highest priority of messages held by each source queue.

19. The method of claim 16 , wherein the step of maintaining an indication as to the highest priority of messages held by each source queue comprises further maintaining an indication of the number of messages held by each source queue with this priority.

20. The method of claim 15 , wherein the randomly selecting one of the plurality of source queues having a message of equal highest priority is based on the weightings applied to these queues.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2024
From: DAEDALUS BLUE LLC
To: TAIWAN SEMICONDUCTOR MANUFACTURING COMPANY, LIMITED
Reel/Frame 069237/0643 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2020
From: DAEDALUS GROUP, LLC
To: DAEDALUS BLUE LLC
Reel/Frame 051737/0191 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: DAEDALUS GROUP, LLC
Reel/Frame 051710/0445 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: DAEDALUS GROUP LLC
Reel/Frame 051032/0784 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2008
From: GALE, MARTIN J.; LOCKE, DAVID
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 021099/0396 →