CSGrid: um Sistema para Integração de Aplicações em Grades Computacionais



Documentos relacionados
1

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

SISTEMAS DISTRIBUÍDOS

Noções de. Microsoft SQL Server. Microsoft SQL Server

ÍNDICE. 1. Introdução O que é o Sistema Mo Porã Como acessar o Site Mo Porã Cadastro do Sistema Mo Porã...

Padrão ix. Manual de Instalação do Q-Ware Server Versão

Manual do Visualizador NF e KEY BEST

Aplicação Prática de Lua para Web

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Disciplina de Banco de Dados Introdução

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS IMPRESSÃO. Professor Carlos Muniz

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

AP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS

3 SCS: Sistema de Componentes de Software

CA Nimsoft Monitor Snap

Manual de Instalação do Agente Citsmart

SISTEMAS DISTRIBUIDOS

Documento de Análise e Projeto VideoSystem

Procedimentos para Reinstalação do Sisloc

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente

Guia do Administrador de Licenças de Usuários Autorizados do IBM SPSS Modeler

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO. Motor Periférico Versão 8.0

Soluções de Gerenciamento de Clientes e de Impressão Universal

Introdução ao Modelos de Duas Camadas Cliente Servidor

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

Fox Gerenciador de Sistemas

UNIVERSIDADE TECNOLOGIA FEDERAL DO PARANÁ. Owncloud SERVIÇO DE COMPARTILHAMENTO EM NUVEM. Manual

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

BDG - BANCO DE DADOS DE GRADES UMA FERRAMENTA PARA DISPONIBILIZAR DADOS DE PREVISÃO DE MODELOS NUMÉRICOS DE TEMPO E CLIMA

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema.

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

MANUAL DE IMPLANTAÇÃO SISTEMA DE INVENTÁRIO CACIC GOVERNO FEDERAL SOFTWARE PÚBLICO

Marco A. M. de Melo e Fernando S. P. Gonçalves MANAGER

Índice. Para encerrar um atendimento (suporte) Conversa Adicionar Pessoa (na mesma conversa)... 20

NOVO MODELO DE ATUALIZAÇÃO FOCCO Atualização automática com o FoccoUPDATE

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima

Versão /10. Xerox ColorQube 9301/9302/9303 Serviços de Internet

Tutorial WEB CONTENT MANAGEMENT [WCM] Obtenha benefícios a partir das aplicações customizadas da ADMT.

Introdução ao Active Directory AD

Sistema de Chamados Protega

Manual do usuário. v1.0

Capítulo 8 - Aplicações em Redes

MANUAL DO USUÁRIO. AssetView FDT. AssetView FDT

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

1) MANUAL DO INTEGRADOR Este documento, destinado aos instaladores do sistema, com informações de configuração.

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14

CA Nimsoft Monitor Snap

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE

SISTEMA GERENCIADOR DE BANCO DE DADOS

Palavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: ou

Modelos de Arquiteturas. Prof. Andrêza Leite

CA Nimsoft Monitor Snap

5 Mecanismo de seleção de componentes

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

Minicurso Computação em Nuvem Prática: Openstack

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013

MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA

CONFIGURAÇÃO DE REDE SISTEMA IDEAGRI - FAQ CONCEITOS GERAIS

2.0.0.X. Storage Client. TecnoSpeed. Tecnologia da Informação. Manual do Storage Client

MANUAL DO ADMINISTRADOR LOCAL. Entidade Municipal

TUTORIAL: MANTENDO O BANCO DE DADOS DE SEU SITE DENTRO DO DOMÍNIO DA USP USANDO O SSH!

Manual Geral do OASIS

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

INTRODUÇÃO 2 ACESSO AO SIGTECWEB 3 TEMPO DE CONEXÃO 5 NAVEGAÇÃO 7 BARRA DE AÇÕES 7 COMPORTAMENTO DOS BOTÕES 7 FILTROS PARA PESQUISA 8

American Work Guia de Primeiros Passos

Introdução ao Tableau Server 7.0

Anote aqui as informações necessárias:

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

1 Sumário O Easy Chat Conceitos Perfil Categoria Instalação O Aplicativo HTML...

Plano de Gerenciamento do Projeto

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

Manual de Operação do Sistema de Tickets Support Suite

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Web Design Aula 11: Site na Web

MANUAL DE UTILIZAÇÃO DO SISTEMA GLPI

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

