jueves, 17 de mayo de 2012

[DISTRIBUIDOS Y PARALELOS] Más sobre grids - Globus Toolkit

La semana pasada hable un poco sobre lo que son los grids, sus características y aplicaciones; se había dicho que un grid es una red de meta-computacion, osea, capacidades computaionales superiores a las conocidas actuales. Junto con clustering, grid es otro paradigma de la computación distribuida, solo que el primero esta orientado a los servicios de computación local con una función concreta.

Middleware

“Middleware” es el software que organiza e integra los recursos en una grid.

El middleware está hecho con muchos programas (softwares) y contiene cientos de miles de líneas de código computacional. Una vez unido, este código automatiza todas las interacciones “máquina a máquina” (M2M) que crean una única grid computacional.

El middleware negocia de manera automática “acuerdos” mediante los cuales se intercambian los recursos; vale decir, acuerdos referidos al paso desde el proveedor de recursos de grid hacia el usuario de la grid. En estos “acuerdos”, algunos programas del middleware actúan como “agentes” y otros como “corredores de bolsa” (brokers).

Los programas agentes presentan “metadatos” (datos acerca de los datos) que describen a los usuarios, datos y recursos. Los programas brokers se encargan de las negociaciones M2M (Machine to Machine - Máquina a Máquina), requeridas para la autenticación y la autorización, y luego aclaran los “acuerdos” para acceder y pagar por los datos y recursos específicos.

Cuando se establece un acuerdo, el broker agenda las actividades computacionales y supervisa las transferencias de datos requeridas. Al mismo tiempo, agentes especializados en el “cuidado de la casa” optimizan los enrutamientos de la red y monitorean la calidad de servicio.

Y todo esto ocurre de manera automática, en apenas una fracción del tiempo que le llevaría a los humanos hacerlo de modo manual en sus computadoras.

Hay muchas otras capas dentro de la capa del middleware. Por ejemplo, el middleware incluye una capa de protocolos de recursos y conectividad, y una capa superior de servicios colectivos.

Los protocolos de recursos y conectividad manejan todas las transacciones de red “específicas para grid” que se desarrollan entre los computadores y los recursos de grid. Por ejemplo, los computadores contribuyendo en una grid específica deben reconocer los mensajes de grid relevantes e ignorar el resto. Esto se hace mediante protocolos de comunicación que permiten a los recursos comunicarse unos con otros, permitiendo el intercambio de datos, y protocolos de autenticación, que proveen mecanismos seguros para verificar la identidad de los usuarios y los recursos.

Los servicios colectivos también se basan en protocolos: protocolos de información que obtienen información acerca de la estructura y el estado de los recursos en la grid, y protocolos de manejo, que negocian el acceso a los recursos de un modo uniforme. Los servicios colectivos incluyen:

  • directorios de actualización de recursos disponibles,
  • recursos negociables (para aquellos que disfrutan de las negociaciones en la bolsa, se trata de las negociaciones entre aquellos que quieren “comprar” recursos y aquellos que quieren “vender”)
  • monitoreo y diagnóstico de problemas
  • réplica de datos para que múltiples copias puedan estar disponibles en diferentes locaciones para facilitar su uso
  • provisión de servicios de membresía/política para saber a quién se le ha permitido hacer qué y cuándo.

Globus Toolkit

Existen varias herramientas que permiten la creación y gestión de grids. Un ejemplo popular es Globus Toolkit. Éste es un conjunto de herramientas de software requeridas para la construcción de una grid, cubriendo mediciones de seguridad, localización de recursos, manejo de recursos, comunicaciones y más.

La herramienta Globus ha emergido como el estándar de facto para la capa intermedia (middleware) de la grid. Globus tiene recursos para manejar:
  • La gestión de recursos(Protocolo de Gestión de Recursos en Grid o Grid Resource Management Protocol)
  • Servicios de Información (Servicio de Descubrimiento y Monitorización o Monitoring and Discovery Service)
  • Gestión y Movimiento de Datos (Acceso Global al Almacenamiento Secundario, Global Access to secondary Storage y FTP en grid, GridFTP)
La mayoría de grids que se expanden sobre las comunidades académicas y de investigación de Globus Toolkit como núcleo de la capa intermedia.

Muchos de los grandes proyectos grid emplean Globus Toolkit, software desarrollado por Globus Alliance, un equipo inicialmente compuesto por el grupo de Ian Foster, en el Laboratorio Nacional Argonne, y por el de Carl Kesselman, en la Universidad de California del Sur en Los Ángeles (Estados Unidos).

Muchos de los protocolos y funciones definidas por Globus Toolkit son similares a aquellas que hoy operan para las redes y los almacenajes, pero han sido optimizadas para desarrollos específicos de grid.

Globus incluye programas como:
  • GRAM (Globus Resource Allocation Manager – Recurso Globus de Manejo de Asignación): se encarga de convertir las solicitudes de recursos en comandos que lo computadores locales puedan comprender.
  • GSI (Grid Security Infrastructure – Infraestructura de Seguridad Grid): autentifica a los usuarios y determina sus derechos de acceso.
  • MDS (Monitoring and Discovery Service - Servicio de Monitoreo y Descubrimiento): reúne información acerca de recursos tales como capacidad de procesamiento, capacidad de ancho de banda, tipo de almacenamiento y más.
  • GRIS (Grid Resource Information Centre – Centro de Recursos de Información Grid): recursos de consultas para sus actuales configuraciones, capacidades y status.
  • GIIS (Grid Index Information Service – Servicio de Índice de Información Grid): coordina arbitrariamente los servicios GRIS.
  • GridFTP (Grid File Transfer Protocol - Protocolo de Transferencia de Archivos Grid): provee un mecanismo de transferencia de datos de alto rendimiento, seguro y robusto.
  • Replica Catalog (Catálogo de Réplicas): provee la ubicación en la grid de las distintas réplicas de un grupo de datos determinado.
  • Replica Management system (Sistema de Manejo de Réplicas): maneja el Catálogo de Réplicas y el GridFTP, permitiendo a las aplicaciones crear y manejar réplicas de grandes grupos de datos.
Hay dos razones para el fortalecimiento y la popularidad de Globus Toolkit:
  1. Las grid necesitan soportar una amplia variedad de aplicaciones creadas de acuerdo a diferentes paradigmas de programación. En vez de proveer un modelo uniforme de programación para las aplicaciones grid, Globus Toolkit tiene un “acercamiento orientado al objeto”, proveyendo una bolsa de servicios para que los desarrolladores puedan escoger el servicio que mejor se adecua a sus necesidades. Además, las herramientas pueden introducirse de a una a la vez. Por ejemplo, una aplicación puede usar GRAM o GRIS sin tener que usar necesariamente Globus Security o los sistemas de manejo de réplicas.
  2. Globus Toolkit está disponible bajo acuerdo de licencia de “fuente abierta”, lo que significa que cualquiera el libre de utilizar o mejorar el software. Esto es similar a la World Wide Web y a los sistemas de operación Linux.

1 comentario: