FIX Antenna® Java supports FIX 4.0, 4.1, 4.2, 4.3, 4.4, 5.0, 5.0 SP1, 5.0 SP2, FIXML and FAST. Support for FIX Antenna Java FIX engine includes upgrades to the latest FIX and FAST protocol versions. A high availability extension is included as a standard.

Key benefits:

  • Runs everywhere
  • Natively integrates with standard Java monitoring tool sets
  • Can be used in an enterprise environment and web-based solutions

These features help maintain a consistent interface for all internal applications, while dealing with many counterparties and cross asset classes where different versions of the protocol are in use. Furthermore, FIX Antenna Java comes with a rich UI for monitoring session statuses and parameters in real time on desktop app or web browser.

All libraries/servers are pre-configured for and certified with multiple exchanges. Our products come with worldwide 24/7 support and software escrow.

  Performance50,000+ messages/secon a single CPU30,000 messages/sec across 200 sessions
  Monitoring Real time monitoring of session statuses & parameters Rich User Interfacesupport a variety of requirements
  Support 24 / 7 Service Worldwide coverage On demand software escrow

Features

Feature Description
High performance / low latency
  • Delivers over 50,000 messages per second with persistence and over 150,000 messages per second without persistence. 
  • Adds 11 microseconds to latency for sending messages and up to 4 microseconds to latency for reading with persistence
  • Adds up to 1 microsecond to latency in average for sending messages and up to 3.5 microseconds to latency in average for reading without persistence.

Please refer to the latest benchmarks of FIX Antenna Java, Windows- and Linux-based.

Supports standard FIX
  • 100% FIX standard compliance:
    • FIX 4.0, 4.1, 4.2, 4.3, 4.4, 5.0, 5.0 SP1, 5.0 SP2
    • FAST 1.1
  • Supports all FIX message types (pre-trade, trade, post-trade, market data, etc.)
  • Message validation (well formedness, required and conditionally required fields, fields order, types, etc.)
  • Support of the popular FIX dictionary format used by QuickFIX
  • Customizable FIX protocol with user-defined tags and message types. Create your own FIX dialect, e.g. define an extra field, change "required" attribute, etc., in a friendly XML format (compatible with FIX Antenna C++ and .NET.)
  • Multiple session management
    • Supports up to 200 concurrent sessions in a single instance on recommended hardware. Number of concurrent sessions can be increased if more CPUs are added
    • Each session can be configured separately
  • Guaranteed delivery
    • Relies on the store and forward technique
    • Memory-mapped files are used for persistence to achieve maximum performance
  • Standard FIX routing based on DeliverTo and OnBehalfOf fields
Market Data Handlers
  • CME FIX/FAST, MDP 3.0
  • BOVESPA FAST
  • EBS FAST
FIXML converter
  • FIX to FIXML converter
  • FIXML to FIX converter
  • Support FIX 4.0, 4.1, 4.2, 4.3, 4.4, 5.0, 5.0 SP1, 5.0 SP2
Delivery modes
  • Later delivery mode allows unsent messages to be stored in a queue and delivered later when connection is re-established. This is recommended for configuring sessions where execution reports are to be delivered, e.g. a session with traders.
  • Rejection mode allows messages that cannot be sent during a given, customizable time to be rejected. This is recommended for configuring sessions where orders are to be delivered, e.g. a session with exchanges.
Highly customizable FIX session level
  • Highly customizable logic of message processing
    • Ability to create custom handler for any type of message
    • Ability to add custom pre-processing of messages before they are handled by FIX Antenna
    • Ability to add custom post-processing of system-level messages before they are sent to a counterparty
Reliability vs. performance
  • Supports transient sessions that do not use any persistence. This significantly improves performance while forgoing the possibility recovery. Applicable when recovery is not required (e.g. for market data) or when persistence is done by an application using the FIX Antenna engine.

  • Supports memory-mapped file storage, which is faster than RandomAccessFile based storage in most cases. A drawback of MMF storage is a potential additional penalty for remapping space
Performance tuning
  • Enable or disable Nagle's algorithm to minimize latency or maximize throughput
  • Manipulate the internal queue size to get maximum throughput (process messages in a bunch) or lower latency (minimal time in queue)
  • Use different levels of message validation to balance reasonable correctness and good performance:
    • Well formedness validation
    • Validation of allowed message fields
    • Validation of required message fields
    • Validation of message fields order
    • Validation of duplicated message fields
    • Validation of field values according to defined data types
    • Validation of repeating group fields
    • Conditionally required fields
  • Build a template message and send it many times with different values. Sending of such prepared messages will be faster in most cases.

  • Choose sending mode. Synchronous sending gives lower latency, but asynchronous sending is preferable for a better throughput.
  • Configure CPU affinity to enable the binding and unbinding of a thread to a CPU, so that the thread will execute only on a designated CPU rather than any arbitrary CPU
