Skip to Content
ArchitetturaMessage Broker (WAMP)

Message Broker (WAMP)

Il message broker WAMP è la spina dorsale della comunicazione di IronFlock. Ogni componente — dispositivi edge, servizi centrali, dispositivi virtuali, il sistema AI e l’interfaccia web — si connette al broker e comunica attraverso di esso.

Perché WAMP

WAMP (Web Application Messaging Protocol) combina due pattern di comunicazione in un unico protocollo:

  • Publish/Subscribe (pub/sub) — Un dispositivo pubblica dati di un sensore su un topic; le dashboard, il FleetDB Service e i valutatori di allarmi si iscrivono e li ricevono in tempo reale
  • Remote Procedure Calls (RPC) — Il servizio AI chiama una funzione su un dispositivo edge; il backend avvia un aggiornamento OTA; un operatore invia un comando a una macchina

Questo doppio pattern significa che IronFlock non ha bisogno di sistemi separati per lo streaming di dati in tempo reale e le operazioni richiesta-risposta. Un protocollo, una connessione, entrambi i pattern.

Come si connettono i componenti

┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ Edge │ │ Virtual │ │ Web UI │ │ Device │ │ Device │ │ (Browser) │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ WSS │ WSS │ WSS └────────────────────┼────────────────────┘ ┌───────┴───────┐ │ WAMP Broker │ └───────┬───────┘ ┌────────────────────┼────────────────────┐ │ WSS │ WSS │ WSS ┌──────┴───────┐ ┌──────┴───────┐ ┌──────┴───────┐ │ Backend │ │ FleetDB │ │ AI │ │ Service │ │ Service │ │ Service │ └──────────────┘ └──────────────┘ └──────────────┘

Tutte le connessioni utilizzano WSS (WebSocket Secure) — connessioni crittografate, persistenti e bidirezionali su TLS.

Isolamento dei progetti tramite Realm

Il broker applica un isolamento rigoroso tra i progetti tramite i WAMP realm:

  • A ogni combinazione progetto-app viene assegnato un proprio realm — uno spazio di messaggistica completamente isolato
  • I messaggi pubblicati in un realm sono invisibili a tutti gli altri realm
  • I dispositivi del Progetto A non possono vedere o interagire con i dispositivi del Progetto B
  • Anche la stessa app installata in due progetti diversi opera in realm separati

Autenticazione

Ogni connessione al broker richiede autenticazione:

ComponenteMetodo di autenticazione
Dispositivi edgeWAMP-CRA (Challenge-Response) con segreti per dispositivo
Servizi backendWAMP-CRA con credenziali di sistema
Client Web UIToken di sessione basati su OIDC
Servizio AICredenziali di sistema con accesso limitato

I client non autorizzati non possono unirsi a un realm, iscriversi a topic o chiamare procedure.

Flusso di dati in tempo reale

Ecco come una lettura di un sensore fluisce da un dispositivo a una dashboard:

  1. L’app sul dispositivo legge un valore del sensore e lo pubblica su un topic WAMP nel realm del progetto
  2. Il broker WAMP instrada il messaggio a tutti i sottoscrittori in quel realm
  3. Il FleetDB Service riceve il messaggio, lo scrive su TimescaleDB e valuta le regole di allarme
  4. L’interfaccia web riceve lo stesso messaggio e aggiorna il grafico della dashboard in tempo reale

L’intero flusso avviene con una latenza inferiore al secondo — la dashboard si aggiorna non appena i dati arrivano.

RPC per il controllo dei dispositivi

Il broker consente anche il controllo diretto dei dispositivi edge:

  1. L’operatore clicca su “Riavvia app” nell’interfaccia web
  2. Il backend chiama un RPC sull’agente del dispositivo attraverso il broker
  3. L’agente del dispositivo riceve la chiamata, riavvia il container e restituisce il risultato
  4. L’interfaccia web mostra la conferma

Lo stesso meccanismo alimenta l’AI fisico — quando l’assistente AI invoca una funzione su un dispositivo, è una chiamata RPC attraverso il broker.

Scalabilità

Il broker WAMP opera come cluster nelle distribuzioni in produzione:

  • Più nodi broker gestiscono connessioni concorrenti
  • Il carico viene distribuito tra i nodi
  • I dispositivi mantengono connessioni persistenti con riconnessione automatica in caso di guasto
  • Il broker gestisce migliaia di connessioni concorrenti di dispositivi con consegna dei messaggi a bassa latenza

Distribuzione on-premises

Nelle distribuzioni on-premises, il broker WAMP viene eseguito sulla tua infrastruttura insieme agli altri servizi centrali. Il protocollo e le garanzie di isolamento rimangono identici — l’unica differenza è il percorso di rete (locale invece di internet).

Consulta Distribuzione on-premises per i dettagli.

Last updated on