Skip to main content

Introduction to Finsemble

Finsemble is a desktop integration platform that connects all of your apps, modern or legacy, in-house or third-party. This is done with little to no development work; Finsemble cuts development time to integrate separate applications from weeks or months to hours or days. The end result of these integration efforts is a cohesive smart desktop consisting of separate but interconnecting apps.

Finsemble eases integrating your smart desktop with your enterprise infrastructure, enabling workflows and team collaboration.

You can integrate the workspace to remote resources such as databases, single sign-on, directories, and other workspaces. Workspaces can be exported from one user and shared with others. Use workspaces to push a standard setup out to several users in a group. Moreover, end users can have a smart desktop on multiple computers and pick up where they left off when switching machines.

Finally, Finsemble allows the use of remote access technologies, such as Windows RDP, so that a smart desktop can be operated from a remote location.

Different ways to configure

Finsemble is config driven. This means that you don’t have to do a lot of coding to achieve app interoperability. All you have to do is configure Finsemble and you can add apps, connect them, customize the look, and so on. There are 2 ways to do this: visually, by using the Smart Desktop Designer (SDD) and programmatically, by using the Software Development Kit (SDK). Depending on your skills, you might find one or the other easier and faster. But they aren’t the same. While SDD allows you to quickly configure a useful smart desktop, it doesn’t offer all the features. If you want to access everything Finsemble has to offer, you will need to use the SDK.

In our documentation, the topics about SDD are marked with the SDD icon . The topics about SDK are marked with the SDK icon . If a topic doesn't have an icon, it contains general information, not specific to either SDD or SDK.

note

We recommend that you use SDD first if you’re new to Finsemble.

Smart Desktop Designer (SDD)

The Smart Desktop Designer (SDK) is a visual interface that helps you configure Finsemble without writing code. In fact, you can implement an integrated, fully functioning desktop with little or no development work. You can make changes and customize it as needed. When you're happy with your design, you can publish it and deploy it to your end users.

SDD makes it easy to build and deploy smart desktops for teams of end-users. In a few steps, you can:

  • design and integrate a portfolio of apps for users. You can add any apps. Finsemble supports interop for FDC3-compliant apps;
  • style and theme the user experience from start to finish;
  • publish a desktop solution to teams of end-users;
  • package your desktop project for advanced development by technical teams.

Software Development Kit (SDK)

SDD is powerful and you can achieve a lot by using it, but to get the full power of Finsemble, you need to write some code. To help you with that, we provide the Finsemble SDK. By using it, you can perform the same configurations as with SDD plus a lot more.

note

We’re continuously adding new features to SDD, and so you will be able to do more with it with every release.

Integration

Finsemble supports both visual and logical integration.

Visual integration

All applications launched by Finsemble share an aesthetic. This look and feel is defined by your organization through easy white labeling. Each window can participate in a range of thoroughly considered, mature UX features. Windows can snap, dock, group, tile, and tab. Windows launched by Finsemble are persistent between sessions, reloading in the same position and with the same content. These capabilities are available for all applications out of the boxwith zero coding.

Logical integration

With Finsemble, applications communicate and work together no matter the language they're written ineven if you don't have control over the source code. This allows you to create custom workflows. For example, a user might share a ChartIQ chart with a client—with all data layers and annotations—through Symphony chat. Workflows can also occur when developer-created rules trigger events. For example, when a user shares a ChartIQ chart with a client over Symphony, a CRM like Salesforce can automatically log this activity for tracking purposes.

  • If you're a developer who wants to get their hands on the code, check out the Finsemble seed.
  • If you're a developer who wants a better insight into our architecture, take a glance at our tutorialscheck out the Architectural Overview as a starting point.

Have questions? Contact us at info@cosaic.io.

The Finsemble experience

Finsemble unifies the desktop experience. Based on your business needs, different packages of features are available. The core Finsemble functionality is contained in Workspaces. From this foundation, you may add on beautiful and functional UI, connect to your enterprise infrastructure, or integrate binary apps.

Finsemble Workspaces

