Buscar

Arquitetura de Sistemas Distribuidos aula 2


Continue navegando


Prévia do material em texto

- -1
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
APLICAÇÕES DISTRIBUÍDAS E TI VERDE
- -2
Olá!
Objetivo desta aula
Ao final desta aula, o aluno será capaz de:
1- Identificar o uso de aplicações distribuídas;
2- Reconhecer as principais aplicações atuais;
3- Avaliar a contribuição da computação distribuída para a TI verde.
Introdução
Nesta aula, você estudará a importância das aplicações distribuídas e da TI verde.
Para as empresas, o valor da informação é considerado, na atualidade, como algo imensurável, e a velocidade
para adquiri-la têm fomentado investimentos no desenvolvimento da computação de alto desempenho.
Para compreendermos melhor essa questão, vamos ampliar nosso estudo sobre a necessidade e as dificuldades
de se implementar um sistema distribuído.
1 Surgimento dos sistemas distribuídos
À medida que a velocidade e a confiabilidade das redes de computadores aumentam, computadores do mundo
inteiro estão cada vez mais interconectados.
A comunicação remota via rede, originalmente reservada para grandes instalações de computadores e ambientes
acadêmicos, tem sido amplamente empregada.
Em sistemas distribuídos, computadores remotos trabalham cooperativamente por meio da rede, de modo que
seja visto como uma única máquina local.
As aplicações de sistemas distribuídos podem ser executadas em máquinas locais e remotas, além de permitir o
compartilhamento de dados, arquivos e outros recursos entre diversas máquinas.
Os sistemas distribuídos quase sempre surgem da necessidade de melhorar a capacidade e a confiabilidade de
uma única máquina (como, por exemplo, a capacidade de processamento e o tamanho de armazenamento dessa
máquina).
2 Limitação das Máquinas
Fatores econômicos podem limitar a capacidade de um sistema!
- -3
Sendo assim, ao implementar um sistema com máquinas de baixo custo, é possível projetar um poderoso sistema
sem a utilização de equipamentos dispendiosos.
Embora ofereçam muitas vantagens em relação a sistemas centralizados, os sistemas distribuídos podem ser
complexos e de difícil implementação e gerenciamento.
Por exemplo, os sistemas distribuídos têm de manipular atrasos de comunicação e problemas de confiabilidade.
É muito difícil gerenciar falhas de máquinas!
Mais difícil ainda é gerenciar sistemas distribuídos compostos por diversas máquinas, já que estão mais
propensos a sofrer queda de sistema do que os sistemas de apenas uma única máquina.
Concorrência
A execução concorrente é uma característica intrínseca de um sistema distribuído, na qual os processos
disputam pelos recursos compartilhados.
Inexistência de relógio global
A coordenação dos processos depende de uma noção compartilhada do tempo em que as ações dos programas
ocorrem.
Falhas independentes
Falhas na rede, nos sistemas ou nos processos demoram a ser percebidas nos sistemas distribuídos.
(COULOURIS; DOLLIMORE; KINDBERG, 2007).
Falácias da computação distribuída
Os sistemas distribuídos são diferentes dos softwares tradicionais, porque seus componentes estão dispersos em
uma rede.
Não levar essa dispersão em conta durante o projeto torna muitos sistemas desnecessariamente complexos, o
que resulta em erros que precisam ser corrigidos mais tarde (o que chamamos de retrabalho).
Peter Deustch formulou esses erros como as seguintes premissas falsas que todos adotam ao desenvolver uma
aplicação distribuída pela primeira vez:
· A rede é confiável
· A rede é segura
· A rede é homogênea
· A topologia não muda
· A latência é zero
· A largura de banda é infinita
· O custo do transporte é zero
· Há somente um administrador
- -4
Atributos dos Sistemas Distribuídos
Vamos conhecer alguns atributos dos sistemas distribuídos:
Latência – Tempo decorrido entre o início de uma operação e seu término. O termo latência é usado,
normalmente, para comunicações entre partes de um sistema.
Taxa de transmissão – Taxa que mede a capacidade de transmissão/recepção de informações por unidade de
tempo.
Speedup – Termo que significa ganho relativo de velocidade ou desempenho. Como exemplo de, speedup
podemos citar a razão dos tempos de execução sequencial e o paralelo.
Bottleneck – Termo que significa (um elemento de um sistema é o gargalo quando limita seugargalo 
desempenho, embora o resto do sistema ainda tenha folga para trabalhar. É desejável que não haja gargalos no
sistema e que todos os elementos alcancem seus limites juntos.
Escalabilidade – Capacidade de melhoria do desempenho do sistema distribuído conforme cresce o número de
elementos processadores (de acordo com Neuman (1994), a escalabilidade pode ser medida, a princípio, por três
dimensões, quais sejam: – o que significa que é fácil adicionar mais usuários eEm relação a seu tamanho
recursos ao sistema; – trata-se de um sistema nos quais usuários e recursos podemEm termos geográficos
estar longe uns dos outros; – o que significa que o sistema ainda pode ser fácil deEm termos administrativos
gerenciar, mesmo que seja abrangente).
Balanceamento de Carga – Característica que permite ao sistema distribuído dividir, adequadamente, suas
tarefas, de modoque um elemento processador não fique mais sobrecarregado que os outros.
Throughput – Medida de produtividade de um sistema. Essa medida exprime, por unidade de tempo, a
produção efetiva do sistema em termos de tarefas, transações, operações, etc.
Confiabilidade – Característica do sistema que dá maior ou menor certeza de que vai funcionar a contento.
Tolerância a falhas – Capacidade de o sistema sobreviver à falha de alguns de seus elementos. 
Disponibilidade – Característica que indica quanto tempo o sistema funcionará ininterruptamente sem ser
afetado por falhas, manutenção preventiva ou corretiva, etc.
Segurança – Garantia de o sistema fazer, de maneira correta e para os usuários corretos, aquilo para o qual foi
projetado (em outras palavras, usuários ou programas não autorizados não devem ter acesso aos recursos do
sistema. O sistema deve ser capaz de garantir que essa diretriz seja cumprida. Caso contrário, esse mesmo
sistema deve detectar como, quando e por que não se cumpriu o estabelecido).
Migração de tarefas – Transferência de responsabilidade de execução de uma tarefa de um elemento para
outro. A migração de tarefas de ser de processos ou de computação.
Migração de dados – Transferência de dados de um elemento processador para outro.
- -5
Replicação- Duplicação de recursos de um elemento processador em outro.
Transparência – Característica que esconde de usuários ou aplicativos detalhes de funcionamento do sistema
distribuído, de tal forma que se tenha a impressão de que esse sistema é centralizado .
Veja agora alguns aspectos de transparência (ISO, 1995):
Acesso – oculta diferenças na representação de dados e no modo de acesso a um recurso;
Localização – oculta o lugar em que um recurso está localizado;
Migração – oculta que um recurso pode ser movido para outra localização;
Relocação – oculta que um recurso pode ser movido para outra localização durante o uso;
Replicação – oculta que um recurso é replicado;
Concorrência – oculta que um recurso pode ser compartilhado por diversos usuários concorrentes;
Falha – oculta a falha e a recuperação de um recurso.
Imagem Única do Sistema (SSI)
Um Sistema de Imagem Única (SS!) é a propriedade de se ocultar a complexidade envolvida em uma natureza
distribuida e heterogênea de recursos disponíveis para os usuários e aplicações, de tal forma que estes
visualizem o sistema como um recurso único. (PITANGA, 2004)
Veja, a seguir, alguns beneficios do SSI:
Os serviços podem ser requisitados a partir de qualquer nó do sistema;· 
A localização de dispositivos fisicos pode ser totalmente transparente para o usuário;· 
O sistema apresenta disponibilidade em seus serviços;· 
O sistema permite ao usuário trabalhar com uma interface simplificada, com comandos que ajudem a· 
administrar o cluster por inteiro, como se fosse uma única máquina;
O sistema reduz riscos em errosoperacionais e apresenta maior disponibilidade;· 
O sistema permite a localização independente para a comunicação das mensagens, unificando o espaço de· 
comunicação entre processos;
O sistema permite um modelo de processos com espaço globalizado para balanceamento de carga;· 
O sistema permite que diversos componentes de uma aplicação trabalhem, de forma cooperativa, para criar a· 
imagem de uma única aplicação no sistema;
Quanto à concorrência, os usuários não devem notar que existem outras pessoas utilizando o sistema.· 
- -6
3 Máquinas mais velozes
Desde 1993, o site publica, semestralmente, um ranking dos 500 computadores com maior TOP500
desempenho no mundo.
Na lista do , são obtidos pelo benchmark os seguintes resultados: ranking*
Rmax – performance para o maior problema executado em uma máquina (em Gflop/s);
Nmax – tamanho do maior problema executado em uma máquina;
N1/2 – tamanho quando metade de Rmax é executado;
Rpeak – pico de performance teórico para a máquina (em Gflop/s).
https://top500.org
*Esse ranking é baseado nas informações do programa utilizado para a análise de performance: o LINPACK
benchmark. Sua atualização ocorre no mês de junho, coincidindo com a International Supercomputer
Conference, e no mês de novembro, na IEEE Supercomputer Conferente.
Um computador japonês conquistou o 1º lugar no ranking de junho de 2011, com desempenho medido em 8.16
petaflops.
O K computer é mais poderoso que os próximos cinco sistemas da lista combinados.
O desempenho foi medido com 68.554 processadores SPARC64VIIIfx, cada um com oito núcleos, em um total de
548.352 núcleos (quase o dobro de qualquer outro sistema dessa lista).
Até sua conclusão, essa máquina terá mais de 80.000 processadores!
3.1 Brasil no ranking das máquinas mais velozes
O Brasil tem dois supercomputadores na lista do ranking dos computadores mais velozes do mundo:
Tupi - Operado pelo Instituto Nacional de Pesquisas Espaciais (INPE) – ocupa a 34ª posição, com 30.270
processadores AMD Opteron de 12 núcleos, cada um rodando a 2.1 GHz e com desempenho de 205.1 teraflops.
Galileu - Operado pelo Núcleo de Atendimento em Computação de Alto Desempenho (NACAD/COPPE), da
Universidade Federal do Rio de Janeiro (UFRJ) – ocupa a 167ª posição, com 6.464 processadores Intel Xeon
Nehalem de 2.8 GHz cada, e desempenho de 64.6 teraflops.
Gráfico do ranking TOP500
Veja, a seguir, gráficos fornecidos pelo ranking TOP500 que apresentam o desenvolvimento da performance dos
supercomputadores, de 1993 a 2011, e sua projeção:
https://top500.org/
https://top500.org
- -7
4 Intranet
De acordo com Marcelo (2002), a intranet consiste em:
“[...] redes corporativas que se utilizam de tecnologia e de infraestrutura de comunicação de dados da internet.
Essas redes são utilizadas na comunicação interna da própria empresa e também na comunicação com outras
empresas. [...]
Portanto, a intranet é o uso da tecnologia da internet na rede corporativa da empresa. Ela facilita a distribuição
de documentos, a transferência de arquivos, a consulta à informação e muitas outras aplicações.”
Diagrama da intranet
Veja, a seguir, um diagrama esquemático de uma intranet.
- -8
5 Computação em grade (grid computing)
A tecnologia por trás da computação em grade é um conjunto de que gerenciamsoftwares middleware*
recursos distribuidos e espalhados pela organização, disponibilizando os servidores e, eventualmente, os
desktops da empresa.
A ideia básica é combinar os recursos disponíveis com as demandas computacionais das empresas.(CHEDE,
2004, p. 16)
Computação em grade é uma maneira bastante eficiente de maximizar recursos computacionais.
Trata-se de uma consolidação virtual de servidores. (CHEDE, 2004).
*Designação utilizada para se referir ao software executado entre as aplicações distribuídas e o sistema
operacional. O middleware ajuda a fornecer portabilidade, transparência e interoperabilidade entre sistemas
distribuídos.
Exemplo de grid computing
Veja, a seguir, o Worldwide LHC Computing Grid (CERN) – uma computação em grade:
- -9
Fonte: Imagens disponíveis no link http://michaelgr.com/2008/10/03/cern-unveils-the-worldwide-lhc-
computing-grid
6 Computação oportunista - projeto SETIG
O conceito de computação oportunista consiste em usar redes de computadores para resolver problemas
computacionais. Esse conceito se popularizou com o sucesso do projeto SETIe, baseado na ideia do voluntariado,
em que um usuário toma a decisão de ceder ciclos ociosos de seu computador para contribuir com uma
determinada organização para a execução de alguma tarefa. (CHEDE, 2004, p. 57)
Veja, a seguir, figuras do projeto SETI@home:
Fonte: Imagens disponíveis nos links #1 e #2 #1 https://pt.wikipedia.org/wiki/SETI#SETI.40HOME #2 
https://boinc.berkeley.edu
- -10
7 Computação oportunista - projeto BOINC
Outro projeto que pode ser citado no campo da computação oportunista é o Berkeley Infraestructure for
Network Computing (BOINC), que tem como proposta permitir que o usuário possa operar simultaneamente
diversos projetos desse tipo de computação.
Veja, a seguir, a realização de uma previsão de clima, utilizando o projeto BOINC:
8 Sistemas distribuídos e TI verde
A virtualização é a camada de abstração entre sistemas de hardware de computador e do software que roda
nesses sistemas, proporcionando uma visão lógica dos recursos de computação.
Trata-se de uma das formas de economizar recursos e praticar TI verde!
A virtualização trata de estender ou substituir uma interface existente, de modo a imitar o comportamento de
outro sistema.
Uma das razões mais importantes para introduzir a virtualização na década de 1970 foi permitir que softwares
herdados (aplicações e sistemas operacionais) executassem em hardwares de mainframe. (TANENBAUM, 2007)
Procure, por exemplo, comparar o que é real e o que é virtual!
- -11
Algo real possui características físicas; já o virtual está vinculado à simulação.
Sendo assim, a virtualização pode ser definida como uma simulação de um ambiente real.
Virtualização e o sistema de conectividade
Atualmente, grande parte dos computadores está conectada por redes de computadores!
Essa conectividade exige dos administradores que um conjunto grande e heterogêneo de computadores
servidores execute (cada um) diferentes aplicações utilizando diferentes recursos, que podem ser acessadas por
diversos clientes.
A virtualização pode contribuir muito nesse sentido!
Em primeiro lugar, porque a diversidade de plataformas e máquinas pode ser reduzida.
Em segundo lugar, porque cada aplicação pode executar em sua própria máquina virtual, incluindo,
possivelmente, suas bibliotecas e o sistema operacional (ambos relacionados), que estariam executando em uma
plataforma comum.
Diagrama esquemático da máquina virtual
Veja, a seguir, um diagrama esquemático de uma máquina virtual:
Supercomputadores e TI verde
- -12
Desde abril de 2005, o site Green500 fornece um ranking dos mais eficientes supercomputadores do mundo em
termos energéticos. Por décadas, a noção de performance tem sido sinônimo de velocidade.
Esse enfoque especial levou ao surgimento de supercomputadores que consomem grandes quantidades de
energia elétrica e produzem tanto calor que exigem enormes instalações de refrigeração.
Alguns supercomputadores têm liderado essas listas que são publicadas semestralmente, como as do ranking
TOP500. Um deles aparece no ranking Green500 de junho de 2011: o Cluster DEGIMA, da Universidade de
Nagasaki, no Japão. Outro máquina que obteve destaque no mesmo mês e ano é o IBM Blue Gene (protótipo/Q),
que possui eficiência energética de 2097 MFLOPS/watt. Esse supercomputador aparece como o número 1 do
ranking Green500. Veja:
O que vem na próxima aula
Na próxima aula, você estudará sobre os seguintes assuntos:
•Tratamento de falhas;
•Métodos de tratamento de falhas em sistemas distribuídos.
CONCLUSÃO
Nesta aula, você:
• Conheceu as falácias da computação distribuída;•- -13
• Conheceu as falácias da computação distribuída;
• Identificou os atributos dos sistemas distribuídos;
• Identificou o uso de algumas aplicações distribuídas;
• Identificou os maiores computadores com desempenho no mundo;
• Compreendeu a necessidade de se tratar o uso consciente da eficiência energética em máquinas 
multiprocessadas.
•
•
•
•
•
	Olá!
	1 Surgimento dos sistemas distribuídos
	2 Limitação das Máquinas
	3 Máquinas mais velozes
	3.1 Brasil no ranking das máquinas mais velozes
	4 Intranet
	5 Computação em grade (grid computing)
	6 Computação oportunista - projeto SETIG
	7 Computação oportunista - projeto BOINC
	8 Sistemas distribuídos e TI verde
	O que vem na próxima aula
	CONCLUSÃO