IP Library Granted Patent US 8,874,479
Granted Patent B2
US 8,874,479 · App. 14/099,282 · Granted Oct 28, 2014

Systems and methods for testing a financial trading system

Inventors: Kevin Mueller (Yardley, PA); Paul Fost (Pound Ridge, NY); Marc Hampshire (Williamstown, NJ); David Seidman (Maple Glen, PA); David Lehmann (Lumberton, NJ); Amy Neiley (Philadelphia, PA); Vinay Rao (Collegeville, PA); Greg Miller (Wallingford, PA); Ganesh Chittimalla (Plainsboro, NJ); Matthew Rotella (West Chester, PA); Douglas Schafer (Rose Valley, PA); Srinivas Nimma (Englishtown, NJ); Robert Straub (Kendall Park, NJ); Muna Tang (Dayton, NJ)
Assignee: Miami International Securities Exchange, LLC
G06Q40/04G06Q10/0639
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 8,874,479
App. No.
14/099,282
Granted
Oct 28, 2014
Kind
B2
Abstract

A method is provided for testing a trading system having a verification subsystem and trading environments. Each of the environments has a network interface, memory, and a matching engine executed by a processor. The method includes retrieving, by the verification subsystem, at least one defined use case. Each defined use case includes command lines. The method also includes parsing the command lines based on defined parsing rules to produce parsed command lines. Each parsed command line includes a verb specifying financial transactions. Each parsed command line also includes data fields. The method further includes mapping the verb and fields of each command line based on defined mapping relationships to generate a test case. The method also includes executing the test case to generate messages to be executed by the trading system. The method also includes reading parameters of the trading system for comparison to specified validation values.

Claims (64)

1. A method for testing a computerized trading system having a verification subsystem and one or more trading environments for performing trading of financial instruments, each of the trading environments having a communication network interface, storage memory, and a matching engine executed by a processor, the method comprising:

defining at least one use case, the at least one use case comprising one or more command lines, the at least one use case specifying at least one generic actor and at least one generic financial product;

retrieving, by the verification subsystem, the at least one defined use case;

parsing, by the verification subsystem, the command lines based on predefined parsing rules to produce parsed command lines, each parsed command line comprising a verb specifying at least one financial transaction and each parsed command line further comprising one or more fields, each field containing a parameter of the at least one specified financial transaction;

processing, by the verification system, the parsed command lines based on dynamic configurations of the trading system, the dynamic configurations comprising at least one of:

(i) settings associated with each of a plurality of operational modes of the trading system, and

(ii) settings associated with entitlements for entities trading through the trading system, wherein the processing comprises:

mapping the verb and fields of each command line based on predefined mapping relationships; and

specifying, at least one registered user of the trading system and at least one predetermined financial product currently trading on the trading system;

generating, by the verification subsystem, a test case based on the processing, wherein the generating comprises:

substituting, the at least one registered user for the at least one generic actor and the at least one predetermined financial product for the at least one generic product;

executing, by the verification subsystem, the test case, the executing comprising producing one or more messages to be executed by the trading system and one or more validations to be performed, wherein the executing of the test case further comprises:

transmitting, by the verification subsystem, the messages which are executed in the one or more trading environments of the trading system;

reading, by the verification subsystem, outputs of the trading system specified by the validations; and

evaluating the read outputs based on values specified in the validations.

2. The method of claim 1 , wherein the mapping by the verification subsystem comprises specifying a particular network connection in the messages such that a particular message is transmitted for execution via the specified network connection.

3. The method of claim 2 , wherein the specified network connection is determined based on an identity of an actor specified in the use case.

4. The method of claim 2 , wherein the particular message is executed by a particular trading environment corresponding to the specified network connection.

5. The method of claim 1 , wherein the verb of the parsed command line is a macro-verb which is mapped to one of a plurality of atomic verbs and a combination of at least one atomic verb and at least one pseudo verb, each pseudo verb is mapped to an atomic verb and each atomic verb corresponds to a particular message to be executed by the trading system.

6. The method of claim 1 , wherein the verb of the parsed command line is a pseudo-verb which is mapped to an atomic verb such that at least one field of the atomic verb is determined by the pseudo-verb, each atomic verb corresponding to a particular message to be executed by the trading system.

7. The method of claim 1 , wherein the verb of the parsed command line is a multi-sided verb which is expanded by breaking into a sell side and a buy side and mapped to one of a sell side atomic verb and a sell side pseudo verb and one of a buy side atomic verb and a buy side pseudo verb, each corresponding to a particular message to be executed by the trading system.

