IP Library › Granted Patent US 10,380,589
Granted Patent B2
US 10,380,589 · App. 14/873,526 · Granted Aug 13, 2019

Virtual payment processing system

Inventor: Ari Studnitzer (Chicago, IL)
Assignee: Chicago Mercantile Exchange Inc.
G06Q20/4014G06Q20/08G06Q40/025
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,380,589
App. No.
14/873,526
Granted
Aug 13, 2019
Kind
B2
Abstract

A system, apparatus, and method for resolving a data transaction is provided in which data transactions are resolved by a hardware matching processor that identifies data transaction requests received from client devices over a data communication network, matches incoming transaction requests with previously received transaction requests, and, based thereon, transmits electronic data transaction results messages to the client device. An incoming data transaction request is received and a match is attempted with one or more previously received but not yet resolved data transaction requests. It is identified whether either the incoming data transaction request or the matching data transaction request are dependent on the resolution of another data transaction request and whether that dependent data transaction request has been resolved. The data transaction requests are resolved and/or stored based on the match and resolution of dependencies.

Claims (45)

1. A computer implemented method of resolving data transactions by a data transaction processing system in which data transactions are resolved by a hardware matching processor that identifies asynchronously transmitted data transaction requests received from client devices over a data communication network in an arbitrary sequence, matches incoming transaction requests with previously received transaction requests, and, based thereon, transmits electronic data transaction results messages to the client devices, the method comprising:

receiving, by the hardware matching processor, an incoming data transaction request from a first client device of a first entity via the data communications network, the incoming data transaction request containing data indicative of an incoming data transaction counter to another transaction from another client device of another entity and received by the hardware matching processor prior or subsequent to receipt of the incoming data transaction, wherein the incoming data transaction request does not contain identifying information associated with the other entity and the other transaction does not contain identifying information associated with the first entity;

attempting to match the incoming data transaction request with a previously received but not yet resolved data transaction request, which is stored in a transaction message database coupled with the hardware matching processor, to at least partially resolve the incoming data transaction request and/or any matching previously received but not yet resolved data transaction requests;

identifying whether the resolution of the incoming data transaction request and/or any matching previously received but not yet resolved data transaction request is further dependent on resolution of another data transaction request and further determining whether that other data transaction request has been resolved;

wherein if the incoming data transaction request matches with a previously received but not yet resolved data transaction request and any identified other data transaction requests have been determined to be resolved, resolving the incoming data transaction request with the previously received but not yet resolved data transaction request to at least partially resolve one or both of the incoming data transaction request and the previously received but not yet resolved data transaction request, and storing any unresolved remainder of the incoming data transaction request or of the matching previously received but not yet resolved data transaction requests in the transaction message database; and

wherein if no matching previously received but not yet resolved data transaction request is stored in the transaction message database or the identified other data transaction request has not been resolved, storing the incoming data transaction request in the transaction message database; and

generating one or more data transaction result messages comprising data indicative of whether the incoming data transaction request matches with a previously received but not yet resolved data transaction request and any identified other data transaction requests have been determined to be resolved and transmitting the generated one or more data transaction result messages to at least to the first client device via the data communications network.

2. The method of claim 1 , wherein if the incoming data transaction request matches with a previously received but not yet resolved data transaction request and any identified other data transaction requests have been determined to have been resolved, determining whether there are any other previously received but not yet resolved data transaction requests stored in the transaction message database which are dependent on the resolution of the incoming data transaction request and/or the matching previously received but not yet resolved data transaction request.

3. The method of claim 1 , wherein no other data transaction requests are identified upon which the incoming data transaction request and the matching previously received but not yet resolved data transaction requests depend.

4. The method of claim 1 , wherein at least one incoming data transaction request and/or previously received but not yet resolved data transaction request is dependent on the resolution of another data transaction request that has not yet been received by the hardware matching processor.

5. The method of claim 1 , wherein one or more previously received but not yet resolved data transaction request is dependent on the resolution of a single other data transaction request, the incoming data transaction request, or another data transaction request that has not yet been received by the hardware matching processor.

6. The method of claim 1 , wherein one or more incoming data transaction request and/or previously received but not yet resolved data transaction request is dependent on the resolution of a plurality of other data transaction requests, plurality of incoming data transaction requests, plurality of other data transaction requests that have not yet been received by the hardware matching processor, or combination thereof.

