FIXEdge SDK Developer Guide

General statements

FIXEdge SDK allows developers to create custom plugins for FIXEdge: Transport Adaptors and Handlers.

Structure of FIXEdge SDK

cmakeModules - CMake modules

Headers - C++ headers files for FIXAntenna C++ (FA) and for FIXEdge (FE)

Libs - release version of FA C++ static libraries

src_Handler - source of sample Handler 

src_TA - source of sample Transport Adaptor

Requirements

The FIXEdge SDK is available for Windows (MS Visual Studio 2010, x64) and Linux (RHEL 6, gcc44, x64)

CMake v 2.8 should be used to prepare the solution of sample Handler and sample Transport Adaptor

Xerces-c 3.1.1 (headers and dynamic libraries) is required for building the sample Handler project.

How to build samples

  1. Export a system variable pointing to the XERCES-C: export XERCESCROOT=/home/user/extlibs/xerces-c-src_2_8_0
  2. Create a folder for build: 
    $ mkdir ./build
    $ cd ./build
  3. Run CMake:
    $ cmake -G "Unix Makefiles" ../
    or (Windows)
    > cmake.exe -G "Visual Studio 10 Win64" ../
  4. Build shared libraries:
    $ make
    or (Windows)
    build b2b_fixserver_development_ta.sln (Release, MD)

Handler and Transport Adaptor Features

Handler is a lightweight plugin for FIXEdge. It is suited for using in the following scenario:

  • make some modifications on incoming FIX Messages (add/delete/modify some tags based on some conditions that is difficult to implement in BL XML or BL JS) and pass it back to BL or Transport Adaptor

There are already implemented Handlers - see FIXEdge BL Handlers for more info.

Transport Adaptor is more complicated plugin. It is suited for use in the following scenarios where adapting FIX Session to any other kind of session is required:

  •  establish a connection to any non-FIX endpoints (such as SMTP - SMTP TA, IBM MQ, HTTPS, JMS, Kafka, and so on) and provide a data flow between these endpoints and FIX Sessions.
  • periodically polling of any FIX or non-FIX endpoints

There are already implemented Transport Adaptors - see FIXEdge Transport Adaptors for more info.


FeatureHandlerTransport Adaptor
Load

reloads each time after BL Rules are reloaded

loads only if reference to Handler exists in some BL rule

once at FE start
ClientIDdoesn't have a ClientID. Can't be referenced by another Handler or TA.Can register several ClientIDs
Incoming messages

Can be addressed from BL Rules using <HandlerAction> tag only

 message is coming to process method

Messages to each of ClientID can be passed from BL <Send> tag, or from another TA or Handler.

Message is coming into the sendToClient method

Outgoing messages

Can just pass original or transformed message to the BL

Can send synchronously to any registered ClientID

Can send asynchronously to any registed ClientID

Can be send to BL only via the onMessageFromClient method.

onMessageFromClient can't be called from the same thread as sendToClient

History accesshas direct access to any configured on BL Historyfor Bridge Adaptors only (see FIXEdge Transport Adaptors Developer Guide) for more details
Configurationin BL_Config.xmlin FIXEdge.properties


For more detailed info on developing custom Handler, see FIXEdge BL Handlers Developer Guide.

For more detailed info on developing custom Transport Adaptor, see FIXEdge Transport Adaptors Developer Guide.