Buscar

Aulas 01a10 Arquitetura de Sistemas Distribuídos com info das Web Aulas Estacio

Prévia do material em texto

Introdução
Aula 01
002
Aplicações Distribuídas e TI VERDE
Aula 02
 035
Tratamento de Falhas
Aula 03
055
Classificação de Flynn
Aula 04
 084
Modelo Cliente/Servidor
Aula 05
 112
Sockets e RPC
Aula 06
 072
Modelo P2P
Aula 07
 084
Sistemas de Arquivos Distribuídos
Aula 08
104
Serviços WEB
Aula 09
120
Tecnologia: Computação Ubíqua e nas Nuvens
Aula 10
135
ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
ESTRUTURA DA DISCIPLINA
Aula de REVISÃO para AV1
RAV1
 155
DIEGO RAFAEL MORAES / Simone Markenson
ARQ SIST DISTRIBUÍDOS
Conteúdo Programático AULA 1
Evolução da computação
Conceitos de Sistemas Distribuídos
Computação centralizada x Computação Distribuída
O profissional da área de tecnologia da informação atua diretamente no planejamento, na implementação e na implantação de soluções de TI nas organizações. Dessa forma, é importante que compreenda os conceitos, os benefícios, as características e as restrições de cada arquitetura. Nesta aula abordaremos esses tópicos, com alguns exemplos.
3
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
1970
2013
1980
Evolução Histórica do Processamento
1950
1960
Mainframe
Time-sharing
Redes
Sistemas Distribuídos
?
Nuvem
4
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
A ERA DO MAINFRAME
Main = Principal Frame = Estrutura
Não está relacionado a tamanho nem a poder computacional !
Até meados dos anos 70:
	- Proprietário
	- Caro
	- Pouco escalável
	- Limites
5
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Menu
01
02
03
04
05
06
07
08
09
10
RAV1
ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
Aula 4 – Classificação de Flynn
Definir a classificação de Flynn;
2) Reconhecer as implementações da arquitetura MIMD e as características de desenvolvimento de aplicações para essa arquitetura;
3) Descrever a motivação a partir de alguns modelos de programação paralela.
Classificação geral
Detalhando cada tipo
Modelos de programação
ARQ SIST DISTRIBUÍDOS
84
7
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
8
Arquiteturas
Sequenciais
Arquiteturas
Pipeline
Arquiteturas
Superescalares
Arquiteturas
SMT
Arquiteturas
VLIW
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Menu
01
02
03
04
05
06
07
08
09
10
RAV1
ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
Aula 7 – Modelo PEER TO PEER (P2P)
1- Reconhecer o modelo Peer-to-Peer (P2P) e seus componentes de comunicação;
2- Identificar os diferentes tipos de implementação desse modelo.
Características do Modelo P2P
Aplicações P2P
ARQ SIST DISTRIBUÍDOS
207
MISD – Multiple Instruction Single Data
?????????
89
Não há implementação desse modelo ainda. Teria de ter um módulo de controle e 
Todos os processadores trabalhando em cima de um único dado.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Menu
01
02
03
04
05
06
07
08
09
10
RAV1
ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
Aula 9 – Serviços WEB
Definir o conceito de serviços web;
Identificar os componentes utilizados para o desenvolvimento desses serviços;
ARQ SIST DISTRIBUÍDOS
256
Arquiteturas MIMD
todos os processadores compartilham a memória principal
MIMD
Multiprocessadores
UMA
NUMA
Multicomputadores
MPP
COW
92
Memória Compartilhada
Memória NÃO Compartilhada
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Menu
01
02
03
04
05
06
07
08
09
10
RAV1
ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
Aula de Revisão AV1
ARQ SIST DISTRIBUÍDOS
156
Arquiteturas MIMD
Cada computador é um nó de processamento
MIMD
Multiprocessadores
UMA
NUMA
Multicomputadores
MPP
COW
95
Memória Compartilhada
Memória NÃO Compartilhada
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
15
B
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
16
C
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
17
D
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Técnicas de tratamento
74
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
19
1
 – Mainframe: termo utilizado para se referenciar a um grande computador, normalmente produzido por uma grande empresa. O nome tem origem na forma com que estes computadores eram construídos. Todos os componentes (processador, memória...) do computador principal (main) são colocados em uma única estrutura (frame).
– Características
– Sistemas multiusuários 
– Sistemas proprietários -> hardware, software, rede
– Instalação e manutenção feita pelo fabricante -> confiabilidade X custo
Computação centralizada
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
 
Ampliação do parque computacional, em função de:
• Processadores mais rápidos e mais baratos.
• Redes mais rápidas e acessíveis.
• Liberdade de escolha.
• Menor custo de manutenção.
• Necessidade inerente de conectividade.
• Aplicação básica: compartilhamento de recursos.
Evolução: 
Os terminais foram sendo substituídos pelos primeiros microcomputadores, que começavam a ficar obsoletos. Em geral, o uso de um programa emulador de terminais e de uma unidade de disquete era suficiente para que um simples PC-XT executasse essa tarefa, uma vez que só precisaria executar o emulador. A partir deste ponto, o micro passaria a se comportar como um terminal. Em alguns casos, era necessário o uso de uma placa que compatibilizasse a forma de comunicação serial entre os dois computadores.
20
2
Microcomputadores e redes de computadores
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
21
3
 
Utilização das Redes de Computadores (locais e de longa distância) para execução colaborativa e cooperativa de aplicações e não somente para compartilhamento de recursos.
Conceito: É um sistema em que os computadores estão conectados em rede e coordenam suas ações por meio de troca de mensagens.
Sistema Distribuído = computadores + rede + aplicação
Sistemas Distribuídos
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
22
4
  Vantagens:
• Melhor relação preço/desempenho
• Capacidade de crescimento incremental (escalabilidade)
• Tolerância a falhas
Comparação com sistemas centralizados
 Desvantagens:
• Falta de padronização para desenvolvimento de software
• Falta de uma divisão clara entre sistema/aplicação
• Latência e possibilidade de congestionamento na rede
• Redução da segurança
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
AINDA EXISTE “MAINFRAME”?
Desde seu início, a indústria de computadores tem se voltado para uma pesquisa interminável, em busca de ampliar, cada vez mais, seu poder no âmbito computacional. O Eniac podia executar 300 operações por segundo, sendo, tranquilamente, mil vezes mais rápido do que qualquer calculadora anterior a ele, e, mesmo assim, as pessoas ainda não estavam satisfeitas. Hoje temos máquinas um milhão de vezes mais rápidas do que o Eniac e, contudo, existe demanda para um poder computacional maior.
Não importa quanto poder computacional exista: ele nunca será suficiente. No passado, a solução era fazer com que o relógio do processador fosse executado mais rápido (overclocking). Infelizmente,  estamos começando a atingir alguns limites fundamentais na frequência do clock. De acordo com a teoria da relatividade de Einstein, nenhum sinal elétrico pode propagar mais rápido do que a velocidade da luz. Construir computadores com tamanho reduzido pode ser possível, mas, logo surge outro problema fundamental: a dissipação de calor. Quanto maior a frequência do relógio do processador, maior será a produção de calor produzida por ele; e quanto menor o computador, maiores serão os problemas associados à dissipação desse calor. Uma maneira de aumentar a
velocidade é fazer uso de computadores altamente paralelos. Essas máquinas são construídas com muitas CPUs (unidade central de processamento),
objetivando processar, coletivamente, com muito mais poder 
computacional do que com apenas uma única CPU.
Matéria no Olhar Digital sobre Main Frame
24
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
AINDA EXISTE “MAINFRAME”?
Por outro lado, com a evolução da internet, podemos analisar que um sistema com centenas de computadoresespalhados pelo mundo não difere de um sistema de centenas de computadores em uma única sala, embora a latência e outras características técnicas sejam diferentes. Neste contexto, colocar uma quantidade representativa de computadores em uma sala é até fácil, desde que se tenham recursos financeiros, espaço físico e uma infraestrutura mínima. O espaço deixará de ser um problema, se esses computadores estiverem espalhados ao redor
do mundo. A preocupação surge quando queremos que eles se comuniquem uns com os 
outros para trabalhar em conjunto na solução de um único problema. Os sistemas com 
múltiplos processadores caracterizam-se por possuir mais de uma CPU, interligadas, trabalhando em conjunto. Múltiplos processadores podem ser utilizados, simultaneamente,
por diversos processos diferentes, e, com eles, novos problemas de concorrência são introduzidos, porque vários processos podem querer acessar um dispositivo ao 
mesmo tempo. 
Matéria no Olhar Digital sobre Main Frame
25
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
AS REDES DE COMPUTADORES
Qual a diferença entre um computador na sala ao lado ou na China?
Para que uma rede?
Compartilhamento
Escalabilidade
Diferentes formas de conexão
26
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Sistemas em que os computadores estão conectados em rede e coordenam suas ações através de troca de mensagens.
 
