Transformer SDK For C
8.0.2.290852-a608fcd3
|
Caplin Transformer is an event-driven real-time data transformation engine optimised for web trading services that are implemented in Transformer Modules. It receives large volumes of raw real-time market data and republishes it as value-added data in real time, either to other DataSource applications or to generic output such as ODBC, XML or mes- sage queues. As a DataSource application, Caplin Transformer is also capable of receiving requests for data from other DataSource applications such as Caplin Liberator.
This is achieved by a set of business modules that implement the specific algorithms required. Examples of the calculations and other processing Caplin Transformer can perform include:
Caplin Transformer can also process suspensions in trading and determine what to do with the data in alignment with market rules.
The figure below shows how the Transformer fits into the Caplin real-time data architecture.
Several market data sources contribute information onto the DataSource API. This data is accepted by the Caplin Transformer, which process it, and can then output it in three ways:
The figure below shows the internal structure of the Caplin Transformer.
As well as being sources of data, products attached to the DataSource API can be destinations for data sent from Caplin Transformer, as illustrated in the figure below:
A DataSource peer is a remote application that uses Caplin's DataSource protocol to attach to the DataSource API and both send and receive data.
As this means the link between DataSource peers is bidirectional, the true relationship between the elements is shown in the figure below.
Objects can be requested from individual DataSource peers or groups of peers.
The Transformer is supplied with the following modules:
The Transformer C SDK supports the development of two types of modules; conventional modules which can only interact with other modules by passing data updates, and extension modules which allow functionality to be shared between modules.
All modules should implement the initialisation function mod_init().
This module type is the most common type and is used to implement modules that perform some form of processing on the data.
This module type allows the functionality of a module to be exposed to other modules. Possible uses for this could include the following:
The development of an API extension module is identical to that of conventional module, however, it should implement an interface that is exposed using the extension functionality.