590 likes | 746 Views
Rubby Casallas rcasalla@uniandes.edu.co Grupo Construcción de Software. Una infraestructura para cooperación de aplicaciones basada en eventos. Contexto. Proyecto Colciencias-Uniandes-Heinsohn Software House Objetivo Global del Proyecto:
E N D
Rubby Casallas rcasalla@uniandes.edu.co Grupo Construcción de Software Una infraestructura para cooperación de aplicaciones basada en eventos
Contexto • Proyecto Colciencias-Uniandes-Heinsohn Software House • Objetivo Global del Proyecto: • Mejorar el proceso de pruebas y corrección de defectos en un ambiente de desarrollo de software globalizado
Equipo de desarrollo (Eleggua) • Catalina Acero • Dario Correal • Oscar Gonzalez • Nicolás López • Milena Vela
Objetivo de la charla • Presentar la definición e implementación de una infraestructura (Eleggua) que permite integrar aplicaciones que cooperan en la realización de procesos transversales de negocio.
Agenda • Los problemas • La propuesta de solución • La validación • El futuro • Conclusiones • Preguntas
Planeación Proyecto Definición Especificaciones Creación Proyecto Construcción Artefactos Instalación Puesta Producción Verificación Validación
Creación Proyecto Definición Especificaciones Verificación Validación Planeación Proyecto Construcción Artefactos
Creación Proyecto Definición Especificaciones Verificación Validación Planeación Proyecto Construcción Artefactos
Planeación Proyecto Creación Proyecto El lado servidor -Crear proyecto - Definir actividades - Asociar Recursos: Tiempo Personas Herramienta Planeación
Definición Especificaciones El lado servidor - Crear proyecto - Definir Especificaciones Herramienta Especificaciones
Construcción Artefactos Verificación Validación El lado servidor -Crear proyecto - Desarrollar diseño Herramienta Diseño -Crear proyecto - Desarrollar Pruebas Herramienta Pruebas
Construcción Artefactos Verificación Validación El lado servidor Herramienta Diseño Herramienta Pruebas
Planeación Proyecto Planeación Proyecto Definición Especificaciones Definición Especificaciones El lado servidor Creación Proyecto Creación Proyecto Construcción Artefactos Construcción Artefactos Instalación Puesta Producción Instalación Puesta Producción Verificación Validación Verificación Validación
El lado servidor El lado servidor Internet Internet
Los problemas • Aplicaciones: • Apoyan actividades individuales • Pueden ser heterogéneas • Pueden ser legado • Pueden ser distribuidas • Dominios de datos distintos • Duplicación de datos • Duplicación de funcionalidad
Agenda • Los problemas • La propuesta de solución • La validación • El futuro • Conclusiones • Preguntas
La Propuesta de Solución • Visión Alto Nivel • Las reglas de Negocio • Acuerdo sobre los conceptos (los datos del negocio) • Definición de la cooperación
“Un proyecto es un proyecto! Su creación se debe propagar a todas las herramientas.” “Cuando se detecte un defecto, se debe crear una actividad para corregirlo y asignarlo al responsable.” La Propuesta de Solución • Lo primero: Reglas de Negocio
La Propuesta de Solución • Lo segundo: Acuerdo sobre los conceptos Para mi, lo que define un proyecto es...... Listo, estamos de acuerdo, pero yo también necesito saber ... Herramienta de planeación Herramienta de diseño
La Propuesta de Solución • Lo tercero: la cooperación Si me entero de un defecto, le creo una tarea de corrección al responsable Yo les aviso cuando registren un defecto! Herramienta de planeación Herramienta de defectos
La Propuesta de Solución • Visión Global • Conceptos Básicos • Observaciones • Eventos lógicos • Reglas evento-condición-acción
Creación Proyecto
Creación Proyecto
Sistema de notificación de eventos • Middleware de eventos distribuidos • Funcionalidad básica de tipo publicar/suscribir. • Registro de aplicaciones • Suscripción de aplicaciones • Despacho de eventos y notificación • Persistencia de eventos
Sistema de notificación de eventos Represen-tantes de las aplicaciones
Observar la aplicación
Generar Evento 2 Evento Lógico: Lleva valores de conceptos comunes previamente acordados 1 Observar la aplicación
Sistema de notificación de eventos Ejecutar acciones asociadas al evento 3
Sistema de notificación de eventos Ejecutar acciones asociadas al evento 3 Webservice
Representante de Aplicación =Proxy de Cooperación • Observación de las aplicaciones • Generación de eventos lógicos • Recepción de notificaciones de eventos • Ejecución de acciones • Solicitudes webservices
Monitor/ administrador Sistema de notificación de eventos
La Implementación • J2EE-JBoss • JMS • Observaciones: AspectJ • Webservices: AXIS • JMX • JavaGroups Sistema de notificación de eventos PCoop Monitor/ administrador
Agenda • Los problemas • La propuesta de solución • La validación • El futuro • Conclusiones • Preguntas
La Validación • Proceso de Negocio: pruebas y corrección de defectos: • 35 reglas de cooperación • 4 Aplicaciones: Requerimientos, Pruebas, Planeación y Seguimiento, Control de Proyectos • Estado actual: • En fase de prueba de usuarios en dos proyectos piloto
Agenda • Los problemas • La propuesta de solución • La validación • El futuro • Conclusiones • Preguntas
El Futuro • Definición de las reglas de negocio a alto nivel y generación sobre la plataforma objetivo • Validación de las reglas de negocio antes de implementación
La Estrategia: Model Driven Architecture • Transformación de Modelos hasta generación de código • Modelos Ejecutables (simulación)
“Un proyecto es un proyecto! Su creación se debe propagar a todas las herramientas.” “Cuando se detecte una no conformidad en el producto, se debe crear una actividad para corregirla y asignarla al responsable” Listo, estamos de acuerdo, pero yo también necesito saber ... Para mi, lo que define un proyecto es...... Herramienta de diseño Herramienta de planeación Yo les aviso cuando registren una no-conformidad Si me entero de una no-conformidad, le creo una tarea al responsable Herramienta de defectos Herramienta de planeación
“Un proyecto es un proyecto! Su creación se debe propagar a todas las herramientas.” “Cuando se detecte una no conformidad en el producto, se debe crear una actividad para corregirla y asignarla al responsable” Listo, estamos de acuerdo, pero yo también necesito saber ... Para mi, lo que define un proyecto es...... Herramienta de diseño Herramienta de planeación Yo les aviso cuando registren una no-conformidad Necesidad de contar con un vocabulario común para expresar los conceptos de cooperación Si me entero de una no-conformidad, le creo una tarea al responsable Alto nivel vs. implementación Herramienta de defectos Herramienta de planeación
Modelo de cooperación proceso de diseño Modelo de cooperación proceso de pruebas Modelo de cooperación proceso de control cambios
Modelo de los modelos de cooperación = Metamodelo Modelo de cooperación proceso de diseño Modelo de cooperación proceso de pruebas Modelo de cooperación proceso de control cambios
Metamodelo define un vocabulario común. La semántica, responsabilidades y restricciones de los elementos necesarios para modelar la cooperación de aplicaciones de manera asincrónica Modelo de cooperación proceso de diseño Modelo de cooperación proceso de pruebas Modelo de cooperación proceso de control cambios
Metamodelo define un vocabulario común. La semántica, responsabilidades y restricciones de los elementos necesarios para modelar la cooperación de aplicaciones de manera asincrónica EAI-Rules Metamodel Modelo de cooperación proceso de diseño Modelo de cooperación proceso de pruebas Modelo de cooperación proceso de control cambios
Conceptos Independientes de la plataforma
Conceptos Independientes de la plataforma Modelo de la plataforma
La Estrategia: Model Driven Architecture • Transformación de Modelos • Modelos Ejecutables