2. Grades computacionais
Computação em grade (do inglês Grid Computing)
é um modelo computacional capaz de alcançar uma
alta taxa de processamento dividindo as tarefas
entre diversas máquinas, podendo ser em rede
local ou rede de longa distância, que formam uma
máquina virtual. Esses processos serão executados
no momento em que as máquinas não estão sendo
utilizadas pelo usuário assim evitando o desperdício
de processamento da máquina utilizada.
[wikipedia, 2008]
3. Grids nas nuvens
As grades computacionais são capazes de criar um
ambiente de processamento paralelo que utiliza os
recursos computacionais ociosos das máquinas que
podem estar localizadas em diferentes regiões.[Ian
Foster, 1998].
4. Características dos Grids
A computação em Grade tornou-se realidade no
laboratório de Argonne na década de 90 com o propósito
de auxiliar atividade de pesquisa e desenvolvimento
científico. Montada em um ambiente de processamento
paralelo capaz de utilizar os recursos computacionais
ociosos de instituições localizadas em diferentes regiões e
com diferentes tipos de redes, formando um sistema robusto,
dinâmico e escalável. O modelo de computação em grade
se apresenta ao usuário como um computador virtual,
ocultando a infra-estrutura distribuída capaz de executar
processos de forma eficaz, transparente e segura, e de
compartilhar espaço de armazenamento, dados, aplicações
e dispositivos.
5. Emprego dos Grids
Engenheiros: com a utilização de grades
computacionais, podem obter respostas de
processamento em tempo real para diversas
aplicações, como as modelagens em larga escala de
estruturas complexas.
Cientistas: a principal característica que estes almejam
é a eficiente capacidade de visualização que as
grades podem oferecer. Nestes casos, são realizados
experimentos no qual cada processo corrente pode ser
visualizado detalhadamente e separadamente de
outros que estão sendo processados em paralelo.
Através desta característica, podem-se promover
simulações com grande eficiência.
6. Emprego dos Grids
Educadores: com a capacidade de processamento
oferecida pelas grades computacionais, podem ser criados
laboratórios e salas de aulas virtuais, onde estes utilizariam
um ambiente totalmente preparado e capaz de prover
ensino de qualidade à distância através de ambientes
multimídia, salas de aula virtuais e tridimensionais,
armazenamento de arquivos, vídeo conferencias e encontros
virtuais.
Corporações: com a necessidade de processamento de alto
desempenho, principalmente quando se refere à qualidade
e tempo mínimo de produção. As grades inserem-se
perfeitamente no cenário onde se necessita de alto
desempenho para fabricar produtos, e para empresas que
manipulam grande quantidade de dados.
7. BERKELEY - Após mais do que o equivalente a um milhão de anos de computação
(Nota do Editor: comparado ao atual poder de processamento dos programas SETI
convencionais), por mais de 4 milhões de computadores espalhados pelo mundo,
o protetor-de-tela SETI@home, que processa dados em busca de sinais inteligentes
vindos do espaço, produziu uma lista das fontes de sinais de rádio que merecem receber
uma segunda olhada.
8. SETI@HOME
Nos anos 90, após perder seu financiamento
governamental, um projeto norte-americano que
buscava por sinais de vida inteligente em outros
planetas – o SETI (Search for Extra-Terrestrial
Intelligence) - teria apostado na abordagem da
computação distribuída para não abandonar suas
pesquisas.
9. SETI@HOME
SETI@home ofereceu seu protetor-de-tela ao mundo
em maio de 1999, como o primeiro exemplo de
processamento distribuído em larga escala –
conectando através da Internet computadores ociosos
para atacar problemas computacionais de grande
porte. A chave do seu sucesso foi uma produtiva
colaboração entre Anderson, um cientista
computacional e um dos principais desenvolvedores do
conceito do processamento distribuído, e Werthimer, um
físico com duas décadas de experiência coletando e
triando sinais de rádio em busca de sinais incomuns
vindos do espaço.
10. SETI@HOME
O projeto disponibiliza em sua página web um cliente
que pode ser obtido por qualquer um que deseja-se
doar seus recursos ociosos. Por possuir esta
característica de utilizar recursos ociosos de qualquer
computador conectado a internet, a grade do projeto
SETI@home pôde ser considerado o segundo
computador mais potente da Terra, com 162
teraFLOPS, contando com 5.436.301 CPUs conectadas,
o que corresponde a aproximadamente
2.433.979,781 anos de processamento em uma CPU
comum (dados em janeiro de 2006). Perdendo apenas
para o BlueGene/L, com capacidade de 280,7
teraFLOPS.
11. SETI@HOME
Atualmente o projeto se dedica a utilizar o poder
computacional para a descoberta de doenças, teste
de medicamentos e simulações genéticas.
12. Outro projetos
Podemos citar também outros projetos tais como o
ChessBrain, que busca criar um super computador
virtual para jogo de xadrez, o Climapredition.net
que busca prever o clima mundial com maior
precisão, o projeto fightAIDS@home que é um
projeto de pesquisa em parceria com a empresa
Entropia e o laboratório Olson que ajuda na
pesquisa contra a AIDS, entre outros.
13. Projeto de Grids
Para se projetar um ambiente de grades computacionais, temos
como características básicas:
Recursos coordenados e compartilhados: onde as aplicações
compartilham recursos entre si. As aplicações que permitem
paralelismo são as mais empregadas nesse ambiente.
Ambientes heterogêneos: as aplicações não são restritas a
ambientes operacionais únicos, não havendo dependência de
ambiente. As grades destacam-se como uma tecnologia fortemente
heterogênea. Com o uso de dezenas, centenas ou até milhares de
computadores compartilhando seus recursos, as grades não se
limitam em utilizar dispositivos iguais ou uma única plataforma,
como o sistema operacional.
14. Projeto de Grids
Segurança e autenticação: em um ambiente em grade,
deve considerar a heterogeneidade e o dinamismo.
Sendo assim, o sistema não deve ficar restrito a
características específicas de um sistema ou empresa. A
segurança no processo deve ser garantida, com
processos de autenticação e permissões/restrições. As
grades podem ser configuradas para fazer melhor uso
em sua banda através de dispositivos de redes
integrados capazes de transmitir altas taxas de bits,
utilizando-se de criptografia e/ou autenticação [Clube
do hardware,2005].
15. Projeto de Grids
Recursos dinâmicos e escaláveis: recursos são utilizados a medida que são
necessários. Computadores agregados a rede fornecem recursos que se somam. Por
ser um ambiente de larga escala, apresenta uma grande capacidade de
expansão, podendo adicionar nós, como Desktops e Servidores, em sua rede de
computadores a qualquer momento sem que comprometa os outros nós que já
fazem parte da grade. Por utilizar recursos espalhados em diversos domínios
independentes de suas posições geográficas, as grades podem aumentar a sua
capacidade computacional e sempre oferecer aos usuários uma crescente melhora
no desempenho, executando as tarefas com a máxima utilização dos recursos
oferecidos.
Ambiente distribuído: em uma grade computacional as aplicações devem ser
sempre distribuídas e devem-se considerar todos os aspectos inerentes a esse tipo
de arquitetura. No aspecto de computação em demanda, as grades têm valor
significativo por serem capazes de criar infra-estruturas operacionais flexíveis,
conseguindo enfrentar com sucesso as flutuações súbitas de demanda. Esta
demanda pode ser destacada na constante variação de tecnologias, que acarreta
na crescente exigência computacional por partes dos usuários.
16. Características
As grades de acordo com suas características, são
realizadas algumas comparações com outros modelos de
sistemas distribuídos existentes.
SMP: (Symmetric MultiProcessing) o sistema de
processamento distribuído SMP utiliza uma memória
compartilhada e diversos processadores para executar uma
tarefa. A distribuição das tarefas é feita por um
escalonador que ficará responsável apenas pela
distribuição dos Jobs, ou tarefas, nos processadores, pois a
existência de uma memória única não torna necessário
alocação de memórias independentes. Assim, pode-se
confirmar que ambientes construídos em modelos SMP
possuem um sistema mono-tarefa, fracamente distribuído,
porém fortemente acoplado.
17. Características
MPP: (Massively Parallel Processin), o sistema de processamento
distribuído MMP não segue um modelo de compartilhamento de
memória, pois são formados de nós independentes e interligados
que possuem um sistema próprio para processar os Jobs distribuídos.
Estes jobs são distribuídos também por um escalonador de tarefas
como no sistema SMP, diferenciando-se apenas no método de
distribuição, já que os jobs não irão ocupar uma única memória
compartilhada, mas na verdade várias memórias independentes,
tornando-se assim um ambiente operacional mais complexo que o
SMP. Podemos afirmar portanto que os ambientes MPP são
fortemente distribuídos, já que não se limitam na quantidade de
processadores suportados em uma única memória compartilhada,
multi-tarefa e fracamente acoplados.
19. Camada de estrutura
Camada responsável por compartilhar os recursos, utilizando como
intermédio, os protocolos de grades. É responsável por implementar os
mecanismos de gerenciamento que controlam o acesso aos recursos
computacionais, de armazenamento e de rede. Estes recursos pode ser uma
entidade lógica implementada com protocolos internos, sem que
comprometa o funcionamento da grade. Nesta camada os recursos podem
ser implementados como mecanismos de descoberta de outras estruturas,
status e potencialidade das grades, como também prover qualidade de
serviços utilizando mecanismos de gerência de recursos, onde recursos
computacionais são necessários para iniciar programas, monitorar e
controlar a execução dos processos, recursos de armazenamento com a
função de inserir e retirar dados dos dispositivos de armazenamento, ou
seja, a leitura e escrita das informações contidas na grade, recursos de
rede com o controle sobre os recursos alocados na transferência de dados
pela rede, tais como priorização e reserva.
20. Camada de conectividade
Possui muita importância na arquitetura de grades, é
responsável pelas definições dos protocolos de comunicação
e autenticação necessários nas transações realizadas em
uma grade. Nesta camada são habilitadas as trocas de
dados entre os recursos da camada de estrutura, sendo
responsável pelo controle gerencial de acesso na camada
inferior. De acordo com o modelo de arquitetura de grades,
os serviços oferecidos pela camada de conectividade são
de transporte, de rota e de nomes, sendo estes utilizados
dentro do escopo proposto. Os serviços oferecidos pela
camada de conectividade são baseados nos protocolos
utilizados na especificação da camada de Internet, tais
como o TCP e o UDP como serviços de transporte e o
Domain Name System (DNS) [Webopedia, 2005].
21. Camada de recursos
A camada de recursos conforme Ian, 2004, constrói na camada de
conectividade um conjunto de regras de comunicação e autenticação
responsável pela definição dos serviços, como APIs e SDKs, que,
posteriormente, farão a negociação entre as camadas superior e
inferior de forma segura, o monitoramento e o controle dos recursos,
e, por fim, a contabilização referente ao tempo de uso dos recursos.
Os protocolos implementados na camada de estrutura possibilitam a
chamada de funções que provêem o acesso e o controle local dos
recursos nesta camada. Os protocolos são divididos em dois:
informação e gerenciamento, sendo o primeiro o protocolo utilizado
para obter informações sobre a estrutura e o estado dos recursos, e
o segundo têm como função ajustar as regras de acesso aos
recursos compartilhados.
22. Camada de coletividade
A camada de coletividade, conforme Pankratius & Vossen, 2005,
não se preocupa apenas com os serviços e protocolos de um único
recurso por possuírem características globais, usam as instâncias
capturadas entre toda coleção/conjunto de recursos, justificando
assim a origem do nome coletividade.
São exemplos de protocolos de coletividade o serviço de diretório
que possibilita a descoberta da existência e/ou propriedades dos
recursos. O serviço de co-alocação e escalonamento que permitem
requisições de alocação de um ou mais recursos para uma
determinada tarefa, escalonando nos recursos apropriados.O
serviço de monitoramento e diagnóstico que oferece suporte de
monitoramento aos recursos na ocorrência de falhas, ataques
(detectores de intrusão), carga excedente, dentre outros. E o serviço
de replicação de dados que é responsável pelo gerenciamento dos
recursos de armazenamento.
23. Camada de aplicação
Nesta camada serão desenvolvidas as aplicações
que farão parte das grades, onde estas são
construídas seguindo os modelos de serviços de
qualquer camada inferior. Para cada camadas
podem ser requisitados serviços bem definidos de
gerenciamento de recursos, acesso a dados,
descoberta de recursos, dentre outros.
24. Arquitetura OGSA
O conceito fundamental da arquitetura OGSA é a grade orientada a
serviços, que são apresentados como serviços Web especiais, permitindo a
distribuição e acesso a recursos distribuídos em ambientes dinâmicos
heterogêneos. Esses serviços tem suas interfaces descritas através da
WSDL, sendo criados e gerenciados de acordo com os mecanismos
definidos pela Open Grid Services Infrastruture (OGSI).
OGSA define a semântica da interface de serviços para criação das
instâncias, seus nomes, como gerenciar o seu tempo de vida e os protocolos
para comunicação. A criação de uma nova instância envolve a criação de
novos processos no ambiente responsável pelo suporte dos serviços.
Múltiplas instâncias de serviços podem corresponder a uma mesma
interface. Dessa forma OGSA faz modificações nos ambientes adicionando
suporte aos serviços da grade. A capacidade dos serviços da grade
podem ser recursos computacionais, recursos de armazenamento, redes,
programas, bancos de dados, etc. Um serviço de grade implementa um ou
mais interfaces, onde cada interface é definida através de um conjunto de
métodos com chamadas adaptadas ao SOAP.