IP Library Granted Patent US 9,807,015
Granted Patent B2
US 9,807,015 · App. 14/219,771 · Granted Oct 31, 2017

Message processing using dynamic load balancing queues in a messaging 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 9,807,015
App. No.
14/219,771
Granted
Oct 31, 2017
Kind
B2
Abstract

A system, method, and computer-readable medium are disclosed for dynamically managing message queues to balance processing loads in a message-oriented middleware environment. A first source message associated with a first target is received, followed by generating a first dynamic load balancing message queue when a first message queue associated with the first target is determined to not be optimal. The first dynamic load balancing message queue is then associated with the first target, followed by enqueueing the first source message to the first dynamic load balancing message queue for processing by the first target.

Claims (81)

1. A computer-implementable method for dynamically managing message queues in a dynamic message-oriented middleware environment, the dynamic message-oriented middleware environment comprising a plurality of message queues and a plurality of dynamic load balancing message queues, comprising:

receiving a first source message associated with a first target;

generating a first dynamic load balancing message queue when a first message queue is determined not to be optimal, the first message queue associated with the first target, the first message queue comprising a first application message queue and at least one of a respective first queue listener and a respective first application queue consumer;

associating the first dynamic load balancing message queue with the first target;

enqueueing the first source message to the first dynamic load balancing message queue for processing by the first target, the enqueueing the first source message being performed via a message queue router, the message queue router enqueueing the first source message according to routing rules;

receiving a second source message associated with a second target;

generating a second dynamic load balancing message queue when a second message queue is determined not to be optimal, the second message queue associated with the second target, the second message queue comprising a second application message queue and at least one of a respective second queue listener and a second application queue consumer, the generating the second dynamic load balancing message queue being performed when at least one of a predetermined message queue contention threshold is reached and when a predetermined message queue backlog value is reached;

associating the second dynamic load balancing message queue with the second target;

enqueueing the second source message to the second dynamic load balancing message queue for processing by the second target; and,

performing a dynamic message queue management operation in the message-oriented middleware environment based upon the receiving the first source message, generating the first dynamic load balancing message queue, associating the first dynamic load balancing message queue, enqueueing the first source message, the receiving the second source message, generating the second dynamic load balancing message queue, associating the second dynamic load balancing message queue, and enqueueing the second source message, the dynamic message queue management operation being performed by a dynamic message queue management system, the dynamic message queue management system comprising a load balancer, the load balancer identifying and routing a message load to one of the first message queue, the second message queue, the first dynamic load balancing message queue and the second dynamic load balancing message queue, the load balancer comprising at least one of a business-specific load balancer and a domain-specific load balancer.

2. The method of claim 1 , further comprising:

receiving a third source message associated with the first target;

generating a third dynamic load balancing message queue when the first message queue and the first dynamic load balancing message queue are determined to not be optimal;

associating the third dynamic load balancing message queue with the first target; and

enqueueing the third source message to the third dynamic load balancing message queue for processing by the first target.

3. The method of claim 2 , further comprising:

receiving a fourth source message associated with the second target;

generating a fourth dynamic load balancing message queue when the second message queue and the second dynamic load balancing message queue are determined to not be optimal;

associating the fourth dynamic load balancing message queue with the second target; and

enqueueing the fourth source message to the fourth dynamic load balancing message queue for processing by the second target.

4. The method of claim 3 , further comprising:

associating the third dynamic load balancing message queue with the second target when the third dynamic load balancing message queue is determined to be more optimal than the second message queue, the second dynamic load balancing message queue, and the fourth dynamic load balancing message queue; and

enqueueing the fourth source message to the third dynamic load balancing message queue for processing by the second target.

5. The method of claim 4 , further comprising:

associating the fourth dynamic load balancing message queue with the first target when the fourth dynamic load balancing message queue is determined to be more optimal than the first message queue, the first dynamic load balancing message queue, and the third dynamic load balancing message queue; and

enqueueing the third source message to the fourth dynamic load balancing message queue for processing by the first target.

6. A system comprising:

a processor;

a data bus coupled to the processor; and

a non-transitory, computer-readable storage medium embodying computer program code, the non-transitory, computer-readable storage medium being coupled to the data bus, the computer program code interacting with a plurality of computer operations for dynamically managing message queues in a dynamic message-oriented middleware environment, the dynamic message-oriented middleware environment comprising a plurality of message queues and a plurality of dynamic load balancing message queues and comprising instructions executable by the processor and configured for:

receiving a first source message associated with a first target;

generating a first dynamic load balancing message queue when a first message queue is determined not to be optimal, the first message queue associated with the first target, the first message queue comprising a first application message queue and at least one of a respective first queue listener and a respective first application queue consumer;

associating the first dynamic load balancing message queue with the first target;

enqueueing the first source message to the first dynamic load balancing message queue for processing by the first target; and,

receiving a second source message associated with a second target;

generating a second dynamic load balancing message queue when a second message queue is determined not to be optimal, the second message queue associated with the second target, the second message queue comprising a second application message queue and at least one of a respective second queue listener and a second application queue consumer, the generating the second dynamic load balancing message queue being performed when at least one of a predetermined message queue contention threshold is reached and when a predetermined message queue backlog value is reached;

associating the second dynamic load balancing message queue with the second target;

enqueueing the second source message to the second dynamic load balancing message queue for processing by the second target; and,

performing a dynamic message queue management operation in the message-oriented middleware environment based upon the receiving the first source message, generating the first dynamic load balancing message queue, associating the first dynamic load balancing message queue, enqueueing the first source message, the receiving the second source message, generating the second dynamic load balancing message queue, associating the second dynamic load balancing message queue, and enqueueing the second source message, the dynamic message queue management operation being performed by a dynamic message queue management system, the dynamic message queue management system comprising a load balancer, the load balancer identifying and routing a message load to one of the first message queue, the second message queue, the first dynamic load balancing message queue and the second dynamic load balancing message queue, the load balancer comprising at least one of a business-specific load balancer and a domain-specific load balancer.

