Methods, apparatus, and systems for processing data transactions
AssigneeNasdaq Technology AB
InventorKandan Venkataraman
Life of this patent
Estimating the term…
Abstract
Methods, apparatus, and systems for processing data transactions use a sequencer communicating with a plurality of data processors and provide improved performance and lower latency.
Claims40
A method for processing electronic order entry messages, the method being performed by a computerized exchange and comprising:
- receiving, by a plurality of order book engines and via a gateway of the computerized exchange, a plurality of electronic order entry messages;
- sending, by the plurality of order book engines, the plurality of electronic order entry messages to a common sequencer that is coupled to the plurality of order book engines;
- receiving, by the common sequencer, the plurality of electronic order entry messages from the plurality of order book engines;
- sequencing, by the common sequencer, the plurality of electronic order entry messages by assigning status data comprising a time stamp to each of the plurality of electronic order entry messages to put the plurality of electronic order entry messages in a sequenced order;
- sending, by the common sequencer, the plurality of sequenced electronic order entry messages to the plurality of order book engines;
- receiving, by a first order book engine of the plurality of order book engines and a second order book engine of the plurality of order book engines, the plurality of sequenced electronic order entry messages;
- processing, by the first order book engine, the plurality of sequenced electronic order entry messages to create order management data that comprises order acceptance, rejection, execution, or cancellation information;
- outputting, by the first order book engine, the order management data to one or more client devices;
- processing, by the second order book engine, independently of and substantially in parallel to the processing by the first order book engine, the plurality of sequenced electronic order entry messages to create market data, wherein the market data comprises order addition or modification information;
- and
- outputting, by the second order book engine, the market data to the one or more client devices;
- wherein the plurality of order book engines and the common sequencer are implemented using a plurality of hardware processors, a plurality of hardware communication interfaces, and a plurality of memories.
A computerized exchange system, comprising:
- a common sequencer comprising:
- a common sequencer hardware communication interface;
- a common sequencer processor;
- and
- a common sequencer memory configured to store a computer program comprising computer program code which, when run on the common sequencer processor, causes the common sequencer to perform operations that comprise:
- receiving, via the common sequencer hardware communication interface, a plurality of electronic order entry messages from a plurality of order book engines via a data communications medium;
- sequencing the received plurality of electronic order entry messages by assigning status data comprising a time stamp to each of the plurality of electronic order entry messages to put the plurality of electronic order entry messages in a sequenced order;
- and
- sending, via the common sequencer communication hardware interface and the data communications medium, the plurality of sequenced electronic order entry messages to the plurality of order book engines;
- a first order book engine of the order book engines, coupled by the data communications medium to the common sequencer, and comprising:
- a first hardware communication interface;
- a first data processor;
- and
- a first memory configured to store a computer program comprising computer program code which, when run on the first data processor of the first order book engine, causes the first order book engine to perform operations that comprise:
- receiving, via the data communications medium and the first hardware communication interface, the plurality of sequenced electronic order entry messages from the common sequencer;
- processing the plurality of sequenced electronic order entry messages to create order management data that comprises order acceptance, rejection, execution, or cancellation information;
- and
- outputting the order management data to one or more client devices;
- a second order book engine of the plurality of order book engines, coupled by the data communications medium to the common sequencer, and comprising:
- a second hardware communication interface;
- a second data processor;
- and
- a second memory configured to store a computer program comprising computer program code which, when run on the second data processor of the second order book engine, causes the second order book engine to perform operations that comprise:
- receiving, via the data communications medium and the second hardware communication interface, the plurality of sequenced electronic order entry messages from the common sequencer;
- processing, independently of and substantially in parallel to the processing by the first order book engine, the plurality of sequenced electronic order entry messages to create market data, wherein the market data comprises order addition or modification information;
- and
- outputting the market data to the one or more client devices.
A non-volatile computer-readable medium having instructions stored thereon which, when executed in an electronic trading system that comprises a plurality of order book engines and a common sequencer, wherein the plurality of order book engines and the common sequencer are implemented using a plurality of hardware processors, cause the plurality of hardware processors to perform operations that comprise:
- receiving, by at least one order book engine of the plurality of order book engines, a plurality of electronic order entry messages;
- sending, by the at least one order book engine, the plurality of electronic order entry messages to the common sequencer;
- receiving, by the common sequencer, the plurality of electronic order entry messages from the at least one order book engine;
- sequencing, by the common sequencer, the plurality of electronic order entry messages by assigning status data to each of the plurality of electronic order entry messages to put the plurality of electronic order entry messages in a sequenced order, wherein the status data comprises a sequence number or a time stamp;
- sending, by the common sequencer, the plurality of sequenced electronic order entry messages to the plurality of order book engines;
- receiving, by a first order book engine of the plurality of order book engines and a second order book engine of the plurality of order book engines, the plurality of sequenced electronic order entry messages;
- processing, by the first order book engine, the plurality of sequenced electronic order entry messages to create order management data that comprises order acceptance, rejection, execution, or cancellation information;
- outputting, by the first order book engine, the order management data to one or more client devices;
- processing, by the second order book engine, independently of and substantially in parallel with the processing by the first order book engine, the plurality of sequenced electronic order entry messages to create market data, wherein the market data comprises order addition or modification information;
- and
- outputting, by the second order book engine, the market data to the one or more client devices.
A computer system, comprising:
- a common sequencer;
- and
- a plurality of order book engines, wherein the plurality of order book engines comprises a first order book engine and a second order book engine;
- wherein the common sequencer comprises:
- a common sequencer hardware communication interface;
- a common sequencer processor;
- and
- a common sequencer memory configured to store computer program code which, when executed by the common sequencer processor, causes the common sequencer to perform operations that comprise:
- receiving a plurality of electronic order entry messages;
- sequencing the plurality of electronic order entry messages by assigning status data to each of the plurality of electronic order entry messages to put the plurality of electronic order entry messages in a sequenced order, wherein the status data comprises a sequence number or a time stamp;
- and
- transmitting the plurality of sequenced electronic order entry messages to the plurality of order book engines;
- wherein the first order book engine comprises:
- a first hardware communication interface;
- a first data processor;
- and
- a first memory configured to store computer program code which, when executed by the first data processor of the first order book engine, causes the first order book engine to perform operations that comprise:
- receiving the plurality of sequenced electronic order entry messages from the common sequencer;
- processing the plurality of sequenced electronic order entry messages to create order management data that comprises order acceptance, rejection, execution, or cancellation information;
- and
- outputting the order management data to one or more recipient devices;
- wherein the second order book engine comprises:
- a second hardware communication interface;
- a second data processor;
- and
- a second memory configured to store computer program code which, when executed by the second data processor of the second order book engine, causes the second order book engine to perform operations that comprise:
- receiving the plurality of sequenced electronic order entry messages from the common sequencer;
- processing, independently of and substantially in parallel with the processing by the first order book engine, the plurality of sequenced electronic order entry messages to create market data, wherein the market data comprises order addition or modification information;
- and
- outputting the market data to the one or more recipient devices.
A method, comprising:
- at a computer system that comprises a plurality of order book engines and a common sequencer, wherein the plurality of order book engines and the common sequencer are implemented using a plurality of hardware processors, a plurality of memories, and a plurality of hardware communication interfaces:
- receiving, by the common sequencer, a plurality of electronic order entry messages;
- sequencing, by the common sequencer, the plurality of electronic order entry messages by assigning status data to each of the plurality of electronic order entry messages to put the plurality of electronic order entry messages in a sequenced order, wherein the status data comprises a time stamp or a sequence number;
- transmitting, by the common sequencer, the plurality of sequenced electronic order entry messages to the plurality of order book engines;
- receiving, by the plurality of order book engines, the plurality of sequenced electronic order entry messages;
- processing, by the plurality of order book engines, the plurality of sequenced electronic order entry messages, wherein the processing the plurality of sequenced electronic order entry messages comprises:
- processing, by a first order book engine of the plurality of order book engines, the plurality of sequenced electronic order entry messages to create order management data that comprises order acceptance, rejection, execution, or cancellation information;
- outputting, by the first order book engine, the order management data;
- processing, by a second order book engine of the plurality of order book engines, independently of and substantially in parallel with the processing by the first order book engine, the plurality of sequenced electronic order entry messages to create market data, wherein the market data comprises order addition or modification information;
- and
- outputting, by the second order book engine, the market data.
A computer system, comprising:
- a sequencer;
- and
- a plurality of order book engines;
- wherein the sequencer comprises:
- a sequencer hardware communication interface;
- a sequencer processor;
- and
- a sequencer memory configured to store computer program code which, when executed by the sequencer processor, causes the sequencer processor to perform operations that comprise:
- receiving a plurality of electronic order entry messages;
- sequencing the plurality of electronic order entry messages by assigning status data comprising a time stamp or a sequence number to each of the plurality of electronic order entry messages, thereby putting the plurality of electronic order entry messages in a sequenced order;
- and
- transmitting the plurality of sequenced electronic order entry messages;
- wherein, each order book engine of the plurality of order book engines comprises a respective hardware communication interface, a respective data processor, and a respective memory, and the respective memory comprises respective computer program code which, when executed by the respective data processor, causes the respective order book engine to perform respective operations for processing the plurality of sequenced electronic order entry messages;
- and
- wherein, for a first order book engine from the plurality of order book engines, the respective operations for processing the plurality of sequenced electronic order entry messages comprise:
- processing the plurality of sequenced electronic order entry messages to create order management data that comprises order acceptance, rejection, execution, or cancellation information;
- and
- outputting the order management data;
- and
- wherein, for a second order book engine from the plurality of order book engines, the respective operations for processing the plurality of sequenced electronic order entry messages comprise:
- processing, independently of the processing by the first order book engine, the plurality of sequenced electronic order entry messages to create market data, wherein the market data comprises order addition or modification information;
- and
- outputting the market data.
A computer system, comprising:
- a computing device, wherein the computing device is configured to perform functionality that comprises sequencer functionality;
- and
- a plurality of order book engines, wherein the plurality of order book engines comprises a first order book engine and a second order book engine;
- wherein the computing device comprises hardware components that comprise:
- a first communication interface;
- and
- a first data processor;
- wherein the first communication interface and first data processor are configured to perform operations that include:
- receiving a plurality of electronic order entry messages;
- sequencing the plurality of electronic order entry messages by assigning status data comprising a time stamp or a sequence number to each of the plurality of electronic order entry messages, thereby putting the plurality of electronic order entry messages in a sequenced order;
- and
- transmitting the plurality of sequenced electronic order entry messages to the plurality of order book engines;
- wherein the first order book engine comprises hardware components that comprise:
- a second communication interface;
- and
- a second data processor;
- wherein the second communication interface and second data processor are configured to perform operations that comprise:
- receiving the plurality of sequenced electronic order entry messages;
- processing the plurality of sequenced electronic order entry messages to create order management data that comprises order acceptance, rejection, execution, or cancellation information;
- and
- outputting the order management data;
- wherein the second order book engine comprises hardware components that comprise:
- a third communication interface;
- and
- a third data processor;
- wherein the third communication interface and third data processor are configured to perform operations that comprise:
- receiving the plurality of sequenced electronic order entry messages;
- processing, independently of the processing by the first order book engine, the plurality of sequenced electronic order entry messages to create market data, wherein the market data comprises order addition or modification information;
- and
- outputting the market data.
A computer system, comprising:
- a sequencer;
- and
- a plurality of order book engines that comprise a first order book engine and a second order book engine;
- wherein the plurality of order book engines and the sequencer are configured to communicate via a packet-switched network;
- wherein the sequencer comprises:
- means for receiving a plurality of electronic order entry messages;
- means for sequencing the plurality of electronic order entry messages by assigning status data comprising a sequence number to each of the plurality of electronic order entry messages, thereby putting the plurality of electronic order entry messages in a sequenced order;
- and
- means for transmitting the plurality of sequenced electronic order entry messages to the plurality of order book engines;
- wherein the first order book engine comprises:
- means for receiving the plurality of sequenced electronic order entry messages from the sequencer;
- means for processing the plurality of sequenced electronic order entry messages to create order management data that comprises order acceptance, rejection, execution, or cancellation information;
- and
- means for outputting the order management data to one or more recipient devices;
- and
- wherein the second order book engine comprises:
- means for receiving the plurality of sequenced electronic order entry messages from the sequencer;
- means for processing, independently of and substantially in parallel with the processing by the first order book engine, the plurality of sequenced electronic order entry messages to create market data, wherein the market data comprises order addition or modification information;
- and
- means for outputting the market data to the one or more recipient devices.
Dependencies are inferred from the claim text.