Skip to main content

Finsemble basic concepts

Overview

Your organization has a large number of apps from different sources. Not only that, but most likely these apps don’t talk to each other. They might be of different kinds. Some are native, others are Web, and some might be virtual. You don’t want your users to think about technical details. You want them to use the apps and focus on getting their job done. Finsemble can help them through their tasks faster and with fewer errors. To achieve this, the apps need to communicate seamlessly with one another.

Desktop agent

To achieve this seamless communication, you need a desktop agent, such as Finsemble.

A desktop agent serves as a message broker for apps, launching the local apps and facilitating data exchange. A desktop agent unifies a user's desktop experience which is particuarly usefule when they are using many apps from multiple vendors. We call this experienace a smart desktop.

Finsemble goes a step beyond the average desktop agent by allowing apps to be integrated not only logically but also visually. For example, users can organize their apps into groups, snapping them into position across monitors. Finsemble also provides many features for the enterprise such as a customizable UI, notifications, logging, and security.

The best thing about a smart desktop is that it provides a desktop experience but with the convenience of web deployment. After you install your smart desktop on your user's machine, updating their apps or configuration is as easy as updating a web page.

Communication

A smart desktop is a collection of apps and services that all work together. In Finsemble, apps communicate using an API that follow the FDC3 standard. The Financial Desktop Connectivity and Collaboration Consortium, FDC3, is an established open standard for desktop interoperability. It is maintained by FINOS, which is part of the Linux Foundation.

By using the FDC3 standard, you can be sure that every app on your desktop (HTML, native, or virtual) can communicate with every other app that follows the standard, and you can be sure that your apps will work with FDC3-compatible desktop agents other than Finsemble.

See our Interop guide for a quick tutorial about using FDC3.

Integration

Getting started

With Finsemble, there are two kinds of integration, visual and logical. When apps are visually integrated they are arranged together on the screen, such as snapping, grouping, or tabbing together so they can move as a single unit. A set of apps and app groups can form a workspace that you can save, load, and share.

Logical integration (sometimes referred to as interoperability or interop) means that apps exchange data. Apps integrated in this way can be synchronized and can participate in workflows.

Security

Finsemble's runtime is a secured application based on the Electron framework. Finsemble acts as a firewall, protecting the desktop, and intermediates data flow between applications through features such as Select Connect and security policies.

Highly customizable

Finsemble is highly customizable both in terms of functionality and appearance. You can use theming to change icons, logos, fonts, and colors. You can enable, disable, and configure UI features, including buttons, menus, notifications, and so on. Much of Finsemble's functionality is configuration driven, allowing it to be dynamically customized based on a user or their entitlements.

Now that you know what Finsemble can do for you, let’s look at how this all works. Here we provide a high level overview of several aspects of Finsemble, with links to more info.

Apps on a smart desktop

Apps are the foundation of a smart desktop. Let’s look at them first.

Apps in Finsemble

Apps and the interactions between them are the building blocks of a smart desktop. Finsemble supports web, native (such as .NET or Java), and virtual apps (such as Citrix). From the user’s perspective, there is no difference between these types of apps when they are added to a smart desktop.

What if my apps are not FDC3-compliant?

You can include non-FDC3 compliant apps in a smart desktop. Such apps can’t participate in data exchange unless you take additional steps. For example, you can use preloads to bridge web apps with Finsemble. For native apps, you can use Finsemble's native adapters to add functionality. In some cases, a Finsemble service can provide a useful integration tool. A Finsemble service is essentially an app that runs invisibly in the background but which can communicate on the desktop.

Workflows

Users get work done on the desktop through workflows. We defined a workflow as a sequence of tasks that are performed across multiple apps. A primary use of a desktop agent such as Finsemble is to automate such workflows by wiring apps together using FDC3's intents. See our interop guide to start designing workflows.

App services

App services are apps that run in the background. Unlike operating system services, Finsemble's app services can be built in JavaScript, Java, or .NET. App services run only while your smart desktop is running. They perform many useful functions. For example, an app service could receive asynchronous events from an external API (such as a market data feed) and convert those events into FDC3 context broadcasts.

See our app services guide.

Preloads and native adapters

Sometimes a web app needs to behave differently when running in Finsemble from the way it normally does. You can use a preload to alter the app behavior. For example, if an existing app isn’t FDC3-compatible and you can't change the app's source code, you could use a preload to convert the app's internal events into FDC3 intents. The preload is simple a JavaScript .js file that executes in the app's window before the app itself executes.

In native apps you can use one of Finsemble's native adapters to connect to our APIs. Another way to extend native apps is to embed web content in a webview and then use Finsemble's JavaScript adapter to exchange data with other apps in your smart desktop.

See preloads and integrating native apps for more info.

Elements of a Finsemble smart desktop

UI components

The UI is one way for you to communicate with apps. You use UI elements to control individual components, apps, and groups. We provide you with customizable controls that we call UI components. The two most important components are the Toolbar and the WindowTitleBar. The Toolbar and its menus help you manage the overall desktop. The WindowTitleBar provides the header for each app's window. There is only one toolbar, but you can have multiple title bars.

note

Finsemble's UI includes many other components, such as the system tray menu, user preferences, dialogs, and the intent resolver. We won’t focus on them here, but you will see them as you work more with Finsemble.

Toolbar