GUIA DE ORIENTAÇÕES ROTEIRO DE CONFIGURAÇÃO DO SOFTWARE CRM PROFESSIONAL ANEXO III ROTEIRO DE CONFIGURAÇÃO - CRM PROFESSIONAL

SISTEMA DE GESTÃO DO PROGRAMA BOLSA FAMÍLIA

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

4 Um Exemplo de Implementação

Gestão inteligente de documentos eletrônicos

Emissão de Nota Fiscal de Serviço Eletrônica

ÍNDICE 1 INTRODUÇÃO ACESSO AOS SISTEMAS DOCUMENTOS MANUTENÇÃO OCR REGISTRO DE DOCUMENTOS GERANDO DOCUMENTOS

EAGLE TECNOLOGIA E DESIGN CRIAÇÃO DE SERVIDOR CLONE APCEF/RS

Faturamento Eletrônico - CASSEMS

Procedimentos para Instalação do Sisloc

OneDrive: saiba como usar a nuvem da Microsoft

7 Utilização do Mobile Social Gateway

1. Plataforma Sage Primeiro Acesso Configurações Relacionamento Folha de Pagamento esocial...

O que é Grid Computing

Aula 03-04: Modelos de Sistemas Distribuídos

INTRODUÇÃO: 1 - Conectando na sua conta

ADMINISTRAÇÃO DE SISTEMA OPERACIONAL DE REDE (AULA 4)

Transcrição:

CSGrid: um Sistema para Integração de Aplicações em Grades Computacionais Maria Julia de Lima, Taciana Melcop, Renato Cerqueira, Carlos Cassino, Bruno Silvestre, Marcelo Nery, Cristina Ururahy 1 Grupo de Tecnologia em Computação Gráfica / Tecgraf Departamento de Informática, PUC-Rio Rua Marquês de São Vicente, 225, 22453-900, Rio de Janeiro, RJ, Brasil csgrid@tecgraf.puc-rio.br Abstract. CSGrid is a system for grids that, in addition to the support for usage and management of distributed computational resources, offers facilities to integrate applications and manage data and users. CSGrid presents to its users, through a web browser, a workspace with all available applications and with the user s data files organized by project. A user can extend the system adding new applications. CSGrid also provides its users with some collaborative work facilities. Keywords: Grid Computing, Grid Workbenches, Middleware. Resumo. CSGrid é um sistema para grades computacionais que, além de dar suporte ao uso e gerenciamento de recursos computacionais distribuídos, oferece facilidades para a integração de aplicações e para o gerenciamento de dados e usuários. O CSGrid apresenta para seu usuário, via um navegador Web, uma área de trabalho com todas as aplicações disponíveis e com os arquivos de dados do usuário organizados por projeto. Um usuário pode estender o ambiente adicionando novas aplicações. O sistema também oferece uma série de recursos para trabalho colaborativo entre seus usuários. Palavras-chave: Computação em Grade, Ambientes de Trabalho para Grades, Middleware. 1. Introdução Uma necessidade cada vez mais comum em diversas organizações é o uso coordenado de recursos em um ambiente computacional distribuído e heterogêneo. A variedade de plataformas e aplicações além da descentralização dos dados dos usuários dificulta o compartilhamento dos recursos disponíveis nessas organizações. Um tema que vem ganhando importância nos últimos tempos é o de grade computacional[foster and Kesselman 1999]. Recursos geograficamente distribuídos e em diferentes domínios administrativos são interligados com o objetivo de prover um maior poder computacional aos seus usuários. O CSGrid é um sistema para gerenciamento e integração de aplicações em um ambiente de grade computacional. Aplicações que executam no cliente utilizam os serviços Este trabalho conta com apoio e financiamento da Petrobras e do Projeto GIGA/RNP.

