You are on page 1of 20

FACULDADE SANTA CRUZ

GRID - Sistemas Distribudos


Prof Silvio Bortoleto

Jonathan Felipe Fantin


CURITIBA
2015

Sumrio
Comutao Paralela....................................................................................... 3
Computao Distribuda............................................................................... 3
Arquitetura................................................................................................. 4
Um Pouco de Histria..................................................................................... 4
Conceitos...................................................................................................... 5
Arquitetura.................................................................................................... 6
GRID X Clusters............................................................................................ 8
Grid Peer to Peer........................................................................................... 9
Grid x Supercomputadores............................................................................ 10
Exemplos de Grid......................................................................................... 10
Global Grid Frum........................................................................................... 10
Globus Alliance............................................................................................... 11
Globus Toolkit................................................................................................. 11
Arquitetura.................................................................................................. 12
Common Runtime..................................................................................... 13
Bibliotecas Comuns C................................................................................ 13
C Web Services Core................................................................................ 13
Java WS Core.......................................................................................... 14
Globus XIO eXtensible Input Output..........................................................14
Camada de Segurana................................................................................. 15
CAS........................................................................................................ 15
Camada de Gerenciamento de Dados..........................................................15
Grid FTP.................................................................................................. 15
RFT Public Interface.................................................................................. 16
RLS Public Interface.................................................................................. 16
Camada de Gerenciamento de Execuo........................................................17
Informaes de Servios............................................................................... 17
WS MDS.................................................................................................. 17
BOINC........................................................................................................... 17
Concluso...................................................................................................... 19
Referencias Bibliogrficas................................................................................. 20

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' qualityof-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 ncamadas 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 interdependncia 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 Notification
Java 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/