Grid Computing Para Cálculo Intensivo



Documentos relacionados
GRID COMPUTING MALLA DE ORDENADORES

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Capítulo 5. Cliente-Servidor.

RODRIGO TAPIA SANTIS com) has a. non-transferable license to use this Student Guide

Introducción a las redes de computadores

Arquitectura de red distribuida: escalabilidad y equilibrio de cargas en un entorno de seguridad

UNIVERSIDAD TECNOLOGICA ECOTEC DIEGO BARRAGAN MATERIA: Sistemas Operativos 1 ENSAYO: Servidores BLADE

Unidad III. Software para la administración de proyectos.

Nicolás Zarco Arquitectura Avanzada 2 Cuatrimestre 2011

ADMINISTRACIÓN CENTRALIZADA DELL POWERVAULT DL2000 CON TECNOLOGÍA SYMANTEC

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

SISTEMAS DE INFORMACIÓN II TEORÍA

WINDOWS : TERMINAL SERVER

Bechtle Solutions Servicios Profesionales

Elementos requeridos para crearlos (ejemplo: el compilador)

Estructura de Computadores I Arquitectura de los MMOFPS

Unidad 1. Fundamentos en Gestión de Riesgos

INSTALACIÓN, OPERACIÓN Y PROGRAMACIÓN DE EQUIPOS Y SISTEMAS TELEFÓNICOS

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

Novedades en Q-flow 3.02

Soluciones innovadoras para optimizar su infraestructura TI. Virtualización con el sistema operativo i, PowerVM y Power Systems de IBM

Creación y administración de grupos de dominio

Trabajo Final de Aplicación. Grid Computing

LA REVOLUCIÓN DE LOS SISTEMAS DE INFORMACIÓN (S.I.) Introducción PORQUÉ SISTEMAS DE INFORMACIÓN? El Competitivo Entorno de los Negocios

Introducción. Componentes de un SI. Sistema de Información:

UNIVERSIDAD DE SALAMANCA

Windows Server 2012: Identidad y Acceso. Módulo 2: Descripción General de Windows Server 2012 Remote Desktop Services.

e-commerce vs. e-business

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

SEMANA 12 SEGURIDAD EN UNA RED

Resumen de la solución SAP SAP Technology SAP Afaria. Gestión de la movilidad empresarial para mayor ventaja competitiva

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

2.1 Clasificación de los sistemas de Producción.

I INTRODUCCIÓN. 1.1 Objetivos

RAID. Redundant Array of Independent Disks. Rafael Jurado Moreno Fuente: Wikipedia

WINDOWS : COPIAS DE SEGURIDAD

Windows Server 2012: Infraestructura de Escritorio Virtual

Arquitectura de sistema de alta disponibilidad

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

Guía de uso del Cloud Datacenter de acens

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática


ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

Presentación. 29/06/2005 Monografía de Adscripción 1

SAP BusinessObjects Edge BI Standard Package La solución de BI preferida para. Empresas en Crecimiento

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red.

CAPÍTULO 1 Instrumentación Virtual

Guía Rápida de Inicio

MODERNIZANDO PCN Y RECUPERACION DE DESASTRES UTILIZANDO VIRTUALIZACION Y LA NUBE

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Componentes de Integración entre Plataformas Información Detallada

Soporte Técnico de Software HP

5 formas de mejorar su negocio con COMPUTACIÓN EN LA NUBE

La Pirámide de Solución de TriActive TRICENTER

Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets

Click&Go. Descripción General. Estructura

Capítulo 1 Introducción

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar

UNIVERSIDAD AUTÓNOMA DEL CARIBE

servicios públicos establecer un plan director de almacenamiento

Sistemas de información

MANUAL COPIAS DE SEGURIDAD

Ventajas del almacenamiento de datos de nube

Core Solutions of Microsoft SharePoint Server 2013 CURSO PRESENCIAL DE 25 HORAS

IBM Tivoli Asset Management for IT. IBM Tivoli Service Request Manager

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Alumna: Adriana Elizabeth Mendoza Martínez. Grupo: 303. P.S.P. Miriam De La Rosa Díaz. Carrera: PTB. en Informática 3er Semestre.


<Generador de exámenes> Visión preliminar

General Parallel File System

1.2 SISTEMAS DE PRODUCCIÓN

Autenticación Centralizada

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos

PROPUESTA COMERCIAL SERESCO, S.A.

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Ingeniería de Software

INTRODUCCION. Ing. Camilo Zapata Universidad de Antioquia

Técnico y sus funciones. 5. Función de los líderes. 6 Función del analista de datos. 6. Metas del Help Desk. 7 Definir el alcance del Help Desk.

UNIVERSIDAD DE ORIENTE FACULTAD DE ICIENCIAS ECONOMICAS LAS REDES I. Licda. Consuelo Eleticia Sandoval

Pruebas y Resultados PRUEBAS Y RESULTADOS AGNI GERMÁN ANDRACA GUTIERREZ

4. Programación Paralela

understanding documents Digitalización y Captura Inteligente de Documentos

CAPÍTULO 3 VISUAL BASIC

Redes de Altas Prestaciones

CURSO: APACHE SPARK CAPÍTULO 2: INTRODUCCIÓN A APACHE SPARK.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Una puerta abierta al futuro

UNIVERSIDAD AUTÓNOMA DEL CARIBE PROCEDIMIENTO DE ATENCIÓN DE INCIDENTES Y REQUERIMIENTOS PARA EQUIPOS DE CÓMUPUTO Y/O PERIFÉRICOS GESTIÓN INFORMÁTICA

Tema 4. Gestión de entrada/salida

Guía de instalación y configuración de IBM SPSS Modeler Social Network Analysis 16

Almacenamiento virtual de sitios web HOSTS VIRTUALES

MACROPROCESO GESTIÓN TECNOLÓGICA

COLEGIO COMPUESTUDIO

Escritorio remoto y VPN. Cómo conectarse desde Windows 7

QUERCUS PRESUPUESTOS MANUAL DEL USO

beservices 2015 Resumen de características técnicas

Cadena de valor. Cadena de valor genérica. Actividades primarias. Actividades de apoyo Actividades primarias

SIMAD CLOUD. La Gestión Documental ahora en la nube, más eficiente SISTEMA INTEGRADO DE ADMINISTRACIÓN DOCUMENTAL

Transcripción:

Universidad Nacional del Nordeste Facultad de Ciencias Exactas, Naturales y Agrimensura Trabajo Final de Aplicación Grid Computing Para Cálculo Intensivo Aguilar Gladys Carolina L.U.: 33.902 Prof. Coordinador: Agr. Castor Herrmann Prof. Orientador: Mgter. David Luis la Red Martínez Licenciatura en Sistemas de Información Corrientes - Argentina 2006

A mi familia por su apoyo incondicional