SISTEMAS DISTRIBUÍDOS
CARACTERÍSTICAS:
baixo acoplamento e atrasos na comunicação;
processos em sistemas computacionais distintos com probabilidade de falhas;
comunicação geralmente não confiável, onde existem atrasos, variação de atrasos, perdas e, em alguns casos, baixas larguras de banda;
dificuldade em definir a ordem dos eventos e estado global do sistema, uma vez que a comunicação acontece por troca de mensagens;
ambiente geralmente marcado pela heterogeneidade.
27
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS
28
Com a melhoria das tecnologias, o que se conseguia executar, algumas décadas atrás, somente com computadores que custavam milhões de dólares, hoje se consegue executar com computadores de baixo custo. O segundo fator é o surgimento de redes de computadores de alta velocidade, em que informações podem ser transferidas entre computadores na faixa de microssegundos. Como resultado, é possível conectar diversos computadores por meio de uma rede de alta velocidade para executar um sistema de computação colaborativo. Estes sistemas são geralmente chamados de sistemas distribuídos (SD). 
•Sistema distribuído permite uma nova forma de fazer ciência
–Teoria -> experimentos
–Teoria -> simulações 
•Computação usada para modelar sistemas físicos
•Vantagens
–Possibilidade de repetição de eventos
–Manipulação de parâmetros
–Estudo de sistemas onde não há teorias exatas
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Para que? Resolver problemas!
Muito grandes: modelagem da terra/clima, simulações de reservatórios de petróleo, problemas com grandes escalas (cosmologia).
Muito complexos: física de partículas, dinâmica de fluidos, modelagem de comportamento de pessoas.
Muito caros: produção e exploração de petróleo, simulação de acidentes.
Muito perigosos: tolerância a falhas em aviões, teste de dispositivos nucleares, simulação de estratégias de defesa.
SISTEMAS DISTRIBUÍDOS
29
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Por que precisamos de sistemas distribuídos?
Eles podem resolver tudo? 
30
Problemas que requerem alto desempenho computacional
Modelagem climática 
Mapeamento do genoma 
Modelagem de semicondutores 
Dispersão de poluição 
Projetos farmacêuticos 
Modelagem de reatores nucleares 
Renderização de imagem
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Acoplamento
31
Fortemente acoplados - quando os processadores compartilham uma mesma memória principal.
Fracamente acoplados – os diversos processadores/estações presentes no sistema utilizam sua memória local individualmente.
Sistemas centralizados - Multiprocessador de memória compartilhada é um sistema de computador no qual duas ou mais CPUs compartilham acesso total a uma memória principal comum. Multiprocessadores são populares e atrativos, porque oferecem um modelo de comunicação simples, e a sincronização é possível mediante o emprego de diversas técnicas bem definidas. Uma desvantagem é que os multiprocessadores de grande porte são difíceis de construir e, por isso, são caros.
Sistemas distribuídos - Uma solução alternativa que tem sido empregada com sucesso para solucionar esse problema é a utilização de multicomputadores, que são CPUs que não compartilham memória principal. Cada CPU tem sua própria memória e é gerenciada por um sistema operacional individualmente. Esses sistemas também são conhecidos como cluster – COWS (cluster of workstations - aglomerados de estações de trabalho).
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Por que? Existem limites físicos.
Velocidade da luz.
Miniaturização dos componentes.
Isolamento e dissipação de calor.
Desafios? Sim, claro. 
Ausência de fonte comum de tempo (relógio global)
Ausência de memória compartilhada
Compartilhamento de recursos
SISTEMAS DISTRIBUÍDOS
32
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
RESUMINDO:
Podemos comparar sistemas centralizados x sistemas distribuídos:
Vantagens dos sistemas distribuídos:
Melhor relação preço/desempenho
Capacidade de crescimento incremental (escalabilidade)
Tolerância a falhas
 
Desvantagens dos sistemas distribuídos:
Falta de padronização para desenvolvimento de software
Falta de uma divisão clara entre sistema/aplicação
Latência e possibilidade de congestionamento na rede
Redução da segurança
33
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
ATIVIDADE PROPOSTA:
Pesquisar sobre Sistemas Distribuídos. Há um grande número de sistemas computacionais que nos auxiliam nas tarefas diárias´. Será que algum deles é sistema distribuído?
Era pra colocar no fórum.
34
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
MOTIVAÇÃO
Ampla utilização das redes de computadores 
Velocidade e Confiabilidade
Trabalho cooperativo
Aumento do poder computacional
36
Limitação das Máquinas
Fatores econômicos podem limitar a capacidade de um sistema! 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.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Computação Distribuída é para mim?
37
Vídeo World Community Grid (WCG)
www.worldcommunitygrid.org
www.eugrido.com.br 
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
A computação em grade é um grupo de computadores em rede que trabalham em conjunto, como um super computador virtual, para executar tarefas grandes, como analisar grandes conjuntos de dados e modelagem do clima. Por meio da nuvem, é possível montar e usar vastas grades de computadores por períodos de tempo e fins específicos, pagando somente pelo seu uso e economizando tempo e gastos com a aquisição e implantação de recursos necessários. Ao dividir as tarefas entre várias máquinas, o tempo de processamento é reduzido de forma significativa, aumentando a eficiência e diminuindo os recursos desperdiçados.
Ao contrário da computação paralela, os projetos de computação em grade não apresentam nenhuma dependência de tempo associada a eles. Eles utilizam computadores que fazem parte da rede apenas enquanto estiverem ociosos e os operadores podem realizar tarefas não relacionadas à grade a qualquer momento. A segurança deve ser levada em conta ao utilizar grades de computadores, visto que os controles sobre os nós de membros costumam ser dispersos. A redundância também deve ser incorporada, pois muitos computadores podem ser desconectados ou falhar durante o processamento.
COMPUTAÇÃO EM GRADE (GRID)
Worldwide LHC Computing Grid (CERN) 
http://boinc.berkeley.edu/
38
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
DESAFIOS DA COMPUTAÇÃODISTRIBUÍDA
Concorrência
A execução concorrente é uma característica intrínseca de um sistema distribuído, na qual os processos disputam pelos recursos compartilhados.
Ausê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).
39
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
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.
 
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
40
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
ATRIBUTOS DOS SITEMAS DISTRIBUÍDOS
Latência 
Tempo 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 
Mede a capacidade de transmissão/recepção de informações por tempo.
Bottleneck
Gargalo.
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
 
41
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Escalabilidade
 Capacidade de melhoria do desempenho do sistema distribuído 
 conforme cresce o número de elementos processadores.
Balanceamento de Carga
 Permite ao sistema distribuído dividir adequadamente suas tarefas, para 
 que um elemento processador não fique mais sobrecarregado que outros.
Confiabilidade
 Funcionar continuamente sem falhas.
	
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. Estar pronto para ser usado imediatamente.
ATRIBUTOS DOS SITEMAS DISTRIBUÍDOS
43
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
ATRIBUTOS DOS SITEMAS DISTRIBUÍDOS
Capacidade de manutenção  facilidade com que um sistema que falhou pode ser con­sertado.
Mobilidade: movimento de recursos ou clientes dentro do sistema não podem afetar a operação dos usuários ou programas
Abertura: determina se o sistema pode ser estendido ou reimplementado de diversas maneiras
44
Segurança
 Capacidade de melhoria do desempenho do sistema distribuído 
 conforme cresce o número de elementos processadores.
Migração de Tarefas
 Transferência da responsabilidade de execução de uma tarefa de um 
 elemento para outro. Podem ser tarefas de processos ou computação.
Migração de Dados
 Transferência da dados de um elemento processador para outro. 
	
Replicação
 Duplicação de recursos de um elemento processador para outro. 
 
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
ATRIBUTOS DOS SITEMAS DISTRIBUÍDOS
45
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
46
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!
Máquinas mais velozes
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Desde 1993, o site TOP500 publica, semestralmente, um 
ranking dos 500 computadores com maior desempenho no mundo.
 
 
Rank
Site
Computer
1
DOE/NNSA/LLNL
UnitedStates
Sequoia-BlueGene/Q, Power BQC 16C 1.60 GHz,Custom,IBM
2
RIKEN Advanced Institute for Computational Science (AICS),Japan
Kcomputer, SPARC64VIIIfx2.0GHz, Tofuinterconnect,Fujitsu
3
DOE/SC/Argonne NationalLaboratory,UnitedStates
Mira-BlueGene/Q, Power BQC 16C 1.60GHz,Custom,IBM
4
LeibnizRechenzentrum
Germany
SuperMUC-iDataPlexDX360M4, Xeon E5-2680 8C 2.70GHz,InfinibandFDR,IBM
5
NationalSupercomputingCenter inTianjin,China
Tianhe-1A-NUDT YH MPP, Xeon X5670 6C 2.93 GHz, NVIDIA2050,NUDT
47
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
TOP 500 - BRASIL
 
