Aim:
The River RT Data Pump is a framework for pushing large numbers of small units of data over a computer network to many clients.
It is a demand based system: clients receive the data they requested. Nothing more. Once a client has requested a certain piece of information
he or she will receive updates on this information until the request is released.
The system was designed with the financial world in mind: people who trade in stocks or currencies need real-time access to the quotes they are
interested in. Fast. Clear. Reliable.
Overview:
A typical RT Data Pump framework has a structure as shown in the picture above.
The clients send requests from their browser or application upstream, and requested data and updates come down from the data source to the clients.
A data source feeds data into a Feeder interface.
Clients can either connect directly to the Data Pump or through a Bandwidth Server, which may lessen the strain on the central system. In a large
corporation each branch office could have its own Bandwidth Server, thus reducing bandwidth use of the corporate network: if several users in one
branch office request the same data updates have to be sent from the central office to the branch office only once. The Bandwidth Server will send
the updates to each user after it has received them from the central system.
Technology:
The RT Data Pump system is written entirely in Java. River sees Java as an excellent platform for network based software.
This results in a portable solution, which is essential for the framework to be successful: the nature of the RT Data Pump
is connecting different worlds together. The typical client is sitting behind a web browser on a PC or Mac, while the typical
data source is on a UNIX system or mainframe. Scalability is another advantage: if demand (and thus stress) on the system
grows it is easy to migrate to another, more powerful, hardware platform.
The system has a Bandwidth Server to increase scalability even more: clients can connect to a central Data Pump, but if there are too
many to be handled by one system they can connect through a bandwidth server. If 100 clients are requesting the same quote through the
Bandwidth Server it will send only one request to its feeder. This feeder can in turn be another Bandwidth Server, making the system
virtually endlessly expandable. The Bandwidth Server is transparent to the client and server: the protocol is the same on both ends.
The River Interface Classes have a clear and simple API and can easily be used for customisation: proprietary feeders and custom made Applets
or Applications.
Results:
Performance of the system is very satisfactory. The demands on real-time pricing systems have gone up
considerably, both on the supply side (more instruments, more quotes, many more price ticks)
and on the client side (stock trading based on real-time prices has become a mass market).
Yet the River Data Pump has kept abreast of these developments and is at the centre of many mission
critical applications for our clients.
Even a modest Linux or Windows server with 2GB internal memory can handle up to 30000 simultaneous clients these days.
|