Finsemble's Toolbar is the bar that appears at the top of the screen when you launch your smart desktop. Depending on how you or your users set it up, the Toolbar can occupy the entire width of the screen, or it can be a smaller, floating app. Users can grab the drag handle icon at the left edge of this bar to move the Toolbar around. If you drag it to either the top or bottom edge of your screen, it will dock with the screen.

The Toolbar's file menu contains important actions that you can customize to fit your users' needs. You can set your preferences here, access the Central Logger to do some debugging. The SystemTrayComponent, which resides in the operating system's tray, can also be customized with these types of actions.

The Apps menu contains all of the apps that a user is entitled to launch on their smart desktop. You can optionally configure your Toolbar to contain multiple menus and then specify which apps go into which menu. For more info, see Toolbar.

The icon to the right of the Apps menu launches the Smart Desktop Designer (SDD), which provides a graphical user interface for configuring your smart desktop. We recommend that you follow the steps in the SDD tutorial.

On the right edge of the Toolbar are buttons for arranging, minimizing, and maximizing apps on the desktop. The bell icon opens Finsemble's notification center. For more info, see Notifications.

WindowTitleBar

The WindowTitleBar is the narrow strip at the top of each app window that typically consists of the app icon, the app's title, and icons for minimizing, maximizing, and closing the window. If the app is FDC3 compatible, the linker icon appears and allows users to join channels so that apps can synchronize on FDC3 context broadcasts (for example, allowing apps to synchronize on a stock symbol).

Most windows have a title bar, and it is natural to think of it as part of the window itself. But in Finsemble a title bar is not a part of the window. Instead, it is considered a separate component that you can customize separately. The WindowTitleBar is often injected into an app's window so that it becomes part of the app itself. Other times it frames the window using an Electron BrowserView. You can read more about how and why this happens in Customizing UI.

Workspaces

Many orgs have a large number of apps. In a well managed org every app is needed by someone, but not all apps are needed by everyone at the same time. It would be unwieldy to open all of them. After all, each uses screen space, memory, and CPU resources even when it’s not needed. Yes, a user can minimize apps, but why clutter the desktop when you don’t need to? Finsemble has a solution to this problem.

When you often use a fixed set of the same apps together, you can group them into a workspace. Give it a unique name, so that it can be differentiated from other workspaces. You can then save it to storage and retrieve it when you need it. When you reload a workspace, your apps will relaunch and your desktop will look exactly the same as it did when you stored it. For example, you can have different workspaces for different workflows. You can have multiple workspaces on one smart desktop and switch between them as needed. Keep in mind that a smart desktop can span multiple screens, so your workspace can spread out to them comfortably.

You use workspaces even if you don’t think about your smart desktop in this way. If you don’t define a workspace, there is always at least one that you are running. From the user’s perspective, a workspace is just an arrangement of apps they need. Under the hood, a workspace is a named array of windows that can be managed as one unit. When you shut down your smart desktop, Finsemble saves the current workspace into storage, and retrieves it from the storage before anything else. This way, a user sees continuity of their work.

note

A workspace is more than just a set of apps. It also includes the layout, grouping windows, and channel links. In addition, it can preserve the state of the apps. As a result, a user returning to the workspace experiences continuity and doesn’t need to do any additional work to get back exactly the same desktop that they saved.

Window management

Finsemble provides a suite of functions that let a user move and organize their windows. We call this suite window management.

Window management is responsible for such functionality as minimizing, maximizing, snapping, grouping, auto-arranging, or tabbing windows together.

For more info, see the Windows and workspaces area of our documentation.

Interop (FDC3)

So far we have looked at the components of a smart desktop, including windows and workspaces. But the real power of a smart desktop is the ability of all these components to interact and communicate.

At the heart of the Finsemble interop is FDC3, which we have already met at the beginning of this tutorial. Only those apps that are FDC3-compatible can participate in the interop. If you have an app that isn’t compatible, you can modify its code, or you can use preloads or native plugins, as explained earlier.

For more info, see Interop.

Configuring Finsemble

We now know that a smart desktop consists of apps and services, and that most apps have windows for users to interact with, while services might or might not have one. Apps communicate via FDC3 channels, but there is more to app behavior than communication. Each app and each service, and many other aspects of your smart desktop, needs to be configured before anyone can use it.

There are 2 ways to configure your smart desktop and everything in it. The easier one is using the Smart Desktop Designer (SDD). This designer is a visual interface that allows you to specify the behavior of your apps and the desktop. In fact, when you use SDD you don’t need to think about the parameters and values you need to set. You just focus on what you need your smart desktop and apps in it to do, and the SDD does the rest.

For a quick look at how SDD works, check out Build your smart desktop with me. You can skip the optional parts if you’re just looking to dip your toes in a subject, or you can do the full tutorial if you want to learn more.

You can configure a lot of parameters by using the SDD, but for some more complex requirements, or if you have an existing smart desktop that you want to modify, you need to do some coding. Specifically, you will need to configure various parameters in your appD.json file.

See also

App services

Build your smart desktop with me

Central Logger

Controlling information flow

Deploying your smart desktop

Enterprise deployment best practices

FDC3 resources blog post

Integrating HTML applications

Integrating native apps

Interop

Notifications

Preloads

Process management

Security policies

Toolbar

Upgrading Finsemble