OrchestratorModule

The OrchestratorModule is used for executing custom models. Custom models are custom developed docker containers, that perform calculations on either measurements or files (images, etc.), produce an output of measurements and/or files and adhere to a certain interface required for compatibilitiy with the OrchestratorModule. Custom models can be implemented in any programming language.

The OrchestratorModule has the following capabilities:

  • Triggering execution of custom models, based on different types of triggers

  • Providing context to custom models, by gathering and buffering measurements required for custom model input

  • Extracting measurements from custom model output, and distributing the results back to either other custom models or data collector modules (write back)

  • Monitoring of the custom model execution, reporting execution time and success/failure

Architecture

The OrchestratorModule is dependent on other modules in order to function. If the custom models use measurements either as triggers or as input or output, the DataDistributionModule is responsible for routing the measurements to the OrchestratorModule. The OrchestratorModule has a measurement handler, that buffers incoming measurements so that they can be used for custom model input. The handler also checks if the incoming measurements triggers a custom model, based on the defined triggers.

Orchestrator Architecture

The model configuration (from the twin) defines the expected output after each model execution. The OrchestratorModule parses this output, and converts it into measurements, that are published to the DataDistributionModule. This means that the model output can be distributed to other modules, as measurements. This also includes writing the measurements back to eg. control systems, using DataCollectorModules, for closed loop regulations.

Custom Models

Custom models needs to adhere to some requirements, in order to be able to be executed from the OrchestratorModule. The requirements are:

  • The custom model must implement an API with an POST endpoint with the route /executemodel

  • The custom model must be able to deserialize the POST method payload into a list of measurements, if input measurements are required. The order of the measurements indicate the input index.

Custom Model

New work item


Last updated

Was this helpful?