Post on 07-Jul-2015
Entorno de desarrollo de heurísticas distribuidas utilizando OSGi
P García Sánchez, PA Castillo, J González, JJ Merelo1 y A Escámez2
- 1) Dept. de Arquitectura y Tecnología de Computadores- 2) Telefónica I+D
Jornadas de Paralelismo 2009
2Jornadas de Paralelismo 2009
Índice
Introducción y estado del arte ¿Qué hemos usado?
− Arquitectura Orientada a Servicios− OSGi− R-OSGi
Arquitectura de la plataforma Experimentos Conclusiones y trabajo futuro
3Jornadas de Paralelismo 2009
Estado del Arte
• Pero si hay un montón de frameworks!– JEO– ECJ– HeuristicLab– MALLBA– ParadiseEO– ... y más!
• Pero ninguno basado en arquitectura de plugins bien definida y aceptada como es OSGi.
4Jornadas de Paralelismo 2009
OSGi
Modelo de componentes dinámico
Bundle: Jar con el fichero MANIFEST adaptado
Servicio: conecta bundles de manera dinámica
Componente: Clase dentro de un bundle junto con una descripción en XML interpretada en tiempo de ejecución->Servicios Declarativos
5Jornadas de Paralelismo 2009
Ejemplo de MANIFEST.MF
6Jornadas de Paralelismo 2009
Ejemplo de descripción de servicio
7Jornadas de Paralelismo 2009
R-OSGi
Problema de OSGi: imposibilidad de invocar servicios remotos– Uso de conectores basados en UPnP y Jini:
INVASIVOS R-OSGi es un midleware para distribuir de
forma transparente servicios en red Crea proxies que actúan como bundles
normales que se encargan de comunicar con otros bundles distribuidos
8Jornadas de Paralelismo 2009
OSGiLiath
Acrónimo un poco friki de “OSGi Laboratory for Implementation and Testing of Heuristics”
Framework de desarrollo de heurísticas no centrado en ningún paradigma concreto y basado en plug-ins
Usa:– Interfaz sencilla– Programación orientada a componentes– Activación dinámica de componentes– Servicios declarativos
9Jornadas de Paralelismo 2009
Capas
• Interfaz:– Interfaces para:
• Algoritmo• Algoritmo distribuido• Solución• Problema• Datos de entrada• Parámetros
• Heurística– Implementación de la heurística
• Problema:– Implementación del problema
10Jornadas de Paralelismo 2009
Ejemplo de desarrollo con OSGiLiath
11Jornadas de Paralelismo 2009
Experimentos
12Jornadas de Paralelismo 2009
Y unas gráficas...
13Jornadas de Paralelismo 2009
Conclusiones y trabajo futuro
• Entorno de desarrollo de algoritmos distribuidos basado en plug-ins bien definidos.– Servicios declarativos– Gestión del ciclo de vida dinámicamente– Abstracción de paquetes– Software Libre!
• OSGi se usa en el MundoReal (tm)!
• En el futuro se nos ocurre:– Crear una interfaz gráfica autogenerada– Estudiar otros protocolos de comunicación– Añadir algoritmos y problemas a la librería (el siguiente paso
son los AGs) – Usar la gestión de eventos de OSGi y la gestión dinámica de
manera más profunda
14Jornadas de Paralelismo 2009
Gracias!
¿Dudas? O mejor, ¿sugerencias?
pgarcia@atc.ugr.es