Prefacio Este trabajo trata aspectos fundamentales relacionados con el estudio del software de Grid Computing, el cual permite, por ejemplo, el desarrollo de aplicaciones orientadas a la realización de cálculos intensivos. En el contexto actual de la llamada Socieda de la Información y del Conocimiento resulta cada vez más necesario disponer de sistemas informáticos distribuidos, multiplataforma, con acceso desde las Intranets y la Internet, para mejorar la gestión de las organizaciones, la transparencia de las mismas, la participación de los ciudadanos en el control de gestión, la automatización de ciertos trámites y gestión de información a través de las redes de datos, especialmente las Intranets de las organizaciones y la Internet, mejorando asimismo la toma de decisiones y el uso eficiente de los recursos. El objetivo inicialmente planteado fue la realización de un Sistema Grid desarrollado en Java, mediante la cual los usuarios podría hacer peticiones para calcula el número e. El otro objetivo fue comprobar que el Globus Toolkit (plataforma de software) permite la utilización en paralelo de la capacidad computacional de los diferentes componentes que forman parte del grid. Estos objetivos planteados al inicio del trabajo, fueron totalmente cumplidos. Clasificación del Trabajo Utilización de software de base que permite el desarrollo de servicios Grid. Desarrollo de una Servicio Grid para el cálculo del número e Etapas de Desarrollo Se ha efectuado una amplia recopilación bibliográfica específica de los temas pertinentes a la tarea planificada y a los productos de software que se emplearon para la concreción del Trabajo Final. Se realizaron las traducciones de los manuales correspondientes a la herramienta de desarrollo WebSphere Studio Application Developer, versión 5.0 para Windows y versión 5.1.2 para Linux.

vi Como consecuencia de las gestiones realizadas por el Profesor Orientador ante IBM Argentina se han recibido materiales tanto en CD s como en libros de dicha empresa, en el marco del Scholars Program de la misma, destinado a Universidades de todo el mundo; se destacan por ser necesarios para la realización del presente Trabajo Final los referentes al producto de software WebSphere Studio Application Developer v. 5.0 y 5.1.2. Se ha realizado un detallado estudio del lenguaje Java, utilizándose la versión JDK 1.4. Se ha realizado un detallado estudio del entorno de trabajo Scientific WorkPlace 2.5.0 para la escritura del libro correspondiente al informe final. Se ha realizado el estudio del software que permite la creación de servicios Grid, Globus Toolkit v.4. Se ha realizado el estudio del software Eclipse, que permite realizar las configuraciones necesarias para lograr el archivo GAR (archivos de servicios grid). Se ha realizado el correspondiente testeo de la aplicación, utilizando una máquina como servidor grid y otra como cliente. Una vez finalizada la aplicación se realizó la grabación en DVD de todo el material correspondiente al trabajo final: una versión de la aplicación, otra referente al libro en formato Latex y el PDF generado. También se icluyólos instaladores de los productos utilizados para el desarrollo. Objetivos Logrados Se han alcanzado plenamente la totalidad de los objetivos planteados para el presente trabajo. Organización del Informe Final El informe final comprende un libro impreso y un DVD, además de un resumen y de un resumen extendido. El libro impreso está organizado en capítulos, los que se indican a continuación:

vii Introdución: presenta una visión general de los sistemas Grid. Estándares abiertos: presenta una descripción de los Estándares Abiertos tomados como base para crear los servicio web. Definición del caso para el Grid: define cada uno de los diferentes grados de adopción a ser implementados en un sistema Grid. Selección de las herramientas: describe cada una de las herramientas utilizadas para la creación del servicio grid. Descripción de la aplicación: detalla los aspectos más significativos de la aplicación desarrollada utilizando las facilidades antes mencionadas. Conclusiones: presenta las conclusiones a las que se ha llegado al finalizar el presente trabajo. El DVD, adjunto al libro impreso, contiene lo siguiente: Instaladores del software utilizado. Resúmenes del trabajo realizado. Libro del informe final. Presentación para la defensa final. Aplicación desarrollada. Aguilar Gladys Carolina Licenciatura en Sistemas de Información Universidad Nacional del Nordeste L.U.: 33902 Prof. Orientador: Mgter. David Luis La Red Martínez Corrientes; 04 de Diciembre de 2006

viii

Índice General 1 Introducción 1 1.1 ConceptodeGridComputing... 1 1.1.1 QuéEselGrid... 2 1.1.2 LoqueelGridnoes... 5 1.1.3 Beneficios Que Ofrece el Grid Computing........ 5 1.2 Lo Que el Grid Computing PuedeHacer... 6 1.2.1 Aprovechamiento de los Recursos Que No Siempre Se Usan... 9 1.2.2 La Capacidad de CPU Paralela............. 11 1.2.3 LasAplicaciones... 12 1.2.4 El Acceso a los Recursos Adicionales.......... 12 1.2.5 BalanceodeRecursos... 13 1.2.6 Confiabilidad... 14 1.2.7 Administración... 14 1.3 ParaQuéSirveelGridComputing?... 16 1.4 Arquitectura del Grid....................... 19 1.5 AplicacionesyServiciosenElGrid... 20 1.5.1 Supercomputación... 22 1.5.2 ProcesoIntensivodeDatos... 23 1.6 LosConceptosyComponentesdelGrid... 24 1.6.1 LosTiposdeRecursos... 24 1.6.2 Computación... 25 1.6.3 Almacenamiento... 25 1.6.4 LasComunicaciones... 27 1.6.5 ElSoftwareylasLicencias... 28 1.6.6 El Equipo Especial, Capacidades, Arquitecturas, y Políticas... 29 1.6.7 Los Trabajos y las Aplicaciones............. 29 1.6.8 Scheduling,Reservación,yBarrido... 31 ix

x ÍNDICE GENERAL 1.7 IntragridaIntergrid... 32 1.8 PlanificacióndelDespliegue... 35 1.8.1 Seguridad... 35 1.8.2 Organización... 35 1.9 ComponentesdelSoftwareGrid... 36 1.9.1 ComponentesdeAdministración:... 36 1.9.2 SoftwareServidor... 37 1.9.3 SoftwaredeSumisión... 38 1.9.4 AdministracióndelGridDistribuido... 39 1.9.5 Schedulers... 39 1.9.6 LasComunicaciones... 40 1.9.7 Observación,Dirección,yDesición... 41 1.10LosTiposdeGrid... 42 1.10.1 GriddeInformación... 42 1.10.2 GriddeRecursos... 44 1.10.3 GriddeServicio... 45 1.11UsarunGrid:PerspectivasdeUsuario... 46 1.11.1 Conectar e Instalar el Software de Grid......... 46 1.11.2 RegistrarseEnelGrid... 47 1.11.3 SolicitaryRealizarTrabajos.... 47 1.11.4 ConfiguracióndeDatos... 50 1.11.5 Monitoreo del Progreso y Recuperación......... 50 1.11.6 ReservarRecursos... 52 1.12 Usar un Grid: La Perspectiva de Un Administrador...... 52 1.12.1 Planeación... 52 1.12.2 Instalación... 53 1.12.3 MatriculacióndeDirección... 54 1.12.4 CertificadodeAutoridad... 55 1.12.5 AdministracióndeRecursos... 57 1.12.6 CompartirDatos... 57 1.13 Usar Un Grid:Una Perspectiva del Diseñador de la Aplicación 58 1.14 QuéNoPuedeHacerelGridComputing?... 58 2 Estándares Abiertos 61 2.1 GLOBUSAlliance... 61 2.2 Open Grid Service Architecture.................. 61 2.2.1 ModelodeProgramacióndeOGSA... 63 2.3 OpenGridServicesInfrastructure... 64 2.4 CuálesSonLosObjetivosdeOGSA?... 65 2.4.1 Arquitectura:... 65

