Reuters Bridge Specification
VERSION 1.0
Overview
Reuters Bridge is an adaptor which is used for communication between financial information exchange protocols - Thomson Reuters Ticket Output Feed (TOF) и Financial Information eXchange (FIX).
Thomson Reuters Ticket Output Feed (hereinafter TOF) - financial information exchange protocol which is distributed by Thomson Reuters. TOF provides possibility for subscription and receiving data related to deals.
Financial Information eXchange (hereinafter FIX) - an open protocol which is a standard for exchanging financial data and making transactions in real time.
Reuters Bridge works as a service for receiving data by systems which support FIX protocol from systems which support TOF protocol, i.e. data is transmitted only in the direction from TOF server to FIX server. While working, Reuters Bridge acts as a client for both FIX server and TOF server.Â
Package structure description
The Reuters Bridge program module is distributed as an archive. Reuters Bridge can work as a console application (ReutersBridge.exe --run console) or as a Windows service.
Package structure
Name of the file/directory | Description | |
---|---|---|
ReutersBridge.exe | Executable program file | |
log4cxx.dll | Logging library | |
log4cxx.properties | Logging configuration | |
config.cfg | Basic Reuters Bridge configuration file | |
fix.engine.properties | Basic FIX library configuration file | |
logs | Directory for FIX Antenna logs | |
backup | ||
doc | Supporting documentation | |
Reuters Bridge Specification.pdf | Reuters Bridge specification in English | |
Reuters Bridge Specification.pdf (in Russian) | Reuters Bridge specification in Russian | |
Reuters Bridge Mapping Table.pdf | Mapping table for converting fields from TOF format to FIX format | |
fixdic44.xml | FIX4.4 dictionary | |
rb-additional.xml | Extension of FIX4.4 dictionary with a set of custom tags |
License information
License information is kept in the ‘engine.license’ file which is provided separately from the installation package. Need to put the license file to the root Reuters Bridge directory ('./ReutersBridge/'). In order to update license, it is enough to replace the existing license file with new one.
Note: Reuters Bridge won't work without license or with an expired license. If your license has expired or was lost, contact sales@btobits.com to obtain the new one.
Installation procedure
Installation of the Reuters Bridge can be performed by following step-by-step instruction described below:
- Create a directory on the local disk (e.g c:\b2bits)
- Unpack the downloaded archive with Reuters Bridge to the created directory
- Adjust configuration files for your current business needs
- Open the command line and go to the application directory (e.g., cd c:\b2bits\ReutersBridge)
- Use the following command to initiate application installation: ReutersBridge.exe --run install
Functionality description
The Reuters Bridge program module performs the following main functions:
- supports FIX 4.4 protocol and TOF-protocol described in Reuters Bridge specification «Thomson Reuters Dealing - Datafeed TOF/IP & TOF/Serial User Guide» in version 4.7.10
- allows setting up and keeping a connection between TOF-protocol data source and FIX-protocol data source
- converts received TOF messages to FIX format
- sends converted messages from TOF server to FIX server
Supported message types
Reuters Bridge supports the following message types:
FIX ->Â Reuters Bridge:
- Session Level Messages (Heartbeat (0), Logon (A), Logout (5), Reject (3), Resend Request (2), Sequence Reset (4), Test Request (1))
Reuters Bridge -> Reuters:
- Data and Updates Request (332)
- Snapshot Request (333)
Reuters -> Reuters Bridge:
- Record Response (340)
- Updates (316)
- Status Response (407)
Reuters Bridge -> FIX:
- Session Level Messages (Heartbeat (0), Logon (A), Logout (5), Reject (3), Resend Request (2), Sequence Reset (4), Test Request (1))
- Trade Capture Report (MsgType = ‘AE’)
Supported deal types
Below is the list of deal types, for which Reuters Bridge supports their mapping to FIX format and transmitting to FIX server:
- FX Swap
- FX Spot
- FXÂ Outright
- FX FRA
- FX Deposit
- NDF FX Swap
- NDF Outright
Main Use Case scenario
Below is the main Use Case scenario of the Reuters Bridge program module:
- Reuters Bridge establishes a session with FIX server
- Reuters Bridge establishes a connection with TOF server
- For each Dealing Server identifier specified in the configuration file Reuters Bridge sends a request to TOF server to receive deals
- In case of successful processing, TOF server sends range of deals related to the requested Dealing Server identifier
- Reuters Bridge constructs requests for deal data and related conversation for each deal from the range and sends them to TOF server
- In case of successful requests processing, TOF server sends couple of messages which contain data about deal and related conversation
- For each found "deal/conversation" pair, Reuters Bridge checks the deal type
- If the deal type is supported by Reuters Bridge, it performs conversion of linked TOF messages which contain "deal/conversation" data to FIX message Trade Capture Report (MsgType = ‘AE’) according to the mapping rules (see the Mapping rules section for details)
- If the conversion is successful, Reuters Bridge sends FIX message Trade Capture Report (MsgType = ‘AE’) to FIX server
Alternative scenarios:
Step 4, 6:
In case a request processing failed, TOF server sends Status Response (407) message which is processed by Reuters Bridge in the following way:
- If Status = 96 (Connection Restored), Reuters Bridge writes corresponding INFO record to the log
- If Status = 26 (Rejected, Try Again), Reuters Bridge writes corresponding WARNING record to the log and sends repeated request to TOF server
- else Reuters Bridge writes corresponding ERROR record to the log
Step 8:
In case the defined deal type is not supported by Reuters Bridge, it writes the corresponding record to the log, "deal/conversation" pair conversion is considered as completed.
Step 9:
In case conversion failed, Reuters Bridge writes the corresponding record to the log, "deal/conversation" pair conversion is considered as completed.
Mapping rules
Detailed mapping rules are described in the Reuters Bridge Mapping Table article.
Configuration
Common settings of the Reuters Bridge can be configured by means of the config.cfg configuration file. It allows you to configure common properties of the application, TOF server's parameters, FIX server's parameters and logging parameters.
The table below represents all available configurable properties:
Name | Type | Description |
Application section | ||
App.Storage | Path | Path and name of the file where Reuters Bridge keeps the current state for the recovery procedure. |
App.DayStartTime | HH:mm | Start time of the day. Defines the time of session establishment and start of data transferring. |
App.DayEndTime | HH:mm | End time of the day. Defines the time of completion of data transferring and session closure until the next day. |
TOF protocol section | ||
TOF.SID | String | Identifier of the TOF-server's client. |
TOF.Server.Host | Host | IP-address or DNS-name of the TOF-server's host. |
TOF.Server.Port | [1..65535] | TOF-server's port.  5003 – value by default. |
TOF.Client.Port  | [0..65535] | TOF-client's port.  0 – any free port;  5004 – value by default, for servers with a high level of security. |
TOF.DealingServers | String | Dealing Server Identifier. Supports multiple values delimited by semicolon. |
TOF.MaxSimultaneousRequests                  | Amount | Number of concurrent requests sent to the server. 0 – unlimited; 1 – value by default. |
TOF.Session.Reconnect.MinTimeout | Seconds | The minimum value of the timeout between attempts to reconnect to the server. 5 – value by default. |
TOF.Session.Reconnect.MaxTimeout | Seconds | The maximum value of the timeout between attempts to reconnect to the server. 60 – value by default. |
TOF.Session.Reconnect.TimeoutIncrement | Seconds | Value on which timeout increases after each failed connection attempt (until reaches the value TOF.Session.Reconnect.MaxTimeout). 5 – value by default. |
TOF.Message.Tickets.MinNumber | Int, > 0 | Minimum number of the deal message used by server. 1 – value by default. Note: see TOF protocol documentation for rules of messages numbering. |
TOF.Message.Tickets.MaxNumber | Int, > 0 | Maximum number of the deal message used by server. 999999 – value by default. Note: see TOF protocol documentation for rules of messages numbering. |
TOF.Debug.MessagesLog.Enable | [true|false] | Enables/disables saving incoming TOF messages to separate file on the disk. |
TOF.Debug.MessagesLog.Dir | Path | Path to the directory for saving incoming TOF messages. |
FIX protocol section | ||
FIX.Properties.File | Path | Path and name of the FIX library configuration file (fix.engine.properties). |
FIX.Sender.ID | String | Identifier of the FIX-server's client. |
FIX.Target.ID | String | FIX-server identifier. |
FIX.Version | [4.0, 4.1, 4.2, 4.3, 4.4, 5.0] | Used FIX protocol version. 4.4 – recommended value. |
FIX.Target.Host | Host | IP-address or DNS-name of the FIX-server's host. |
FIX.Target.Port | [1..65535] | FIX server port. 9106 – value by default. |
FIX.HeartBeatInterval | Seconds | Heartbeat interval for FIX protocol. 30 – value by default. |
FIX.Session.Reconnect.MinTimeout | Seconds | The minimum value of the timeout between attempts to reconnect to the server. 5 – value by default. |
FIX.Session.Reconnect.MaxTimeout | Seconds | The maximum value of the timeout between attempts to reconnect to the server. 60 – value by default. |
FIX.Session.Reconnect.TimeoutIncrement | Seconds | Value on which timeout increases after each failed connection attempt (until reaches the value FIX.Session.Reconnect.MaxTimeout). 5 – value by default. |
FIX.Session.StatusCheckTimeout | Seconds | Interval for checking status of the FIX session. 30 – value by default. |
Logging section | ||
RBLog.log4cxx.Config | Path | Path to the logging configuration file. |
FIX level setting can be configured by means of the fix.engine.properties file.
Reuters Bridge as a Windows serviceÂ
Generally, for work with Windows services, the following commands are used:
|
If the --name parameter is not specified, "ReutersBridge" will be used.
If the --config parameter is not specified, "<path to the executable file>/config.cfg" will be used.
Note: If the application works as a service, paths in configuration files must be absolute.
Logging
All incoming and outgoing messages can be logged for further analysis and troubleshooting.
- Tof-messages.in – logging incoming TOF messages in text file;
- SenderCompID-TargetCompID.in – logging incoming messages from FIX session in text file;
- SenderCompID-TargetCompID.out – logging outgoing messages from FIX session in text file;
Logging is configured by means of the config.cfg and log4cxx.properties configuration files. Refer to the How to configure logging and logs rotation in Reuters Bridge article for detailed instructions.
Error diagnosis by means of command line
Generally, error diagnosis is performed by means of application logs. However, sometimes (e.g. for the cases which can take place before logging subsystem initialization is done) it can be useful to run the application in the command line mode.
To run the application in command line mode, you need to:
- Open the Windows command line and go to the application directory (e.g., cd c:\b2bits\ReutersBridge)
- Run the application using the following command: ReutersBridge.exe --run console
Below is the list of console parameters:
Parameter | Arguments | Description |
--run | console | Application launch in command line mode. |
install | Application service installation. | |
uninstall | Application service uninstallation. | |
--config | Path | Allows to use specified configuration file. |
--xml-storage | Path | Allows to use specified state file. |
--dbg-no-fix | Debug parameter - disables transmitting messages to FIX server. | |
--dbg-tof-file | Path | Allows to replay messages from the log file (see TOF.Debug.MessagesLog.Enable and TOF.Debug.MessagesLog.Dir configuration properties). Connection to TOF server is not established. |
--dbg-tof-rate | Number of messages in second | Defines the number of messages to be replayed in one second. Is used together with dbg-tof-file parameter. Default value – 1. |
--dbg-tof-cyclic | Defines the mode of cyclic logs replay. Is used with dbg-tof-file parameter. Default value – disabled. |