IP Library › Granted Patent US 11,159,471
Granted Patent B2
US 11,159,471 · App. 16/778,140 · Granted Oct 26, 2021

Apparatus, system, and method of elastically processing message information from multiple sources

Inventors: Tristan Blakers (Sydney, AU); Chuin Nee Ooi (Leichhardt, AU); Max Roy Prakoso (Haymarket, AU)
Assignee: Nasdaq Technology AB
H04L51/26G06Q40/04H04L51/34G06F3/0481G06Q10/10G06Q40/06H04L12/2854
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 11,159,471
App. No.
16/778,140
Granted
Oct 26, 2021
Kind
B2
Abstract

Elastic message tracking apparatus and methods are provided that opportunistically improve on the latency of a message processing system and increase the accuracy of a consolidated message stream generated from message streams received from multiple message sources. The elastic message tracking apparatus and methods reduce that latency in situations where the actual latency of all the message streams is lower than a predetermined latency value.

Claims (49)

1. An electronic data message processing apparatus comprising:

gateway interface circuitry comprising data message feed ports comprising a first feed port and a second feed port and configured to receive data messages from multiple data message sources, each data message source having generated a respective chronological sequence of data messages, where data messages received at multiple ones of the data message feed ports are received out of chronological sequence; and

processing circuitry coupled to the gateway interface circuitry and configured to:

compare a next message time associated with one of the data messages received from the first feed port and waiting to be processed, to a current feed time of a latest processed data message from the second feed port, wherein a reference time is later than the current feed time;

when the next message time for the message from the first feed port exceeds the current feed time for the latest processed data message from the second feed port, (i) set the current feed time to the next message time and (ii) adapt a data message processing latency time, corresponding to a difference between the current feed time for the latest processed data message from the second feed port and the reference time, to a difference between the next message time for the message from the first feed port and the reference time;

order all of the data messages received at all of the multiple ones of the data message feed ports in a chronological sequence of data messages; and

generate, within the adapted data message processing latency time, a combined data message stream that includes the chronological sequence of data messages; and

transmit circuitry configured to transmit the combined data message stream to one or more destination ports.

2. The electronic data message processing apparatus of claim 1 , wherein the current feed time may be different from a time stamp for a latest processed data message from the second feed port.

3. The electronic data message processing apparatus of claim 1 , wherein the processing circuitry is further configured to process the data messages in the combined data message stream and to detect data messages that are out of chronological message sequence using the reference time.

4. The electronic data message processing apparatus of claim 1 , wherein the processing circuitry is further configured to maintain the reference time when a message that is out of chronological message sequence is processed.

5. The electronic data message processing apparatus of claim 1 , wherein the one of the data messages waiting to be processed is a next data message currently received at one of the data message feed ports having a current earliest data message time, and wherein if the current earliest data message time is less than the reference time, then the processing circuitry is configured to process that data message and read a next data message at that one data message feed port.

6. The electronic data message processing apparatus of claim 1 , wherein when one of the data message feed ports is determined to be in an inactive state, the processing circuitry is configured to (a) process the data messages in the combined data message stream in chronological order if the one of the data message feed ports is determined to change to an active state within a predetermined recovery time period, and (b) process the data messages in the combined data message stream out of chronological order if the one of the data message feed ports is determined to change to an active state outside of the predetermined recovery time period.

7. The electronic data message processing apparatus of claim 6 , wherein based on a determination that the one data message feed port is in an inactive state, the processing circuitry is configured to halt adaptation of the data message processing latency time while that data message feed port remains in the inactive state.

8. The electronic data message processing apparatus of claim 1 , wherein the processing circuitry is configured to process the data messages in the combined data message stream to detect one or more predetermined patterns, and in response thereto, to generate one or more corresponding alert data messages.

9. The electronic data message processing apparatus of claim 1 , wherein the processing circuitry is configured to process a received, unprocessed data message in the combined data message stream based on content of previously-processed data messages.

10. The electronic data message processing apparatus of claim 1 , wherein the processing circuitry is further configured to update the one or more orderbooks using detected data messages that are out of the chronological sequence.

11. The electronic data message processing apparatus of claim 1 , wherein the processing circuitry is configured to capture data messages as received at the data message feed ports and convert data in the captured data messages into a normalized data format.