disponíveis no CSGrid para ter acesso e gerenciar os recursos computacionais distribuídos no ambiente. Um desses serviços é o de execução remota de algoritmos em máquinas que estão ligadas ao CSGrid. Algoritmos, no contexto do CSGrid, são programas executáveis implementados em qualquer linguagem que admitem parâmetros de entrada, geram uma saída e não possuem nenhum tipo de interação com o usuário durante sua execução. Diversas máquinas podem ser incorporadas ao ambiente para servir como plataforma de execução de algoritmos. Novos algoritmos são facilmente disponibilizados no ambiente e o processo para executá-los passa a ser uma tarefa transparente para o usuário. O CSGrid possui um desktop web onde os usuários utilizam os recursos computacionais distribuídos como se estivessem trabalhando localmente. Utilizando um navegador, os usuários podem criar suas áreas de trabalho, monitorar as máquinas da grade, instalar algoritmos, executar aplicações instaladas no desktop, comandar a execução remota de algoritmos e acompanhar os processos que estão executando esses algoritmos nas máquinas do ambiente. O objetivo do CSGrid é oferecer suporte tanto para o cliente como para o servidor. Uma característica importante na arquitetura do CSGrid é a interoperabilidade entre um servidor principal do sistema e os servidores executando nas diversas máquinas de execução de algoritmos. Independente da linguagem de implementação dos algoritmos e da máquina onde esses algoritmos serão executados, o CSGrid oferece uma interface padrão para execução remota e monitoração das máquinas do ambiente. O CSGrid é implementado como uma instância do CSBase 1, um framework para gerenciamento de recursos e execução de algoritmos em um ambiente computacional distribuído e heterogêneo. O CSBase é resultado do desenvolvimento de diferentes projetos de parceria do laboratório Tecgraf com a Petrobras. O primeiro desses projetos, o Web- Sintesi, implementou e disponibilizou um ambiente de integração de aplicações de análise e síntese de dados geofísicos. No WebSintesi, máquinas multi-processadas e clusters são interligados a um servidor principal que torna transparente para o usuário a execução remota de programas que necessitam de um alto poder computacional e que manipulam arquivos de dados sísmicos na ordem de até centenas de gigabytes. Após o primeiro ano de desenvolvimento do WebSintesi, o projeto InfoPAE Dinâmico foi requisitado para atender aos usuários da Petrobras que utilizam aplicações de acompanhamento de combate a contingências, como por exemplo, programas de análise de estabilidade e equilíbrio de plataformas de petróleo. Para permitir o reuso dos serviços já implementados para o WebSintesi e para facilitar o desenvolvimento de novos serviços e aplicações particulares a cada um dos projetos WebSintesi e InfoPAE Dinâmico, o framework CSBase foi criado. Hoje, além do WebSintesi, InfoPAE Dinâmico e CSGrid, outros dois novos sistemas estão utilizando o CSBase em seu desenvolvimento. Cada um desses sistemas possuem aplicações comuns e outras aplicações que utilizam serviços criados especificamente para cada um deles. A arquitetura flexível e extensível do CSBase permite que novos serviços sejam desenvolvidos e integrados aos serviços já existentes, tornando-o uma base comum de desenvolvimento para vários sistemas. 1 http://www.tecgraf.puc-rio.br/csbase

O artigo está organizado da seguinte forma. A seção 2. descreve as principais funcionalidades implementadas no CSGrid. A seção 3. apresenta a arquitetura do sistema, descrevendo seus componentes principais. A seção 4. finaliza o artigo com uma descrição sucinta dos trabalhos que estão sendo feitos para estender o CSGrid com novas funcionalidades. 2. CSGrid O CSGrid oferece para os usuários um conjunto de funcionalidades para disponibilização, compartilhamento, gerência e acesso aos recursos distribuídos. 2.1. Controle de Acesso Uma questão fundamental em ambientes de integração de recursos é o controle de acesso dos usuários. No CSGrid, as áreas de disco, os algoritmos e as máquinas estão protegidas do acesso de usuários não autorizados e podem ser restritas ao uso de algum conjunto específico de usuários. O ambiente de administração permite cadastrar usuários e atribuir permissões com um nível de granularidade que define não somente a funcionalidade como também o recurso que se deseja proteger. Existem classes de permissões pré-definidas. Algumas dessas classes permitem a definição de atributos através de uma interface. Uma classe de permissão existente no CSGrid é a de utilização de máquinas para execução de algoritmos. Essa classe representa o acesso a uma ou mais máquinas, onde os nomes das máquinas são os atributos dessa permissão. Para que um usuário possa executar algoritmos na máquina Salgueiro, por exemplo, o administrador deve criar uma permissão dessa classe com o atributo Salgueiro e atribuí-la ao usuário. 2.2. Gerenciamento de Projetos Os arquivos dos usuários são organizados por projetos. A estrutura de um projeto é hierárquica, isto é, o usuário pode criar sub-diretórios para organizar seus arquivos da maneira que desejar. Os usuários podem utilizar funcionalidades de importação e recuperação de dados para colocar arquivos dentro de seus projetos. O CSGrid gerencia as áreas de disco utilizadas para armazenar os projetos criados por cada usuário e as áreas de arquivos compartilhados por projetos diferentes. A janela principal do CSGrid consiste em um desktop como ilustrado na figura 1. Nesse desktop, apenas um projeto está aberto de cada vez. A área da esquerda do desktop mostra a árvore de um projeto aberto, semelhante à forma de visualização utilizada para sistemas de arquivos. O desktop também exibe uma visão em tabela com os detalhes dos arquivos que estão no diretório selecionado da árvore. Na área da direita do desktop estão as aplicações que podem ser executadas e que atuam sobre o projeto aberto. O CSGrid oferece facilidades que propiciam o trabalho colaborativo. Os donos dos projetos podem dar a outros usuários permissão de leitura e escrita em alguns de seus projetos. Além disso, o usuário pode publicar arquivos para outros usuários que passam a ter acesso a esse arquivo somente para leitura. O desktop possui também uma área de troca de mensagens entre usuários. Essa mesma área serve para o sistema enviar notificações de alguns eventos ocorridos. Exemplos de eventos notificados pelo CSGrid são publicação de arquivos, finalização de