ÍNDICE GENERAL xi 2.5 QuéPlataformas?... 72 2.6 WebService:ServiciosWeb... 72 2.6.1 InvocacióndeunservicioWeb... 73 2.6.2 Características de un servicio Web............ 75 2.7 GridService:ServiciosGrid... 76 3 Definición del Caso Para el Grid 79 3.1 TodoAcercadeOnDemand... 79 3.1.1 Por Qué Prestar Atención a On Demand?....... 81 3.1.2 AmbienteOperativo... 81 3.1.3 TodoAcercadelaEvolución... 82 3.1.4 LaPropuestaClave... 83 3.2 LosGradodeAdopcióndeGrid... 84 3.2.1 Las Estrategias Para la Habilitación de Grid...... 84 3.2.2 Software de Infraestructura Grid Orientado a Batch.. 87 3.2.3 Software de Infraestructura Grid Basado en SOA.... 88 3.3 1 o,2 o y3 o GradodeAdopcion... 89 3.3.1 Batch Anywhere: 1 o GradodeAdopción.... 89 3.3.2 IndependentConcurrentBatch... 96 3.3.3 ParallelBatch... 98 3.4 HabilitacióndeCódigoExistente... 104 3.4.1 ExisteunModelo... 104 3.4.2 LosEscenariosConocidos... 105 3.5 4 o,5 o y6 o GradodeAdopción... 120 3.5.1 Servicios (4 o Grado)... 120 3.5.2 Servicios Paralelos (5 o Grado)... 127 3.5.3 Programas Paralelos Completamente Acoplados (6 o Grado)... 133 3.6 Resumen... 136 4 Selección de Componentes 139 4.1 SeleccióndelS.O... 139 4.1.1 QuéesLinux?... 140 4.1.2 PorquéLinux?... 141 4.1.3 CómoesLicenciadoLinux?... 141 4.1.4 De Dónde Vienen los Recursos para el Desarrollo de Linux?... 142 4.1.5 CaracterísticasPrincipales... 143 4.1.6 VentajasdeLinuxfrenteaotrosS.O.... 145 4.1.7 XWindow... 146

xii ÍNDICE GENERAL 4.1.8 KDE... 147 4.1.9 InstalacióndeLinux... 160 4.2 SeleccióndelSoftwareGrid... 170 4.2.1 InstalacióndeGlobusToolkit... 173 4.2.2 SimpleCA... 178 4.3 LenguajeySoftware... 191 4.3.1 Procedimientos Para Llegar al Servicio Grid....... 194 4.4 InterfazdelCliente... 215 4.4.1 Que es WebSphere?.................... 215 4.4.2 PlataformadeSoftware... 216 4.5 Java Como Perspectiva del WebSphere.............. 228 4.5.1 IntroducciónalLenguaje... 228 4.5.2 Estructura General de un Programa Java........ 234 4.5.3 ConceptosBásicos... 235 4.5.4 Variables Dentro del Lenguaje Java........... 238 4.5.5 OperadoresenJava... 241 4.5.6 EstructurasdeProgramación... 245 4.5.7 ClasesenJava... 251 4.6 AWT-Biblioteca de clases Java.................. 253 4.6.1 InterfazdeUsuario... 254 4.6.2 EstructuradelAWT... 255 4.6.3 Componentes y contenedores del AWT.......... 256 4.6.4 Componentes... 256 4.6.5 Contenedores... 267 5 Descripción de la Aplicación 275 5.1 AplicaciónDesarrollada... 275 5.1.1 ProvisionDir.wsdl (Interfaz del servicio)......... 276 5.1.2 ProvisionDirQName.java (Interfaz contenedoras de URIs)280 5.1.3 ProvisionDirService.java (Clase que ejecuta el servicio). 281 5.1.4 deploy-jndi-config.xml(archivodedespligue)... 283 5.1.5 deploy-server.wsdd (Archivo de Configuración)... 284 5.1.6 buildservice.xml... 285 5.1.7 buildservice.properties... 286 6 Conclusiones 289

ÍNDICE GENERAL xiii Bibliografía 291 Índice de Materias 293

Índice de Figuras 1.1 Representacióndeungridcomoungrafo.... 2 1.2 Representacióndeungridcomoungrafo.... 4 1.3 OrigenydesarrollodelGridComputing... 8 1.4 BalanceodeRecursos.... 13 1.5 CofiabidadenlosSistemasdeGrid... 15 1.6 AdministraciónenlosSistemasdeGrid... 16 1.7 SupercomputaciónDistribuida.... 18 1.8 SistemasDistribuidosenTiempoReal... 19 1.9 Arquitectura de un sistema Grid................. 21 1.10 Arquitectura actual de los sistemas de información........ 23 1.11 Arquitectura Grid Computing para sistemas de información. 24 1.12AlmacenamientoenelGrid... 27 1.13TrabajosyAplicacionesdelGrid... 30 1.14UnGridmásSimple... 34 1.15UnIntergridmásComplejo... 34 1.16 Los tres tipos de Grid y sus relaciones conjuntas......... 43 2.1 LaArquitecturadeOGSA.... 66 2.2 LaEstructuradeOGSA... 68 2.3 ComponentesdeOGSI.... 68 2.4 ElOGSIyWebservice.... 70 2.5 ElOGSIyelHostingdeWebservice.... 71 2.6 Diagramadeinvocacióndeunservicio... 74 3.1 CaminoalaVisiónOnDemand.... 80 3.2 LosPrincipiosenOnDemand.... 81 3.3 De Administrativo a la Productividad Organizacional...... 83 3.4 Estrategias de Habilitación de Grid para Arquitecturas OrientadasalServicioyenLotes(Batch).... 84 3.5 1 o GradodeAdopción... 89 xv

xvi ÍNDICE DE FIGURAS 3.6 2 o GradodeHabilitaciónGrid.... 96 3.7 3 o GradodeadopcióndelGrid... 99 3.8 Modelo de Integración Para Habilitar Código Existente..... 105 3.9 DesplieguedeAplicacionesMonolíticas Usando el Modelo de HabilitaciónEstándar... 106 3.10 El Despliegue Ideal Para las Aplicaciones Modulares....... 109 3.11 El Escenario Más Común Para el Despliegue de Aplicaciones Modulares.... 111 3.12 El Modelo Estructural Servlet-centric más Común........ 112 3.13 Estrategia Típica de Habilitación Web Servlet-centric...... 113 3.14DesplieguegridtípicodeServletcentral... 114 3.15 Modelo arquitectónoco más común Database-centric....... 116 3.16 Escenario típico de habilitaciónwebdatabase-centric.... 117 3.17 Escenario de virtualización de datos para aplicaciones Databasecentric... 119 3.18 4 o Gradodeadopción... 121 3.19 5 o GradodeadopcióndeGrid.... 128 3.20 6 o GradodeadopcióndeGrid... 134 4.1 BarradeAccesoaInternet.... 149 4.2 Barra de Herramientas de Kfind.... 156 4.3 Arquitectura del GT........................ 172 4.4 Configuración.... 175 4.5 Compilación.... 176 4.6 Instalación.... 177 4.7 AdicionarelJDKalosJREsinstalados... 195 4.8 AjustedelJDKpordefecto... 196 4.9 Ajustedelavrsióndeltomcat.... 197 4.10AdministradorTomcat... 198 4.11Paginadepropiedadesdelproyecto.... 200 4.12PaginaPathfuente... 201 4.13 Actualización de las Java Build Path Libraries.......... 201 4.14Crearunanuevalibreríadeusuario.... 202 4.15 Cuadro de diálogo de un nuevo paquete Java........... 203 4.16 Actualización de la Navigator view................. 203 4.17 Pestaña Source de la página Java Build Path........... 204 4.18 Vista Final en el explorardor de proyectos............. 208 4.19 Actualización de paquetes en el explorador de proyectos.... 210 4.20 Cuadro de dialogo de las herramientas External......... 210 4.21 Cuadro de dialogo de las herramientas External......... 211

