IP Library Granted Patent US 12,425,474
Granted Patent B2
US 12,425,474 · App. 18/419,062 · Granted Sep 23, 2025

Message queue routing system

Inventors: Anurajam Rajagopalan (Medavakkam, IN); Sathyanarayana Rajendran (Chennai, IN); Sunil Kumar Sriperambudur (Peerancheru, IN)
Assignee: Bank of America Corporation
H04L67/1008G06F9/5027H04L45/302H04L67/63
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 12,425,474
App. No.
18/419,062
Granted
Sep 23, 2025
Kind
B2
Abstract

A message queue routing system may be implemented into a message queue gateway to route data to Software component designed and deployed into MQ Gateway to route the data to the MQ cluster. A central processing unit (CPU) node analyzer reads real time health statistics of each of a plurality of MQ cluster processing nodes. Based the computation, the CPU node analyzer routes the message to a specified node of the cluster having a minimum of CPU load at that time. The CPU node analyzer analyzes information comprising at least CPU performance information and system idleness information. Each processing node enables dynamic message routing computations utilizing an artificial intelligence/machine learning framework and a plurality of trained predictive models. The predictive model is trained using a trained data set using text classification. Message information is extracted from the message via natural language processing and is processed via the trained model to identify characteristic information of the message. The characteristic information is used to select a subset of filters associated with message functionality. The message is routed to a target application based on filtering performed using the subset of filters.

Claims (46)

1. A plurality of non-transitory computer readable media devices comprising:

first non-transitory memory storing first instructions that, when executed by a first processor, cause a first computing device to:

receive, at a message queue interface and via a network, a plurality of messages, wherein each of the plurality of messages is to be routed to an application computing system of a plurality of application computing systems;

aggregate, in near real-time, a plurality of health characteristics for each of a plurality of processing node computing devices; and

assign, based on the plurality of health characteristics for each of the plurality of processing node computing devices, a message of the plurality of messages to a least utilized processing node computing device of the plurality of processing node computing devices; and

second non-transitory memory storing second instructions that, when executed by a second processor, causes the least utilized processing node computing device to:

predict, based on natural language processing of contents of the message and by a trained model, a filter subset of a plurality of filters to apply to the message, wherein the filter subset identifies a message destination; and

route, via a network, the message to a target application computing system identified by the filter subset.

2. The plurality of non-transitory computer readable media devices of claim 1 , wherein the plurality of health characteristics comprises one or more of a central processing unit (CPU) load parameter, an idle time parameter, and an I/O wait time parameter.

3. The plurality of non-transitory computer readable media devices of claim 1 , wherein the filter subset comprises less than ten percent of the plurality of filters.

4. The plurality of non-transitory computer readable media devices of claim 1 , wherein each processing node of the plurality of processing nodes is associated with a different message queue of a message queue computing system.

5. The plurality of non-transitory computer readable media devices of claim 1 , wherein the second instructions further cause the least utilized processing node computing device to:

extract, via a natural language processing engine, a plurality of fields comprising message content corresponding to the target application computing system.

6. The plurality of non-transitory computer readable media devices of claim 5 , wherein the second instructions further cause the least utilized processing node computing device to:

determine, via a predictive modeling system processing the plurality of fields, a destination characteristic of a processed message; and

generate, based on the destination characteristic, a destination label for the processed message, wherein the destination label is associated with a subset of the plurality of the application computing systems.

7. The plurality of non-transitory computer readable media devices of claim 6 , wherein the instructions to apply the filter subset to the message further cause the least utilized processing node computing device to determine the subset of filters based on the destination label.

8. A method comprising,

determining, in near real time based on central processing unit (CPU) load information of a plurality of message processing nodes, a current CPU utilization for each of the plurality of message processing nodes;

assigning, each message of a plurality of messages in an input queue, to a processing node based on a comparison of current CPU utilization information for each of the plurality of message processing nodes;

identifying, by the processing node, characteristic message information corresponding to application functionality at a destination computing system;

predicting, based on natural language processing of contents of each message and by a trained model, a filter subset of a plurality of filters to apply to each message, wherein the filter subset identifies a message destination for each message; and

routing each message based on a destination identified by the filter subset.

9. The method of claim 8 , wherein the CPU load information comprises one or more of a CPU load parameter, an idle time parameter, and an I/O wait time parameter.

10. The method of claim 9 , wherein the filter subset comprises less than ten percent of the plurality of filters.

11. The method of claim 9 , wherein each processing node of the plurality of message processing nodes is associated with a different message queue of a message queue computing system.

12. The method of claim 9 , further comprising

extracting, via a natural language processing engine, a plurality of fields comprising message content corresponding to a target application computing system.

13. The method of claim 12 , further comprising:

determining, via a predictive modeling system processing the plurality of fields, a destination characteristic of the message; and

generating, based on the destination characteristic, a destination label for the message, wherein the destination label is associated with a subset of application computing systems.

14. The method of claim 13 , wherein filtering causes the processing node to determine the subset of filters based on the destination label.

15. A message routing computing system, comprising:

a message queue processor processing instructions that cause the message queue processor to:

determine, in near real time based on central processing unit (CPU) load information of a plurality of message processing nodes, a current CPU utilization for each of the plurality of message processing nodes; and

assign, a message of a plurality of messages in a message queue, to a processing node based on a comparison of real-time CPU utilization information for each of the plurality of message processing nodes;

the plurality of message processing nodes, wherein each of the plurality of message processing nodes processes instructions that cause the processing node to:

predict, based on natural language processing of contents of the message and by a trained model, a filter subset of a plurality of filters to apply to the message, wherein the filter subset identifies a message destination; and

route the message based on the message destination identified by the filter subset.

16. The message routing computing system of claim 15 , wherein the CPU load information comprises one or more of a CPU load parameter, an idle time parameter, and an I/O wait time parameter.

17. The message routing computing system of claim 15 , wherein the filter subset comprises less than ten percent of the plurality of filters.

18. The message routing computing system of claim 15 , wherein each processing node of the plurality of message processing nodes is associated with a different message queue of a message queue computing system.

19. The message routing computing system of claim 15 , wherein the processing node processes further instructions to extract, via a natural language processing engine, a plurality of fields comprising message content corresponding to a target application computing system.

20. The message routing computing system of claim 15 , wherein the processing node further executes instructions to:

determine, via a predictive modeling system processing a plurality of fields, a destination characteristic of the message; and

generate, based on the destination characteristic, a destination label for the message, wherein the destination label is associated with a subset of application computing systems.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2024
From: RAJAGOPALAN, ANURAJAM; RAJENDRAN, SATHYANARAYANA; SRIPERAMBUDUR, SUNIL KUMAR
To: BANK OF AMERICA CORPORATION
Reel/Frame 066207/0714 →
Continuity (2)
Continuation 17742868 · May 12, 2022
Related Publication 20240163328A1 · May 16, 2024
References Cited (44)
US 8650226B2 · Bobick · 2014 [cited by examiner]
US 8705527B1 · Addepalli · 2014 [cited by examiner]
US 9143392B2 · Duchesneau · 2015 [cited by examiner]
US 9378602B2 · Ricci · 2016 [cited by examiner]
US 9973465B1 · Linkous · 2018 [cited by examiner]
US 10200486B2 · Herrick et al. · 2019 [cited by applicant]
US 10356222B2 · Ghosh et al. · 2019 [cited by applicant]
US 10387214B1 · Christian · 2019 [cited by examiner]
US 10521284B2 · McClory et al. · 2019 [cited by applicant]
US 10587633B2 · Muddu · 2020 [cited by examiner]
US 10673936B2 · Maddali et al. · 2020 [cited by applicant]
US 10778660B1 · Rajaram et al. · 2020 [cited by applicant]
US 11109194B1 · Pinheiro · 2021 [cited by examiner]
US 11237880B1 · Raumann et al. · 2022 [cited by applicant]
US 11269678B2 · Gruber et al. · 2022 [cited by applicant]
US 11418583B2 · Gokavarapu et al. · 2022 [cited by applicant]
US 11469978B1 · Kaddoura · 2022 [cited by examiner]
US 12095868B2 · Adogla · 2024 [cited by examiner]
US 20070143455A1 · Gorman et al. · 2007 [cited by applicant]
US 20120233668A1 · Leafe et al. · 2012 [cited by applicant]
US 20140006597A1 · Ganguli et al. · 2014 [cited by applicant]
US 20140229480A1 · Buxbaum et al. · 2014 [cited by applicant]
US 20150310401A1 · Siracusa · 2015 [cited by applicant]
US 20150381709A1 · Word · 2015 [cited by applicant]
US 20160182328A1 · Bhasin et al. · 2016 [cited by applicant]
US 20170006135A1 · Siebel · 2017 [cited by examiner]
US 20180314407A1 · Dinh et al. · 2018 [cited by applicant]
US 20180324118A1 · Dinh et al. · 2018 [cited by applicant]
US 20180365308A1 · Kondo et al. · 2018 [cited by applicant]
US 20190104035A1 · Cidon et al. · 2019 [cited by applicant]
US 20190222510A1 · Pitio et al. · 2019 [cited by applicant]
US 20200137151A1 · Chi et al. · 2020 [cited by applicant]
US 20200151006A1 · Kancharla et al. · 2020 [cited by applicant]
US 20210120080A1 · Mishra et al. · 2021 [cited by applicant]
US 20210297499A1 · Slovetskiy · 2021 [cited by applicant]
US 20220052905A1 · Vasseur et al. · 2022 [cited by applicant]
US 20220156990A1 · Roberts · 2022 [cited by examiner]
US 20220198117A1 · Raumann et al. · 2022 [cited by applicant]
US 20220377154A1 · Slovetskiy · 2022 [cited by examiner]
US 20230088899A1 · Coombs · 2023 [cited by examiner]
CN 106919622B · 2021 [cited by applicant]
EP 3864807B1 · 2022 [cited by applicant]
WO 2006055406A2 · 2006 [cited by applicant]
Sanika Raje, Performance Comparison of Message Queue Methods, UNLV, Aug. 2019. [cited by applicant]