Message Broker (WAMP)
Der WAMP Message Broker ist das Kommunikations-Backbone von IronFlock. Jede Komponente — Edge-Geräte, zentrale Services, virtuelle Geräte, das KI-System und die Web-UI — verbindet sich mit dem Broker und kommuniziert darüber.
Warum WAMP
WAMP (Web Application Messaging Protocol) kombiniert zwei Kommunikationsmuster in einem einzigen Protokoll:
- Publish/Subscribe (Pub/Sub) — Ein Gerät veröffentlicht Sensordaten auf einem Topic; Dashboards, der FleetDB Service und Alarm-Evaluatoren abonnieren und empfangen die Daten in Echtzeit
- Remote Procedure Calls (RPC) — Der KI-Service ruft eine Funktion auf einem Edge-Gerät auf; das Backend löst ein OTA-Update aus; ein Operator sendet einen Befehl an eine Maschine
Dieses duale Muster bedeutet, dass IronFlock keine separaten Systeme für Echtzeit-Datenstreaming und Request-Response-Operationen benötigt. Ein Protokoll, eine Verbindung, beide Muster.
Wie Komponenten sich verbinden
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Edge- │ │ Virtuelles │ │ Web-UI │
│ Gerät │ │ Gerät │ │ (Browser) │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ WSS │ WSS │ WSS
└────────────────────┼────────────────────┘
│
┌───────┴───────┐
│ WAMP Broker │
└───────┬───────┘
│
┌────────────────────┼────────────────────┐
│ WSS │ WSS │ WSS
┌──────┴───────┐ ┌──────┴───────┐ ┌──────┴───────┐
│ Backend- │ │ FleetDB- │ │ KI- │
│ Service │ │ Service │ │ Service │
└──────────────┘ └──────────────┘ └──────────────┘Alle Verbindungen verwenden WSS (WebSocket Secure) — verschlüsselte, persistente, bidirektionale Verbindungen über TLS.
Projektisolierung durch Realms
Der Broker erzwingt strikte Isolation zwischen Projekten durch WAMP Realms:
- Jede Projekt-App-Kombination erhält ihren eigenen Realm — einen vollständig isolierten Messaging-Namespace
- Nachrichten, die in einem Realm veröffentlicht werden, sind für alle anderen Realms unsichtbar
- Geräte in Projekt A können Geräte in Projekt B weder sehen noch mit ihnen interagieren
- Selbst dieselbe App, die in zwei verschiedenen Projekten installiert ist, arbeitet in separaten Realms
Authentifizierung
Jede Verbindung zum Broker erfordert Authentifizierung:
| Komponente | Auth-Methode |
|---|---|
| Edge-Geräte | WAMP-CRA (Challenge-Response) mit gerätespezifischen Secrets |
| Backend-Services | WAMP-CRA mit System-Credentials |
| Web-UI-Clients | OIDC-basierte Session-Tokens |
| KI-Service | System-Credentials mit eingeschränktem Zugriff |
Nicht autorisierte Clients können keinem Realm beitreten, keine Topics abonnieren und keine Prozeduren aufrufen.
Echtzeit-Datenfluss
So fließt ein Sensorwert von einem Gerät zu einem Dashboard:
- Geräte-App liest einen Sensorwert und veröffentlicht ihn auf einem WAMP-Topic im Projekt-Realm
- WAMP-Broker leitet die Nachricht an alle Subscriber in diesem Realm weiter
- FleetDB Service empfängt die Nachricht, schreibt sie in TimescaleDB und wertet Alarmregeln aus
- Web-UI empfängt dieselbe Nachricht und aktualisiert das Dashboard-Diagramm in Echtzeit
Dieser gesamte Ablauf geschieht mit Sub-Sekunden-Latenz — das Dashboard aktualisiert sich so schnell, wie die Daten eintreffen.
RPC für Gerätesteuerung
Der Broker ermöglicht auch die direkte Steuerung von Edge-Geräten:
- Operator klickt auf „App neu starten” in der Web-UI
- Backend ruft eine RPC auf dem Geräte-Agenten über den Broker auf
- Geräte-Agent empfängt den Aufruf, startet den Container neu und gibt das Ergebnis zurück
- Web-UI zeigt die Bestätigung an
Derselbe Mechanismus ermöglicht physische KI — wenn der KI-Assistent eine Funktion auf einem Gerät aufruft, ist es ein RPC-Aufruf über den Broker.
Skalierbarkeit
Der WAMP-Broker arbeitet in Produktionsumgebungen als Cluster:
- Mehrere Broker-Knoten bewältigen gleichzeitige Verbindungen
- Die Last wird auf die Knoten verteilt
- Geräte halten persistente Verbindungen mit automatischer Wiederverbindung bei Ausfällen aufrecht
- Der Broker bewältigt tausende gleichzeitige Geräteverbindungen mit niedriger Latenz bei der Nachrichtenzustellung
On-Premises-Bereitstellung
Bei On-Premises-Bereitstellungen läuft der WAMP-Broker auf Ihrer Infrastruktur neben den anderen zentralen Services. Das Protokoll und die Isolierungsgarantien bleiben identisch — der einzige Unterschied ist der Netzwerkpfad (lokal statt Internet).
Siehe On-Premises-Bereitstellung für Details.