WO2001007983A2 - Electronic systems with supervision of transactions among transaction initiators and transaction processors - Google Patents

Electronic systems with supervision of transactions among transaction initiators and transaction processors Download PDF

Info

Publication number
WO2001007983A2
WO2001007983A2 PCT/US2000/020169 US0020169W WO0107983A2 WO 2001007983 A2 WO2001007983 A2 WO 2001007983A2 US 0020169 W US0020169 W US 0020169W WO 0107983 A2 WO0107983 A2 WO 0107983A2
Authority
WO
WIPO (PCT)
Prior art keywords
transaction
processors
transactions
original
routing
Prior art date
Application number
PCT/US2000/020169
Other languages
French (fr)
Other versions
WO2001007983A8 (en
Inventor
Rico Blaser
Andrei Moutchkine
Original Assignee
Market Engine Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Market Engine Corporation filed Critical Market Engine Corporation
Priority to AU63706/00A priority Critical patent/AU6370600A/en
Publication of WO2001007983A2 publication Critical patent/WO2001007983A2/en
Publication of WO2001007983A8 publication Critical patent/WO2001007983A8/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions

Definitions

  • the present invention relates to the field of electronic commerce (e-commerce) and particularly to electronic systems for supervising transactions among multiple transaction initiators and multiple transaction processors in capital and other e- commerce markets.
  • e-commerce electronic commerce
  • Trading systems include, for example, national, regional and on-line exchanges (online exchanges include, for example, e-Bay and Amazon, com), broker-dealer firms, broker-dealer trading systems, also known as alternative trading systems (ATS) and which can be for over-the-counter markets for auction markets or for other markets.
  • online exchanges include, for example, e-Bay and Amazon, com
  • broker-dealer firms include, for example, e-Bay and Amazon, com
  • broker-dealer trading systems also known as alternative trading systems (ATS) and which can be for over-the-counter markets for auction markets or for other markets.
  • Alternative trading systems have an increasing presence in the securities markets.
  • alternative trading systems include Instinet, Optimark, Attain, Archipelago, Island, Posit and the Arizona Stock Exchange.
  • Dramatic growth in the number of alternative trading systems and in the volume of securities traded by alternative trading systems have permitted companies to offer faster, less expensive and more flexible ways for investors to trade. This growth has evolved as a result of developments in electronic technology and the growth has been accelerated by the inability of conventional regulated exchanges to satisfy the changing needs of the marketplace.
  • securities industry professionals and institutional investors generally have been the principal users of alternative trading systems, future systems will extend to all segments of the marketplace.
  • Alternative trading systems are now regulated in the U. S. by the Securities andExchange Commission (SEC). Under U.S. regulations, alternative trading systems can choose whether to be treated as "exchanges" or as "broker-dealers". Alternative trading systems registered with the SEC as exchanges have a need to ensure that participants comply with securities laws. Such laws may exempt from exchange regulation internal order management systems and systems that allow customers to trade solely against a dealer's inventory. Alternative trading systems registered with the
  • SEC as broker-dealers may require, for example, regular reports, audit trails of transactions, links with a registered market, public display of quotes and orders while providing fair access to the markets.
  • the present invention is an e-commerce system for electronic transactions using transaction initiators for initiating transactions, transaction processors for processing transactions, networks for interconnecting the transaction initiators and the transaction processors and a market engine for supervising transactions among the transaction initiators and the transaction processors.
  • the market engine supervises transactions based on information gathered from transaction processors over the entire e-commerce system.
  • the market engine includes a logical control for controlling the routing of transactions among the transaction initiators and said transaction processors by executing routing instructions.
  • the logical control includes storage for storing the routing instructions and an execution unit for executing the routing instructions.
  • the use of sequences of instructions in the logical control permits real-time decisions and processing of high complexity using data gathered from the entire e- commerce system.
  • the e-commerce system through operation of the market engine has high connectivity, great flexibility and superior adaptability.
  • the market engine operates to supervise transactions and their routing and submission to transaction processors and thus operates to overcome the fragmentation of the e-commerce market represented by many diverse transaction processors.
  • the market engine has a close association with a transaction processor for providing "internal" transaction processing in an integrated market engine.
  • a transaction processor for providing "internal" transaction processing in an integrated market engine.
  • internal crossings and other internal executions are performed efficiently.
  • the integrated market engine does not make decisions in a vacuum without reference to the entire e-commerce system.
  • Such external knowledge about the e-commerce system is used to ensure fairness of internal transactions as measured across the entire e-commerce system.
  • internal crossings can be determined as fair in relationship to possible external crossings.
  • the internal crossings are fair in a manner that is or can be transparent to the external transaction processors. Fairness is promoted when the market engine considers information about internal transactions based upon transactions from at least one external transaction processor.
  • an extended e-commerce system includes aggregators for distributing transactions for groups of transaction processors.
  • Aggregators can be common booking facilies provided by groups of companies having a common interest or can be an industry-wide facility mandated by government or established by mutual agreement.
  • FIG. 1 depicts an e-commerce system having a market engine for supervising and integrating the operations of multiple transaction initiators and multiple transaction processors.
  • FIG. 2 depicts the e-commerce system of FIG. 1 where the transaction initiators include users and brokers and transaction processors include different exchanges, data units and other units.
  • FIG. 3 depicts a control processor used in the market engine of the e- commerce systems of FIG. 1 and FIG. 2.
  • FIG. 4 depicts a dual control processor embodiment of the market engine of FIG. 1.
  • FIG. 5 depicts further details all the control processor of FIG. 3.
  • FIG. 6 depicts further details of the logical control in the control processor of FIG. 5.
  • FIG. 7 depicts further details of the services layer in the FIG. 3 control processor.
  • FIG. 8 depicts a three control processor embodiment of the market engine of FIG. 1.
  • FIG. 9 depicts an e-commerce system having an integrated market engine and an internal transaction processor.
  • FIG. 10 depicts an e-commerce system having a market engine and aggregators.
  • FIG. 1 depicts an e-commerce system 2 for performing e-commerce transactions using electronic networks 13.
  • e-commerce transactions include, for example, buying, selling, negotiation, crossing, and analysis and relates to electronic instruments (such as stocks and bonds), foreign currency, commodities, derivatives, books, insurance, real estate, information and any other "entity" having value.
  • the networks 13 include any electronic network such as the Internet, wide area networks
  • Transactions in the system of FIG. 1 start with transaction initiators 10, including the transaction initiators 10-1, ..., 10-TI.
  • the transactions initiated by the transaction initiators 10 are supervised by market engine 11' which includes one or more control processors 11 designated as 11-1, ..., ll c; ,, ..., 11 -CP.
  • the control processors 11 supervise interaction among the transaction initiators 10 and the transaction processors 12, control the routing of the initiated transactions from transaction initiators 10 to the transaction processors 12, as well as coordinating the gathering, storing and distributing of information useful for transaction supervision.
  • Each of the transaction initiators 10- 1 , ... , 10-TT, each of the control processors 11-1, ..., 11 -CP, and each of the transaction processors 12-1, ..., 12-TP, directly connect to the networks 13.
  • the direct connection of the transaction initiators 10, the control processors 11 and the transaction processors 12 are shown in FIG. 1 by solid lines (with double arrowheads). While the interconnection of each of the transaction initiators 10, the control processors 11 and the transaction processors 12 is through the networks 13 , the logical connection of transaction routing is shown in FIG. 1 by broken lines (with double arrowheads). In FIG.
  • transaction initiator 10-1 logically connects to control processor 11-1, connects to other control processors (not explicitly shown) and connects to control processor 11 -CP (or connects to any subset thereof).
  • transaction initiator 10-TT logically connects to the control processor 11-1, connects to other control processors (not explicitly shown) and finally connects to the control processor 11-CP (or connects to any subset thereof).
  • the control processor 11-1 logically connects to the transaction processor 12-1, connects to other transaction processors (not explicitly shown) and finally connects to the transaction processor 12-TP (or connects to any subset thereof).
  • the control processor 11 -CP logically connects to the transaction processor 12-1, potentially logically connects to other transaction processors (not explicitly shown) and logically connects to the transaction processor 12-TP (or connects to any subset thereof).
  • control processors 11 collectively work to supervise all or a substantial number of the transactions initiated by the transaction initiators 10 and processed by the transaction processors 12. In this manner, the market engine 11' is able to access and maintain information about all of the transactions collectively as well as each of the individual transaction being processed in the FIG. 1 e-commerce system. Where high reliability in transaction handling is required, the connection of transaction initiators 10 to more than one of the control processors 11 ensures high reliability and high availability in the operation of the FIG. 1 system. In the FIG.
  • connections between transaction initiators 10, control processors 11 and transaction processors 12 connect through networks 13, but it is to be understood that such network connections 13 can include direct connections between particular control processors 11 and particular transaction processors 12, between particular control processors 11 and particular transaction initiators 10, and between particular transaction initiators 10 and particular transaction processors 12.
  • the market engine 11' receives information from all, or a significant subset, of the transaction initiators 10 and transaction processors 12 so that market engine 11' is able to supervise the routing of transactions in the e-commerce system of FIG. 1 based upon an overview of the e-commerce system 2.
  • the transaction processors include one or more conventional (or non-conventional) exchanges.
  • the exchanges include, for example, conventional exchanges 24-1, ..., 24- EX, which are, for example, the New York Stock Exchange (NYSE), Chicago Mercantile Exchange, National Association of Securities Dealers Automated Quotation
  • the transaction processors include the alternative trading systems (ATS) and particularly, ATS 26-1, ..., 26-AT.
  • the transaction processors also include electronic communication networks (ECN) including the ECN 25-1, ..., 25-EC.
  • ECN electronic communication networks
  • Any number of other transaction processors 27 are possible in the transaction processors 12 of FIG. 2, and these are generically indicated as the other transaction processors 27- 1 , ... , 27-OT.
  • Other transaction processors include Clearing Houses for example.
  • Some of the transaction processors 12 in FIG. 2 include data units for receiving or providing data relevant to transactions and these data units are designated as the data units 28-1, ..., 28-DA.
  • Such data units typically provide information about one or more of the other transaction processors such as the exchanges 24, ECNs 25 and the ATSs but also can provide any other type of data such as weather data, company earnings, political and economic data and so forth. Also, the data units may store data, provide data for quotations and otherwise act in any capacity to serve or receive data of all types.
  • the transaction initiators 10-1 include, for example, users 23 designated as the users 23-1 , ..., 23-US. Users 23 include the computers, terminals and other equipment and software useful for persons (individuals or companies) to electronically connect to an e-commerce system.
  • the transaction initiators may be brokers 20 as indicated by broker 20'- 1 in the transaction initiator 10-TI.
  • Brokers 20 include the computers, terminals and other equipment and software useful for persons (individuals or companies) acting as a broker for users to electronically connect to an e-commerce system.
  • the broker 20'- 1 in transaction initiator 10-TI logically connects to users 23 such as users 23 '- 1 , ... , 23 '-US .
  • the transaction initiators in FIG. 2, including transaction initiators 10-1, ..., 10-TI can be of the user-only type of transaction initiator 10-1, can be of the broker-user type of transaction initiator 10-TI or can be of any other type. Any number of such transaction initiators of different types can be used in an electronic system of FIG. 2 for initiating electronic transactions.
  • hierarchies of brokers, funds, institutions, users such as broker- broker, user-user, broker-broker-user-user in any depth or configuration can exist.
  • the market engine 11 ' formed of the control processors 11 in FIG.
  • any one or more of the transaction processors 12 of FIG. 2 can also be closely associated with the market engine control processors 11 and hence be "internal" to the integrated market engine 11 '.
  • the particular internal or external configuration of the different transaction initiators 10, including brokers or users, and the different transaction processors 12 with the market engine 11' is a matter of choice.
  • "internal" units work efficiently together under common control without need for gateways or other protocol converters.
  • the market engine 11 ' and the control processors 11 are connected in common among all of the transaction initiators 10 and the transaction processors 12 that constitute the electronic system 2.
  • FIG. 2 the functional flow of information is shown by broken lines, while physical connections of the transaction initiators 10, market engine control processors 11 and transaction processors 12 are generally through direct connections to the network 13 as shown by solid lines.
  • FIG. 3 the logical partitioning of a typical control processor 1 l cp of control processors 11-1, ..., 11 ⁇ , ..., 11-CP in FIG. 1 is shown.
  • the control processor 11 ⁇ of FIG. 3 includes hardware 34 which is, for example, a Sun Ultra Sparc computer.
  • the hardware 34 can encompass any computer system from small computers, such as standard PCs to large-scale computers, such as mainframes. Single and multiprocessor computers and single and multi-computer configurations can be employed.
  • the operating system 33 is an operating system suitable for running on the hardware 34. In the case of the Sun Ultra Sparc computer, a Solaris operating system may be employed.
  • a Solaris operating system may be employed.
  • the services layer 32 provides services, in addition to those provided by the standard operating system 33, both for functions within the control processor 1 l cp (including between multiple processors or computers that form a single control processor 11 ⁇ ) and for functions among other control processors 11, that is, among the control processors 11-1, ..., 1 l cp , ..., 11-CP in FIG. 1.
  • the control unit 31 includes the logical control software 38 and the interfaces 35, 36 and 37 for connecting between transaction initiators 10 and the transaction processors 12 of FIG. 1.
  • the logical control 38 which controls the interaction among the transaction initiators 10 and the transaction processors 12, provides the supervision, including routing, of transactions throughout the e-commerce system 2 of FIG. 1 and FIG. 2.
  • the control unit 31 of FIG. 3 includes the TI interface 35 for connecting to the transaction initiators 10 in FIG. 1 , the TP interface 36 for connecting to the transaction processors 12 of FIG. 1.
  • a DA interface 37 is provided for connecting to transaction processors which are the data units 28 of FIG. 2.
  • FIG 4 two of the control processors 11 of FIG.3 are shown interconnected in a dual processor environment.
  • the dual control processors 11, designated as 11-1 and 11-2, are interconnected by the services layers 32. Any architecture for high reliability and serviceability may be employed for the FIG. 4 configuration. For example, multiple control processors with clustering connectivity through the services layers 32 may be employed.
  • FIG. 5 further details of a typical control processors 1 l cp is shown together with transaction initiators 10 and transaction processors 12.
  • the transaction processors 12 include the transaction processors 12-1, ... , 12-TP and additionally, transaction processors 12 include the data units 28-1, ... , 28-DA.
  • Control processor 1 l cp includes the logical control 38, the ⁇ interface 35, the
  • the TI interface 35 includes the gateways 35-
  • the DA interface 37 includes the gateways 37-1, ... , 37-DA.
  • the TP interface 36 includes the gateways 36-1, ... , 36-TP.
  • the gateways of FIG. 5 are included to provide protocol and other conversions that are necessary between the control processor 1 l cp , the transaction processors and the transaction initiators.
  • the control processor l l c; includes the logical control 38.
  • the logical control 38 connects to the interfaces 35, 36 and 37.
  • the logical control 38 includes a storage unit 51 for storing supervising information including routing and other instructions and an execution unit 52 for executing routing and other instructions stored in the storage unit 5.
  • the logical control 38 of a control processor 1 l cp is shown in further detail.
  • the logical control 38 includes a storage unit 51 and an execution unit 52.
  • the storage unit 51 includes, in one particular embodiment, an instruction store 61 and a data store 62.
  • the instruction store 61 stores routing instructions which are executed by the execution unit 52.
  • the data store 62 stores data values which are useful in connection with the execution by the execution unit 52.
  • the execution unit 52 includes a router 64 and a trigger 63.
  • the router 64 processes routing instructions from the instruction store 51 and such instructions may involve use of data from the data store 62.
  • the router 64 also receives inputs from the trigger 63.
  • the trigger 63 operates to evaluate instructions and data that are useful in setting conditions for routing by the router 64.
  • the execution unit 52 includes means for tracking and allocating resources and the use of resources by transaction initiators and other components of the e-commerce system.
  • a particular instruction sequence such as instruction sequence_ ⁇ , is allocated limited resources such as time for execution completion and maximum storage usage. If the resource limits are exceeded, the sequence is terminated or otherwise controlled.
  • TABLE 1 a code implementation for the storage unit 51 is provided where the instruction store 61 is provided in TABLE 2 and data store 62 is provided in TABLE 3, a code implementation for the execution unit 52 is provided where trigger 63 is provided in TABLE 4 and router 64 is provided in TABLE 5 and a code implementation for the TP interface 36 is provided in TABLE 6 as follows: TABLE 1 - 'TI Interface' Component Code
  • Gateway_Translation(); status_signal : Send (order, 'Transaction_Processor')
  • FIG. 7 depicts details of the services layer 32.
  • the services layer 32 includes a synchronization module 71, a fault tolerance module 72 , an administration module 73 and a security module 74.
  • the services layer 32 in one embodiment operates with heartbeat signals among active multiple processors 11 to determine which processors are up and at what capacity. Synchronization of databases in the data storage units 51 of different ones of the processors 11, in a simple case, is performed once per transaction so that each of the processors 11 is backed up by at least one of the other processors 11 for each transaction.
  • FIG. 8 depicts a three processor embodiment of the market engine 11 ' of FIG.
  • market engine 11 ' can include from 1 to CP processors where CP is any integer (in FIG. 3, CP equals 3). With multiple control processors 11 in the market engine 11', greater redundancy and reliability can be achieved than when a single control processor is employed for the market engine.
  • the control processors 11 of FIG. 8 are geographically remote (for example, located in California, New York and Japan) so that the market engine 11' is isolated from local environmental or other local conditions that might impair system operation.
  • the coordination among the multiple processors 11-1, 11-2 and 11-3 is carried out using the services 32 of FIG. 7. Code for communication among multiple control processors 11 is indicated in TABLE 1 through TABLE 6 by underlining.
  • each one of the control processors 11 operating as a primary control processor is backed up by at least one other (or both) of the other control processors.
  • primary processor 11-1 is backed up by processor 11-2
  • primary processor 11-2 is backed up by processor 11-3
  • primary processor 11-3 is backed up by processor 11-1.
  • Each backup processor maintains a complete duplicate of its primary processor through operation of the synchronization module 71.
  • the fault tolerance module 72 runs a "heart beat" program whereby the backup control processor monitors the operation of the primary control processor and, in the event of a primary processor failure or other determined condition, terminates primary operation of the primary processor and the backup processor assumes the primary processing functions previously the primary responsibility of the primary processor.
  • transactions initiated by a transaction initiator under the supervision of one primary control processor 11 of FIG. 8 are distributed to transaction processors under control of one or more other ones of the control processors 11.
  • a transaction with an order to buy a quantity X of shares of stock Y may partition X into three quantities of X/3 and distribute the order by routing to three different transaction processors each primarily serviced by a different control processor.
  • each of the transaction processors of FIG. 8 may operate as described in the "distribution embodiment" above, each of the control processors 11 of FIG. 8 may operate internally to distribute the three quantities X/3 over different transaction processors without necessity of operating through other ones of the control processors.
  • the market engine 11' like that described in connection with FIG. 1 and FIG. 2 is in close association with a transaction processor 12; for "internal" transaction processing as part of an integrated market engine 91.
  • the transaction processors 12 include one or more conventional (or non-conventional) exchanges.
  • the exchanges include, for example, conventional exchanges 24-1, ..., 24-EX, which are, for example, the New York Stock Exchange (NYSE), Chicago Mercantile Exchange, National Association of Securities Dealers Automated Quotation System (NASDAQ), and other similar exchanges.
  • the transaction processors include the alternative trading systems (ATS) and particularly, ATS 26-1, ..., 26- AT.
  • the transaction processors also include electronic communication networks (ECN) including the ECN 25-1, ..., 25-EC. Any number of other transaction processors 27 are possible in the transaction processors 12 of FIG.
  • the transaction processors 12 in FIG. 9 include data units for receiving or providing data relevant to transactions and these data units are designated as the data units 28-1, ..., 28-DA.
  • Such data units typically provide information about one or more of the other transaction processors such as the exchanges 24, ECNs 25 and the ATSs 26 but also can provide any other type of data such as weather data, company earnings, political and economic data and so forth.
  • the data units may store data, provide data for quotations and otherwise act in any capacity to serve or receive data of all types.
  • the transaction initiator 10 is shown as typical and includes, for example, users designated as the users 23 '-1, ..., 23'- US.
  • the close association of market engine 11' with the transaction processor 12/ forms the integrated market engine 91 that functions, for example, as "virtual ECN".
  • the integrated market engine 91 By having the common integration of the market engine 11' and the transaction processors 12/, crossings and other internal executions are performed by the integrated market engine 91. With such internal executions, great efficiency is achieved. For example, if compatible buy and sell transactions have been initiated, through transaction initiators, by common clients, the integrated market engine 91 crosses the buy and sell transactions without need to rout the transactions to other ones of the transaction processors 12.
  • the integrated market engine 91 has information about the availability of similar transactions and has other data from the e-commerce system 2 or any other data source.
  • Such information is used to ensure fairness or other desirability of completing the internal transactions and can be judged relative to information from the entire commerce system 2 or any other source. Fairness is promoted in the e-commerce system when the market engine 11 ' considers information based upon transactions from multiple transaction processors including, for example, at least one external transaction processor.
  • the e-commerce market information is available for consideration before internal crossing or other internal execution by the integrated market engine 91. Further, the internal crossings are transparent to the external transaction processors.
  • FIG. 9 the functional flow of information is shown by broken lines, while physical connections of the transaction initiators 10, market engine control processors
  • transaction processors 12 are generally through direct connections to the network 13 shown as solid lines.
  • FIG. 10 an extended e-commerce system is shown in which aggregators 92 are provided for distributing transactions for transaction processors in one or more groups of transaction processors 12'-G
  • the transaction processors in the groups 12'-G can include any of the transaction processors 12 of FIG. 2.
  • Any of the aggregators 92 can be a common booking facility provided by groups of companies having a common interest or can be an industry-wide facility mandated by government or established by mutual agreement.
  • Transactions in the system of FIG. 10 start with transaction initiators 10.
  • the transactions initiated by the transaction initiators 10 are supervised by market engine 11 ' by interaction among the transaction initiators 10 and the transaction processors 12 in transaction processor groups including the transaction processor groups 12'-1, ..., 12'-G.
  • the market engine 11' controls the routing of the initiated transactions from transaction initiators 10 to the transaction processor groups 12', as well as coordinating the gathering, storing and distributing of information useful for transaction supervision.
  • transaction initiators 10 logically connect to market engine 11' and to aggregators 92.
  • Aggregators 92 are, for example, centralized order books which operate for any subset of transaction processors that form a logical group, such as subset 12'-G
  • the market engme 11 ' logically connects to the transaction processor group 12'-1, connects to other transaction processors (not explicitly shown) and finally may or may not connect to the transaction processor group 12'-G (or may or may not connect to any subset thereof)
  • the control processors 11 collectively work to supervise all or a substantial number of the transactions initiated by the transaction initiators 10 and processed by the transaction processor groups 12'
  • the market engine 11 ' is able to maintain information about all of the transactions collectively as well as each of the individual transaction that are bemg processed m the e-commerce system 2 of FIG 10
  • the market engme 11' has knowledge of transactions and data available throughout the electromc system 2 including the aggregators 92 and transaction processor group 12'-G Such knowledge permits supervision which can be used to ensure fairness of transactions across the entire e-commerce system 2
  • transaction initiators 10 can be m any form and m particular can be of the form presently offered by vendors of alternative trading systems (ATS) or by other transaction processors
  • the transaction mterface code 35 (see FIG 5) operates, through any required gateway for protocol conversion, to convert the protocol of the transaction initiator into a protocol and format usable by the market engme 11' and its control processors 11
  • the Transaction Initiator Function m TABLE 8 operates mdependently to present transactions to a control processor in the market engine 11'.
  • the control processor functions to supervise the transaction as it is propagated and processed in the e-commerce system. Supervision of the transaction may rely on data stored into the control processor through the operation of the Data Unit Function in TABLE 8.
  • the Transaction Initiator Function, the Control Processor Function, the Data Unit Function and the Transaction Processor Function are all independent and each of them operates concurrently with the others for processing multiple sequences of instructions.
  • instruction sequence ⁇ the order in which the particular instructions are executed in the Control Processor Function is generally sequential.
  • details of the Control Processor Function are shown with a format which correlates with the Component Code as set forth in TABLE 1 ... TABLE 7.
  • the call 2.1.1 refers to the TI_Interface component code of TABLE 1. The first name is the calling component and thereafter within the parentheses appears the called component followed by the argument passed to the called component.
  • the interface looks for some operation of a transaction initiator indicated by ' Transactionjnitiator' that provides an argument 'manipulate sequence_ ⁇ '. As indicated in TABLE 1, the manipulation of sequence_ ⁇ may be to create, view, update or delete sequence_ ⁇ .
  • the call 2.1.1 senses what the manipulate sequence is and forwards it for storage in the instruction store 51 (see FIG. 6).
  • call 2.1.2 describes the operation of the instruction store 61 of FIG. 6 to receive the 'manipulate sequence ⁇ ' from the 'TI_Interface' and store it in instruction store 61. Additionally, call 2.1.2 may result in the instructions for 51 may also propagate the 'manipulate sequence_ ⁇ ' to other control processors, for example as described in connection with FIG. 8.
  • the execution of the propagate function depends upon the particular configuration of the market engine 11 '.
  • the particular rules for propagating instructions can be dependent upon the particular instructions, instructions uploaded from a transaction initiator and control code executing within the control processor 11. In a non-redundant or simple embodiment, the propagate function can be eliminated.
  • Call 2.1.2 sends an acknowledgment back to the 'Tl nterface'.
  • the call 2.1.3 returns the status obtained from the ' Sequence_Store' back to the transaction initiator.
  • the Instruction Manipulation of call 2.1 in TABLE 8 is a continuous process which is ongoing for all transaction initiators 10 (see FIG. 5) through the transaction interface 35.
  • the call 2.2 is the Condition Processing. Not all instructions necessarily require condition processing and hence call 2.2 can be ignored if the instruction to be executed by the call 2.3 is not a conditional instruction, for example, a market order for financial markets or any immediate transaction.
  • the Condition Processing of call 2.2 is as follows. In call 2.2.1, the Trigger
  • the call 2.2.1 checks to determine if the priority is correct in an embodiment such as FIG. 8 where multiple control processors are present and the operation is such that only one of the control processors 11 has priority to proceed, the particular one or more of the control processors having the correct priority will proceed in accordance with call 2.2.1 of TABLE 8. In TABLE 8, two calls may cause the instruction ⁇ to wake up.
  • the instruction store 61 may cause the trigger 63 to query for instructions and pass the result to the trigger 63.
  • the data store 62 may query aggregated data and pass the results to the trigger 63 and thence to the instruction store 51.
  • the query aggregated data function is controllable by the control processor 11 and the market engine 11'.
  • aggregated data is specified as any number of different aggregation algorithms such as the average price of a stock over a period of time, the volume at different times or under different conditions and any other kind of processed data that any transaction initiator might find useful in connection with supervising instruction processing.
  • call 2.2.2 in TABLE 8 causes the 'Trigger' to 'create active instance ofsequence_ ⁇ p '.
  • 1
  • the number of times that or the frequency which call 2.2.2 is permitted to create an active instance can be limited by instructions from the transaction initiators 10 or by internal operation of the market engine 11'. Depending on the configuration as described in connection with call 2.1.2, the active instance of the instructions ⁇ is propagated to other control processors. Finally, call 2.2.2 forwards an acknowledgment to the
  • the trigger 63 of FIG. 6 causes the 'Instruction_store' to send the 'status of create active instance of sequenceji ⁇ ' to the router 64 in FIG. 6 for execution.
  • the call2.3 is Instruction Execution.
  • the router 64 of FIG. 6 operates to execute instructions initiated by the 'Trigger'.
  • the instruction store 51 passes to the router 64, a command to 'query for instructions' .
  • the Data_Store 62 causes the Router to ' query aggregated data' and the Router sends to the 'Data_Store' the 'results of data query'.
  • the Instruction Store causes the 'Router' to 'mark instruction as done' and the Router sends to the 'Instruction_Store' the 'status of marking as done'.
  • the Data_Store causes the 'Router' to 'store latest transaction history' and the Router sends to the 'Data Store' the 'status of aggregated data update'.
  • the TT_Interface causes the 'Router' to 'request acknowledgment/upgrade' andthe Router sends to the ' ⁇ lnterface' the'user acknowledgment', if any.
  • the TP Interface causes the 'Router' to execute the instruction by a ' place/cancel/negotiate order' and the Router sends to the 'TP_Interface' an 'order update' and sends status to the Router.
  • T ⁇ gger ('Instruction Store', 'results of query') 2 2 1 2 Data_Store ('T ⁇ ggers' , 'query aggregated data') ⁇ T ⁇ gger ('Data_Store', 'results of data query')
  • sequence ⁇ of TABLE 8 is further explained with reference to examples of specific sequences.
  • a first example, ⁇ l is explained where the sequence is given in the following TABLE 9.
  • the THRESHOLD can be determined by further analysis of the data in data store 62. For example, the THRESHOLD can be determined as a function of the price of another security.
  • a "parallel submission" embodiment is useful for closed book and partially closed book markets.
  • a transaction for example, to buy or sell
  • a transaction is submitted concurrently under control of the market engine 11' to multiple transaction processors 12 in the FIG. 1, FIG. 2, FIG. 9 or FIG. 10 systems.
  • transaction processors 12 operate to request approval of the transaction initiator 10 before completion of processing, only selected ones of the parallel submissions are approved by the transaction initiator 10 (the selected ones are those with acceptable terms or most favorable terms).
  • a transaction is submitted sequentially, at electronic speeds, to multiple transaction processors. If the submission does not terminate with a completed transaction under predefined conditions, such as within a specified time, the submission is canceled.
  • the submission is made, for example, to one or more of the ECN transaction processors 25 and/or one or more of the ATS transaction processors 26 (See FIG. 2 or FIG. 9).
  • the sequence in which the transactions are submitted to transaction processors is under the control of the market engine 11' and, in certain embodiments, can be determined as a result of submission of instructions by transaction initiators 10 (see FIG. 2).
  • a "round-robin" sequence is used in the following example.
  • the open-book prices are examined to determine an open- book price. Then, a submission price lower lhan the open-book price is submitted to closed-book transaction processors. If the lower submission price is accepted at any of the closed book transaction processors, then a better-than-open-book price is obtained. If the lower submission price is not accepted at any of the closed book transaction processors, then another 'round-robin' submission at a somewhat higher submission price, still lower than the open-book price can be initiated or other action or no action can be taken.
  • Some transaction processors may permit withdrawal of transactions within a time period before crossing or otherwise operate with a protocol that ensures that the number of transactions that get completed at any ones of the transaction processors will not exceed the transaction initiators willingness to go forward with the transactions.
  • the market engine 1 1' can be tailored to provide submission algorithms in accordance with those rules. Hence, the operation of the market engine 11' allows for programmable and controllable submissions for each transaction processor without violating the rules of submission for any transaction processor.
  • a transaction initiated by a transaction initiator 10 is directed to both control processor 11-1 and control processor 11-2 in FIG. 8.
  • the transaction initiation may go serially to the first control processor 11-1 and control processor 11-1 may in turn route the transaction to the second control processor 11-2 and concurrently to a particular one of the transaction processors 12, for example, ATS 26-1 in FIG. 2.
  • control processor 11-2 may also route the same transaction (with the same transaction ID) to the same transaction processor, that is, ATS 26-1 in FIG. 2.
  • the first one of the copies of the transaction to arrive at the ATS 26-1 will be the one that is crossed, if possible, and thereafter any subsequent submission of an additional copy of the transaction will be ignored or rejected by ATS 26-1.
  • this "dual submission" mode of operation there is higher reliability since there is higher probability that the transaction will be completed by the ATS 26-1 regardless of potential failure or degradation of the control processor 11 - 1 , the control processor 11-2 or any of the particular communication links associated with the control processors 11-1 and 11-2.
  • Such high reliability operation in some embodiments is offered as a service to transaction initiators and may warrant a higher charge based on the transaction initiators demand for higher reliability.
  • the market engine pools the two orders and buys the full 100 from TP_1 at $3.
  • the market engine 11' provides great flexibility in the supervision of transactions and their routing and submission to transaction processors. With this flexibility, the market engine 11' has a tendency and capacity to overcome the fragmentation of the e- commerce market 2 represented by all of the transaction processors 12 in FIG. 2.

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

An e-commerce system for electronic transactions having one or more transaction initiators for initiating transactions, transaction processors for processing transactions, networks for interconnecting the transaction initiators and the transaction processors and a market engine for supervising transactions among the transaction initiators and the transaction processors by considering information gathered over the entire e-commerce system.

Description

TITLE
ELECTRONIC SYSTEMS WITH SUPERVISION OF TRANSACTIONS AMONG TRANS ACTION INITIATORS AND TRANSACTION PROCESSORS
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
BACKGROUND OF THE INVENTION
The present invention relates to the field of electronic commerce (e-commerce) and particularly to electronic systems for supervising transactions among multiple transaction initiators and multiple transaction processors in capital and other e- commerce markets.
Historically, capital markets have played an important role in the U.S. economy. Worldwide changes in market structures are spawning new financial services and new markets. In order for new markets to flourish, investors and other users must have confidence that their orders to purchase and sell will be executed quickly and fairly. Efficiency and fairness have existed in U. S . capital markets, in part, due to the forces of competition among rival trading systems. Trading systems include, for example, national, regional and on-line exchanges (online exchanges include, for example, e-Bay and Amazon, com), broker-dealer firms, broker-dealer trading systems, also known as alternative trading systems (ATS) and which can be for over-the-counter markets for auction markets or for other markets. New technologies are evolving to satisfy customer demands for new and less expensive financial and other services delivered with fairness and efficiency. Alternative trading systems (ATS) have an increasing presence in the securities markets. Examples of alternative trading systems include Instinet, Optimark, Attain, Archipelago, Island, Posit and the Arizona Stock Exchange. Dramatic growth in the number of alternative trading systems and in the volume of securities traded by alternative trading systems have permitted companies to offer faster, less expensive and more flexible ways for investors to trade. This growth has evolved as a result of developments in electronic technology and the growth has been accelerated by the inability of conventional regulated exchanges to satisfy the changing needs of the marketplace. Although securities industry professionals and institutional investors generally have been the principal users of alternative trading systems, future systems will extend to all segments of the marketplace.
The ability to create and trade new derivatives enables companies to develop products in a tailored manner. However, derivatives introduce a new level of complexity for smaller investors that has previously only been the province of sophisticated institutional investors. Other new developments will spawn many new products that will require more flexibility while having a capacity for greater complexity.
With new products and trading systems, there is a need to ensure that the markets are properly administered, provide accurate prices and offer adequate capacity and access while preserving the benefits of a competitive market structure that enhances market liquidity, transparency, anonymity and efficiency. The new products and trading systems must not compromise the need for a stable environment that minimizes market disruption.
Alternative trading systems are now regulated in the U. S. by the Securities andExchange Commission (SEC). Under U.S. regulations, alternative trading systems can choose whether to be treated as "exchanges" or as "broker-dealers". Alternative trading systems registered with the SEC as exchanges have a need to ensure that participants comply with securities laws. Such laws may exempt from exchange regulation internal order management systems and systems that allow customers to trade solely against a dealer's inventory. Alternative trading systems registered with the
SEC as broker-dealers may require, for example, regular reports, audit trails of transactions, links with a registered market, public display of quotes and orders while providing fair access to the markets.
The proliferation of new trading systems in the U. S . and throughout the world, while expanding markets, also has the effect of fragmenting the e-commerce market as each company attempts to create a proprietary system that sequesters particular market segments. These developments are rendering conventional trading systems and exchanges obsolete and creating a demand for new systems that are better able to meet the demands of the market place.
In accordance with the above background, there is a need for improved e- commerce systems that meet the demands of the market place and particularly systems that have architectures for integrating the market fragments that are being created in the e-commerce market place.
SUMMARY OF THE INVENTION The present invention is an e-commerce system for electronic transactions using transaction initiators for initiating transactions, transaction processors for processing transactions, networks for interconnecting the transaction initiators and the transaction processors and a market engine for supervising transactions among the transaction initiators and the transaction processors. The market engine supervises transactions based on information gathered from transaction processors over the entire e-commerce system.
The market engine includes a logical control for controlling the routing of transactions among the transaction initiators and said transaction processors by executing routing instructions. The logical control includes storage for storing the routing instructions and an execution unit for executing the routing instructions.
The use of sequences of instructions in the logical control permits real-time decisions and processing of high complexity using data gathered from the entire e- commerce system. The e-commerce system through operation of the market engine has high connectivity, great flexibility and superior adaptability. The market engine operates to supervise transactions and their routing and submission to transaction processors and thus operates to overcome the fragmentation of the e-commerce market represented by many diverse transaction processors.
In one embodiment, the market engine has a close association with a transaction processor for providing "internal" transaction processing in an integrated market engine. By having an market engine integrated with a transaction processor, internal crossings and other internal executions are performed efficiently. Further, because the market engine has knowledge of external data about similar transactions and has other external data available, the integrated market engine does not make decisions in a vacuum without reference to the entire e-commerce system. Such external knowledge about the e-commerce system is used to ensure fairness of internal transactions as measured across the entire e-commerce system. Particularly, internal crossings can be determined as fair in relationship to possible external crossings. Additionally, the internal crossings are fair in a manner that is or can be transparent to the external transaction processors. Fairness is promoted when the market engine considers information about internal transactions based upon transactions from at least one external transaction processor.
In another embodiment, an extended e-commerce system is provided that includes aggregators for distributing transactions for groups of transaction processors. Aggregators can be common booking facilies provided by groups of companies having a common interest or can be an industry-wide facility mandated by government or established by mutual agreement.
The foregoing and other objects, features and advantages of the invention will be apparent from the following detailed description in conjunction with the drawings.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 depicts an e-commerce system having a market engine for supervising and integrating the operations of multiple transaction initiators and multiple transaction processors.
FIG. 2 depicts the e-commerce system of FIG. 1 where the transaction initiators include users and brokers and transaction processors include different exchanges, data units and other units.
FIG. 3 depicts a control processor used in the market engine of the e- commerce systems of FIG. 1 and FIG. 2. FIG. 4 depicts a dual control processor embodiment of the market engine of FIG. 1.
FIG. 5 depicts further details all the control processor of FIG. 3.
FIG. 6 depicts further details of the logical control in the control processor of FIG. 5. FIG. 7 depicts further details of the services layer in the FIG. 3 control processor.
FIG. 8 depicts a three control processor embodiment of the market engine of FIG. 1.
FIG. 9 depicts an e-commerce system having an integrated market engine and an internal transaction processor.
FIG. 10 depicts an e-commerce system having a market engine and aggregators.
DETAILED DESCRIPTION OF THE INVENTION E-commerce System - FIG. 1 FIG. 1 depicts an e-commerce system 2 for performing e-commerce transactions using electronic networks 13. Such e-commerce transactions include, for example, buying, selling, negotiation, crossing, and analysis and relates to electronic instruments (such as stocks and bonds), foreign currency, commodities, derivatives, books, insurance, real estate, information and any other "entity" having value. The networks 13 include any electronic network such as the Internet, wide area networks
(WAN), local area networks (LAN), public switched telephone networks (PSTN), wireless networks and any other type of public or private network and any combination thereof. Transactions in the system of FIG. 1 start with transaction initiators 10, including the transaction initiators 10-1, ..., 10-TI. The transactions initiated by the transaction initiators 10 are supervised by market engine 11' which includes one or more control processors 11 designated as 11-1, ..., llc;,, ..., 11 -CP. The control processors 11 supervise interaction among the transaction initiators 10 and the transaction processors 12, control the routing of the initiated transactions from transaction initiators 10 to the transaction processors 12, as well as coordinating the gathering, storing and distributing of information useful for transaction supervision.
Each of the transaction initiators 10- 1 , ... , 10-TT, each of the control processors 11-1, ..., 11 -CP, and each of the transaction processors 12-1, ..., 12-TP, directly connect to the networks 13. The direct connection of the transaction initiators 10, the control processors 11 and the transaction processors 12 are shown in FIG. 1 by solid lines (with double arrowheads). While the interconnection of each of the transaction initiators 10, the control processors 11 and the transaction processors 12 is through the networks 13 , the logical connection of transaction routing is shown in FIG. 1 by broken lines (with double arrowheads). In FIG. 1, transaction initiator 10-1 logically connects to control processor 11-1, connects to other control processors (not explicitly shown) and connects to control processor 11 -CP (or connects to any subset thereof). Similarly, the transaction initiator 10-TT logically connects to the control processor 11-1, connects to other control processors (not explicitly shown) and finally connects to the control processor 11-CP (or connects to any subset thereof). In a similar manner, the control processor 11-1 logically connects to the transaction processor 12-1, connects to other transaction processors (not explicitly shown) and finally connects to the transaction processor 12-TP (or connects to any subset thereof). The control processor 11 -CP logically connects to the transaction processor 12-1, potentially logically connects to other transaction processors (not explicitly shown) and logically connects to the transaction processor 12-TP (or connects to any subset thereof).
In the FIG. 1 system, the control processors 11 collectively work to supervise all or a substantial number of the transactions initiated by the transaction initiators 10 and processed by the transaction processors 12. In this manner, the market engine 11' is able to access and maintain information about all of the transactions collectively as well as each of the individual transaction being processed in the FIG. 1 e-commerce system. Where high reliability in transaction handling is required, the connection of transaction initiators 10 to more than one of the control processors 11 ensures high reliability and high availability in the operation of the FIG. 1 system. In the FIG. 1 system, connections between transaction initiators 10, control processors 11 and transaction processors 12 connect through networks 13, but it is to be understood that such network connections 13 can include direct connections between particular control processors 11 and particular transaction processors 12, between particular control processors 11 and particular transaction initiators 10, and between particular transaction initiators 10 and particular transaction processors 12. Regardless as to the actual connections, the market engine 11' receives information from all, or a significant subset, of the transaction initiators 10 and transaction processors 12 so that market engine 11' is able to supervise the routing of transactions in the e-commerce system of FIG. 1 based upon an overview of the e-commerce system 2.
Broker/Exchange Systems - FIG. 2
In FIG. 2, an embodiment of the FIG. 1 system is shown in which the transaction processors include one or more conventional (or non-conventional) exchanges. The exchanges include, for example, conventional exchanges 24-1, ..., 24- EX, which are, for example, the New York Stock Exchange (NYSE), Chicago Mercantile Exchange, National Association of Securities Dealers Automated Quotation
System (NASDAQ), and other similar exchanges. In the FIG 2 embodiment, the transaction processors include the alternative trading systems (ATS) and particularly, ATS 26-1, ..., 26-AT. The transaction processors also include electronic communication networks (ECN) including the ECN 25-1, ..., 25-EC. Any number of other transaction processors 27 are possible in the transaction processors 12 of FIG. 2, and these are generically indicated as the other transaction processors 27- 1 , ... , 27-OT. Other transaction processors include Clearing Houses for example. Some of the transaction processors 12 in FIG. 2 include data units for receiving or providing data relevant to transactions and these data units are designated as the data units 28-1, ..., 28-DA. Such data units typically provide information about one or more of the other transaction processors such as the exchanges 24, ECNs 25 and the ATSs but also can provide any other type of data such as weather data, company earnings, political and economic data and so forth. Also, the data units may store data, provide data for quotations and otherwise act in any capacity to serve or receive data of all types. In FIG. 2, the transaction initiators 10-1 include, for example, users 23 designated as the users 23-1 , ..., 23-US. Users 23 include the computers, terminals and other equipment and software useful for persons (individuals or companies) to electronically connect to an e-commerce system. Alternatively, the transaction initiators may be brokers 20 as indicated by broker 20'- 1 in the transaction initiator 10-TI. Brokers 20 include the computers, terminals and other equipment and software useful for persons (individuals or companies) acting as a broker for users to electronically connect to an e-commerce system. The broker 20'- 1 in transaction initiator 10-TI logically connects to users 23 such as users 23 '- 1 , ... , 23 '-US . The transaction initiators in FIG. 2, including transaction initiators 10-1, ..., 10-TI, can be of the user-only type of transaction initiator 10-1, can be of the broker-user type of transaction initiator 10-TI or can be of any other type. Any number of such transaction initiators of different types can be used in an electronic system of FIG. 2 for initiating electronic transactions. As additional examples, hierarchies of brokers, funds, institutions, users such as broker- broker, user-user, broker-broker-user-user in any depth or configuration can exist. In FIG. 2, the market engine 11 ' formed of the control processors 11 in FIG.
1 can have a close association with a broker 20-1 for servicing, for example, the transaction initiators 10-1 whereby the broker 20-1 is "internal" to the integrated market engine 11". Alternatively, the brokers such as broker 20'- 1 can be fully independent of the market engine control processors 11. In a similar manner, any one or more of the transaction processors 12 of FIG. 2, can also be closely associated with the market engine control processors 11 and hence be "internal" to the integrated market engine 11 '. The particular internal or external configuration of the different transaction initiators 10, including brokers or users, and the different transaction processors 12 with the market engine 11' is a matter of choice. Generally, "internal" units work efficiently together under common control without need for gateways or other protocol converters.
Regardless of the configuration, the market engine 11 ' and the control processors 11 are connected in common among all of the transaction initiators 10 and the transaction processors 12 that constitute the electronic system 2.
By having the common connection of the market engine control processors 11 to the transaction initiators 10 and transaction processors 12, supervision of all similar transactions that are processed in the electronic system 2 is possible. Such supervision can be used to ensure fairness of transactions across the entire commerce system 2. Fairness is promoted when the market engine 11' has access to and considers information based upon transactions from multiple transaction processors where one or more of the transaction processors are external transaction processors are external to the market engine 11 ' (or the integrated market engine 11 ").
In FIG. 2, the functional flow of information is shown by broken lines, while physical connections of the transaction initiators 10, market engine control processors 11 and transaction processors 12 are generally through direct connections to the network 13 as shown by solid lines.
Control Processor — FIG. 3
In FIG. 3, the logical partitioning of a typical control processor 1 lcp of control processors 11-1, ..., 11^, ..., 11-CP in FIG. 1 is shown. The control processor 11^ of FIG. 3 includes hardware 34 which is, for example, a Sun Ultra Sparc computer. The hardware 34 can encompass any computer system from small computers, such as standard PCs to large-scale computers, such as mainframes. Single and multiprocessor computers and single and multi-computer configurations can be employed. In FIG. 3, the operating system 33 is an operating system suitable for running on the hardware 34. In the case of the Sun Ultra Sparc computer, a Solaris operating system may be employed. In FIG. 3, the services layer 32 provides services, in addition to those provided by the standard operating system 33, both for functions within the control processor 1 lcp (including between multiple processors or computers that form a single control processor 11^) and for functions among other control processors 11, that is, among the control processors 11-1, ..., 1 lcp, ..., 11-CP in FIG. 1.
In FIG. 3, the control unit 31 includes the logical control software 38 and the interfaces 35, 36 and 37 for connecting between transaction initiators 10 and the transaction processors 12 of FIG. 1. The logical control 38, which controls the interaction among the transaction initiators 10 and the transaction processors 12, provides the supervision, including routing, of transactions throughout the e-commerce system 2 of FIG. 1 and FIG. 2. In one particular embodiment, the control unit 31 of FIG. 3 includes the TI interface 35 for connecting to the transaction initiators 10 in FIG. 1 , the TP interface 36 for connecting to the transaction processors 12 of FIG. 1. Further, as an extension of the TP interface 36, a DA interface 37 is provided for connecting to transaction processors which are the data units 28 of FIG. 2.
Plural Control Processors - FIG. 4
In FIG 4, two of the control processors 11 of FIG.3 are shown interconnected in a dual processor environment. The dual control processors 11, designated as 11-1 and 11-2, are interconnected by the services layers 32. Any architecture for high reliability and serviceability may be employed for the FIG. 4 configuration. For example, multiple control processors with clustering connectivity through the services layers 32 may be employed.
Control Processor - FIG. 5
In FIG. 5, further details of a typical control processors 1 lcp is shown together with transaction initiators 10 and transaction processors 12. The transaction processors 12 include the transaction processors 12-1, ... , 12-TP and additionally, transaction processors 12 include the data units 28-1, ... , 28-DA.
Control processor 1 lcp includes the logical control 38, the Η interface 35, the
DA interface 37 and the TP interface 36. The TI interface 35 includes the gateways 35-
1, ... , 35-Η. The DA interface 37 includes the gateways 37-1, ... , 37-DA. The TP interface 36 includes the gateways 36-1, ... , 36-TP. The gateways of FIG. 5 are included to provide protocol and other conversions that are necessary between the control processor 1 lcp, the transaction processors and the transaction initiators.
In FIG. 5, the control processor l lc;, includes the logical control 38. The logical control 38 connects to the interfaces 35, 36 and 37. The logical control 38 includes a storage unit 51 for storing supervising information including routing and other instructions and an execution unit 52 for executing routing and other instructions stored in the storage unit 5. Logical Control - FIG 6
In FIG. 6, the logical control 38 of a control processor 1 lcp is shown in further detail. The logical control 38 includes a storage unit 51 and an execution unit 52. The storage unit 51 includes, in one particular embodiment, an instruction store 61 and a data store 62. The instruction store 61 stores routing instructions which are executed by the execution unit 52. The data store 62 stores data values which are useful in connection with the execution by the execution unit 52.
In FIG. 6, the execution unit 52 includes a router 64 and a trigger 63. The router 64 processes routing instructions from the instruction store 51 and such instructions may involve use of data from the data store 62. The router 64 also receives inputs from the trigger 63. The trigger 63 operates to evaluate instructions and data that are useful in setting conditions for routing by the router 64.
The execution unit 52 includes means for tracking and allocating resources and the use of resources by transaction initiators and other components of the e-commerce system. In one example, a particular instruction sequence, such as instruction sequence_α, is allocated limited resources such as time for execution completion and maximum storage usage. If the resource limits are exceeded, the sequence is terminated or otherwise controlled.
Control Processor Code Implementation
With reference to the control processor 11 cp of FIG. 5 and FIG. 6, one example of a code implementation for the TI interface 35 is provided in TABLE 1, a code implementation for the storage unit 51 is provided where the instruction store 61 is provided in TABLE 2 and data store 62 is provided in TABLE 3, a code implementation for the execution unit 52 is provided where trigger 63 is provided in TABLE 4 and router 64 is provided in TABLE 5 and a code implementation for the TP interface 36 is provided in TABLE 6 as follows: TABLE 1 - 'TI Interface' Component Code
COPYRIGHT © 1999 MARKET ENGINE CORPORAΗON
Component TIJnterface (signal) { switch (signal, from) { case 'Transaction_Initiator': Gateway_Translation(); if (signal. content = 'user acknowledgement') then
Forward (signal, 'Router');
} else if (signal. content = 'initiate create/view/update/delete instructions') then
Forward (signal, 'Instruction Store);
} case 'Instruction_Store': if (signal. content = 'status of create/view/update/delete instructions') then
Gateway_Translation() ;
Forward (signal, 'Transaction_Initiator');
} case 'Router': if (signal. content = 'update of routing status') or (signal. content = 'request for acknowledgement') then Gateway Translationf ; Forward (signal, 'Transaction_Initiator'); }
} }
TABLE 2 - 'Instruction Store' Component Code
COPYRIGHT © 1999 MARKET ENGINE CORPORAΗON Component Instruction Store (signal) { switch (signal, from) { case 'TT Interface': if (signal. content = 'initiate create/view/update/delete instructions') then
// status_signal = 'status of create/view/update/delete request' status signal := Perform_Action (signal.content);
// varies depending on scheme
Propagate Changes 0:
Send (status signal, 'TTJnterface' |
'Trigger' I 'Router');
} case 'Trigger': if (signal.content = 'create active instance of instructions') then
// status_signal = 'status of creation of active instance' status signal := Perform Action
(signal.content);
// varies depending on scheme Propagate Changes 0; Send(status_signal, 'Trigger' | 'Router');
} else if (signal.content = 'query instructions/active instances') then
// query_result = 'results of initiated query' query_result := Perform_Action (signal.content); Send (query result, 'Trigger');
} case 'Router': if (signal.content = 'mark instructions instance as done') then
// status signal = 'status of marking of instruction instance' status_signal := Perform_Action (signal.content); // varies depending on scheme Propagate Changes O;
Send(status_signal, 'Router');
} else if (signal.content = 'query instructions/active instances') then // query result = 'results of initiated query' query result := Perform_Action (signal.content); Send (query result, 'Router');
TABLE 3 - 'Data Store' Component Code
COPYRIGHT © 1999 MARKET ENGINE CORPORAΗON Component Data Store (signal) { switch (signal.from) { case 'Trigger': if (signal.content = 'query aggregated data') then
// query_result = 'result of aggregated data query' query result := Perform Action (signal.content); a Send ('query external data', 'Data Unif); Send (query result, 'Trigger'); } case 'Router': if (signal.content = 'store latest transaction history') then // status signal = 'status of aggregated data update' status_signal := Perform Action (signal.content); // varies depending on scheme
Propagate Changes 0; Send(status_signal, 'Router' | 'Trigger');
} else if (signal.content = 'query aggregated data') then // query_result = 'result of aggregated data query' query result := Perform_Action (signal.content); Send (query_result, 'Router');
} case 'DS_Interface': if (signal, content = ' external data tick') then
// status_signal = 'status of storing data source data' status signal := Perform Action (signal.content); // varies depending on scheme Propagate Changes 0; Send(status_signal, 'DS_Interface' | 'Trigger' |
'Router');
} } }
TABLE 4 - 'Trigger' Component Code
COPYRIGHT © 1999 MARKET ENGINE CORPORAΗON Component Trigger (signal) { switch (signal. from) { case 'Data Store': if (signal.content = 'external data tick') then
Check ('which dormant instructions should be woken?'); a Send ('query instructions/active instances',
Instruction_Store') a Send ('query aggregated data', 'Data_S tore') if used a Send ('request for acknowledgment
'TI nterface');
// make sure only one Transaction Processor executes trigger
Check Priority 0; Send ('create active instance of instructions', 'Instruction Store');
} case 'Instruction_Store': if (signal.content = 'instance created successfully') then
Send ('trade according to instructions', 'Router'); }
TABLE 5 - 'Router' Component Code
COPYRIGHT © 1999 MARKET ENGINE CORPORAΗON Component Router (signal) { switch (signal. from) { case 'Trigger': if (signal.content = 'trade according to instructions') then Perform Action (signal.content); a Send (order, 'TP Interface') upon placing/canceling/negot. order a Send (update, 'Tl lnterface') whenever specified in instruction a Send (done, 'Instruction_Store') when instruction inst. is finished a Send (history, 'Data_Store') for each transaction for failure recovery a Send (acknowledgment, 'Η_Interface') as desired a Send ('query aggregated data', 'Data_Store') if used
} case 'Data_Store': if (signal.content = 'external data tick') then
Check ('which instructions are effected by this update?');
Update ('status of effected instructions + Data_Store'); } case 'TP_Interface': if (signal.content = 'order update') then
Check ('which instructions are effected by this update?'); Update ('status of effected instructions +
Data_Store');
} case 'Η lnterface': if (signal.content = 'user acknowledgment') then Check(' which instructions are effected by this update?);
Update ('status of effected instructions +
Data_Store');
} }
} TABLE 6 ~ 'TP Interface' Component Code
COPYRIGHT © 1999 MARKET ENGINE CORPORAΗON
Component TP Interface (signal) { switch (signal, from) { case 'Router': if (signal.content = 'place/cancel/negotiate order') then
// status signal = 'status of sending order placement/cancellation/neg. '
Gateway_Translation(); status_signal := Send (order, 'Transaction_Processor')
Send(status_signal, 'Router');
} case 'Transaction Processor': Gateway_Translation() ; if (signal.content = 'order update') then
Forward (signal, 'Router'); } } }
TABLE 7 - 'DS Interface' Component Code
COPYRIGHT © 1999 MARKET ENGINE CORPORAΗON
Component DS Interface (signal) { switch (signal.from) { case 'Data_Source': Gateway_Translation(); if (signal.content = 'external data tick') then Forward (signal, 'Data_Store');
} } }
Services Layer - FIG. 7
FIG. 7 depicts details of the services layer 32. The services layer 32 includes a synchronization module 71, a fault tolerance module 72 , an administration module 73 and a security module 74. The services layer 32 in one embodiment operates with heartbeat signals among active multiple processors 11 to determine which processors are up and at what capacity. Synchronization of databases in the data storage units 51 of different ones of the processors 11, in a simple case, is performed once per transaction so that each of the processors 11 is backed up by at least one of the other processors 11 for each transaction.
Control Processor - FIG. 8 FIG. 8 depicts a three processor embodiment of the market engine 11 ' of FIG.
1 including processors 11-1, 11-2 and 11-3. In general, market engine 11 ' can include from 1 to CP processors where CP is any integer (in FIG. 3, CP equals 3). With multiple control processors 11 in the market engine 11', greater redundancy and reliability can be achieved than when a single control processor is employed for the market engine. Typically, the control processors 11 of FIG. 8 are geographically remote (for example, located in California, New York and Japan) so that the market engine 11' is isolated from local environmental or other local conditions that might impair system operation. The coordination among the multiple processors 11-1, 11-2 and 11-3 is carried out using the services 32 of FIG. 7. Code for communication among multiple control processors 11 is indicated in TABLE 1 through TABLE 6 by underlining.
Different embodiments of the FIG. 8 system are capable of different operations to achieve availability and reliability of system operation. In one "buddy system" embodiment, each one of the control processors 11 operating as a primary control processor is backed up by at least one other (or both) of the other control processors.
For example, primary processor 11-1 is backed up by processor 11-2, primary processor 11-2 is backed up by processor 11-3 and primary processor 11-3 is backed up by processor 11-1. Each backup processor maintains a complete duplicate of its primary processor through operation of the synchronization module 71. The fault tolerance module 72 runs a "heart beat" program whereby the backup control processor monitors the operation of the primary control processor and, in the event of a primary processor failure or other determined condition, terminates primary operation of the primary processor and the backup processor assumes the primary processing functions previously the primary responsibility of the primary processor.
In a "distribution embodiment" of the FIG. 8 system, in addition to any redundancy and backup operations such as "buddy system" operation described above, transactions initiated by a transaction initiator under the supervision of one primary control processor 11 of FIG. 8 are distributed to transaction processors under control of one or more other ones of the control processors 11. For example, a transaction with an order to buy a quantity X of shares of stock Y may partition X into three quantities of X/3 and distribute the order by routing to three different transaction processors each primarily serviced by a different control processor.
While each of the transaction processors of FIG. 8 may operate as described in the "distribution embodiment" above, each of the control processors 11 of FIG. 8 may operate internally to distribute the three quantities X/3 over different transaction processors without necessity of operating through other ones of the control processors.
In general, the supervision of transactions including the routing of transactions to different transaction processors is under the logical control of the market engine 11' and that logical control can be implemented in many different ways as suggested by the examples above.
Integrated Market Engine System - FIG. 9
In FIG. 9, the market engine 11' like that described in connection with FIG. 1 and FIG. 2 is in close association with a transaction processor 12; for "internal" transaction processing as part of an integrated market engine 91.
In FIG. 9 and like the FIG. 1 system, the transaction processors 12 include one or more conventional (or non-conventional) exchanges. The exchanges include, for example, conventional exchanges 24-1, ..., 24-EX, which are, for example, the New York Stock Exchange (NYSE), Chicago Mercantile Exchange, National Association of Securities Dealers Automated Quotation System (NASDAQ), and other similar exchanges. In the FIG. 9 embodiment, the transaction processors include the alternative trading systems (ATS) and particularly, ATS 26-1, ..., 26- AT. The transaction processors also include electronic communication networks (ECN) including the ECN 25-1, ..., 25-EC. Any number of other transaction processors 27 are possible in the transaction processors 12 of FIG. 9, and these are generically indicated as the other processors 27- 1 , ... , 27-OT. Some of the transaction processors 12 in FIG. 9 include data units for receiving or providing data relevant to transactions and these data units are designated as the data units 28-1, ..., 28-DA. Such data units typically provide information about one or more of the other transaction processors such as the exchanges 24, ECNs 25 and the ATSs 26 but also can provide any other type of data such as weather data, company earnings, political and economic data and so forth. Also, the data units may store data, provide data for quotations and otherwise act in any capacity to serve or receive data of all types. In FIG. 9, the transaction initiator 10 is shown as typical and includes, for example, users designated as the users 23 '-1, ..., 23'- US.
In FIG. 9, the close association of market engine 11' with the transaction processor 12/ forms the integrated market engine 91 that functions, for example, as "virtual ECN". By having the common integration of the market engine 11' and the transaction processors 12/, crossings and other internal executions are performed by the integrated market engine 91. With such internal executions, great efficiency is achieved. For example, if compatible buy and sell transactions have been initiated, through transaction initiators, by common clients, the integrated market engine 91 crosses the buy and sell transactions without need to rout the transactions to other ones of the transaction processors 12. The integrated market engine 91 has information about the availability of similar transactions and has other data from the e-commerce system 2 or any other data source. Such information is used to ensure fairness or other desirability of completing the internal transactions and can be judged relative to information from the entire commerce system 2 or any other source. Fairness is promoted in the e-commerce system when the market engine 11 ' considers information based upon transactions from multiple transaction processors including, for example, at least one external transaction processor. The e-commerce market information is available for consideration before internal crossing or other internal execution by the integrated market engine 91. Further, the internal crossings are transparent to the external transaction processors.
In FIG. 9, the functional flow of information is shown by broken lines, while physical connections of the transaction initiators 10, market engine control processors
11 and transaction processors 12 are generally through direct connections to the network 13 shown as solid lines.
Extended e-Commerce System - FIG. 10
In FIG. 10, an extended e-commerce system is shown in which aggregators 92 are provided for distributing transactions for transaction processors in one or more groups of transaction processors 12'-G The transaction processors in the groups 12'-G can include any of the transaction processors 12 of FIG. 2. Any of the aggregators 92 can be a common booking facility provided by groups of companies having a common interest or can be an industry-wide facility mandated by government or established by mutual agreement.
Transactions in the system of FIG. 10 start with transaction initiators 10. The transactions initiated by the transaction initiators 10 are supervised by market engine 11 ' by interaction among the transaction initiators 10 and the transaction processors 12 in transaction processor groups including the transaction processor groups 12'-1, ..., 12'-G. The market engine 11' controls the routing of the initiated transactions from transaction initiators 10 to the transaction processor groups 12', as well as coordinating the gathering, storing and distributing of information useful for transaction supervision.
While the interconnection of each of the transaction initiators 10, the market engine 11' and the transaction processor groups 12' is through the networks 13, the logical connection of transaction routing is shown in FIG. 10 by broken lines (with double arrowheads). In FIG. 10, transaction initiators 10 logically connect to market engine 11' and to aggregators 92. Aggregators 92 are, for example, centralized order books which operate for any subset of transaction processors that form a logical group, such as subset 12'-G In FIG 10, the market engme 11 ' logically connects to the transaction processor group 12'-1, connects to other transaction processors (not explicitly shown) and finally may or may not connect to the transaction processor group 12'-G (or may or may not connect to any subset thereof)
In the FIG 10 system, the control processors 11 collectively work to supervise all or a substantial number of the transactions initiated by the transaction initiators 10 and processed by the transaction processor groups 12' In this manner, the market engine 11 ' is able to maintain information about all of the transactions collectively as well as each of the individual transaction that are bemg processed m the e-commerce system 2 of FIG 10 By having the market engine 11 ' logically connected to the aggregators 92, the market engme 11' has knowledge of transactions and data available throughout the electromc system 2 including the aggregators 92 and transaction processor group 12'-G Such knowledge permits supervision which can be used to ensure fairness of transactions across the entire e-commerce system 2
Operation
The operation of the market engme 's 11' formed of one or more control processors 11 is further descπbed in connection with the operation sequencmg of the following TABLE 8 In TABLE 8, the sequencmg is based upon (1) Transaction Initiator Function, (2) Control Processor Function, (3) Data Unit Function and (4)
Transaction Processor Function Each of the functions is processed, m one particular embodiment, m accordance with the Component Code previously set forth m the TABLE 1, , TABLE 7
The operation of transaction initiators 10 can be m any form and m particular can be of the form presently offered by vendors of alternative trading systems (ATS) or by other transaction processors Whatever the protocol and format of a particular transaction initiator, the transaction mterface code 35 (see FIG 5) operates, through any required gateway for protocol conversion, to convert the protocol of the transaction initiator into a protocol and format usable by the market engme 11' and its control processors 11 The Transaction Initiator Function m TABLE 8 operates mdependently to present transactions to a control processor in the market engine 11'. The control processor functions to supervise the transaction as it is propagated and processed in the e-commerce system. Supervision of the transaction may rely on data stored into the control processor through the operation of the Data Unit Function in TABLE 8.
In TABLE 8, the Transaction Initiator Function, the Control Processor Function, the Data Unit Function and the Transaction Processor Function are all independent and each of them operates concurrently with the others for processing multiple sequences of instructions. For any particular instruction sequence, for example instruction sequence α, the order in which the particular instructions are executed in the Control Processor Function is generally sequential. In TABLE 8, details of the Control Processor Function are shown with a format which correlates with the Component Code as set forth in TABLE 1 ... TABLE 7. For example, in 2.1 Instruction Manipulation, the call 2.1.1 refers to the TI_Interface component code of TABLE 1. The first name is the calling component and thereafter within the parentheses appears the called component followed by the argument passed to the called component. In the call 2.1.1 , the interface looks for some operation of a transaction initiator indicated by ' Transactionjnitiator' that provides an argument 'manipulate sequence_α'. As indicated in TABLE 1, the manipulation of sequence_α may be to create, view, update or delete sequence_α. The call 2.1.1 senses what the manipulate sequence is and forwards it for storage in the instruction store 51 (see FIG. 6).
In TABLE 8, the call 2.1.2 describes the operation of the instruction store 61 of FIG. 6 to receive the 'manipulate sequence α' from the 'TI_Interface' and store it in instruction store 61. Additionally, call 2.1.2 may result in the instructions for 51 may also propagate the 'manipulate sequence_α' to other control processors, for example as described in connection with FIG. 8. The execution of the propagate function depends upon the particular configuration of the market engine 11 '. The particular rules for propagating instructions can be dependent upon the particular instructions, instructions uploaded from a transaction initiator and control code executing within the control processor 11. In a non-redundant or simple embodiment, the propagate function can be eliminated. Call 2.1.2 sends an acknowledgment back to the 'Tl nterface'.
In TABLE 8, the call 2.1.3 returns the status obtained from the ' Sequence_Store' back to the transaction initiator. The Instruction Manipulation of call 2.1 in TABLE 8 is a continuous process which is ongoing for all transaction initiators 10 (see FIG. 5) through the transaction interface 35.
In TABLE 8, the call 2.2 is the Condition Processing. Not all instructions necessarily require condition processing and hence call 2.2 can be ignored if the instruction to be executed by the call 2.3 is not a conditional instruction, for example, a market order for financial markets or any immediate transaction. When conditions are present, the Condition Processing of call 2.2 is as follows. In call 2.2.1, the Trigger
63 (see component code of TABLE 4) queries the 'Data Store' looking for necessary data to assist in the condition processing. A ' data tick' is some change in the particular data in the data store 62 of FIG. 6 which is to be observed by the trigger 63. Assuming that 'sequence_α' is opened to be processed as a result of the 'data tick', the call 2.2.1 checks to determine if the priority is correct in an embodiment such as FIG. 8 where multiple control processors are present and the operation is such that only one of the control processors 11 has priority to proceed, the particular one or more of the control processors having the correct priority will proceed in accordance with call 2.2.1 of TABLE 8. In TABLE 8, two calls may cause the instruction α to wake up. In call 2.2.1.1 , the instruction store 61 may cause the trigger 63 to query for instructions and pass the result to the trigger 63. Alternatively, the data store 62 may query aggregated data and pass the results to the trigger 63 and thence to the instruction store 51. The query aggregated data function is controllable by the control processor 11 and the market engine 11'. For example, aggregated data is specified as any number of different aggregation algorithms such as the average price of a stock over a period of time, the volume at different times or under different conditions and any other kind of processed data that any transaction initiator might find useful in connection with supervising instruction processing. Upon the existence of a data tick and the wake up of sequence α, call 2.2.2 in TABLE 8 causes the 'Trigger' to 'create active instance ofsequence_θp'. The first time the active instance is created, β equals 1. Ifsubsequent instances are opened by the operation of call 2.2.2, then β equal 2, 3, ..., and so on. The number of times that or the frequency which call 2.2.2 is permitted to create an active instance can be limited by instructions from the transaction initiators 10 or by internal operation of the market engine 11'. Depending on the configuration as described in connection with call 2.1.2, the active instance of the instructions α is propagated to other control processors. Finally, call 2.2.2 forwards an acknowledgment to the
'Trigger'.
In call 2.2.3, the trigger 63 of FIG. 6 causes the 'Instruction_store' to send the 'status of create active instance of sequencejiβ' to the router 64 in FIG. 6 for execution. InTABLE 8, the call2.3 is Instruction Execution. Under call 2.3.1, the router 64 of FIG. 6 operates to execute instructions initiated by the 'Trigger'. In the call 2.3.1.1, the instruction store 51 passes to the router 64, a command to 'query for instructions' . In call 2.3.1.2, the Data_Store 62 causes the Router to ' query aggregated data' and the Router sends to the 'Data_Store' the 'results of data query'. In call 2.3.1.3, the Instruction Store causes the 'Router' to 'mark instruction as done' and the Router sends to the 'Instruction_Store' the 'status of marking as done'. In call 2.3.1.4, the Data_Store causes the 'Router' to 'store latest transaction history' and the Router sends to the 'Data Store' the 'status of aggregated data update'. In call 2.3.1.5, the TT_Interface causes the 'Router' to 'request acknowledgment/upgrade' andthe Router sends to the 'Η lnterface' the'user acknowledgment', if any. In call 2.3.1.6, the TP Interface causes the 'Router' to execute the instruction by a ' place/cancel/negotiate order' and the Router sends to the 'TP_Interface' an 'order update' and sends status to the Router.
TABLE 8 — Instruction Sequencing COPYRIGHT © 1999 MARKET ENGINE CORPORAΗON
1 Transaction Initiator Function
2 Control Processor Function
2.1 Instruction Manipulation 2 1 1 TI_Interface ('Transaction lnitiator' , 'manipulate sequence α')
→ forwarded to 'Instruction_Store' 2 1 2 Instruction Store ('TI_Interface' , 'manipulate sequence α') — ► instruction stored + propagate + forwarded acknowledgment to 'Tl nterface'
2 1 3 TI_Interface ('Instruction Store' , 'status of create sequence α') → forwarded to 'Transaction lnitiator'
2.2 Condition Processing 2 2 1 Tπgger ('Data_Store' , 'data tick')
— ► Sequence α A wake up, if priority correct, by
2 2 1 1 Instruction_Store ('Trigger', 'query for instructions')
-* Tπgger ('Instruction Store', 'results of query') 2 2 1 2 Data_Store ('Tπggers' , 'query aggregated data') Tπgger ('Data_Store', 'results of data query')
→ forward to 'Instruction_Store' 2 2 2 Instruction Store ('Tπgger' , 'create active mstance of sequence oiβ')
→ create active mstance + propagate + forward acknowledgment to 'Tπgger'
2 2 3 Tπgger ('Instruction Store' , 'status of create active mstance of sequence ap') → forward to 'Router'
2.3 Instruction Execution 2 3 1 Router ('Tπgger' , 'trade according to of sequence_ctp') 2.3.1.1 Instruction_Store ('Router', 'query for instructions') — ► Router ('Instruction s tore', 'queryforinstructions')
2.3.1.2 Data Store ('Router', 'query aggregated data') → Router ('Data Store', 'results of data query')
2.3.1.3 Instruction_Store ('Router', 'mark instruction as done')
→ Router ('Instruction Store', 'status of marking as done')
2.3.1.4 Data_Store ('Router', 'store latest transaction history') — ► Router ('Data Store', 'status of aggregated data update')
2.3.1.5 Tl lnterface ('Router', 'request acknowledgment/upgrade')
2.3.1.6 — ► Router ('Η lnterface', 'user acknowledgment') if any
2.3.1.7 TP_Interface ('Router', 'place/cancel/negotiate order') → Router ('TP Interface', 'order update') + status to
Router
3 Data Unit Function
4 Transaction Processor Function
Sequence Examples
The instruction sequencing for a typical sequence, sequence α, of TABLE 8 is further explained with reference to examples of specific sequences. A first example, α=l is explained where the sequence is given in the following TABLE 9. TABLE 9 ~ Sequence_α=l Buy at the best price a quantity X of symbol Y in all open books. If the best price is the same in multiple open book pools, preference the lowest latency pool based on an examination of the historical records for the examined multiple open book pools. Do not ask the transaction initiator for further acknowledgment.
Instruction sequencing of the TABLE 9 sequence commences when the transaction initiator initiates the sequence in the TABLE 8 Transaction Initiator Function. In the Control Processor Function, the sequence_α=l is stored ready for processing by the sub-calls of call 2.1.
In the sub-calls of the Condition Processing (2.2 ), an active instance of sequence_α=l is created after examination of the conditions of "best price" stored in the data store. If the data store shows that the "best price" is the same at multiple transaction processors, then the query of aggregated data is made to determine which transaction processor (among the transaction processors having open book pools) which has the lowest latency. When the lowest latency is found (assuming that more than one transaction processor offered the best price), the trigger passes the sequence_α= 1 to the call 2.1 of TABLE 8 for execution by routing to the transaction processor having the lowest latency. Since no further acknowledgment is required by sequence_α= 1 , the call 2.1.3.6 of TABLE 8 is not required and the buy order is placed and status is reported in call 2.3.1.7 of TABLE 8.
A second example, α=2 is explained where the sequence is given in the following TABLE 10. TABLE 10 - Sequence_α=2 Sell a quantity X of symbol Y on two selected transaction processors when price of Y exceeds THRESHOLD on both selected transaction processors, then split and distribute order to the selected transaction processors with quantities each ofX/2. Do not ask the transaction initiator for further acknowledgment.
Instruction sequencing of the TABLE 10 sequence commences when the transaction initiator initiates the sequence in the TABLE 8 Transaction Initiator Function. In the Control Processor Function, the sequence_α=2 is stored ready for processing by the sub-calls of call 2.1.
In the sub-calls of the Condition Processing (2.2 ), an active instance of sequence_α=2 is created after examination of the condition of price Y being greater than THRESHOLD is found to be stored in the data store for at least two transaction processors, each with sufficient capacity to deliver quantity X/2. The THRESHOLD can be determined by further analysis of the data in data store 62. For example, the THRESHOLD can be determined as a function of the price of another security. When the price condition at the quantity is found, the trigger passes the sequence_α=2 to the call 2.1 of TABLE 8 for execution by routing to two transaction processors that satisfy the conditions. Since no further acknowledgment is required by sequence_α=2, the call
2.1.3.6 of TABLE 8 is not required and the buy order is placed at both transaction processors and status is reported in call 2.3.1.7 of TABLE 8.
A third example, α=3 is explained where the sequence is given in the following TABLE 11. TABLE 11 - Sequence_α=3 Sell a to-be-determined quantity, QUANTITY, of symbol Yon any transaction processor when price of Y exceeds THRESHOLD and split and distribute order to transaction processors with quantities each of QUANΉTΎ/2. Ask the transaction initiator for value of QUANTITY before placing the order. When QUANTITY specified, place order.
Instruction sequencing of the TABLE 1 1 is like the processing of TABLE 10 until the call 2.1.3.6 is reached. Since further acknowledgment is required by sequence_α=3, the call 2.1.3.6 of TABLE 8 is required to obtain from the transaction initiator further acknowledgment before placing the order. After obtaining the acknowledgment, the buy order is placed at both transaction processors and status is reported in call 2.3.1.7 of TABLE 8.
Further Examples And Embodiments A "parallel submission" embodiment is useful for closed book and partially closed book markets. In the "parallel submission" embodiment, a transaction (for example, to buy or sell) is submitted concurrently under control of the market engine 11' to multiple transaction processors 12 in the FIG. 1, FIG. 2, FIG. 9 or FIG. 10 systems. In an environment where transaction processors 12 operate to request approval of the transaction initiator 10 before completion of processing, only selected ones of the parallel submissions are approved by the transaction initiator 10 (the selected ones are those with acceptable terms or most favorable terms).
In an environment where transaction processors 12 do not operate to request approval before completion of processing, other submission algorithms are employed. For example, a "round-robin submission" is particularly useful in closed book markets.
In the "round-robin submission" embodiment, a transaction is submitted sequentially, at electronic speeds, to multiple transaction processors. If the submission does not terminate with a completed transaction under predefined conditions, such as within a specified time, the submission is canceled. The submission is made, for example, to one or more of the ECN transaction processors 25 and/or one or more of the ATS transaction processors 26 (See FIG. 2 or FIG. 9). The sequence in which the transactions are submitted to transaction processors is under the control of the market engine 11' and, in certain embodiments, can be determined as a result of submission of instructions by transaction initiators 10 (see FIG. 2). A "round-robin" sequence is used in the following example. In an environment where open-book prices are available, the open-book prices are examined to determine an open- book price. Then, a submission price lower lhan the open-book price is submitted to closed-book transaction processors. If the lower submission price is accepted at any of the closed book transaction processors, then a better-than-open-book price is obtained. If the lower submission price is not accepted at any of the closed book transaction processors, then another 'round-robin' submission at a somewhat higher submission price, still lower than the open-book price can be initiated or other action or no action can be taken.
Some transaction processors may permit withdrawal of transactions within a time period before crossing or otherwise operate with a protocol that ensures that the number of transactions that get completed at any ones of the transaction processors will not exceed the transaction initiators willingness to go forward with the transactions. Whatever the rules of submission are on behalf of any ones of the transaction processors, the market engine 1 1' can be tailored to provide submission algorithms in accordance with those rules. Hence, the operation of the market engine 11' allows for programmable and controllable submissions for each transaction processor without violating the rules of submission for any transaction processor.
While the above examples of the market engine 11' operation consider submission of transactions to multiple different transaction processors, another embodiment contemplates parallel submission to the same transaction processor through alternate and redundant pairs under control of separate control processors 11. For example, referring to FIG. 8, a transaction initiated by a transaction initiator 10 (see FIG. 2) is directed to both control processor 11-1 and control processor 11-2 in FIG. 8. The transaction initiation may go serially to the first control processor 11-1 and control processor 11-1 may in turn route the transaction to the second control processor 11-2 and concurrently to a particular one of the transaction processors 12, for example, ATS 26-1 in FIG. 2. Concurrently, control processor 11-2 may also route the same transaction (with the same transaction ID) to the same transaction processor, that is, ATS 26-1 in FIG. 2. Typically, according to the normal operating protocol for ATS 26- 1, the first one of the copies of the transaction to arrive at the ATS 26-1 will be the one that is crossed, if possible, and thereafter any subsequent submission of an additional copy of the transaction will be ignored or rejected by ATS 26-1. In this "dual submission" mode of operation, there is higher reliability since there is higher probability that the transaction will be completed by the ATS 26-1 regardless of potential failure or degradation of the control processor 11 - 1 , the control processor 11-2 or any of the particular communication links associated with the control processors 11-1 and 11-2. Such high reliability operation in some embodiments is offered as a service to transaction initiators and may warrant a higher charge based on the transaction initiators demand for higher reliability.
When multiple submissions are made, in addition to higher reliability, faster execution of transactions tends to occur to the benefit of the transaction initiator. The faster execution occurs, for example, because one of the multiple routs selected or one of multiple control processors may be slower than others due to system load, failure conditions or other delays in the e-commerce system. The faster submission among multiple duplicate submissions is the one that is actually executed. In an environment where transaction processors only displays quotes and where the market engine, however, has access to the full order book, then a pipelined embodiment is employed. For example, as shown in CHART 1 below, where sellers at transaction processor TP_1 quote 100 shares at $3 and sellers at transaction processor TP_2 quote 100 shares at $5, the apparent best buy based on quotes for 200 shares is 100 shares at $3 from TP_1 and 100 shares at $5 from TP_2. Such an apparent best buy is typical of the operation of SelectNet. However, the market engine of the present application examines the full order books on TP_1 and TP_2 and determines that a better execution can be achieved for buying 200 shares by buying 100 shares at $3 from TP_1 and 100 shares at $4 from TP_1. Such a buy can typically be executed before the $4 amount becomes available as a quote on TP_1.
Figure imgf000037_0001
In an embodiment where the quotes for TP 1 in CHART 1 are for all-or- nothing (AON) sales, where no one transaction initiator is requesting the full 100 share quantity and where ,and where two transaction initiators are each attempting to buy 50 each, the market engine pools the two orders and buys the full 100 from TP_1 at $3.
The above examples are only a few of the embodiments that are possible in accordance with the present invention. An important point to be realized is that the market engine 11' provides great flexibility in the supervision of transactions and their routing and submission to transaction processors. With this flexibility, the market engine 11' has a tendency and capacity to overcome the fragmentation of the e- commerce market 2 represented by all of the transaction processors 12 in FIG. 2.
While the invention has been particularly shown and described with reference to preferred embodiments thereof it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the invention.

