IP Library Granted Patent US 7,222,096
Granted Patent B2
US 7,222,096 · App. 10/272,327 · Granted May 22, 2007

Line handler

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 7,222,096
App. No.
10/272,327
Granted
May 22, 2007
Kind
B2
Abstract

A method receives incoming messages from data feed lines. The incoming messages have data on associated market events. The method includes receiving incoming messages from a feed line, translating the received incoming messages into market event messages having a common format, and publishing a portion of the translated messages on a network. Each market event message includes data on a market event and time data. The network has multiple devices capable of receiving the translated messages.

Claims (73)

1. A method of receiving and formatting incoming messages from one or more data feed lines, comprising:

receiving a plurality of incoming messages having market event data from a data feed line, the messages comprising market source data messages and newswire messages;

translating the received messages into market event messages having a common format, the market event messages including market activity data and time data; and

publishing the translated messages over a network having a plurality of devices for processing the published messages.

2. The method of claim 1 , wherein the incoming messages have a plurality of different formats.

3. The method of claim 1 , further comprising:

receiving a second plurality of incoming messages having data on one or more market events from a second data feed line;

translating a portion of the received second plurality of incoming messages into a second plurality of market event messages having the common format; and

publishing at least one of the translated messages on the network.

4. The method of claim 1 , wherein the incoming messages comprise trading quotations, indices, volumes, exchange halts, and/or trading parties.

5. The method of claim 1 , wherein at least a portion of the incoming messages are NQDS messages.

6. The method of claim 1 , wherein publishing comprises:

transmitting one of the translated messages to a plurality of the devices via the network.

7. The method of claim 6 , wherein publishing includes transmitting an associated sequence number with each market event message, the sequence numbers temporally ordering the incoming messages.

8. The method of claim 1 , wherein translating comprises:

attaching time data to one of the incoming messages; and

converting a plurality of data fields of the one of the incoming messages to a common format.

9. The method of claim 8 , wherein the time data includes a receipt time of the one of the incoming messages and an event time attached to the one of the incoming messages prior to receipt from the feed line.

10. The method of claim 1 , further comprising:

serially determining whether the translated messages are valid based on associated sequence numbers, the sequence numbers temporally ordering the incoming messages from each feed line; and

wherein one of the translated messages is published in response to being determined to be valid.

11. The method of claim 10 , wherein the one of the translated messages is valid if the associated sequence number is one of higher than sequence numbers of the previously published messages and located in a gap between sequence numbers of the previously published messages.

12. The method of claim 10 , wherein determining whether the translated messages are valid includes updating a list of gaps between sequence numbers of previously published messages.

13. The method of claim 1 , further comprising:

monitoring a plurality of feed lines for the incoming messages.

14. The method of claim 1 , further comprising:

producing a list for sequence numbers of the incoming messages received from the feed line; and

writing a sequence number to the list for each translated incoming message, the sequence numbers forming a temporal ordering of the incoming messages.

15. A computer program product for receiving and formatting data incoming messages from one or more data feed lines, the program residing on a computer readable medium and comprising instructions to cause a computer to:

receive from a plurality feed lines a plurality of incoming messages having market event data, the messages comprising market source data messages and newswire messages;

translate the received messages into market event messages having a common format, the market event messages including market activity data and time data; and

publish at least one of the translated messages on a network having a plurality of devices capable of processing the published message.

16. The computer program product of claim 15 , wherein the received incoming messages have a plurality of formats.

17. The product of claim 15 , further comprising instructions to cause a computer to:

receive a second plurality of incoming messages having data on one or more market events from a second data feed line;

translate the received second plurality of incoming messages into a second plurality of market event messages having the common format; and

publish at least one of the translated second plurality of messages on the network.

18. The product of claim 15 , wherein the incoming messages comprise trading quotations, indices, volumes, exchange halts, and/or trading parties.

19. The product of claim 15 , wherein at least a portion of the incoming messages are NQDS messages.

20. The product of claim 15 , wherein the instructions to publish cause the computer to:

transmit one of the translated messages to a plurality of parallel processing devices via the network.

21. The product of claim 15 , wherein the instructions to translate cause the computer to:

attach time data to the incoming messages, the time data including a stamp for a receipt time of the associated incoming message and an event time for the prior to the receipt of the associated incoming message from the feed line; and

