• Nenhum resultado encontrado

2.2 Grades Computacionais

3.1.2 Globus Toolkit

O Globus Toolkit (GT) [90] é uma ferramenta de software (open source), desenvolvido pela Globus Alliance [122] que pode ser usado para construir sistemas de grades e também para o desenvolvimento de aplicações para as mesmas. Muitas companhias e organizações usam esse toolkit como base na implementação de grades de vários tipos [123].

O GT foi evoluindo, gerando novos padrões, e convergindo para os padrões Web ao longo do tempo. A partir da versão 4 o GT implementa OGSA [47] com WSRF [49], sendo a versão 5.2.5 a última versão estável disponibilizada. Nesta tese usou-se o GT como plataforma para o desenvolvimento do protótipo do CEO e na implantação do CEO Service-Orieented Testbed (Seção 6.1) feita nas instalações do Laboratório de Redes de Computadores (LRC) [124] do Instituto de Computação [125] da Universidade Estadual de Campinas Unicamp [126].

O GT provê um conjunto de serviços de alto nível divididos em cinco categorias, sendo que cada categoria tem componentes baseados em serviços Web (WS) e componentes que não são baseados em serviços Web (NWS) (e servem principalmente para manter a com- patibilidade com versões anteriores). As cinco categorias são: componentes comuns de execução, segurança, gerência de dados, serviços de monitoramento e descoberta, e gerên- cia de execução [127]. As categorias e seus respectivos componentes estão relacionados na Figura 3.1. A seguir estão detalhados os componentes relevantes a esta tese.

Java WS Core

Java WS Core consiste de um conjunto de APIs e ferramentas que implementam os padrões WSRF e WS-Notification [128] em linguagem Java. Esses componentes atuam como base para vários serviços que o GT provê, tais como, WS-GRAM, RFT (Reliable File Transfer), IS (Information Services), CAS (Community Authorization

Figura 3.1: Serviços e componentes do Globus Toolkit [90].

Service), Delegation e serviços WSRF personalizados (Figura 3.1). Java WS Core também contém a biblioteca básica para desenvolvimento de serviços da grade [129]. Essa biblioteca e as ferramentas que compõem o Java WS Core foram usadas no desenvolvimento do protótipo implementado.

WS-GRAM

O WS-GRAM (Web Service Globus Resource Allocation Manager) é o serviço que provê a execução e a gerência de tarefas na grade [130]. Quando uma tarefa é submetida pelo cliente, a requisição é enviada ao host remoto como uma mensagem SOAP, sendo executada pelo serviço WS-GRAM localizado nesse host remoto. Para executar as submissões, o WS-GRAM usa outros serviços da Grade, como o Dele- gation para tratar aspectos de segurança (credenciais) e RFT-GridFTP para enviar e receber os dados da tarefa. O uso dos serviços de gerência do WS-GRAM combi- nados com os outros componentes do GT estão ilustrados na submissão típica que é mostrada na Figura 3.2. O serviço WS-GRAM usa WS-Notification para retornar as informações sobre a execução das tarefas. Além disso, o serviço WS-GRAM é capaz de submeter tarefas através de escalonadores [131] locais como Platform LSF [132] ou Condor [133]. O WS-GRAM é formado por um conjunto de serviços que estão incorporados ao núcleo do GT. Esses serviços são:

– ManagedJob: Cada tarefa submetida é exposta como um recurso específico

do serviço genérico ManagedJob, isto é, para cada tarefa uma instância desse serviço é criada, ficando responsável pela sua execução. O serviço provê uma interface que é usada para monitorar o estado da execução da tarefa. Essa interface também é usada para encerrar a tarefa, e consequentemente encerrar (destruir) o recurso (a instância) ManagedJob criado.

escalonador local é exposto como um recurso distinto do serviço genérico Ma- nagedJobFactory. Esse serviço provê uma interface para criar recursos Ma- nagedJob, de acordo com o tipo de recurso apropriado para a tarefa alvo, no escalonador local. ManagedJobFactory é a Fábrica que produz as instâncias do ManagedJob.

Esse desenho arquitetônico foi usado na concepção do CEO. O CEO tem um serviço Fábrica que cria instâncias responsáveis pela execução de cada workflow submetido.

Figura 3.2: Uso do WS-GRAM na submissão de tarefas.

O WS-GRAM recebe as submissões de tarefas, descritas através da GJD (WS- GRAM Job Description), e requisita as execuções nas máquinas remotas, verificando os aspectos relativos à segurança da comunicação, autenticando a submissão de tarefas. GJD [134] é uma linguagem baseada em XML. Ela contém um conjunto restrito de diretivas que especificam o ambiente operacional, tempo de execução e argumentos, dentre outras, conforme mostra o fragmento de código abaixo:

<job>

<executable>/bin/echo</executable>

<argument>Essa e uma string exemplo</argument> <argument>Globus esta aqui</argument>

<stdout>${GLOBUS_USER_HOME}/stdout</stdout> <stderr>${GLOBUS_USER_HOME}/stderr</stderr> </job>

GJD é restrita no apoio ao usuário como ferramenta para workflow, além de não oferecer recursos para a execução de serviços da grade. GJD oferece recursos apenas para a execução de aplicações.

• Community Scheduler Framework

CSF (Community Scheduler Framework) é um conjunto (open source) de serviços da grade que podem desempenhar as funções de um metaescalonador [135]. O CSF tem as capacidades básicas de um escalonador e pode também ser usado como ferramenta para o desenvolvimento de escalonadores comunitários. O CSF disponibiliza uma interface simples para vários gerenciadores de recursos como Platform LSF [132], Altair PBS [136] e Condor [133]. Ele pode ser usado em conjunto com o WS- GRAM e outros escalonadores, mas também não oferece facilidades para coordenar a execução de serviços da grade diretamente. O CFS pode ser usado em conjunto com o CEO. A integração entre ambos pode ser feita através do modelo para in- tegração entre a gerência de workflows e escalonadores, descrito na Seção 5.4.1 e implementada através do Serviço para Integração com Escalonadores (SIS) apresen- tado na Seção 5.4.2.