GRID - Sistemas Distribuidos

28
FACULDADE SANTA CRUZ GRID - Sistemas Distribuídos Profº Silvio Bortoleto

description

GRID - Sistemas Distribuidos

Transcript of GRID - Sistemas Distribuidos

FACULDADE SANTA CRUZ

GRID - Sistemas Distribudos

Prof Silvio Bortoleto

Jonathan Felipe FantinCURITIBA2015SumrioComutao Paralela3Computao Distribuda3Arquitetura4Um Pouco de Histria4Conceitos5Arquitetura6GRID X Clusters8Grid Peer to Peer9Grid x Supercomputadores10Exemplos de Grid10Global Grid Frum10Globus Alliance11Globus Toolkit11Arquitetura12Common Runtime13Bibliotecas Comuns C13C Web Services Core13Java WS Core14Globus XIO eXtensible Input Output14Camada de Segurana15CAS15Camada de Gerenciamento de Dados15Grid FTP15RFT Public Interface16RLS Public Interface16Camada de Gerenciamento de Execuo17Informaes de Servios17WS MDS17BOINC17Concluso19Referencias Bibliogrficas20

Introduo

Computao em Grid o termo utilizado para se referir a uma tcnica computacional que utiliza os recursos de diferentes computadores com o intuito de resolver problemas de grande complexidade e/ou volume, estando portanto, no limitada apenas execuo distribuda de algoritmos de processamento, mas tambm gerenciamento de grande quantidade de dados distribudos. Estes no precisam necessariamente ser o resultado prtico da execuo de um grid computacional. Indo ainda mais a fundo na definio de Grid, possvel utilizar-se da definio de Buya: A type of parallel and distributed system that enables the sharing, selection, and aggregation of geographically distributed autonomous resources dynamically at runtime depending on their availability, capability, performance, cost, and users' quality-of-service requirements (Trad..: Um tipo de sistema distribudo e paralelo que possibilita o compartilhamento, seleo e agregao dinamicamente, em tempo de execuo, de recursos autnomos geograficamente distribudos, de acordo com a sua disponibilidade, capacidade, performance, custo e requerimentos, do usurio, de qualidade de servio). De certa maneira, a computao em Grid encontra-se na mesma rea de atuao dos clusters e supercomputadores (muitas vezes atuando em conjunto com ambos). Com o poder de processamento dos computadores atuais aumentando a cada ano, aumenta a complexidade (e o conjunto) de problemas que podem ser resolvidos utilizando-se de grids.

Comutao Paralela

Computao paralela uma tcnica de programao cujo objetivo executar operaes em paralelo, desta maneira obtendo maior desempenho em sistemas multiprocessador, grids, etc. De modo geral o trabalho de tornar um programa capaz de ser executado em paralelo consiste basicamente em quebrar suas tarefas em partes menores. importante notar, porm, que nem todos os programas podem ser otimizados desta maneira.

Computao Distribuda

Computao distribuda um sub-ramo da computao paralela na qual parte das operaes ocorre em mquinas diferentes daquela executando o fluxo principal de um programa. Duas das propriedades da computao distribuda so: abertura: referente capacidade de cada subsistema estar continuamente aberto interao com outros subsistemas. escalabilidade: referente capacidade de cada subsistema ser expandido administrativo, geogrfica e localmente. A maneira como cada propriedade da computao distribuda aplicada varivel de acordo com a arquitetura utilizada.

Arquitetura

O conceito de Computao Distribuda bastante amplo, deste modo, conveniente dividi-lo em arquiteturas visando um melhor entendimento, bem como endereando suas particularidades em conceitos distintos.Entre as arquiteturas de computao distribuda existentes importante citar:

Cliente/Servidor: arquitetura na qual uma parte do processamento executada no cliente e a outra parte executada no servidor, podendo o servidor atender 1 ou mais clientes simultaneamente. Ex.: servidor ftp e cliente ftp. 3-Camadas: arquitetura semelhante cliente/servidor, entretanto lgica especfica da aplicao executada em um agente intermedirio. Peer To Peer: arquitetura na qual no existe um agente responsvel por gerenciar ou prover recursos. Neste caso estas responsabilidades so divididas entre todos os agentes da rede.Entretanto, essas 3 arquiteturas no so as nicas existentes, embora sejam as mais importantes e conhecidas. Para a completude do artigo conveniente citar, tambm, a existncia das seguintes arquiteturas: n-camadas, orientada servio, cdigo mvel, repositrio replicvel, etc.

Um Pouco de Histria

Embora o Grid como este concebido atualmente seja uma ideia relativamente nova, os conceitos nos quais esta tecnologia se baseia no so to novos assim e j fazem parte da histria da computao algum tempo. Como exemplo disso pode-se citar o conceito de compartilhamento de processamento, muito popular nas dcadas de sessenta e setenta, quando a capacidade de processamento dos mainframes ainda era muito limitada em relao sua aplicao. Outro conceito importante baseado na ideia de meta computao (metacomputing), ideia esta, popular na dcada de 90, e consistia em compartilhar processamento atravs de centros de supercomputadores. Por volta desta mesma poca 2 projetos recm iniciados influenciaram muito o design e aplicao dos Grids atuais: FARNER (Factory via Network Enable Recursion): inspirou conceitos de quebra e distribuio de grandes problemas computacionais. I-Way (Information Wide Area Year): projeto cujo objetivo era ligar redes de supercomputadores. Inovou atravs da utilizao de resource brokers, os quais eram conceitualmente parecidos com os resource brokers utilizados atualmente. Adicionalmente, interessante notar que, em geral, um computador atual to potente quanto um gigantesco supercomputador de uma dcada atrs, tornando o conceito de meta computao ultrapassado.

Conceitos

Assim como nos clusters, muito do poder computacional de um Grid est dvido em diversas mquinas (tambm chamadas de membros). Desta forma possvel assegurar que o trabalho de um sistema Grid no est relacionado apenas ao processamento de dados, mas tambm ao gerenciamento dos recursos alocados ao sistema. Por fim, isto torna possvel dividir o funcionamento bsico de um Grid em camadas: camada de rede, camada de recursos, middleware, aplicao e servios.

Esta diviso alm de tornar mais simples o entendimento do funcionamento de um grid, torna possvel a criao de grids de propsito geral. Grids de propsito geral so um tipo especfico de implementao de grid em que a parte utilizada para o processamento dos dados est separada da parte utilizada para gerenciar o funcionamento do grid. Uma vez que um grid constitudo de membros heterogneos fcil perceber que a interoperabilidade um conceito chave no funcionamento de um Grid. Em geral os Grids resolvem este problema atravs da utilizao de protocolos abertos (TCP, UDP, IP, Globus Toolkit, etc). Isto acaba levando alguns dos tericos, como o caso de Foster, considerarem este como um conceito chave no funcionamento e implementao de grids.

Ainda, o CERN, define 5 conceitos bsicos para a definio de um cluster:

Compartilhamento de recursos: refere-se ao compartilhamento de recursos computacionais. Uso de recursos: refere-se ao uso eficiente dos recursos disponveis e est ligado ao princpio da alocao eficiente de recursos. Acesso seguro: devido a necessidade de garantir a confiabilidade e a segurana dos dados, um cluster deve enderear os problemas inerentes poltica de acesso, autorizao e autenticao. No caso de grids comerciais este conceito ainda mais importante, pois atravs dele que definido quem usa o que. Morte da distncia: refere-se a insignificncia da distncia entre os membros do grid. Padres abertos: garante a comunicao plena dos membros do grid atravs da utilizao de padres abertos. Estes padres vm sendo definidos atualmente atravs de uma entidade chamada Global Grid Frum.

Arquitetura

