¿Qué es la transmisión de eventos?

Formas abstractas de un edificio de arquitectura moderna

¿Qué es la transmisión de eventos?

La transmisión de eventos es la práctica de capturar datos en tiempo real de aplicaciones, bases de datos y dispositivos IoT y transportarlos a varios destinos para su procesamiento y almacenamiento inmediatos, o para su análisis en tiempo real y la elaboración de informes analíticos.

Una función clave en el procesamiento de secuencias de eventos (ESP), la transmisión de eventos permite a las infraestructuras de TI gestionar grandes secuencias continuas de eventos procesando los datos cuando se produce el evento o cambio.

La transmisión de eventos suele servir de complemento al procesamiento por lotes, que actúa sobre grandes conjuntos de datos estáticos (o "datos en reposo"). Sin embargo, en lugar de procesar los datos en lotes, la transmisión de eventos gestiona puntos de datos individuales a medida que emergen. Este enfoque permite que el software dentro de la arquitectura interprete y responda a flujos de datos ("datos en movimiento") en tiempo real.

Los servicios de transmisión de eventos de alto rendimiento pueden realizar toda una serie de tareas simples y complejas, desde enviar notificaciones cuando cambian los precios de las acciones o los productos hasta crear modelos de machine learning en tiempo real que detectan actividades sospechosas de los usuarios. Incluso en el caso del procesamiento por lotes, la transmisión de eventos puede añadir profundidad a las analytics de datos al conectar los eventos con sus respectivas marcas de tiempo. También ayuda a identificar tendencias históricas, proporcionando conocimiento valioso a lo largo del tiempo.

Diseño 3D de bolas rodando por un circuito

Las últimas noticias + conocimientos de IA 


Descubra ideas y noticias de expertos sobre IA, nube y mucho más en el boletín semanal Think. 

¿Qué es un evento?

La transmisión de eventos gira en torno al flujo ilimitado, secuencial y en tiempo real de registros de datos, llamados "eventos", estructuras de datos fundacionales que registran cualquier ocurrencia en el sistema o entorno. Es un término que se refiere esencialmente a todos los puntos de datos del sistema. Por lo tanto, la "secuencia" (también llamada secuencia de datos) es la entrega continua de esos eventos.

Cada evento suele comprender una clave que identifica el evento o la entidad a la que pertenece, junto con un valor que contiene los datos reales del evento. Además, incluye una marca de tiempo que indica cuándo se produjo o se registró el evento y, a veces, metadatos sobre la fuente de datos, la versión del esquema u otros atributos.

Con la ayuda de motores especializados de procesamiento de secuencias, los eventos pueden someterse a algunos procesos diferentes dentro de una secuencia. Las "agregaciones" realizan cálculos de datos, como medias, sumas y desviación estándar. La "ingesta" añade datos de secuencias a las bases de datos. El procesamiento analítico utiliza patrones en la transmisión de datos para predecir eventos futuros, y el procesamiento de enriquecimiento combina puntos de datos con otras fuentes de datos para proporcionar contexto y crear significado.

Los eventos suelen estar vinculados a operaciones comerciales o procesos de navegación del usuario y normalmente desencadenan otra acción, proceso o serie de eventos. Tomemos como ejemplo la banca electrónica.

Cuando un usuario hace clic en "transferir" para enviar dinero de una cuenta bancaria a otra, los fondos se retiran de la cuenta del remitente y se añaden a la cuenta bancaria del destinatario. Se envían notificaciones por correo electrónico o SMS a una de las partes (o a ambas) y, si es necesario, se implementan protocolos de seguridad y prevención del fraude.

Mixture of Experts | 12 de diciembre, episodio 85

Descifrar la IA: resumen semanal de noticias

Únase a nuestro panel de ingenieros, investigadores, responsables de producto y otros profesionales de talla mundial que se abren paso entre el bullicio de la IA para ofrecerle las últimas noticias y conocimientos al respecto.

Componentes clave de la transmisión de eventos

Los eventos son el componente central de la transmisión de eventos. Sin embargo, un conjunto de otros componentes permite a los servicios de streaming procesar los eventos con la rapidez y eficacia con que lo hacen. Otros componentes vitales incluyen:

Intermediarios

