Wednesday 14 March 2007

I have been looking for a fast messaging system for our internal as a transport on which to route trade order and FIX Protocol encoded with FAST , and potentially for a client to handle market data for electronic trading.

While there are a lot of offerings out there, most are orientated to support Java, and I need C++ and to an extent C#, the new offerings that support AMQP are very interesting.

Here is the list I looked at:

Name & Vendor

Type

Primary Platform

Comments

Wombat

http://www.wombatfs.com/

Full market data distribution system

Wombat has all the components needed to set up your own feed handlers and ticker plant.

Caplin

http://www.caplin.com/marketdataplatform.htm

Full market data distribution system

Similar to Wombat, Caplin is a full featured system - my impressions last time I spoke with them was that it was very good but expensive.

Infodyne

http://www.infodyne.com/

Full market data distribution system

RTI

http://www.rti.com/

High Performance message system

C++

RTI offers really high performance message routing

29West LDM

http://www.29west.com/

High Performance Messaging System

Very High performance messaging - wombat uses this as a transport

Lightstreamer

http://www.lightstreamer.com/

Excellent web push technology using AJAX, Commercial and community version

Web Applications, though there is thick client support

I really like this product and would definitely use it on web projects.

Mantaray

http://www.mantamq.com/

Open & Commercial

Message distribution system

JMS/Java but has C++ and .net support.

Difficult to assess the status of Coridan since the web page is blank and the support forums are very quiet.

RabbitMQ

http://www.rabbitmq.com/

Open high volume resilient messaging system.

Java

Very interesting product supports high message volumes and AMQP protocol; we are interested to try the forthcoming C++ access.

ActiveMQ

http://activemq.apache.org/

Open source message queue system

cross platform

Great product, for general purpose messaging, we will probably support this as a transport in our internal systems.

Qpid

http://cwiki.apache.org/qpid/

Qpid provides multiple language implementations of the Advanced Messaged Queuing Protocol (AMQP)

Java, but C++ brokers and clients exist

This is promising as an opensource offering, I think that it needs a few more iterations before the C++ parts are ready for real use.

MSMQ

Windows

Supported in our routing products

JMS

Java


Friday 23 February 2007

Delving into code

For those of us who now use C# working with C++ can bring back some painful memories of unresolved externals. Having spent some time tracking down why code would build in static mode rather than shared (MD) mode i discovered that one of their .libs was different under the 2 build models.

To check out what is going on:

C:\Program Files\Microsoft Visual Studio\VC98\Bin>lib /EXTRACT:.\DebugMD\EasyDBC
ommand.obj /OUT:test C:\root\marex\DebugMD\xputils.lib

the /OUT command extracts the required module.

Then to see whats in the object extracted use:


C:\Program Files\Microsoft Visual Studio\VC98\Bin>dumpbin /SYMBOLS test > zuc.txt

You can then dig through zuc.txt to find the missing/offending external reference - in my case the number of parameters on a call had changed.

Friday 9 February 2007

FAST Protocol

The alpha version of FASTTemplateGen is now on the web http://www.fintechworld.com/fixtools/FixRepo.htm