Once upon a time, a group of very wise people got together and designed a way of getting computers to send messages to each other so they could trade electronically. The messages were designed to look the more or less same for each company using them, and so the companies came up with the idea of writing documents describing what they could and couldn’t support, any ‘custom flavours’ they had introduced, and so on. Eventually, lots of equally wise people – thousands, in fact — started using this system, and they all lived happily ever after.
Except they didn’t, because handling all these documents was difficult. It involved lots of manual work, understanding what may or may not work and what might need testing. If you wanted to change something, getting everybody else to agree would take time because they’d all need to check to see if the change would break anything. It was a significant lift.
What’s the Solution?
The solution to all of this is having a machine-readable dictionary for defining messaging protocols, which is why the FIX Trading Community created Orchestra. Instead of hand-crafted “rules of engagement”, we have XML files. These allow you to specify everything you need to describe a messaging system, including:
- Which messages you have and what they are used for;
- Which fields (or groups of fields) go in each message, their formats and validation rules;
- A way of defining alternative message layouts or field values for different use cases (e.g., scenario 1 has messages a and b, scenario 2 has messages a and c);
- Permitted messaging workflows (e.g., if I send x, I expect to receive y); and
- The ‘lower levels’ of your messaging implementation – network details, session and encoding settings, etc.
Orchestra files can be used to generate messaging protocol specifications (rules of engagement) in both human- and machine-readable forms. But in theory they can also be used for the following:
- Documenting internal systems in a standardised and machine-readable way;
- Handling of message standardisations and mapping rules;
- Configuration of instances of a messaging system (e.g., session and encoding parameters, network addresses, connectivity details of your counterparties, etc.);
- Automated certification testing of other peoples’ (and indeed your own) rules of engagement against your infrastructure; and
- Code generation to set and retrieve message content.
The FIX Trading Community recently launched Orchestra Server as a new service for members. Orchestra Server is a web-based tool that allows users to create rules of engagement in both Orchestra XML and human-readable PDF formats rather than manually. As well as providing a very quick and easy way of producing these documents, using the service provides a good understanding of how Orchestra works and how you go about using it in practice.
FIX Orchestra supports the FIX protocol and it is used by the FIX Trading Community. Our hope is that it will help create a wider community of Orchestra users (rather like the original FIX Protocol user community) and help them to realise the efficiencies and savings we believe Orchestra provides.
If you would like more information about Orchestra or Orchestra Server, please contact us at firstname.lastname@example.org. You can find the Orchestra specification and other useful documents at www.fixtrading.org/standards/fix-orchestra.