Skip to Content
ArchitekturMessage Broker (WAMP)

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:

KomponenteAuth-Methode
Edge-GeräteWAMP-CRA (Challenge-Response) mit gerätespezifischen Secrets
Backend-ServicesWAMP-CRA mit System-Credentials
Web-UI-ClientsOIDC-basierte Session-Tokens
KI-ServiceSystem-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:

  1. Geräte-App liest einen Sensorwert und veröffentlicht ihn auf einem WAMP-Topic im Projekt-Realm
  2. WAMP-Broker leitet die Nachricht an alle Subscriber in diesem Realm weiter
  3. FleetDB Service empfängt die Nachricht, schreibt sie in TimescaleDB und wertet Alarmregeln aus
  4. 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:

  1. Operator klickt auf „App neu starten” in der Web-UI
  2. Backend ruft eine RPC auf dem Geräte-Agenten über den Broker auf
  3. Geräte-Agent empfängt den Aufruf, startet den Container neu und gibt das Ergebnis zurück
  4. 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.

Last updated on