Skip to content

Remote Monitoring and Control (RMC)

Remote Monitoring and Control (RMC) icon
  • Category: Monitoring & Analytics
  • Primary environment: MaaS Provider
  • Documentation focus: Design reference
  • Maturity: TRL 4–5 (first release, M18)
  • Related architecture docs: Reference Architecture Guide, Environments

The Remote Monitoring and Control (RMC) solution is a web application reserved for MaaS Consumers. It provides a dashboard to remotely monitor and control production processes running in the MaaS Provider environment, presenting production parameters, machine data, and KPIs in a simple and intuitive way. Its main objectives are monitoring the performance of key indicators, controlling production status, and promptly identifying deviations between expected and actual results, making large amounts of data easier to understand and enabling quick data-driven decisions.

The D5.2 usage viewpoint defines roles, permissions, constraints, a role-task matrix, and a use case diagram for this solution.

  • User: Can access and view the data presented in the dashboard; constraint: Can only view the dashboard
  • System Administrator: Manage users; constraint: N/A

Remote Monitoring and Control use case

Use-case diagram extracted from MaaSAI deliverable D5.2.

RMC links authentication, frontend interaction, data-query services, MQTT integration, and visualisation outputs to support remote supervision. The functional view highlights how edge data and secure messaging are transformed into live dashboards and control-oriented information for users.

Remote Monitoring and Control functional components

Functional components diagram extracted from MaaSAI deliverable D5.2.

A login system based on Keycloak will be developed to verify the identity of each user and determine which resources they can access. It is a user login management and auditing tool designed for modern applications and services that supports protocols such as OpenID Connect, OAuth 2.0, and SAML, as well as two-factor authentication, permission and role management, token service creation, and Single Sign-On. Keycloak provides fine-grained authorisation services that make it possible to define the exact policies the application needs.

The RESTAPI component will allow and manage the communication between frontend and database via HTTP requests and responses. It will be the backend of the application, and it will implement a communication layer between the UI and the API. All the RESTAPI requests will be authenticated through Keycloak server, and data exchange will be in JSON format.

Remote Monitoring and Control architecture

Architecture diagram extracted from MaaSAI deliverable D5.2.

RMC is built as a containerised web application with a clear frontend/backend split and a dedicated monitoring stack.

CategoryTechnology
FrontendAngular 21 with PrimeNG; Chart.js 4.5 for plots and charts
BackendPython with FastAPI
AuthenticationKeycloak 26 for identity and access management, backed by a PostgreSQL database; Redis 8.6 for auth-token management
Monitoring & visualisationPrometheus 3.5 (metrics scraping and storage) and Grafana 13 (visualisation)
OtherNginx reverse proxy; Docker Compose containerisation
Licenceno licence file is currently included in the repository

RMC serves the MaaS Consumer environment, presenting data on production processes, machines, and sensors provided by the MaaS Provider. Within MaaSAI, it exchanges data with the Edge Data Storage (PostgreSQL), which supplies the machine data and KPIs shown in the dashboard. Third-party dependencies include Keycloak (authentication, authorisation, and accounting), Redis for token management, Nginx as reverse proxy, Prometheus and Grafana for infrastructure monitoring, and the python-keycloak and redis-py libraries used by the backend.

The backend exposes a REST API consumed by the Angular frontend, with data exchanged in JSON format.

  • Data: /api/data/machines and /api/data/machines/{id} — machine lists and per-machine details
  • Calendar: /api/data/calendar and /api/data/calendar/{id} — production calendar events
  • Auth: /api/auth/login, /api/auth/logout, /api/auth/users — token generation/blacklisting and user management (create/update/delete restricted to administrators)
  • Consumer: /api/consumer/messages — consumer messages supporting remote control

The UI is a web dashboard with a home screen showing production data and KPIs in tables and graphs, a settings screen for language and visualisation preferences, and a profile screen for user information.

Representative screens of the RMC web interface in the first release:

RMC home screen

Remote Monitoring and Control — home screen — MaaSAI deliverable D10.1.

RMC settings screen

Remote Monitoring and Control — settings screen — MaaSAI deliverable D10.1.

All components are containerised and deployed with a single Docker Compose file (docker compose up -d --build) that also manages virtual networks and storage volumes.

RequirementMinimumRecommended
CPU2 vCPUs4 vCPUs
RAM4 GB8 GB
Storage100 GB500 GB
OS64-bit Linux (Ubuntu/Debian)Debian 13
NetworkGigabit Ethernet with strict firewall/VLAN routing

Key environment variables cover the public domain used by the reverse proxy for request redirection and TLS termination, and Keycloak admin credentials and Keycloak database (PostgreSQL) settings.