Como mencionado anteriormente, a arquitetura de um grid pode ser dividida em arquiteturas, visando facilitar seu design e entendimento. Entretanto no existe apenas uma maneira de descrever um grid em camadas, assim sendo ser analisado as duas mais comuns. Uma maneira mais simples de descrever a arquitetura de um grid baseia-se na diviso do mesmo em camadas de acordo com o seu recurso.

Desta maneira tornando possvel dividir um Grid seguintes quatro camadas:

Rede: define a conectividade entre os membros do grid, e pode ser considerado o sistema nervoso de um grid. interessante notar, tambm, que na grande maioria das vezes os sistemas em grids utilizam os mesmos tipos de links disponveis para qualquer usurio comum: links internet, ethernet 10/100/1000Mbps, etc. Recursos: definem os recursos membros do grid, como computadores, sistemas de armazenamento, sensores, etc. Middleware: responsvel pela interconectividade entre os recursos do grid, bem como a segurana dos dados e comunicao, etc. Entre suas funes tambm se pode citar as negociaes mquina-a-maquina (M2M Machine 2 Machine). Esta camada , muitas vezes, constituda de um grande conjunto de softwares. Como exemplo disso, possvel citar o projeto europeu de grid de dados: European Data Grid, o qual constitudo de aproximadamente 300 mil linhas de cdigo fonte. Muitos desses softwares atuam negociando transaes de dados e outros recebendo e gerenciando-os. Fazendo, novamente, uma analogia com relao ao corpo humano, pode-se dizer que a camada Middleware o crebro do Grid. Aplicao e Servios: aplicaes (cientficas, econmicas, de engenharia, etc.) que rodam no grid, ferramentas de desenvolvimento, portais, etc.

Entre os experts em grids, porm, no incomum encontrar os grids definidos conforme a sua estrutura fsica (hardware, redes, aplicao etc.). Embora um pouco mais complicada de ser entendida por pessoas com pouca ou nenhuma experincia com tecnologia em geral, esta fornece uma viso ainda mais clara sobre as n-camadas que compem um Grid. Esta definio pode ser mais bem entendida no grfico abaixo:Detalhando cada uma das camadas fica ainda mais simples: Fabric: referente a estrutura fsica do Grid e correspondente camada de recursos e a camada de rede, na listagem anterior. Recursos e protocolos de conectividade: gerncia as transaes especficas do grid, bem como a conectividade deste com os recursos disponveis. Um pilar fundamental deste conceito a segurana. Servios coletivos: fornece informaes sobre o estado e a estrutura do grid, bem como gerncia o acesso aos recursos disponveis. Listando os servios (e dados) executados nesta camada possvel citar: mantm atualizado o diretrio de recursos disponveis, negocia a utilizao, envio e processamento de dados, monitora e diagnostica problemas no grid, prov fcil acessibilidade a dados crticos atravs da sua replicao, prov polticas de acesso ao grid. Aplicao: aplicaes que rodam no grid. a responsvel por obter as credenciais de segurana necessrias para obteno dos dados, negocia a obteno de dados com a camada de servios coletivos, monitorar o progresso das requisies, processamento e transferncias de dados.

Utilizao

Sistemas em Grid so utilizados para os mais diversos fins. Entre alguns dos problemas que os sistemas em Grid so capazes de resolver encontram-se os problemas de grande desafio (Grand Challenge). Um problema de grande desafio um tipo especfico de problema para o qual no existe soluo conhecida e que se caracteriza, basicamente, por pelo menos uma das seguintes caractersticas:

requer avanos significativos na capacidade requerida para resolv-lo. deve ter uma soluo, idealmente deve fornecer uma maneira plausvel de quantificar o progresso em relao soluo final do problema. a soluo do problema tem um impacto econmico ou social significativo.

Entre os problemas de grande desafio, pode-se citar: enovelamento de protenas (processo pelo qual uma protena assume sua forma funcional), modelagens financeira e climtica, simulaes complexas em geral, etc. Para tornar ainda mais simples o entendimento, podemos separar os problemas que os clusters podem resolver, da seguinte maneira:

