OpenFin Anywhere

OpenFin Anywhere brings core OpenFin capabilities to standard web browsers and mobile devices, enabling developers to build portable JavaScript-based applications that can run seamlessly across desktop, web, and mobile environments.
Key components include a flexible layout system, cross-origin interoperability, and UI elements designed for complex enterprise workflows.

Key components

Several components combine to provide the functionality of OpenFin Anywhere:

  • Web-based layout to lay out web content in side-by-side views

  • Web interop for interoperability within a web application

  • Cloud interop for interoperability across devices

Web-based layout

The @openfin/core-web JavaScript library provides a flexible windowing and tabbing system within a web browser, using the same underlying layout engine as OpenFin's desktop offering.
It enables end users to customize layouts by dragging and resizing content areas.
It can load layouts (snapshots) that were saved in the desktop environment.
The web layout functionality can be used for applications running in a web browser or for progressive web apps (PWAs) on a mobile device such as a tablet.

Interoperability

OpenFin provides two options for interoperability for web-based applications:

  • Web interop supports communication among iframes within a browser tab, such as those created with the web layout APIs.
    The @openfin/core-web library provides web interop capabilities.

  • Cloud interop supports communication across devices, including desktop, web browser, and mobile.
    The @openfin/cloud-interop library provides cloud interop capabilities.

With web interop, the application provider hosts a web-based interop broker on the same domain as the web application.
With cloud interop, OpenFin provides an interop broker as a cloud-based service.
Any application that is a client of that cloud-based interop broker can send and receive information with any other same-user client of the broker on any device.

Both web interop and cloud interop are compatible with the FDC3 standard for financial application interoperability.
Both of them support major browsers, including Chrome, Safari, and Edge.
Both enable communication between application components from different origins.

How it works

You build your web application as a "shell" that incorporates OpenFin Anywhere components:

  1. Create a single-page web application using your preferred framework (React, Angular, etc.).

  2. Use the @openfin/core-web to add layout and web interop capabilities.

  3. Hand over portions of the DOM to OpenFin's layout system for rendering content.

  4. Use APIs to control layout, handle interop events, display notifications, etc.

OpenFin Anywhere uses iframes to isolate and connect application components:

  • Each content area is wrapped in nested iframes.

  • An outer iframe provides the OpenFin wrapper and APIs.

  • An inner iframe contains the actual application content.

  • Hidden iframes facilitate cross-origin communication.

Cross-device support

The primary focus for OpenFin Anywhere is on desktop and tablet browsers.
For tablets, it can be implemented as a progressive web app (PWA).
It enables building a single application version that works across devices.

Deployment options

Applications built with OpenFin Anywhere can run entirely in standard web browsers; no installation is required.
Such an application can be deployed as a PWA for improved performance and offline capabilities.
The cloud interop service enables cross-device messaging, with on-premises options available.

Differences from desktop

The performance of an application built with OpenFin Anywhere may differ from a similar application built with OpenFin's desktop libraries, based on browser limitations and available resources.
Complex desktop layouts may need simplification for optimal browser performance.
Some advanced windowing capabilities are not available in the browser environment.