manejo complejo de - meetupfiles.meetup.com/1780859/slides.pdfgeneración automática de nodos o los...
TRANSCRIPT
![Page 2: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/2.jpg)
Agenda● Que es Manejo Complejo de Eventos?
o Definiciones y ejemplos● Event Driven Architecture
o EDA y BPM, SOA, BAM, BRMSo Manejo Complejo de Eventos como componente de EDA
● Aplicación en la nubeo BRMS: Sistemas de manejo de reglas de negocioo Streaming de eventos en la nubeo Manejando eventos en la nubeo Ingeniería de conocimiento: Leccioneso Posibles mejoras
![Page 3: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/3.jpg)
Qué es Manejo Complejo de Eventos?
● Definición de Eventoo Un cambio significativo del estado de algo, en un
momento específico, sobre un dominio específicoo Los eventos pueden estar embebidos en una situación
donde usualmente buscamos reaccionar a ellos.● Definición de Evento Complejo
o Evento no atómico: Una abstracción, composición, o agregación de otros eventos (llamados eventos miembros)
![Page 4: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/4.jpg)
Ejemplos de Eventos Complejos
● Caída de la bolsa de 1929: Composición de cotizaciones de acciones individuales
● Desastres naturales: Agregación de muchas variaciones medibles por sensores (temperatura, humedad, etc)
● Ataques DDOS: Agregación de información básica de pedidos HTTP y su relación temporal
![Page 5: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/5.jpg)
Qué es Manejo Complejo de Eventos?● Manejo Complejo de Eventos (Complex Event Processing)
o Habilidad de detectar, relacionar, abstraer o agregar eventos simples, para reaccionar ante eventos complejos
o Usa razonamiento temporal: Secuencia discreta de puntos en el tiempo (o intervalos) para relacionar eventos simples entre sí
● Event Streaming Processingo Los eventos vienen en streams: Principalmente
relacionado a filtrar y encontrar eventos en un streamo En cuanto se empezó a agregar condiciones al filtrado de
eventos, se lo empezó a llamar CEP
![Page 6: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/6.jpg)
Arquitectura Orientada a Eventos● Construir aplicaciones centradas en la generación de
eventos● Propone un set de componentes
o Productores: Mandan nuevos eventos al sistemao Consumidores: Escuchan eventos específicos del
sistemao Agentes de procesamiento: Trabajan con los eventos
complejos haciendo CEPo Canales: Conexiones y protocolos para transmitir
eventos
![Page 7: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/7.jpg)
Arquitectura Orientada a Eventos
![Page 8: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/8.jpg)
Características de EDA● Las aplicaciones se centran alrededor de eventos● Diseño desacoplado
o Los productores no conocen a los consumidoreso Los agentes de procesamiento no conocen a los
productores ni a los consumidores● La aplicación tendrá la posibilidad de reaccionar en base a
eventos● Propone un enfoque no invasivo para extender aplicaciones
o Escalabilidad y tolerancia a fallos sin agregadoso Ideal para la naturaleza dinámica de la nube
![Page 9: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/9.jpg)
EDA y SOA● SOA propone un diseño basado en componentes
compartidos y reusables con interfaces bien definidas● Cada servicio SOA puede generar eventos que consuma los
componentes EDA, para analizar o extender el sistemao Ejemplo: monitoreo de ESBs
![Page 10: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/10.jpg)
EDA y BPM● Las actividades de los procesos de negocio pueden producir
eventos, y mandarlos fuera del alcance del proceso● Los procesos de negocio pueden esperar a recibir eventos
de fuentes externas para cambiar su estado interno
![Page 11: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/11.jpg)
EDA y BAM● Business Activity Monitoring: Sistemas relacionados siempre
con indicadores de performance (KPIs)● Agregaciones de eventos nos permitirán proveer mejores
feeds a nuevos indicadores
![Page 12: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/12.jpg)
EDA y BRMS● BRMS: Business Rule Management System● Las Reglas de negocio pueden usarse para filtrar, enrutar y
componer eventos● Los agentes de procesamiento pueden usar reglas
o Los eventos pueden disparar reglas
![Page 13: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/13.jpg)
Aplicación en la nube
![Page 14: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/14.jpg)
Arquitectura General
![Page 15: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/15.jpg)
Características● Motor CEP basado en Reglas● Sistema de manejo de reglas de negocio (BRMS) para guardar y
cargar definiciones de reglaso Las reglas se actualizan en el runtime al pasar los tests
● Manejo de miles de eventos de múltiples fuenteso Eventos genéricoso Eventos tipados (clases específicas)
● Recibir eventos de múltiples aplicacioneso Streaming de eventos basado en AOP
● Suscriptores persistentes (con SLA) y no persistentes (sin SLA)
![Page 16: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/16.jpg)
La nube vs Manejo Complejo de Eventos● Servidores cloud: Tamaño limitado, servidores “ilimitados”
o La clave está en la escalabilidad● CEP basado en Drools: Todos los eventos están en una sola
red de procesamientoo Requieren mucha memoriao Usualmente corre en un único servidor
● Compromiso: Crear una red de procesamiento distribuida, agrupando las responsabilidades de cada nodoo Arquitectura basada en dividir el ambiente CEP en
múltiples servidores dependiendo de la demanda
![Page 17: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/17.jpg)
Nodos CEP divididos por dominio● Red de procesamiento Distribuida
o Agrupamiento basado en responsabilidado CEP Broker node: Distribución de eventos a su nodo de
dominio (descarte casi inmediato)
![Page 18: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/18.jpg)
Nodos CEP divididos por dominio● Implementado con Drools Fusion
o Basado en un motor de reglas, con soporte para operadores temporales
o BRMS: editores de reglas, procesos, y modelo▪ Expone las definiciones a través de Git y Maven
![Page 19: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/19.jpg)
Qué son las reglas?● Estructura simple para diagramar requerimientos como
condiciones aisladas y su correspondiente acción
rule "nombre de la regla" when
una condición se cumple
thense toma una acción
end
![Page 20: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/20.jpg)
Eventos y reglas CEP: Drools Fusion● Declaración simple de eventos
o Definir un evento puntual▪ default: al agregarlo
o Definir un evento de intervalo● Puede crear nuevas clases de eventos● Usualmente inmutables (no reforzado)● Pueden venir de distintas fuentes● Drools provee 13 operadores
temporales para comparar eventos entre si
import algun.paquete.Llamada;declare Llamada
@role( event )@timestamp( horaLlamada )@duration( duracion )
end
declare CotizacionAccion@role( event )simbolo: Stringprecio: double@expires( 2h30m )
end
![Page 21: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/21.jpg)
Operadores Temporales
![Page 22: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/22.jpg)
Regla ejemplo (CEP)● Drools provee maneras de agregar y acumular diferentes
grupos de hechos y eventos por las condiciones que cumplan
rule "5 llamadas en dos horas por el mismo cliente"when //tenemos 4 o más llamadas del mismo cliente 2 horas desde la primera
$vc: Llamada($cn: nroCliente)$c: Cliente(nroCliente == $cn)$count:: Number(intValue > 4) from accumulate(
Llamda(this != $vc, nroCliente == $cn, $vc before this, this after $vc, this meets[2h] $vc
),count())then //marcar este problema como urgente y requerir tratamiento avanzado
helperGlobal.mandarAlerta("usuario llama una y otra vez");helperGlobal2.setPrioridadCliente($cn, Prioridad.URGENTE);helperGlobal2.setDificultad(Dificultad.AVANZADA);
end
![Page 23: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/23.jpg)
BRMS y los nodos de CEP● JBoss BRMS 6
o Proyecto Open Source. Preparado para la nubeo Maneja grupos de reglas como proyectos Maven almacenados en
repositorios Git▪ Integración continua en todos los nodos
![Page 24: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/24.jpg)
Manejando el volumen de eventos● Message Broker escalable basado en cloud
(can grow with necessity)● Nodos CEP múltiples
o Drools trabaja en memoriao Ambientes divididos por dominioo n nodos CEP - m servidores
● Nodo CEP global (reducido) para problemas cross-dominio
● Eventos viejos: persistidos en caché escalable (MongoDB)o Políticas de descarte más laxas que para eventos en memoriao Consultadas cuando nuevos eventos disparan reglas de consulta
![Page 25: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/25.jpg)
Suscripciones a Eventos● Suscriptores persistentes
o SLA previamente acordadao Sin pérdida de mensajeso Políticas para rompimiento de SLA
▪ Descarte de mensajes▪ Guardar temporalmente y notificar
acción requerida● Suscriptores no persistentes
o No hay SLA o Posible pérdida de mensajeso Ideal para inicio rápido de proyectos
![Page 26: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/26.jpg)
Integración en la nube● Fuse ESB: Fácil de instalar en la nube, y escalable● No soporta volúmenes altamente variables de eventos
o Eventos manejados a través de broker RabbitMQ
![Page 27: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/27.jpg)
Integración entre Aplicaciones● Aplicaciones con arquitectura que permita AOP
o Eventos enviados a través de interceptors en servicioso Empezar a enviar eventos sin agregar código
![Page 28: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/28.jpg)
Integración con motor BPM en la nube● JBoss BPM Suite: basado en jBPM6
o BPMN2: Definiciones extensibleso jBPM6: Parseo extensible para
configurar el runtimeo Conectores a envio de eventos
agregado a todos los pasos relevantes de los procesos
● Manejo especial de eventos complejos (ej: tareas humanas automatizadas para mantener SLAs)
![Page 29: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/29.jpg)
Integración con motor BPM en la nube● JBoss BPM Suite y motor CEP
usan la misma tecnología● División basada en:
o CEP toma eventos de muchas fuentes ademas de BPM
o Requerimientos no funcionales● Los procesos delegan rápido y
persisten. Procesos longevos● CEP maneja miles de eventos
relacionados muy cerca en tiempo
![Page 30: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/30.jpg)
Tareas operativas en la nube
● Manejo de ruptura de SLAso Planes PaaS que permiten picos de usoo DevOps: El monitoreo continuo es vital!o : : Cuando la SLA se viola, los mensajes extra pueden
manejarse y tomar acciones al respecto▪ Descarte de mensajes▪ Cambios en los SLA
● Todos los componentes en la nube se monitoreano Los resultados pueden retroalimentar el motor de CEP
![Page 31: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/31.jpg)
Ingeniería de Conocimiento: Lecciones● Ingeniería de Conocimiento: Disciplina que agrupa la
transferencia, modelado e integración de conocimiento de humanos a sistemas de inteligencia artificial.
● Experiencias de captura de requerimientos de expertos de dominio llevó a identificar etapas de madurez:o Etapa 1: Analistas traducen conocimiento a reglaso Etapa 2: Analistas enseñan a expertos las estructuraso Etapa 3: Proveer herramientas para escribir reglas
directamente▪ DSL: Domain Specific Languages▪ Tablas de Decisión
![Page 32: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/32.jpg)
● Etapa 1 y 2: Definir conocimiento en estructuras
● Etapa 3o DSL: Provee traducciones del lenguaje natural a la
implementación técnica específica del motor de reglaso Tablas de Decision: Ideal para reglas muy
estructuradas con límites específicos.
REGLAS COMUNES REGLAS CEP
cuando una condición se cumpleentonces tomar una acción específica
detectar una correlación de eventosy tomar una acción relacionada
Ingeniería de Conocimiento: Lecciones
![Page 33: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/33.jpg)
Factores de Riesgo● Generación de ambientes se realiza manualmente● Disponibilidad de memoria
o Incluso después de dividir los nodos por dominio, algunos dominios pueden requerir mucha memoria. Actualmente se sugiere correr en nube privada
● Los nodos no se replicano En caso de fallo de un nodo, se reiniciao Los eventos en memoria se pierdeno Pequeña ventana de tiempo en que las relaciones
entre eventos pueden perderse
![Page 34: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/34.jpg)
Futuras mejoras● Generación automática de nodos
o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes
o Basado en la detección de nuevos eventos complejos, pueden crearse nuevos ambientes▪ ej. Nuevo dominio de reglas creado → Generación
automática de ambiente● Extender el uso a más personas: Cobertura de DSL
![Page 35: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/35.jpg)
Futuras mejoras● Replicación automática de nodos
o Eventos en memoria replicados en nodos extrao Ejecución de reglas en un nodo a la vezo Actualización continua de eventos y activaciones de reglas entre
nodoso Drools: Agenda Filters y WM Event Listeners
![Page 36: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/36.jpg)
Resumiendo● CEP puede manejarse en ambientes de nube
o Consideraciones de tamaños de dominios necesaria para poder escalar y evitar fallos
o Tareas operativas especiales se deben realizar▪ Integración de mejores prácticas de ambientes
empresariales es posible ▪ Continuous Delivery es muy factible
● Interacción CEP - arq. empresarial: mucho valor agregadoo Control automático antes de romperse SLAs con clienteso Mejor detección de comportamientos inesperados
![Page 37: Manejo Complejo de - Meetupfiles.meetup.com/1780859/slides.pdfGeneración automática de nodos o Los proveedores PaaS cuentan con APIs para crear nuevos ambientes o Basado en la detección](https://reader035.vdocuments.site/reader035/viewer/2022062920/5f01fcdb7e708231d4020530/html5/thumbnails/37.jpg)
¿Preguntas?