Los intermediarios, o intermediarios de mensajes, son los servidores que ejecutan plataformas de transmisión de eventos. Los intermediarios de mensajes permiten que las aplicaciones, los sistemas y los servicios se comuniquen entre sí e intercambien información. Logran esta funcionalidad convirtiendo mensajes entre protocolos de mensajería formales. Esto permite a los servicios interdependientes "hablar" entre sí directamente, incluso si están escritos en diferentes lenguajes (Java o Python, por ejemplo) o implementados en diferentes plataformas. También facilita la disociación de los procesos y servicios dentro de los sistemas.

Los intermediarios pueden validar, almacenar, enrutar y entregar mensajes a los destinos apropiados. En los sistemas de transmisión de eventos distribuidos, los intermediarios garantizan una baja latencia y una alta disponibilidad replicando eventos en varios nodos. Los intermediarios también pueden formar clústeres: conjuntos de intermediarios que trabajan juntos para facilitar el equilibrio de carga y la escalabilidad.

Temas

Los temas son categorizaciones o nombres de feeds en los que se publican los eventos, que proporcionan una forma de organizar y filtrar los eventos dentro de la plataforma. Actúan como el "tema" de los eventos, permitiendo a los consumidores suscribirse a temas y recibir sólo los eventos relevantes.

Particiones

Los temas se pueden dividir en particiones, lo que permite a varios consumidores leer un tema simultáneamente sin alterar el orden de cada partición.

Offsets

Un offset es un identificador único para cada evento dentro de una división, que marca la posición de un evento dentro de la secuencia. Los consumidores utilizan los offsets para organizar los eventos que han procesado. Si, por ejemplo, un consumidor se desconecta de un evento y luego se vuelve a conectar, puede reanudar el procesamiento desde el último offset conocido.

¿Cómo funciona la transmisión de eventos?

Dada la proliferación de datos, y el consiguiente aumento del tráfico de datos, la transmisión de eventos es un componente esencial de las arquitecturas de datos modernas. Es valioso en entornos que requieren capacidades de toma de decisiones ultrarrápidas o en organizaciones que buscan automatizar las responsabilidades de toma de decisiones.

Así es como los servicios de transmisión de eventos gestionan los datos de eventos:

  1. Generación de eventos. La transmisión de eventos comienza cuando los productores (microservicios, sistemas backend, ecosistemas IoT o API basadas en eventos, por ejemplo) envían eventos a la plataforma de transmisión de eventos.

  2. Publicación de eventos. Mediante las bibliotecas de clientes, los productores publican el evento en un tema específico dentro de la plataforma, momento en el que pasan a estar disponibles para los consumidores (las aplicaciones y servicios que se suscriben al tema).

  3. Almacenamiento de eventos. La plataforma almacena los eventos durante un periodo predeterminado o hasta que se consumen, con intermediarios que gestionan los procesos de almacenamiento y recuperación de eventos.

  4. Consumo de eventos. Los consumidores procesan datos de eventos para iniciar otros eventos. En función de su propósito o configuración, pueden actuar sobre los eventos inmediatamente a medida que llegan (procesamiento en tiempo real), almacenarlos para su posterior procesamiento o compilarlos para su procesamiento por lotes. Los consumidores también rastrean su posición en el pipeline de datos mediante el uso de compensaciones, para que puedan reanudar el procesamiento desde donde lo dejaron, en caso de falla o reinicio.

  5. Entrega de eventos. El agente de eventos distribuye activamente los eventos a todos los consumidores suscritos. Garantiza la entrega de eventos bajo la semántica "al menos una vez", asegurando que cada evento llegue a su destino, incluso si se producen duplicados. También pueden incluir la entrega "exactamente una vez", asegurando que cada evento se entregue una vez y solo una vez, u otro tipo de semántica.

  6. Procesamiento de eventos. Una vez consumido y entregado el evento inicial, los datos del evento se procesan para varias acciones posteriores, incluida la transformación de los datos, su agregación y la activación de flujos de trabajo de procesamiento de eventos complejos (CEP).

Funcionalidades de la transmisión de eventos

