Imported from previous forum
Hi,
I am new to FIX. In the document transport mechanisms mentioned are web services HTTP, MQSeries, Multicast UDP.These transport protocols are used to connect between the FIX engine and trading platform.Is my understanding correct?
So If we have to go with web services HTTP, then can we use SOAP over HTTP protocol to connect to the engine.
Where will get the information on the technologies used in implementing/testing the FIX protocol.
Thanks,
Harish
When FIXProtocol was first introduced, TCP was the only Transport mechanism “between” FIX Engines, i.e SessionInitiator ↔ SessionAcceptor. With Transport Independence, any reliable transport can be used between FIX Engines.
FIX does not define the integration between FIX engine and Trading application, even before the Transport independence framework was introduced, transport mechanisms like web services HTTP, JMS / MQSeries, Multicast UDP, Tibco, Corba, JRMP, RMI etc were being used for communication between FIX engine and Trading application.
Hi, I am new to FIX. In the document transport mechanisms mentioned are
web services HTTP, MQSeries, Multicast UDP.These transport protocols are
used to connect between the FIX engine and trading platform.Is my
understanding correct? So If we have to go with web services HTTP, then
can we use SOAP over HTTP protocol to connect to the engine. Where will
get the information on the technologies used in implementing/testing the
FIX protocol.Thanks, Harish
Hi Mahesh ,
Reference to below mail ,
We like to work on both sell side and buy side FIX Automated Certification Test Framework.
I am new to finiance domain .
We have couple of queries regarding Sell side and Buy side as listed below.
- who are all Sell side system with examples ? whether they have FIX Interface ?
- who are all Buy Side system with examples ? whether they have FIX interface ?
My Assumption to develop the Test Automation Framework,
It can be connected to either Sell side system or buy side system and to test the work flow and message validation is it correct ?
Please clarify
Thanks in advance.
Thanks & Regards,
Jagadeesan.M
From: Mahesh Kumaraguru [mailto:kay_mahesh@yahoo.com]
Sent: Thursday, May 20, 2010 9:22 PM
To: Harishbabu Nagaraj
Subject: FW: FIX queries
Hi Harish,
In the future I would recommend you to post your query to the FIXProtocol discussion forums at
http://fixprotocol.org/discuss/
because I check the FIX website multiple times a day (all my browsers have FIX website as home page), but I do not access emails so many times in a week and there are lot of spam / junk messages and digging thru them to find useful messages is a waste of time. Also there so many other users on the FIXProtocol.org website who could answer your question.
Take a look at the image below which shows one FIX connection
http://upload.wikimedia.org/wikipedia/en/e/ea/Fix.jpg
and explain what is running in machine A and machine B. Also remember that FIX engine would talk to a FIX engine and presently most FIX engines use TCP for FIX sessions. Are you creating a Sell side or Buy side test simulator / framework?
Regards,
K. Mahesh
— On Tue, 5/18/10, Harishbabu Nagaraj Harishbabu_Nagaraj@mindtree.com wrote:
From: Harishbabu Nagaraj Harishbabu_Nagaraj@mindtree.com
Subject: FW: FIX queries
To: “kay_mahesh@yahoo.com” kay_mahesh@yahoo.com
Date: Tuesday, May 18, 2010, 8:06 AM
Hi Mahesh,
We are planning to develop a conformance test framework to test FIX Protocol implementation. We have couple of queries regarding this
i.) Will the following setup be sufficient for this ?
- Desktop machine (A) running open source FIX engine (sample AUT)
- desktop machine (B) running our test framework
- A is connected back to back with B
- The test client we develop interacts with the FIX engine using SOAP over HTTP calls.
ii.) If we are able to validate all the xml interactions between the test client and FIX engine as per the FIX specifications, can we claim to have performed conformance testing for the FIX implementation ?
Thanks in Advance.
Thanks and Regards,
Harish
When FIXProtocol was first introduced, TCP was the only Transport
mechanism “between” FIX Engines, i.e SessionInitiator ↔
SessionAcceptor. With Transport Independence, any reliable transport can
be used between FIX Engines.FIX does not define the integration between FIX engine and Trading
application, even before the Transport independence framework was
introduced, transport mechanisms like web services HTTP, JMS / MQSeries,
Multicast UDP, Tibco, Corba, JRMP, RMI etc were being used for
communication between FIX engine and Trading application.Hi, I am new to FIX. In the document transport mechanisms mentioned
are web services HTTP, MQSeries, Multicast UDP.These transport
protocols are used to connect between the FIX engine and trading
platform.Is my understanding correct? So If we have to go with web
services HTTP, then can we use SOAP over HTTP protocol to connect to
the engine. Where will get the information on the technologies used in
implementing/testing the FIX protocol.Thanks, Harish
Hi Jagadeesan,
The Buy Side consists of institutional investors, money managers, pension funds, mutual funds etc. who buy services from broker dealers. The sell side consists of broker dealers who sell their services to the Buy Side.
Take a look at the picture below to get an end to end Flow between BuySide <-> SellSide <-> StockExchange
but keep in mind that there would be many different brokerage firms between the Institutional investors and Liquidation sources and each of the institutional investors could be connected to multiple brokers and each broker could be connected to multiple sources of liquidity.
In FIX terms, you should see the sides as Session Initiator versus Session Acceptor since FIX is a Session based client server protocol. Session Acceptor will open a TCP socket and wait for inbound socket connections, Session Initator has to make a socket connection to the machine:port on which the acceptor is listening.
Both sides can send all types of Session / Administrative messages, but Business / Application messages have certain FIX workflows, refer Specs at http://fixprotocol.org/specifications/. You should consider this when designing your test framework.
Regards,
K. Mahesh
Hi ,
Thanks a lot Mahesh,
-
Initially TCP was the only communication mode which provided for FIX Engine . Now FIX Engine become Transport independent . Is it in my Test framework I have to support all the transport mechanism which is listed in suggestion (HTTP, JMS / MQSeries, Multicast UDP, Tibco,Corba, JRMP, RMI etc). When and where these transport mechanism will be used in FIX Architecture ?
-
If you can suggest me what transport mechanism , I can support in my FIX Automation framework , it will be very helpful to base line my Framework design
-
There is any document which tells about how to test the buy side system ?
Thanks in advance.
Thanks & Regards,
Jagadeesan.M
Hi Jagadeesan,
The Buy Side consists of institutional investors, money managers, pension funds, mutual funds etc. who buy services from broker dealers. The sell side consists of broker dealers who sell their services to the Buy Side.
Take a look at the picture below to get an end to end Flow between BuySide ↔ SellSide ↔ StockExchange
http://www.ksvali.com/wp-content/uploads/2009/09/fix_players_1.gif
but keep in mind that there would be many different brokerage firms between the Institutional investors and Liquidation sources and each of the institutional investors could be connected to multiple brokers and each broker could be connected to multiple sources of liquidity.
In FIX terms, you should see the sides as Session Initiator versus Session Acceptor since FIX is a Session based client server protocol. Session Acceptor will open a TCP socket and wait for inbound socket connections, Session Initator has to make a socket connection to the machine:port on which the acceptor is listening.
Both sides can send all types of Session / Administrative messages, but Business / Application messages have certain FIX workflows, refer Specs at http://fixprotocol.org/specifications/. You should consider this when designing your test framework.
Regards,
K. Mahesh
Hi ,
To test the Session initiator ( Buy side ) whether i need to work on Session acceptor simulator or any other method to test and certify the Buy side system .
please clarify .
Thanks in advance.
Warm Regards,
Jagadeesan.M
Hi Mahesh ,
Reference to below mail ,
We like to work on both sell side and buy side FIX Automated Certification Test Framework.
I am new to finiance domain .
We have couple of queries regarding Sell side and Buy side as listed below.
- who are all Sell side system with examples ? whether they have FIX Interface ?
- who are all Buy Side system with examples ? whether they have FIX interface ?
My Assumption to develop the Test Automation Framework,
It can be connected to either Sell side system or buy side system and to test the work flow and message validation is it correct ?Please clarify
Thanks in advance.
Thanks & Regards,
Jagadeesan.MFrom: Mahesh Kumaraguru [mailto:kay_mahesh@yahoo.com]
Sent: Thursday, May 20, 2010 9:22 PM
To: Harishbabu Nagaraj
Subject: FW: FIX queriesHi Harish,
In the future I would recommend you to post your query to the FIXProtocol discussion forums at
http://fixprotocol.org/discuss/
because I check the FIX website multiple times a day (all my browsers have FIX website as home page), but I do not access emails so many times in a week and there are lot of spam / junk messages and digging thru them to find useful messages is a waste of time. Also there so many other users on the FIXProtocol.org website who could answer your question.
Take a look at the image below which shows one FIX connection
http://upload.wikimedia.org/wikipedia/en/e/ea/Fix.jpg
and explain what is running in machine A and machine B. Also remember that FIX engine would talk to a FIX engine and presently most FIX engines use TCP for FIX sessions. Are you creating a Sell side or Buy side test simulator / framework?
Regards,
K. Mahesh— On Tue, 5/18/10, Harishbabu Nagaraj Harishbabu_Nagaraj@mindtree.com wrote:
From: Harishbabu Nagaraj Harishbabu_Nagaraj@mindtree.com
Subject: FW: FIX queries
To: “kay_mahesh@yahoo.com” kay_mahesh@yahoo.com
Date: Tuesday, May 18, 2010, 8:06 AM
Hi Mahesh,We are planning to develop a conformance test framework to test FIX Protocol implementation. We have couple of queries regarding this
i.) Will the following setup be sufficient for this ?
- Desktop machine (A) running open source FIX engine (sample AUT)
- desktop machine (B) running our test framework
- A is connected back to back with B
- The test client we develop interacts with the FIX engine using SOAP over HTTP calls.
ii.) If we are able to validate all the xml interactions between the test client and FIX engine as per the FIX specifications, can we claim to have performed conformance testing for the FIX implementation ?
Thanks in Advance.
Thanks and Regards,
Harish
http://www.mindtree.com/email/disclaimer.html
When FIXProtocol was first introduced, TCP was the only Transport
mechanism “between” FIX Engines, i.e SessionInitiator ↔
SessionAcceptor. With Transport Independence, any reliable transport can
be used between FIX Engines.FIX does not define the integration between FIX engine and Trading
application, even before the Transport independence framework was
introduced, transport mechanisms like web services HTTP, JMS / MQSeries,
Multicast UDP, Tibco, Corba, JRMP, RMI etc were being used for
communication between FIX engine and Trading application.Hi, I am new to FIX. In the document transport mechanisms mentioned
are web services HTTP, MQSeries, Multicast UDP.These transport
protocols are used to connect between the FIX engine and trading
platform.Is my understanding correct? So If we have to go with web
services HTTP, then can we use SOAP over HTTP protocol to connect to
the engine. Where will get the information on the technologies used in
implementing/testing the FIX protocol.Thanks, Harish
To test a Session initiator / Buy side you would need to build a Session Acceptor / Sell side simulator.
Take a look at the architecture shown in a diagram uploaded at
http://www.4shared.com/photo/Bi5ADekd/Test_Framework_for_End_to_End_.html
There are 5 parts in the diagram
- Your Test frame work
- Your Test framework’s Session Acceptor
- Buy side FIXEngine
- Buy side Trading application
- Buy side database
Just for the sake of this discussion, lets say there is a table in the Buy Side database called ExecReports which has the following columns
ExecID
BrokerCompID
ExecTransType
ExecType
LastQty
LastPx
Unique key of this database table is ExecID+BrokerCompID
Also I assume that there is a manual tester on the Trading application. Your test framework is running as Automated functional tester
Now lets look at a test sequence
- Bring up your test framework & test framework’s Session acceptor
- Session Acceptor starts listening on machine:port
- Bring up Buy side DB, Buy Side Trading application & Buy side FIX engine.
- Session initiator initiates session to machine:port and Session is successfully established
- Buy side tester sends a New Order single with 55=MAX
- Order reaches Test Framework. Test framework matches this order with full fill test case using
If(TickerSymbol==“IBM”)
{
sendFullFill(nos);
} - Testframe work send the execution report thru its FIX engine to the buy side FIX engine.
- The Order is shown as filled in Trading application and the manual tester on the buy side trading application marks the test as passed in his test report.
- The execution details are inserted into the ExecReports table of Buy side database
- Test framework keeps polling the database until it finds the execution it sent in step 7 using ExecID+BrokerCompID. It verifies that values in DB match values sent in step 7.
- Full Fill test is marked as pass in your test framework’stest report.
This is a simple example. You could add verification point at Buy side FIX engine log, Buy side trading application log, automate Buy side trading application’s GUI testing using QTP etc.
Hi Mahesh,
really this info help me to go ahead.
it is possible for u to share sell side as well.
Thanks in advance
Warm Regards,
Jagadeesan.M
To test a Session initiator / Buy side you would need to build a Session Acceptor / Sell side simulator.
Take a look at the architecture shown in a diagram uploaded at
http://www.4shared.com/photo/Bi5ADekd/Test_Framework_for_End_to_End_.html
There are 5 parts in the diagram
- Your Test frame work
- Your Test framework’s Session Acceptor
- Buy side FIXEngine
- Buy side Trading application
- Buy side database
Just for the sake of this discussion, lets say there is a table in the Buy Side database called ExecReports which has the following columns
ExecID
BrokerCompID
ExecTransType
ExecType
LastQty
LastPxUnique key of this database table is ExecID+BrokerCompID
Also I assume that there is a manual tester on the Trading application. Your test framework is running as Automated functional tester
Now lets look at a test sequence
- Bring up your test framework & test framework’s Session acceptor
- Session Acceptor starts listening on machine:port
- Bring up Buy side DB, Buy Side Trading application & Buy side FIX engine.
- Session initiator initiates session to machine:port and Session is successfully established
- Buy side tester sends a New Order single with 55=MAX
- Order reaches Test Framework. Test framework matches this order with full fill test case using
If(TickerSymbol==“IBM”)
{
sendFullFill(nos);
}- Testframe work send the execution report thru its FIX engine to the buy side FIX engine.
- The Order is shown as filled in Trading application and the manual tester on the buy side trading application marks the test as passed in his test report.
- The execution details are inserted into the ExecReports table of Buy side database
- Test framework keeps polling the database until it finds the execution it sent in step 7 using ExecID+BrokerCompID. It verifies that values in DB match values sent in step 7.
- Full Fill test is marked as pass in your test framework’stest report.
This is a simple example. You could add verification point at Buy side FIX engine log, Buy side trading application log, automate Buy side trading application’s GUI testing using QTP etc.
Refer diagram at
http://www.4shared.com/photo/waj16rFA/Test_Framework_for_End_to_End_.html
Parts are :-
- Your Test frame work
- Your Test framework’s Session Initiator
- Sell side FIXEngine
- Sell side Trading application
- Sell side database
Just for the sake of this discussion, lets say there is a table in the Sell Side database called NewOrders which has the following columns
OrderID
ClOrdID
ClientCompID
OrderType
OrderTIF
OrderQty
LimitPx
StopPx
Unique Primary key of this database table is OrderID.
Unique key is ClOrdID + ClientCompID
Also I assume that there is a manual tester on the sell side Trading application. Your test framework is running as Automated functional tester
Now lets look at a test sequence
- Bring up Sell side DB, Sell Side Trading application & Sell side FIX engine.
- Sell side FIX Engine starts listening on machine:port
- Bring up your test framework & test framework’s Session intiator
- Session initiator initiates session to machine:port and Session is successfully established
- Test framework sends a New Order single with 55=RMD
- Order reaches Sell side Trading application.
- The Order is displayed in Trading application and the manual tester on the sell side trading application checks the values in Sell side trading application matches values of order from step 5 and marks the test as passed in his test report.
- The order details are inserted into the NewOrders table of Sell side database.
- Test framework keeps polling the database until it finds the order it sent in step 5 using ClOrdID+ClientCompID. It verifies that values in DB match values sent in step 5.
- Send New Order test is marked as pass in your test framework’stest report.
Hi Mahesh,
really this info help me to go ahead.
it is possible for u to share sell side as well.
Thanks in advance
Warm Regards,
Jagadeesan.M
Corrected diagram is located at
http://www.4shared.com/photo/FM8aCoYI/Test_Framework_for_End_to_End_.html
Refer diagram at
http://www.4shared.com/photo/waj16rFA/Test_Framework_for_End_to_End_.html
Parts are :-
- Your Test frame work
- Your Test framework’s Session Initiator
- Sell side FIXEngine
- Sell side Trading application
- Sell side database
Just for the sake of this discussion, lets say there is a table in the Sell Side database called NewOrders which has the following columns
OrderID
ClOrdID
ClientCompID
OrderType
OrderTIF
OrderQty
LimitPx
StopPxUnique Primary key of this database table is OrderID.
Unique key is ClOrdID + ClientCompID
Also I assume that there is a manual tester on the sell side Trading application. Your test framework is running as Automated functional tester
Now lets look at a test sequence
- Bring up Sell side DB, Sell Side Trading application & Sell side FIX engine.
- Sell side FIX Engine starts listening on machine:port
- Bring up your test framework & test framework’s Session intiator
- Session initiator initiates session to machine:port and Session is successfully established
- Test framework sends a New Order single with 55=RMD
- Order reaches Sell side Trading application.
- The Order is displayed in Trading application and the manual tester on the sell side trading application checks the values in Sell side trading application matches values of order from step 5 and marks the test as passed in his test report.
- The order details are inserted into the NewOrders table of Sell side database.
- Test framework keeps polling the database until it finds the order it sent in step 5 using ClOrdID+ClientCompID. It verifies that values in DB match values sent in step 5.
- Send New Order test is marked as pass in your test framework’stest report.
Hi Mahesh,
really this info help me to go ahead.
it is possible for u to share sell side as well.
Thanks in advance
Warm Regards,
Jagadeesan.M
Step 6 (Match rule) should be
If(TickerSymbol=="MAX")
{
sendFullFill(nos);
}
To test a Session initiator / Buy side you would need to build a Session Acceptor / Sell side simulator.
Take a look at the architecture shown in a diagram uploaded at
http://www.4shared.com/photo/Bi5ADekd/Test_Framework_for_End_to_End_.html
There are 5 parts in the diagram
- Your Test frame work
- Your Test framework’s Session Acceptor
- Buy side FIXEngine
- Buy side Trading application
- Buy side database
Just for the sake of this discussion, lets say there is a table in the Buy Side database called ExecReports which has the following columns
ExecID
BrokerCompID
ExecTransType
ExecType
LastQty
LastPxUnique key of this database table is ExecID+BrokerCompID
Also I assume that there is a manual tester on the Trading application. Your test framework is running as Automated functional tester
Now lets look at a test sequence
- Bring up your test framework & test framework’s Session acceptor
- Session Acceptor starts listening on machine:port
- Bring up Buy side DB, Buy Side Trading application & Buy side FIX engine.
- Session initiator initiates session to machine:port and Session is successfully established
- Buy side tester sends a New Order single with 55=MAX
- Order reaches Test Framework. Test framework matches this order with full fill test case using
If(TickerSymbol==“IBM”)
{
sendFullFill(nos);
}- Testframe work send the execution report thru its FIX engine to the buy side FIX engine.
- The Order is shown as filled in Trading application and the manual tester on the buy side trading application marks the test as passed in his test report.
- The execution details are inserted into the ExecReports table of Buy side database
- Test framework keeps polling the database until it finds the execution it sent in step 7 using ExecID+BrokerCompID. It verifies that values in DB match values sent in step 7.
- Full Fill test is marked as pass in your test framework’stest report.
This is a simple example. You could add verification point at Buy side FIX engine log, Buy side trading application log, automate Buy side trading application’s GUI testing using QTP etc.
Thanks a lot mahesh.
Step 6 (Match rule) should be
If(TickerSymbol=="MAX") { sendFullFill(nos); }To test a Session initiator / Buy side you would need to build a Session Acceptor / Sell side simulator.
Take a look at the architecture shown in a diagram uploaded at
http://www.4shared.com/photo/Bi5ADekd/Test_Framework_for_End_to_End_.html
There are 5 parts in the diagram
- Your Test frame work
- Your Test framework’s Session Acceptor
- Buy side FIXEngine
- Buy side Trading application
- Buy side database
Just for the sake of this discussion, lets say there is a table in the Buy Side database called ExecReports which has the following columns
ExecID
BrokerCompID
ExecTransType
ExecType
LastQty
LastPxUnique key of this database table is ExecID+BrokerCompID
Also I assume that there is a manual tester on the Trading application. Your test framework is running as Automated functional tester
Now lets look at a test sequence
- Bring up your test framework & test framework’s Session acceptor
- Session Acceptor starts listening on machine:port
- Bring up Buy side DB, Buy Side Trading application & Buy side FIX engine.
- Session initiator initiates session to machine:port and Session is successfully established
- Buy side tester sends a New Order single with 55=MAX
- Order reaches Test Framework. Test framework matches this order with full fill test case using
If(TickerSymbol==“IBM”)
{
sendFullFill(nos);
}- Testframe work send the execution report thru its FIX engine to the buy side FIX engine.
- The Order is shown as filled in Trading application and the manual tester on the buy side trading application marks the test as passed in his test report.
- The execution details are inserted into the ExecReports table of Buy side database
- Test framework keeps polling the database until it finds the execution it sent in step 7 using ExecID+BrokerCompID. It verifies that values in DB match values sent in step 7.
- Full Fill test is marked as pass in your test framework’stest report.
This is a simple example. You could add verification point at Buy side FIX engine log, Buy side trading application log, automate Buy side trading application’s GUI testing using QTP etc.
Thank for the information .its very helpful for me dapfor.com