Skip to Content
ArquitecturaMessage Broker (WAMP)

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:

ComponenteMétodo de autenticación
Dispositivos edgeWAMP-CRA (Challenge-Response) con secretos por dispositivo
Servicios backendWAMP-CRA con credenciales de sistema
Clientes Web UITokens de sesión basados en OIDC
Servicio de IACredenciales 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:

  1. App del dispositivo lee un valor del sensor y lo publica en un topic WAMP en el realm del proyecto
  2. Broker WAMP enruta el mensaje a todos los suscriptores en ese realm
  3. Servicio FleetDB recibe el mensaje, lo escribe en TimescaleDB y evalúa las reglas de alarma
  4. 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:

  1. Operador hace clic en “Reiniciar App” en la interfaz web
  2. Backend llama a una RPC en el agente del dispositivo a través del broker
  3. Agente del dispositivo recibe la llamada, reinicia el contenedor y devuelve el resultado
  4. 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.

Last updated on