de acordo com o seu grau de paralelismo, isto , de acordo com a quantidade de pequenas operaes que podem ocorrer simultaneamente. de acordo com a sua granularidade, ou seja, de acordo com a inter-dependncia do resultado de pequenas operaes em curso, variveis armazenadas no sistema. Este ainda se subdivide em fine-grained e coarse-grained (tambm conhecidos como embarassingly parallel). Grosseiramente falando, problemas puramente fine-grained se saem melhor em grandes, monolticos supercomputadores ao passo que coarse-grained se saem melhor em grids.

Problemas destacados como finegrained so tambm identificados como sendo do tipo high performance computing e os coarse-grained como high throughput computing. interessante notar, entretanto, que muitos dos problemas existentes so uma mistura de ambos os tipos. Em geral, estes problemas caracterizamse por serem grandes demais para serem processados por um nico cluster ou supercomputador. De certa forma, neste tipo de problema possvel obter uma vazo de dados e processamento muito maior atravs da utilizao de um sistema em Grid do que utilizando um supercomputador de capacidade de processamento semelhante.GRID X Clusters

Uma das controvrsias existentes em torno dos sistemas em Grid deve-se ao fato destes serem comumente confundidos com clusters. Porm, antes de definir as diferenas entre um cluster e um Grid preciso conhecer a definio de um cluster e como este trabalha.

A definio de Buya para cluster a que segue: A cluster is made up of multiple interconnected nodes that co-operatively work together as a single unified resource. Unlike Grids, clusters resources are owned by a single organization and they are managed by a centralized resource management and scheduling system. That means that all users of a cluster have to go through a centralized system that manages allocation of resources to application jobs. (trad.: um conjunto de mltiplos ns interconectados que trabalham cooperativamente juntos como um nico recurso. Ao contrrio dos Grids, os recursos de um clusters so pertencentes a uma nica organizao e eles so gerenciamentos por um recurso de gerenciamento e escalonamento centralizado. Isto significa que os usurios de um cluster tem que passar por um sistema centralizado que gerencia a alocao de recursos para os trabalhos das aplicaes).

Atravs dessa definio de Buya fica bastante claro afirmar quais so os pontos chaves nos quais os clusters se diferem dos grids: os clusters so fisicamente centralizados, isto , os membros (ns) de um cluster encontram-se dispersos sobre uma mesma rea fsica (um prdio, sala, datacenter, etc). os recursos (poder de processamento, memria, etc) de um cluster so administrados pela organizao responsvel pelo cluster. Em um Grid, a administrao deste recurso cabe a cada um dos responsveis pelos ns do Grid.

Alm disso, segundo a definio de cluster utilizada por Buya, bem como o que foi estudado anteriormente, fcil compreender alguns dos outros aspectos que definem a diferena entre ambos:

os grids, devido a sua estrutura descentralizada, tm uma disposio de recursos computacionais muito mais heterognea do que um cluster. Ou seja, a variao do poder de processamento, memria, disco, etc. dos membros de um grid muito maior do que aquela encontrada nos membros de um cluster (aonde o que se deseja geralmente o contrrio, caso contrrio, poderia configurar-se como um gargalo). os membros (ns) de um grid no precisam estar permanentemente interconectados. clusters tendem a serem utilizados para soluo de problemas lineares, ao passo que Grids devem ser utilizados para sistemas capazes de serem processados em paralelo. Por fim, importante ressaltar que possvel criar grids utilizando clusters como membros, entretanto o contrrio no possvel.

Grid Peer to Peer

Dada sua natureza tambm descentralizada, no seria de se admirar que algum se perguntasse quais as diferenas e semelhanas entre um grid e uma rede p2p. Segundo Ledlie em seu artigo Scooped Again, tanto sistemas peer to peer quanto sistemas em Grid compartilham de um conjunto de problemas em comum. importante notar, porm, que peer to peer diz respeito infraestrutura e design de uma rede. Portanto possvel afirmar que peer to peer diz respeito infraestrutura de acesso, compartilhamento e busca de informaes, ao passo que Grid diz respeito ao acesso e compartilhamento de recursos computacionais.