um processo executando um algoritmo remoto ou a inclusão no ambiente de uma nova máquina de execução de algoritmos. Figura 1. Desktop de um usuário do CSGrid 2.3. Integração de Aplicações Sendo um ambiente para integração de aplicações, o CSGrid facilita a construção de aplicações que façam uso das funcionalidades do sistema e que possam ser incorporadas ao desktop dos usuários. Um conjunto de componentes prontos são disponibilizados junto com o sistema, para que o usuário construa suas aplicações em Java. Um aspecto comum a todas as aplicações é o fato de sua implementação utilizar o serviço de projetos do CS- Grid para ler e escrever arquivos no projeto aberto do desktop. A implantação de novas aplicações no CSGrid é feita por configuração de arquivos de propriedades do sistema. O desktop do CSGrid, conforme aparece na figura 1, já inclui algumas aplicações préinstaladas. As aplicações são apresentadas em grupos que classificam o propósito geral dessas aplicações. 2.4. Gerenciamento de Algoritmos O CSGrid permite que novos algoritmos sejam incorporados dinamicamente ao sistema. Um usuário com a devida permissão pode criar e alterar versões de algoritmos, registrando as informações necessárias para sua execução. Essas informações incluem a documentação, o código binário, a plataforma (versão do sistema operacional) em que o binário executa e um configurador que descreve o tipo dos parâmetros de entrada e saída desse algoritmo. O configurador é um arquivo no formato xml que o CSGrid utiliza para, dinamicamente, gerar uma classe de GUI que é apresentada para o usuário no momento da execução do algoritmo selecionado. Utilizando essa interface, o usuário pode preencher os valores que são usados como parâmetros de entrada e de saída do algoritmo executado. O formato do arquivo xml possui elementos que servem para descrever diferentes tipos pré-definidos de parâmetros, como por exemplo, arquivos, inteiro, texto, lista, etc.

2.5. Monitoração do Ambiente Para que o usuário possa selecionar em que máquina vai executar um algoritmo, o CSGrid disponibiliza diferentes visões para monitoração das máquinas do ambiente. Uma visão tabular com as informações de uma máquina exibe: o estado da máquina (disponível, inacessível ou reservado); o percentual de ocupação do processador (CPU) da máquina; o percentual de ocupação de memória RAM; o percentual de ocupação de swap; e o nome da plataforma (versão do sistema operacional) da máquina que serve para filtrar quais os algoritmos podem ser executados nessa máquina. O usuário pode monitorar a ocupação de CPU e de memória de máquinas ou nós de um cluster usando diversos tipos de gráficos como exemplificados na figura 2. Alguns gráficos mostram a tendência de ocupação de CPU e memória da máquina, considerando o histórico passado. Uma facilidade bastante útil é a possibilidade de criar grupos de máquinas e fazer a monitoração do grupo, onde os gráficos exibem, por exemplo, a distribuição de ocupação de CPU entre as máquinas que compõem esse grupo. Figura 2. Monitoração do estado de uma máquina de execução de algoritmos 2.6. Execução Remota de Algoritmos Os algoritmos cadastrados pelos usuários podem ser executados em uma das máquinas de execução de algoritmos que estão conectadas ao servidor principal naquele momento. Para isso, o CSGrid oferece um executor genérico de algoritmos que: exibe as máquinas cujas plataformas são compatíveis com o algoritmo selecionado para execução, solicita os informações de entrada e saída para o algoritmo usando uma interface GUI criada a partir do arquivo xml que descreve a parametrização do algoritmo, cria um processo para executar o algoritmo na máquina selecionada para o usuário.

