← Back to Patent Explorer
US8521906B2 Active / In Force US ⏱️ 5.8 years remaining

System and method for message processing and routing

Assignee: Goldman Sachs and Co LLC
•
Filing: 2012-08-20
•
Granted: 2013-08-27
•
Expires: 2032-08-20
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Carl J. Reed
  • 👤 Michael R. Marzo
  • 👤 Tomozumi Kanayama
  • 👤 Konstantin A. Krasheninnikov
  • 👤 Julien George Beguin

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 01:06
CPC Classifications
H; H04; H04L; H04L67/00; H04L67/01; H04L67/02; G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/54; G06F9/542; G06F9/546; H04L67/50; H04L67/60; H04L67/63; H04L69/00; H04L69/30; H04L69/32; H04L69/322; H04L69/329

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 166 words
A computerized message routing system comprising: a computer processor; a publisher capable of publishing messages each associated with at least one of a plurality of different message topics; a router configured to: run a different thread for each of the plurality of different message topics when executed by the computer processor, and invoke an introspection module based on the plurality of different message topics to determine a destination for the messages; wherein each of the different threads uses an inbound transport protocol and an outbound transport protocol and the router is communicably coupled to the publisher to consume and publish the messages including transforming the messages into different outbound transport protocols based on transformation requests; and a consumer communicably coupled to the router and configured to receive a subset of the messages published by the router that are associated with one or more of the plurality of different message topics, wherein the consumer publishes a set of transformation procedures to the router in the transformation requests.
Claim 2
Dependent Claim 166 words
A computerized message routing system comprising: a computer processor; a publisher capable of publishing messages each associated with at least one of a plurality of different message topics; a router configured to: run a different thread for each of the plurality of different message topics when executed by the computer processor, and invoke an introspection module based on the plurality of different message topics to determine a destination for the messages; wherein each of the different threads uses an inbound transport protocol and an outbound transport protocol and the router is communicably coupled to the publisher to consume and publish the messages including transforming the messages into different outbound transport protocols based on transformation requests; and a consumer communicably coupled to the router and configured to receive a subset of the messages published by the router that are associated with one or more of the plurality of different message topics, wherein the consumer publishes a set of transformation procedures to the router in the transformation requests.
Claim 3
Dependent Claim 33 words
The computerized message routing system of claim 1 , wherein the messages published by the router include an indication of the outbound transport protocol in a file name of each of the messages.
Claim 4
Dependent Claim 25 words
The computerized message routing system of claim 1 , wherein the consumer runs a consumer thread for each of the plurality of different message topics.
Claim 5
Dependent Claim 22 words
The computerized message routing system of claim 1 , wherein the router transforms the messages by passing the messages to a plug-in.
Claim 6
Dependent Claim 18 words
The computerized message routing system of claim 1 , wherein the router performs pre-routing transformations and post-routing transformations.
Claim 7
Dependent Claim 16 words
The computerized message routing system of claim 1 , wherein the messages include stock trading data.
Claim 8
Dependent Claim 27 words
The computerized message routing system of claim 1 , further comprising a replay server to preserve messages and to replay messages at the request of the consumer.
Claim 9
Independent Claim 71 words
A method for operating a router, the method comprising: consuming a message received from a publisher, wherein consuming the message includes determining a destination for the message by invoking an introspection module based on a message topic; receiving, from the destination, a set of transformation procedures; transforming, using a processor, the message in accordance with the set of transformation procedures received from the destination; and publishing the message to the destination.
Claim 10
Independent Claim 71 words
A method for operating a router, the method comprising: consuming a message received from a publisher, wherein consuming the message includes determining a destination for the message by invoking an introspection module based on a message topic; receiving, from the destination, a set of transformation procedures; transforming, using a processor, the message in accordance with the set of transformation procedures received from the destination; and publishing the message to the destination.
Claim 11
Dependent Claim 40 words
The method of claim 8 , further comprising: storing, on a replay server, the message published by the router; receiving a request from the destination to republish the message; and republishing the message from the replay server to the destination.
Claim 12
Dependent Claim 17 words
The method of claim 8 , wherein transforming the message includes passing the message to a plug-in.
Claim 13
Dependent Claim 16 words
The method of claim 8 , wherein transforming the message includes pre-routing transformations and post-routing transformations.
Claim 14
Dependent Claim 13 words
The method of claim 8 , wherein the messages include stock trading data.
Claim 15
Dependent Claim 23 words
The method of claim 8 , wherein the message includes, as part of the file name, an indication of a transport being used.
Claim 16
Dependent Claim 28 words
The method of claim 8 , wherein determining the destination for the message comprises extracting at least one routing key from the message based on the message topic.
Claim 17
Dependent Claim 120 words
A router comprising: a processor; a memory having executable instructions, wherein the memory is communicably coupled to the processor and configured to execute the instructions stored on the memory to: run multiple threads to consume messages from publishers; split the messages among the multiple threads based on message topics to optimize the number of threads being utilized; invoke an introspection module based on at least one of the message topics to determine a destination subscriber for the messages based on the message topics; receive, from the destination subscriber, a set of transformation procedures; transform, using the processor, the message in accordance with the set of transformation procedures received from the destination subscriber; and publish the message to the destination subscriber.
Claim 18
Dependent Claim 120 words
A router comprising: a processor; a memory having executable instructions, wherein the memory is communicably coupled to the processor and configured to execute the instructions stored on the memory to: run multiple threads to consume messages from publishers; split the messages among the multiple threads based on message topics to optimize the number of threads being utilized; invoke an introspection module based on at least one of the message topics to determine a destination subscriber for the messages based on the message topics; receive, from the destination subscriber, a set of transformation procedures; transform, using the processor, the message in accordance with the set of transformation procedures received from the destination subscriber; and publish the message to the destination subscriber.
Claim 19
Dependent Claim 47 words
The router of claim 15 , wherein the executable instructions further cause the processor to determine the message topics associated with the messages by examining the content of the messages and to further assign the messages to one of the multiple threads based on the message topics.
Claim 20
Dependent Claim 13 words
The router of claim 16 , wherein the message topics include trade messages.
Claim 21
Dependent Claim 32 words
The router of claim 15 , wherein the executable instructions further cause the processor to store all messages published by the router and republish any message as requested by the destination subscriber.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2016-08-26 2017-02-25 2017-08-27 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2020-08-26 2021-02-25 2021-08-27 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2024-08-26 2025-02-25 2025-08-27 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag