fix repository based products infrastructure for the infrastructure presenter kevin houstoun
TRANSCRIPT
FIX Repository based ProductsFIX Repository based Products
Infrastructure for the Infrastructure for the infrastructureinfrastructure
Presenter Kevin Houstoun Presenter Kevin Houstoun
What is the repository?What is the repository?
Information extracted from the FIX specificationInformation extracted from the FIX specification In a different more computer usable formatIn a different more computer usable format Currently a series of XML documents and schemasCurrently a series of XML documents and schemas Can be loaded into a databaseCan be loaded into a database Specific SQL can reproduce the specification from Specific SQL can reproduce the specification from
the databasethe database To be used to generate future releases of FIXTo be used to generate future releases of FIX Will be made publicly available to FIX membershipWill be made publicly available to FIX membership
ConstructionConstruction
There are a number of parts to the repositoryThere are a number of parts to the repository FieldsFields EnumerationsEnumerations ComponentsComponents Messages – special type of componentMessages – special type of component Message ContentsMessage Contents
For each part of the repository there are 4 filesFor each part of the repository there are 4 files *.xml – The data itself*.xml – The data itself *.xsd – The schema for the data*.xsd – The schema for the data *.xsl – A transform to display the data in IE*.xsl – A transform to display the data in IE *.html – A page to invoke the transform and display the data *.html – A page to invoke the transform and display the data
in IEin IE
The FIX Specification Data DictionaryThe FIX Specification Data Dictionary
Fields & Enumerations – essentially the data Fields & Enumerations – essentially the data dictionary from the FIX Specification - Volume 6dictionary from the FIX Specification - Volume 6
Fields xml file containsFields xml file contains Tag, Tag, FieldName, FieldName, Description, Description, XML NameXML Name
Enumerations xml file containsEnumerations xml file contains Tag, Tag, Value, Value, DescriptionDescription
One to many relationship between Tag in Fields and One to many relationship between Tag in Fields and Tag in EnumerationsTag in Enumerations
Components (including messages)Components (including messages)
Components and Messages contains Components and Messages contains Object ID, Object ID, Name, Name, Type, Type, Category, Category, Abbreviation, Abbreviation, DescriptionDescription Indentation (only used for certain component types)Indentation (only used for certain component types) Order (only used for certain component types)Order (only used for certain component types)
Messages are a special case of components that Messages are a special case of components that include specific additional information. Messages are include specific additional information. Messages are the top level application object in the FIX model. the top level application object in the FIX model.
Message Content xml FileMessage Content xml File
Message Content contains Message Content contains Object ID, Object ID, Tag Text, Tag Text, Tag, Tag, Description, Description, Required, Required, Position, Position, Indent, Indent, Component Object IDComponent Object ID
Basically the result of selecting all records in from Basically the result of selecting all records in from Message Content with an Object ID corresponding to Message Content with an Object ID corresponding to a FIX message is data equivalent to the message a FIX message is data equivalent to the message table for that message in volumes 1, 3 – 5.table for that message in volumes 1, 3 – 5.
ThusThus becomesbecomes
Why did we build the repository?Why did we build the repository?
I’m lazy and I make mistakes.I’m lazy and I make mistakes. BUT lazyness can be a virtue.BUT lazyness can be a virtue. Asked by Global Technical Committee to help Asked by Global Technical Committee to help
prepare the DTD to match the FIX.4.4 release.prepare the DTD to match the FIX.4.4 release. Needed to allow me to generate the DTD rather than Needed to allow me to generate the DTD rather than
create it by hand.create it by hand. This allowed us to apply one design to the whole of This allowed us to apply one design to the whole of
the FIX model.the FIX model.
How have we used the repository?How have we used the repository?
Generated Volume 6 – The FIX data dictionaryGenerated Volume 6 – The FIX data dictionary Can and will generate all message tables for future Can and will generate all message tables for future
releases of FIXreleases of FIX Supports addition of messages and fields for future Supports addition of messages and fields for future
versions of FIXversions of FIX Generate FIXimate, FIX.4.4 DTD, FIX.4.4 Schema.Generate FIXimate, FIX.4.4 DTD, FIX.4.4 Schema.
www.fixprotocol.orgwww.fixprotocol.org www.fixprotocol.orgwww.fixprotocol.org www.fixprotocol.orgwww.fixprotocol.org
Cross check FIX specification, are names in message Cross check FIX specification, are names in message tables same as names in data dictionary.tables same as names in data dictionary.
Pre compile all valid message possibilities and check Pre compile all valid message possibilities and check against FIX design rules.against FIX design rules.
Repository Value PropositionRepository Value Proposition
Vendors.Vendors. Access to the repository. A few vendors build and maintain Access to the repository. A few vendors build and maintain
subsets of the repository. Transact Tools, BtoBits. This is subsets of the repository. Transact Tools, BtoBits. This is needed to offer a full FIX product. This is value at US needed to offer a full FIX product. This is value at US $25,000. Engine vendors should use repository to drive $25,000. Engine vendors should use repository to drive engine. engine.
Buy sides, Sell sides, Exchanges.Buy sides, Sell sides, Exchanges. Customers don’t need to pay for upgrades for engines with Customers don’t need to pay for upgrades for engines with
each FIX version release.each FIX version release.
FIX itselfFIX itself Improved management of protocolImproved management of protocol Improved consistency and accuracy of specificationImproved consistency and accuracy of specification Tools to allow generation of schema etcTools to allow generation of schema etc
A sustainable revenue modelA sustainable revenue model
Given the choice, customers would buy FIX services Given the choice, customers would buy FIX services from FIX. One service is the updating of engines for from FIX. One service is the updating of engines for each release.each release.
The regular expansion of the protocol provides a The regular expansion of the protocol provides a regular upgrade requirementregular upgrade requirement
This could be addressed byThis could be addressed by Engine design based on repositoryEngine design based on repository Upgrades become either pay your FIX engine vendor or pay Upgrades become either pay your FIX engine vendor or pay
FIX.FIX.
FIX engine vendors still have a model around FIX engine vendors still have a model around upgrades to session layer, performance etc upgrades to session layer, performance etc enhancements but are no longer coupled to FIX enhancements but are no longer coupled to FIX protocol releases.protocol releases.
FIX supplies the IP to it’s members in raw format.FIX supplies the IP to it’s members in raw format. FIX has a product !!!FIX has a product !!!
How does a FIX engine use the repository?How does a FIX engine use the repository?
Fields table, data types, need to add data type for raw Fields table, data types, need to add data type for raw data precursor fielddata precursor field
Message Content table. Can check validity of fields Message Content table. Can check validity of fields within a message etc.within a message etc.
Possibly may wish to transform to own format, may Possibly may wish to transform to own format, may wish to generate code from repository. Both lock wish to generate code from repository. Both lock customers to them but we still considerably reduce customers to them but we still considerably reduce cost of upgrade to users!cost of upgrade to users!