ÍNDICE DE FIGURAS xvii 4.22 Cuadro de diálogo de la etiqueta Properties de las herramientas External.... 212 4.23 Agregar la Launch Configuration a la barra de herramientas ExternalTools.... 212 4.24 configuration... 213 4.25 Cuadro de dialogo de Edit Class Folder dialog.......... 214 4.26Attachment... 215 4.27 Plataforma de WebSphere...................... 216 4.28BotonesdeSelección... 261 4.29BotonesdeComprobación... 262 4.30 Manipulación de varios elementos mediante listas........ 262 4.31Camposdetexto... 263 4.32AreasdeTexto... 264 4.33Etiquetas... 265 4.34Canvas.... 266 4.35Barradedesplazamiento... 266 4.36RangodeValoresenlabarras... 267 4.37Frames... 269 4.38Cuadrosdediálogo... 270 4.39Paneles.... 271 4.40Layouts... 272 4.41FlowLayouts.... 273 4.42BorderLayouts... 274 5.1 Llamadaalservicio.... 287 5.2 Obtenciónderesultados... 288

Índice de Tablas 4.1 TiposdeVariables... 239 4.2 CategoríasdeVariables.... 239 4.3 TiposPrimitivosdeVariables... 240 4.4 OperadoresdeAsignación... 242 4.5 OperadoresRelacionales... 243 4.6 PrecedenciadeOperadores.... 245 xix

Capítulo 1 Introducción 1.1 Concepto de Grid Computing La utilización en paralelo de la capacidad computacional de los diferentes sistemas que conforman un Grid permite realizar las tareas cotidianas de trabajo mucho más rápido que si de un único ordenador se tratara. Mientras que la Web es un servicio para compartir información a través de Internet, el Grid es un servicio para compartir potencia de cálculo y capacidad de almacenamiento a través de la red. Esta compartición se realiza abstrayendo/virtualizando los recursos que participan en una infraestructura grid, de manera que para el usuario final actuan como un único y potente ordenador. Los teóricos del grid computing entienden que el objetivo final de la tecnología grid es crear una infraestructura cuyo ámbito sea todo Internet, integrando todos los heterogéneos recursos computacionales que existen alrededor del mundo. El concepto principal de Grid Computing es el de compartir potencia computacional [2, Berstis]. Desde el momento en el que los primeros ordenadores comenzaron a conectarse a Internet, surgió la idea de unir la potencia inutilizada de cada uno para abordar problemas a los que sólo podían enfrentarse las supercomputadoras pertenecientes a organizaciones gubernamentales, universidades o grandes multinacionales. 1

2 CAPÍTULO 1. INTRODUCCIÓN Figura 1.1: Representación de un grid como un grafo. La tecnología que hace esto posible se llama Grid Computing (malla de ordenadores) y se basa en el aprovechamiento de los ciclos de procesamiento no utilizados por los millones de ordenadores conectados a la red, logrando de esta forma la realización de tareas que son demasiado intensivas para ser resueltas por una única máquina. 1.1.1 Qué Es el Grid El grid permite la Computación Distribuida sobre de una red de recursos heterogéneos utilizando estándares abiertos. Un sistema Grid puede entenderse, en una primera aproximación, como un conjunto de equipos informáticos geográficamente distribuidos que colaboran de forma conjunta para obtener un fin común. Estos recursos pueden pertenecer a empresas diferentes y su ubicación geográfica puede variar substancialmente, pero pueden considerarse sistemas del mismo Grid equipos separados unos pocos metros u otros localizados en extremos opuestos al planeta. Su definición varia poco respecto a los tradicionales y ampliamente conocidos Sistemas Distribuidos, no obstante esto no nos debe llevar a un engaño. Uno de los valores direnciales de los sistemas Grid es el termino recurso,

1.1. CONCEPTO DE GRID COMPUTING 3 que va más alla de la simple compartición o intercambio de ficheros entre equipos. Abarca el acceso directo a ordenadores CPU, software, datos o cualquier otro elemento diponible y simpre dentro de una estrategia colaborada con el fin de solucionar un problema concreto. El uso compartido de recursos pertenecientes a diferecntes compañías da lugar a lo que se conoce como Organizaciones Virtuales. En esencia, el Grid es una estructura de recursos que se virtualizan para optimizar los propósitos. Esto significa mayor poder de CPU, aplicaciones, datos, almacenamiento y recursos de red. Está para que el cliente la utilice cuando sea necesario, sin preocuparse de dónde se localiza, en qué sistema operativo residen los datos y demás recursos, etc. Teóricamente, según el National Institute of Standards and Technology : Instituto Nacional de Estándares y Tecnologías, el Grid es...un grafo con una unión entre cada par de vértices. Como se ilustra en la figura 1.2 de la página 4. Los nodos y los enlaces pueden representar virtualmente cualquier cosa. En el caso de los Grid Computacionales, el desafío consiste en acceder a los recursos que residen en cualquier parte de la estructura. La estructura puede ser Intranet, Extranet o bien un ambiente de Internet. En otros términos, si se supone que el grafo ilustrado en la figura 1.2 de la página 4 es un Grid Computacional, el grafo representaría lo fácil que es, por ejemplo, para una máquina A obtener y utilizar los recursos de las máquinas B, C, D, o H. Los nodos son las máquinas y los enlaces representan la accesibilidad, disponibilidad y facilidad de uso. En términos simples, los enlaces representan la virtualización. Construir un Grid es un problema de software. Para una aplicación, ejecutarse en un grid o habilitarla en un grid ya hecho, significa ejecutarla en un Ambiente Distribuido quesecomportacomoungrafocompleto. En resumen podemos definir al grid a travéz de las siguientes características: Sistema altamente flexible que permite coordinar el acceso a cualquier tipo de recurso distribuido Proporciona control total sobre qué se comparte y cómo se comparte, permitiendo, por ejemplo, la tarificación del uso de este recurso.

4 CAPÍTULO 1. INTRODUCCIÓN Figura 1.2: Representación de un grid como un grafo.

1.1. CONCEPTO DE GRID COMPUTING 5 Permite una comunicación fácil y segura. 1.1.2 Lo que el Grid no es NO es una mejora/ampliación de Internet (no están al mismo nivel). NO es un proyecto (es una tecnología). NO es un cluster de ordenadores (en un grid puede haber integrados muchos o ningún cluster) 1.1.3 Beneficios Que Ofrece el Grid Computing Los principales beneficios son: Ofrecer flexibilidad para llenar las necesidades cambiantes del negocio. Brindar alta calidad a menor costo. Facilitar el pronto retorno de las inversiones. No necesitar de toda una nueva infraestructura para que funcione. Facilitar poder de computación / precio muy barato. Brindar el poder de un supercomputador. Utilizar software gratuito y usar código fuente abierto. No precisar hardware adicional, para posibilitar el incremento de la potencia de cómputo. Brindar transparencia para el usuario que participa en el grid. Disponer de mecanismos de seguridad y autenticación