Rank
Site
System
Cores
Rmax (TFlop/s)
Rpeak (TFlop/s)
Power (kW)
68
PETROBRAS
Brazil
Grifo04- Itautec Cluster, Xeon X5670 6C 2.930GHz,InfinibandQDR, NVIDIA 2050
Itautec
17.408
251.5
563.4
365.5
79
INPE (National Institute for Space Research)
Brazil
Tupi- Cray XE6, Opteron 6172 12C 2.10GHz, Cray Gemini interconnect
Cray Inc.
31.104
214.2
261.3
456
NACAD/COPPE/UFRJ
Brazil
Galileu- SunBladex6048, Xeon X5560 2.8Ghz,InfinibandQDR
Oracle
6.464
64.6
72.4
430
48
Na lista do ranking, são obtidos pelo benchmark os seguintes resultados:
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). 
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Gráfico do TOP 500
 
49
A seguir, gráficos fornecidos pelo ranking TOP500 que apresentam o desenvolvimento da performance dos supercomputadores, de 1993 a 2011, e sua projeção:
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
TI VERDE
VIRTUALIZAÇÃO
50
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! 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.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
	
O que fazer com o lixo eletrônico?
52
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
RESUMINDO
Sistemas Distribuídos
Desafios: ausência de memória compartilhada, relógio comum, falhas independentes
Falácias : existe uma rede
Aplicações : cluster, grid
TI verde : melhor utilização dos equipamentos
 
53
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
ATIVIDADE PROPOSTA (02):
54
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
INTRODUÇÃO
O profissional da área de Tecnologia da Informação atua diretamente no planejamento, na implementação e na implantação de soluções de TI nas organizações.
Dessa forma, é importante que sejam compreendidos os conceitos, os benefícios, as características e as restrições dos sistemas tolerantes a falhas e com alta disponibilidade. Tais sistemas devem ser confiáveis!
56
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
FALHAS EM SISTEMAS DISTRIBUÍDOS
Uma característica dos sistemas distribuídos que os distingue de sistemas centralizados é a noção de falha parcial.
A falha parcial pode acontecer quando um componente em um sistema distribuído não funciona.
Essa falha pode afetar a operação adequada de outros componentes e, ao mesmo tempo, deixar outros totalmente ilesos.
Está funcionando ????????
57
FALHAS PARCIAIS
A falha em sistemas não distribuídos quase sempre é TOTAL, no sentido de que afeta todos os componentes e pode, facilmente, fazer o sistema inteiro cair.
Um objetivo importante do projeto de sistemasdistribuídos é construir o sistema de tal modo que possa se recuperar automaticamente de falhas parciais, sem afetar, seriamente, seu desempenho global.
Em particular, sempre que ocorrer uma falha, o sistema distribuído deve tolerar falhas e continuar a funcionar até certo ponto, mesmo na presença dessas falhas.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
TOLERÂNCIA A FALHAS
Disponibilidade  estar pronto para ser usado imediatamente 
Confiabilidade  funcionar continuamente sem falhas. 
Segurança  deixar de funcionar corretamente durante certo tempo e nada de catastrófico acontecer.
Capacidade de manutenção  facilidade com que um sistema que falhou pode ser con­sertado.
58
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
TOLERÂNCIA A FALHAS
59
Disponibilidade 
Consiste na propriedade de um sistema estar pronto para ser usado imediatamente. Trata-se da probabilidade de o sistema funcionar corretamente em qualquer momento determinado e estar disponível para executar suas funções em nome de seus usuários.
A alta disponibilidade, por sua vez, representa o que provavelmente funcionará em dado instante de tempo.
Por exemplo, se um sistema não cai nunca, mas é desligado por duas semanas em um determinado mês, todos os anos, tem alta confiabilidade, mas somente 96% de disponibilidade.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
TOLERÂNCIA A FALHAS
60
Confiabilidade
Consiste na propriedade de um sistema poder funcionar continuamente sem falhas.
É definida em termos de um intervalo de tempo, não de um instante de tempo.
A alta confiabilidade representa o que provavelmente continuará a funcionar, sem interrupção, durante um período de tempo relativamente longo.
Por exemplo, se um sistema ficar fora do ar por 1ms a cada hora, terá disponibilidade de mais de 99,99%, mas sua confiabilidade ainda será muito baixa.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
TOLERÂNCIA A FALHAS
61
Segurança
Se um sistema deixar de funcionar corretamente durante um certo tempo, nada de catastrófico acontecerá.
É o que acontece, por exemplo, com sistemas de controle de processos usados em usinas de energia nuclear ou sistemas para enviar pessoas ao espaço.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
TOLERÂNCIA A FALHAS
62
Capacidade de manutenção
Consiste na facilidade com que um sistema que falhou possa ser consertado.
Sistemas de alta capacidade de manutenção também podem mostrar alto grau de disponibilidade, em especial se as falhas puderem ser detectadas e reparadas automaticamente.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Falha, Erro e Defeito
Falha (físico)  Erro (informação)  Defeito (erro percebido)
A HISTÓRIA DO BUG
63
O defeito acontece quando o sistema não pode cumprir o que foi especificado ou prometido. Em particular, se um sistema distribuído é projetado para oferecer a seus usuários uma série de serviços, o sistema falha quando um ou mais desses serviços não podem ser fornecidos completamente.
O erro representa o estado de um sistema que pode levar a uma falha. É o caso da transmissão de pacotes por uma rede. Espera-se que alguns pacotes estejam danificados quando chegam ao receptor. Meios de transmissão com problemas podem facilmente danificar pacotes. Erros de transmissão também podem ser causados por más condições atmosféricas, como ocorre com redes sem fio. 
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
TIPOS DE FALHAS
64
Transientes
As falhas transientes ocorrem uma vez e, depois, desaparecem. Se a operação for repetida, a falha não acontecerá novamente.  Por exemplo, um pássaro voando pelo feixe de um transmissor de microondas pode causar perda de bits em alguma rede.
Intermitentes
As falhas intermitentes ocorrem e desaparecem por sua própria vontade. Depois, essas falhas reaparecem e assim por diante.  Por exemplo, um conector com um contato frouxo causará, muitas vezes, uma falha intermitente. 
Permanentes
As falhas permanentes continuarão a existir até que o componente faltoso seja substituído.  É o caso dos chips queimados e dos bugs de software.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
MODELOS DE FALHAS
65
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
MODELOS DE FALHAS
66
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
MODELOS DE FALHAS
67
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
MODELOS DE FALHAS
68
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
MODELOS DE FALHAS
69
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
MODELOS DE FALHAS
70
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Técnicas de tratamento
71
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Técnicas de tratamento
72
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Técnicas de tratamento
73
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Técnicas de tratamento
75
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Técnicas de tratamento
76
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Acordo em Sistemas com Falha
77
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Detecção de falha
78
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
RECUPERAÇÃO
79
Uma vez ocorrida a falha, é essencial que o processo em que a mesma aconteceu se possa recuperar para um estado correto. A recuperação de um erro é fundamental para a tolerância à falha!
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
FORMAS DE RECUPERAÇÃO DE ERRO
80
Essencialmente, existem duas formas de recuperação de erro, quais sejam:
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
	
No dia a dia, o que fazemos?
81
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
RESUMINDO
Identificação das falhas
Tolerância a falhas
Falhas, Erros e Defeitos
“QUEM TEM DOIS TEM UM. 
QUEM TEM UM NÃO TEM NENHUM.”
 
82
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
ATIVIDADE PROPOSTA (03):
 Complete a frase: 
	A detecção de falhas é uma das bases da tolerância à falha em sistemas distribuídos.
83
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
INTRODUÇÃO
85
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
PRINCIPIOS DA CLASSIFICAÇÃO
Fluxo de instruções
Fluxo de Dados
86
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
SISD – Single Instruction Single Data
Máquina clássica de Von Neumann (não paralela)
87
C[i] = A[i] + B[i]
Soma de 2 vetores
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
SIMD – Single Instruction Multiple Data (Computador Vetorial: CRAY)
Arquitetura vetorial – Execução síncrona
88
C = A + B
Soma de 2 vetores
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
MIMD – Multiple Instruction Multiple Data
Execução simultânea de instruções diferentes para cada dados
90
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
MIMD
Multiprocessadores
UMA
NUMA
Multicomputadores
MPP
COW
Arquiteturas MIMD – Memória Compartilhada
91
Memória Compartilhada
Memória NÃO Compartilhada
Limitação: colocar vários processadores no mesmo barramento. Criaria um enorme gargalo no acesso à memória.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Arquiteturas MIMD
Memória global compartilhada e memória local.
MIMD
Multiprocessadores
UMA
NUMA
Multicomputadores
MPP
COW
93
Memória Compartilhada
Memória NÃO Compartilhada
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Arquiteturas MIMD – Memória Compartilhada
MIMD
Multiprocessadores
UMA
NUMA
Multicomputadores
MPP
COW
94
Memória Compartilhada
Memória NÃO Compartilhada
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Arquiteturas MIMD
Estações de trabalho interligadas
MIMD
Multiprocessadores
UMA
NUMA
Multicomputadores
MPP
COW
96
Memória Compartilhada
Memória NÃO Compartilhada
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Classificação de Flynn e Modelos de Programação
97
 Os nós são compostos de componentes do sistema ou de chaves que fazem o roteamento das mensagens entre componentes.
 O enlace é uma conexão entre dois nós.
 Bissecção : número mínimo de enlaces que precisam ser cortadospara dividir a rede em duas metades não conectadas.
 Diâmetro da rede: distância mais curtas entre os dois nós mais remotos do esquema de interconexão.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