Además del streaming y procesamiento estándar, las plataformas de transmisión de eventos, como Amazon Kinesis, Google Pub/Sub, Azure Event Hubs e IBM® Event Automation, facilitan una variedad de prácticas de transmisión de eventos que mejoran la funcionalidad. IBM Event Automation, en particular, utiliza la potencia de procesamiento de la plataforma Apache Kafka de código abierto para optimizar los flujos de trabajo basados en eventos.

Procesamiento sólo una vez

La semántica de entrega sólo una vez garantiza que cada evento de una secuencia se procese exactamente una vez, una función esencial para evitar que se dupliquen o se pierdan los eventos de secuencias. La mayoría de los sistemas de transmisión de eventos incluyen mecanismos para proporcionar una semántica exactamente una vez, independientemente de los fallos en otras partes del sistema.

Contrapresión

Cuando los componentes posteriores no pueden seguir el ritmo de la tasa de eventos entrantes, la contrapresión evita que las secuencias abrumen el sistema. Con la contrapresión, un mecanismo de control del flujo de datos, los consumidores pueden indicar a los productores que aceleren o detengan la producción de datos cuando se vean desbordados por el procesamiento de datos o sean incapaces de seguir el ritmo de los eventos entrantes.

Este proceso permite que los sistemas gestionen correctamente las cargas de trabajo almacenando en búfer o eliminando los eventos entrantes, en lugar de interrumpir todo el sistema, de modo que el procesamiento de eventos se mantenga estable a medida que fluctúan las cargas de trabajo.

Grupos de consumidores

Los consumidores de eventos suelen trabajar como parte de un grupo de consumidores para acelerar el consumo de eventos. A cada consumidor de un grupo de consumidores se le asigna un subconjunto de particiones para procesar, paralelizando el consumo para una mayor eficiencia. Si uno de los consumidores del grupo falla o necesita ser añadido o eliminado, la plataforma puede reasignar particiones dinámicamente para mantener el equilibrio y la tolerancia a fallos.

Marca de agua

La transmisión de eventos a menudo implica procesar datos de forma sensible al tiempo. La marca de agua permite el seguimiento del progreso (utilizando el tiempo del evento) en los sistemas de procesamiento de flujos. Impone un umbral de integridad que indica cuándo el sistema puede considerar que los datos de los eventos están completamente procesados. La marca de agua también puede ser útil para garantizar la precisión en el procesamiento basado en el tiempo y para conciliar eventos que no se ajustan al orden.

Retención y compactación de datos

La mayoría de las plataformas de transmisión de eventos ofrecen políticas de retención de datos personalizables que permiten a los desarrolladores controlar cuánto tiempo están disponibles los eventos para su consumo. Sin embargo, la compactación de datos es un proceso que elimina los datos redundantes u obsoletos de los temas, manteniendo la huella de almacenamiento mínima y preservando los datos esenciales.

Cabe señalar, de nuevo, que las arquitecturas de transmisión estándar suelen desacoplar a los productores de eventos, los intermediarios de eventos y los consumidores, de modo que los componentes se pueden escalar y mantener de forma independiente.

Casos de uso de transmisión de eventos

La transmisión de eventos es un concepto poderoso que permite a las organizaciones utilizar los datos a medida que se generan, creando sistemas más inteligentes y con mayor capacidad de respuesta. Con el auge de la toma de decisiones basada en los datos, la transmisión de eventos es un componente cada vez más importante en las arquitecturas de software modernas.

Como tales, las tecnologías de transmisión de eventos tienen una amplia gama de casos de uso en todos los sectores empresariales, entre ellos:

Servicios bancarios y financieros

Las instituciones financieras pueden utilizar los servicios de transmisión de eventos para procesar los datos del mercado en tiempo real, lo que permite a los sistemas de negociación algorítmica tomar decisiones en fracciones de segundo en función de las condiciones de mercado actualizadas al minuto. Las capacidades de monitorización en tiempo real de la transmisión de eventos también ayudan a las instituciones a identificar y abordar rápidamente el fraude y los riesgos de seguridad.

Fabricación

