System and method for message processing and routing
First Claim
1. A computer system implemented method for operating a computerized message routing system, said method comprising:
- consuming a message from a message bus of an inbound messaging node;
invoking, via a computer system, an introspection module based on an inbound subject on which the message has been published to the inbound node;
examining the contents of the message;
extracting a first routing key corresponding to a first routing rule from the message based on the contents of the message;
examining the first routing key;
identifying a routing tag based on the first routing key;
evaluating, via the computer system, the identified routing tag to determine an outbound subject to which the identified routing tag is bound;
publishing the message to the outbound subject using a message bus of an outbound messaging node; and
extracting a second routing key corresponding to a second routing rule from the message based on the contents of the message, wherein the identified routing tag is used to select the second routing rule;
dynamically loading the introspection module based on a source of the message, before invoking the introspection module;
caching a keymap table and an outbound routing table in local memory upon loading the introspection module;
identifying the routing tag using the keymap table; and
evaluating the routing tag to determine the outbound subject using the outbound routing table.
2 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.
-
Citations
15 Claims
-
1. A computer system implemented method for operating a computerized message routing system, said method comprising:
-
consuming a message from a message bus of an inbound messaging node; invoking, via a computer system, an introspection module based on an inbound subject on which the message has been published to the inbound node; examining the contents of the message; extracting a first routing key corresponding to a first routing rule from the message based on the contents of the message; examining the first routing key; identifying a routing tag based on the first routing key; evaluating, via the computer system, the identified routing tag to determine an outbound subject to which the identified routing tag is bound; publishing the message to the outbound subject using a message bus of an outbound messaging node; and extracting a second routing key corresponding to a second routing rule from the message based on the contents of the message, wherein the identified routing tag is used to select the second routing rule;
dynamically loading the introspection module based on a source of the message, before invoking the introspection module;
caching a keymap table and an outbound routing table in local memory upon loading the introspection module;
identifying the routing tag using the keymap table; and
evaluating the routing tag to determine the outbound subject using the outbound routing table. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An apparatus for operating a computerized message routing system, comprising:
-
a memory; a processor disposed in communication with said memory, and configured to issue a plurality of processing instructions stored in the memory, wherein the processor issues instructions to; consume a message from a message bus of an inbound messaging node; invoke an introspection module based on an inbound subject on which the message has been published to the inbound node; examine the contents of the message; extract a first routing key corresponding to a first routing rule from the message based on the contents of the message; examine the first routing key; identify a routing tag based on the first routing key; evaluate the identified routing tag to determine an outbound subject to which the identified routing tag is bound; publish the message to the outbound subject using a message bus of an outbound messaging node; and extract a second routing key corresponding to a second routing rule from the message based on the contents of the message, wherein the identified routing tag is used to select the second routing rule;
dynamically load the introspection module based on a source of the message, before invoking the introspection module;
cache a keymap table and an outbound routing table in local memory upon loading the introspection module;
identify the routing tag using the keymap table; and
evaluate the routing tag to determine the outbound subject using the outbound routing table. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A processor-readable non-transitory physical medium for operating a computerized message routing system storing processor-issuable-and-generated instructions to:
-
consume a message from a message bus of an inbound messaging node; invoke an introspection module based on an inbound subject on which the message has been published to the inbound node; examine the contents of the message; extract a first routing key corresponding to a first routing rule from the message based on the contents of the message; examine the first routing key; identify a routing tag based on the first routing key; evaluate the identified routing tag to determine an outbound subject to which the identified routing tag is bound; publish the message to the outbound subject using a message bus of an outbound messaging node; and extract a second routing key corresponding to a second routing rule from the message based on the contents of the message, wherein the identified routing tag is used to select the second routing rule;
dynamically load the introspection module based on a source of the message, before invoking the introspection module;
cache a keymap table and on an outbound routing table in local memory upon loading the introspection module;
identify the routing tag using the keymap table; and
evaluate the routing tag to determine the outbound subject using the outbound routing table.
-
Specification