Message Broker (WAMP)
El message broker WAMP es la columna vertebral de comunicación de IronFlock. Cada componente — dispositivos edge, servicios centrales, dispositivos virtuales, el sistema de IA y la interfaz web — se conecta al broker y se comunica a través de él.
Por qué WAMP
WAMP (Web Application Messaging Protocol) combina dos patrones de comunicación en un solo protocolo:
- Publish/Subscribe (pub/sub) — Un dispositivo publica datos de sensores en un topic; los dashboards, el servicio FleetDB y los evaluadores de alarmas se suscriben y los reciben en tiempo real
- Remote Procedure Calls (RPC) — El servicio de IA llama a una función en un dispositivo edge; el backend activa una actualización OTA; un operador envía un comando a una máquina
Este patrón dual significa que IronFlock no necesita sistemas separados para streaming de datos en tiempo real y operaciones de solicitud-respuesta. Un protocolo, una conexión, ambos patrones.
Cómo se conectan los componentes
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Dispositivo │ │ Dispositivo │ │ Web UI │
│ Edge │ │ Virtual │ │ (Navegador) │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ WSS │ WSS │ WSS
└────────────────────┼────────────────────┘
│
┌───────┴───────┐
│ WAMP Broker │
└───────┬───────┘
│
┌────────────────────┼────────────────────┐
│ WSS │ WSS │ WSS
┌──────┴───────┐ ┌──────┴───────┐ ┌──────┴───────┐
│ Servicio │ │ Servicio │ │ Servicio │
│ Backend │ │ FleetDB │ │ IA │
└──────────────┘ └──────────────┘ └──────────────┘Todas las conexiones utilizan WSS (WebSocket Secure) — conexiones cifradas, persistentes y bidireccionales sobre TLS.
Aislamiento de proyectos mediante Realms
El broker impone un aislamiento estricto entre proyectos usando realms WAMP:
- Cada combinación proyecto-app obtiene su propio realm — un espacio de nombres de mensajería completamente aislado
- Los mensajes publicados en un realm son invisibles para todos los demás realms
- Los dispositivos del Proyecto A no pueden ver ni interactuar con los dispositivos del Proyecto B
- Incluso la misma app instalada en dos proyectos diferentes opera en realms separados
Autenticación
Toda conexión al broker requiere autenticación:
| Componente | Método de autenticación |
|---|---|
| Dispositivos edge | WAMP-CRA (Challenge-Response) con secretos por dispositivo |
| Servicios backend | WAMP-CRA con credenciales de sistema |
| Clientes Web UI | Tokens de sesión basados en OIDC |
| Servicio de IA | Credenciales de sistema con acceso limitado |
Los clientes no autorizados no pueden unirse a un realm, suscribirse a topics ni llamar procedimientos.
Flujo de datos en tiempo real
Así fluye una lectura de sensor desde un dispositivo hasta un dashboard:
- App del dispositivo lee un valor del sensor y lo publica en un topic WAMP en el realm del proyecto
- Broker WAMP enruta el mensaje a todos los suscriptores en ese realm
- Servicio FleetDB recibe el mensaje, lo escribe en TimescaleDB y evalúa las reglas de alarma
- Web UI recibe el mismo mensaje y actualiza el gráfico del dashboard en tiempo real
Todo este flujo ocurre con latencia inferior a un segundo — el dashboard se actualiza tan rápido como llegan los datos.
RPC para control de dispositivos
El broker también permite el control directo de dispositivos edge:
- Operador hace clic en “Reiniciar App” en la interfaz web
- Backend llama a una RPC en el agente del dispositivo a través del broker
- Agente del dispositivo recibe la llamada, reinicia el contenedor y devuelve el resultado
- Web UI muestra la confirmación
El mismo mecanismo impulsa la IA física — cuando el asistente de IA invoca una función en un dispositivo, es una llamada RPC a través del broker.
Escalabilidad
El broker WAMP opera como un clúster en despliegues de producción:
- Múltiples nodos del broker manejan conexiones simultáneas
- La carga se distribuye entre los nodos
- Los dispositivos mantienen conexiones persistentes con reconexión automática en caso de fallo
- El broker maneja miles de conexiones simultáneas de dispositivos con entrega de mensajes de baja latencia
Despliegue on-premises
En despliegues on-premises, el broker WAMP se ejecuta en su infraestructura junto con los demás servicios centrales. El protocolo y las garantías de aislamiento permanecen idénticos — la única diferencia es la ruta de red (local en lugar de internet).
Consulte Despliegue on-premises para más detalles.