FIX Overview

The Financial Information eXchange (FIX) protocol defines a standard format for exchanging trade-related messages. Developed by a consortium of institutions to improve the interoperability and efficiency of automated trading systems, FIX defines the protocol but does not specify an implementation. FIX developers can select from a number of commercial and open-source products that implement the protocol.

In FIX terminology, an initiator establishes a session with an acceptor. During this session, FIX protocol messages flow in both directions between the trading partners and correspond to trade events such as orders, confirmations, and cancellations. The figure below provides a simple illustration of several initiators communicating with the same acceptor:

The details of session establishment and message exchange are determined by the FIX implementation being used. Products typically include classes that encapsulate common activities such as creating and maintaining a session, encoding and sending messages, and receiving and decoding messages.

IceFIX Overview

IceFIX is a collection of tools that simplifies the development and deployment of FIX applications using Ice. The primary IceFIX component is a bridge that acts as both a FIX initiator and a reliable store-and-forward Ice message-delivery platform. Each instance of an IceFIX bridge establishes a session with a single remote acceptor. Any number of Ice clients can use that bridge to exchange messages with its acceptor, as shown below:

Developers gain several important advantages by using an IceFIX bridge as an intermediary:

IceFIX uses QuickFIX to implement the bridge. The code examples in this user guide all use QuickFIX for encoding and decoding messages.

IceFIX works with any standard FIX acceptor, such as the sample programs that accompany the QuickFIX distribution. To simplify the testing process, the IceFIX distribution also contains a sample FIX acceptor.