12. The electronic data message processing apparatus of claim 1 , wherein each received data message includes a time stamp and the processing circuitry is configured to re-sequence, based on one or more time stamps, one or more data messages received out of sequence.

13. A method implemented in an electronic data message processing apparatus comprising processing circuitry operatively coupled to data message feed ports comprising a first feed port and a second feed port, comprising:

receiving at the data message feed ports data messages from multiple data message sources, each data message source having generated a respective chronological sequence of data messages, where data messages received at multiple ones of the data message feed ports are received out of chronological sequence;

comparing, by processing circuitry, a next message time associated with one of the data messages received from the first feed port and waiting to be processed to a current feed time of a latest processed data message from the second feed port, wherein a reference time is later than the current feed time;

when the next message time for the message from the first feed port exceeds the current feed time for the latest processed data message from the second feed port, the processing circuitry: (i) setting the current feed time to the next message time and (ii) adapting a data message processing latency time, corresponding to a difference between the current feed time for the latest processed data message from the second feed port and the reference time, to a difference between the next message time for the message from the first feed port and the reference time for the electronic data message processing apparatus;

ordering all of the data messages received at all of the multiple ones of the data message feed ports in a chronological sequence of data messages; and

generating, within the adapted data message processing latency time, a combined data message stream that includes the chronological sequence of data messages; and

transmitting the combined data message stream to one or more destination ports.

14. The method of claim 13 , wherein the current feed time may be different from a time stamp for a latest processed data message from the second feed port.

15. The method claim 13 , further comprising:

processing the data messages in the combined data message stream, and

detecting data messages that are out of chronological sequence using the reference time.

16. The method claim 13 , further comprising:

maintaining the reference time when a message that is out of chronological message sequence is processed.

17. The method claim 13 , wherein when one of the data message feed ports is determined to be in an inactive state, the method further comprising:

(a) processing the data messages in the combined data message stream in chronological order if the one of the data message feed ports is determined to change to an active state within a predetermined recovery time period, and

(b) processing the data messages in the combined data message stream out of chronological order if the one of the data message feed ports is determined to change to an active state outside of the predetermined recovery time period.

18. The method of claim 17 , further comprising:

halting advance of the reference time while the one of the data message feed ports remains in the inactive state based on a determination that the one of the data message feed port is in an inactive state.

19. The method of claim 13 , further comprising:

processing the data messages in the combined data message stream to detect one or more predetermined patterns, and in response thereto, to generate one or more corresponding alert data messages.

20. The method of claim 13 , wherein each received data message includes a time stamp and the method further comprises:

re-sequencing, based on one or more time stamps, one or more data messages received out of sequence at each of the data message feed ports.

21. An electronic data message processing apparatus, comprising:

means, comprising a first feed port and a second feed port, for receiving data messages from multiple data message sources, each data message source having generated a respective chronological sequence of data messages, where data messages received at multiple ones of the data message feed ports are received out of chronological sequence;

means for comparing a next message time associated with one of the data messages received from the first feed port and waiting to be processed to a current feed time of a latest processed data message from the second feed port, wherein a reference time is later than the current feed time;

means, when the next message time for the message from the first feed port exceeds the current feed time for the latest processed data message from the second feed port, for setting the current feed time to the next message time;

means, when the next message time for the message from the first feed port exceeds the current feed time for the latest processed data message from the second feed port, for adapting a data message processing latency time, corresponding to a difference between the current feed time for the latest processed data message from the second feed port and the reference time, to a difference between the next message time for the message from the first feed port and the reference time;

means for ordering all of the data messages received at all of the multiple ones of the data message feed ports in a chronological sequence of data messages;

means for generating, within the adapted data message processing latency time, a combined data message stream that includes the chronological sequence of data messages; and

means for transmitting the combined data message stream to one or more destination ports.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2020
From: BLAKERS, TRISTAN; OOI, CHUIN NEE; PRAKOSO, MAX ROY
To: OMX TECHNOLOGY AB
Reel/Frame 051682/0061 →
CHANGE OF NAME Recorded Jan 31, 2020
From: OMX TECHNOLOGY AB
To: NASDAQ TECHNOLOGY AB
Reel/Frame 051766/0391 →
Continuity (4)
Continuation 16165106 · Oct 19, 2018
Continuation 14290386 · May 29, 2014
Provisional Application 61829545 · May 31, 2013
Related Publication 20200169524A1 · May 28, 2020