Desarrollo de un framework para Grid Computing usando...
Transcript of Desarrollo de un framework para Grid Computing usando...
Desarrollo de un framework para Grid Computing usando tecnología Open Source
Pablo [email protected]
Dirección de Informática AcadémicaPontificia Universidad Católica del Perú
Puntos a tratar
Motivación Conceptos Generales Desarrollo de un framework para Grid
Computing
1. Motivación
Motivación
● La necesidad de realizar simulaciones complejas.
● Estos cálculos podrían tomar días, meses, años.
2. Conceptos generales
Grid Computing
Supercomputadora ≈ varias computadoras
unidas por una red. Pueden estar
distribuidas geográficamente.
Aplicaciones de Grid Computing
Renderización de animaciones 3D.
Predicción del clima. Investigación
farmacológica. Física de Altas
Energías. Validación de
modelos estadísticos.
Posibles dificultades
Configuración. Envío cálculos/operaciones.
BOINC
Berkeley Open Infrastructure for Network Computing.
Originalmente desarrollado para el proyecto SETI@home.
Diseñado para Computación de Voluntariado. Funciona muy bien para implementar una Grid. Soporta la ejecución en muchas plataformas.
Envío de tareas (I)
Ejemplo: Cálculo de una integral definida
5 10 15
f(x)
Programa que calcula la integral
Límite inferior
Límite superiorf(x)
Envío de tareas (II)
Encolar las unidades de trabajo.
Servidor Grid
Framework
Es un esquema de trabajo y/o herramientas asociadas.
Ayuda en caso de tareas complejas y repetitivas.
Uso de frameworks
Gestión de contenidos. Acceso a base de datos. Desarrollo de aplicaciones web.
3. Desarrollo de un framework para Grid Computing
Solución 1: Envío de tareas
Interfaz que esconda la complejidad de la Grid.
Entorno web: Acceso desde cualquier punto.
Solución 2: Administración
Desarrollo de un framework para la creación de interfaces web. Debe ser rápido para
estructuras más simples.
Debe permitir los casos especiales.
Ventajas del framework propuesto
Ahorro de tiempo en la creación de interfaces. (Administradores).
Ahorro de tiempo en el uso de la Grid. (Usuarios finales).
Diseño del Framework
Arquitectura Orientada a Servicios.
Ventajas: Arquitectura Orientada a Servicios
Los componentes son reusables: Se pueden desarrollar otros clientes.
Los componentes son independientes: Se pueden desarrollar separados.
Los componentes son intercambiables: Se pueden usar otros sistemas de gestión de Grids.
Servicios Web
REST SOAP Otras alternativas
Web Services REST
Mapeo de los métodos HTTP
Basado en direccionamiento por URL's
Intercambio de documentos XML
https://cwiki.apache.org/WINK/1-introduction-to-apache-wink.data/REST%20Web%20Service.jpg
SOAP - WSDL
Especificación o “contrato”. Describe los métodos que se exponen.
http://www.devx.com/assets/articlefigs/9348.gif
SOAP - Dificultades
Envío de archivos binarios (Attachments)
Estándar SOAP with Attachments (SwA).
http://www.javaworld.com/javaworld/jw-09-2003/images/jw-0912-webservices1.jpg
Librerías que soportan SwA
Soaplib Apache Axis 2 WSO2 WSF/PHP
Soaplib
Permite generar el WSDL on-the-fly. Soporta SwA. Desarrollada en Python. Se puede publicar usando mod_wsgi con
apache. Se puede usar tanto en aplicaciones web como
de línea de comandos.
Apache Axis 2
Soporta SwA. Desarrollado en Java. Puede servir para
clientes de línea de comandos y aplicaciones web.
WSO2 WSF/PHP
Soporta SwA. Está basado en Axis. Funciona con PHP, desarrollado en C++. Puede servir para clientes de línea de
comandos y aplicaciones web.
Análisis de tramas
Wireshark
Diseño de la aplicación Web
Portlets Desarrollo en Java
Portlets
Estándar JSR-168 / JSR-286. Necesitan un contenedor.
GridSphere
Desarrollado especialmente para proyectos de Grid.
Usado en Virtual Community Grid (Brasil).
Liferay
Contenedor de portlets ampliamente usado. Soporta el estándar JSR-286
Futura compatibilidad
Librerías desarrolladas en Java para futura compatibilidad.
Entorno
OS: CentOS Java EE MyBatis (pool de conexiones) Apache Tomcat 6.x
4. Ejemplo
Interfaz para Integral (I)
Interfaz para Integral (II)
Interfaz para Integral (III)
Interfaz para Integral (IV)
Interfaz para Integral (V)
Interfaz para Integral (VI)
Interfaz para Integral (VII)
Interfaz para Integral (VIII)
¿Preguntas?