98
Coerência de cache 
A coerência de memória passou a ser uma consideração de projeto quando surgiram os caches, porque as arquiteturas de computador permitiam caminhos de acesso diferentes aos dados (por meio da cópia do cache ou da cópia da memória principal). 
Em sistemas multiprocessadores, o tratamento da coerência é complexo, pois cada processador mantém um cache privado. 
A coerência de cache pode ser UMA ou NUMA. Vamos conhecê-las? 
Coerência de cache UMA 
Implementar protocolos de coerência de cache para multiprocessadores UMA é simples, pois os caches são relativamente pequenos, e o barramento que conecta a memória compartilhada é relativamente rápido. 
Quando um processador atualiza um item de dado, o sistema também deve atualizar ou descartar todas as instâncias daquele dado nos caches de outros processadores e na memória principal, o que pode ser realizado por escuta do barramento (também denominada escuta do cache). 
Nesse protocolo, um processador escuta o barramento, determinando se uma escrita requisitada de outro processador é para um item de dado que está no cache do processador. Se o dado residir no cache do processador, esse remove o item de dado de seu cache. 
A escuta de barramento é de simples implementação, mas gera tráfego adicional no barramento compartilhado. 
NUMA com cache coerente (CC-NUMA) 
Quando ocorre uma falha de cache em um nó, este contacta o nó associado ao endereço de memória requisitado. Se o item de dado estiver limpo (ou seja, se nenhum outro nó tiver uma versão modificada do item de dado em seu cache), o nó nativo o despachará para o cache do processador requisitante. 
Se o item de dado estiver sujo (ou seja, se outro nó escrever para o item de dado, desde a última vez, que a entrada da memória principal foi atualizada), o nó nativo despachará a requisição para o nó que tem a cópia suja. Esse nó enviará o item de dado para o requisitante e, também, para o nó nativo. Similarmente, requisições para modificar dados são realizadas via nó nativo. 
O nó que desejar modificar dados em determinado endereço de memória requisita propriedade exclusiva dos dados. A versão mais recente dos dados (se já não estiver no cache do nó modificador) é obtida da mesma maneira que uma requisição de leitura. Após a modificação, o nó nativo notifica a outros nós, com cópias dos dados, que esses foram modificados. 
Esse protocolo é relativamente simples de implementar, porque todas as leituras e escritas contatam nó nativo. Embora possa parecer ineficiente, esse protocolo de coerência requer o número máximo de comunicações de rede. 
Esse protocolo também facilita a distribuição de carga por todo o sistema, designando cada nó nativo com, aproximadamente, o mesmo número de endereços, o que aumenta a tolerância à falha e reduz a contenção. Contudo, se a maioria dos acessos aos dados vier de nós remotos, esse protocolo pode apresentar mau desempenho. 
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
99
Arquiteturas de acesso à memória
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
100
Acesso uniforme à memória - UMA 
Sistemas UMA também são denominados sistemas multiprocessadores 
simétricos – Symmetric MultiProcessor (SMP) –, porque qualquer processador 
pode ser designado para qualquer tarefa, e todos os processadores compartilham 
todos os recursos (incluindo memória, dispositivos de E/S e processos). 
Os multiprocessadores UMA com um pequeno número de processadores 
normalmente usam uma interconexão de rede de barramento compartilhado ou de 
matriz de comutação de barras cruzadas. Os dispositivos de E/S são ligados 
diretamente à rede de interconexão e igualmente acessíveis a todos os processadores. 
Arquiteturas UMA são encontradas, normalmente, em sistemas multiprocessadores 
pequenos (de dois a oito processadores). Os multiprocessadores UMA não escalam
 bem – um barramento torna-se rapidamente saturado quando mais do que alguns 
processadores acessam a memória principal simultaneamente. As matrizes de 
comutação de barras cruzadas, por sua vez, ficam muito caras mesmo para sistemas
 de pequena dimensão. 
Veja,um diagrama esquemático que representa uma arquitetura de acesso uniforme 
à memória – Uniform Memory Access multiprocessor (UMA): 
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
101
Acesso não uniforme à memória - NUMA
Os multiprocessadores NUMA abordam os problemas de escalabilidade da arquitetura UMA. 
O gargalo primário de um sistema UMA de grande escala é o acesso à memória compartilhada 
– o desempenho degrada-se devido à contenção entre numerosos processadores que estão 
tentando acessar a memória compartilhada. 
Se uma matriz de comutação de barras cruzadas for usada, o custo do esquema de interconexão 
pode aumentar substancialmente, para facilitar vários caminhos à memória compartilhada. Os 
multiprocessadores NUMA gerenciam esses problemas, reduzindo a restrição de uniformidade
imposta aos tempos de acesso à memória para todos os processadores que estão acessando 
qualquer item de dado. A arquitetura NUMA tem alto grau de escalabilidade, pois reduz colisões no
barramento quando a memória local de um processador atende à maioria das requisições de 
memória do processador. Veja o diagrama esquemático e uma figura que representam uma 
arquitetura de acesso não uniforme à memória – Non Uniform Memory Access multiprocessor : diagrama de uma arquitetura NUMA
Diagrama de arquitetura NUMA integrado a arquitetura UMA: 
Fonte: http://www.tomshardware.com/reviews/brute-force-quad-cores,1371-4.html. 
Fonte: http://download.oracle.com/docs/cd/A57673_01/DOC/server/doc/SPS73/chap3.htm. 
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
102
NUMA com cache coerente (CC-NUMA) 
Quando ocorre uma falha de cache em um nó, este contacta o nó associado ao 
endereço de memória requisitado. Se o item de dado estiver limpo (se nenhum 
outro nó tiver uma versão modificada do item de dado em seu cache), o nó nativo 
o despachará para o cache do processador requisitante. 
Se o item de dado estiver sujo (se outro nó escrever para o item de dado, desde a última vez, que a entrada da memória principal foi atualizada), o nó nativo despachará a requisição para o nó que tem a cópia suja. Esse nó enviará o item de dado para o requisitante e, também, para o nó nativo. Similarmente, requisições para modificar dados são realizadas via nó nativo. 
O nó que desejar modificar dados em determinado endereço de memória requisita propriedade exclusiva dos dados. A versão mais recente dos dados (se já não estiver no cache do nó modificador) é obtida da mesma maneira que uma requisição de leitura. Após a modificação, o nó nativo notifica a outros nós, com cópias dos dados, que esses foram modificados. 
Esse protocolo é relativamente simples de implementar, porque todas as leituras e escritas contatam nó nativo. Embora possa parecer ineficiente, esse protocolo de coerência requer o nº máximo de comunicações de rede. 
Esse protocolo também facilita a distribuição de carga por todo o sistema, designando cada nó nativo com, aproximadamente, o mesmo nº de endereços, o que aumenta a tolerância à falha e reduz a contenção.Mas, se a maioria dos acessos aos dados vier de nós remotos, esse protocolo pode apresentar mau desempenho. 
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
103
Arquit. de memória so/e de cache – COMA 
Os sistemas NUMA colocam dados na memória local do processador para os dados que são 
acessados mais frequentemente, o que não é prático para um compilador ou programador 
implementar, pois os padrões de acesso aos dados mudam dinamicamente. 
Sistemas operacionais podem executar essa tarefa, mas transferindo somente porções de dados do tamanho de uma página, o que pode reduzir a velocidadede migração de dados. Além disso, itens de dados diferentes em uma única página, muitas vezes são acessados por processadores em nós diferentes. 
Os multiprocessadores COMA têm um ou mais processadores, cada um com seu cache associado e uma fração da memória global compartilhada. Contudo, a memória associada a cada nó é organizada como um grande cache – conhecido como Memória de Atração (MA) –, o que permite que o hardware migre dados eficientemente na granularidade de uma linha de memória (equivalente a uma linha de cache), mas na memória principal, normalmente de quatro ou oito bytes. 
Isso ocorre também porque a memória local de cada processador é vista como um cache. Mas diferentes podem ter cópias da linha de memória. 
Com essas modificações de projeto, é comum que os dados residam na memória local do processador, que os usa mais frequentemente, o que reduz a latência média de falta de cache. 
As permutas representam uma sobrecarga de memória devido à duplicação dos itens de dados em vários módulos de memória, hardware e protocolos complicados para garantir que atualizações da memória sejam refletidas em cada MA do processador. 
Essa sobrecarga resulta em latência mais alta para as faltas de cache atendidas remotamente. 
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
104
Sem acesso à memória remota - NORMA 
Em um sistema SVM, quando um processo requisita uma página que não está na
 memória local de seu processador, o sistema operacional carrega a página na 
