System and method for message processing and routing
First Claim
1. A computerized message routing system comprising:
- a plurality of disparate messaging subsystems having different transaction management protocols, wherein the disparate messaging subsystems include a publisher configured to publish messages under general subjects using different transports;
a router configured to run (i) a consumer process that includes multiple consumer threads, (ii) a publisher process that includes multiple publisher threads configured to publish messages from the router, and (iii) an application configured to execute multiple routing rules on inbound messages received from the publisher, wherein the application is also configured to determine a set of specific subjects for each of the inbound messages, the router configured to publish outbound messages to consumers in accordance with one or more subscriptions based on the specific subjects and the general subjects; and
a library having multiple introspection routines configured to be dynamically loaded by the router;
wherein the application is further configured to determine a message type.
0 Assignments
0 Petitions
Accused Products
Abstract
A message routing system that allows applications at either end of the system to run as-is without modification. The system functions in a multithreaded environment and is capable of handling complex routing rules and message transformation. It is also capable of learning and executing new routing rules and message transformations in formats previously unrecognized by the system. The system enables precise and reliable logging of messages throughout processing and supports publication of enterprise-wide broadcast messages. The system further preferably employs cooperating inbound and outbound transport processes for consuming, routing, processing, safely storing and publishing messages in batches of logical units of work to ensure that the logical units of work are not lost in system transactions. The system also preferably utilizes a replay server for preserving and replaying messages that might otherwise fail to reach their intended destinations.
40 Citations
20 Claims
-
1. A computerized message routing system comprising:
-
a plurality of disparate messaging subsystems having different transaction management protocols, wherein the disparate messaging subsystems include a publisher configured to publish messages under general subjects using different transports; a router configured to run (i) a consumer process that includes multiple consumer threads, (ii) a publisher process that includes multiple publisher threads configured to publish messages from the router, and (iii) an application configured to execute multiple routing rules on inbound messages received from the publisher, wherein the application is also configured to determine a set of specific subjects for each of the inbound messages, the router configured to publish outbound messages to consumers in accordance with one or more subscriptions based on the specific subjects and the general subjects; and a library having multiple introspection routines configured to be dynamically loaded by the router; wherein the application is further configured to determine a message type. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for operating a computerized message routing system, the method comprising:
-
receiving, from a publisher, a message associated with a general subject; determining a message type of the message; consuming, via one of a plurality of consumer threads running on a router, the message from the publisher; dynamically loading, on the router, a selected one of a plurality of introspection routines from a library based on the message type, the selected introspection routine containing logic for handling the message type; determining a set of specific subjects for the message using the selected introspection routine; and publishing the message to a set of consumers in accordance with one or more subscriptions based on the specific subjects and the general subject. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A non-transitory computer-readable storage medium containing a set of instructions to cause one or more processors to:
-
receive, from a publisher, a message associated with a general subject; consume, via one of a plurality of consumer threads running on the one or more processors, the message from the publisher; determine a set of specific subjects for the message; publish the message to a set of consumers in accordance with one or more subscriptions based on the specific subjects and the general subject; and add or remove a consumer thread from the plurality of consumer threads based on one or more performance metrics. - View Dependent Claims (15)
-
-
16. A non-transitory computer-readable storage medium containing instructions that cause one or more processors to:
-
receive, from a publisher, a message associated with a general subject; determine a message type of the message; consume, via one of a plurality of consumer threads, the message from the publisher; dynamically load a selected one of a plurality of introspection routines from a library based on the message type, the selected introspection routine containing logic for handling the message type; determine a set of specific subjects for the message using the selected introspection routine; and publish the message to a set of consumers in accordance with one or more subscriptions based on the specific subjects and the general subject. - View Dependent Claims (17, 18, 19)
-
-
20. A non-transitory computer-readable storage medium containing a set of instructions to cause one or more processors to:
-
receive, at a first instance of a router from a publisher, a message associated with a general subject; consume, via one of a plurality of consumer threads running on the one or more processors, the message from the publisher; determine a set of specific subjects for the message; publish the message to a set of consumers in accordance with one or more subscriptions based on the specific subjects and the general subject; and monitor a measure of thread management overhead and create a second instance of the router when the measure exceeds a threshold.
-
Specification