Adding a new LiveDataServer


#1

Hello,
I’m trying add a new Liva Data Server to use it together with existing(e.g. ExampleLiveDataServer) Live Data Server, what are the steps to do it? Documentation doesn’t look complete/useful.
Thanks.


#2

Are you referring to this documentation here: http://docs.opengamma.com/display/DOC210/Writing+a+Live+Data+Server


#3

Yes.


#4

FYI, I haven’t started doing this yet, but I’m going to be starting to write a live data server that connects to the bitcoin exchanges via the XChange library and then another live data server that connects to InteractiveBroker.

The project is going to be openserver under

in the bitquant branch under examples/examples-bitquant

I’d be really interested in working with anyone else that is doing a live data server and also improving the docs for how to do that.


#5

Hi

The docs referred to above are still current. Implementing a live data server does not need to be too complicated - some of our customers have done this fairly quickly to connect to their own internal data sources.

I would start by ignoring external connections and writing an implementation which responds with fixed values. You should also write a ComponentFactory which extends AbstractStandardLiveDataServerComponentFactory; this should be used in the appropriate .ini file to construct the live data server, and it will publish a LiveDataMetaDataProvider RESTfully to advertise the server. You can see the published providers at /jax/components to check that your live data server is being registered correctly. A good example of a live data server implementation is ExampleLiveDataServer, and its component factory is ExampleLiveDataServerComponentFactory.

The engine then acts as a live data client by connecting to one or more published live data servers. The examples server uses ExampleMarketDataComponentFactory, explicitly passing it the LiveDataMetaDataProvider for the ExampleLiveDataServer. A more recent alternative is to use the generic LiveMarketDataProviderFactoryComponentFactory which will discover all available providers automatically. Once the engine is configured correctly, you will see the live data provider in the drop-down list of live data sources in the web UI.

The final test to check that it works end-to-end is to construct a view definition containing a specific requirement for Market_Value on an ExternalId in the domain satisfied by your live data server. Running this view should generate a subscription request in your live data server, and the result should contain the market value that the server returns.

Please get in touch if you have questions about any of this or would like more detail.

Thanks
Jon