Glosario de Automatización • Webhook

¿Qué es un webhook en la integración SCADA?

Ingeniería Merobix • • 6 min de lectura

Un webhook es una solicitud HTTP saliente que un sistema envía automáticamente cuando un evento específico ocurre, en lugar de esperar a que se lo pidan. Donde una API normal se sienta y responde solicitudes, un webhook invierte la dirección: cuando una alarma se dispara o se cruza un umbral, la plataforma SCADA llama a una URL que usted registró y entrega el evento tal como ocurre. A veces se le llama API inversa o callback HTTP, y es la contraparte basada en empuje de sondear un extremo REST.

Volver al glosario

Webhook en una línea: Un webhook es un callback HTTP saliente impulsado por eventos. En lugar de que un cliente pregunte repetidamente si algo pasó, el sistema fuente envía una solicitud HTTP a una URL preconfigurada en el momento en que un evento ocurre, entregando los datos del evento en la carga útil. En SCADA se usa para empujar alarmas y cruces de umbral a otros servicios de inmediato, sin sondeo.

Empujar en el evento, no sondear por cambio

El rasgo definitorio de un webhook es que la fuente inicia la llamada. Usted registra una URL y los eventos que le interesan, y de ahí en adelante el sistema envía un POST HTTP a esa URL cuando ocurre un evento que coincide, llevando los detalles en el cuerpo de la solicitud. El servicio receptor no hace nada hasta el momento en que algo pasa, punto en el cual los datos llegan por sí solos. Esto invierte la relación cliente-servidor usual, y por eso los webhooks se describen como API inversas.

Contraste esto con el sondeo REST, donde un cliente pregunta repetidamente si hay algo nuevo. El sondeo desperdicia solicitudes cuando nada ha cambiado y agrega una latencia igual al intervalo de sondeo, porque un cambio que ocurre justo después de un sondeo espera hasta el siguiente. Un webhook no tiene ninguno de los dos problemas: no hay tráfico desperdiciado y prácticamente ningún retardo, ya que la notificación se envía en el instante en que el evento se dispara. Para eventos que son raros pero urgentes, como una alarma crítica, esa diferencia es decisiva.

El compromiso es que el receptor debe exponer un extremo que la fuente pueda alcanzar, y debe estar disponible cuando los eventos se disparen. El sondeo pone al cliente en control del tiempo y funciona incluso detrás de firewalls restrictivos; los webhooks ponen a la fuente en control y requieren que el receptor sea alcanzable. Los dos son complementarios, y elegir entre ellos depende de quién puede aceptar conexiones y qué tan sensible al tiempo es el evento.

Reintentos, fallos y verificación

Como un webhook es una sola entrega de disparar y olvidar, la confiabilidad requiere manejar el fallo. Si el receptor está caído o devuelve un error, un buen emisor de webhook reintenta, normalmente con una espera creciente entre intentos para no martillar un servicio con dificultades. Los reintentos significan que un receptor puede estar brevemente no disponible sin perder el evento, pero también significan que el mismo evento puede llegar más de una vez, así que el receptor debería procesar los eventos de forma idempotente y no actuar dos veces sobre un duplicado.

La seguridad es esencial porque un extremo webhook acepta solicitudes entrantes no solicitadas, y cualquiera que se entere de la URL podría enviar eventos falsos. La defensa estándar es la firma: el emisor calcula una firma sobre la carga útil usando un secreto compartido y la incluye en la solicitud, y el receptor la recalcula y compara antes de confiar en el mensaje. Esto verifica tanto que la carga útil vino de la fuente real como que no fue alterada en tránsito. Sin verificación, un extremo webhook es una puerta abierta.

Las garantías de entrega también dependen del orden y los tiempos de espera. Si el receptor es lento, el emisor puede agotar el tiempo de espera y reintentar, y los eventos pueden llegar fuera de orden bajo carga. Las integraciones robustas incluyen un identificador de evento y una marca de tiempo para que el receptor pueda deduplicar y reordenar, tratando el flujo de webhooks como una entrega de mejor esfuerzo de al-menos-una-vez en lugar de un feed perfectamente ordenado.

Webhooks en operaciones de petróleo y gas

Los webhooks brillan para los eventos urgentes y ocasionales que definen las operaciones de campo. Una alarma de alta presión en un separador, un tanque acercándose a su nivel alto-alto, o el disparo de un compresor son exactamente los momentos en que esperar el siguiente sondeo es inaceptable. Un webhook deja a la plataforma SCADA empujar ese evento de inmediato a lo que necesite saberlo, sin que ningún sistema aguas abajo tenga que preguntar constantemente.

Los destinos comunes son servicios de aviso, de guardia y de tickets. Cuando una alarma crítica se dispara, un webhook puede enviar a una herramienta de gestión de incidentes que despacha al técnico de guardia, o a un sistema de tickets que abre una orden de trabajo automáticamente. Como el evento se entrega como datos estructurados, el servicio receptor puede enrutarlo por severidad, sitio o activo. El resultado es que una condición de campo se vuelve una notificación accionable en segundos, a través de sistemas que el operador ya usa.

Como SCADA de nube para petróleo y gas y otras industrias, Merobix puede actuar como la fuente de estos envíos de eventos salientes, complementando el acceso REST basado en jalar que también provee. Los tableros y reportes jalan el estado actual cuando lo necesitan; los webhooks empujan las alarmas raras y críticas en el tiempo en el momento en que ocurren. Juntos cubren ambos lados de la integración, consultas bajo demanda y notificación inmediata de eventos, sin forzar a cada consumidor a sondear por condiciones que quizá casi nunca ocurran.

Preguntas frecuentes

¿Cuál es la diferencia entre un webhook y una API REST?

Una API REST espera a ser llamada y responde solicitudes, así que un cliente debe sondearla para enterarse de cambios. Un webhook invierte eso: la fuente llama a una URL que usted registró cuando un evento ocurre, empujándole los datos. REST está basado en jalar y es impulsado por el cliente; un webhook está basado en empujar y es impulsado por eventos, y por eso se le llama API inversa.

¿Cómo se asegura uno de que un webhook es genuino?

Verificando una firma. El emisor calcula una firma sobre la carga útil usando un secreto compartido y la incluye en la solicitud, y el receptor la recalcula y compara antes de confiar en el evento. Esto confirma que el mensaje vino de la fuente real y no fue alterado. Sin verificación, cualquiera que conozca la URL podría enviar eventos falsos.

¿Qué pasa si la entrega de un webhook falla?

Un emisor bien diseñado reintenta, normalmente con una espera creciente, para que un receptor brevemente no disponible no pierda el evento. Los reintentos pueden hacer que el mismo evento llegue más de una vez, así que el receptor debería procesar los eventos de forma idempotente y usar un identificador de evento para ignorar duplicados. Esto hace la entrega de webhook confiable de al-menos-una-vez en lugar de exactamente-una-vez.

Más en Fundamentos de SCADA
Sondeo de API REST vs webhook push  •  Envío de alarma por webhook  •  Agregar un tag en SCADA  •  Configurar alertas por SMS  •  Configurar una alarma en SCADA  •  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 →