Grid x Supercomputadores

Supercomputador um termo, de uso amplo, utilizado para definir recursos computacionais de altssimo desempenho. Independente da sua estrutura fsica e lgica, este termo utilizado para definir recursos computacionais como: clusters, grids, etc. Supercomputadores, do ponto de vista de uma estrutura fsica e computacional nica, tambm podem fazer parte de um Grid.

Exemplos de Grid

Finalizando a introduo sobre Grids, interessante exemplificar a sua utilizao atual, de modo a poder avaliar um pouco da sua aplicao prtica. Como exemplo de sistemas em Grid, podem ser citados:

Seti@home: Search for ExtraTerrestrial Intelligence (Busca por Inteligncia Extraterrestre). Este projeto utilizado para analisar os dados recebidos pelo radiotelescpio Arecibo, localizado em Arecibo Porto Rico. LHC@home: utilizado para melhorar o acelerador de partculas LHC (Large Hadron* Collider Grande Colisor de Hadrons). Obs.: Hadron uma partcula subatmica de grande fora nuclear. Climaprection.net: visa melhorar a previso do clima longo prazo. Predictor@home: utilizado para prever a estrutura de uma protena a partir de uma sequncia proteica.

Global Grid Frum

O Global Grid Frum (GGF) uma entidade que rene usurios, empresas e desenvolvedores de Grids no mundo todo. Entre alguns dos membros do GGF importante citar: Nasa, IBM, Intel, Microsoft, Oracle, Cisco, Novartis, etc. interessante notar que entre os membros do GCF no encontram-se apenas empresas de tecnologia, como o caso da j citada Novartis, que atua na indstria farmacutica. O principal trabalho do GGF consiste em definir padres, polticas e boas prticas relacionadas ao desenvolvimento de grids, criando tambm, uma comunidade internacional de troca de ideias, experincias e requerimentos relacionados computao em grid. O GGF a entidade que produz o GGF Document Series, uma srie de documentos que definem os padres de funcionamento (por exemplo, autenticao, comunicao, transmisso de dados, etc.) de um grid. baseado nestes padres que a Globus Alliance desenvolveu o Globus Toolkit.

Globus Alliance

A Globus Alliance uma comunidade internacional cujo objetivo pesquisar e desenvolver as tecnologias fundamentais para o desenvolvimento e implantao de um grid. Entre os participantes membros to core team do projeto encontram-se: o Laboratrio Nacional Argonne da Universidade de Chicago, Universidade de Endinburgo (EPCC), Centro Nacional de Aplicaes de Supercomputadores (NCSA), Laboratrio de Computao de Alta Performance da Universidade do Norte de Illinois, Instituto Real de Tecnologia da Sucia, Corporao Univa e o Instituto de Informaes da Universidade do Sul da California. Alm destes participantes, inmeras outras universidades ao redor do mundo contribuem para o projeto. Membros da Globus Alliance participam em uma grande variedade de projetos de computao em Grid, nas mais diversas reas: astronomia, qumica, engenharia civil, meteorologia, geologia, medicina, etc. A grande contribuio da Globus Alliance para a pesquisa e desenvolvimento de grids chama-se Globus Toolkit, que um conjunto de bibliotecas e programas utilizados no desenvolvimento e implantao de Grids.

Globus Toolkit

O Globus Toolkit, tambm conhecido como GT4, onde 4 refere-se a sua verso, um dos mais famosos e usados conjuntos de ferramentas para desenvolvimento e implementao de Grids. O GT um projeto de cdigo-fonte aberto/livre iniciado por volta de 1998 pela Globus Alliance e inteiramente desenvolvido implementando padres abertos.