Claims

CLAIMS 1. (Original). A system for electronic transactions comprising: one or more transaction initiators for initiating transactions, a plurality of transaction processors for processing transactions, network means for interconnecting the transaction initiators and the transaction processors, a market engine connected to said network means for supervising transactions among the transaction initiators and the transaction processors by considering information based upon transactions from two or more of said transaction processors.
2. (Original). The system of Claim 1 wherein said transaction initiator includes one or more brokers.
3. (Original). The system of Claim 1 wherein said transaction initiator includes one or more users.
4. (Original). The system of Claim 1 wherein said market engine includes, a logical control for controlling the routing of transactions among said transaction initiators and said transaction processors by executing routing instructions.
5. (Original). The system of Claim 4 wherein said logical control includes: storage means for storing routing instructions, execution means for executing said routing instructions.
6. (Original). The system of Claim 5 wherein said storage means includes an instruction store for storing instructions including said routing instructions and a data store for storing data.
7. (Original). The system of Claim 5 wherein said execution means includes a router and a trigger.
8. (Original). The system of Claim 7 wherein said trigger operates to determine conditions in connection with the execution of instructions and wherein said router supervises routing as a functions of said conditions.
9. (Original). The system of Claim 1 wherein said market engine is formed of one or more control processors, each control processor including, hardware computer means, an operating systems for running on said hardware computer means, control unit means operating to supervise said transactions.
10. (Original). The system of Claim 9 wherein said control unit means includes, a logical control for controlling the routing of transactions among said transaction initiators and said transaction processors by executing routing instructions.
11. (Original). The system of Claim 10 wherein said logical control includes: storage means for storing routing instructions, execution means for executing said routing instructions.
12. (Original). The system of Claim 11 wherein said storage means includes an instruction store and a data store.
13. (Original). The system of Claim 11 wherein said execution means includes a router and a trigger.
14. (Original). The system of Claim 9 wherein said market engine is formed of a plurality of said control processors and each of said control processors includes services means for providing services to interconnect said plurality of said control processors.
15. (Original). The system of Claim 14 wherein said services means for each plurality of said control processors includes synchronization, administration, fault tolerance and security modules.
16. (Original). The system of Claim 9 wherein said control unit means includes, a logical control for controlling the routing of transactions among said transaction initiators and said transaction processors by executing routing instructions and wherein said logical control operates for sequencing instructions based upon a Transaction Initiator Function, a Control Processor Function, a Data Unit Function and a Transaction Processor Function.
17. (Original). The system of Claim 16 wherein said Control Processor Function includes Instruction Manipulation calls, Condition Processing calls and Instruction Execution calls.
18. (Original). The system of Claim 1 wherein said transaction processors include a first one of said transaction processors and other of said transaction processors, wherein said first one of said transaction processors is integrated with said market engine to form an integrated market engine and wherein said other transaction processors are external to said market engine.
19. (Original). The system of Claim 1 wherein said transaction initiators include a first one of said transaction initiators and other of said transaction initiators, wherein said first one of said transaction initiators is integrated with said market engine to form an integrated market engine and wherein said other transaction initiators are external to said integrated market engine.
20. (Original). The system of Claim 19 wherein said first one of said transaction initiators is a broker.
21. (Original). The system of Claim 1 wherein said transaction processors include a first group of said transaction processors and said system includes an aggregator for distributing transactions for said first group of transaction processors.
22. (Original). The system of Claim 1 wherein said market engine is formed of one or more control processors, each control processor having control unit means operating to supervise said transactions, said control unit means including logical control means for controlling the routing of transactions among said transaction initiators and said transaction processors by executing routing instructions.
23. (Original). The system of Claim 22 wherein said routing instructions include instructions for redundantly routing said transactions through at least two of said control processors.
24. (Original). The system of Claim 22 wherein said routing instructions are loadable into said logical control means by said transaction initiators.
25. (Original). The system of Claim 22 wherein said routing instructions include instructions for providing different grades of reliability based upon the routing selected.
26. (Original). The system of Claim 22 wherein said routing instructions check information available in the system before completing sequences of instructions.
27. (Original). The system of Claim 22 wherein said routing instructions include instructions for multiple submission of a transaction to two or more transaction processors.
28. (Original). The system of Claim 21 wherein said routing instructions include instructions for redundantly routing particular ones of said transactions through at least two of said control processors.
29. (Original). The system of Claim 27 wherein said routing instructions rout said routing particular ones of said transactions to the same transaction processor.
30. (Original). The system of Claim 22 wherein said routing instructions split a particular one of said transactions from a transaction initiator for partial execution on each of two or more transaction processors whereby full execution is achieved using said two or more transaction processors.
31. (Original). The system of Claim 22 wherein said routing instructions combine particular ones of said transactions from two or more transaction initiators for full execution on a single transaction processors.
32. (Original). The system of Claim 22 wherein said routing instructions submit and withdraw transactions from transaction processors.
33. (Original). The system of Claim 22 wherein said routing instructions query a transaction initiator for an acknowledgment signal after initial submission of a transaction to a transaction processor whereby the transaction is not executed by the transaction processor absent the acknowledgment from the transaction initiator.
34. (Original). The system of Claim 22 wherein said routing instructions query quotes and order books for fulfilling transactions and select from order books as well as from quotes in connection with routing of transactions whereby second best transactions may be selected as well as quoted transactions.
35. (Original). The system of Claim 22 wherein said routing instructions check open- books to establish a submission criteria and provide a "round-robin" submission based on said criteria to closed-book transaction processors.
36. (Original). The system of Claim 22 wherein said routing instructions include sequences of instructions that track market history based upon analysis of trading across multiple transaction processors.
37. (Original). A system for electronic transactions comprising: one or more transaction initiators for initiating a transaction, a plurality of transaction processors for processing transactions, one or more networks for interconnecting the transaction initiators and the transaction processors, one or more control processors connected to said one or more networks for controlling the routing of transactions among said transaction initiators and said transaction processors, said control processors including, selection means for selecting a routing algorithm, routing control means for controlling the transaction routing based upon the selected algorithm.
38. (Original). A system for electronic transactions comprising: one or more transaction initiators for initiating transactions, a plurality of transaction processors for processing transactions, network means for interconnecting the transaction initiators and the transaction processors, a market engine connected to said network means for supervising transactions among the transaction initiators and the transaction processors by considering information based upon transactions from one or more of said transaction processors external to said market engine.
39. (Original). A system for electronic transactions comprising: one or more transaction initiators including one or more brokers for initiating transactions, a plurality of transaction processors for processing transactions, network means for interconnecting the transaction initiators and the transaction processors, a market engine connected to said network means for supervising transactions among the transaction initiators and the transaction processors by considering information based upon transactions from two or more of said transaction processors, said market engine formed of one or more control processors, each control processor including, hardware computer means, an operating systems for running on said hardware computer means, control unit means operating to supervise said transactions, said control unit means including, a logical control for controlling the routing of transactions among said transaction initiators and said transaction processors by executing routing instructions, said logical control including, storage means including an instruction store for storing routing instructions and a data store for storing data for use with routing instructions, execution means including a trigger for determining conditions and including a router for executing said routing instructions based on said conditions.
40. (Original). The system of Claim 39 wherein said routing instructions include instructions for redundantly routing said transactions through at least two of said control processors.
41. (Original). The system of Claim 39 wherein said routing instructions are loadable into said logical control means by said transaction initiators.
42. (Original). The system of Claim 39 wherein said routing instructions include instructions for providing different grades of reliability based upon the routing selected.
43. (Original). The system of Claim 39 wherein said routing instructions check information available in the system before completing sequences of instructions.
44. (Original). The system of Claim 39 wherein said routing instructions include instructions for multiple submission of a transaction to two or more transaction processors.
45. (Original). The system of Claim 21 wherein said routing instructions include instructions for redundantly routing particular ones of said transactions through at least two of said control processors.
46. (Original). The system of Claim 27 wherein said routing instructions rout said routing particular ones of said transactions to the same transaction processor.
47. (Original). The system of Claim 39 wherein said routing instructions split a particular one of said transactions from a transaction initiator for partial execution on each of two or more transaction processors whereby full execution is achieved using said two or more transaction processors.
48. (Original). The system of Claim 39 wherein said routing instructions combine particular ones of said transactions from two or more transaction initiators for full execution on a single transaction processors.
49. (Original). The system of Claim 39 wherein said routing instructions submit and withdraw transactions from transaction processors.
50. (Original). The system of Claim 39 wherein said routing instructions query a transaction initiator for an acknowledgment signal after initial submission of a transaction to a transaction processor whereby the transaction is not executed by the transaction processor absent the acknowledgment from the transaction initiator.
51. (Original). The system of Claim 39 wherein said routing instructions query quotes and order books for fulfilling transactions and select from order books as well as from quotes in connection with routing of transactions whereby second best transactions may be selected as well as quoted transactions.
52. (Original). The system of Claim 39 wherein said routing instructions check open- books to establish a submission criteria and provide a "round-robin" submission based on said criteria to closed-book transaction processors.
53. (Original). The system of Claim 39 wherein said routing instructions include sequences of instructions that track market history based upon analysis of trading across multiple transaction processors.
4. (Original). A method for electronic transactions comprising: initiating transactions using one or more transaction initiators for, processing transactions using a plurality of transaction processors, interconnecting the transaction initiators and the transaction processors using network means, supervising transactions among the transaction initiators and the transaction processors using a market engine connected to said network means by considering information based upon transactions from two or more of said transaction processors.
PCT/US2000/020169 1999-07-26 2000-07-25 Electronic systems with supervision of transactions among transaction initiators and transaction processors WO2001007983A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU63706/00A AU6370600A (en) 1999-07-26 2000-07-25 Electronic systems with supervision of transactions among transaction initiatorsand transaction processors

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US36089999A 1999-07-26 1999-07-26
US09/360,899 1999-07-26