6 CAPÍTULO 1. INTRODUCCIÓN 1.2 Lo Que el Grid Computing Puede Hacer Las supercomputadoras ciertamente tienen un papel que cumplir, pero son caras y tienden a ser muy especializadas en los tipos de problemas que se les presenta para resolver. El cambio de usar una única computadora para resolver el problema, a usar múltiples computadoras, es un cambio muy dramático de paradigma. Profesionales en áreas de interés relativas a la computación de altos requerimientos tales como análisis sísmico, medicina, modelado financiero, investigación biomédica, y predicción del tiempo, se ven obligados a crear continuamente nuevas tecnologías para soportar sus cargas de trabajo. Desafortunadamente con frecuencia terminan por escoger soluciones que solo resuelven un problema específico dentro de un ambiente muy acotado de hardware o software. La mayoría de los trabajos grid que se efectuaron apuntaron al ambiente de la informática distribuida de alto rendimiento, muy especializados, los cuales no podían utilizarse para aplicaciones informáticas distribuidas genéricas y heterogéneas. Como el grid se convierte en un factor muy importante para la informática comercial, las necesidades de estandarizaciones y de aplicaciones abiertas son cruciales. Para subsanar los inconvenientes antes mencionados se formó el Global Grid Forum: Foro Global de Grid (GGF) para diseñar y desarrollar un conjunto de estándares de Grid Computing que podrían usarse para cualquier industria, en áreas geográficamente dispersas, hardware y ambientes de software heterogéneos. Las estandarizaciones necesarias fueron identificadas en áreas tales como la arquitectura global, el modelo de programación, el modelo de red, el modelo de datos, la seguridad y la administración. La idea de grid está enfocada fundamentalmente en el acceso remoto a recursos computacionales y pretende ser un paradigma de desarrollo no centrado en una tecnología concreta. La evolución de Grid Computing se refleja en el avance de la estandarización de esta tecnología (el estándar de Globus Project es el estándar de facto) donde se encuentra definida la arquitectura del grid, los niveles de acceso, los requisitos, los servicios, etc.

1.2. LO QUE EL GRID COMPUTING PUEDE HACER 7 El Grid Computing se enmarca dentro de la tecnología de computación distribuida englobando conceptos como sistemas operativos distribuidos, programación multiprocesador, redes de ordenadores, computación paralela, redes de computadoras, seguridad, bases de datos, etc. De cierta forma da una unidad conceptual a estos problemas de manera que todos ellos puedan verse desde una perspectiva grid. La implementación de los estándares de grid ha permitido que diseñadores y administradores se centraran en problemas de un área específica, admitiendo así la utilización de una infraestructura grid cuando ellos lo requieran como cualquier otra herramienta portable. Esto reduce el costo del proyecto global y significativamente también el tiempo de despliegue de la aplicación. El Grid Computing es más que una idea ambiciosa, ya que no sólo se trata de compartir ciclos de CPU para realizar cálculos complejos sino que se busca la creación de una infraestructura distribuida. Esta ardua tarea involucra labores de definición de la arquitectura general, de interconexión de diferentes redes, de definición de estándares, de desarrollo de procedimientos para la construcción de aplicaciones, etc. El grid es una idea que promete revolucionar el mundo de la computación y el cómo se desarrollan las aplicaciones actualmente. Parece claro que Grid Computing no es una moda, y queda, todavía, un largo camino por recorrer desde los conceptos hasta las aplicaciones reales. Aunque existen muchos mini - grids para el desarrollo de investigaciones no parece cercano el día en que todos los ordenadores del mundo formen un Grid Mundial a modo de gigantesco sistema de distribución eléctrico (paradigma del Grid Computing en casi todas las publicaciones sobre el tema), donde los usuarios se conecten y tengan acceso a la capacidad de cómputo y de almacenamiento que precisen sin preocuparse de dónde se genera. Ver figura 3.1 de la página 80. Cuando se despliega un grid, se podrá encontrar con un conjunto de requerimientos del cliente. Para que las habilidades del Grid Computing se adapten mejor a esos requerimientos, es útil tener presente las razones para las que se usa el Grid Computing. A continuación se describen las capacidades más importantes del Grid Computing.

8 CAPÍTULO 1. INTRODUCCIÓN Figura 1.3: Origen y desarrollo del Grid Computing.

1.2. LO QUE EL GRID COMPUTING PUEDE HACER 9 1.2.1 Aprovechamiento de los Recursos Que No Siempre Se Usan El uso más fácil del Grid Computing es ejecutar una aplicación existente en una máquina diferente [1] [9] [10] [5]. La máquina en que la aplicación normalmente se ejecuta podría estar inusualmente ocupada debido a un pico inusual de actividad. El trabajo en cuestión podría ejecutarse en otra parte en una máquina ociosa en el grid. Hay dos requisitos previos a cosiderar en este apartado: Primero, la aplicación debe ser ejecutable remotamente. Segundo, la máquina remota debe encontrar cualquier hardware especial, software, o requerimientos de recursos impuestos por la aplicación. Por ejemplo, un trabajo en lotes (batch) que consume una cantidad significativa de tiempo procesando un conjunto de datos de entrada para producir un conjunto de resultados, es quizás el uso más ideal y simple para un grid. Si las cantidades de entradas y salidas son grandes, más análisis y planeación podrían requerirse para usar eficazmente el grid para tal trabajo. Normalmente no tendría sentido usar un procesador de palabra remotamente en un grid, porque habría retrasos mayores y más puntos potenciales de fracaso. En la mayoría de las organizaciones, hay grandes cantidades de recursos no siempre utilizados. La mayoría de las máquinas del escritorio están ocupadas menos del 5% del tiempo. En algunas organizaciones, incluso las máquinas servidoras pueden estar a menudo relativamente ociosas. El Grid Computing provee una estructura para explorar estos recursos y así tener la posibilidad de aumentar la eficacia de su uso.

10 CAPÍTULO 1. INTRODUCCIÓN Los recursos del procesamiento no son los únicos que pueden ser subutilizados. A menudo, las máquinas puede tener una enorme capacidad de disco no utilizada. El Grid Computing, más específicamente, un Grid de datos, puede usarse para agregar este almacenamiento no utilizado a un almacén de datos virtuales más grandes, posiblemente configurado para lograr mejorar la calidad y confiabilidad de cualquier máquina. Si un trabajo batch necesita leer una cantidad grande de datos, éstos datos podrían reproducirse automáticamente en varios puntos estratégicos en el grid. Así, si el trabajo debe ejecutarse en una máquina remota en el grid, los datos ya están allí y no necesitan ser movidos a ese punto remoto. Esto ofrece claros beneficios de calidad. También, tales copias de datos pueden usarse como backups cuando las primeras copias se dañan o no están disponibles. Otra función del grid es equilibrar mejor la utilización del recurso. Una organización puede tener picos inesperados ocasionales de actividad que exigen más recursos. Si las aplicaciones en el grid están habilitadas, ellos pueden moverse a las máquinas poco utilizadas durante tales picos. De hecho, algunas aplicaciones del grid pueden migrar los trabajos parcialmente terminados. En general, un grid puede proporcionar una manera consistente de equilibrar las cargas en una coalición de recursos más amplia. Esto incluye la CPU, almacenamiento, y muchos otros tipos de recursos que pueden estar disponibles un grid. La administración puede usar un grid para ver bien los modelos de uso en una organización más grande, permitiendo una mejor planificación al actualizar los sistemas, incrementar la capacidad, o retirar recursos de computing que ya no se necesitan.

