Arquitectura dirigida por eventos
La Arquitectura dirigida por eventos, Event-driven
architecture o EDA, es un patrón de arquitectura software que
promueve la producción, detección, consumo de, y reacción a eventos.
Un evento puede ser definido como "un cambio
significativo en un estado". Por ejemplo, cuando un consumidor compra un
coche, el estado del coche pasa de "se vende" a "vendido".
La arquitectura del sistema del vendedor de coches debe tratar este cambio de
estado como un evento, cuyo suceso puede ser conocido en otras aplicaciones en
la arquitectura. Desde una perspectiva formal, lo que es producido, publicado,
propagado, detectado o consumido es un mensaje (típicamente asíncrono) llamado
notificación del evento, y no el evento en si mismo, el cuál es el cambio de
estado que disparó la emisión del evento. Los eventos no viajan, solamente
ocurren. Por otro lado, el término evento es frecuentemente usado para denotar
el mensaje de notificación en sí mismo, lo cual puede llevar a algún tipo de
confusión.
Este patrón arquitectónico puede ser aplicado por el diseño
e implementación de aplicaciones y sistemas que transmitan eventos entre
componentes software que estén emparejados libremente y servicios. Un sistema
dirigido por eventos está compuesto típicamente de emisores de eventos (o
agentes) y consumidores de eventos (o "sink" en inglés). Los
consumidores tienen la responsabilidad de llevar a cabo una reacción tan pronto
como el evento esté presente. La reacción puede o no puede ser completamente
proporcionada por el consumidor en sí mismo. Por ejemplo, el consumidor debe
tener solamente la responsabilidad de filtrar, transformar y reenviar el evento
a otro componente o debe proporcionar una reacción propia a algún evento.
Construir aplicaciones y sistemas alrededor de una
arquitectura dirigida por eventos permite a estas aplicaciones y sistemas ser
construidos de una manera que facilita un mayor grado de reacción, debido a que
los sistemas dirigidos por eventos están, por el diseño, más normalizados para
entornos no predecibles y asíncronos.
La arquitectura dirigida por eventos puede complementar la
arquitectura orientada a servicios (SOA) porque los servicios pueden ser
activados por disparadores que se encuentran en eventos entrantes. Este
paradigma es particularmente útil cuando el consumidor no proporciona algún
contenedor ejecutivo propio.
SOA 2.0 engloba las implicaciones de las arquitecturas SOA y
EDA proporcionando a un más rico y más robusto nivel, creando un nuevo patrón
de eventos. Este nuevo concepto de disparadores de patrones de inteligencia
promueve a humanos autónomos o procesamiento automático que añade valor
exponencial al negocio. Esto se debe a que se inyecta información de valor
añadido en patrón reconocido que no podía haber sido obtenido previamente.
Ventajas
- Simplicidad
- Evolución: se pueden reemplazar componentes suscriptores
- Modularidad: una sola modalidad para eventos diversos
- Puede mejorar la eficiencia, eliminando la necesidad de polling por ocurrencia de evento
Desventajas
- Posibilidad de desborde
- Potencial imprevisión de escalabilidad
- Pobre comprensibilidad: Puede ser difícil prever qué pasará en respuesta a una acción
- No hay garantía del lado del publicador, que el suscriptor responderá al evento
- No hay mucho soporte de recuperación en caso de falla parcial
No hay comentarios:
Publicar un comentario