Liberator is a Comet server (a bidirectional streaming push server) that delivers trade messages and market data to and from subscribers over the Web, tunneling automatically through proxy servers and firewalls. Its ultra-high-performance publishing engine can send millions of updates per second at low latency from a single server.
Liberator supports a wide variety of data types and formats, which it organizes into static Directories and dynamic Containers, with auto-subscription and multi-level caching. There is extensive support for clustering, load balancing, and failover. Performance and bandwidth are optimized using multithreading, throttling/conflation, bursting, paging, and global caching.
Liberator is written in C and runs on Linux®, or on Windows using VMware®.
Web clients communicate with Liberator through the StreamLink for Browsers JavaScript API (SL4B), which enables you to create dynamic web applications within a browser (see below).
Liberator Free Edition also includes The DataSource for Java SDK; this is a library of Java classes used to create Java applications (DataSources) that can exchange data and messages with Liberator on the server side.
One or more Ajax or Flex™ Clients running in Web browsers can subscribe to data from a Liberator via the StreamLink for Browsers (SL4B) JavaScript library. Liberator in turn subscribes to the data from a DataSource. The DataSource sends an image of the relevant data to the Liberator, where it is cached and sent on to the Ajax or Flex Clients, via SL4B, for display on the Client pages.
As the data subsequently changes in real time, the DataSource sends updates to the Liberator, which in turn pushes them to the subscribed clients via SL4B. The result is that the data displayed on each client is continuously updated in real time for as long as the client remains subscribed.
SL4B is an Ajax/Comet library that allows you to implement real-time streaming data display and message handling from within a Web browser. It is browser-neutral and provides a powerful, object-oriented, JavaScript interface with no downloads, plugins, ActiveX controls, or Java code. It supports multiple subscribers, multiple frames, and multiple windows per browser. SL4B can be used as a simple HTML extension called RTML, or to build complex Ajax and Flex-based rich Internet applications using its object-oriented API.
The DataSource API allows you to build server-side applications (DataSources) that can exchange real-time data with Liberator. You can connect several DataSources to a Liberator. The diagram shows a DataSource exchanging real-time data with an external component to which it is connected through a communications link. Alternatively, the DataSource could be incorporated directly into an application that generates (and/or receives) data, as in the example Java DataSource supplied with Liberator Free Edition.