Iniciar sesión / Registrar Cuenta

Integración

¿Qué es la arquitectura basada en eventos?

Jump to section

La arquitectura basada en eventos es un modelo y una arquitectura de software que sirve para diseñar aplicaciones. En un sistema como este, la captura, la comunicación, el procesamiento y la permanencia de los eventos son la estructura central de la solución, lo cual difiere del modelo tradicional basado en solicitudes.

Muchos diseños de aplicaciones modernas se basan en eventos, como los marcos de interacción con los clientes, que deben utilizar los datos de los clientes de forma inmediata. Estas aplicaciones se pueden crear con cualquier lenguaje de programación, ya que la expresión "basado en eventos" se refiere a un enfoque de programación, no a un lenguaje. La arquitectura basada en eventos posibilita un acoplamiento mínimo, por eso es una buena opción para las aplicaciones distribuidas y modernas.

El bajo nivel de acoplamiento se debe a que los productores de eventos no saben qué consumidores están atentos a un evento, y este desconoce cuáles serán sus consecuencias.

 

¿Qué es un evento?

Los eventos son aquellos sucesos o cambios significativos en el estado del hardware o el software de un sistema. Un evento y su notificación no son lo mismo: la segunda es un mensaje que el sistema envía para comunicar a otra parte del sistema que se produjo cierto evento.

Los eventos pueden originarse por estímulos internos o externos. Se pueden generar con la actividad de un usuario, por ejemplo, cuando hace clic con el mouse o presiona una tecla; a partir de una fuente externa, como es el caso de un sensor; o provenir del sistema, cuando se carga un programa, por ejemplo.

 

¿Cómo funciona una arquitectura basada en eventos?

Esta arquitectura está compuesta por consumidores y productores de eventos. El productor detecta los eventos y los representa como mensajes. No conoce al consumidor del evento ni el resultado que generará este último. 

Una vez que se detecta un evento, este se transmite del productor a los consumidores a través de canales de eventos, donde se procesa de manera asíncrona con una plataforma para este fin. Ni bien se produce un evento, se debe informar a los consumidores, quienes podrían procesarlo o simplemente verse afectados por él. 

La plataforma de procesamiento de eventos ejecutará la respuesta adecuada para el evento y enviará la actividad a los consumidores correspondientes. Esta actividad downstream corresponde al lugar en el que se verá el resultado del evento. 

Apache Kafka es una conocida plataforma distribuida de transmisión de datos, que sirve para el procesamiento de eventos y que gestiona la publicación, el almacenamiento y el procesamiento de flujos de eventos, así como la suscripción a ellos, de forma inmediata. La plataforma admite varios de casos prácticos donde la alta productividad y la capacidad de ajuste son fundamentales. Además, gracias a que disminuye la necesidad de contar con integraciones de punto a punto para el intercambio de datos en ciertas aplicaciones, puede reducir la latencia a milisegundos. 

Hay otros administradores de eventos de middleware disponibles que pueden funcionar como plataforma de procesamiento de eventos.

 

Modelos de arquitecturas basadas en eventos

Una arquitectura de este tipo puede basarse en un modelo de publicación/suscripción o en un modelo de flujo de eventos.

Modelo de publicación y suscripción

Es una infraestructura de mensajería que se basa en suscripciones a un flujo de eventos. Con este modelo, una vez que se genera o publica un evento, este se envía a los suscriptores que necesitan estar informados al respecto.

Modelo de transmisión de eventos

Con este modelo, los eventos se escriben en un registro. Los consumidores no se suscriben a un flujo de eventos, sino que pueden leerlo desde cualquiera de sus partes y unirse a él en cualquier momento. 

Hay varios tipos de flujo de eventos:

  • El procesamiento de flujos de eventos utiliza una plataforma de transmisión de datos, como Apache Kafka, para incorporar los eventos y procesar o transformar su flujo. Este procesamiento se puede utilizar para detectar patrones significativos en los flujos.
  • El procesamiento de eventos simple surge cuando un evento desencadena inmediatamente una acción en el consumidor.
  • El procesamiento de eventos complejo requiere que un consumidor de eventos procese una serie de ellos para detectar patrones.

 

Beneficios de la arquitectura basada en eventos

Con una arquitectura basada en eventos, las empresas obtienen un sistema flexible que se adapta a los cambios y toma decisiones rápidamente. Conocer la situación de inmediato implica que se puedan tomar decisiones empresariales, ya sean automatizadas o manuales, en función de todos los datos disponibles que reflejan el estado actual de los sistemas. 

Los eventos se captan a medida que ocurren desde sus fuentes, como las redes, las aplicaciones y los dispositivos del Internet de las cosas (IoT), lo cual permite que los productores y los consumidores compartan información sobre el estado y la respuesta de forma inmediata. 

Las empresas pueden incorporar la arquitectura basada en eventos a sus sistemas y aplicaciones para mejorar la escalabilidad y la capacidad de respuesta de las aplicaciones, y para acceder a los datos y al contexto necesarios para tomar mejores decisiones empresariales.

 

¿Por qué elegir Red Hat para la integración ágil?

Actualmente, las arquitecturas basadas en eventos y las aplicaciones originales de la nube sin conexión directa que se desarrollaron con los métodos ágiles y de DevOps necesitan un enfoque de integración igualmente ágil y adaptable. 

La visión de Red Hat sobre la integración ágil es simplemente un enfoque para conectar sus recursos que combina tecnologías de integración, técnicas ágiles de distribución y plataformas desarrolladas directamente en la nube para mejorar la velocidad y la seguridad de la distribución de software. 

Red Hat ofrece las plataformas de integración y los sistemas de software de gestión que le permiten conectar las tecnologías heredadas y los microservicios en todos los entornos de nube híbrida con rapidez, y que respaldan su arquitectura basada en eventos con la integración ágil.

Integración con Red Hat

Red Hat Integration logo

Conjunto completo de tecnologías de mensajería e integración diseñado para conectar las aplicaciones y los datos en todas las infraestructuras híbridas.

Servicio de nube gestionada que ofrece una experiencia ágil para que los desarrolladores diseñen, implementen y adapten las aplicaciones directamente en la nube o para que modernicen los sistemas actuales.

Pruebe Red Hat OpenShift Streams for Apache Kafka