7. The method of claim 1 , wherein one or more incoming data transaction request and/or previously received but not yet resolved data transaction request is dependent on a subset comprising a plurality of other data transaction requests, plurality of incoming data transaction requests, plurality of other data transaction requests that have not yet been received by the hardware matching processor, or combination thereof, and wherein no data transaction request in the subset is otherwise dependent on or otherwise dependent from any data transaction request of the subset.

8. The method of claim 1 , wherein if the incoming data transaction request matches with a previously received but not yet resolved data transaction request, and wherein a second previously received but not yet resolved data transaction request depends from the previously received but not yet resolved data transaction request matching with the incoming data transaction request, resolving the second previously received but not yet resolved data transaction request with the previously received but not yet resolved data transaction request matching with the incoming data transaction request, and resolving the previously received but not yet resolved data transaction request with the incoming data transaction request.

9. The method of claim 1 , wherein if the incoming data transaction request matches with a plurality of previously received but not yet resolved data transaction requests, but wherein all portions of all plurality of previously received but not yet resolved data transaction requests cannot be resolved by the incoming data transaction request, optimizing the resolution of the matching based on maximization of profit, minimization of cost, maximization of the number of matched transaction requests based, maximize a monetary amount of the quantity of transaction requests, or a combination thereof.

10. The method of claim 1 , wherein the optimization comprises one or more linear optimization techniques.

11. The method of claim 1 , wherein if one or both of the incoming data transaction request and/or the matched previously received but not yet resolved data transaction request are at least partially resolved, removing the resolved portions of the incoming data transaction request and/or the previously received but not yet resolved data transaction request from the transaction message database, and storing a data record of the resolved portions of the incoming data transaction request and/or the previously received but not yet resolved data transaction request in a completed transaction database.

12. A system for resolving data transactions, in which data transactions are completed by a hardware matching processor that identifies asynchronously transmitted data transaction requests received from client devices over a data communication network in an arbitrary sequence, matches incoming transaction requests with previously received transaction requests, and, based thereon, transmits electronic data transaction results messages to the client devices, the system comprising:

at least one processor; and

at least one memory including computer program code for one or more programs the at least one memory and the computer program code configured to, with the at least one processor, cause the system to:

receive, by the hardware matching processor, an incoming data transaction request from a first client device of a first entity via the data communications network, the incoming data transaction request containing data indicative of an incoming data transaction counter to another transaction from another client device of another entity and received by the hardware matching processor prior or subsequent to receipt of the incoming data transaction, wherein the incoming data transaction request does not contain identifying information associated with the other entity and the other transaction does not contain identifying information associated with the first entity;

attempt to match the incoming data transaction request with a previously received but not yet resolved data transaction request, which is stored in a transaction message database coupled with the hardware matching processor, to at least partially resolve the incoming data transaction request and/or any matching previously received but not yet resolved data transaction requests;

identify whether the resolution of the incoming data transaction request and/or any matching previously received but not yet resolved data transaction request is further dependent on resolution of another data transaction request and further determining whether that other data transaction request has been resolved;

wherein if the incoming data transaction request matches with a previously received but not yet resolved data transaction request and any identified other data transaction requests have been determined to be resolved, resolve the incoming data transaction request with the previously received but not yet resolved data transaction request to at least partially resolve one or both of the incoming data transaction request and the previously received but not yet resolved data transaction request, store any unresolved remainder of the incoming data transaction request or of the matching previously received but not yet resolved data transaction requests in the transaction message database, and determine whether there are any other previously received but not yet resolved data transaction requests stored in the transaction message database which are dependent on the resolution of the incoming data transaction request and/or the matching previously received but not yet resolved data transaction request; and

wherein if no matching previously received but not yet resolved data transaction request is stored in the transaction message database or the identified other data transaction request has not been resolved, store the incoming data transaction request in the transaction message database; and

generate one or more data transaction result messages comprising data indicative of whether the incoming data transaction request matches with a previously received but not yet resolved data transaction request and any identified other data transaction requests have been determined to be resolved and transmitting the generated one or more data transaction result messages to at least to the first client device via the data communications network.

13. The system of claim 12 , wherein no other data transaction requests are identified upon which the incoming data transaction request and the matching previously received but not yet resolved data transaction requests depend.

14. The system of claim 12 , wherein at least one incoming data transaction request and/or previously received but not yet resolved data transaction request is dependent on the resolution of another data transaction request that has not yet been received by the hardware matching processor.

15. The system of claim 12 , wherein one or more previously received but not yet resolved data transaction request is dependent on the resolution of a single other data transaction request, the incoming data transaction request, or another data transaction request that has not yet been received by the hardware matching processor.