8. The method of claim 1 , wherein the values specified in the validations are included in the use case.

9. The method of claim 1 , wherein at least a portion of the validations are based on a number of entitlements associated with a registered user, the entitlements corresponding to a number of network communication ports assigned to the registered user.

10. The method of claim 1 , wherein the use case is stored in a spreadsheet file and the test case is generated as an XML script.

11. The method of claim 1 , wherein the mapping by the verification system is performed based further on static environment configurations of the trading system.

12. The method of claim 11 , wherein the static environment configurations include one or more of memory allocations, queue depths, and networking configurations of the trading system.

13. The method of claim 12 , wherein the networking configurations of the trading system comprise Internet Protocol (IP) addresses and port numbers associated with fixed connections that are maintained by the trading system.

14. A system for testing a computerized trading system having and one or more trading environments for performing trading of financial instruments, each of the trading environments having a communication network interface, storage memory, and a matching engine executed by a processor, the system comprising:

a verification subsystem comprising a processor and a communication interface;

a memory, accessible by the verification subsystem, storing one or more defined use cases comprising one or more command lines, the one or more uses cases each specifying at least one generic actor and at least one generic financial product,

wherein the verification subsystem is configured to perform:

parsing the command lines of a retrieved use case based on predefined parsing rules to produce parsed command lines, each parsed command line comprising a verb specifying at least one financial transaction and each parsed command line further comprising one or more fields, each field containing a parameter of the specified financial transaction;

processing the parsed command lines based further on dynamic configurations of the trading system, the dynamic configurations comprising at least one of: (i) settings associated with each of a plurality of operational modes of the trading system, and (ii) settings associated with entitlements for entities trading through the trading system, wherein the processing comprises:

mapping the verb and fields of each command line based on predefined mapping relationships; and

specifying, at least one registered user of the trading system and at least one predetermined financial product currently trading on the trading system;

generating, by the verification subsystem, a test case based on the processing, wherein the generating comprises:

substituting, the at least one registered user for the at least one generic actor and the at least one predetermined financial product for the at least one generic product;

executing the test case, the executing comprising producing one or more messages to be executed by the trading system and one or more validations to be performed, wherein the executing of the test case further comprises:

transmitting the messages which are executed in the one or more trading environments of the trading system; and

reading outputs of the trading system specified by the validations; and

evaluating the read outputs based on values specified in the validations.

15. The system of claim 14 , wherein the mapping by the verification subsystem comprises specifying a particular network connection in the messages such that a particular message is transmitted for execution via the specified network connection.

16. The system of claim 15 , wherein the specified network connection is determined based on an identity of an actor specified in the use case.

17. The system of claim 14 , wherein the use case specifies a generic financial product which is an object of the execution of the message, and the mapping by the verification subsystem further comprises specifying a registered user which is substituted for the generic product.

18. The system of claim 14 , wherein the verb of the parsed command line is a macro-verb which is mapped to one of a plurality of atomic verbs and a combination of at least one atomic verb and at least one pseudo verb, each pseudo verb is mapped to an atomic verb and each atomic verb corresponds to a particular message to be executed by the trading system.

19. The system of claim 14 , wherein the verb of the parsed command line is a pseudo-verb which is mapped to an atomic verb such that at least one field of the atomic verb is determined by the pseudo-verb, each atomic verb corresponding to a particular message to be executed by the trading system.

20. The system of claim 14 , wherein the verb of the parsed command line is a multi-sided verb which is expanded by breaking into a sell side and a buy side and mapped to one of a sell side atomic verb and a sell side pseudo verb and one of a buy side atomic verb and a buy side pseudo verb, each corresponding to a particular message to be executed by the trading system.

21. A computer program product comprising a computer usable non-transitory medium having a computer readable program code embedded therein, the computer readable code including instructions for executing the steps of a method for testing a computerized trading system having a verification subsystem and one or more trading environments for performing trading of financial instruments, each of the trading environments having a communication network interface, storage memory, and a matching engine executed by a processor, the method comprising:

retrieving, by the verification subsystem, at least one defined use case, each defined use case comprising one or more command lines, the at least one use case specifying at least one generic actor and at least one generic financial product;

parsing, by the verification subsystem, the command lines based on predefined parsing rules to produce parsed command lines, each parsed command line comprising a verb specifying at least one financial transaction and each parsed command line further comprising one or more fields, each field containing a parameter of the specified financial transaction;

processing, by the verification system, the parsed command lines based further on dynamic configurations of the trading system, the dynamic configurations comprising at least one of: (i) settings associated with each of a plurality of operational modes of the trading system, and (ii) settings associated with entitlements for entities trading through the trading system, wherein the processing comprises:

mapping the verb and fields of each command line based on predefined mapping relationships; and

specifying, at least one registered user of the trading system and at least one predetermined financial product currently trading on the trading system;

generating, by the verification subsystem, a test case based on the processing, wherein the generating comprises:

substituting, the at least one registered user for the at least one generic actor and the at least one predetermined financial product for the at least one generic product;

executing, by the verification subsystem, the test case, the executing comprising producing one or more messages to be executed by the trading system and one or more validations to be performed, wherein the executing of the test case further comprises:

transmitting, by the verification subsystem, the messages which are executed in the one or more trading environments of the trading system;

reading, by the verification subsystem, outputs of the trading system specified by the validations; and

evaluating the read outputs based on values specified in the validations.

22. The computer program product of claim 21 , wherein the mapping by the verification subsystem comprises specifying a particular network connection in the messages such that a particular message is transmitted for execution via the specified network connection.

23. The computer program product of claim 22 , wherein the specified network connection is determined based on an identity of an actor specified in the use case.

24. The computer program product of claim 22 , wherein the particular message is executed by a particular trading environment corresponding to the specified network connection.

25. The computer program product of claim 21 , wherein the use case specifies a generic actor and the mapping by the verification subsystem further comprises specifying a registered user which is substituted for the generic actor.

26. The computer program product of claim 21 , wherein the use case specifies a generic financial product which is an object of the execution of the message, and the mapping by the verification subsystem further comprises specifying a registered user which is substituted for the generic product.

Assignments (8)
RELEASE OF PATENT SECURITY AGREEMENT Recorded Nov 3, 2025
From: SKYLIGHT AGGREGATOR, L.P., AS ADMINISTRATIVE AGENT
To: MIAMI INTERNATIONAL HOLDINGS, INC.
Reel/Frame 073513/0725 →
PATENT SECURITY AGREEMENT Recorded Aug 21, 2024
From: MIAMI INTERNATIONAL HOLDINGS, INC.
To: SKYLIGHT AGGREGATOR, L.P., AS ADMINISTRATIVE AGENT
Reel/Frame 068738/0664 →
RELEASE OF SECURITY INTEREST Recorded Aug 16, 2024
From: FCS ADVISORS LLC, D/B/A BREVET CAPITAL ADVISORS, AS ADMINISTRATIVE AGENT
To: MIAMI INTERNATIONAL HOLDINGS, INC.
Reel/Frame 068313/0862 →
SECURITY INTEREST Recorded Jul 25, 2016
From: MIAMI INTERNATIONAL HOLDINGS, INC.
To: FCS ADVISORS LLC, D/B/A BREVET CAPITAL ADVISORS, AS ADMINISTRATIVE AGENT
Reel/Frame 039239/0921 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 038270 FRAME: 0797. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 15, 2016
From: MIAMI INTERNATIONAL SECURITIES EXCHANGE, LLC
To: MIAMI INTERNATIONAL HOLDINGS, INC.
Reel/Frame 038440/0124 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2016
From: MIAMI INTERNATIONAL SECURITIES EXCHANGE, LLC
To: MIAMI INTERNATIONAL HOLDINGS, LLC
Reel/Frame 038270/0797 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 033710 FRAME: 0570. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 12, 2014
From: MUELLER, KEVIN; FOST, PAUL; HAMPSHIRE, MARC; SEIDMAN, DAVID; LEHMANN, DAVID; NEILEY, AMY; RAO, VINAY; ROTELLA, MATTHEW; SCHAFER, DOUGLAS; NIMMA, SRINIVAS; STRAUB, ROBERT; TANG, MUNA; MILLER, GREGORY; CHITTIMALLA, GANESH
To: MIAMI INTERNATIONAL SECURITIES EXCHANGE, LLC
Reel/Frame 033729/0075 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2014
From: MUELLER, KEVIN; FOST, PAUL; HAMPSHIRE, MARC; SEIDMAN, DAVID; LEHMANN, DAVID; NEILEY, AMY; RAO, VINAY; ROTELLA, MATTHEW; SCHAFER, DOUGLAS; NIMMA, SRINIVAS; STRAUB, ROBERT; TANG, MUNA; MILLER, GREGORY; CHITTIMALLA, GANESH
To: MIAMI INTERNATIONAL SECURITIES EXCHANGE
Reel/Frame 033710/0570 →
Continuity (2)
Provisional Application 61734238 · Dec 6, 2012
Related Publication 20140164208A1 · Jun 12, 2014