IP Library Granted Patent US 10,424,004
Granted Patent B2
US 10,424,004 · App. 13/832,472 · Granted Sep 24, 2019

Distributed matching engine

Inventor: Jacob Loveless (New York, NY)
Assignee: CFPH, LLC
G06Q30/0635
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 10,424,004
App. No.
13/832,472
Granted
Sep 24, 2019
Kind
B2
Abstract

A system includes a plurality of servers that are configured to execute a distributed matching system for the trading of one or more items.

Claims (150)

1. A system comprising a plurality of servers including at least a first server and a second server, wherein the plurality of servers interconnected by at least one network:

wherein the first server is configured to:

maintain a first order book for an item to be traded;

receive a first order for the item, wherein the first order includes a quantity;

place the first order in the first order book, wherein the first server is responsible for controlling execution of contra-orders against the first order; and

communicate the first order on the network;

wherein the second server is configured to:

maintain a second order book for the item;

receive the first order communicated by the first server;

place the first order in the second order book;

receive a second order for the item;

determine the second order is a contra-order to the first order; and

in response to determining the second order is a contra-order to the first order, communicate the second order to the first server;

wherein the first server is further configured to:

receive the second order from the second server;

determine whether the first order is available;

when available, execute a trade between the first and second orders;

remove the first order from the first order book when the second order is for all available quantity of the first order; and

communicate a confirmation message on the network indicating the first order is traded against;

wherein the second server is further configured to:

receive the confirmation message; and

in response to receiving the confirmation message, remove the first order from the second order book when the second order is for all available quantity of the first order;

wherein the second server is further configured to:

receive a third order for the item, wherein the third order includes a quantity;

place the third order in the second order book, wherein the second server is responsible for controlling execution of contra-orders against the third order; and

communicate the third order on the network;

wherein the first server is further configured to:

receive the third order communicated by the second server;

place the third order in the first order book;

receive a fourth order for the item;

determine the fourth order is a contra-order to the third order; and

in response to determining the fourth order is a contra-order to the third order, communicate the fourth order to the second server;

wherein the second server is further configured to:

receive the fourth order from the first server;

determine whether the third order is available;

when available, execute a trade between the third and fourth orders;

remove the third order from the second order book when the fourth order is for all available quantity of the third order; and

communicate a confirmation message on the network indicating the third order is traded against; and

wherein the first server is further configured to:

receive the confirmation message from the second server; and

in response to receiving the confirmation message, remove the third order from the first order book when the fourth order is for all available quantity of the third order.

2. The system of claim 1 ,

wherein the first item is associated with a port on the network; and

wherein to communicate the first order on the network comprises to communicate the first order over the port.

3. The system of claim 2 ,

wherein to communicate the first order over the port comprises to multicast the first order over the port.

4. The system of claim 2 ,

wherein the second server is further configured to receive data from the network communicated over the port; and

wherein to receive the first order communicated by the first server comprises to receive the first order over the port.

5. The system of claim 4 ,

wherein the first server is further configured to maintain an order book for a second item to be traded, the second item being different from the first item;

wherein the second item is associated with a second port on the network, the second port being different from the first port; and

wherein the first server communicates information associated with the second order over the network using the second port.

6. The system of claim 5 ,

wherein the second server is not configured to maintain an order book for the second item; and

as a result of not being configured to maintain an order book for the second item, the second server is not configured to receive information on the second port.

7. The system of claim 1 ,

wherein the first item is associated with a port on the network;

wherein the first server is configured to send and receive information over the network associated with the first item over the port;

wherein the second server is configured to send and receive information over the network associated with the first item over the port;

wherein the first server is further configured to be taken off-line, where taking the first server off-line includes configuring the server to not receive information on the port, and wherein when the first server is taken off-line prior to the second server communicating the second order, a trade is not executed between the first and second orders.

8. The system of claim 1 , further comprising a third server associated with clearing transactions, wherein the third server is configured to receive the confirmation message in order to clear a transaction created by executing the trade between the first and second orders.

9. The system of claim 1 ,

wherein a first entity at least one of owns and operates the system;

wherein resources of the first server are leased to a second entity; and

wherein resources of the second server are leased to a third entity.

10. The system of claim 9 ,

wherein the first server is further configured to execute an application for trading the item, wherein the application is configured by the second entity; and

wherein the second server is further configured to execute an application for trading the item, wherein the application is configured by the third entity.

11. The system of claim 1 ,

wherein the first server is further configured to decrease an available quantity of the first order in the first order book when the second order is for less than all available quantity of the first order; and

