Trade Talk Blog

Trade Talk has been retired. For current content, visit the TT Connect blog.

← 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.

Cookie Settings
Trading Technologies

We use cookies to analyze the usage of this site, personalize your digital experience and serve you tailored advertising content. By clicking “[Accept All],” you grant us permission to use and disclose information about you and your interactions with this site to our third-party analytics and advertising partners. You may withdraw your permission at any time by clicking “[Cookie Preferences]” at the bottom of our website and selecting “[Reject All].” If you withdraw your permission, your digital experience and advertising content may not be personalized or targeted to you directly. You may also reject some types of cookies, which may impact your experience as certain features on our site may be unavailable. For more information about our use of cookies or our privacy practices, please review our Cookie Policy and Privacy Policy.

Strictly Necessary Cookies

These cookies are required for our website's basic features and technical functions. These cookies save information required for the website to function properly and cannot be turned off. These include cookies used for website security, website technical statistics, and site features.

Performance Cookies

These cookies enable us and our third-party analytic partners to analyze site traffic, user navigation and user engagement. These include cookies that analyze number of unique website visitors and their interactions with our website.

Targeting Cookies

These cookies enable us and our third-party advertising partners to build profiles of website visitors, show them targeted advertisements tailored to their interests, or track the effectiveness of advertising campaigns.