7. The system of claim 6 , further comprising:

receiving a third source message associated with the first target;

generating a third dynamic load balancing message queue when the first message queue and the first dynamic load balancing message queue are determined to not be optimal;

associating the third dynamic load balancing message queue with the first target; and

enqueueing the third source message to the third dynamic load balancing message queue for processing by the first target.

8. The system of claim 7 , further comprising:

receiving a fourth source message associated with the second target;

generating a fourth dynamic load balancing message queue when the second message queue and the second dynamic load balancing message queue are determined to not be optimal;

associating the fourth dynamic load balancing message queue with the second target; and

enqueueing the fourth source message to the fourth dynamic load balancing message queue for processing by the second target.

9. The system of claim 8 , further comprising:

associating the third dynamic load balancing message queue with the second target when the third dynamic load balancing message queue is determined to be more optimal than the second message queue, the second dynamic load balancing message queue, and the fourth dynamic load balancing message queue; and

enqueueing the fourth source message to the third dynamic load balancing message queue for processing by the second target.

10. The system of claim 9 , further comprising:

associating the fourth dynamic load balancing message queue with the first target when the fourth dynamic load balancing message queue is determined to be more optimal than the first message queue, the first dynamic load balancing message queue, and the third dynamic load balancing message queue; and

enqueueing the third source message to the fourth dynamic load balancing message queue for processing by the first target.

11. A non-transitory, computer-readable storage medium embodying computer program code for dynamically managing message queues in a dynamic message-oriented middleware environment, the dynamic message-oriented middleware environment comprising a plurality of message queues and a plurality of dynamic load balancing message queues, the computer program code comprising computer executable instructions configured for:

receiving a first source message associated with a first target;

generating a first dynamic load balancing message queue when a first message queue is determined not to be optimal, the first message queue associated with the first target, the first message queue comprising a first application message queue and at least one of a respective first queue listener and a respective first application queue consumer;

associating the first dynamic load balancing message queue with the first target;

enqueueing the first source message to the first dynamic load balancing message queue for processing by the first target; and,

receiving a second source message associated with a second target;

generating a second dynamic load balancing message queue when a second message queue is determined not to be optimal, the second message queue associated with the second target, the second message queue comprising a second application message queue and at least one of a respective second queue listener and a second application queue consumer, the generating the second dynamic load balancing message queue being performed when at least one of a predetermined message queue contention threshold is reached and when a predetermined message queue backlog value is reached;

associating the second dynamic load balancing message queue with the second target;

enqueueing the second source message to the second dynamic load balancing message queue for processing by the second target; and,

performing a dynamic message queue management operation in the message-oriented middleware environment based upon the receiving the first source message, generating the first dynamic load balancing message queue, associating the first dynamic load balancing message queue, enqueueing the first source message, the receiving the second source message, generating the second dynamic load balancing message queue, associating the second dynamic load balancing message queue, and enqueueing the second source message, the dynamic message queue management operation being performed by a dynamic message queue management system, the dynamic message queue management system comprising a load balancer, the load balancer identifying and routing a message load to one of the first message queue, the second message queue, the first dynamic load balancing message queue and the second dynamic load balancing message queue, the load balancer comprising at least one of a business-specific load balancer and a domain-specific load balancer.

12. The non-transitory, computer-readable storage medium of claim 11 , further comprising:

receiving a third source message associated with the first target;

generating a third dynamic load balancing message queue when the first message queue and the first dynamic load balancing message queue are determined to not be optimal;

associating the third dynamic load balancing message queue with the first target; and

enqueueing the third source message to the third dynamic load balancing message queue for processing by the first target.

13. The non-transitory, computer-readable storage medium of claim 12 , further comprising:

receiving a fourth source message associated with the second target;

generating a fourth dynamic load balancing message queue when the second message queue and the second dynamic load balancing message queue are determined to not be optimal;

associating the fourth dynamic load balancing message queue with the second target; and

enqueueing the fourth source message to the fourth dynamic load balancing message queue for processing by the second target.

14. The non-transitory, computer-readable storage medium of claim 13 , further comprising:

associating the third dynamic load balancing message queue with the second target when the third dynamic load balancing message queue is determined to be more optimal than the second message queue, the second dynamic load balancing message queue, and the fourth dynamic load balancing message queue; and

enqueueing the fourth source message to the third dynamic load balancing message queue for processing by the second target.

15. The non-transitory, computer-readable storage medium of claim 14 , further comprising:

associating the fourth dynamic load balancing message queue with the first target when the fourth dynamic load balancing message queue is determined to be more optimal than the first message queue, the first dynamic load balancing message queue, and the third dynamic load balancing message queue; and

enqueueing the third source message to the fourth dynamic load balancing message queue for processing by the first target.

Assignments (15)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL USA L.P.; ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF REEL 032810 FRAME 0038 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, INC.
Reel/Frame 040027/0686 →
RELEASE OF REEL 032809 FRAME 0987 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, INC.
Reel/Frame 040026/0953 →
RELEASE OF REEL 032810 FRAME 0023 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, INC.
Reel/Frame 040014/0320 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded May 1, 2014
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 032810/0038 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded May 1, 2014
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 032810/0023 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded May 1, 2014
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 032809/0987 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2014
From: PATHAK, ANSHUMAN; SRINIVASAN, BALASUBRAMANIAN; NAGABUSHANA, GAUTHAM DEVANGA
To: DELL PRODUCTS L.P.
Reel/Frame 032477/0816 →