O GT permite que se compartilhe, com segurana atravs de uma rede, banco de dados, poder de processamento e muito mais.

O GT4 prov ferramentas e meios para gerenciamento de recursos, segurana, infraestrutura, portabilidade, tolerncia a falhas e muito mais, ao mesmo tempo respeitando a singularidade de cada entidade que possa vir a utiliza-lo.

Muitas entidades, empresas e universidades ao redor do mudo so usurios do Globus Toolkit, entre elas podemos citar:

Centro de Terremotos do Sul da California, o qual utiliza o GT para visualizao de dados simulao de terremotos. Estas simulaes cobrem uma vasta rea e utilizam-se de grficos de alta-resoluo, podendo cada simulao, chegar a 40 TeraBytes de dados. O CERN utiliza o GT nos seus grids de simulao de colises de partculas. Os cientistas do Earth Grid System (EGS) utilizam o GT para prover acesso, armazenar e processar dados de pesquisas climticas da Terra.

Assim como acontece em um grande nmero de projetos OpenSource, o GT conta com uma vasta gama de canais de fornecimento de suporte, contando com chats, listas de discusses e workshops para treinamento e suporte.

Arquitetura

O GT4, como mencionado anteriormente, um conjunto de ferramentas (aplicativos e bibliotecas) para desenvolvimento de sistemas distribudos.

De modo geral, o GT4 estruturalmente dividido em:

camada de segurana camada de gerenciamento de dados camada de gerenciamento de execuo informaes de servios common runtime (sistemas de execuo comuns)

Por fim, ainda divide-se entre as componentes Webs Services e pr Web Services.

Common Runtime

O Common Runtime um conjunto de bibliotecas e ferramentas cujos objetivos so prover um conjunto de servios Web e pr-web independente de plataforma, permitir a construo e o desenvolvimento desses servios em mltiplas camadas e aumentar a funcionalidade nas camadas mais baixas da pilha de servios. O Common Runtime programa uma enorme quantidade de protocolos padro web, entre os quais importante citar: XML (eXtensible Markup Language), SOAP (Simple Object Access Protocol), WSDSL (Web Services Description Language), TLS (Transport Layer Security), X.509, HTTP (HyperText Transfer Protocol), SMTP (Simple Mail Transfer Protocol) e muitos outros.

Bibliotecas Comuns C

O conjunto de bibliotecas comuns C fornece uma camada de abstrao entre a aplicao e o sistema operacional, a biblioteca C existente e estruturas de dados utilizados por todo o toolkit. importante lembrar, tambm, que estas bibliotecas comuns funcionam em diversos sistemas operacionais, tornando mais fcil o porte de um aplicativo para outra plataforma. As plataformas atualmente suportadas so: Linux, FreeBSD, HP/UX, AIX, Tru64 Unix, Windows, Solaris. Por fim, interessante ressaltar a importncia deste componente, uma vez que este conjunto de bibliotecas usado em praticamente todo o toolkit, devido as camadas de abstrao serem desenvolvidas na linguagem C.

C Web Services Core

O C Web Services Core (C WS Core) prov uma vasta gama de ferramentas para implementao de servios e clientes web utilizando a linguagem de programao C, a partir da qual possvel fazer ligaes (bindings) para diversas outras linguagens, como Fortran, C++, Pascal e muitas outras.

O C WS Core inclu: Um container para servios Uma interface de programao de aplicaes (API, Application Programming Interface, em ingls) plugvel para servios. Uma API para gerenciamento de recursos Uma API para gerenciamento de clientes notificadores Bindings (ligadores) geradores de WSDL para C. Servios de apoio e suporte a segurana.

O WS Core conta tambm com ferramentas de linha de comando para suporte as aplicaes desenvolvidas nessa camada, como uma ferramenta para hosperdar servicos web C e outra para gerar esqueletos em C.