Uma das opções de execução permite que o usuário deixe a critério do sistema a seleção automática da máquina para execução. Atualmente, o CSGrid adota o critério de ocupação de CPU para escolha automática da máquina de execução do algoritmo. O usuário pode acompanhar o andamento e interromper o processamento dos algoritmos que submeteu para execução remota. Quando o processo de execução de um algoritmo termina, o CSGrid notifica esse usuário e atualiza a árvore do projeto com os novos arquivos criados como resultado da execução. 3. Arquitetura A figura 3 exibe uma visão geral dos principais componentes da arquitetura do CSGrid, apresentados a seguir. Repositório de Dados Máquina A Processo Algoritmo (C) SGA Daemon CORBA Processo Algoritmo (Fortran) N F S Área de Projetos C O R B A Base de Usuários NFS NFS SSI RMI Repositório de Algoritmos C O R B A Máquina B N F S Processo Algoritmo (C++) SGA Daemon CORBA Desktop Web Desktop Web Desktop Web Figura 3. Arquitetura do CSGrid 3.1. Desktop Web Para que um usuário tenha acesso ao sistema, sua estação de trabalho precisa dispor apenas de um navegador web habilitado a executar o applet Java que implementa o desktop do CSGrid. O código do desktop é transferido para a máquina cliente quando o usuário acessa a URL do sistema. O desktop incorpora técnicas avançadas de interação usuáriosistema, concretizadas a partir do uso do pacote Swing da linguagem Java. O desktop possui um componente que monitora a comunicação com o servidor principal (SSI). Quando essa comunicação é perdida, o desktop informa ao usuário e entra num estado de monitoração até que a comunicação se reestabeleça. Dessa forma, o desktop não precisa ser reiniciado devido, por exemplo, a uma falha no SSI. Além disso, o desktop implementa observadores remotos que mantém os dados dos usuários e dos projetos consistentes entre os desktops que acessam os mesmos dados simultaneamente. 3.2. O Repositório de Dados O repositório de dados é uma área com acesso NFS onde o SSI armazena a base de usuários do sistema, os projetos dos usuários e o repositório de algoritmos. A base de usuários mantém em arquivos os dados dos usuários e suas permissões. A área de projetos possui um diretório para os projetos de cada usuário e mantém arquivos descritores que guardam informações sobre os projetos e sobre os próprios arquivos presentes nos projetos.

O repositório de algoritmos é uma estrutura hierárquica em que cada algoritmo é representado por um diretório. Dentro desse diretório estão os subdiretórios das suas versões com o arquivo configurador, a documentação e os binários separados por plataformas. 3.3. Servidor do Sistema Integrador O Servidor do Sistema Integrador (SSI) faz o papel de intermediário entre as requisições dos desktops, o repositório de dados e as máquinas para execução dos algoritmos. O SSI está desenvolvido em Java e é composto por um conjunto de serviços que implementam as diversas funcionalidades disponíveis no CSGrid. O serviço de administração, por exemplo, é responsável pela manutenção dos dados relativos aos usuários e suas permissões. Toda a parte de leitura e escrita de arquivos da área de projetos é realizado pelo serviço de projetos. Também existe o serviço de gerência de algoritmos, de email, de Http, entre outros. Os serviços oferecem acesso através de uma implementação de segurança baseada em proxies [Marques 2002] e permissões. Cada usuário possui um conjunto de permissões que determinam o que ele pode utilizar nos serviços do CSGrid. Quando o usuário se autentica no sistema, o serviço de login instancia um proxy para cada serviço com a informação do usuário e retorna as referências remotas destes proxies para o cliente. As chamadas remotas dos clientes são repassadas aos serviços pelos proxies com a informação do usuário que as solicitou. Dessa maneira, o serviço verifica se o usuário possui a permissão necessária para realizar um procedimento antes de executá-lo. Todos os serviços possuem uma interface RMI, Remote Method Invocation. Para ler e escrever arquivos, o desktop estabelece uma comunicação via socket com o Servidor para fazer a transferência de dados de forma mais eficiente que a adotada pela serialização de RMI. Além disso, o serviço de FTP permite que o usuário obtenha arquivos de máquinas remotas para a área de projetos como também envie da área de projetos para outras máquinas. O serviço de Http foi criado para que o usuário possa fazer download e upload de arquivos para a área de projeto através de um navegador Web. Uma grade de computadores pode ser dividida em regiões, com seu próprio SSI. Um SSI central fica responsável pelas tarefas de administração e pelo repositório principal das informações administrativas (usuários e permissões). Sob todos os demais aspectos, os servidores locais são equivalentes funcionalmente ao SSI central. Cada SSI local possui uma réplica da base de usuários, atualizada automaticamente pelo sistema. A replicação da base de usuários nas diferentes regiões permite a autenticação de usuários que se conectam a um SSI local mesmo quando a conexão com o servidor central não está disponível. 3.4. Servidor de Gerência de Algoritmos O Servidor de Gerência de Algoritmos (SGA) é um daemon instalado em cada máquina de execução de algoritmos, que permite o SSI comandar a execução de algoritmos, como também a monitoração do estado de ocupação dessas máquinas e dos processos disparados a partir do SGA. Toda interação entre um SGA, implementado em Lua [Ierusalimschy 2003] e C++, e o SSI é realizada através de uma interface CORBA.

