III Jornadas Predoctorales de la Escuela Superior de Ingeniería Libro de Actas Cádiz, 28 al 30 de Noviembre de 2011
Editores: Arturo Morgado Estévez Mariano Marcos Bárcena Inmaculada Medina Bulo Imprime: Copistería San Rafael C/ Benjumeda, 36 11003-Cádiz ISBN-13: 978-84-695-2338-4
COMITÉ CIENTÍFICO Francisco Aguayo González F. Javier Botana Pedemonte Domingo Cantero Moreno Felipe Crespo Foix Juan José Domínguez Jiménez Pedro L. Galindo Riaño Antonio J. Gámez López Elisa Guerrero Vázquez Ricardo Hernández Molina Gabriel Jiménez Moreno Alejandro Linares Barranco Mariano Marcos Bárcena Inmaculada Medina Bulo Arturo Morgado Estévez Guadalupe Ortiz Andrés Pastor Fernández Joaquín Pizarro Martín Ramírez Muñoz Mercedes Ruiz Carreira Daniel Sánchez Morillo Antonio Tomeu Hardasmal EDICIÓN TÉCNICA Moisés Batista Ponce Fernando Pérez Peña Carlos Rodríguez Cordón Álvaro Gómez Parra Jorge Salguero Gómez Arturo Morgado Estévez ORGANIZA Escuela Superior de Ingeniería Universidad de Cádiz
ÍNDICE INGENIERÍA INFORMÁTICA Aplicación del algoritmo de Cúmulo de partículas para el diseño de lentes fotónicas en 3D Agustín Morgado León, Andrés Yáñez Escolano, Pedro L. Galindo Riaño Modelado y Simulación de una Lente Fotónica 3D mediante Diseño Inverso y Técnicas de Supercomputación Alejandro Escuín Elícegui, Elisa Guerrero Vázquez, Pedro L. Galindo Riaño Simulador de imágenes de microscopía HAADF en baja resolución Mario Rivas Sánchez, Joaquín Pizarro, Pedro L. Galindo Riaño 19 Simulación Kinetic Monte Carlo de Crecimiento Epitaxial Jerónimo Abujas Pereira, Joaquín Pizarro, Pedro L. Galindo Riaño 23 Soporte a la toma de decisiones en el proceso de planificación de proyectos de CMMI mediante simulación híbrida Daniel Crespo Bernal, Mercedes Ruiz Carreira Application of Simulation Modeling in IT Service Management David W. Gawn, Mercedes Ruiz Carreira 31 Aprendizaje automático en redes neuronales mediante computación evolutiva: aplicación al TIC-TAC-TOE Samuel Graván Pérez, Antonio Tomeu Hardasmal Un Enfoque para la Generación de Pruebas para Múltiples Tecnologías desde Flujos de Trabajo Anotados con MARTE Antonio García Domínguez, Inmaculada Medina Bulo, Mariano Marcos Bárcena Aplicación de Pruebas Metamórficas a la composición del Préstamo María del Carmen de Castro Cabrera, Inmaculada Medina Bulo 43 Análisis del lenguaje EPL para la prueba de mutaciones Lorena Gutiérrez Madroñal, Juan José Domínguez Jiménez, Inmaculada Medina Bulo Una Propuesta de Integración de ESB con un Motor CEP Juan Boubeta Puig, Guadalupe Ortiz, Inmaculada Medina Bulo 51 11 15 27 35 39 47 INGENIERÍA DE FABRICACIÓN Aplicación de técnicas de perfilometría topográfica a la evaluación de desgaste por adhesión secundaria Moisés Batista Ponce, Mariano Marcos Bárcena Influencia del tiempo de exposición a niebla salina en la resistencia a la tracción de las aleaciones UNS A92024 y UNS A97075 José Enrique Díaz Vázquez, Mariano Marcos Bárcena, F. Javier Botana Pedemonte 57 61 7
Relaciones entre vibración relativa herramienta-pieza y perfil en el caso de mecanizados por torneado Fernando Fernández Ancio, Mariano Marcos Bárcena, Antonio J. Gámez López Influencia de las partes interesadas en la dirección de proyectos Manuel Otero Mateo, Andrés Pastor Fernández 69 Aproximación a una Ingeniería de Calidad orientada al Ciclo de Vida Humberto Martínez Marín, Mariano Marcos Bárcena 73 Procesos de Fabricación en Empresa Extendida e Integración de la Calidad Juan Ramón Lama Ruiz, Mariano Marcos Bárcena, Francisco Aguayo González 77 65 SISTEMAS BIOINSPIRADOS Búsqueda exhaustiva de kernel de convolución para imágenes AER Rafael Jesús Montero González, Arturo Morgado Estévez 83 Estudio de Señales LVDS (Low Voltage Differential Signal) para la transmisión de datos en formato AER Mario Rueda Aguilocho, Arturo Morgado Estévez Adaptación teórica de un algoritmo generador de trayectorias al paradigma pulsante AER Fernando Pérez Peña, Arturo Morgado Estévez, Alejandro Linares Barranco Aportaciones para la estandarización de la capa de aplicación de un protocolo S-AER Carlos Rodríguez Cordón, Arturo Morgado Estévez, Alejandro Linares Barranco Aproximación al flujo óptico en sistemas AER Manuel Matías Casado, Arturo Morgado Estévez, Gabriel Jiménez Moreno 99 87 91 95 MISCELÁNEA Biofiltro percolador anóxico a escala piloto para la eliminación de sulfuro de hidrógeno en biogás Fernando Almengló Cordero, Martín Ramírez Muñoz, Domingo Cantero Moreno Aportaciones de las TICs a la detección precoz domiciliaria de exacerbaciones de EPOC Miguel Ángel Fernández Granero, Daniel Sánchez Morillo, Felipe Crespo Foix Estudio Acústico de Centro Multifuncional para la Cultura y el Ocio J. Toyos Galdino, Ricardo Hernández Molina 113 105 109 8
III Jornadas Predoctorales de la ESI Una Propuesta de Integración de ESB con un Motor CEP J. Boubeta Puig, G. Ortiz, I. Medina Bulo Departamento de Lenguajes y Sistemas Informáticos, C/ Chile 1-11002 Cádiz. Teléfono: +34956015692 {juan.boubeta, guadalupe.ortiz, inmaculada.medina}@uca.es Resumen Las arquitecturas orientadas a servicios (SOA) son eficientes para la implantación de sistemas en los que las comunicaciones entre terceros son clave; sin embargo, no son adecuadas para sistemas que necesitan detectar situaciones relevantes en tiempo real. En este sentido, el procesamiento de eventos complejos (CEP) es una tecnología emergente que permite correlacionar continuamente grandes cantidades de eventos para detectar y responder a las condiciones cambiantes de los procesos de negocio. En este artículo integramos CEP con SOA mediante un bus de servicios empresariales y lo aplicamos para la detección temprana de brotes epidemiológicos de gripe aviar. 1. Introducción En los últimos años, las arquitecturas orientadas a servicios o Service-Oriented Architecture (SOA) han surgido como una solución eficiente para la implantación de sistemas en los que la modularidad y las comunicaciones entre terceros son un factor clave, desarrollándose así aplicaciones distribuidas compuestas de componentes (servicios) reutilizables y compartibles. Estos componentes disponen de unas interfaces bien definidas independientes de su implementación, lo que permite que estos sistemas puedan adaptarse fácil y rápidamente a las condiciones cambiantes del negocio. Sin embargo, estas arquitecturas no son adecuadas para aquellos entornos en los que hay necesidad de analizar continuamente toda la información que fluye por el sistema para detectar cuanto antes y de forma automática las situaciones que son críticas o relevantes para los procesos de negocio. Esta limitación puede suplirse con el uso añadido del procesamiento de eventos complejos o Complex Event Processing (CEP) [1], una tecnología que proporciona un conjunto de técnicas que ayudan a hacer un uso eficiente de las arquitecturas dirigidas por eventos o Event-Driven Architecture (EDA). CEP permite procesar y analizar grandes cantidades de eventos, así como correlacionarlos para detectar y responder en tiempo real a situaciones críticas del negocio. Para ello, se utilizan unos patrones de eventos que inferirán nuevos eventos más complejos y con un mayor significado semántico, que ayudarán a tomar decisiones ante las situaciones acontecidas. La característica principal de estos eventos complejos procesados mediante tecnología CEP es que pueden ser identificados e informados en tiempo real, reduciendo la latencia en la toma de decisiones; a diferencia del software tradicional de análisis de eventos, que no funciona en tiempo real. Así pues, combinando el uso de SOA con CEP, podremos detectar eventos relevantes en sistemas complejos y heterogéneos. En la actualidad, la integración de EDA y SOA se conoce como SOA dirigida por eventos (ED- SOA) o SOA 2.0, una extensión de SOA para responder a los eventos que ocurren como resultado de los procesos de negocio. Este nuevo enfoque hará posible que los servicios no intercambien únicamente mensajes entre ellos, sino que también puedan publicar eventos y recibir notificaciones de eventos de distintos servicios. Para lograrlo, se requerirá un bus de servicios empresariales o Enterprise Service Bus (ESB) que actuará como capa de integración para la transformación, el enriquecimiento y el encaminamiento de mensajes entre servicios de diferentes aplicaciones. Hasta el momento, no se han propuesto arquitecturas que integren adecuadamente SOA, EDA, CEP y la detección de patrones complejos: existen propuestas que usan aproximaciones no estándares para la integración de SOA y EDA [2] o incluso otras que emplean motores de reglas [3]. Estas aproximaciones que usan motores de reglas son más lentas y menos eficientes en el manejo y recepción de notificaciones, frente a aquellas que emplean motores CEP [4]. Además no tienen en cuenta la exhaustiva cantidad de eventos que el sistema puede llegar a manipular 51
III Jornadas Predoctorales de la ESI en un momento dado, provocando un fuerte impacto en el rendimiento del sistema. En este artículo se propone la integración de CEP con SOA 2.0 mediante un ESB para la detección de eventos complejos en sistemas heterogéneos. En concreto, se utilizará el ESB Mule [5] beneficiándonos de todas sus ventajas y el motor de eventos Esper [6] que facilitará la detección de situaciones relevantes de forma eficiente, tal como explicaremos a lo largo del artículo. Finalmente, para ilustrar la utilidad de dicha integración este artículo describe la implementación realizada de un caso de estudio para la detección temprana de brotes epidemiológicos. El resto del artículo se estructura de la siguiente forma. En la sección 2 se describe un caso de estudio en el que se implementa y aplica la integración del motor Esper con el ESB Mule para la detección en tiempo real de epidemias y pandemias de gripe aviar. A continuación, en la sección 3 se resumen algunos trabajos en los que se integra CEP con SOA. Por último, se presentan las conclusiones y el trabajo futuro. 2. Caso de Estudio Debido a que en las últimas décadas la globalización ha llevado consigo un gran aumento de desplazamientos de personas entre distintos países, ha aumentado drásticamente el impacto de las epidemias de enfermedades emergentes, convirtiéndose en la actualidad en una amenaza importante para la vida, la seguridad y la economía mundial [7]. Por este motivo, hemos ampliado y mejorado nuestro caso de estudio propuesto en [4] para detectar epidemias de gripe aviar en tiempo real. En esta ocasión, el objetivo del caso de estudio es ilustrar la integración del ESB con el motor CEP, avanzando en el desarrollo de un entorno heterogéneo (SOA 2.0) en el que se detecten epidemias y pandemias en tiempo real, frente a la mayoría de las herramientas actuales que alertan de epidemias y pandemias con una periodicidad semanal (por ejemplo, Flunet y Euroflu). Esto permitirá que los responsables sanitarios puedan paliar cuanto antes el impacto de epidemias y pandemias a nivel mundial. Véase Boubeta-Puig et al. [4] para obtener más información sobre este caso de estudio. 2.1 Patrones Complejos de Gripe Aviar Conforme a los requisitos reales para detectar casos de gripe aviar, se han definido los siguientes patrones de eventos complejos: Caso sospechoso: permite detectar posibles apariciones de casos de gripe aviar, cuando se cumplan las siguientes condiciones: 1. El paciente tenga fiebre, tos, cefalea, mialgias, conjuntivitis, fracaso multiorgánico, faringitis neumonía o encefalopatía. 2. Y, además, presente una historia de exposición a fuente de contagio conocida durante los 7 días previos. Caso confirmado: el laboratorio confirma una infección de gripe aviar, a partir de la detección de un caso sospechoso y una muestra biológica del paciente. Caso de epidemia: existen 25 o más casos confirmados de gripe aviar en un país concreto durante una semana. Caso de pandemia: existen 2 o más casos de epidemia durante una semana. 2.2 Implementación En este trabajo se ha adaptado la arquitectura que integra CEP y SOA (propuesta por Boubeta-Puig et al. [4]) para detectar brotes epidemiológicos de gripe aviar. En concreto, se ha implementado un servicio web (permitirá producir eventos) y se ha integrado el ESB con el motor CEP. Este bus se encarga de recibir los eventos del servicio web, transformarlos en eventos POJO (Plain Old Java Object) y enviarlos al motor CEP. Este motor permite de este modo procesar y correlacionar los eventos así como detectar los eventos complejos definidos en este caso de estudio. Previa a la implementación del caso de estudio se ha considerado la utilización de distintos ESBs. En este caso de estudio se ha utilizado el ESB (Mule, ServiceMix, Open ESB, Synapse y PEtALS) y se ha seleccionado como el mejor candidato el ESB Mule, considerado por Rademakers y Dirksen [8] como el mejor de los cinco ESB estudiados en cuanto a los siguientes criterios: Incorporación de todas las funcionalidades relevantes de un ESB: localización transparente, conversión del protocolo de transporte, transformación, encaminamiento y enriquecimiento de mensajes, seguridad, monitorización y gestión. Bien documentado. Visibilidad en el mercado. Desarrollo activo y respaldado por una comunidad de software. Flexibilidad y extensibilidad mediante una lógica personalizada. 52
III Jornadas Predoctorales de la ESI Soporte para una gran cantidad de protocolos de transporte y opciones de conectividad. Integración con otros proyectos de código abierto. Proporción de un IDE. Además, recientemente se ha desarrollado Mule Studio, una herramienta para Eclipse potente y muy amigable que permite crear, editar y probar flujos Mule con facilidad. Esto es una gran ventaja diferenciadora con respecto a los ESB alternativos. El servicio web se ha implementado con Apache CXF, un marco de trabajo de servicios de código abierto (soportado por Mule) que ayuda a construir y desarrollar servicios utilizando APIs de programación, como JAX-WS y JAX- RS. Para simplificar el consumo del servicio web, se ha construido un cliente de servicio basado en API de usuario sin necesidad de generar un cliente a partir de un documento WSDL. Para ello, es necesario disponer localmente de una copia de la interfaz del servicio. Para el procesamiento de los eventos complejos se ha utilizado el motor Esper porque es código abierto y muy eficiente. Los patrones se han implementado en el lenguaje de procesamiento de eventos complejos proporcionado por dicho motor, EPL, que ofrece las siguientes ventajas: en primer lugar, la curva de aprendizaje no es elevada, ya que su sintaxis se aproxima bastante a la del lenguaje SQL, ampliamente conocido a nivel mundial. Por otro lado, EPL soporta de forma nativa varios tipos de formato de eventos: objetos Java/.NET, maps y documentos XML. Además, puede personalizarse según las necesidades del programador. En las próximas sub-secciones se describen los pasos llevados a cabo para implementar el caso de estudio. 2.2.1 Creación de un generador de eventos Ante la limitación de no disponer de estados de pacientes reales, simularemos los pacientes atendidos en el mundo y el estado en el que se encuentra cada uno de ellos mediante la utilización de una clase Java que hemos creado para tal fin. Esta información se guarda en ficheros CSV. 2.2.2 Incorporación del motor Esper Para ello, se han seguido los siguientes pasos: 1. Definición de las clases Java que representan los dos tipos de eventos del estudio: EstadoPaciente y VirusGripeAviar. 2. Configuración e inicialización del motor. 3. Implementación y registro de los patrones complejos de gripe aviar en Esper. 4. Implementación de un listener para cada patrón definido. Los listeners notificarán en ficheros logs los eventos detectados por los patrones. 2.2.3 Creación del flujo Mule En la Figura 1 se muestra el flujo Mule que se ha creado en este trabajo: 1. Incorporación de un endpoint genérico. Este componente permite de forma dinámica configurar un endpoint utilizando expresiones Mule y rutas específicas. En este caso, se ha especificado la siguiente ruta: http://localhost:8081/eventos 2. Incorporación de un componente SOAP. Este componente aloja un servicio web disponible a través de CXF. Este servicio web creará un mensaje SOAP que contendrá la siguiente información: El nombre del fichero CSV que contiene los eventos de virus de gripe aviar (si la URI introducida es http://localhost:8081/eventos/ nuevos/nombrefichero/virus.csv) o de estados de pacientes (si la URI es http://localhost:8081/ eventos/nuevos/nombrefichero/pa cientes.csv). O los datos de un único evento. Por ejemplo, la siguiente URI especifica los datos concretos de un nuevo virus de gripe aviar: http://localhost:8081/eventos/nuevovirus/paciente/id5/laboratorio/ Eijkman/lugar/Indonesia/fecha/12-10-2010. 3. Incorporación de un componente Java. Este componente especifica la clase Java que se encarga de realizar la transformación de eventos (especificados en el mensaje SOAP recibido) de formato CSV a POJO y de enviarlos al motor Esper. Figura 1. Flujo Mule implementado. 3. Trabajos Relacionados En la literatura existen diversos trabajos sobre la integración de CEP y SOA aplicada a distintos dominios. Ayllón y Reina [9] definen los elementos que pueden aparecer en una arquitectura que permita la integración de CEP en SOA. 53
III Jornadas Predoctorales de la ESI He et al. [2] implementan un sistema dirigido por eventos basado en identificación de eventos por radiofrecuencia para monitorizar los gases emitidos por los vehículos y detectar si la emisión de un vehículo es o no estándar; sin embargo, no consideran la representación de los eventos en XML, lo que permitiría hacerlos más legibles y reutilizables. Taher et al. [10] proponen la adaptación de interacciones de mensajes entre servicios web con interfaces incompatibles. No obstante, los servicios interactúan directamente con un marco de trabajo que integra tanto los adaptadores de mensajes SOAP como el motor CEP, en lugar de utilizar un ESB que proporcionaría una arquitectura más desacoplada, flexible y reutilizable así como el encaminamiento de mensajes basado en contenido y la transformación de protocolos. Sottara et al. [3] proponen una arquitectura para desarrollar una estrategia de control simple para una planta específica de tratamiento de pérdida de agua. Nuestra arquitectura mejora ésta al utilizar un motor CEP en lugar de un motor de reglas, como se explica en [4]. 4. Conclusiones y Trabajo Futuro En este trabajo se ha integrado el motor CEP Esper con SOA 2.0, utilizando el ESB Mule como nexo de unión. Con este enfoque, CEP permite enviar alarmas en tiempo real cuando se produzcan situaciones relevantes a partir de la detección de ciertos patrones de eventos definidos previamente, y SOA facilita la integración de sistemas de información heterogéneos. Además, se ha descrito e implementado un caso de estudio en el que se ha aplicado dicha integración. Los resultados confirman que este sistema puede detectar epidemias y pandemias en tiempo real, frente a la mayoría de las herramientas actuales que informan de estas situaciones con una periodicidad semanal. Asimismo concluyen que la tecnología CEP se adecúa para dicho propósito. Aunque se ha tomado como ejemplo el virus de la gripe aviar, este sistema podrá utilizarse para la prevención de otras enfermedades, incluso en otros campos ajenos a la medicina, para lo que será necesaria la definición de nuevos patrones de eventos. En nuestro trabajo futuro más próximo mejoraremos este sistema estableciendo mecanismos de seguridad e integridad para los eventos. Esto hará posible que CEP se aplique sobre eventos reales que serán publicados al ESB por distintos productores de eventos de distinta naturaleza y provenientes de fuentes dispares. 5. Agradecimientos Este trabajo se enmarca dentro del ámbito científico del Proyecto Puente PR2011-004 del Plan Propio de la Universidad de Cádiz. Los autores agradecen a Víctor Ayllón y Juan Manuel Reina, fundadores de la empresa Novayre, las discusiones y conocimientos intercambiados sobre la aplicación de CEP en entornos SOA. 6. Referencias [1] D. Luckham, The Power of Events: An Introduction to Complex Event Processing in Distributed Enterprise Systems, Addison-Wesley, 1 st Ed., MA (USA), 2002. [2] M. He, Z. Zheng, G. Xue, y X. Du, Event Driven RFID Based Exhaust Gas Detection Services Oriented System Research, Proc. 4 th WiCOM, China, 2008. [3] D. Sottara, A. Manservisi, P. Mello, G. Colombini, y L. Luccarini, A CEP-based SOA for the management of WasteWater Treatment Plants, Proc. EESMS, Italy, 2009. [4] J. Boubeta-Puig, G. Ortiz, y I. Medina- Bulo, An Approach of Early Disease Detection using CEP and SOA, Proc. 3 rd Service Computation, Italy, 2011. [5] MuleSoft, Mule ESB, Doc. Internet, URL http://www.mulesoft.org/ (última consulta: 2011/11/8). [6] EsperTech Inc., Esper Reference Documentation, Doc. Internet, URL http://esper.codehaus.org/ (última consulta: 2011/11/13). [7] OMS, La Gripe Aviar y la Amenaza de la Pandemia, Doc. Internet, URL http://www.un.org/spanish/influenza/topics/ pandemic_influenza.shtml (última consulta: 2011/11/10). [8] T. Rademakers y J. Dirksen, Open-Source ESBs in Action. Greenwich: Manning, 2009. [9] V. Ayllón y J. M. Reina, CEP/ESP: Procesamiento y Correlación de gran Cantidad de Eventos en Arquitecturas SOA, Proc. 4 th JSWEB, Sevilla, 2008. [10] Y. Taher, M.C. Fauvet, M. Dumas y D. Benslimane, Using CEP Technology to Adapt Messages Exchanged by Web Services, Proc. 17 th WWW, China, 2008. 54