Publications (2)

Publication Number Publication Date
WO2001007983A2 true WO2001007983A2 (en) 2001-02-01
WO2001007983A8 WO2001007983A8 (en) 2002-12-19

Family

ID=23419851

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/020169 WO2001007983A2 (en) 1999-07-26 2000-07-25 Electronic systems with supervision of transactions among transaction initiators and transaction processors

Country Status (2)

Country Link
AU (1) AU6370600A (en)
WO (1) WO2001007983A2 (en)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
No Search *

Also Published As

Publication number Publication date
AU6370600A (en) 2001-02-13
WO2001007983A8 (en) 2002-12-19

Similar Documents

Publication Publication Date Title
US11636544B2 (en) Method and apparatus for order entry in an electronic trading system
US11720965B2 (en) System and method for matching trading orders based on priority
US12051112B2 (en) System and method for routing a trading order based upon quantity
AU732142B2 (en) Computer method and system for intermediated exchanges of commodities
US8504483B2 (en) Electronic trading system supporting anonymous negotiation and indications of interest
US20070022041A1 (en) Method and System for Improving Exchange Performance
US20080288390A1 (en) Complex order leg synchronization
US20060095361A1 (en) Methods and apparatus for automatic settlement of foreign securities trades in trader's operating currency
AU5418190A (en) Simulated live market trading system
GB2381616A (en) Electronic trading system
WO2001022339A2 (en) Method and system for facilitating automated interaction of marketable retail orders and professional trading interest at passively determined prices
EP1546968A2 (en) Computer-implemented system for automated trading
JP2011510373A (en) Distributed ranking and message matching
US20210358039A1 (en) Method and System for Internal Matching
WO2001059661A2 (en) Apparatus, method and program for a fixed income trading system
WO2001061549A2 (en) Market engine having optimization
WO2001007983A2 (en) Electronic systems with supervision of transactions among transaction initiators and transaction processors
KR100407110B1 (en) Electronic auction method and apparatus for bond with partial opening of bidding quotation
WO2001055938A2 (en) Market engines having extendable component architecture
WO2001018711A2 (en) Electronic systems formed of market engines having integrated transaction units
WO2001061547A2 (en) Market engine having customizable crossing components
WO2006126005A2 (en) Trading system order book

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

AK Designated states

Kind code of ref document: C1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: C1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

D17 Declaration under article 17(2)a
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: JP