EDA (Event Driven Architecture) es un emergente estilo de arquitectura de aplicaciones que permite que ciertos eventos activen automáticamente mensajes de notificación, contribuyendo a que los usuarios tomen mejores decisiones, idealmente en tiempo real.
Empresa extendida, decisiones en tiempo real, integración con proveedores y socios de negocios, entre otras, son algunas de las exigencias más importantes en el ámbito de las tecnologías aplicadas a los negocios.
En este escenario, viene emergiendo un nuevo concepto, conocido como EDA. Event Driven Architecture es un término acuñado por Gartner en el 2003 y que hoy se perfila como un nuevo paradigma: la arquitectura de aplicaciones basadas en eventos.
Una arquitectura EDA es una aproximación, una visión, sobre cómo diseñar y desarrollar aplicaciones en donde ciertos “eventos” activan mensajes para ser enviados entre módulos de software, independientes y desconocidos entre sí, y que están, por lo tanto, desacoplados.
Un “evento” de software puede definirse como un objeto que registra una actividad, como, por ejemplo, la apertura de una cuenta de un determinado cliente o el pedido correspondiente a una orden de compra. Los eventos están pensados para usarse en diversas aplicaciones y empresas y deben tener un propósito de negocios para ser utilizables en ellas.
Para los propósitos de negocio, un evento es un cambio en el estado de la empresa. Los eventos pueden ser simples o complejos. Un evento simple podría ser la llegada de un camión de carga a determinada hora, por ejemplo. Los eventos complejos, en cambio, involucran patrones o modelos de eventos, en donde están asociadas más de una sola variable.
En tanto existen millones de eventos en una empresa, lo importante es su identificación desde una perspectiva de procesos de negocios, constituyendo lo que algunos denominan "eventos materiales". Estos eventos tienen como característica fundamental el que gatillan decisiones distintas cuando se conocen. Y ese es precisamente el objetivo de la arquitectura EDA: permitir a la organización conocer lo más pronto posible los eventos materiales, idealmente, en el momento que ocurren. De esta forma, se alerta a los empleados rápidamente ante eventos críticos, brindando más tiempo y, más opciones, para resolverlos.
Los sistemas tradicionales de requerimiento y respuesta (request/reply), ponen el énfasis en que el usuario pida la información, haga las preguntas correctas, consulte en la fuente correcta y mantenga las preguntas hasta que un determinado evento ocurra. Un sistema EDA, en cambio, usa un modelo de publicación y suscripción, el cual permite a los usuarios, sistemas y aplicaciones determinar qué otras aplicaciones, usuarios y privilegios reciben o se suscriben a sus capacidades. Cuando se realiza una suscripción, los suscriptores se pondrán al día automáticamente ante determinados eventos, previamente definidos.
Otra característica de los sistemas basados en EDA es que deben proveer capacidades de conexión extendida, brindando integración de datos a escala Internet y acceso –hacia y desde– muchas fuentes y usuarios. Al mismo tiempo, las soluciones de este tipo apuntan a distribuir información sobre eventos tanto en browsers y PC's de escritorio como en teléfonos móviles y PDA's (asistente personal digital), siendo un elemento muy importante el que los datos sobre eventos tiendan a notificarse en tiempo real.
Actualmente, EDA está siendo usada para procesar eventos complejos, con aplicaciones en el mercado financiero, energético, cadena de suministros, detección de fraudes, seguridad nacional, telecomunicaciones, manejo de relaciones con el cliente, logística y redes sensoriales, como las basadas en tecnologías RFID.