CyTEDGrid

Tecnologia GRID como motor do desenvolvimento regional.

Desde o surgimento do conceito do GRID às primeiras experiências de sua aplicação prática (em 1995) até a atualidade, o desenvolvimento destas tecnologias foi contínuo. O GRID surge no ãmbito da super computação para satisfazer as necessidades de certos projetos científicos, por requerer uma enorme capacidade de cálculo ("grids computacionais") ou por manejar enormes quantidades de dados ("grids de dados").

Neste contexto, o projeto se propõe a trabalhar na criação de uma infra-estrutura tecnológica e humana entre diversos grupos ibero-americanos dedicados ao campo da informática e com experiência na área de aplicações científicas potencialmente usuárias da tecnologia GRID. O objetivo principal deste projeto é construir uma rede GRID como suporte de diferentes tipos de aplicações, analisando até que ponto as soluções disponíveis atualmente são válidas, e propondo novos desenvolvimentos que proporcionem a funcionalidade necessária. Ao final do projeto será disponibilizado um conjunto significativo de aplicações piloto que poderão ser utilizadas como demonstradores da tecnologia GRID para sua difusão em outros ãmbitos.

Justificativa do projecto.

O GRID surgiu recentemente no ãmbito da super computação para satisfazer as necessidades de certos projetos científicos, ou por requerer uma enorme capacidade de cálculo ("Computational Grids") ou por maneja enormes quantidades de dados ("Data Grids"). Logo se viu que esta filosofia tem um grande potencial também para determinadas aplicações comerciais e, atualmente, existe uma clara convergência com as tecnologias baseadas em Serviços Web, com o que se chegará a uma implantação generalizada em todos os ãmbitos ("Utility Grids").

Durante este tempo se produziu um grande avanço no desenvolvimento de elementos software intermediários ("middleware"), necessários neste tipo de aplicações, como ajuda adicional para a gestão de recursos distribuídos, segurança, etc. Entretanto, o desenvolvimento de aplicações que se assentem sobre a tecnologia GRID segue sendo, hoje em dia, um trabalho quase artesanal, principalmente porque a distãncia entre os conceitos requeridos pelas aplicações e os proporcionados pelo middleware é ainda muito grande.

Para facilitar o desenvolvimento mencionado nos propusemos enriquecer o middleware com uma série de ferramentas que atualmente ou não existem ou existem em um nível muito primitivo de desempenho; distinguimos as seguintes possibilidades:

Visto que não existem ferramentas específicas orientadas ao desenvolvimento de aplicações para ambientes GRID e geralmente, os usuários seguem desenvolvendo suas aplicações seqüenciais ou no melhor dos casos paralelas com as mesmas ferramentas que utilizavam para o desenvolvimento de aplicações paralelas intra-cluster, nos propomos a desenhar tais ferramentas.

A monitorização dos sistemas GRID, tanto em nível da utilização dos recursos do sistema como do comportamento próprio das aplicações é uma facilidade conveniente. Os sistemas GRID são sistemas que mudam dinamicamente e é imprescindível dispor de informação sobre o comportamento dos mesmos para poder conseguir um uso eficiente do mesmo.

A informação sobre o comportamento do sistema ou da aplicação obtida mediante as ferramentas de monitorização devem ser analisadas, de forma que se possa determinar qual é o rendimento efetivo do mesmo e quais são as ações que devem realizar-se para melhorar dito rendimento.

À medida que aumenta o número de nós de uma plataforma GRID a possibilidade de que algum deles falhe aumenta exponencialmente. Dado que a maioria das aplicações que se executam em um GRID necessita de um grande número de recursos computacionais e muito tempo de execução, faz-se necessário dotar as ditas aplicações de algum mecanismo de tolerãncia a falhas. Incluído na ampliação da capa middleware o projeto se propõe incluir ferramentas que, da forma mais transparente possível, permitam o desenvolvimento de aplicações tolerantes a falhas, tanto seqüenciais, como paralelas. As soluções propostas devem ser portáveis a diferentes plataformas para que possam ser úteis em ambientes heterogêneos como os sistemas GRID. Os desenvolvimentos que resultem poderão, além disso, ser aplicados à migração de processos entre nós diferentes do sistema distribuído com o objetivo de balancear a carga.

Este projeto se propõe a utilizar o GRID como suporte de execução de um conjunto seleto de aplicações que foram escolhidas com base na experiência acumulada pelos diferentes grupos do consórcio nos últimos anos, e também com a intenção de combinar tanto as necessidades de cálculo como de manejo de dados. Para poder chegar a obter protótipos das aplicações que sejam totalmente funcionais ou, ao menos, com a suficiente funcionalidade para demonstrar a viabilidade das tecnologias GRID, será necessário, além de migrar as aplicações a uma arquitetura GRID, realizar desenvolvimentos complementares relativos unicamente à aplicação em si.

Hoje em dia, a principal aplicação da tecnologia GRID é a super computação distribuída, quer dizer, poder utilizar recursos computacionais disponíveis através da Internet para a resolução de problemas com grandes necessidades de potência de cálculo ou de outros recursos como podem ser capacidade de memória, espaço de armazenamento, etc. Esta tecnologia vai permitir resolver problemas tipo "grande desafio" (grand challenge) como pode ser a simulação do clima a escala planetária, análise do genoma, simulação de processos biológicos do ser humano, etc. Entretanto, como comentado anteriormente, GRID é um conceito muito mais amplo e revolucionário que vai além da simples realização de cálculos. De fato, uma área que emerge com grande força em ambientes nos quais a diversidade de fontes de informação é grande, como é o caso da biologia em geral, é o denominado "Data GRID", que deve indicar o conjunto de tecnologias necessárias para integrar essa informação e construir uma rede de recursos de processamento da informação realmente inter-operável. Aspectos chaves desta grande área de "Data GRID" é a definição das Ontologias assim como a necessidade de executar "fluxos de trabalhos" (workflows) sobre diferentes dados para se chegar a um resultado integrado.

Na atualidade, existem múltiplas aproximações para a criação de uma arquitetura GRID genérica mediante a definição de protocolos GRID padrões que permitam a interoperabilidade entre diferentes sistemas: definição de serviços, interfaces de aplicações e ferramentas de desenvolvimento de software. Entretanto, ainda não se impõs nenhum modelo concreto e embora a nível conceitual o acordo seja grande, em nível de aplicação o consenso é difícil. A atividade neste campo a nível mundial é muito importante e é na fase de desenvolvimento de uma nova tecnologia onde é vital a contribuição da comunidade científica.

Prevê-se que em um prazo relativamente curto, o mercado mature suficientemente para permitir uma adoção majoritária da tecnologia. Para conseguir uma transição suave a esta situação, é necessário integrar as novas tecnologias GRID às tecnologias já existentes. Esta integração será necessária em diferentes níveis. Um exemplo disso é o que se denomina GRID Services, que não é nada mais que combinar os conceitos do GRID e Web Services. Esta integração se realiza mediante a definição de especificações propostas por especialistas para que sejam adotadas pela comunidade, convertendo-se eventualmente em padrões. A convergência entre o GRID Services e Web Services começou a forjar-se depois da definição dos padrões OGSA e OGSI e sua implementação na versão 3.0 do Globus. Depois desta aproximação inicial para definir uns padrões de Serviços GRID, começa-se a trabalhar na definição de um novo padrão, o WSRF (Web Service Resource Framework), no qual se tenta definir um marco convergente entre Serviços GRID e Serviços Web. A primeira implementação deste padrão se realizou na última versão do Globus disponível (a 4.0).