Broker de messages (WAMP)
Le broker de messages WAMP est la colonne vertébrale de communication d’IronFlock. Chaque composant — appareils edge, services centraux, appareils virtuels, le système IA et l’interface web — se connecte au broker et communique via lui.
Pourquoi WAMP
WAMP (Web Application Messaging Protocol) combine deux patterns de communication dans un seul protocole :
- Publish/Subscribe (pub/sub) — Un appareil publie des données de capteur sur un topic ; les tableaux de bord, le service FleetDB et les évaluateurs d’alarmes s’abonnent et les reçoivent en temps réel
- Appels de procédures distantes (RPC) — Le service IA appelle une fonction sur un appareil edge ; le backend déclenche une mise à jour OTA ; un opérateur envoie une commande à une machine
Ce double pattern signifie qu’IronFlock n’a pas besoin de systèmes séparés pour le streaming de données en temps réel et les opérations requête-réponse.
Isolation des projets via les realms
Le broker applique une isolation stricte entre les projets en utilisant des realms WAMP :
- Chaque combinaison projet-application obtient son propre realm — un espace de noms de messagerie complètement isolé
- Les messages publiés dans un realm sont invisibles pour tous les autres realms
- Les appareils du Projet A ne peuvent pas voir ou interagir avec les appareils du Projet B
Authentification
Chaque connexion au broker nécessite une authentification :
| Composant | Méthode d’auth |
|---|---|
| Appareils edge | WAMP-CRA (Challenge-Response) avec secrets par appareil |
| Services backend | WAMP-CRA avec identifiants système |
| Clients Web UI | Tokens de session basés sur OIDC |
| Service IA | Identifiants système avec accès limité |
Flux de données en temps réel
Voici comment une lecture de capteur passe d’un appareil à un tableau de bord :
- L’application de l’appareil lit une valeur de capteur et la publie sur un topic WAMP dans le realm du projet
- Le broker WAMP route le message vers tous les abonnés dans ce realm
- Le service FleetDB reçoit le message, l’écrit dans TimescaleDB et évalue les règles d’alarme
- L’interface web reçoit le même message et met à jour le graphique du tableau de bord en temps réel
Ce flux entier se déroule avec une latence inférieure à la seconde — le tableau de bord se met à jour aussi vite que les données arrivent.
RPC pour le contrôle des appareils
Le broker permet également le contrôle direct des appareils edge :
- L’opérateur clique sur “Redémarrer l’application” dans l’interface web
- Le backend appelle un RPC sur l’agent de l’appareil via le broker
- L’agent de l’appareil reçoit l’appel, redémarre le conteneur et renvoie le résultat
- L’interface web affiche la confirmation
Le même mécanisme alimente l’IA physique — lorsque l’assistant IA invoque une fonction sur un appareil, c’est un appel RPC via le broker.
Déploiement sur site
Dans les déploiements sur site, le broker WAMP s’exécute sur votre infrastructure aux côtés des autres services centraux. Le protocole et les garanties d’isolation restent identiques — la seule différence est le chemin réseau (local au lieu d’Internet).
Voir Déploiement sur site pour plus de détails.