1.2. LO QUE EL GRID COMPUTING PUEDE HACER 11 1.2.2 La Capacidad de CPU Paralela El potencial para la capacidad de CPU paralela masiva es uno de los rasgos más atractivos de un grid. Además de necesidades científicas puras, tal poder de computing está conduciendo a una nueva evolución en las industrias como el campo bio-médico, planeación financiera, exploración petrolera, etc. El atributo común entre tales usos es que las aplicaciones se han escrito para usar algoritmos que pueden dividirse independientemente en partes de ejecución. Una aplicación de grid intensiva de CPU puede pensarse como muchos sub-trabajos más pequeños, cada uno ejecutándose en una máquina diferente en el grid. Si éstos sub-trabajos no nesecitan comunicarse con el otro, la aplicación se vuelve más escalable. Una aplicación absolutamente escalable, terminará diez veces más rápido si usa diez veces el número de procesadores. A menudo existen barreras para perfeccionar la escalabilidad. La primer barrera depende de los algoritmos usados para dividir la aplicación entre muchas CPUs. Si el algoritmo sólo puede dividirse en un número limitado de partes independientes de ejecución, entonces eso forma una barrera de escalabilidad. La segunda barrera aparece si las partes no son completamente independientes; esto puede causar contención que puede limitar la escalabilidad. Por ejemplo, si todos los sub-trabajos necesitan leer y escribir desde un archivo común o base de datos, el acceso a ese archivo o base de datos se vuelve un factor limitante en la escalabilidad de la aplicación. Otras fuentes de contención de inter-trabajo en una aplicación de grid paralela incluye latencias de comunicaciones de mensajes entre los trabajos, la red, las capacidades de comunicación, los protocolos de sincronización, el ancho de banda de entrada-salida, los dispositivos de almacenamiento, y latencias que interfieren con los requerimientos de tiempo real.

12 CAPÍTULO 1. INTRODUCCIÓN 1.2.3 Las Aplicaciones Hay muchos factores para considerar en una aplicación de habilitación de grid. Se debe entender que no todas las aplicaciones pueden transformarse para ejecutarse en paralelo con un grid y lograr escalabilidad. Además se dispone de herramientas prácticas, que los diseñadores de aplicación pueden usar para escribir una aplicación paralela. Sin embargo, una transformación automática de aplicaciones es una ciencia nueva. Éste puede ser un trabajo difícil y a menudo puede requerir de matemática avanzada y de talentos de programación, si incluso es posible en una situación dada. Nuevas aplicaciones intensivas de computación se están diseñando para la ejecución paralela y éstas serán fácilmente habilitadas para su ejecución en grid. 1.2.4 El Acceso a los Recursos Adicionales Los recursos adicionales pueden proporcionarse en número y capacidad variable. Por ejemplo, si un usuario necesita aumentar su ancho de banda total a Internet para implementar un mecanismo de básqueda de minería de datos, el trabajo podría devidirse entre máquinas del grid que tienen conexiones independientes a Internet. De esta manera, la capacidad total de búsqueda se multiplica, desde que cada máquina tiene una conexión separada a Internet. Si las máquinas hubieran compartido la conexión en Internet, no habría habido un aumento eficáz en el ancho de banda. Algunas máquinas pueden tener instalado el software bajo licencia costoso que los usuarios requieran. Su trabajo puede enviarse a tales máquinas aprovechando las licencias del software.

1.2. LO QUE EL GRID COMPUTING PUEDE HACER 13 1.2.5 Balanceo de Recursos Para aplicaciones habilitadas, el grid puede ofrecer un efectivo balanceo de recursos mediante la planificación de trabajos de grid en máquinas con poca utilización, como se ilustra en figura 1.4 de la página 13. Esta facilidad puede mejorar invalorablemente el manejo de picos de carga de actividad en sectores de una organización más grande. Esto puede pasar de dos maneras: Un pico inesperado puede ser conducido a máquinas relativamente ociosas en el grid. Si el grid ya se utiliza totalmente, el trabajo de prioridad más baja que se realiza en el grid debe ser suspendido temporalmente o incluso cancelado y realizado posteriormente para dejar lugar a un trabajo de prioridad mayor. Sin una infraestructura de grid, tales decisiones de equilibrio serían difíciles de priorizar y ejecutar. Figura 1.4: Balanceo de Recursos.

14 CAPÍTULO 1. INTRODUCCIÓN 1.2.6 Confiabilidad Los sistemas informáticos convencionales high-end usan hardware caro para aumentar la fiabilidad. Se construyen usando chips con circuitos redundantes que brindan resultados y contienen mucha lógica para lograr una buena recuperación ante fallas de hardware. Las máquinas también usan procesadores dobles con pluggability (conexionado en caliente) para que cuando uno de ellos falla, se lo pueda reemplazar por el otro sin apagar el equipo. Los sistemas de suministros de corriente eléctrica y de ventilación están duplicados. Los sistemas operan con fuentes especiales de energía que pueden encender los generadores si la corriente utilizada se interrumpe. Todos esto construye un sistema fiable, pero a un gran costo, debido a la duplicación de componentes de alta fiabilidad. Los sistemas en un grid pueden ser relativamente baratos y geográficamente dispersos. Así, si hay algún tipo de falla, no es probable que las otras partes del grid sean afectadas (ver figura 1.5 en la página 15). El software de gestión del grid puede automáticamente reenviar trabajos a otras máquinas del grid, cuando en una se descubre una falla. En situaciones críticas de tiempo real, copias múltiples de trabajos importantes pueden ejecutarse en diferentes máquinas a través del grid. 1.2.7 Administración La meta de virtualizar los recursos en el grid y administrar más uniformemente sistemas heterogéneos crearán nuevas oportunidades para gestionar mejor una infraestructura de IT más grande, y más dispersa. Será más fácil visualizar la capacidad y utilización, haciéndolo más fácil para los departamentos de IT y así controlar los gastos de recursos de computación en una organización más grande. El grid ofrece administración de prioridades entre diferentes proyectos.

1.2. LO QUE EL GRID COMPUTING PUEDE HACER 15 Figura 1.5: Cofiabidad en los Sistemas de Grid. En el pasado, cada proyecto podría haber sido responsable de su propio hardware de recurso de IT y los gastos asociados con él. A menudo este hardware podría no estar siempre utilizado mientras otro proyecto se encontrara en problemas, necesitando más recursos debido a eventos inesperados. Con una visión mayor, un grid puede ofrecer controlar y manejar más fácilmente tales situaciones. Como se ilustra en la figura 1.6 de la página 16, los administradores pueden cambiar gran número de políticas que afectan en cómo las diferentes organizaciones pueden compartir o competir por los recursos. La meta de virtualizar los recursos en el grid y administrar más uniformemente sistemas heterogéneos crearán nuevas oportunidades para gestionar mejor una infraestructura de IT más grande, y más dispersa. Será más fácil visualizar la capacidad y utilización, haciéndolo más fácil para los departamentos de IT y así controlar los gastos de recursos de computación en una organización más grande.