Fan-out ready
  • Implement effective fan-out solutions
  • Average round-trip time is about 200 uses for a fan-out of an incoming message to 200 outgoing sessions
  • Includes examples of fan-out implementation

 

High Availability

Can work in a cluster, replicating a FIX session's state to backup nodes. FIX Antenna Java supports 2 modes:

  • Replication to central storage from primary nodes for later use by backup nodes to recover states
  • Direct copy from primary nodes to backup nodes
    • asynchronous replication to backup nodes
    • synchronous replication (primary node will wait for acknowledgement from backup)
Configuration
  • Supports configuration in XML and properties file format.
  • Ability to configure default behavior and custom sessions in the same configuration file.
Monitoring and administration
  • Proprietary built-in remote monitoring and administrative interface for sessions monitoring and management
  • JMX interface for sessions monitoring and management
  • Public API to override and/or extend existing administrative instructions
  • Rich monitoring and administration GUI out of the box
Message composition API
  • Allows:
    • Creating a message singleton by FIX protocol version and message type
    • Creating a message from a raw FIX string (parse)
    • Serializing a FIX object message to a raw FIX string
    • Adding, removing, and modifying FIX fields and repeating groups
    • Message validation
    • Reducing memory allocations via internal pooling
  • FIX flat message model - a generic model for working with the abstract FIXMessage class via fields, groups getters, and groups setters, resulting in the highest performance
  • RG API - an API for working with repeating groups, similar to the FIX flat message model, that allows working with structures
  • FIX object model - a model where each FIX message type is a class with FIX fields as members, using intelligence to simplify working with the FIX business object
  • Prepared messages - a message template for faster message sending with identical structures but different values
  • Efficient getters and setters for working with primitive type values to reduce garbage production
Integration with middleware
  • Has customizable adapters for communicating with JMS and Kafka servers. Provides an API for easy sending/receiving of FIX messages from/to middleware
  • Included standalone FIX-to-JMS and FIX-to-Kafka servers for routing messages between FIX and middleware environments
Security
  • Provides native built-in SSL support and SSL tunneling
  • CME Secure Logon support (See How to connect to CME Globex using Secure Logon for details)
  • Standard FIX authorization utilizing username and password fields in the FIX Logon message
  • Strategies for accepting incoming sessions:
    • Auto-accept incoming sessions (to simplify development and testing)
    • Auto-decline non pre-configured sessions
Small footprint
  • The minimal FIX application size could be about 200K and it will not include 3rd party libraries
Packaging

Each package consists of:

See the full list of packages available for FIX Antenna Java. 

Supports all popular environments

Supported OS:

  • Windows, Linux, Solaris

Supported compilers:

  • JDK 1.5 and above

Proprietary built-in remote monitoring and administrative interface for sessions monitoring and management

  • Allows implementing effective fan-out solutions
  • Average round-trip time is about 200 uses for a fan-out of an incoming message to 200 outgoing sessions
  • Includes examples of fan-out implementation

Architecture

Our latest FIX Antenna Java engine (v. 2) was built using over a decade of FIX market experience, a thorough understanding of current market structure and future trends, and feedback from our clients. The current release of the FIX library adds extra reliability for operating in the most demanding low latency environments.

The transport layer of FIX Antenna Java is built using Message Queues with priorities, which allows system messages to be processed even in high load applications.

The logic of the FIX session layer is built using the Chain of Responsibility Pattern. There is a chain of the system and user defined handlers, which check the message for validity, right number sequence, etc. This approach enables greater flexibility, allows the incorporation of custom logic into any place in the chain, and makes the application adaptable to any requirements.

During an ongoing session, messages will be stored after processing. Incoming messages will be saved after normal processing by all handlers and user applications, while outgoing messages will be saved after they have been sent to counterparties. This assures that every single message will be processed.

 

FIX Antenna Java engine architecture
LEARN MORE  
 
 
 

APIs

FIX Antenna Java provides the following main APIs for trading applications to:

  • Create multiple FIX sessions (initiators and acceptors)
  • Open and close FIX sessions
  • Form FIX messages
  • Validate FIX messages
  • Send and receive FIX messages
  • Convert FIX messages to/from FIXML
  • Route FIX messages to/from JMS
  • Work with FAST stream
  • Set sequence numbers
  • Conveniently handle repeating groups in FIX message
full list of FIX Antenna Java APIs

Samples

Name Description
RepeatingGroupAPIExample Demonstrates how to manipulate FIX messages with repeating groups and tags using the RG API.
CreateMessage Demonstrates how to create a message object with the FIX Messaging API.
FlatNewOrderSingleMessage Demonstrates several ways to convert an existing string with a FIX message into its object representation.
NewOrderSingleMessage Demonstrates how to create the NewOrderSingle (D) message with the object messaging model.
SimpleNewsBroadcaster Demonstrates how to create a FIX initiator session and send a News (B) message to the server.
MaxSpeedBroadcaster Demonstrates how to configure the SimpleNewsBroadcaster sample for working with a maximum throughput.
CustomProtocolBroadcaster Demonstrates how to run the SimpleNewsBroadcaster sample with customized FIX protocol.
SimpleAdminClient Demonstrates how to connect to an administrative session and communicate with it using the implementation of administrative messages.
SimpleServer Demonstrates how to implement a FIX server with the simple IP filtering of incoming sessions.
SimpleServerWithAdminSession Demonstrates how to run the  SimpleServer sample with the Administrative plug-in enabled.
SimpleServerWithCustomDic Demonstrates how to run the SimpleServer sample with customized FIX protocol.

