[Quickfix-developers] Initiator and Acceptor in a single app?
Brought to you by:
orenmnero
|
From: John H. <jr...@ya...> - 2007-10-30 13:55:42
|
Is it possible to create a QuickFIX application which acts as both an initiator and an acceptor? Here's the business requirements for an application I'm looking to build: Our trading office has 10 traders who each need to be able to create and send orders to a single broker. I have successfully created an initiator application which connects to the broker and can send new orders (and handle cancel/replaces, etc) by polling a database which is populated with orders by a trading order entry client application which sits in front of each of the 10 traders. The flow is basically as follows: - A trader enters an order and the details are written to the database as a new order - The QuickFIX initiator application periodically (5x per second) polls the db for new orders. If it finds them it sends them. - As ExecReports come back from the broker, the db is updated with order status information - The trader sees updated order status by polling the db for order status changes I need to improve the speed with which orders are entered into the system by traders and then taken by the initiator application and passed along to the broker. Is it possible to create a single QuickFIX application which can act as an initiator (to the broker) as well as an acceptor (to each of the trading clients)? In other words, could I create my QuickFIX application such that it behaves like an order router? Ideally it would accept FIX connections from each of the 10 trading client applications (which act as initiators), and then orders created by the trading client would pass through to my QuickFIX "router", which would then send it along directly to the broker. Or is this not a valid way of configuration a QuickFIX application (i.e. it has to be either an initiator or an acceptor, but it can't be both)? I'm hoping that I can have an acceptor object as well as an initiator object in the same application and define them both in the config file. My goal is to eliminate the latency introduced by the use of the db for communications. If this is not a valid construct, am I correct in assuming that the best way to tackle this requirement is to create an initiator application which connects to the broker, and then create and use my own socket connections between my initiator application and the 10 trading clients? Many thanks in advance for any advice, John -------------------------------------- jo...@ha... |