Trade Talk Blog

The official blog of Trading Technologies, your source for professional futures trading software.

← Back to Trade Talk Blog

How Trading Technologies leveraged OpenFin and the web platform to build the most performant front end in the industry.

Nick Kolba OpenFinThe following is a guest post authored by Nicholas Kolba, CTO at OpenFin. With 19+ years in software development, Nick has focused on bringing web and open source technologies into finance for a majority of his career—much of it at Thomson Reuters working on the Eikon platform.

OpenFin is the financial industry’s first common operating layer, enabling rapid and secure deployment, native experience and desktop interoperability. The world’s largest banks and trading platforms use OpenFin to deploy desktop applications both in-house, and to their buy-side and sell-side customers. With Trading Technologies’ new TT Desktop, TT adopted the OpenFin platform to deliver an HTML5-based trading application on par with the performance of their legacy C++ application.

At OpenFin, we were blown away when we saw what TT has achieved with their new TT Desktop. The application, which scales to 16 monitors of low-latency data presentation, dispels all previously held industry conceptions about HTML5 performance.

There are many lessons to be gleaned from how TT engineered their application, but the key ones are:

  • Use Canvas for low-latency updating and to leverage GPU processing.
  • Use “service workers” and “shared web workers” for multi-threading in JavaScript.
  • Use OpenFin to bring this into a stable, multi-process web application capable of workspace persistence—even across multiple monitors.

Let’s take a closer look at each of these.

Canvas

Canvas brings two major advantages for scaling high performance, multi-screen applications:

  1. Hardware acceleration: Canvas leverages GPU rendering—whereas typical HTML and CSS are rendered using CPU.
  2. Memory efficiency: Canvas uses significantly less memory than HTML since it doesn’t use DOM (i.e., XML) to manage rendering and state.

Both of these benefits are magnified as you scale up the number of screens you have in use.

Service Workers, Web Workers and Shared Workers

These are powerful features of modern browsers. Service workers act as local proxies and can enable offline support, sharing of resources between multiple processes, pre-fetching, etc. Web workers allow the creation of additional JavaScript threads, allowing for heavy processing to not block rendering—and vice versa. Shared workers allow a web worker to be shared across multiple renderer process.

Multi-process Apps with OpenFin

If you try to build a high-performance, multi-window application directly in a browser, you’ll quickly find that you lack the APIs to properly handle the control, positioning and persistence of windows. But even more critical than this, you will find that you lack the control over processes that is necessary for fine-tuning performance. In a commercial browser, multiple pop-up windows will share the same renderer process, ultimately bottlenecking UI events for the browser. With OpenFin’s APIs, developers can control when new renderer processes are spawned, as well as where windows are positioned—or even if windows are visible. The OpenFin runtime will also persist the window state and positioning of all the windows for an app, even on multi-screen displays.

Breaking the Browser Tab

HTML5 and modern web technologies provide an incredible platform for developing apps that are great looking, highly performant and fast to build. When combined with OpenFin, developers now have the ultimate platform for high-performance financial applications.

TT has broken the browser tab and created an application that can seamlessly scale across large numbers of screens without slowing down. We at OpenFin are all looking forward to more innovative work from TT as well as our continued collaboration.