¿Qué es Publicación/Suscripción (Pub/Sub)?
Publicación/suscripción - pub/sub para abreviar - es el patrón de mensajería detrás de MQTT, los espacios de nombres unificados y la mayor parte del IIoT moderno. Reemplazó la vieja costumbre de que cada sistema le pidiera datos a cada otro sistema en un temporizador. Entender pub/sub es la clave para entender por qué el SCADA nativo de nube escala como las arquitecturas de sondeo heredadas no podían. Esta página explica el patrón, sus partes, y cómo se compara con el sondeo.
¿Qué es Publicación/Suscripción? en una línea: La publicación/suscripción es un patrón de mensajería en el que los productores envían mensajes a temas con nombre sin saber quién los recibirá, y los consumidores registran interés en temas para recibir los mensajes que coincidan - todo mediado por un broker. Los productores y consumidores están completamente desacoplados y nunca se comunican directamente.
Las tres partes de Pub/Sub
Un sistema pub/sub tiene tres roles. Los publicadores producen mensajes y los envían a un tema - un canal con nombre como campo/tanque7/nivel - sin ningún conocimiento de quién está escuchando. Los suscriptores declaran interés en uno o más temas y reciben cada mensaje publicado en ellos. Un broker (o bus de mensajes) se sienta en medio, llevando registro de las suscripciones y enrutando cada mensaje publicado a los suscriptores correctos.
La propiedad definitoria es el desacoplamiento en tres dimensiones: en el espacio (las partes no conocen las direcciones de las otras), en el tiempo (un suscriptor puede recibir un mensaje retenido publicado antes de que se conectara), y en la sincronización (publicar no bloquea esperando a los consumidores). Por esto pub/sub se describe a menudo como basado en eventos: los datos fluyen en el momento en que algo ocurre, no cuando alguien pregunta.
Pub/Sub vs sondeo
El patrón alternativo es el sondeo: un cliente le pregunta repetidamente a un dispositivo '¿cuál es tu valor ahora?' en un intervalo fijo. El sondeo es solicitud/respuesta y estrechamente acoplado - el que sondea debe conocer la dirección de cada dispositivo y alcanzarlo directamente. Con cientos de sitios remotos, el sondeo significa cientos de conexiones, ancho de banda fijo se hayan cambiado los datos o no, y acceso de red entrante a cada dispositivo.
Pub/sub invierte esto. Un dispositivo publica solo cuando algo cambia (reporte por excepción), hace una sola conexión saliente al broker, y cualquier número de consumidores obtiene los datos a la vez. Para telemetría de campo petrolero distribuida por celular, esto es drásticamente más eficiente y más seguro, porque no se exponen puertos entrantes. El compromiso es que pub/sub necesita un broker como infraestructura compartida, y los flujos basados en eventos requieren más reflexión sobre el estado y las garantías de entrega que un simple lazo de sondeo.
Dónde aparece Pub/Sub en SCADA
En sistemas industriales, pub/sub es más visible como MQTT con Sparkplug B, el fundamento de las arquitecturas de espacio de nombres unificado. OPC UA también ofrece un modo pub/sub junto a su modelo tradicional cliente/servidor. Dentro de una plataforma SCADA misma, pub/sub a menudo impulsa el bus de eventos interno que empuja actualizaciones de tags en vivo a los tableros y alarmas en el instante en que un valor cambia.
Un SCADA de nube se beneficia enormemente de pub/sub: puede suscribirse a un broker alimentado por miles de dispositivos de borde y escalar horizontalmente, en lugar de mantener miles de lazos de sondeo salientes. Merobix consume datos pub/sub de MQTT y Sparkplug B mientras todavía sondea dispositivos Modbus y DNP3, así que los operadores pueden mezclar fuentes basadas en eventos y sondeadas en una sola plataforma.
Preguntas frecuentes
¿Cuál es la diferencia entre pub/sub y solicitud/respuesta?
En solicitud/respuesta (sondeo), un cliente le pide explícitamente datos a un servidor específico y espera una respuesta, así que los dos están estrechamente acoplados. En pub/sub, los publicadores envían a temas y los suscriptores reciben de temas a través de un broker, sin enlace directo entre ellos - los datos fluyen al cambiar en lugar de al solicitar.
¿Es MQTT un protocolo de publicación/suscripción?
Sí. MQTT es el protocolo pub/sub industrial más usado. Los clientes publican mensajes a temas en un broker y otros clientes se suscriben a esos temas. Sparkplug B agrega una estructura de tema y un formato de carga útil estándar encima de MQTT para uso industrial.
¿Por qué es pub/sub mejor para sitios remotos que el sondeo?
Un dispositivo remoto que usa pub/sub hace una sola conexión saliente a un broker y publica solo cuando los datos cambian, conservando ancho de banda celular o satelital y evitando cualquier apertura de firewall entrante. El sondeo requiere alcanzar cada dispositivo individualmente en un temporizador, consumiendo ancho de banda aun cuando nada cambió y exponiendo los dispositivos a acceso entrante.
Servicios de automatización
¿Necesita convertir esta información en un sistema que funcione?
Merobix integra SCADA, programa PLC Allen-Bradley y Siemens, y diseña y fabrica tableros de control industrial.
Las solicitudes de reunión se revisan antes de confirmarse.