Uma das grandes caractersticas do C WS core, e bastante dificil no atentar para este fato, a sua extensibilidade. Ele to extensvel, que em sua documentao o autor demonstra como utilizar os bindings WDSL C na criao de um servio de blog (um assunto completamente fora do escopo da computao distribuda).

Por fim, o C WS Core suporta os seguintes padres: HTTP SOAP XML Schema WSDL WS Security WS Addressing WS Resource Framework WS NotificationJava WS Core

Assim como o C WS Core, o Java WS Core fornece funcionalidades de servios Web, entretanto este, ao contrrio do primeiro, fornece para a linguagem Java.

O Java WS Core divido em duas partes o servio e o recurso. O servio responsvel por executar a lgica de negcios no recurso, sendo que o recurso representa um estado gerencivel.

O Java WS Core programa os padres WSRF e WSN (Web Services Notification).

Globus XIO eXtensible Input Output

O Globus XIO a biblioteca de entrada e sada do Globus, e atravs da quais conexes so abertas e fechadas. Implementada na linguagem C e definida atravs da utilizao de funes de callback, ela torna possvel a utilizao de um modelo de programao assncrono baseado em eventos. Esta biblioteca permite, entre outras coisas , que usurios definam drivers atravs dos quais os dados enviados pelos usurios podero passar, servindo de propsito especfico aplicao.

Camada de Segurana

Esta a camada responsvel pela autorizao e autenticao dentro do Globus Toolkit. Ela subdividida em duas partes menores: CAS (Central Authentication Service Servio Central de Autenticao) e Delegation Service (Servio de Delegao).

CAS

o responsvel por gerenciar as polticas de acesso em uma VO (Virtual Organization Organizao Virtual).

As polticas de acesso so armazenadas em um banco de dados, que acessados atravs de uma interface de administrao.

Servio de Delegao

Atravs da utilizao de uma estrutura de chaves pblico-privadas, permite a delegao de credenciais utilizadas para acessar recursos no/do grid.

Camada de Gerenciamento de Dados

A Camada de Gerenciamento de Dados a responsvel por armazenar, transferir e gerenciar os dados distribudos. Ele constitudo de 3 ferramentas principais: GridFTP, Reliable File Transfer Service (RFT service, servio de transferncia confivel) e Replica Location Service (RLS, servio de localizao de rplicas).

Grid FTP

O GridFTP um das ferramentas/biblioteca utilizadas pelo Globus Toolkit para implementar transferncia de arquivos de maneira eficiente. O GridFTP suporta no apenas o protocolo FTP tradicional, mas tambm algumas extenses cuja finalidade deixa-lo mais seguro. Alm disso, permite a incluso de plug-ins cujo objetivo aumentar a funcionalidade e a tolerncia a falhas do conjunto. Por fim, importante notar que o GridFTP um protocolo padro, conforme definido pelo Global GridForum em conjunto com uma srie de RFCs (Requests For Comments) da IETF (Internet Engineering Task Force). Embora o GridFTP com toda sua simplicidade seja uma ferramenta poderosa, em muitos casos ele no um servio eficiente para transferncia de dados, alm de contar com algumas pontos negativos que podem ser de extrema importncia em alguns casos. Como falhas do GridFTP pode-se citar o fato de ele mantm um socket permanentemente aberto com o servidor durante a transferncia de dados o que acaba se tornando um empecilho durante longas transferncias de dados. Outro detalhe a ser lembrado a respeito do GridFTP que este no um WSP.

RFT Public Interface

Visando atender as deficincias existentes no GridFTP, o RFT um servio que implementa o padro WSP, alm de ser concordante com o WSRF. No caso do Globus Toolkit, o RFT disponibilizado atravs de classes em Java, entretanto, segundo a documentao oficial disponvel no site, este ainda encontra-se em processo de melhoramento. Adicionalmente interessante notar que o servio RFT e implementado tendo o GridFTP como base.

RLS Public Interface