16 CAPÍTULO 1. INTRODUCCIÓN Figura 1.6: Administración en los Sistemas de Grid. El grid ofrece administración de prioridades entre diferentes proyectos. En el pasado, cada proyecto podría haber sido responsable de su propio hardware de recurso de IT y los gastos asociados con él. A menudo este hardware podría no estar siempre utilizado mientras otro proyecto se encontrara en problemas, necesitando más recursos debido a eventos inesperados. Con una visión mayor, un grid puede ofrecer controlar y manejar más fácilmente tales situaciones. Como se ilustra en la figura 1.6 de la página 16, los administradores pueden cambiar gran número de políticas que afectan en cómo las diferentes organizaciones pueden compartir o competir por los recursos. 1.3 Para Qué Sirve el Grid Computing? Un Grid Computing es una infraestructura hardware y software que suministra al que la utiliza acceso seguro (dependable), consistente (consistent),

1.3. PARA QUÉ SIRVE EL GRID COMPUTING? 17 penetrante (pervasive) y barato (inexpensive), a elevadas capacidades computacionales. El concepto de infraestructura se utiliza porque un grid es un conjunto de recursos (ciclos de CPU, datos, sensores, etc.), y todos esos recursos necesitan una interconexión de hardware y un control de software para que estén ensambladas en un grid. Esta infraestructura debe proporcionar a los usuarios un servicio seguro a todos los niveles: capacidad de cómputo, de integridad de datos, de seguridad de acceso, etc. El servicio debe ser consistente, basado en estándares, y de esta manera el acceso y las operaciones sobre el grid estarán definidas por dichos estándares evitando la heterogeneidad. La idea de penetración no es tanto la posibilidad de acceder a cualquier recurso del grid como que el grid llega a cualquier sitio, de esta manera se asegura que una vez conectado desde cualquier punto se puede extraer del grid toda la potencia que se requiera. Por último el acceso y uso del grid debe tener un coste económico que le haga atractivo para que su utilización se universalice. Para terminar de definir el concepto se desgrana cada uno de los posibles campos de aplicación de la tecnología grid. El análisis lleva a definir cinco grandes áreas de trabajo determinadas por las necesidades de cálculo, espacio para el almacenamiento de los datos y tiempo de respuesta. Las áreas son: Supercomputación Distribuida Dentro de esta área se encuentran aquellas aplicaciones cuyas necesidades son imposibles de satisfacer en un único nodo. Estas necesidades se producen en instantes de tiempo determinados y consumen muchos recursos, por lo que se dice que son puntuales e intensivas. Ejemplo de este tipo de aplicaciones son las simulaciones, las herramientas de cálculo numérico, los procesos de análisis de datos, la extracción de conocimiento de almacenes de datos, etc. Ver fugura 1.7 de la página 18. Sistemas Distribuidos en Tiempo Real En este tipo de aplicaciones se consideran aquellas que generan un flujo de datos a alta velocidad que debe ser analizado y procesado en tiempo real. Ejemplodeestetipodeaplicacionessonlosexperimentosdefísicadealta energía, control remoto de equipos médicos de alta precisión y precio, todos

18 CAPÍTULO 1. INTRODUCCIÓN Figura 1.7: Supercomputación Distribuida. los procesos de la denominada e-medicine, el tratamiento de imágenes para la visión artificial, etc. Ver figura 1.8 de la página 19. Proceso Intensivo de Datos Esta área se centra en aquellas aplicaciones que hacen un uso intensivo del espacio de almacenamiento. Las necesidades de almacenamiento de este tipo de aplicaciones desbordan la capacidad de almacenamiento de un único nodo y los datos son distribuidos por todo el grid. Además de los beneficios por el incremento de espacio, la distribución de los datos a lo largo del grid permite el acceso a los mismos de forma distribuida. Ejemplos de este tipo de aplicaciones son todos los sistemas gestores de bases de datos distribuidas. Servicios Puntuales En esta área, se olvida el concepto de potencia de cálculo y capacidad de almacenamiento, para centrarse en recursos que una organización puede considerar como no necesarios. De esta manera el grid ofrece a la organización esos recursos sin que la organización deba desarrollarlos por si misma. Ejemplos de este tipo de aplicaciones son aquellas que permiten acceder a hardware muy específico (equipos costosos de medida o de análisis de muestras) para la

1.4. ARQUITECTURA DEL GRID 19 Figura 1.8: Sistemas Distribuidos en Tiempo Real realización de labores a distancia. Entornos Virtuales de Colaboración Esta área está relacionada directamente con el concepto de Teleinmersión, de manera que se utilizan los enormes recursos computacionales del grid y su naturaleza distribuida para generar entornos virtuales 3D distribuidos. 1.4 Arquitectura del Grid Se entiende por arquitectura de un sistema Grid a la tecnoliía necesaria para establecer, administrar y explotar la compartición de recursos que forman el mismo. Pretende identificar los componentes fundamentales del sistema, especificar el objetivo y las funciones de dichos componentes e indicar cómo interarctúan los unos con los otros. Esta arquitectura se ha utilizado académicamente para resolver grandes problemas de cómputo, como procesar datos de investigaciones, simulaciones científicas, procesamientos de datos estadísticos y simulaciones técnicas, a dife-

20 CAPÍTULO 1. INTRODUCCIÓN rencia del grid empresarial donde se ejecutan aplicaciones reales en tiempo real y se optimizan recursos informáticos (es hacia donde está apuntando Oracle con Grid Computing). Las aplicaciones, los toolkits, las APIs, los SDK, etc. que se definen para la computación en grid deben de cumplir una arquitectura general. Esta arquitectura general se articula en cinco niveles: la aplicación, la colectiva, la gestión del recurso, la conectividad y recurso, según se muestra en la figura 3.5 de la página 89. Principalmente, la arquitectura propuesta es una arquitectura de protocolos que definen los mecanismos básicos que permiten a los usuarios y a los recursos negociar, establecer, gestionar y explotar la compartición de recursos. Es una Arquitectura Abierta basada en estándares que facilita la extensibilidad, la interoperatibilidad, la portabilidad y la compartición de código. De esta manera la estandarización de los protocolos permitirá estandarizar los servicios y mejorar las capacidades del grid. En el nivel de aplicación permite desarrolar el software necesario (a travéz de las APIs y SDKs) para poder acceder al recurso final. El nivel de colectiva se encarga de gestionar un recurso concreto, la función de la capa colectiva es administrar las múltiples y simultáneas peticiones de uso que un recurso culaquiera puede recibir. El nivel de gestion de recurso Define los protocolos, APIs y SDKs necesarios para una comunicación segura y para la administración de los recursos individuales (que incluye inicialización, monitorización, control y facturación de los mismos). La capa de conectividad define los protocolos de comunicación y autenticación necesarios entre el usuario final y el recurso. El último, nivel de recurso físico o lógico (CPU, dispositivos de almacenamiento, catálogo, etc) al que el protocolo grid media puede acceder 1.5 Aplicaciones y Servicios en El Grid El avance del Grid Computing se observa en la aplicabilidad de sus ideas en productos comerciales y los desarrollos de compañías de software basados en

