Finsemble: Definition Of Key Terms

Finsemble Framework Also known as just Finsemble. A cooperating set of software components and microservices used to build HTML5 desktop applications within secure OpenFin containers.
OpenFin Container A secure run-time "wrapper" executing on a desktop (e.g., Windows, OSX) to enable the Chromium browser to fully run locally, essentially enabling HTML5 web pages to load and execute within a desktop environment (optionally decoupled from the Internet)
Finsemble Application A desktop application built on Finsemble, composed of Finsemble Components (at least one, but typically multiple). Depending on context, might mean a specific application instance running on a specific computer
Finsemble Component An application-like unit of functionality, simular to an "applet", running in its own window within a Finsemble Application. A component has a corresponding URL identifying the HTML5 + JavaScript that implements its functionality. Example: Finsemble Components are Advanced Charts, Chat, and News. A Finsemble Component runs in a Finsemble Window, or more precisely an instance of a Finsemble Component runs in a Finsemble Window. Likewise, a Finsemble Window always contains an instance of a Finsemble Component. A component may have multiple active instances within an application, each running in its own Finsemble Window (e.g., multiple charts window, multiple chat windows). A Finsemble Component may be a snippet of HTML5 from a web page that has no special customization or knowledge of Finsemble, although then its integration into the Finsemble Application is limited.
Finsemble Window A Chromium window (within an OpenFin Container) that has been injected with Finsemble capabilities. These injected Finsemble capabilities allow the window to plug into the overall Finsemble Application, cooperating with other Finsemble Components and Microservices. Again, a Finsemble Window always contains an instance of a Finsemble Component
Finsemble Microservice Active independently-threaded JavaScript modules providing centralized functionality throughout a Finsemble Application. Microservices (similiar to cloud services) typically don't have a UI; however, like components they run within the Chromium browser in an OpenFin container. Microservices provide capabilities to Finsemble Components as well as other microservices. Examples include the Event Router Microservice, Launcher Microservice, Linker Microservice, and Chat Microservice. Typically, each microserver has a corresponding Client API. All communication to and from microservices is through the Event Router (again, itself a microservice); however, this event messaging is usually hidden within the client APIs. A microservices is sometimes simply called a service.
Connector Microservice A Finsemble microservice that connects to one or more external cloud services like datafeeds or databases.
Finsemble Client API A JavaScript API that interfaces to one or more microservices using Event Router messages. Some client APIs are defined for specific microservices, like the LauncherClient API is specifically for the Launcher Microservice. Other clients may provide composite functionality out of one or more existing microservices, like the DialogManagerClient API builts on the LauncherClient. Depending on the microservice, some parts of the API functionality may be implemented on the client side, with the centralized functionality residing on the microservices side (this option of splitting functionality between the client and the microservice provides design flexibility when defining a new microservice and client API). As previously noted, the RouterClient API is distinct because all client APIs use it to communicate with other microservices.
Finsemble Library The collection of Finsemble Client APIs that have been packaged together into the FSBL namespace for easy component access (e.g., FSBL.Clients.RouterClient.transmit(..), FSBL.Clients.LauncherClient.spawn(..)). Only Finsemble Components use the library (microservices directly access the Client APIs to use other microservices).
Microservice Client A client to a microservice, either a component or another microservice. Client-to-microservice communication is always though Event Router messaging.
Component Client A Finsemble component that is a client of another Finsemble Component that exports its own interface (rare but sometime applicable). The Event Router provides the component-to-component communication.
UI Component A special type of Finsemble Component that implements a portion of the Finsemble Application's UI, such as the toolbar or workspace menu. Although UI components are implemented like other Finsemble components, and can be customised through code, they are conceptually a part of the Finsemble Framework for most applications.
Application Component A Finsemble Component that provides part of the Finsemble Application, like Advanced Chart, Chat, and News. This is the typical type of component developed to build applications (as opposed to the UI Components within the Finsemble core).
Finsemble Event Router The center point for all Finsemble communication. The event router sends and receives event messages between windows, enabling communication between all Finsemble Components and services through three types of event-messaging: Listen/Transmit, Query/Response, and SubPub.