Ao ser ativado, o SGA se registra junto ao SSI de sua região e fica disponível aos clientes que se conectam a tal SSI. Quando um cliente solicita a execução de um algoritmo através do SSI, este passa a monitorar o processo até a sua conclusão (sucesso, insucesso ou interrupção). Os SGAs e os processos dos algoritmos disparados nas máquinas de execução permanecem ativos mesmo quando a conexão com o SSI é interrompida. Quando a conexão é reativada, o SGA se registra novamente no SSI. Periodicamente, o SSI solicita aos SGAs informações sobre o estado de sua máquina hospedeira. Essas informações podem ser exibidas ao usuário para que ele escolha aquela onde o algoritmo deve ser executado como também podem ser utilizadas pelo SSI na seleção automática da máquina para a execução de um determinado algoritmo. 4. Considerações Finais O CSGrid foi originado a partir de dois projetos desenvolvidos com a Petrobras e que já estão em produção. Vários de seus recursos são comuns a outros sistemas para grades, tais como Globus, Legion, Condor e OurGrid 2. Entretanto, sua origem lhe confere um aspecto de maior usabilidade e integração na rotina de trabalho de seus usuários. Atualmente, o CSGrid está sendo estendido como parte do Projeto GIGA 3, com o objetivo de prover um ambiente para aplicações da comunidade científica que utilizem a rede GIGA da RNP. Nesse contexto, novas funcionalidades estão sendo desenvolvidas e incorporadas ao framework do CSBase, tais como: um serviço para acesso e gerenciamento de arquivos, com a finalidade de eliminar a dependência do NFS; aprimoramento do mecanismo de seleção automática de máquinas, incluindo métricas que levem em consideração o tempo de transferência de arquivos de entrada e saída; suporte à definição e execução de workflows de execução de algoritmos; e componentes para renderização distribuída de imagens de dados científicos. O sistema está disponível em http://www.tecgraf.puc-rio.br/csbase/ csgrid, em sua versão para plataforma Linux. Versões para outras plataformas podem ser obtidas contatando os autores. 5. Agradecimentos Gostaríamos de agradecer o apoio e financiamento da Petrobras para o desenvolvimento deste projeto. A nova versão do CSGrid que está em desenvolvimento também conta com o apoio do Projeto GIGA da RNP, com recursos do FUNTTEL e FINEP. Também agradecemos às equipes dos projetos WebSintesi e InfoPAE Dinâmico, que deram origem ao CSGrid. Referências Foster, I. and Kesselman, K. (1999). The Grid: Blueprint for a new Computing Structure. Morgan Kaufmann Publishers. Ierusalimschy, R. (2003). Programming in Lua. lua.org. Marques, P. (2002). Building secure java rmi servers. Dr.Dobb s Journal, 27(11):36 42. 2 http://www.globus.org/, http://legion.virginia.edu/, http://www.cs. wisc.edu/condor/, http://www.ourgrid.org/ 3 http://www.giga.org.br