Finsemble Workspaces lets you use familiar web technologies to create a unified, multi-window, multi-monitor desktop environment. This smart desktop will streamline the way your end users work. Lose the tabs, copying and pasting, and rekeying. Create synergy between the applications your end users actually want to use.

Integrate HTML5 applications

Integrate HTML5 apps without code changes

Finsemble Workspaces allows deep integration of web apps into your desktop experience. Critically, this allows a developer to “Finsemblize” a web-deployed application without changing how it is deployed to browsers. This can be done even when you do not have the ability to make code changes to the component. Finsemble-specific code is loaded on-the-fly when the application is loaded onto the desktop. Workspace integration, symbol linking, and deep workflow integration (e.g., sharing data across the Router, pre-populating forms, automating tasks) are all possible without making code changes. This dramatically reduces integration times while reducing regression risk for stable assets.

Workspace manager

Save and restore workspaces

Between sessions, Finsemble will save and relaunch all windows in the same position with the same content. End users can save multiple workspace layouts and easily switch between groups of applications for different tasks.

Security

A secure, enterprise-grade Electron

Finsemble uses Electron as an underlying "container." However, Electron must be secured so its robust functionality cannot be exploited. As such, Finsemble Workspaces acts as a firewall that blocks access to Electron's API altogether, utilizing only those functions you specifically call.

Window management

Snap, dock, and group windows

Window management provides power steering. End users can snap windows together or dock them into groups. This lets end users handle cluttered workstations with dozens of applications.

Drag and drop data sharing

Selectively drag-and-drop data between components

End users can instantly transfer data between windows with a simple drag and drop action. For example, Salesforce contact information could be dragged into a Symphony chat.

Interop

Automated inter-application workflow

Multiple components can synchronize on a shared context using Finsemble's "Interop" API (which complies with Linux Foundation's FINOS "FDC3" standard). For example, linking applications together by stock symbol allows all applications to update their data automatically when the stock being viewed changes. Finsemble's "Linker" uses a powerful but simple paradigm of colored "channels" to assign groups of components to participate in synchronization.

HTML UI components

Customizable controls

Most HTML5 UI tool kits are only meant for building single page applications. Finsemble provides UI components specific to the desktop paradigm.

White labeling

Complete, themeable interface

Finsemble comes with CSS files designed to simplify the process of white labeling the UI. The CSS has been carefully crafted with semantically meaningful variables. Developers can easily change font, color, and general appearance of interface sections by overriding any of a number of core variables. For deeper stylistic changes, Finsemble makes provisions for overriding any CSS style as part of the build configuration.

Notifications

Toast notifications for any component

Finsemble Workspaces makes use of pop up (toast) notifications. Developers can leverage the API so that their components can create notifications. System messages and alerts are automatically routed through the notification system. Unlike operating system notifications, these notifications can be interactive, allowing end users to click on them to take action.

Router

Communicate between components

For communications amongst desktop services, components, or outside the container entirely, an event infrastructure provides high level protocols. At the center of this functionality is the Router API. Three abstractions are provided: Listen/Transmit, Query/Response, and SubPub.

Central Logger

Diagnosis and debugging across multiple windows

Multi-window HTML5 application debugging is inherently fragmented; by default, single logical threads span multiple windows and must be tracked across multiple consoles. The Central Logger is a comprehensive dev tool that collates console messages across the entire Finsemble application.

More about managing connectivity

Finsemble eases integrating your smart desktop with your enterprise infrastructure, enabling workflows and team collaboration.

You can integrate the workspace to remote resources such as databases, single sign-on, directories, and other workspaces. Workspaces can be exported from one user and shared with others. This is often used to push a standard setup out to several users in a group. Moreover, end users can have a smart desktop on multiple computers and pick up where they left off when switching machines.

Finally, Finsemble allows the use of remote access technologies, such as Windows RDP, so that a smart desktop can be operated from a remote location.

Authentication

Link to external authentication

Finsemble allows developers to add an authentication component to match their specific application's needs. This includes authenticating access to the entire application or authenticating access to specific components within the application. Finsemble is agnostic about the underlying authentication mechanism, but provides both a cohesive end user UX and framework abstraction. Further, some commonly used methods are supported out of the box, such as leveraging a user’s Windows login.

