Getting started with Finsemble
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.
Finsemble is one such agent. The agent serves as a message broker for apps and a general manager of the desktop, launching the local apps and facilitating context sharing. Finsemble does this, but it also does more than that. It unifies the desktop experience so that the user doesn’t have to think about their desktop.
A successful smart desktop agent is almost invisible. In other words, it’s never in the way of a user. The apps are integrated not only logically but also visually, and the windows can act as a group. We call such a desktop a smart desktop. Finsemble achieves this by handling all the app communication, notifications, and the like, behind the scenes. Once you set up the smart desktop, users rarely have to think about it, it just works. Finsemble does all the work behind the scenes, hosting web components, interacting with native apps, and keeping everyone secure. Not only that, but it can also handle virtual apps and integration with enterprise infrastructure, so not everything on a smart desktop is local.
Communication
A smart desktop consists of apps and services that all work together. They communicate with one another by using standardized context data, exchanged via communication channels or passed directly with a requested action known as an intent, as specified in the FDC3 Standard. FDC3 stands for the 'Financial Desktop Connectivity and Collaboration Consortium', and is the open standard of interoperability between apps on the financial desktop. By using this standard, you can be sure that every app on your desktop can communicate with other apps that also follow the standard. It doesn’t matter if your app is HTML 5 or native, new or legacy, in-house or third party. Any app can work with any other app as long as both are FDC3-compliant.
Integration
When apps work well together, we say they are integrated. There are two kinds of integration, visual and logical. Visual integration is surface level and is more about aesthetics. This includes app windows snapping, grouping or tabbing together, so they can move and act as one visually. Together, they form a workspace that you can save and reuse or share. But that’s as far as it goes.
Logical integration, also known as interop or interoperability, is on a much deeper level. Logically integrated apps can exchange data and act on information together. You need logical integration to create workflows. We’ll look at interop in a bit more detail in a moment.
Any app can participate in the interop as long as it is FDC3-compliant. If an app isn’t compliant, it can participate in the visual integration, but not in the logical integration, and therefore not in the interop unless we do some additional work.
Security
With all this interoperability and easy communication, you might be concerned about security. We take security seriously. Finsemble runs on Electron, which has some security features, and we also added security features of our own. Some features of interest include the ability to control information flow by specifying trust relationships, and security policies that restrict use of system functions.
Highly customizable
Finsemble is highly customizable both in terms of functionality and in terms of looks. In fact, you can change just about anything about the appearance of your smart desktop. You can change icons, logos, fonts, colors, and so on. You can enable, disable, and configure UI features, including buttons, menus, notifications, and so on. The desktop is config driven, and can dynamically customize itself based on the user, their team, or their desk. You can also rebrand it to match your requirements. We call this flexibility whitelabeling.
Now that you know what Finsemble can do for you, let’s look at how this all works. Here we provide a very high level overview, and if you want to learn more, we tell you where to find 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 their interactions are the building blocks of a smart desktop. There are no restrictions on what type of an app you can include in your smart desktop. We support web, native, hybrid and virtual apps. From the user’s perspective, there is no difference. They can launch and interact with each app the same way, not worrying about app type, how to launch it, and so on.
What if my apps are not FDC3-compliant?
It is possible for an app to be on the smart desktop and not be FDC3 compatible. Such apps can’t participate in data exchange directly and can only be visually integrated as is unless you do some additional work. This might include using a preload, building a plug-in for a native app using our native adapters, building a service to integrate with external API, or starting a native app with command line arguments. We will look at it in a bit more detail in a moment, but if you are interested, check out our documentation. There is a list of suggestions at the end of this topic.
Workflows
A user gets their work done by using a workflow, which is a defined sequence of tasks that they perform by using different apps that communicate with each other. Finsemble will help you build many different workflows. You have control over these, as you can restrict the user from doing things you don’t expect. On the other hand, you can also give the user the freedom to use the apps and workflows in any way they see fit. Your choice here depends on the needs of your organization. See Enterprise deployment best practices for details.
App services
In addition to apps that users use, you can also have modules that perform tasks or functions for other apps. For example, you can have an app that communicates with an external API, fetches data from a resource, or manages a shared websocket connection. We call these app services. A user doesn’t launch an app service. Instead, an app service starts automatically during Finsemble's boot sequence so that it is available to apps that need it as soon as the user logs in. An app service doesn't have a visible user interface because a user doesn’t normally interact with it directly, so its window is hidden by default.
You can build an app service in any supported technology, including JavaScript, .NET, and Java.
More about app services.
Preloads and native plug-ins
Sometimes you have an app that performs the task you want, but is missing some functionality you need. One example can be an existing app that isn’t FDC3-compatible. You still want to use this app and you want it to participate in data exchange, but you don’t want to or can't change its code. Maybe the code is old and fragile, or perhaps you don’t even have the source code for this app. In this situation you can use a preload. A preload is simply a piece of code, usually JavaScript, that runs before the app is loaded. It can add functionality to the app, such as zooming, or FDC3-compliance.
Preloads work for JavaScript apps, but if your app is not JavaScript, all is not lost. If your native app has a plugin framework, you can extend it in similar ways by building a plugin that uses a Finsemble native adapter to connect to our APIs. You can also embed web content in webviews and use the Finsemble JavaScript adapter to connect.
See more about preloads and about integrating native apps.
Elements of the Finsemble smart desktop
To manage all the apps on your smart desktop and integration with your enterprise infrastructure, Finsemble provides a set of 'desktop services'. These are similar to the app services that perform work for your applications, but instead provide services to the whole desktop. These are configurable in different ways, some by the admin and others by the users. Many of these work behind the scenes.
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 2 most important components are the toolbar and the window title bars. The toolbar and its menus help you manage the overall desktop, while the title bar is specific to a window. So, there is only one toolbar, but you will have multiple title bars. Let’s look at these in more detail.
There are other components of the Finsemble UI. These include the system tray menu, user preferences, dialogs, and the intent resolver. We won’t focus on them here, but you will meet them all when you work more with Finsemble.
Toolbar
The Finsemble 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, it can occupy the entire width of your screen or it can be smaller. In either case, it always has the same elements unless you specifically configure it differently. You use the toolbar to manage your entire smart desktop.
Grab the drag handle icon at the left edge of this bar to move it around. If you drag it to either the top or bottom edge of your screen, it will dock to it.
The Finsemble menu allows you to access important actions, which you can customize to fit your needs. You can set your preferences here, access the Central Logger if you need to do some debugging, visit our documentation for more information, or restart the desktop. This menu is also available from the system tray icon.
The search icon is what you expect. The Build a desktop menu next to it helps you manage workspaces. It also allows you to launch the SDD.
The next dropdown menu, Apps, is something you might want to customize. Initially, it contains all the apps that a user can launch on their smart desktop. You can keep it as is, or you can create your own custom menus. For more info, see Toolbar.
The icon to the right of the Apps menu launches the Smart Desktop Designer (SDD). Use it to configure the desktop you want. We recommend that you look at the tutorial about SDD as your next step.
On the right end of the toolbar we’ve placed buttons that arrange apps on the desktop, and the bell icon for reaching the notifications. For more info, see Notifications.
Title bar
You are already familiar with a window title bar. It’s the narrow strip at the top of a window that typically consists of the app icon, the title, and some icons that you use for minimizing, maximizing, or closing the window. There could also be other parts to the title bar, including a linker icon that you can use to specify which channel you want the app to join.
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. This component can be injected into the window, so that it appears to the user that the window and its title bar are one unit as usual. (The alternative to an injected title bar is browser view, but this is out of scope for the introduction.)
For more info, see 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.
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.
Where to go from here?
Now that you know a little bit about Finsemble, you can choose your next steps. Your choice depends on your role, your interest, and on your technical aptitude. Here are our recommendations.
If you are a business decision maker
If you want to create a basic smart desktop, or if you want to evaluate Finsemble more thoroughly, we recommend that you:
- Go through the full SDD tutorial, walking through all the steps, including the ones marked optional.
- Bundle the desktop.
- Optional: learn more about FDC3, which is the foundation of our interop.
- Optional: do the FDC3 workbench tutorial to see FDC3 in action.
If you are a smart desktop developer for your company
In this role, you will need to learn more technical details about Finsemble. We recommend that you:
- Go through the full Build your smart desktop with me tutorial, walking through all the steps, including the ones marked optional.
- Learn the FDC3 basics. Teaching FDC3 is out of scope for us, but we have a blog post that lists helpful resources.
- Optional: Do the FDC3 workbench tutorial to see FDC3 in action.
- Learn about interop.
- Try your hand at integrating HTML applications.
- Optional: If you support native apps in your own smart desktop, check out Integrating native apps.
- Learn more about preloads.
- You will need to optimize your desktop for memory or for performance. Learn more about process management and optimization.
- If you are responsible for deploying the smart desktop for your organization, check out Deploying your smart desktop.
- If you already have a smart desktop deployed and need to maintain it, check out Upgrading Finsemble.
After that, you can look up anything you need in our documentation.
If you are an app developer for smart desktops
In this role, you don’t need to go deep into the details of Finsemble deployment and management, because someone else is doing this already. If this is you, you’re either working in an enterprise that creates their own desktop apps, or you are a vendor creating apps for sale. Either way, here’s what we recommend for you:
- Go through the full SDD tutorial, walking through all the steps, including the ones marked optional.
- Learn the FDC3 basics. Teaching FDC3 is out of scope for us, but we have a blog post that lists helpful resources.
- Do the FDC3 workbench tutorial to see FDC3 in action.
- Learn about interop.
- Try your hand at integrating HTML applications.
- Optional: if the org uses native apps, check out Integrating native apps.
- Learn more about preloads.
This list guides you through the basics you need to know before you start developing your apps. If you also want to learn more about Finsemble in general, take a look at the list for the desktop developers.
See also
Build your smart desktop with me