Risk, opportunity, analysis and monitoring (ROAM) tool

Overview

The risk, opportunity, analysis and monitoring (ROAM) Tool is a solution for data processing, analysis and monitoring. The ROAM tool processes incoming streamed or historic data into metrics and figures that give insight into efficiency, costs, risks, and opportunities. It uses so-called risk recipes that transform the incoming data, and workflows that receive incoming streamed data, transform the data using multiple recipes, and publish the output in a stream.

The ROAM tool has been designed with a high degree of customizability in mind, allowing users to tailor their recipes to any specific situation. The tool is capable of just about any data transformation. However, the recipes developed along with the tool are tailored to risks, associated costs and metrics, and opportunities in mind. The ROAM tool can also alert users whenever risk values grow or reach a threshold.

ROAM tool features

  • an easy to use recipe creation user interface
  • a simple monitoring user interface
  • highly customizable recipe templates
  • a library of ready-to-use recipes

Design

Recipes

The ROAM tool makes use of recipes. These are data transformation modules which process the data into a new format. In some cases data specific to the configured workflow may be required in order to compute a risk, opportunity, or metric. For example, a recipe might require information about the deadline for a process, and this data may not be produced by the relevant data stream. In this case, the deadline would be configured in the tool ahead of time.

The tool comes with pre-made recipes, but has a highly customizable recipe creation functionality.

Workflows

Recipes can be chained into a workflow, which outputs the desired metric, and possibly a notification, to the user. This allows for users to create workflows with multiple smaller recipes that can be reused in other workflows as well. Additionally, this allows users to receive multiple metrics at once, contained in the same output, instead of having to invoke outputs of multiple recipes independently. These workflows are defined by a chain of recipes, a data source, and a data sink. For testing purposes, a workflow can be run once, with test data. In practice, the source is defined as an input MQTT topic, and the sink is defined as an output topic.

Architecture

As illustrated in Figure 1, the ROAM tool includes a REST-API, which exposes endpoints which are used to

  1. add, edit, and remove both recipes and workflows; and
  2. run workflows both continuously via MQTT subscriptions, and a single time for testing purposes
  3. retrieve the last workflow output and clear workflow cache

After the workflow has been created, and the input topics have been subscribed to, the workflow will automatically run with the received input data, whenever an input is then received on a certain topic through the EFPF message bus. This data is then processed into statistics, risks, opportunities, notifications, and other metrics. Except for the notifications, these are all streamed through the message bus for the users to use directly.

ROAM tool architecture Figure 1: High-level architecture of the ROAM tool

Frontend

The Risk tool also includes a frontend web-app, which has the full functionality of the REST-API, without requiring the user to make API calls. Instead, they allow the user to fill in more visually intuitive forms.