Dynamic configuration

A single implementation allowing for multiple interfaces

Finsemble is designed to be inherently configurable because of one simple fact: you shouldn't build a huge system and hard code everything. Finsemble’s config can be assembled from multiple pieces, allowing you to organize your configuration logically. Finsemble’s config is dynamic, so your application can adapt to entitlements, environments, and preferences.

Workspace and component awareness

Users have access to a single search box that can federate search requests across multiple back-end services and display the returned data in a single result set. Results are actionable, allowing an end user to click on the result to bring up the data. For instance, searching for "Apple" could bring up results for both market data and researcha click on the results will bring up that data in a corresponding component.

Storage

Save data to local or remote DB

Finsemble provides a persistence framework for connecting to external persistent storage (i.e., databases, tuple stores, etc.). Workspaces, windows state, and other Finsemble functions automatically use the persistence framework, eliminating the need for hand wiring. Components can use the Storage API to save and restore state, ensuring that they are reconstituted appropriately during workspace reloads.

More about UI capabilities

In addition to the UI capabilities we've talked about earlier, Finsemble has capabilities that enable it to handle large numbers of apps and tools to develop a customized user interface.

You can access our library of pre-built UI components so that you can change or augment the behavior of Finsemble itself.

UI controls

Atomic-level UI customization

Finsemble breaks UI components down into individual "controls": atomic-level UI building blocks which you can use to build your own componentry or customize the built-in componentry. This goes far beyond simple theming and allows for true UI extensibility.

Advanced window management

Elegant tabbing and tiling of windows

Finsemble provides additional window management functionality to your end users. This allows end users to see their entire spread of data and then zoom down like a hawk into the minutiae of their work. Windows can be "tiled" on to one another. When one window is moved towards the other, they can be automatically resized in elegant fractals. Moreover, completely separate applications can exist as tabs within a single window. This allows for a broad extensibility of desktop real estate, and delivers convenient functionality that users are familiar with.

Hotkeys

Leverage keyboard shortcuts across all of the apps in your workspace without fuss

It's hard to use keyboard shortcuts with web apps because they only capture keystrokes when the browser window has focus. Finsemble solves this issue by capturing keystrokes globally, so hotkeys can be used no matter what. Provide your users with customized keyboard shortcuts to improve their efficiency.

Distributed store

Scalability for complex applications

The Distributed Store reduces complexity by operating as a central repository. This reduces the number of connections that windows need to maintain. The Distributed Store hosts business logic which can be invoked by any window that it’s plugged into. This lets the store synchronize state across window boundaries. Multiple windows can share data, yet remain loosely coupled.

Finsemble native

Finsemble native allows you to leverage existing applications written in desktop technologies such as Java or .NET (C#, WPF). Without any coding, native applications can be launched and then managed as part of a workspace: they can snap, dock, and participate in workspace rehydration.

For applications that you can modify, Finsemble native provides language adapters, allowing you to make use of the Finsemble API directly from those languages.

Additionally, we provide an implementation of a window title bar in Windows Presentation Framework (WPF) that matches that of our HTML5 version, so you can fully integrate those applications.

Integrate legacy applications

Visual integration for native applications

Finsemble dramatically simplifies the process of building a single application from separate components. Incorporate native applications into a Finsemble Native workspace using only configurationno code changes or code control required. Once integrated, native applications behave like any other Finsemble component, obeying layout, window management, and workspace management rules.

Bloomberg terminal connect integration

Connect the Bloomberg Terminal to all of your applications using Finsemble

With Finsemble, all your applications can exchange information with each other, as well as communicate and share data with Bloomberg® to create one fluid system.

Even with the breadth and depth of the Bloomberg® Terminal’s data and analytics, users rely on a combination of proprietary and third-party applications, each with its own data set, functionality, and place in their workflow. Finsemble embraces and extends the Bloomberg® Terminal Connect API to help you deploy the smart desktop end users need.