Glosario de Automatización • ¿Qué es Publicación/Suscripción?

¿Qué es Publicación/Suscripción (Pub/Sub)?

Ingeniería Merobix • • 4 min de lectura

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.

Volver al glosario

¿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.

Más en Fundamentos de SCADA
Identificador de suscripción de MQTT  •  Suscripcion compartida de MQTT  •  Suscripcion y elemento monitoreado OPC UA  •  Todo en Fundamentos de SCADA →
Capacitación SCADA gratuita para operadores
Merobix University - 70 lecciones en video y 261 preguntas de examen, del primer inicio de sesión a los reportes de cumplimiento (contenido en inglés). Sin llamada de ventas.
Comenzar gratis →