O RLS o servio responsvel por localizar as rplicas de dados nos dispositivos de armazenamento fsico que compem o grid. O RLS atua como um registro mltiplo, mantendo informaes sobre os arquivos em diversos servidores, aumentando a disponibilidade dos dados e diminuindo os pontos de falha. Para evitar confuses com entre os nomes de arquivos, o RLS utiliza um esquema de nomes de arquivos lgicos e nomes de arquivos fsicos, sendo que o primeiro um identificador nico para um arquivo e o segundo identifica a localizao deste no sistema de armazenamento.

Camada de Gerenciamento de Execuo

O Globus Toolkit fornece ferramentas para submeter, monitorar e cancelar jobs (trabalhos) em sistemas grids que utilizem o GT. Jobs so trabalhos computacionais cuja execuo pode gerar entrada/sada. No Globus Toolkit o conjunto de ferramentas que permite este controle conhecido como Gram. Em muitos casos desejado pelos usurios de um sistema de monitorar e verificar a execuo de dos dados relacionados a um job. Atender a esses requisitos, no Globus Toolkit, funo da camada de gerenciamento de execuo.Informaes de Servios

a camada responsvel por, entre outras coisas monitorao e descobrimento de sistemas e recursos disponveis no Grid. No Globus Toolkit composto pelos WS MDS e Pre WS MDS.

WS MDS

O WS MDS (Monitoring and Discovery System) o sistema cuja finalidade permitir e facilitar aos usurios a descoberta e monitorao de recursos disponveis em uma organizao virtual. No Globus Toolkit composto pelos seguintes componentes:

Agregator Framework: utilizado para construir servios de coleta e agregao de dados. Information Providers: uma fonte de dados utilizada pelo servio agregador. Index Service: um servio de agregao e indexao de dados. WebMDS: um front-end web para o Index Service.

BOINC

O BOINC (Berkley Open Infraestructure for Network Computing Infraestrutura Aberta Berkeley para Computao em Rede), uma infraestrutura para desenvolvimento e implementao de sistemas distribudos. Um dos grandes diferenciais do BOINC o fato de que diversos projetos podem, nativamente, compartilhar os mesmos recursos.

Um dos objetivos do BOINC oferecer funcionalidades poderosas, porm de fcil utilizao e desenvolvimento. Entre as funcionalidades disponibilizadas pelo BOINC pode-se citar:

Framework de desenvolvimento flexvel: aplicaes nas mais diversas linguagens (C, C++, Fortran) podem usar o BOINC com pouco ou nenhum esforo. Segurana: garante a autenticidade e a confiabilidade dos dados atravs do uso de criptografia e a autenticaes por chaves pblicas. Suporte a mltiplos servidores e tolerncia a falhas: suporta escalonadores separados e conta com um algortimo inteligente para evitar que clientes sobrecarreguem o servidor aps um down-time. Cdigo-fonte disponvel: distribudo sobre a LGPL (Lesser General Public License), permite, entre outras coisas, que seu cdigo fonte seja distribudo em conjunto com software proprietrio/fechado. Mltiplataforma: o BOINC funciona em Linux, Windows, MacOS e outros sistemas operacionais. O BOINC utilizado por uma srie de projetos, muitos deles j citados neste artigo. Provavelmente o mais famoso dos usurios do BOINC o Seti@home, projeto que visa identificar a existncia de vida extraterrestre.

Concluso

A tecnologia de computao em Grid um exemplo magnifico de como o a extensa criatividade e inteligncia dos cientistas resulta em solues prticas e, principalmente, acessveis, capazes de resolver mesmo os mais complexos problemas. Por fim, o apanhado geral sobre o Globus Toolkit, oferece uma viso do design e implementao de um sistema de grid (mesmo que este seja apenas um framework), tornando mais claro o entendimento do sistema como um todo.

Referencias Bibliogrficas

BOINC:

http://boinc.berkeley.edu/

Grid Caf:

http://gridcafe.web.cern.ch/

ClimaPrediction.net:

http://climateprediction.net/

Predictor@home:

http://predictor.scripps.edu/