Descubriendo la Plataforma Apama 

Desarrollo de apps EDA’s Orientadas al procesamiento de eventos

Una aplicación Complex Event Procesing desarrollada en Apama permite al negocio la implementación de nuevas funcionalidades estratégicas diferenciadoras que afectaran a su cuenta de resultados. Aunque el enunciado anterior parece un poco pedante, actualmente es una realidad y no una mera declaración de intenciones.

Historia

Inicialmente (1999) las aplicaciones CEP aplicaban mayoritariamente a casos de uso de mercado de capitales, donde la algoritmia y la correlación de ordenes SELL/BUY en milisegundos eran ya una necesidad de negocio, ahora gracias al “big data”, el CEP aplica en otros sectores, como las Utilities.  Ya es necesario correlar los flujos (streams) de datos heterogéneos en tiempo real para dar al negocio la posibilidad de actuar cuando el EVENTO ocurre, para por ejemplo realizar promociones/oferta en tiempo real según el contexto y la geo-localización del consumidor. Es decir, la plataforma, basada en Eclipse, detecta y analiza eventos basados en escenarios y patrones.

Justificación

Es crítico para satisfacer las nuevas necesidades que el negocio demanda el introducir las aplicaciones orientadas a arquitecturas EDA (Event Driven Arquitecture). Por ejemplo, si un contador inteligente de la luz realiza una lectura cada 10m, el proceso de facturación de Iberdrola debería de ser en casi real-time. Es necesario almacenar y analizar esta información, no solamente para facturar a mis clientes, sino para ver tendencias, descubrir fraude en tiempo real, anticiparme al consumo, detectar averías, etc. 

La plataforma Apama introduce funcionalidades para agregar, filtrar, correlar, transformar, crear y actuar en flujos de eventos (información heterogénea provenientes de redes sociales, sistemas IT, logs, mensajería, etc) para realizar acciones validas e inmediatas.

 Casos de uso

Un caso de uso típico de arquitectura EDA es en el contexto del “Internet de las cosas” y de los sensores. Por ejemplo, una planta manufacturera podría correlar todas las señales de sus sensores (PLC y SCADA) en tiempo real para realizar cuadros de mando del estado de los procesos productivos de la planta, o generar alarmas bajo ciertas condiciones extremas.

En el sector bancario se realizan aplicaciones de monitorización del fraude en tarjetas o análisis de los procesos core de la banca retail (por ejemplo, para detectar encolamiento en aperturas de cuentas o tarjetas de crédito

El Leguaje EPL Event Processing Language

El corazón de la plataforma es el CORRELADOR. El motor de correlación se encarga de procesar los evento en su cola de entrada para buscar coincidencias basadas en ventanas de tiempo acorde a los escenarios descritos en la solución. Un escenario es simplemente flujo de estados (máquina de estados) con patrones, especificados en reglas de negocio, para resolver cada estado.

 Aunque por defecto, el correlador va procesando los eventos en la cola de entrada a medida que los adaptadores los envían, cuando el orden de los eventos no es importante, podemos utilizar procesamiento en paralelo mediante “contextos” tanto en el mismo correlador como creando una arquitectura con múltiples instancias (virtuales o físicas en nodos distintos) de nuestro motor de correlación.

 Aunque la plataforma soporta Java, también nos ofrece la posibilidad de programar en un lenguaje especializado en eventos, llamado EPL, muy similar a Java y C++, pero con extensiones de alto nivel para aumentar la productividad.

INPUT/OUTPUT

Existen varios mecanismos de envió de eventos al correlador, utilizando un adaptador especifico de Apama o vía API cliente, para mapear y trasladar la información de entrada a formato de eventos de Apama. De la misma forma una vez analizados los eventos con los patrones podremos realizar acciones de salida del correlador, como escribir ficheros de texto, envío de eventos a una cola de mensajería, o utilizar la herramienta de dashboard de Apama para presentar KPIs en tiempo real a nuestros usuarios.

Cabe notar que la herramienta de dashboard se puede desplegar en servidores de aplicaciones y son interactivos, es decir, un usuario de negocio podría cambiar los umbrales de trabajo para en tiempo real modificar la lógica de negocio del correlador.

Fin de la primera parte.

Parte 2: Arquitectura de la solución y descripción de los ejemplos.

Parte 3: Ejemplos código y casos de uso