La transmisión de eventos puede facilitar la optimización de la cadena de suministro al permitir a los fabricantes realizar un seguimiento de los materiales y productos a medida que avanzan por la cadena de suministro para identificar cuellos de botella e ineficiencias en los procesos. Además, al transmitir datos de sensores IoT/IIoT en maquinaria, los gestores pueden predecir cuándo y por qué el equipo podría fallar y realizar mantenimiento preventivo o mantenimiento predictivo para evitar tiempos de inactividad no planificados.

Juegos y entretenimiento

Las plataformas de juegos en línea pueden utilizar los servicios de transmisión de eventos para realizar un seguimiento de las acciones de los jugadores y los cambios en el estado del juego, lo que puede utilizarse para ejecutar análisis del juego, aplicar políticas antitrampas y aumentar la participación de los jugadores. Las plataformas de transmisión pueden aprovechar los datos de eventos para ofrecer recomendaciones de contenido personalizadas a los usuarios y crear una experiencia de cliente personalizada.

Transporte y logística

La transmisión de eventos se puede utilizar para rastrear la ubicación y el estado del vehículo, lo que permite enrutar en tiempo real en función de las condiciones del tráfico, los horarios de entrega y el rendimiento del vehículo. Del mismo modo, las empresas de logística pueden utilizar datos de eventos procedentes de dispositivos de escaneado y rastreadores GPS para ofrecer a los clientes actualizaciones en tiempo real sobre el estado de sus entregas de comercio electrónico.

Uso en arquitecturas basadas en eventos y otros patrones

Más allá de industrias específicas, la transmisión de eventos también puede ser útil cuando se implementa en conjunto con otras tecnologías y arquitecturas. Por ejemplo, la transmisión de eventos a veces se asocia con patrones como el abastecimiento de eventos y la segregación de responsabilidad de consultas de comandos (CQRS).

El abastecimiento de eventos es un patrón arquitectónico en el que los cambios en el estado de la aplicación se almacenan como una secuencia de eventos. Utilizado junto con la secuencias de eventos, el abastecimiento de eventos permite al sistema de transmisión reproducir estos eventos para reconstruir el estado de una entidad en cualquier momento o para impulsar otros componentes del sistema.

En un patrón arquitectónico CQRS, el sistema se divide en dos modelos diferentes: uno que gestiona los comandos (escritura) y otro que gestiona las consultas (lectura). La transmisión de eventos puede utilizarse en CQRS para propagar los cambios del modelo de escritura al modelo de lectura en tiempo real, lo que permite la integración asíncrona entre ambos.

La transmisión de eventos también es una tecnología fundamental para crear arquitecturas basadas en eventos.

Una arquitectura basada en eventos permite que los componentes débilmente acoplados se comuniquen a través de eventos. En lugar de publicar secuencias de eventos en un agente, publica un evento de un solo propósito que otra aplicación o servicio puede utilizar para realizar acciones a su vez.  La capacidad de procesamiento en tiempo real que ofrecen las arquitecturas basadas en eventos, utilizadas junto con funciones de transmisión de eventos, puede permitir a las empresas responder a los datos en movimiento y tomar decisiones rápidas basadas en todos los datos actuales e históricos.

En los últimos años, los proveedores de nube (incluido IBM Cloud) han comenzado a ofrecer los principios de la transmisión de eventos como servicios. La transmisión de eventos como servicio facilita a las empresas la adopción de la transmisión de eventos sin gestionar toda la infraestructura subyacente, lo que amplía aún más los casos de uso del streaming de eventos.

Soluciones relacionadas
IBM Event Automation

IBM Event Automation es una solución componible para ayudar a acelerar los esfuerzos de las empresas centrados en los sucesos con capacidades de distribución, descubrimiento y procesamiento de sucesos.

Explore IBM Event Automation
Servicios de consultoría en automatización

Vaya más allá de la simple automatización de tareas para gestionar procesos de alto perfil, orientados al cliente y generadores de ingresos con adopción y escala integradas.

Explore los servicios de consultoría para la automatización
Soluciones AIOps

Descubra cómo la IA para operaciones de TI ofrece los conocimientos que necesita para ayudar a impulsar un rendimiento empresarial excepcional.

Explore las soluciones AIOps
Dé el siguiente paso

Acelere la toma de decisiones y las operaciones detectando nuevas tendencias, amenazas y oportunidades.

 

Explore IBM Event Automation Realice un recorrido autoguiado