16. The system of claim 12 , wherein one or more incoming data transaction request and/or previously received but not yet resolved data transaction request is dependent on a subset comprising a plurality of other data transaction requests, plurality of incoming data transaction requests, plurality of other data transaction requests that have not yet been received by the hardware matching processor, or combination thereof, and wherein no data transaction request in the subset is otherwise dependent on or otherwise dependent from any data transaction request of the subset.

17. The system of claim 12 , wherein if the incoming data transaction request matches with a previously received but not yet resolved data transaction request, and wherein a second previously received but not yet resolved data transaction request depends from the previously received but not yet resolved data transaction request matching with the incoming data transaction request, the at least one memory and the computer program code configured to, with the at least one processor, cause the system to:

resolve the second previously received but not yet resolved data transaction request with the previously received but not yet resolved data transaction request matching with the incoming data transaction request, and resolve the previously received but not yet resolved data transaction request with the incoming data transaction request.

18. The system of claim 12 , wherein if the incoming data transaction request matches with a plurality of previously received but not yet resolved data transaction requests, but wherein all portions of all plurality of previously received but not yet resolved data transaction requests cannot be resolved by the incoming data transaction request, the at least one memory and the computer program code configured to, with the at least one processor, cause the system to:

optimize the resolution of the matching based on maximization of profit, minimization of cost, maximization of the number of matched transaction requests based, maximize a monetary amount of the quantity of transaction requests, or a combination thereof.

19. The system of claim 12 , wherein if one or both of the incoming data transaction request and/or the matched previously received but not yet resolved data transaction request are at least partially resolved, the at least one memory and the computer program code configured to, with the at least one processor, cause the system to:

remove the resolved portions of the incoming data transaction request and/or the previously received but not yet resolved data transaction request from the transaction message database; and

store a data record of the resolved portions of the incoming data transaction request and/or the previously received but not yet resolved data transaction request in a completed transaction database.

20. A non-transitory computer readable medium including instructions for resolving data transactions asynchronously transmitted and received in an arbitrary sequence, that when executed, are operable to:

receive, by the hardware matching processor, an incoming data transaction request from a first client device of a first entity via the data communications network, the incoming data transaction request containing data indicative of an incoming data transaction counter to another transaction from another client device of another entity and received by the hardware matching processor prior or subsequent to receipt of the incoming data transaction, wherein the incoming data transaction request does not contain identifying information associated with the other entity and the other transaction does not contain identifying information associated with the first entity;

attempt to match the incoming data transaction request with a previously received but not yet resolved data transaction request, which is stored in a transaction message database coupled with the hardware matching processor, to at least partially resolve the incoming data transaction request and/or any matching previously received but not yet resolved data transaction requests;

identify whether the resolution of the incoming data transaction request and/or any matching previously received but not yet resolved data transaction request is further dependent on resolution of another data transaction request and further determining whether that other data transaction request has been resolved;

wherein if the incoming data transaction request matches with a previously received but not yet resolved data transaction request and any identified other data transaction requests have been determined to be resolved, resolve the incoming data transaction request with the previously received but not yet resolved data transaction request to at least partially resolve one or both of the incoming data transaction request and the previously received but not yet resolved data transaction request, store any unresolved remainder of the incoming data transaction request or of the matching previously received but not yet resolved data transaction requests in the transaction message database, and determine whether there are any other previously received but not yet resolved data transaction requests stored in the transaction message database which are dependent on the resolution of the incoming data transaction request and/or the matching previously received but not yet resolved data transaction request;

wherein if no matching previously received but not yet resolved data transaction request is stored in the transaction message database or the identified other data transaction request has not been resolved, store the incoming data transaction request in the transaction message database; and

wherein if one or both of the incoming data transaction request and/or the matched previously received but not yet resolved data transaction request are at least partially resolved, remove the resolved portions of the incoming data transaction request and/or the previously received but not yet resolved data transaction request from the transaction message database, and store a data record of the resolved portions of the incoming data transaction request and/or the previously received but not yet resolved data transaction request in a completed transaction database; and

generate one or more data transaction result messages comprising data indicative of whether the incoming data transaction request matches with a previously received but not yet resolved data transaction request and any identified other data transaction requests have been determined to be resolved and transmitting the generated one or more data transaction result messages to at least to the first client device via the data communications network.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2015
From: STUDNITZER, ARI
To: CHICAGO MERCANTILE EXCHANGE INC.
Reel/Frame 037374/0603 →
Continuity (1)
Related Publication 20170098217A1 · Apr 6, 2017