memória local por meio de outro módulo de memória (de um computador remoto 
através de uma rede) ou do armazenamento secundário (por exemplo, um disco). 
Os nós de sistemas NORMA que não suportam SVM devem compartilhar dados por meio de passagem de mensagens explícita. 
Os multiprocessadores UMA, NUMA e COMA são fortemente acoplados. Embora escalem bem, os multiprocessadores NUMA (e COMA, em menor extensão) requerem software e hardware complexos. O software controla o acesso a recursos compartilhados, como a memória, por exemplo. O hardware, por sua vez, implementa o esquema de interconexão. 
Como exemplo de sistema multiprocessador distribuído NORMA, podemos citar o Google, que alimenta seu serviço usando milhares de servidores de baixo custo localizados no mundo inteiro. 
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
105
PROGRAMAÇÂO DISTRIBUÍDA
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
COMO FAZER MAIS RÁPIDO ?
Aumentar a frequência da CPU
Otimização do Algoritmo
Colaboração
Paralelismo - Execução de uma tarefa em mais de uma CPU (os processadores colaboram para execução dessa tarefa)
Concorrência – Os processos disputam CPUs (uma ou mais).
106
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
COMO FAZER MAIS RÁPIDO ?
107
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
CARACTERÍSTICAS DA PROGRAMAÇÃO DISTRIBUÍDA
Interação da aplicação e do usuário com o ambiente distribuído em níveis diferentes;
Suporte a plataformas heterogêneas através de uma camada de software entre o kernel e a aplicação (middleware);
Problemas como custo e carência de produtos de software adequados;
Programação paralela, utilizando bibliotecas de troca de mensagem (como, por exemplo, o MPI e o PVM) ou bibliotecas baseadas em memória compartilhada (como, por exemplo, Pthreads).
108
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
CARACTERÍSTICAS DA PROGRAMAÇÃO DISTRIBUÍDA
109
 A troca de mensagens (message passing) é o método de 
 comunicação baseada no envio e recebimento de mensagens 
por meio de uma rede de computadores, seguindo regras de protocolo de comunicação entre vários processadores que 
possuam memória própria.
Os processos possuem acesso à memória local. As informações, 
por sua vez, são enviadas da memória local do processo à 
memória local do processo remoto. Nesse modelo, o programador 
é responsável pela sincronização das tarefas.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
RESUMINDO
Sistemas classificados quanto ao fluxo de instruções e dados
Para cada tipo de sistema um modelo de programação
 
110
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
ATIVIDADE PROPOSTA (04):
111
S
S
S
D
D
I
N
U
M
A
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Menu
01
02
03
04
05
06
07
08
09
10
RAV1
ARQUITETURA DE SISTEMAS DISTRIBUÍDOS
Aula 5 – Modelo Cliente/Servidor
Modelos de comunicação;
Características de cada componente do modelo cliente/servidor.
Introdução aos modelos de comunicação e a arquitetura cliente/servidor
ARQ SIST DISTRIBUÍDOS
112
PARA QUE SERVE UM MODELO?
Representa de forma unívoca um conjunto de características
113
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
RESUMINDO
Modelos de comunicação definem forma de comunicação entre processos
O Modelo Cliente-Servidor é baseado na comunicação de dois PROCESSOS por troca de mensagens.
 
114
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
RESUMINDO
Modelos de comunicação definem forma de comunicação entre processos
O Modelo Cliente-Servidor é baseado na comunicação de dois PROCESSOS por troca de mensagens.
 
115
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
MODELOS DE COMUNICAÇÃO
Aqueles que definem a forma como os componentes dos sistemas interagem.
116
Aqueles que definem o comportamento e as propriedades dos componentes.
MODELOS
ARQUITETURAIS
FUNCIONAIS
FUNDAMENTAIS
* Na WA
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
MODELO DE ARQUITETURA EM SISTEMAS DISTRIBUÍDOS
 confiável 
gerenciável 
adaptável
rentável.
simplifica e abstrai as funções dos componentes individuais desse sistema
posicionamento dos componentes em uma rede de computadores define padrões para a distribuição de dados e da carga de trabalho.
relacionamentos entre os componentes  papéis funcionais e os padrões de comunicação entre eles.
117
A arquitetura ou organização de um sistema representa sua estrutura em termos de componentes especificados separadamente. Essa estrutura deve atender às demandas atuais e futuras impostas sobre ela. A maior preocupação é tornar o sistema: 
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Os modelos de arquitetura de um sistema distribuído apresentam estrutura em camadas de software de diferentes níveis de abstração, quais sejam: plataforma e middleware. 
Para definir o padrão de distribuição, devemos considerar o posicionamento e a carga de trabalho de cada componente. Além disso, as tarefas devem ser alinhadas de forma a atender aos requisitos de desempenho e confiabilidade.
Características dos modelos de arquitetura
118
Os modelos de arquitetura classificam-se como:
• Cliente/servidor;
• Peer-to-peer;
• De variações. 
Denominação frequente para as camadas de hardware e software de nível mais baixo.
Camada de software que tem como objetivo mascarar a heterogeneidade e fornecer um modelo de programação conveniente 
para os desenvolvedores de aplicações distribuídas.
Utilização de serviços oferecidos por diversos servidores
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Desempenho: Os desafios decorrentes da distribuição de recursos excedem a necessidade de gerenciamento das atualizações concorrentes.
Os principais problemas associados à limitação finita da capacidade de recursos de processamento e de comunicação são: reatividade, throughput e balanceamento de carga.
Qualidade de serviço: As principais propriedades não-funcionais dos sistemas que afetam a qualidade dos serviços fornecidos aos clientes são:
Confiabilidade
Segurança
Desempenho
Adaptabilidade
Disponibilidade
Replicação: Os problemas de desempenho podem ser (em parte) solucionados por meio de uso de replicação de dados.
Dependabilidade: Pode ser definida como correção, seguranã e confiabilidade. Trata-se de um requisito necessário à maior parte dos domínios da aplicação, o que significa que é crucial não apenas nas atividades de comando e controle, mas também em muitas aplicações comerciais.
119
Requisitos de projetodos modelos de arquitetura
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
120
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
ABSTRAÇÕES
PLATAFORMA = HARDWARE + SOFTWARE BÁSICO
121
CORBA (aberta), ADCOM (MS), RMI (Remote Method Invocation - Java) 
Exemplos comuns de middleware incluem middleware de banco de dados, middleware de servidor de aplicativos, middleware orientado a mensagens, middleware de web e monitores de processamento de transações. Normalmente, cada programa oferece serviços de sistemas de mensagens para que diversos aplicativos possam se comunicar utilizando estruturas de mensagens como protocolo SOAP, serviços Web, REST (representational state transfer) e JSON (JavaScript Object Notation). Embora todos os tipos de middleware executem funções de comunicação, o tipo que uma empresa escolherá depende de qual serviço está sendo utilizado e qual tipo de informação deve ser comunicado. Isso pode incluir autenticação de segurança, gerenciamento de transações, consultas de mensagens, servidores de aplicativos, servidores da web e diretórios. O middleware também pode ser utilizado para processamento distribuído com ações que ocorrem em tempo real em vez de envio e recebimento repetitivo de dados.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
IMPLEMENTAÇÕES
NESTE MOMENTO ESTUDAREMOS O MODELO CLIENTE-SERVIDOR
CLIENTE-SERVIDOR
PEER –TO – PEER (P2P)
122
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
123
MODELO CLIENTE/SERVIDOR
Como a maioria das redes, a internet utiliza um mecanismo simples: um aplicativo é ligado primeiro e espera que o outro aplicativo faça contato. O segundo aplicativo, por sua vez, precisa conhecer a localização na qual o primeiro aplicativo espera contato.O acordo no qual um aplicativo de rede espera pelo contato de outro é conhecido como paradigma cliente-servidor ou arquitetura cliente-servidor. 
O programa que espera pelo contato é chamado de servidor, e o que inicia o contato é conhecido co­mo cliente. Para iniciar contato, o cliente precisa saber onde o servidor está rodando e especificar a localização para o software de rede.
Mas, como um cliente especifica a localização de um servidor? Por exemplo, na Internet, a localização é dada por um par de identificadores. Conceitualmente, o par consiste em: computador e aplicativo.
O termo computador identifica a máquina na qual o servidor está rodando.
O aplicativo identifica um programa aplicativo em particular naquele computador
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
124
Modelos de Arquitetura de Sistemas Distribuídos
Geralmente, os aplicativos desenvolvidos para a internet seguem o mesmo paradigma básico quando se comunicam. Dois aplicativos estabelecem comunicação, trocam mensagens e, só então, finalizam a comunicação. Sendo assim, para fins de comunicação, os aplicativos seguem os seguintes passos:
O aplicativo servidor é ativado e aguarda o contato de um cliente.
O cliente especifica a localização do servidor e solicita o estabelecimento de uma conexão..
Após o estabelecimento da conexão, cliente e servidor estão aptos a trocar mensagens.
1
3
2
CARACTERÍSTICAS DO PROCESSO CLIENTE
É O ELEMENTO ATIVO
RESPONSÁVEL PELA INTERFACE COM O USUÁRIO
PRECISA CONHECER A LOCALIZAÇÃO DO SERVIDOR
CARACTERÍSTICAS DO PROCESSO SERVIDOR
É REATIVO
NÃO POSSUI INTERFACE COM O USUÁRIO
É ESPECIALIZADO
PODE SER ITERATIVO OU CONCORRENTE
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Baixo nível:
camada de transporte
sockets
aplicações estão cientes da existência da rede
Alto nível:
camadas de sessão, apresentação e aplicação
RPC
aplicações chamam operações de rede como se fossem locais
Soluções de alto nível permitem ambiente de computação distribuída
 