wherein the second server is further configured to decrease an available quantity of the first order in the second order book when the second order is for less than all available quantity of the first order.

12. The system of claim 1 , further comprising a third server associated with clearing transactions, wherein the third server is configured to:

receive the confirmation message from the first server in order to clear a transaction created by executing the trade between the first and second orders; and

receive the confirmation message from the second server in order to clear a transaction created by executing the trade between the third and fourth orders.

13. The system of claim 1 , further comprising a third server configured to:

maintain a third order book for the item;

receive the first order communicated by the first server; and

place the first order in the third order book.

14. The system of claim 13 , wherein the third server is further configured to:

receive the confirmation message; and

in response to receiving the confirmation message, remove the first order from the third order book when the second order is for all quantity of the first order.

15. The system of claim 13 ,

wherein when the second server communicates the second order on the network, the second server is configured to tag the communicated second order as being for the first server; and

wherein the third server is further configured to:

receive the second order from the second server; and

ignore the second order because it is tagged for the first server.

16. The system of claim 13 , wherein the third server is further configured to:

receive a fourth order for the item;

determine the fourth order is a contra-order to the first order; and

in response to determining the third order is a contra-order to the first order, communicate the fourth order to the first server.

17. The system of claim 16 ,

wherein the first server removes the first order from the first order book as a result of executing the trade between the first and second orders; and

wherein the first server is further configured to:

receive the fourth order after receiving the second order;

determine the first order is not available; and

in response to determining that the first order is not available, communicate a message on the network that a trade between the first and fourth orders is not confirmed.

18. The system of claim 16 ,

wherein the first server decreases an available quantity of the first order in the first order book as a result of executing the trade between the first and second orders; and

wherein the first server is further configured to:

receive the fourth order after receiving the second order;

determine the first order is available;

based in part on the first order being available, execute a trade between the first and fourth orders;

remove the first order from the first order book when the fourth order is for all available quantity of the first order; and

communicate another confirmation message on the network indicating the first order is traded against;

wherein the second server is further configured to:

receive the another confirmation message; and

in response to receiving the another confirmation message, remove the first order from the second order book when the fourth order is for all available quantity of the first order; and

wherein the third server is further configured to:

receive the confirmation message

in response to receiving the confirmation message, decrease an available quantity of the first order in the third order book;

receive the another confirmation message; and

in response to receiving the another confirmation message, remove the first order from the third order book when the fourth order is for all available quantity of the first order.

19. The system of claim 1 ,

wherein the first server is further configured to execute an application for trading the item, and wherein the first order is received from the application; and

wherein the first server is further configured to:

prior to executing the trade between the first and second orders, communicate with the application to determine whether the first order should still be traded against; and

execute the trade between the first and second orders when the application indicates the first order should still be traded against.

20. The system of claim 19 , wherein the first server is further configured to:

remove the first order from the first order book when the application indicates the first order should not be traded against; and

communicate a message on the network that a trade between the first and second orders is not confirmed.

21. A system comprising a plurality of servers including at least a first server, a second server, and a third server wherein the plurality of servers interconnected by at least one network:

wherein the first server is configured to:

maintain a first order book for an item to be traded;

receive a first order for the item, wherein the first order includes a quantity;

place the first order in the first order book, wherein the first server is responsible for controlling execution of contra-orders against the first order; and

communicate the first order on the network;

wherein the second server is configured to:

maintain a second order book for the item;

receive the first order communicated by the first server;

place the first order in the second order book;

receive a second order for the item;

determine the second order is a contra-order to the first order; and

in response to determining the second order is a contra-order to the first order, communicate the second order to the first server;

wherein the third server is configured to:

maintain a third order book for the item;

receive the first order communicated by the first server; and

place the first order in the third order book;

wherein the first server is further configured to:

receive the second order from the second server;

determine whether the first order is available;

when available, execute a trade between the first and second orders;

remove the first order from the first order book when the second order is for all available quantity of the first order; and

communicate a confirmation message on the network indicating the first order is traded against;

wherein the second server is further configured to:

receive the confirmation message; and

in response to receiving the confirmation message, remove the first order from the second order book when the second order is for all available quantity of the first order; and

wherein the third server is further configured to:

receive the confirmation message; and

in response to receiving the confirmation message, remove the first order from the third order book when the second order is for all quantity of the first order.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2016
From: LOVELESS, JACOB
To: CFPH, LLC
Reel/Frame 037595/0670 →
Continuity (2)
Provisional Application 61737553 · Dec 14, 2012
Related Publication 20140172644A1 · Jun 19, 2014
Cited By (1)
US 12,646,104