Advanced FIXAJ Samples

Name Description
CustomSessionLevelBroadcaster Demonstrates how to run the  SimpleNewsBroadcaster sample with a customized session level. Allows redefinition of handlers for Resend Request(2) and Reject(3) messages in its configuration.
CustomStorageBroadcaster Demonstrates how to implement and configure a custom storage mechanism for incoming messages (outgoing messages will be stored in the default way). Customization is based on the SimpleNewsBroadcaster sample.

SSL Samples

Name Description
SimpleMessageSSLClient Demonstrates how to configure the  SimpleNewsBroadcaster sample when using SSL connection.
SimpleSSLNewsBroadcaster Demonstrates how to build the simplest GUI FIX client that can work with SSL. A bit more complex than the  SimpleMessageSSLClient sample with GUI elements.
SimpleSSLServer Demonstrates how to build the simplest SSL FIX server. This sample is based on the SimpleServer sample

Validation Samples

Name Description
SimpleValidator44 Demonstrates how to check a message for compliance with FIX 4.4 using the FIX Antenna Validation module.
SimpleValidator50 Demonstrates how to check a message for compliance with FIX 5.0 using the FIX Antenna Validation module.
AdditionalValidationSample44 Demonstrates how to customize validation when using customized FIX protocol.

FIXML Samples

Name Description
FIX2FIXML Demonstrates a simple way of converting a string with a FIX message into its FIXML representation.
FIX2FIXMLWithCustomSerializer Demonstrates how to convert a string with a FIX message into its FIXML representation with custom XML processing.
FIXML2FIX Demonstrates a simple way of converting a string with an FIXML message into its FIX representation.
FIXML2FIXWithCustomParser Demonstrates how to convert a string with an FIXML message into its FIX representation with custom XML processing.

FAST Samples

Name Description
FastDecoder Demonstrates how to decode a FAST message and get a FIX message.
FastEncoder Demonstrates how to encode a FIX message into FAST.
SimpleFastClient Demonstrates how to connect to the FAST server and receive messages from it. Built as a simple command line tool.

JMS Samples

Name Description
FIXJMSAdpator Demonstrates how to send and receive FIX messages via JMS Adaptor.
FIXJMSAdvancedAdpator Demonstrates how to send and receive FIX messages via JMS Adaptor. FIXJMSAdvancedAdaptor hides the JMS queues access and makes it easier to initialize the adaptor.

MDP 3.0 Samples

Name Description
CME MDP 3.0 Tools Demonstrates how to subscribe and receive market data from the CME MDP 3.0 connection stream.
CME MDP 3.0 Channel Sample Demonstrates how to create a CME MDP 3.0 adaptor instance and connect to certain market data streams.
Simple CME MDP 3.0 Channel Sample Demonstrates how to create a Simple market data channel and connect to the CME MDP Stream.
CME High Level Market Data API Samples Demonstrates how to use the High Level Market Data API to make a high-level connection to CME MDP 3.0. The high-level connection has built-in support of CME Business Objects like OrderBooks (Multiple Depth, Implied, Consolidated), Security Definition & Status, Statistics, Last Trades, and Quote Requests.

Package Matrix & Downloads

FIX Antenna Java package matrix and downloads

Legend

FIXAJ Light - a FIX engine with a minimal footprint. This package can be used in products which have strict limitations for their size.

FIXAJ Full - a fully functional FIX engine.

FIXAJ Add-ons - validation and Message Object Model for FIX Antenna Light.

ICE Adaptor - FIX Antenna Solution for ICE Trade Capture. This package contains console and GUI tools for communicating with the ICE Trade Capture interface.

FIXML Convertor - a set of FIX Antenna related libraries for converting FIX to FIXML and back.

Fast Engine - the functional core for supporting FAST.

CME Fast Adaptor - a fully functional application for communicating with CME.

CME MDP 3.0 Adaptor - a fully functional application which supports all features of the new MDP3.0 platform

JMS Adaptor - an adaptor that helps link FIX Antenna with the Java Message Service. The package also contains a server for routing FIX messages to and from the JMS server.

Price

We offer cost effective licensing models. They are based on application process concurrency limits, level of support (business hours only, 24x5/7), etc. Site licenses, OEM licensing models, and discounts based on the number of purchased licenses are also available. Development, test, and back-up licenses are licensed separately and priced at 50% of the listed cost of production licenses.

view licensing models

·