Financial Web Technology
The evolution of streaming web servers
First Generation
Technology has come a long way since the team behind Caplin developed one of the world's first data streaming web servers back in the late 1990s. Nowadays, basic streaming (or "push") web servers are widely available.
Most of these servers use "first generation" technology, designed to stream raw data to a web browser, often with no way of handling replies and little awareness of the content of what they are streaming. Their primary function is simply to trick the browser into keeping an HTTP connection to the server, and to manage large numbers of concurrent sockets efficiently.
Second Generation
Recently, the wide adoption of object-oriented programming techniques has resulted in the development of streaming servers that offer object transport and object remoting capabilities. These are designed to give a browser-based application access to a set of objects that replicate the state and structure of similar objects on the server.
While this is a generic technique not specific to Financial Services, it has been used for a number of online trading applications, and can speed up development of such applications. It represents the second generation of financial web technology.
There are some major disadvantages to this approach, however. Its inherently tightly-couple nature makes it very fragile: if object structure changes on the server side, the client must also be modified or the client application will break. And it makes it hard to connect one client to many servers (fast becoming a vital requirement for multi-product trading) since these typically use different object representations of similar trading entities. Further, it offers little support for most of the domain-speciic behaviours needed when building any trading system.
Third Generation
The third generation of financial web technology is the first to be specifically designed for financial trading applications, rather than adapted from a more generic offering. It uses a domain-driven design approach to embed a deep understanding of trading workflow and data structures within the system.
Caplin Xaqua is the first complete third-generation system.
Key features of this third generation technology include
- the presence of a powerful anti-corruption layer
- embedded pricing, trading workflow, permissioning and tiering models
- configuration rather than coding when adding new products and functionality
An anti-corruption layer (one of the cornerstones of domain-driven design) is an isolation layer between systems that prevents them from leaking into one another. Where a bank is offering trading in a browser but that trading effectively happens on its own trading systems, making sure that the each side is unaffected by unpredicted behaviour on the other is vital. The anti-corruption layer in Caplin Xaqua is implemented via a set of Abstract Financial Objects.
Each of these Abstract Financial Objects encapsulates the behaviour of a particular domain within the trading system. These domains include trade execution, price information, user permissioning and tiering. Building objects that understand how each of those domains work, and that can be configured to a particular customer's system requirements, means faster implementation and lower costs and risks. It also means the bank can focus its own resources on adding value and delivering its own services through the single-dealer platform to its own users.
Above all, third-generation financial web technology directly implements the core domain functionality required for financial trading, rather than requiring this to be implemented as many extra layers.