1.5. APLICACIONES Y SERVICIOS EN EL GRID 21 Figura 1.9: Arquitectura de un sistema Grid

22 CAPÍTULO 1. INTRODUCCIÓN el estándar de grid. 1.5.1 Supercomputación Uno de los campos donde se han centrado más los esfuerzos de compañías comerciales es en el de la supercomputación. Empresas con un amplio abanico de productos, ofrecen desarrollos para la instalación de grids con altas capacidades de cómputo. Por ejemplo, HP conectó al grid del DOE (DOE Science Grid) una máquina Linux de 9,2 teraflops. Este grid se usa para llevar a cabo simulaciones, analizar datos y coordinar experimentos. Sobre la máquina se instala el software de Globus para permitir la gestión de recursos, el movimiento de datos y el control de la seguridad entre los grupos de investigación que hagan uso de él. Los usuarios se identificarán en el grid mediante las credenciales de autenticación del GSI (Grid Security Infraestructure), el estándar de seguridad de Globus. El supercomputador de HP será puesto a disposición del grid a través del Globus MDS (Monitoring and Discovery Service), un catálogo seguro de todos los recursos del grid. GridSystems ha desarrollado el producto InnerGrid para la aplicación de la tecnología grid en entornos empresariales, académicos y de investigación. Este software divide datos y procesos en pequeñas unidades que se ajustan dinámicamente a los recursos conectados a la red. El sistema es multiplataforma (WindowsytodoslossistemasUNIX). Esta empresa lo que hace es aprovechar los ciclos libres de CPU aumentando la capacidad de cómputo global con un bajo costo. De esta manera los ciclos libres son utilizados por aplicaciones que consumen muchos recursos y necesitarían de un supercomputador o por trabajos puntuales e intensivos en una fracción de tiempo. La instalación del producto en una empresa permite la utilización de máquinas que han quedado obsoletas y la instalación de nuevas máquinas sin que se interfiera en el trabajo de la compañía, ya que el software es fácilmente escalable.

1.5. APLICACIONES Y SERVICIOS EN EL GRID 23 Figura 1.10: Arquitectura actual de los sistemas de información. 1.5.2 Proceso Intensivo de Datos Otra de las grandes áreas de aplicación es el almacenamiento masivo de datos. Dentro de esta área las nuevas versiones se centran en la aplicación de las ideas de Grid Computing al almacenamiento de datos. La nueva versión parte de la arquitectura actual en la que se encuentran la mayoría de los sistemas de información. Ver figura 3.5 de la página 89. Cada una de las capas es de uso dedicado a cada sistema de información. Evidentemente, el fallo de alguno de los componentes de los tres niveles (Application Server, Database y Storage) supondrá una pérdida del servicio. Esta nueva arquitectura basada en Grid Computing pretende crear granjas / factorías de almacenamiento y servidores estándares y modulares, a las que se puede añadir servidores rápidamente. En la figura 3.6 de la página 96 se detalla a grandes rasgos la arquitectura propuesta (versión Oracle 10g.). Las características de esta arquitectura serían: Capacidad de balanceo de sistemas. Alta disponibilidad. Reducción de costes.

24 CAPÍTULO 1. INTRODUCCIÓN Figura 1.11: Arquitectura Grid Computing para sistemas de información. Facilidad de administración. La utilización de esta versión permitirá a la empresa mejorar sus prestaciones sin renunciar al comportamiento tradicional de los Sistemas de Información. 1.6 Los Conceptos y Componentes del Grid A continuación se introducen varios conceptos del grid, componentes, y términos más detallados. 1.6.1 Los Tipos de Recursos Un grid es una colección de máquinas, a veces llamado nodos, recursos, miembros, servidores, clientes, organizadores, y muchos otros. Todos ellos aportan grupos de recursos al grid. Algunos recursos pueden ser usados por todos los usuarios del grid, mientras que otros pueden tener restricciones específicas.

1.6. LOS CONCEPTOS Y COMPONENTES DEL GRID 25 1.6.2 Computación El recurso más común lo constituyen los ciclos de cómputo proporcionados por los procesadores de las máquinas en el grid. Los procesadores pueden variar en velocidad, arquitectura, plataforma de software, y otros factores asociados, como la memoria, almacenamiento, y conexión. Hay tres formas primarias para aprovechar los recursos de cómputo de un grid. El primero y más simple es usarlo para ejecutar una aplicación existente en una máquina disponible en el grid, en lugar de localmente. El segundo es para usar una aplicación diseñada para dividir su trabajo de tal manera que las partes separadas pueden ejecutarse en paralelo en los diferentes procesadores. El tercero es ejecutar una aplicación que precise ser ejecutada muchas veces en muchas máquinas diferentes en el grid. Escalabilidad es una medida de cómo se usan eficazmente los múltiples procesadores en un grid. Si los procesadores realizan dos veces una aplicación completa en la mitad del tiempo, entonces se dice que es absolutamente escalable. Sin embargo, puede haber límites en la escalabilidad cuando las aplicaciones sólo pueden ser divididas en un número limitado de partes ejecutables separamente, o si esas partes experimentan alguna otra contención para recursos de algún tipo de almacenamiento. 1.6.3 Almacenamiento El segundo recurso más común en un grid es el almacenamiento de los datos. Un grid que proporciona una visión integrada de almacenamiento de datos es a veces llamado un Grid de datos. Cada máquina en el grid normalmente mantiene alguna cantidad de almacenamiento para uso del grid, aveses de forma temporal.

26 CAPÍTULO 1. INTRODUCCIÓN El almacenamiento puede ser memoria unida al procesador o almacenamiento secundario, usando el disco rígido u otros medios de almacenamiento permanente. La memoria unida a un procesador normalmente tiene un muy rápido acceso pero es volátil. Sería mejor usarlo para guadar datos y servir como un almacenamiento temporal para las aplicaciones ejecutadas. El almacenamiento secundario en un grid puede usarse de manera interesante para aumentar la capacidad, la calidad, el compartir, y la fiabilidad de los datos. Muchos sistemas de grid usan sistemas de archivo de red montables tales como, Andrew File System (AFS), Network File System (NFS), Distributed File System (DFS), o el General Parallel File System (GPFS). Estos ofrecen diferentes grados de calidad, seguridad y fiabilidad. La capacidad puede ser incrementada usando el almacenamiento en múltiples máquinas con un sistema de archivo unificado. Cualquier archivo individual o base de datos pueden expandirse a varios dispositivos de almacenamiento y máquinas, eliminando las restricciones de máxima capacidad, a menudo impuestas por los sistemas de archivo de los sistemas operativos. Un sistema de archivo unificado también puede mantener un sólo espacio uniforme para el almacenamiento del grid. Esto facilita a los usuarios referenciar los datos que residen en el grid, sin considerar su ubicación exacta. De manera similar, el software especial de base de datos puede federar un conjunto de bases de datos individuales y archivos para formar bases de datos más amplias y más comprensivas. Como se observa en la fig. 1.12 de la pág. 27 el Data Striping significa escribir o leer sucesivos datos desde o para diferentes dispositivos físicos, solapando el acceso para un mejor rendimiento; asímismo, con técnicas adicionales se aumenta la fiabilidad. Los sistemas de archivo más avanzados en un grid pueden duplicar automáticamente conjuntos de datos, para proporcionar redundancia para mayor