FIX over HTTP or TCP

Imported from previous forum

hello,

I’ve got another question regarding how FIXML is transported. Usually XML is transported over HTTP, I am just just wondering whether FIXML is over HTTP or not. If not, what is the performance implication of HTTP vs TCP??

Thanks,
Jimmy

[ original email was from Ryan Pierce - rpierce@taltrade.com ]
> I’ve got another question regarding how FIXML is transported. Usually XML is transported over HTTP, I am just just wondering whether FIXML is over HTTP or not. If not, what is the performance implication of HTTP vs TCP??

FIX (not FIXML) has a defined message representation (Tag=Value[SOH]) and a session layer that supports message sequencing and checksums. In theory, any transport mechanism, reliable or unreliable, could be used for FIX. In practice, FIX’s recovery mechanisms aren’t robust enough to maintain business connectivity over an unreliable transport mechanism like UDP or a noisy modem connection with no error correction.

So in practice, almost all FIX is run over TCP, which is a reliable transport protocol. However, nothing in the FIX spec dictates that TCP must be used.

FIXML, unlike FIX, has no defined session layer, checksum, or sequence numbering. FIXML defines business content only, and it must rely on something else to provide reliable, ordered message delivery.

The only method currently defined for transporting FIXML is to encapsulate it inside a normal Tag=Value FIX message (which usually sits on top of TCP.) FIX will provide for ordered, reliable delivery, and FIXML conveys all the business content.

Anything else could be used as well, as long as it provides for ordered, reliable message delivery. (Imagine the business implications of line noise transposing the letters of the symbol for an order, or re-ordering messages so that a Cancelled message for an order comes before a Partially Filled message!)

Currently, the Global Derivatives working group is investigating defining a standard way to send FIX over MQSeries. I don’t know of anyone doing FIXML over HTTP, but I’d imagine you’d need some other layer in addition to handle ordering your messages, detecting message gaps, etc.

[ original email was from Ning Huang - jhuang@etrade.ca ]
I am working on a pioneer project, which uses HTTP/SOAP as a transport to send and receive FIXML. We also have an existing trading system using permanent TCP/IP socket connections to send and receive traditioanl tag=value FIX messages. The way how these two systems work is quite different. Since HTTP is a one time query-and-reply protocol, I don’t send back reports until the client askes for it. And there is no gap fill as there are no sequence numbers. HTTP protocol provides its own way to guarentee messages are received by the other side.

I am working on a pioneer project, which uses HTTP/SOAP as a transport
to send and receive FIXML. We also have an existing trading system using
permanent TCP/IP socket connections to send and receive traditioanl
tag=value FIX messages. The way how these two systems work is quite
different. Since HTTP is a one time query-and-reply protocol, I don’t
send back reports until the client askes for it. And there is no gap
fill as there are no sequence numbers. HTTP protocol provides its own
way to guarentee messages are received by the other side.
Hi I was woundering if you can help with trying to figure out how to settle my accounts with e*trade capital markets,I reciced my comfirmations via ISITC.ORG.and wanted to have it transfered to another brokerage company of mine.thank you

How to send & receive FIX mesaages via TCP/Winsock?

Is it possible to connect to a FIX server via TCP & send/receive messages? (via send() & recv() functions perhaps?)

About using Quickfix, I haven’t yet completed C# & XML, so I need a fairly simple demonstration via C++. If yes, can you show me an example of how to achieve such?