125
CARACTERÍSTICAS DA COMUNICAÇÃO
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
126
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
127
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
128
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
CARACTERÍSTICAS DA COMUNICAÇÃO
Configura Cliente
Configura Servidor
Solicita conexão
Aguarda conexão
Envia e recebe dados
Envia e recebe dados
FIM
FIM CONEXÃO
129
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
CARACTERÍSTICAS DOS MODELOS DE ARQUITETURA
Para manter a API exemplo, independente de algum sistema operacional e software de rede em particular, são definidos três tipos de dados. Esses tipos são utilizados através de códigos.A tabela a seguir lista os nomes e os significados de cada tipo de dados usados na API exemplo:  
130
A partir desses três tipos de nomes, podemos definir, precisamente, a API exemplo. Clique e saiba mais!
* Em um dado computador, esses tipos são definidos como inteiros e de tamanho específico.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
131
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
132
O PARADIGMA CLIENTE/SERVIDOR
O paradigma de organizar uma aplicação que espera passivamente por outro aplicati­vo para iniciar a comunicação está tão presente na computação distribuída que recebeu um nome: pa­radigma de interação cliente-servidor.
Os termos cliente e servidor referem- se aos dois aplicativos envolvidos em uma comunicação. O aplicativo que começa ativamente o contato é chamado de cliente, enquanto o aplicativo que espera passivamente por contato é denominado servidor.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
133
CARACTERÍSTICAS DE CLIENTES e SERVIDORES
Embora existam variações, em geral, a interação cliente-servidor tem as mesmas características.  
O software cliente é uma aplicação qualquer arbitrária que se torna um cliente temporariamente, quando o acesso remoto for necessário, mas pode executar, também, outro processamento local. 
Esse software é diretamente invocado por um usuário e executa somente para uma sessão. Essa execução ocorre localmente no computador pessoal de um usuário. 
O software cliente inicia ativamente o contato com um servidor e, quando necessário, pode acessar múltiplos serviços, mas contata, de forma ativa, um servidor remo­to de cada vez. O referido software não exige hardware especial ou sistema operacional sofisticado. 
Em contraste, o software servidor é um programa privilegiado, de propósito especial, dedicado a fornecer um serviço, mas pode tra­tar, simultaneamente, de múltiplos clientes remotos. 
Esse programa é automaticamente invocado quando um sistema inicializa (boot) e continua a executar por mui­tas sessões. 
O software servidor executa em um computador compartilhado, e não em um computador pessoal de um usuário, esperando, passivamente, pelo contato de clientes remotos arbitrários. O referido programa aceita o contato de clientes arbitrários, mas oferece um único serviço. Diferentemente do software cliente, o servidor exige hardware poderosoe um sistema operacional sofisticado.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
134
Requisições, Respostas e Direção do Fluxo de Dados
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
135
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
136
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
137
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
RESUMINDO
Modelos de comunicação definem forma de comunicação entre processos
O Modelo Cliente-Servidor é baseado na comunicação de dois PROCESSOS por troca de mensagens.
 
138
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
EXTRAS
139
Desenvolvimento em sistemas distribuídos
Fábio Gomes Coqueiro
Sistemas Distribuídos
Consiste em uma coleção de computadores independentes que se apresentam ao usuário como um sistema único transparente. (TANENBAUM)
É um sistema onde os componentes de hardware e software estão localizados em computadores interligados em uma rede, comunicam e coordenam suas ações somente através da troca de mensagens. (COULOURIS)
Maior motivação para o desenvolvimento de sistemas distribuídos: compartilhar recursos.
Redução no tempo de carga e de execução nas plataformas Cliente;
Independência de Localização física; 
Alta Disponibilidadeda Aplicação; 
Possibilidade de Heterogeneidade de Ambientes;
Maior poder de Escalabilidade; 
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Quando distribuir?
140
Às vezes o problema é distribuído;
Soluções distribuídas podem trazer benefícios inerentes à distribuição;
Soluções distribuídas são mais adaptáveis.
Acesso local
Homogeneidade
Facilidade de gerência
Maior consistência
Segurança contra intrusos
Acesso remoto
Heterogeneidade
Modularidade
Escalabilidade
Compartilhamento de recursos
Mais sujeito a ataques
Sistemas Centralizados x Sistemas Distribuídos
 Modelos de computação distribuída
Cliente/Servidor
Peer-to-peer
Objetos distribuídos
Os exemplos mais familiares são aqueles baseados em redes de computadores:
Internet
Intranets
Sistemas móveis e ubíquo
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
141
Exemplos
Internet
Um dos maiores exemplos (se não o maior)
Compartilhamento de recursos e serviços de forma transparente:
WWW
E-mail
Transferência de Arquivos
Serviços multimídia
Provedores de Serviços de Internet
intranet
ISP
desktop computer:
backbone
satellite link
server:
%
network link:
%
%
%
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
Intranets
Parte da Internet administrada separadamente por uma organização.
Possuem recursos e serviços específicos e gerais:
Correio eletrônico
Serviços de informação.
Recursos de Hardware
Comunicam-se normalmente com a Internet por um roteador e fazem uso de firewall para proteção.
142
Exemplos
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
143
Exemplos
Sistemas móveis e ubíquos
Avanços tecnológicos na miniaturização dos dispositivos e na rede sem fio têm trazido mais interligações de equipamentos:
Telefones celulares, smartphones e tablets
Dispositivos acoplados ao corpo (Wearable Computing)
Redes de Sensores
Dispositivos incorporados em aparelhos e objetos
Interfaces I/O com usuários
Futuramente: robôs
A ideia basicamente é um grande sistema distribuído presente em ambientes físicos e dando suporte (com recursos e serviços) para os usuários (aplicações e usuários), mas com comportamento computacional transparente e onipresente: qualquer momento, qualquer lugar.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
144
Tipos de Sistemas Distribuídos
Segundo Tanembaum os sistemas distribuídos podem ser classificados como:
Sistemas de computação distribuídos
Sistemas de informação distribuídos
Sistemas distribuídos pervasivos
São utilizados para realizar tarefas de computação de alto desempenho.
Divide-se em dois grupos Gerais:
Sistemas de Computação de Cluster
Usados para programação paralela na qual um único programa é executado em várias máquinas
Sistemas de Computação em Grade
Recursos de diferentes organizações são reunidos para colaboração de um grupo de pessoa
A colaboração é realizada como uma Organização Virtual. 
Sistemas voltados para integrar um conjunto de aplicações a um sistema de informações de âmbito empresarial.
Recurso principal: informação.
Grupos existentes:
Sistemas de processamento de transações:
Aplicações de banco de dados
Integração de Aplicações Empresariais
Aplicações existentes nas empresas (ex. de diferentes setores) precisam realizar troca de informações.
A criação de um ambiente “pervasivo” envolve a adoção de protocolos comuns de comunicação entre dispositivos e um espírito de cooperação entre as aplicações/dispositivos, de forma que um usuário imerso deve ter, à sua disposição, o maior número possível de serviços sem despender grandes esforços para utilizá-los.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
145
Tipos de Sistemas Distribuídos
Sistemas distribuídos pervasivos (grupos):
Sistemas domésticos
Sistemas distribuídos pervasivos (grupos):
Redes de Sensores:
Nó sensor
Gateway
Sistemas distribuídos pervasivos (grupos):
Sistemas para tratamento de saúde:
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
146
Características de um sistema distribuído 
Compartilhamento de recursos
Concorrência
Inexistência de um relógio global
Falhas independentes
Comunicação e organização interna dos computadores ocorrem de forma oculta aos usuários. 
Desafios
Heterogeneidade;
Sistemas Abertos;
Segurança;
Escalabilidade;
Tratamento de falhas;
Concorrência;
Transparência.
Eles devem ser construídos a partir de uma variedade de redes, sistemas operacionais, hardware e linguagens de programação diferentes.
Devem ser extensíveis, o primeiro passo é publicar as interfaces dos componentes, mas a integração de componentes escritos por diferentes programadores é um grande desafio.
A criptografia pode ser usada para proporcionar proteção adequada para os recursos compartilhados e para manter informações sigilosas em segredo, quando são transmitidas por uma rede.
Um sistema distribuído permanece eficiente quando há um aumento significativo no número de recursos e no número de usuários.
As falhas são parciais, isto é, alguns componentes falham, enquanto outros continuam funcionando.
A presença de múltiplos usuários é uma fonte de pedidos concorrentes para seus recursos.
O objetivo é tornar certos aspectos da distribuição invisíveis para o programador de aplicativos.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
147
TRANSPARÊNCIA
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
148
Modelo Cliente/Servidor
O modelo mais utilizado para aplicações distribuídas em redes de computadores é chamado cliente/servidor.
A comunicação costuma se dar através de uma mensagem de solicitação do cliente enviada ao servidor, pedindo que alguma tarefa seja executada.
O mecanismo mais utilizado atualmente para esse modelo, que possibilita a comunicação entre aplicações, é chamado de socket.
Um marco importante no desenvolvimento de sistemas distribuídos foi a extensão da programação estruturada para ambientes distribuídos pelo modelo cliente/servidor.
Os clientes invocam serviços por meio de um mecanismo de interação denominado Chamada de Procedimento Remoto (RPC: Remote Procedure Call).
Este mecanismo permite que um elemento invoque procedimentos definidos fora do seu espaço de endereçamento, passando parâmetros e recebendo resultados, de forma similar à chamada de procedimentos locais.
Estabelecer conexões entre máquinas
Enviar e receber dados
Encerrar conexões
Esperar por conexões em determinada porta
Os elementos assumem papel de clientes (requisitantes do serviço) ou servidores (provedores do serviço)
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
149
Programação Orientada a Objetos
Os objetos passam a se localizar em diferentes espaços de endereçamento (objetos distribuídos) e são capazes de conduzir computações em paralelo e de forma autônoma (objetos são ativos).
CORBA
Java/RMI
DCOM
Computação de objetos distribuídos
A necessidade do mercado para suporte a objetos distribuídos foi suprida pelas tecnologias de middleware, desenvolvida para o novo paradigma de computação de objetos distribuídos.
O middleware é a camada de software que fornece o suporte às interações entre as diferentes partes das aplicações distribuídas, utilizando uma infra-estrutura de computação e comunicação.
As plataformas de middleware se interpõem entre as aplicações e o sistema 
operacional do processador, fornecendo uma interface de programação uniforme
para os desenvolvedores de aplicações.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
150
Características de um sistema distribuído 
Para suporte de computadores e redes heterogêneos, e para oferecer uma visão de sistema única, os sistemas distribuídos são organizados por meio de uma camada de software:
Computação de objetos distribuídos
Sob o ponto de vista do desenvolvedor de aplicações, estas plataformas permitem às aplicações interagirem de forma totalmente transparente, sem qualquer conhecimento da infraestrutura de comunicaçãoentre os diversos objetos da aplicação distribuída.
A infraestrutura de suporte fornecida, tanto para o lado cliente quanto para o lado servidor da interação, permite a transparência de distribuição de forma que clientes possam utilizar os serviços disponibilizados por objetos sem se preocupar com aspectos de localização e implementação destes objetos.
Exemplo
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
151
Contexto orientado a componentes
As tecnologias tradicionais de middleware evoluíram incorporando o suporte a componentes e mudando de um contexto orientado a objetos para um contexto orientado a componentes.
As tecnologias tradicionais de middleware evoluíram incorporando o suporte a componentes e mudando de um contexto orientado a objetos para um contexto orientado a componentes.
Essa evolução natural de contexto permite que os requisitos impostos pelas novas aplicações (emergentes) possam ser atendidos.
Bibliografia
Colouris, G.; Dollimore, J.; Kindberg, T.. Sistemas Distribuídos: Conceitos e Projeto. 4. ed. Porto Alegre: Bookman, 2007.
Tanenbaum, A.; Steen, M. Sistemas Distribuídos: Princípios e Paradigmas. 2. ed. São Paulo: Pearson Prentice Hall, 2007.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
ATIVIDADE PROPOSTA (05):
152
Cliente
Servidor
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
ENADE
153
(ENADE, 2014) Uma companhia com abrangência global decidiu implantar um novo sistema de compartilhamento de informações empresariais. Após estudos de campo, a empresa identificou alguns cenários de utilização dos informações. No primeiro cenário, detectou-se que um volume massivo de dados relativos a documentos históricos, normas e regulamentos da organização eram consumidos, em escala global, exclusivamente para leitura. No segundo cenário, verificou-se que documentos eram produzidos de forma colaborativa por equipes regionais de colaboradores. Esses colaboradores, na maioria das vezes, estavam na mesma filial ou geograficamente muito próximos. O terceiro cenário envolvia apenas 10% dos documentos da empresa, acessados concorrentemente por todas as regionais do globo, tanto para leitura quanto para atualização.
Com base nesses cenários e em relação às arquiteturas de software distribuídas coerentemente com as necessidades da empresa, avalie as afirmações a seguir.
I - A utilização de arquitetura peer-to-peer (P2P) para disponibilidade os documentos do cenário 1 poderá reduzir o consumo da rede.
II - O compartilhamento baseado no modelo cliente-servidor com cache no cliente pode aumentar o desempenho da edição colaborativa, sem comprometer a consciência no cenário 2.
III - A utilização de replicação baseada em cópia primária pode aumentar a escalabilidade do sistema, sem comprometer, de forma significativa, a consistência de dados no cenário 3.
IV - Se o modelo cliente-servidor de compartilhamento dor empregado no cenário 2, a replicação passiva (backup ou mirroring) poderá ser utilizada como mecanismo de tolerância a falhas.
V - A arquitetura peer-to-peer baseada em rede overlay, tal como o DHT, pode oferecer transparência de migração para os documentos compartilhados no cenário 1.
É correto o que se afirma em?
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
 A questão aborda conceitos de sistemas distribuídos referentes ao compartilhamento de informações. São apresentados três cenários variando a quantidade de dados, localização dos acessos e tipo de acesso (leitura ou escrita). As afirmações analisam a eficiência no uso de arquiteturas distribuídas e técnicas de replicação em cada cenário.
 A afirmativa I indica o uso da arquitetura peer-to-peer (P2P) para diminuir o consumo de rede no cenário 1. Este cenário possui como característica uma grande quantidade de dados usados exclusivamente para leitura. Na arquitetura P2P, todos os processos atuam como cliente e servidor. Quando um processo recebe algum dado de outro processo, ele também está apto a servir esse dado para qualquer outro processo da rede. Isso permite que existam diversas cópias do dado na rede. Essa característica dificulta a modificação de dados, pois seria necessário alterar todos as cópias na rede. Desta forma, ela é indicada para acessos do tipo leitura como o do cenário 1. Além disso, a leitura pode ser realizada a partir do processo mais próximo que contenha o dado desejado, minimizando o consumo de rede. Portanto, a afirmativa I é verdadeira.
 A afirmativa II indica o uso da arquitetura cliente-servidor com cache no cliente para aumentar o desempenho da edição colaborativa, sem comprometer a consistência, no cenário 2. Este cenário possui como característica a produção de documentos de forma colaborativa por equipes próximas. No modelo cliente-servidor com cache no cliente, o servidor é responsável por prover todos os dados, e o cliente, após realizar o acesso, mantém e atualiza o dado em uma cache local, enviando as modificações em um momento posterior. Essa característica dificulta a edição colaborativa, pois os dados são atualizados inicialmente na cache local, permitindo que existam num certo instante de tempo diversas versões do dado, na cache local, no servidor e nas caches dos outros clientes, comprometendo a consistência. Portanto, a afirmativa II é falsa.
 A afirmativa III indica o uso de replicação baseada em cópia primária no cenário 3, visando aumentar a escalabilidade do sistema sem comprometer significativamente a consistência de dados. O cenário 3 consiste em 10% dos documentos que são acessados e modificados de forma concorrente por todas as filiais. A replicação baseada em cópia primária, também chamada de replicação passiva, consiste no uso de diversos servidores para armazenamento redundante dos dados. No acesso para leitura, qualquer servidor pode ser acessado, aumentando o número de acessos suportados e, portanto, a escalabilidade do sistema. No acesso para escrita, existe um servidor que possui a cópia primária do dado (servidor primário), o qual recebe a atualização do cliente e é responsável por replicar a atualização nos demais servidores, chamados de servidores escravos. Durante o processo de atualização dos servidores escravos, existirão servidores com a versão antiga e servidores com a versão nova do dado, o que pode levar ao problema de consistência no acesso ao dado. No entanto, essa inconsistência será temporária, pois eventualmente todos os servidores terão a sua cópia do dado atualizada. Portanto, a afirmativa III é verdadeira.
 A afirmativa IV indica que o uso da arquitetura cliente-servidor de compartilhamento usando replicação passiva (backup ou mirroring) pode ser usada como mecanismo para to lerância a falhas no cenário 2. Este cenário possui como característica a produção de documentos de forma colaborativa por equipes próximas. Na arquitetura cliente-servidor de compartilhamento, o servidor possui todos os dados e qualquer mudança no dado realizada pelo cliente deve ser imediatamente atualizada no servidor. A replicação passiva (abordada na afirmativa III) utiliza diversos servidores para armazenamento redundante dos dados. O acesso para leitura pode ser feito em qualquer servidor, enquanto que a atualização deve ser realizada somente no servidor primário. Esse servidor é responsável por manter a consistência entre as cópias do dado nos diversos servidores. No caso de falha de um servidor, os outros servidores poderão servir as requisições de leitura e pode-se definir outro servidor para as atualizações, caso o servidor primário tenha ficado indisponível, aumentando a tolerância a falhas da arquitetura. Portanto, a afirmativa IV é verdadeira
