Caplin Liberator
Caplin's financial Internet hub
Caplin Liberator is a financial Internet hub that delivers trade messages and market data to and from subscribers over any network, tunnelling automatically through proxy servers and firewalls.
Overview

Caplin Liberator provides a complete connectivity and subscription management system for streaming market data and trade messages over intranets, extranets and the Internet. It is capable of handling tens of thousands of concurrent users. It handles both HTTP and RTTP traffic and features a high performance publishing engine capable of delivering hundreds of thousands of updates per second from a single server.
Client applications communicate with Caplin Liberator via Caplin StreamLink, enabling them to send and receive data updates, and trade messages in real time with very low latency. Caplin Liberator in turn uses the DataSource protocol to exchange data and trade messages with other components of Caplin Xaqua, such as Caplin Transformer and the DataSource adapters that act as gateways to other systems.
User permissioning and usage monitoring can be carried out in a variety of ways, for example using Caplin's XML Auth module, which enables programmers to use XML to create their own permissioning structures and control the entitlement to objects held on Caplin Liberator. Caplin Liberator supports many RTTP data types, including text fields, fixed-format pages and page updates, logical records and news headlines.
| A single Caplin Liberator instance running on a 2 x dual-core 2.4GHz AMD Opteron server can support 10,000 concurrent users, each receiving 100 messages per second (where each message is a typical record update containing five fields of market data) with peak end-to-end latency of no more than 250 milliseconds. |
Caplin Liberator is now available in an unsupported free edition for non-commercial and evaluation use. Take a look at www.freeliberator.com. If you're considering evaluating Caplin Liberator for a commercial financial application, please contact us, since we're happy to discuss your requirements to ensure you have the correct components for your evaluation when you're ready to start.
Caplin Liberator Features and Functions
Operational Features
Publishing real-time data: Caplin Liberator reliably publishes data over the Internet in real time with very low latency. It is capable of publishing to tens of thousands of simultaneous users, employing a protocol called RTTP which tunnels through firewalls and proxy servers without their needing to be modified. It is also possible for users to contribute data back through Liberator to the source of the data.
Clustering: Each Liberator can be configured as a node within a cluster in order to share information about data subscriptions, the number of licenses and users logged on.
Global caching for clusters: When Liberator is configured as a cluster it can be set up to share information about users' subscriptions. This allows each Liberator to request the object itself or know the best DataSource to request it from.
Multi-threading: Liberator is a multi-threaded application. It uses one thread per DataSource connection, and a configurable number of threads on the client session side.
Per-object configurable throttling: This allows directories (or specific objects) to be given throttle times. This is configured through the add-object interface.
Reconnecting clients: Update messages are stored in an output queue which can be resent when reconnecting to a client. This reduces the possibility that the server will not have any messages that the client missed while disconnected. The size of the output queue is configurable.
UDP command interface: Caplin Liberator includes a UDP command interface that enables you to send UDP messages from a utility to Liberator in order to reset peer connections after failover, and change the verbosity of log messages.
Permissioning and Security Features
Authentication and permissioning modules: Liberator supports a modular system for handling authentication and authorisation. Each "Auth" module allows users to be authenticated, objects to have permissions loaded, a user's read and write permissions for an object to be checked and object name mappings to be performed.
Permissions objects: DataSources can determine user access to objects on the Liberator by sending the Liberator permissions objects. A custom Liberator Auth module is responsible for interpreting updates to permissions objects and modifying access permissions accordingly. Client applications can also subscribe to particular permissions objects. When Caplin Liberator’s custom Auth module receives updates to a permission object, it will pass the updates on, through the standard update mechanism, to any clients that have subscribed to the object. A client application can use the updated permission information to modify the way the application behaves.
The Permissioning Auth module allows Caplin Liberator to integrate with Caplin Xaqua's sophisticated, customizable, permissioning model that is used in trading environments and controls user access to financial objects and trading capabilities.
Content-based permissioning: Content-based permissioning works by allowing users to see an object only if the object contains a certain value in one of its fields. A Liberator installation includes an Auth module which uses XML to handle content permissioning information, or you can create your own modules using the associated development kit.
HTTP authentication using Auth modules: You can create different HTTP directories with different realms for different users, and perform user authentication to allow access to the directory with an Auth module.
KeyMaster Integration:Caplin Liberator integrates with Caplin KeyMaster software that allows Caplin Xaqua to work with any existing authentication system. End users or Web applications are then not required to explicitly log in to Caplin Liberator in addition to their normal login procedure. Liberator provides the functionality that allows Auth modules to use a KeyMaster generated encrypted signature as a password. A client application can generate a signature using a private key, and the signature is then verified by Liberator to authenticate the user.
HTTP headers for authentication: A Liberator Auth module has access to both the Cookie and the Authorisation HTTP headers. This allows the Auth module to work alongside or on top of an existing authentication system which utilises cookies or HTTP Authentication.
The Liberator web site
A Caplin Liberator installation includes a local website which serves as an introduction to the Liberator and enables you to:
- monitor the usage of Caplin Liberator, including the number of client sessions connected, and information about the DataSources
- view or download documentation for the Liberator and associated components
- view demonstration applications written using the StreamLink for Browsers SDK
To open Liberator web pages you should direct your browser at http://<hostname>:<port number> where <hostname> is the host name or IP address of the machine you have installed the Liberator on. For example http://liberator:8080.
Restricting Data
Caplin Liberator enables you to offer users a restricted RTTP service in the following forms:
Delayed data: Delayed delivery of data can be configured for any non-active data source feeding Caplin Liberator.
Throttled data: Caplin Liberator's throttling feature is a mechanism for reducing the performance impact of high update rates. When throttling is enabled, Liberator accumulates all the updates for a data item during an interval called the throttle time. At the end of this interval Liberator sends just the latest updated values of the item to the subscribed clients. The rate at which updates are sent to clients is therefore reduced or "throttled", so performance is improved. Liberator can throttle different objects at different levels and users can be seamlessly mapped to these throttled objects.
Caplin Liberator's data sources
Data Sources
Caplin Liberator is capable of retrieving data from any application that uses the DataSource protocol, the protocol that enables most Caplin and RTTP-related products to communicate with each other. The DataSource API handles data from a variety of sources, such as Thomson Reuters RMDS, Triarch and TIB.
You can write your own data source application to connect to other DataSource applications using the DataSource SDK.
Data Features
Configurable startup objects: Any number of objects can be configured to be created when Liberator starts.
Purging of objects: Liberator can be configured to delete data held in cache at any time of day, on a per-object basis.
News headlines and stories: Liberator can handle news objects, including news headlines and associated stories. Liberator offers complex filtering of headlines based on either headline text or codes.
Type 2 and 3 record data: Liberator holds Type 2 (Level 2 quote data) and Type 3 (historic updates) for specially configured fields. DataSources can control this store of data by sending flags to clear the cache or to filter out some entries based on the value of a particular field.
Record filtering: Liberator can accept requests for record objects with a user-defined filter—only updates matching the expression given by the user will be sent to that user. These expressions are based around the field values in the update and can contain most standard logical and relational operators (NOT, OR, AND, equals, greater than, etc). For example, a user might specify that they only want to receive updates when the Volume field is greater than a certain amount. Record filtering is implemented by client applications.
Object name mapping: Liberator allows the configuration of object name mappings. Object mapping changes the internal name of an object when a user requests it. These mappings are global, but you can insert the username as part of the map. The user will be unaware of the new name which is only known by Liberator and its DataSources. This functionality was previously only available within Auth modules, but has been extended so that Liberator can perform the mappings where necessary.
Containers
Liberator supports container objects. A container allows a client to subscribe to a dynamic list of objects in a single subscription, with Liberator managing the underlying subscriptions automatically. A subset of a container can also be subscribed to, allowing efficient on-demand display of large lists of data in a UI.