Full text
“Sistema de informaci´on para mejorar las colaboraciones din´amicas en el Grid” por Erik Torres Serrano Requisito para la Obtenci´on del Grado de M´aster en Inform´atica por la Universidad Polit´ecnica de Valencia Departamento de Sistemas Inform´aticos y Computaci´on 17 de febrero de 2012 Director de la tesis: Dr. Germ´an Molt´o Mart´ınez y Dr. Ignacio Blanquer Espert
Resumen La principal ventaja de los Grid computacionales sobre otros paradigmas de computaci´on distribuida es su capacidad para coordinar el acceso a datos y recursos, a trav´es de diferentes dominios administrativos, en un entorno virtual interinstitucional. Para ello, el sistema de informaci´on juega un papel decisivo en la selecci´on de los recursos que mejor cumplen con los requerimientos de las aplicaciones Grid. Esta tesis de m´aster presenta un sistema de informaci´on para el Grid que proporciona servicios de comunicaci´on a grupos para aplicaciones Grid, de forma transparente y escalable, con el objetivo de soportar colaboraciones din´amicas que puedan ayudar a solucionar problemas que incluyan, solamente, a un subconjunto de los participantes de una organizaci´on virtual. En particular, el sistema presentado incluye un mecanismo de entrega de mensajes que permite a las aplicaciones seleccionar los servicios, antes de enviar sus datos a trav´es de sistema Grid de informaci´on. Este enfoque mejora substancialmente la protecci´on de los datos contra el acceso no autorizado, y evita la transmisi´on de mensajes innecesarios a trav´es de la red. El sistema propuesto se basa en la utilizaci´on de tecnolog´ıas XML y replicaci´on. Introduce varias caracter´ısticas avanzadas que, en su conjunto, no est´an soportadas por ning´un middleware Grid, como: m´ultiples puntos de acceso a la informaci´on, persistencia de los datos, soporte para consultas avanzadas con XQuery, y soporte para el est´andar industrial WS-Policy. El sistema Grid de informaci´on fue probado en condiciones reales de carga de trabajo, en una infraestructura Grid con 50 sitios. La escalabilidad fue evaluada en hasta 1000 mensajes, que pueden contener hasta 10KB de datos, cada uno, y una frecuencia de actualizaciones de 5 minutos. i
Agradecimientos Quiero empezar agradeciendo a mi esposa, a mis padres y a mi hermano. Agradecer especialmente a mis directores de tesis. Agradecer tambi´en especialmente a mis amigos. Agradecer a todos mis compa˜neros del GRyCAP. A todos vosotros, muchas gracias. ii
´ Indice general 1. Introducci´on 2 2. Trabajos relacionados 7 3. Arquitectura del sistema de informaci´on 9 3.1. Modelo de datos y soporte para grupos . . . . . . . . . . . . . . . . . . . 9 3.2. Soporte para consultas avanzadas utilizando XQuery y WS-Policy . . . . 12 3.3. Comunicaciones en el sistema Grid de informaci´on . . . . . . . . . . . . . 16 4. Caso de estudio 19 4.1. Descripci´on de los escenarios . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2. Detalles de implementaci´on . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.3. Resultados y discusi´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5. Conclusiones 27 A. Soporte de la tesis 29 Bibliograf´ıa 30 1
Cap´ıtulo 1. Introducci´on Los Grids computacionales est´an siendo de gran utilidad para hacer frente a grandes desaf´ıos en la investigaci´on cient´ıfica y en la ingenier´ıa. Por ejemplo, el Worldwide LHC Computing Grid (WLCG) [35] distribuye y analiza cientos de terabytes de datos, prestando servicios a una comunidad formada por varios miles de usuarios de todo el mundo. Para ello, han sido desarrolladas diferentes herramientas, que permiten a los usuarios ejecutar aplicaciones en recursos computacionales distribuidos en redes a nivel global, y proporcionan acceso seguro y transparente a almacenes de datos distribuidos. gLite [16], Globus Toolkit [13] y UNICORE [12] son ejemplos de middleware Grid que se distribuye bajo licencias open-source, y que est´an siendo ampliamente utilizados en varios campos de la ciencia y la ingenier´ıa. La principal ventaja del Grid sobre otros paradigmas de computaci´on distribuida es su capacidad para coordinar el acceso a datos y recursos, a trav´es de diferentes dominios administrativos, en un entorno virtual interinstitucional. El Grid soporta las organizaciones virtuales (VO, acr´onimo del ingl´es: virtual organization) que son creadas para abordar los problemas de un ´area particular. Por ejemplo, la Iniciativa Grid Nacional de Espa˜na (ES-NGI, acr´onimo del ingl´es: Spanish National Grid Initiative) [24] proporciona acceso a una infraestructura computacional distribuida y virtual, que utiliza tecnolog´ıas Grid para interconectar, aproximadamente, 20 centros de recursos computacionales, de toda Espa˜na. Una caracter´ıstica que distingue a la ES-NGI del resto de las iniciativas Grid nacionales, es un estrecho v´ınculo de colaboraci´on y cooperaci´on con la Iniciativa Grid Nacional de Portugal, en el marco del acuerdo IBERGRID. Esta infraestructura est´a conectada con la Iniciativa Grid Europea (EGI, acr´onimo del ingl´es: European Grid Infrastructure) [11]. Por ejemplo, la VO para aplicaciones de la vida (life.vo.ibergrid.eu) es una VO de IBERGRID que ha sido creada en el contexto de EGI para dar soporte a las actividades de investigaci´on de la comunidad de usuarios de ciencias de la vida. Esta VO posibilita la colaboraci´on internacional en imagen m´edica, bioinform´atica, y el descubrimiento de nuevos f´armacos. Sin embargo, las colaboraciones din´amicas constituyen un reto para los sistemas Grid de informaci´on, porque ´estos no cuentan con una forma simple para definir nuevos derechos de acceso para usuarios y servicios, que tengan un car´acter temporal, y sobre todo que hayan sido acordados por una parte (y no la totalidad) de los miembros de una 2
Cap´ıtulo 1. Introducci´on VO. Por ejemplo, en un sistema como VOMS [2], este problema ocurre cuando dos o m´as grupos de la VO acuerdan colaborar para cumplir un objetivo particular, creando entre s´ı un v´ınculo diferente al que mantienen con el resto de los miembros de la VO. Aunque se podr´ıan crear grupos tem´aticos, a nivel de la VO, para facilitar este tipo de “micro-colaboraciones”, este enfoque tiene la desventaja de que, con la excepci´on de los cat´alogos de ficheros, los nuevos grupos necesitan la aprobaci´on de un administrador de la VO, que adem´as tiene que reconfigurar la infraestructura para diferenciar entre los diferentes grupos. Como regla general, cualquier modificaci´on que se haga sobre los grupos que existen en el Grid, o de sus miembros, tiene que ser aprobada por un usuario (una persona) con el rol de administrador de la VO. Aun as´ı, esta es la forma m´as com´un de crear colaboraciones temporales, o de peque˜na escala, dentro de una VO (por ejemplo, biomed VO, IBERGRID VOs). De lo contrario, en el caso de no existir grupos dentro de la VO, todos los usuarios de la misma estar´an autorizados, por igual, a acceder a todos los recursos de la VO. Otra posibilidad para crear nuevas colaboraciones en el Grid podr´ıa ser adaptar las aplicaciones a la colaboraci´on. Sin embargo, este enfoque no es efectivo porque la gesti´on de aplicaciones Grid es una tarea compleja y tediosa. En el caso particular de las colaboraciones din´amicas, los dos enfoques descritos anteriormente son especialmente inefectivos, ya que ´estas tienen un tiempo de vida limitado, de unas pocas horas a d´ıas o semanas, a diferencia de las colaboraciones permanentes, que suelen persistir durante meses, sino a˜nos (por ejemplo, en el caso de colaboraciones creadas en el marco de proyectos de investigaci´on). Este problema tiene su m´axima dificultad en entornos seguros, como por ejemplo hospitales o entornos de aplicaciones empresariales, donde existen requerimientos adicionales con respecto a la privacidad o la confidencialidad de la informaci´on que se intercambia. Una posible soluci´on podr´ıa consistir en extender los servicios Grid con nuevos mecanismos para crear grupos din´amicos, sobre la base de las necesidades de varios miembros de una misma VO, de colaborar entre s´ı para cumplir una o varias tareas espec´ıficas, durante un tiempo limitado. Para poder desarrollar esta soluci´on es necesario investigar en el campo de los sistemas de gesti´on de informaci´on para el Grid, con el objetivo de identificar y contribuir a dise˜nar e implementar los mecanismos necesarios para hacer posible la gesti´on de colaboraciones din´amicas en el Grid. Los sistemas Grid de informaci´on son utilizados por las aplicaciones Grid para seleccionar los servicios que satisfaces sus necesidades. Por ejemplo, los sistemas Grid de informaci´on proporcionan a los servicios Grid de planificaci´on de trabajos la informaci´on necesaria para asignar los recursos necesarios para la ejecuci´on de trabajos en el Grid, y para seleccionar los elementos de almacenamiento que contienen los datos que necesitan los trabajos para ejecutarse, as´ı como el espacio de almacenamiento necesario para los resultados. La mayor´ıa de los sistemas de informaci´on para el Grid son proporcionados por sistemas jer´arquicos, principalmente por el MDS (acr´onimo del ingl´es: Monitoring and Discovery System) [33] y el BDII (acr´onimo del ingl´es: Berkeley Database Information Index) [4]. Sin embargo, este modelo tiene varias limitaciones debido a la poca flexibilidad que ofrece 3
Cap´ıtulo 1. Introducci´on para modelar nuevos tipos de relaciones. En particular, las fuertes relaciones que tienen los nodos en el MDS hacen que sea pr´acticamente imposible plantearse una estrategia para reorganizar la jerarqu´ıa din´amicamente. Por ejemplo, normalmente, un nodo del MDS tiene asociado un nodo padre, al que env´ıa toda la informaci´on que recibe de sus nodos hijos, y a la vez, renv´ıa a sus nodos hijos toda la informaci´on que proviene del nodo padre. Este esquema hace que sea muy dif´ıcil establecer una relaci´on 1 : N, donde un nodo env´ıa informaci´on que va destinada exclusivamente a un subconjunto de nodos del MDS. Este tipo de relaciones son muy importantes para facilitar la comunicaci´on entre grupos din´amicos y otros tipos de colaboraciones. La motivaci´on para esta tesis de m´aster viene de nuestros trabajos previos para adaptar aplicaciones a las infraestructuras Grid. En estos trabajos observamos que, para algunas aplicaciones, la informaci´on de estado de un servicio Grid particular, que est´a almacenada localmente en un sitio Grid, es relevante tambi´en para otros sitios Grid. Desde la perspectiva Grid, un sitio agrupa varios recursos bajo un ´unico dominio administrativo, exponiendo una interfaz com´un a todos ellos. De esta forma, cada sitio puede comprender a varios centros de recursos, y a su vez, cada centro suele disponer de varios recursos de c´omputo, por ejemplo, cl´usteres de ordenadores. Por ejemplo, EGI es la infraestructura Grid para e-Ciencia, en producci´on, de mayor tama˜no en el mundo, con m´as de 340 centros de recursos en 51 pa´ıses, agrupados aproximadamente en 230 sitios.1 Previamente a la realizaci´on de esta tesis de m´aster se realiz´o un estudio de las aplicaciones desplegadas en IBERGRID, centrado en TRENCADIS [6] como aplicaci´on piloto, en el campo de la imagen m´edica. TRENCADIS proporciona un servicio seguro para el almacenamiento y acceso a im´agenes m´edicas distribuidas en almacenes compartidos. Adem´as de TRENCADIS, se estudiaron otras aplicaciones Grid que pudiesen beneficiarse de un entorno con soporte para colaboraciones din´amicas. Otras aplicaciones identificadas incluyen: meta-planificaci´on de la ejecuci´on de trabajos en el Grid, estudios farmacocin´eticos, y descubrimiento de nuevos f´armacos. Estas aplicaciones fueron estudiadas con el objetivo de caracterizar sus patrones de carga, as´ı como el n´umero de sitios Grid involucrados. Con todo ello se cre´o un modelo de aplicaci´on para abordar el estudio de las colaboraciones din´amicas en el Grid. Esta tesis de m´aster presenta un nuevo sistema de informaci´on para el Grid que proporciona servicios de comunicaci´on a grupos, de forma transparente y escalable, para aplicaciones Grid. Para ello, el sistema permite que las aplicaciones puedan seleccionar a cu´ales servicios de informaci´on van a dirigir sus solicitudes. Este enfoque tiene dos ventajas fundamentales: (i) desde el punto de vista de la seguridad, la protecci´on de la informaci´on contra el acceso no autorizado puede ser mejorada significativamente, si se utilizan servicios de informaci´on confiables; y (ii) desde el punto de vista de las prestaciones, evita la transmisi´on de informaci´on innecesaria por la red. Hasta donde conocemos, no existe otro sistema de informaci´on para el Grid que tenga estas caracter´ısticas. 1Infraestructura de EGI (Septiembre de 2011), http://www.egi.eu/infrastructure 4
Cap´ıtulo 1. Introducci´on Un ejemplo pr´actico de aplicaci´on del sistema de informaci´on propuesto en esta tesis de m´aster podr´ıa ser un grupo de centros diferentes, donde cada uno de los centros es responsable de aportar un subconjunto de datos al grupo, pero a la vez, cada centro necesita el conjunto completo de los datos, con el objetivo de analizar y comprender la informaci´on que contiene. Por ejemplo, el proyecto CVIMO [5] proporcion´o una e-infraestructura para la investigaci´on en salud que utiliza un enfoque Grid para compartir im´agenes oncol´ogicas entre varios hospitales, de forma segura. En este contexto, los m´edicos de diferentes hospitales pueden colaborar entre s´ı, para mejorar el diagn´ostico y tratamiento de enfermedades. Para ello, se crean colaboraciones din´amicas entre dos o m´as hospitales, con el objetivo de analizar aquellos casos que sean dif´ıciles de diagnosticar. En estas colaboraciones, el hospital que es responsable por el tratamiento del paciente comparte la informaci´on necesaria con el resto de los hospitales que participan en la colaboraci´on. De forma similar, los hospitales compartir´an sus hallazgos con el hospital responsable. Para que todo ello sea posible, es necesario que se establezca un contexto seguro, que garantice la confidencialidad de los datos del paciente. Adem´as, en muchas ocasiones, los resultados estar´an sujetos a restricciones de propiedad intelectual. En este escenario, el hospital responsable seleccionar´a un almac´en Grid que est´e ubicado en un dominio de administraci´on seguro, y almacenar´a la informaci´on del paciente utilizando una t´ecnica de cifrado fuerte para proteger los datos. A continuaci´on, el hospital responsable distribuir´a la clave para acceder a los datos al resto de los hospitales que participan en la colaboraci´on, a trav´es del sistema de informaci´on. Este enfoque garantiza que solamente las organizaciones que reciben las claves de cifrado, a trav´es del sistema de informaci´on, puedan acceder a los datos, en contraste con los enfoques tradicionales, donde cualquier usuario con un certificado proxy v´alido puede acceder a los datos gestionados por el sistema de informaci´on. El sistema de informaci´on presentado en esta tesis de m´aster da soporte para este escenario, sin necesidad de reconfigurar los servicios Grid, ni modificar los grupos de usuarios y permisos de la VO. Otro ejemplo, en el mismo dominio de aplicaci´on, es la red CIBERSAM [8] para la investigaci´on en enfermedades psiqui´atricas. Esta red agrupa a un amplio n´umero de grupos de investigaci´on que colaboran en grupos tem´aticos para la realizaci´on de proyectos relacionados con la investigaci´on de este tipo de enfermedades. Para ello, comparten informaci´on gen´etica, im´agenes e historias cl´ınicas de pacientes entre los miembros de cada grupo. Los dos ejemplos descritos anteriormente se pueden resumir en un caso de uso donde el sistema Grid de informaci´on es utilizado para implementar un servicio de cat´alogo que permite que los servicios Grid publiquen sus capacidades (est´aticas, como la seguridad, y din´amicas, como las prestaciones), y que las aplicaciones especifiquen sus requerimientos. Este caso de uso tiene como objetivo facilitar la creaci´on de grupos din´amicos dentro de la VO, para dar soporte a colaboraciones m´as flexibles entre las instituciones que participan en un sistema Grid aut´onomo. Adicionalmente, el sistema Grid de informaci´on presentado en esta tesis de m´aster soporta WS-Policy [40], con el objetivo de garantizar la interoperabilidad con los sistemas 5
Cap´ıtulo 1. Introducci´on de servicios Web m´as extendidos, como Apache Axis2 [21] y .NET Framework [37], que tambi´en soportan este est´andar. El sistema Grid de informaci´on propuesto tambi´en proporciona almacenamiento persistente de la informaci´on. Esta caracter´ıstica no est´a presente en otros sistemas, como por ejemplo el MDS de Globus Toolkit. El resto de esta tesis de m´aster est´a estructurada de la siguiente forma. El cap´ıtulo 2 presenta un breve resumen del estado del arte de los sistemas de informaci´on para el Grid. El cap´ıtulo 3presenta un servicio de informaci´on para el Grid que proporciona acceso a colecciones de documentos XML distribuidos sobre los miembros de un grupo, utilizando para ello, una representaci´on nativa de XML que soporta consultas avanzadas. El cap´ıtulo 4presenta un caso de estudio que revela los beneficios y limitaciones asociados al sistema Grid de informaci´on presentado en esta tesis de m´aster. Finalmente, el cap´ıtulo 5presenta las conclusiones de esta tesis, e introduce las l´ıneas de trabajos futuros. 6
Cap´ıtulo 3. Arquitectura del sistema de informaci´on WS-Policy XML Schema Create a Policy Assertion Include in a WS-Policy document XML Schema Store the document XML Collection Search XQuery XML Subcollection WS-Policy Framework Begin End Client Service Intersect Figura 3.3.: Flujo de la informaci´on dentro del sistema Grid de informaci´on. Comparativamente, las posibilidades de b´usqueda que permite este modelo son mucho mejores que las que proporciona el modelo LDAP. Por ejemplo, toda la informaci´on que describe las capacidades (por ejemplo, seguridad, prestaciones, estado) de un recurso computacional o elemento de almacenamiento del Grid puede ser expresada mediante documentos XML especializados, y puede ser incluida en un ´unico documento WS-Policy, para su transporte y almacenamiento en el sistema Grid de informaci´on. Al mismo tiempo, el sistema Grid de informaci´on utiliza una copia diferente del mismo documento WS-Policy, para cada grupo al que pertenezca el sujeto al que se refiere la informaci´on. La XMLDB gestiona internamente los grupos a trav´es de colecciones de documentos XML. As´ı, en el caso particular de las colaboraciones din´amicas, donde cada colecci´on representa una colaboraci´on espec´ıfica, y los documentos almacenados en la colecci´on representan a los sujetos involucrados en la colaboraci´on, el mismo sujeto puede participar en diferentes colaboraciones. Incluso, en este caso es posible que un mismo sujeto tenga diferentes capacidades en diferentes grupos, para lo cual s´olo tiene que presentar diferentes documentos WS-Policy para anunciar sus capacidades, en cada una de las colaboraciones en las que participa. La Figura 3.3 describe el flujo de la informaci´on dentro del sistema Grid de informaci´on. El lado izquierdo de la figura muestra a un servicio o aplicaci´on que crea uno o m´as documentos XML, con el objetivo de describir las capacidades de un recurso. La estructura de cada documento est´a especificada en un esquema XML. Estos documentos son empaquetados en un documento WS-Policy, con el objetivo de almacenarlos en una colecci´on. La misma parte de la figura muestra a un cliente que describe una serie de requerimientos utilizando varios documentos XML, y los almacena en un documento WS-Policy. El sistema Grid de informaci´on soporta operaciones de b´usqueda basadas en esta informaci´on. La Figura 3.4 muestra un ejemplo de consulta que utiliza XQuery. La consulta mostrada en la figura selecciona todos los documentos XML, de una colecci´on espec´ıfica, que coincidan con los requerimientos del cliente. Para ello, la consulta selecciona los documentos 13
Cap´ıtulo 3. Arquitectura del sistema de informaci´on for $item in collection('container_group1.xml')/wsp:Policy/ wsp:ExactlyOne/wsp:All/qos:jobExecutionGuarantee where $item/qos:endpoint/qos:localpart = $localpart and xs:long($item/qos:responseInMilliseconds) <= xs:long($responseInMilliseconds) and xs:float($item/qos:availabilityInPercent) >= xs:float($availabilityInPercent) return $item Figura 3.4.: Expresi´on XQuery que selecciona los documentos XML que se ajustan al esquema XML jobExecutionGuarantee, utilizando el endpoint de los recursos, y los tiempos de respuesta y las disponibilidades anunciados por los recursos. WS-Policy que incluyan, al menos, un documento XML que se ajuste al esquema en el cual han sido expresados los requerimientos (jobExecutionGuarantee, para este ejemplo en particular). De esta forma, la b´usqueda se limita a los sujetos de grupo que han definido todos los atributos solicitados por el cliente. Adicionalmente, el ejemplo muestra c´omo se especifican los par´ametros para los atributos, de forma tal que los atributos tengan que cumplir con unos criterios, en particular. Por ejemplo, la consulta mostrada en la figura especifica que no es suficiente con que un sujeto haya definido todos los atributos solicitados por el cliente, sino que adem´as el sujeto tiene que haber anunciado un tiempo de respuesta (responseInMilliseconds) menor a un valor m´aximo dado, y una disponibilidad (availabilityInPercent) por encima de un valor m´ınimo. Este tipo de consultas permite al sistema Grid de informaci´on extraer documentos XML directamente de la base de datos, en contraste con el segundo enfoque que ser´a analizado m´as adelante en esta secci´on, y que consiste en extraer documentos WS-Policy completos de la base de datos, y luego obtener los documentos XML de inter´es, a partir de los mismos. En particular, las consultas que extraen directamente documentos XML (o fragmentos de ellos) de la base de datos, son ´utiles cuando se puede conocer la identidad del sujeto del documento o fragmento extra´ıdo de la base de datos. Por ejemplo, en el caso particular del ejemplo descrito en esta secci´on, el elemento endpoint del esquema XML identifica al recurso al que se refiere la informaci´on. La Figura 3.5 muestra varias posibles salidas basadas en la consulta de la Figura 3.4, para diferentes documentos de entrada diferentes. Este enfoque tiene la ventaja de la simplicidad, porque los documentos de salida no necesitan ning´un procesamiento adicional, y pueden ser utilizados directamente con otros servicios (por ejemplo, es posible incluir en el documento WS-Policy, y luego extraer, documentos XML que puedan ser utilizados por los servicios Grid de metaplanificaci´on). Adicionalmente, el sistema Grid de informaci´on soporta b´usquedas basadas en el sistema de WS-Policy. En particular, la operaci´on de intercepci´on definida en la especificaci´on de WS-Policy proporciona a los desarrolladores con los medios necesarios para comparar dos pol´ıticas diferentes, y encontrar aquellas alternativas que son soportadas, en com´un, 14
Cap´ıtulo 3. Arquitectura del sistema de informaci´on Advertise (service) Example A1 <wsp:ExactlyOne> <wsp:All> <qos:jobExecutionGuarantee> <qos:responseInMilliseconds> 200 </qos:responseInMilliseconds> <qos:availabilityInPercent> 98.0 </qos:availabilityInPercent> </qos:jobExecutionGuarantee> </wsp:All> <wsp:All/> </wsp:ExactlyOne> <wsp:ExactlyOne> <wsp:All> <qos:jobExecutionGuarantee> <qos:responseInMilliseconds> 300 </qos:responseInMilliseconds> </qos:jobExecutionGuarantee> </wsp:All> </wsp:ExactlyOne> Requirements (client) Example R2 <wsp:ExactlyOne> <wsp:All> <qos:jobExecutionGuarantee> <qos:responseInMilliseconds> 400 </qos:responseInMilliseconds> </qos:jobExecutionGuarantee> </wsp:All> </wsp:ExactlyOne> Advertise (service) Example A2 <wsp:ExactlyOne> <wsp:All> <qos:jobExecutionGuarantee> <qos:responseInMilliseconds> 500 </qos:responseInMilliseconds> <qos:availabilityInPercent> 90.0 </qos:availabilityInPercent> </qos:jobExecutionGuarantee> </wsp:All> </wsp:ExactlyOne> Requirements (client) Example R1 match match match Figura 3.5.: Posibles salidas basadas en la consulta mostrada en la Figura 3.4, para diferentes documentos de entrada. por las dos pol´ıticas. Por ejemplo, el resultado de interceptar el documento que anuncia las capacidades del recurso mostrado en la Figura 3.5 con el documento que especifica los requerimientos del cliente coincide con el resultado mostrado en la figura. Este enfoque permite sobrescribir la implementaci´on de la operaci´on de intersecci´on en el sistema Grid de informaci´on, con el objetivo de adaptarla un caso de uso particular. Por ejemplo, este enfoque podr´ıa ser utilizado para implementar un cat´alogo que proporcione acceso eficiente a la informaci´on estructurada en un esquema que se conoce de antemano, simulando la forma en que se implementa el BDII, a trav´es del esquema GLUE. Por otra parte, en el caso de utilizar WS-Policy para buscar la base de datos, es necesario extraer los documentos de la base de datos antes de ejecutar la consulta. Por ejemplo, esto podr´ıa hacerse utilizando una variaci´on de la consulta mostrada en la Figura 3.4 para seleccionar documentos WS-Policy, en lugar de documentos XML. Sin embargo, este paso adicional podr´ıa llegar a tener un efecto negativo en el tiempo de procesamiento del XML, afectando las prestaciones totales del sistema. 15
Cap´ıtulo 3. Arquitectura del sistema de informaci´on 3.3. Comunicaciones en el sistema Grid de informaci´on La Figura 3.1 muestra c´omo los componentes del sistema Grid de informaci´on cooperan para almacenar y actualizar la informaci´on en el Grid. Cada r´eplica del servicio consiste en un servicio Grid asociado a una XMLDB local. El cap´ıtulo 4presenta un caso de estudio que est´a basado en una implementaci´on que utiliza la especificaci´on de WSRF (acr´onimo del ingl´es: Web Services Resource Framework) [31]. Globus Toolkit 4 (GT4) [36] proporciona un conjunto de herramientas para construir Grids que se ajusten a la OGSA (acr´onimo del ingl´es: Open Grid Services Architecture) [29]. OGSA describe una arquitectura para Grid computacionales orientados a servicios, que est´a basada en las tecnolog´ıas de servicios Web. A la vez, WSRF es una infraestructura ampliamente utilizada para la OGSA, que ha sido implementada completamente en GT4. WSRF proporciona soporte para la modelaci´on y despliegue de recursos con estado, utilizando servicios Web. Un recurso con estado mantiene su estado entre diferentes llamadas a los diferentes m´etodos que proporciona. Sin embargo, el est´andar de servicios Web define expl´ıcitamente que ´estos carecen de estado. Para provisionar al servicio Web de estado, WSRF define el WS-Resource, una combinaci´on de servicio Web y un contenedor de datos que almacena la informaci´on relacionada con el estado del servicio, con el objetivo de mantener la compatibilidad con la definici´on est´andar de servicio Web. Los autores de [36] proporcionan m´as detalles acerca del desarrollo de servicios Grid con GT4. Como el marco de desarrollo de servicios Grid es muy complejo, hay una iniciativa en marcha para portar los servicios de GT4 a herramientas de desarrollo de servicios Web m´as modernas [38]. Adem´as de WSRF, hay otras especificaciones que han sido introducidas para definir interacciones con estado entre servicios. Por ejemplo, la especificaci´on de WS-Context [28] proporciona un marco para compartir informaci´on de estado entre varios servicios distribuidos, que utiliza un repositorio de metadatos que es externo a los servicios que participan en el intercambio de informaci´on. Los autores de [1] utilizan un enfoque similar para gestionar informaci´on din´amica en Grids computacionales. Sin embargo, WS-Context tiene varias limitaciones que no son triviales de superar [32]. En particular, el Context Manager es un componente proporcionado por el WS-Context para acceder y almacenar informaci´on de estado. Este componente proporciona un peque˜no conjunto de operaciones b´asicas que tienen que ser extendidas para soportar operaciones m´as complejas, que son necesarias para pr´acticamente cualquier servicio que se quiera implementar. Adem´as, tambi´en es necesario disponer de un modelo de datos para mantener la informaci´on de estado en un almac´en persistente. 16
Cap´ıtulo 3. Arquitectura del sistema de informaci´on Parallel State Update (1) State Modification User Grid Service Replica 0 Grid Service Replica 1 Grid Service Replica 2 State Update State Update Notification GS-Lock Ring Topology Grid Service Replica 0 Grid Service Replica 1 Grid Service Replica 2 Grid Service Replica 3 Grid Service Replica 4 Leaf-to-Root Complete Binary Tree Topology Notification Notifications Parallel State Update (1) State Modification Figura 3.6.: Diagrama de interacci´on de la biblioteca software de replicaci´on de servicios Grid. La parte izquierda de la figura muestra una topolog´ıa de anillo, mientras que la parte derecha muestra un ´arbol binario completo. En contraste, WSRF modela el estado como una propiedad inherente del endpoint. En consecuencia, el servicio es responsable de implementar la l´ogica necesaria para almacenar y acceder a la informaci´on de estado. Precisamente, esta caracter´ıstica de WSRF ha sido utilizada en esta tesis de m´aster para desarrollar un sistema Grid de informaci´on que se basa en el servicio Grid, y no en la infraestructura subyacente (aunque tiene algunas dependencias con la infraestructura). Una de las ventajas principales de este enfoque es que puede ser aplicado a cualquier Grid que utilice WSRF, de una forma muy simple. Para ello, los desarrolladores tienen que modificar solamente el servicio que encapsula a la aplicaci´on, mientras que todos los dem´as servicios, como el servicio de ejecuci´on de trabajos y la infraestructura de seguridad, permanecen intactos. En particular, la implementaci´on del caso de estudio presentado en el cap´ıtulo 4, utiliza un servicio Grid replicado, que agrupa varios WS-Resources para gestionar la XMLDB distribuida. Cada WS-Resource gestiona una colecci´on de documentos asociada con una colaboraci´on espec´ıfica. El servicio replicado actualiza los documentos cada vez que se aplica un cambio sobre la informaci´on de la colaboraci´on. Para ello, selecciona la colecci´on que corresponde al grupo y, cuando es necesario, el documento WS-Policy que corresponde con el sujeto, para ejecutar las operaciones de actualizaci´on. Las operaciones son transmitidas por la red, utilizando el mecanismo m´as efectivo. Por ejemplo, en la mayor´ıa de los casos, las actualizaciones se transmiten en forma de sentencias XQuery, para evitar tener que enviar el documento WS-Policy completo, con el objetivo de economizar ancho de banda. El sistema Grid de informaci´on se actualiza a intervalos regulares. Las operaciones de escritura que se aplican sobre una ´unica r´eplica del sistema son bloqueadas por el sistema hasta el pr´oximo evento de actualizaci´on planificado. Cada r´eplica que participa en un grupo puede modificar la informaci´on de cualquier sujeto del grupo. En particular, la implementaci´on basada en WSRF utiliza una implementaci´on de una biblioteca software de replicaci´on, introducida por los autores de [27], para propagar las actualizaciones al sistema Grid de informaci´on. Esta biblioteca proporciona a los servicios 17
Cap´ıtulo 3. Arquitectura del sistema de informaci´on Grid basados en WSRF con mecanismos para la replicaci´on autom´atica y transparente de WS-Resources. Opera en un esquema de replicaci´on pasivo con varios m´asteres, en el cual cualquier r´eplica puede procesar una solicitud, y el estado de un WS-Resource modificado es propagado al resto de las r´eplicas. Adicionalmente, soporta un mecanismo de replicaci´on que utiliza una estructura jer´arquica para organizar las comunicaciones en el Grid. Este enfoque hab´ıa sido utilizado previamente por el MDS y el BDII. La biblioteca de replicaci´on puede utilizar una topolog´ıa de anillo, como se muestra en la parte izquierda de la Figura 3.6, o una topolog´ıa de ´arbol binario completo, como se muestra en la parte derecha de la figura. Un ´arbol binario completo es un ´arbol binario donde cada nivel, excepto el ´ultimo, est´a completo, y los nodos del ´ultimo nivel est´an acumulados en la parte izquierda del ´arbol. Esta topolog´ıa permite la propagaci´on concurrente de actualizaciones a trav´es de las ramas del ´arbol. Como un ´arbol binario siempre est´a perfectamente balanceado, el proceso de actualizar la informaci´on de estado en esta topolog´ıa tiene un coste temporal de θ(log2(N)), en un ´arbol de Nr´eplicas, siendo significativamente m´as r´apido que la topolog´ıa basada en anillo. Los autores de [27] proporcionan detalles adicionales acerca de los algoritmos empleados, los protocolos para unirse al grupo de r´eplicas, las capacidades de tolerancia a fallos de la biblioteca, y la evaluaci´on de las prestaciones de la misma. Adicionalmente, el sistema Grid de informaci´on define un mecanismo que no utiliza comunicaciones para descartar colaboraciones. Este mecanismo obliga a las aplicaciones a registrar un tiempo de vida para las colaboraciones. Durante el tiempo de vida de la colaboraci´on, las aplicaciones son responsables de actualizar el sistema Grid de informaci´on. Cada r´eplica del servicio Grid de informaci´on descartar´a, individualmente, aquellas colaboraciones para las cuales no haya recibido actualizaciones, al finalizar el tiempo de vida de la misma. En particular, la implementaci´on basada en WSRF utiliza la especificaci´on de WSResourceLifetime para capturar el evento lanzado por el contenedor de servicios, y que planifica la destrucci´on del WS-Resource que gestiona la base de datos. En este enfoque, las aplicaciones son responsables de actualizar el WS-ResourceLifetime. 18
Cap´ıtulo 4. Caso de estudio Este cap´ıtulo presenta tres experimentos que fueron realizados para estudiar el sistema Grid de informaci´on en un entorno Grid. El estudio se centr´o en analizar el comportamiento del sistema de informaci´on cuando la carga de trabajo se incrementa como resultado de un incremento de las actividades de colaboraci´on, lo mismo si aumenta el n´umero de colaboraciones, aumenta el tama˜no de los mensajes transmitidos por la red, o si las actualizaciones ocurren con mayor frecuencia. El objetivo del estudio es proporcionar una idea de las limitaciones del sistema Grid de informaci´on, y en consecuencia, identificar las aplicaciones que se podr´ıan beneficiar del enfoque presentado en esta tesis de m´aster. 4.1. Descripci´on de los escenarios Las infraestructuras Grid han sido utilizadas para dar soporte a la investigaci´on, principalmente en el contexto de VOs de larga duraci´on. Sin embargo, en contraste con este modelo, existe una tendencia a establecer colaboraciones din´amicas sobre la base de intereses transitorios, que tienen un tiempo limitado, usualmente asociados con alg´un hito, como puede ser el cumplimiento de una tarea determinada, y que suele estar en el orden de horas, d´ıas, semanas o unos pocos meses. Esta tesis de m´aster se centra en el estudio de este tipo de colaboraciones, que hasta ahora hab´ıan recibido menos atenci´on. Para ello, han sido seleccionados tres escenarios diferentes, donde ya se han introducido, o se planea introducir colaboraciones din´amicas. Creaci´on y gesti´on de subgrupos en una VO. En este escenario, se crean din´amicamente nuevos perfiles de pol´ıtica dentro de una VO, y son asignados a diferentes grupos de usuarios. Con ello, se espera mejorar la estructura de una VO tradicional, donde los usuarios y servicios son asignados a grupos en base a caracter´ısticas est´aticas (por ejemplo, los grupos en IBERGRID se asignan en base al pa´ıs y la aplicaci´on: /VO/Pa´ıs/Aplicaci´on). Para medir el impacto que tiene la introducci´on de colaboraciones din´amicas en la VO, se crear´an grupos con diferentes prioridades, con el objetivo de estudiar los resultados que tiene en el completamiento de las tareas, y en la eficiencia de utilizaci´on de los recursos del Grid. Los resultados 19
Cap´ıtulo 4. Caso de estudio de este estudio tambi´en se pueden aplicar al caso de VOs donde los grupos se asignan en base a proyectos (por ejemplo, los grupos en la VO biomed, de EGI: (/biomed/Proyecto). En este caso particular, se podr´ıa utilizar grupos din´amicos para controlar el acceso a diferentes partes de la informaci´on, dentro del mismo proyecto. Habilitaci´on de contextos seguros para el intercambio de informaci´on privada. En este escenario, se almacena informaci´on privada en almacenes Grid cifrados. Las claves para descifrar la informaci´on se distribuyen sobre, al menos, tres dominios de administraci´on diferentes. Con ello, se espera mejorar la gesti´on de claves en TRENCADIS, automatizando el proceso de cifrado y distribuci´on de las claves en los estudios de investigaci´on cl´ınica. En la actualidad, la responsabilidad de asegurar esta informaci´on recae en los radi´ologos que utilizan el Grid, que se encargan de seleccionar los almacenes de clave seguros donde almacenar las claves. Asignaci´on de recursos computacionales para la ejecuci´on de trabajos. Una caracter´ıstica distintiva de las colaboraciones din´amicas es la demanda de recursos para realizar las tareas asociadas con la colaboraci´on, dentro de los l´ımites de tiempo que requiere la misma. En este escenario, las aplicaciones diferencian entre los diferentes recursos disponibles, por sus caracter´ısticas (por ejemplo, por las prestaciones), con el objetivo de aumentar el rendimiento en la ejecuci´on de trabajos. 4.2. Detalles de implementaci´on En particular, esta tesis de m´aster utiliza Oracle Berkeley DB [34] para implementar la XMLDB. Esta biblioteca software proporciona una base de datos embebida que puede almacenar registros en la memoria, con tiempos de acceso m´as r´apidos que los sistemas de bases de datos tradicionales, basados en el sistema de archivos. Adicionalmente, Oracle Berkeley DB soporta el almacenamiento, an´alisis y procesamiento de documentos XML, de forma nativa, a trav´es del lenguaje de consultas XQuery. Se utiliz´o Java [17] como lenguaje de programaci´on y plataforma de desarrollo, para desarrollar el sistema Grid de informaci´on. La informaci´on de estado se almacen´o en la XMLDB, en la memoria del servidor. El sistema Grid de informaci´on se ocupa de crear, peri´odicamente, copias de respaldo de esta informaci´on, con el objetivo de asegurar la persistencia de la XMLDB. La frecuencia de las salvas depende de la carga de trabajo del sistema. Inicialmente, se respaldan todas las operaciones en el sistema de archivos, pero el sistema puede adoptar varias medidas para mejorar sus prestaciones, tales como retrasar la operaci´on de escritura, o acumular varias operaciones de escritura, para reducir el acceso al sistema de archivos. Estas medidas tienen car´acter temporal, y son actualizadas o eliminadas por el sistema, en el momento que dejan de ser efectivas. 20
Cap´ıtulo 4. Caso de estudio Client Proxy XMLDB Serialization Policy Scheduler Replication Other 0 20 40 35.36 s (47.4%) 1.28 s (1.7%) 0.70 s (0.9%) 0.41 s (0.5%) 0.47 s (0.6%) 35.43 s (47.5%) 0.90 s (1.2%) Figura 4.1.: Tiempo consumido por las operaciones principales del sistema Grid de informaci´on, en las etapas iniciales de la colaboraci´on. Durante el proceso de implementaci´on, se realiz´o un an´alisis de prestaciones, con el objetivo de optimizar el sistema. Para ello, se utiliz´o VisualVM [20], un perfilador que permite instrumentar el c´odigo de las aplicaciones Java con instrucciones adicionales que realizan mediciones del tiempo que tarda la ejecuci´on de las instrucciones principales, as´ı como la transmisi´on y recepci´on de datos, a trav´es de la red. Estos tiempos se refieren exclusivamente a la operaci´on que est´a siendo estudiada (no incluye el tiempo consumido por otros m´etodos llamados desde la operaci´on), y agrupa los tiempos de ejecuci´on en modo usuario (a nivel de aplicaci´on) y en modo privilegiado (a nivel del sistema operativo). La instrumentaci´on fue ajustada para tener un impacto m´ınimo sobre las prestaciones totales del sistema. La Figura 4.1 muestra los resultados del an´alisis de prestaciones. El gr´afico muestra el tiempo empleado en subscribir 16 r´eplicas con el sistema Grid de informaci´on, y realizar la sincronizaci´on inicial de las r´eplicas. Este tiempo fue medido en la ra´ız del ´arbol de replicaci´on. El gr´afico muestra que el tiempo de ejecuci´on de las operaciones en el sistema Grid de informaci´on est´a dominado por el tiempo necesario para replicar la informaci´on (47.5 %) y ejecutar las operaciones remotas en el cliente proxy (47.4 %). Sin embargo, una parte considerable del tiempo que se consume en las etapas iniciales de la colaboraci´on (aproximadamente el 93 y el 89 % del tiempo consumido en el cliente proxy y en la replicaci´on, respectivamente), se utiliza para crear nuevos WS-Resources en las hojas del ´arbol de replicaci´on. En general, estas operaciones consumen, como m´ınimo, el 61 % del tiempo total que emplea el sistema Grid de informaci´on, en cualquiera de las fases de la colaboraci´on (inicializaci´on, puesta en archa, modificaci´on y terminaci´on), excepto cuando no hay colaboraciones activas, porque en ese caso el sistema Grid de informaci´on no consume tiempo. De esta forma, el tiempo que consumen otras operaciones, como almacenar la informaci´on en la XMLDB, serializar los datos en XML, procesar los documentos WS-Policy, ejecutar el planificador interno, es pr´acticamente despreciable en comparaci´on con el tiempo necesario para que la informaci´on de estado viaje por la red hasta las r´eplicas m´as alejadas. Por esta raz´on, la evaluaci´on del sistema se centr´o en las operaciones que modifican el estado de los servicios. Estas operaciones utilizan la red para replicar el estado en los nodos remotos del sistema Grid de informaci´on. 21
Cap´ıtulo 4. Caso de estudio Desde el punto de vista del tiempo de respuesta, cada operaci´on que modifique el estado de un servicio tendr´a asociada un retardo, causada por la replicaci´on del estado en las r´eplicas que participan en la operaci´on (los miembros del grupo a los cuales va dirigida la informaci´on). Este retardo ser´a tan corto como el tiempo necesario para propagar la informaci´on de estado a la r´eplica m´as lejana de la red, midiendo la distancia de red como el tiempo de ida y vuelta de un paquete, entre dos nodos. De forma similar, el retardo puede ser tan grande como el tiempo de espera m´aximo definido para las operaciones del sistema Grid de informaci´on. En particular, este trabajo utiliza un tiempo de espera de 30 segundos. Por otra parte, algunas caracter´ısticas particulares de la aplicaci´on pueden llegar a tener un impacto negativo en la escalabilidad del sistema Grid de informaci´on. Por ejemplo, algunas de las aplicaciones mencionadas en la introducci´on de esta tesis de m´aster env´ıan mensajes peque˜nos (del orden de 1KB), con intervalos en el orden de 1 minuto. En contraste, otras aplicaciones env´ıan mensajes medianos (aproximadamente 7KB), pero con intervalos de tiempo m´as relajados, en el orden de 5 minutos. Los experimentos E1, E2 y E3 de la secci´on 4.3 fueron dise˜nados para estudiar el efecto de estas caracter´ısticas en la escalabilidad del sistema Grid de informaci´on. De ah´ı, que estos experimentos midan el efecto de varios factores, como el tama˜no de la informaci´on de estado, el n´umero de mensajes transmitidos por la red, y la frecuencia con la que una aplicaci´on cambia de estado. El intervalo estudiado para estos factores est´a en los l´ımites usuales de los valores determinados experimentalmente para las aplicaciones estudiadas. Para el estudio se simularon varios sitios Grid, utilizando un simulador desarrollado en un trabajo previo [39]. El objetivo de la simulaci´on consiste en reproducir las condiciones de conectividad y tr´afico de fondo de una red, que son necesarias para evaluar el comportamiento del sistema Grid de informaci´on en escenarios realistas. Para ello, se simul´o una red de gran dimensi´on con varios dominios IP. Tanto las conexiones internas, como las que conectan diferentes dominios fueron simuladas con diferentes configuraciones (en particular, ancho de banda y latencia). Los sitios Grid simulados fueron ubicados despu´es de obtener el modelo de la red, sustituyendo aproximadamente el 3.2 % de los servidores del modelo inicial por servicios Grid. De esta forma, se consigui´o simular 50 sitios Grid, en un entorno muy similar a Internet. Este n´umero de sitios representa, aproximadamente, la quinta parte de una infraestructura Grid de gran dimensi´on, como EGI, que gestiona una ´unica VO. Se simul´o un tr´afico de fondo en la red semejante al que se registra en Internet, simulando tambi´en problemas de conectividad, congesti´on, etc. Por ejemplo, los enlaces de la red simulada pueden sufrir desconexiones, y los nodos (clientes, servidores y enrutadores) experimentan retraso y p´erdida de paquetes. Se construy´o un patr´on en el tiempo de las condiciones de red, a partir de una instant´anea de 10 minutos de la simulaci´on. El sistema Grid de informaci´on utiliza este patr´on para simular un nuevo estado de la red, cada vez que recibe una solicitud o una respuesta, durante el proceso de evaluaci´on. 22
Ap´endice A. Soporte de la tesis El trabajo realizado en la presente tesis de m´aster ha dado lugar a la siguiente publicaci´on: Erik Torres, Germ´an Molt´o, Dami`a Segrelles, Ignacio Blanquer and Vicente Hern´andez: “A replicated information system to enable dynamic collaborations in the Grid”, Concurrency Computat.: Pract. Exper. (2012), DOI: 10.1002/cpe.1915 29
Bibliograf´ıa [1] M. S. Aktas, G. C. Fox, and M. Pierce. Managing dynamic metadata as context. In The 2005 Istanbul International Computational Science and Engineering Conference ICCSE2005 Istanbul Turkey. IEEE, 2005. [2] R. Alfieri, R. Cecchini, V. Ciaschini, L. Dell’Agnello, A. Frohner, K. Lorentey, and F. Spataro. From gridmap-file to VOMS: managing authorization in a Grid environment. Future Generation Computer Systems, 21(4):549–558, 2005. [3] C. Alfonso, M. Caballer, and V. Hern´andez. DIDA, a Distributed Discovery Architecture for Grid Environments. In Proceedings of the Cracow 05 Grid Workshop, pages 106–113, Cracow, Poland, 2005. Druk i Oprawa EKODRUK. [4] BDII. Berkeley Database Information Index. [5] I. Blanquer, V. Hern´andez, F. J. Meseguer, and J. D. Segrelles. Content-Based Organisation of Virtual Repositories of DICOM Objects. Future Generation Computer Systems, 25(6):627–637, June 2009. [6] I. Blanquer, V. Hernandez, D. Segrelles, and E. Torres. TRENCADIS - secure architecture to share and manage DICOM objects in a ontological framework based on OGSA. Studies In Health Technology And Informatics, 126:115–124, 2007. [7] A. B. Chaudhri, A. Rashid, and R. Zicari. XML Data Management: Native XML and XML-Enabled Database Systems. Addison-Wesley Professional, 2003. [8] CIBERSAM. Centro de Investigaci´on Biom´edica en Red de Salud Mental. [9] F. Cohen. Fast SOA: The way to use native XML technology to achieve Service Oriented Architecture governance, scalability, and performance. Morgan Kaufmann, 2006. [10] A. Cooke, A. J. G. Gray, L. Ma, W. Nutt, J. Magowan, M. Oevers, P. Taylor, R. Byrom, L. Field, S. Hicks, J. Leake, M. Soni, and A. Wilson. R-GMA: An Information Integration System for Grid Monitoring, 2003. [11] EGI. European Grid Infrastructure. [12] D. W. Erwin. UNICORE - a Grid computing environment. Concurrency and Computation: Practice and Experience, 14(13-15):1395–1410, Nov. 2002. 30
Bibliograf´ıa [13] I. Foster. Globus Toolkit Version 4: Software for Service-Oriented Systems. Lecture Notes in Computer Science, 3779:2 – 13, 2005. [14] I. Foster and C. Kesselman, editors. The Grid 2, Second Edition: Blueprint for a New Computing Infrastructure. Morgan Kaufmann, 2003. [15] F. Gagliardi, B. Jones, F. Grey, M.-E. B´egin, and M. Heikkurinen. Building an infrastructure for scientific Grid computing: status and goals of the EGEE project. Philosophical transactions. Series A, Mathematical, physical, and engineering sciences, 363(1833):1729–42, Aug. 2005. [16] GLite. The EGEE middleware for Grid computing. [17] J. Gosling, B. Joy, G. Steele, and G. Bracha. The Java Language Specification, Third Edition. Addison Wesley, 2005. [18] T. A. Howes, M. C. Smith, and G. S. Good. Understanding and Deploying LDAP Directory Services (2nd Edition). Addison-Wesley Professional, 2003. [19] E. Huedo, R. S. Montero, and I. M. Llorente. The GridWay Framework for Adaptive Scheduling and Execution on Grids. Scalable Computing - Practice and Experience, 6(3):1–8, 2005. [20] C. Hunt and B. John. Java Performance. Prentice Hall, 2011. [21] D. Jayasinghe. Quickstart Apache Axis2: A practical guide to creating quality web services. Packt Publishing, 2008. [22] D. B. Keator, J. S. Grethe, D. Marcus, B. Ozyurt, S. Gadde, S. Murphy, S. Pieper, D. Greve, R. Notestine, H. J. Bockholt, and P. Papadopoulos. A national human neuroimaging collaboratory enabled by the Biomedical Informatics Research Network (BIRN). IEEE transactions on information technology in biomedicine : a publication of the IEEE Engineering in Medicine and Biology Society, 12(2):162–72, Mar. 2008. [23] G. A. Komatsoulis, D. B. Warzel, F. W. Hartel, K. Shanbhag, R. Chilukuri, G. Fragoso, S. de Coronado, D. M. Reeves, J. B. Hadfield, C. Ludet, and P. A. Covitz. caCORE version 3: Implementation of a model driven, service-oriented architecture for semantic interoperability. Journal of biomedical informatics, 41(1):106–23, Feb. 2008. [24] D. Kranzlm¨uller, J. M. Lucas, and P. ¨ Oster. The European Grid Initiative (EGI). In F. Davoli, R. Pugliese, N. Meyer, and S. Zappatore, editors, Remote Instrumentation and Virtual Laboratories, pages 61–66. Springer US, 2010. [25] E. Laure, C. Gr, S. Fisher, A. Frohner, P. Kunszt, A. Krenek, O. Mulmo, F. Pacini, F. Prelz, J. White, M. Barroso, P. Buncic, R. Byrom, L. Cornwall, M. Craig, A. D. Meglio, A. Djaoui, F. Giacomini, J. Hahkala, F. Hemmer, S. Hicks, A. Edlund, A. Maraschini, R. Middleton, M. Sgaravatto, M. Steenbakkers, J. Walk, and A. Wilson. Programming the Grid with gLite, 2006. 31
Bibliograf´ıa [26] C. Marco, C. Fabio, D. Alvise, G. Antonia, G. Francesco, M. Alessandro, M. Moreno, M. Salvatore, P. Fabrizio, P. Luca, and P. Francesco. The gLite Workload Management System. In Proceedings of the 4th International Conference on Advances in Grid and Pervasive Computing, GPC ’09, pages 256–268, Berlin, Heidelberg, 2009. Springer-Verlag. [27] G. Molt´o, V. Hern´andez, and J. Alonso. Automatic replication of WSRF-based Grid services via operation providers. Future Generation Computer Systems, 25(8):876– 883, Sept. 2009. [28] OASIS Web Services Composite Application Framework (WS-CAF) Technical Committee. Web Services Context Specification (WS-Context) Version 1.0, 2007. [29] Open Grid Forum. The Open Grid Services Architecture (OGSA), Version 1.5, 2006. [30] Open Grid Forum. GLUE Specification v.2.0. Technical report, Open Grid Forum, 2009. [31] OSAIS. Web Services Resource Framework (WSRF), 2006. [32] S. Pallickara, G. C. Fox, M. Aktas, H. Gadgil, B. Yildiz, S. Oh, S. Patel, M. Pierce, and D. Yemme. A Retrospective on the Development of Web Service Specifications. In P. Panos, editor, Securing Web Services Practical Usage of Standards and Specifications, chapter 2, pages 22–49. IGI Global, 2007. [33] J. M. Schopf, I. Raicu, L. Pearlman, N. Miller, C. Kesselman, I. Foster, and M. D’Arcy. Monitoring and Discovery in a Web Services Framework: Functionality and Performance of Globus Toolkit MDS4, 2006. [34] M. Seltzer and K. Bostic. Berkeley DB. In A. Brown and G. Wilson, editors, The Architecture of Open Source Applications, chapter 4. 2011. [35] J. Shiers. The Worldwide LHC Computing Grid (worldwide LCG). Computer Physics Communications, 177(1-2):219–223, 2007. [36] B. Sotomayor and L. Childers. Globus Toolkit 4: Programming Java Services. Morgan Kaufmann, 2005. [37] T. L. Thai and H. Lam. .Net Framework Essentials. O’Reilly Media, 3rd edition, 2003. [38] The Globus Alliance. The Crux Toolkit, 2010. [39] E. Torres, J. D. Segrelles, I. Blanquer, and V. Hern´andez. Service monitoring and differentiation techniques for resource allocation in the grid, on the basis of the level of service. Future Generation Computer Systems, 27(8):1152–1142, 2011. [40] W3C Web Services Policy Working Group. Web Services Policy 1.5 - Framework, 2007. 32
Bibliograf´ıa [41] D. N. Williams, D. E. Bernholdt, I. T. Foster, and D. E. Middleton. The Earth System Grid Center for Enabling Technologies: Enabling Community Access to Petascale Climate Datasets. Proceedngs of the IEEE, 3(3):485–495, 2007. 33