convert a plurality of data fields of the incoming message to a common format.

22. The product of claim 15 , the program further comprising instructions to cause the computer to:

serially determine whether the translated messages are valid based on associated sequence numbers, the sequence numbers temporally ordering the incoming messages from the feed line; and

wherein one of the translated messages is published in response to being determined to be valid.

23. The product of claim 22 , wherein the one of the translated messages is valid if the associated sequence number is one of higher than sequence numbers of the previously published messages and located in a gap between sequence numbers of the previously published messages.

24. The product of claim 22 , wherein the instructions to determine whether the translated messages are valid cause the computer to:

update a list of gaps between sequence numbers of previously published messages.

25. The product of claim 15 , the program further comprising instructions to cause the computer to:

produce a list for sequence numbers of the incoming messages received from the feed line; and

write a sequence number to the list for each translated received incoming message, the sequence numbers forming a temporal ordering of the incoming messages.

26. A system to receive and format incoming messages received from a plurality of data feed lines, comprising:

a network; and

a plurality of line handlers having a server coupled to both a data feed line and to the network, the servers being configured to:

receive a plurality of incoming messages for market events from the data feed lines coupled thereto, with incoming messages on market event comprising market source data messages and newswire messages;

translate the received incoming messages into market event messages having a common format; and

publish a portion of the translated messages on the network; and

wherein the market event messages from each server have the same format.

27. The system of claim 26 , wherein the incoming messages have a plurality of formats.

28. The system of claim 26 , wherein the incoming messages comprise trading quotations, indices, volumes, exchange halts, and/or trading parties.

29. The system of claim 26 , wherein at least a portion of the incoming messages are NQDS messages.

30. The system of claim 26 , wherein each line handler is configured to send each market event message to a plurality of available processors via the network.

31. The system of claim 26 , wherein each computer is configured with a software program to cause the computer to:

receive the incoming messages;

translate the received incoming messages; and

publish a portion of the translated messages on the network.

32. The system of claim 31 , wherein the program includes an receiver object to receive incoming messages, a translating object to translate the incoming messages, and a publishing object to publishes translated messages.

33. The system of claim 31 , wherein the program further includes a sequence number object to serially determine whether the translated messages are valid based on associated sequence numbers, the sequence numbers temporally ordering the incoming messages from each feed line; and

wherein one of the translated messages is published in response to being determined to be valid.

34. The system of claim 28 , wherein the computers are servers and the software program is a NT program and the network operates according to an NT compatible protocol.

35. The system of claim 28 , further comprising an operations server coupled to the network and configured to track the health and performance of the line handlers.

Assignments (8)
CHANGE OF NAME Recorded Oct 9, 2015
From: THE NASDAQ OMX GROUP, INC.
To: NASDAQ, INC.
Reel/Frame 036822/0452 →
CHANGE OF NAME Recorded Mar 28, 2008
From: NASDAQ STOCK MARKET, INC., THE
To: NASDAQ OMX GROUP, INC., THE
Reel/Frame 020747/0105 →
SECURITY AGREEMENT Recorded Mar 5, 2008
From: THE NASDAQ STOCK MARKET, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 020599/0436 →
PATENT SECURITY AGREEMENT Recorded Feb 28, 2008
From: NASDAQ STOCK MARKET, INC., THE
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 020617/0355 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Oct 11, 2007
From: BANK OF AMERICA, N.A.
To: THE NASDAQ STOCK MARKET, INC.
Reel/Frame 019943/0733 →
SECURITY AGREEMENT Recorded Apr 21, 2006
From: THE NASDAQ STOCK MARKET, INC.
To: BANK OF AMERICA, N.A. AS COLLATERAL AGENT
Reel/Frame 017507/0308 →
TERMINATION AND RELEASE AGREEMENT Recorded Apr 19, 2006
From: JPMORGAN CHASE BANK N.A., AS ADMINISTRATIVE AGENT
To: THE NASDAQ STOCK MARKET, INC.
Reel/Frame 017492/0228 →
SECURITY AGREEMENT Recorded Jan 11, 2006
From: NASDAQ STOCK MARKET, INC., THE
To: JP MORGAN CHASE BANK, N.A.
Reel/Frame 017222/0503 →