RESPOSTA
154
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
RESPOSTA
155
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
REGISTROS DE FREQUÊNCIA – AULA 1
É uma desvantagem dos sistemas distribuídos quando comparado aos sistemas centralizados:
Relação custo/benefício 
Tolerância a falhas 
Possibilidade de congestionamento na rede 
Capacidadede crescimento incremental 
Possibilidade de implementação de alta disponibilidade 
O termo escalabilidade por ser definido como:
Característica que esconde dos usuários/aplicativos detalhes de funcionamento do sistema. 
Possibilidade de inclusão de novos componentes, que sejam adicionados à medida que cresça a carga de trabalho. 
Capacidade do sistema em dividir adequadamente suas tarefas.
Característica que indica quanto tempo o sistema funcionará ininterruptamente sem ser afetado por falhas. 
A garantia do sistema realizar suas tarefas conforme o seu projeto, da maneira correta. 
157
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
REGISTROS DE FREQUÊNCIA – AULA 2
Dentre os vários tipos de transparência tratados na nossa aula, qual delas oculta a diferença na representação de dados e no modo de acesso a um recurso:
de falha 
de localização 
de replicação 
de concorrência 
de acesso 
Indique, a seguir, qual é a característica que permite ao sistema distribuído dividir, adequadamente, suas tarefas, de modo que um elemento processador não fique mais sobrecarregado que os outros:
1) Escalabilidade 
2) Confiabilidade 
3) Tolerância a falhas 
4) Balanceamento de Carga 
5) Disponibilidade 
158
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
REGISTROS DE FREQUÊNCIA – AULA 3 e 4
É considerada uma redundância física para o tratamento de falhas:
1) Adição de bits extras 
2) Registro do estado do sistema 
3) Execução repetida de ações 
4) Adição de equipamentos extras 
5) Divisão de tarefas 
As formas de executar mais rapidamente uma tarefa são:
I. Trabalhar mais rápido.
II. Trabalhar sem colaboração.
III. Trabalhar de forma otimizada.
IV. Trabalhar com colaboração.
Assinale a opção CORRETA:
1) Somente as afirmativas I, II e III são verdadeiras. 
2) Somente as afirmativas II, III e IV são verdadeiras. 
3) Somente as afirmativas I, III e IV são verdadeiras. 
4) Somente as afirmativas I, II e IV são verdadeiras. 
5) Todas as afirmativas são verdadeiras. 
159
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
REGISTROS DE FREQUÊNCIA – AULA 5
Em geral, a interação cliente-servidor tem as mesmas características. Entretanto o software cliente:
I. É uma aplicação qualquer que se tornará um cliente temporariamente, quando o acesso remoto for necessário.
II. Executa localmente no computador pessoal de um usuário.
III. Exige hardware especial ou sistema operacional sofisticado.
IV. É diretamente invocado por um usuário e executa somente para uma sessão.
Dentre as afirmativas anteriores, estão CORRETAS:
1) Somente I, II e III. 
2) Somente II, III e IV. 
3) Somente I, III e IV. 
4) Somente I, II e IV. 
5) Todas as afirmativas. 
160
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
IMPLEMENTAÇÃO COM SOCKETS
Um programa vê os sockets como um mecanismo de entrada e saída de dados
Seguem o paradigma open-read-write-close
A comunicação através de sockets utiliza também a abordagem de descritor.
162
Originalmente a implementação dos sockets foi feita no 4.2BSD em 1983
Na forma de uma API, os sockets abstraem a camada de rede para que uma aplicação possa se comunicar com outra sem ter que se preocupar com detalhes da pilha TCP/IP que gere a rede abaixo dessa aplicação.
Considerando a Internet e o TCP/IP, os sockets estão entre a camada de transporte e a de aplicações. Estando nesse ponto de intercessão, eles conseguem fazer uma interface entre a aplicação e rede de maneira bem transparente. Assim, aplicações são implementadas através de uma comunicação lógica. Lógica no sentido de que para esses programas, eles estão se comunicando diretamente um com o outro, mas na prática, eles estão passando pela rede para trocar mensagens.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
163
A comunicação realizada a partir da utilização de sockets é um mecanismo de comunicação entre processos – Inter Process Comunication (IPC) – através da rede, que pode ser utilizado em processos na mesma máquina. 
Comunicação utilizando sockets e Chamada a Procedimento Remoto (RPC) 
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
164
Comunicação utilizando sockets e Chamada a Procedimento Remoto (RPC) 
Originalmente a implementação dos sockets foi feita no 4.2BSD em 1983
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
165
Comunicação de socket e entrada e saída do UNIX
Originalmente, os sockets foram desenvolvidos como parte do sistema operacional UNIX e utilizam diversos conceitos que são implementados em outras partes desse sistema.  Um programa vê os sockets como um mecanismo de entrada e saída de dados, pois eles seguem o paradigma open-read-write-close, usado pela maioria das operações de entrada e saída.
Sendo assim, um socket deve ser criado, usado e, só então, destruído. Por isso, quando uma aplicação se comunica através de uma rotina similar ao socket, forma um caminho para a aplicação transferir dados a um arquivo. Dessa forma, a compreensão dos sockets exige o entendimento das características de entrada e saída do UNIX. Por exemplo, um aplicativo deve primeiro chamar open para preparar um arquivo para acesso. O aplicativo chama, então, read ou write para recuperar ou armazenar dados no arquivo. Finalmente, o aplicativo chama close para especificar que terminou de usar o arquivo.
Comunicação de socket e entrada e saída do UNIX
A figura a seguir representa uma conexão por sockets:
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
166
Sockets e Descritores
A comunicação por meio de sockets utiliza também a abordagem de descritor. Quando a aplicação solicitar ao sistema operacional para criar um socket, o aplicativo passará o descritor como um argumento para a chamada de procedimentos na transferência de dados através da rede. 
O sistema operacional fornece um único conjunto de descritores para arquivos, dispositivos, comunicação entre processos e comunicação de rede. Como resultado, procedimentos como read e write são bem gerais - uma aplicação pode usar o mesmo procedimento para enviar dados para outro programa ou um arquivo através de uma rede.
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
167
Parâmetros e a API de sockets
Escolher protocolo de transporte
Fornecer endereço do protocolo
Especificar se é cliente ou servidor
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
168
Procedimentos que implementam a API de sockets
/* Principais funções para escrever programas com sockets */
getaddrinfo()	// Traduz nomes para endereços sockets 
socket()	// Cria um socket e retorna o descritor de arquivo 
bind()	// Associa o socket a um endereço socket e uma porta 
connect()	// Tenta estabelecer uma conexão com um socket 
listen()	// Coloca o socket para aguardar conexões 
accept() 	// Aceita uma nova conexão e cria um socket 
send() 	// caso conectado, transmite mensagens ao socket 
recv() 	// recebe as mensagens através do socket 
close() 	// desaloca o descritor de arquivo 
shutdown() 	// desabilita a comunicação do socket
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
169
Procedimentos que implementam a API de sockets
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
170
Procedimentos que implementam a API de sockets
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
171
Procedimentos que implementam a API de sockets
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
172
Procedimentos que implementam a API de sockets
listen() // Coloca o socket para aguardar conexões
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
173
Procedimentos que implementam a API de sockets
accept() // Aceita uma nova conexão e cria um socket
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
174
Procedimentos que implementam a API de sockets
send() // caso conectado, transmite mensagens ao socket
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
175
Procedimentos que implementam a API de sockets
recv() // recebe as mensagens através do socket 
ARQ SIST DISTRIBUÍDOS
ARQ SIST DISTRIBUÍDOS
176
Procedimentos

Continue navegando