Introduction
Flow Director is:
a sophisticated DevOps platform for all kinds of users, from beginners to experts. It enables the development, deployment, execution, and debugging of flows from a single web-based orchestration console,
an Integration platform that can connect all messaging systems (cloud and on-premise), databases, RESTful services, and can present any flow as a RESTful web service,
powerful Analytics capabilities delivered as flow components that produce the data for real-time dashboards,
an internal runtime based on SwiftMQ CE that natively supports JMS, AMQP, and MQTT protocols so that those clients can directly connect to Flow Director,
unlimited scalability by just adding more SwiftMQ nodes to the network,
a self-contained platform that is used for development and as runtime.
Apps
Flow Director is organized in Apps. Each app is independent of other apps and fully isolated, even if flows from different apps run on the same router node.
An app contains the complete authentication and authorization for this particular app. A user logs into an app, not into Flow Director. You can create users with different rights, which is realized through rights on menu entries.
Apps are created and managed through the System app.
Flows
Flow Director uses the Flow-Based Programming paradigm. Functionality is provided as Flow Components which are organized in Flow Component Libraries. Flow components are connected, and the result is a Flow.
Flow Component Libraries
Flow component libraries exist for many use cases. The base library is a full set of SwiftMQ's Stream Interface components to intercept, analyze, process, and output message streams flowing through a SwiftMQ router. Other libraries produce dashboard output streams, access JDBC databases, provide a REST client with predefined services, and so on.
You can organize flows in sub-flows that are reusable in other flows. A flow that can be used as a sub-flow is tagged with subflow
and then dropped into another flow as a component. This makes repositories of reusable functionality possible.
Flow Orchestration
You can deploy flows, undeployed, updated, activated, deactivated in the router network. This is called orchestration and is done from a single orchestration console.
Flow Director automatically generates the JavaScript code during deployment, which forms a SwiftMQ Stream that is deployed at one or more SwiftMQ router nodes. It also generates and manages the configuration for it.
You can use a Flow Viewer after activating the flow to live view messages traveling between components and seeing debug information.
Web API
Flow Director allows you to create a Web API. HTTP routes can be defined with flows acting as request handlers.
Dashboards
Flows are often used for real-time streaming analytics and produce data. You can visualize this data in dynamic dashboards. A graphical dashboard editor is used to place components and connect them with the flows' data streams.
Dashboards can be marked as public
which makes them viewable without the need to authenticate at Flow Director. They are ideal for creating dashboards that you can view at network operation centers, information boards, or status screens above industrial devices. You can also integrate public dashboards into custom web pages.
Dashboard Orchestration
Like flows, dashboards can be orchestrated from a single orchestration console. They can be connected to a particular router as well as to all routers dynamically. This is used if the same flows run on all routers of a network.
Export/Import
Flows, flow component libraries, and dashboards are stored at the Flow Director server under the respective app. Complete apps and single or sets of flows and dashboards can be exported and imported to another Flow Director instance with drag and drop.
Git Integration and Automation
Flow Director is fully integrated with the version control system Git. You can use GitHub, GitLab, Bitbucket, or any Git that you can access through an HTTP URL.
The Flow Director Platform detects changes and automatically updates all internal components like flow component libs, the System app, or the template to create new apps.
User apps can be linked to or installed from a Git repository. Committed changes can be automatically distributed to all apps that are linked to that particular repository. Flows and dashboards are automatically redeployed and reactivated so that upgrades to an app can be fully automated.
The platform itself upgrades automatically as well. You only have to install it once, and you are always up to date.