Buscar

Arquitetura de Sistemas Distribuidos Material Didático

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 163 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 163 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 163 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Aula 1- Introdução aos Sistemas 
Distribuídos
Introdução – AULA1
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
OBJETIVOS DA DISCIPLINA:
 Compreender os conceitos de 
Sistemas Distribuídos;
 Conhecer os principais modelos de 
arquitetura;
 Entender a importância dos 
conceitos nas novas tecnologias.
Introdução – AULA1
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
ESTRUTURA DA DISCIPLINA
AULA 1 – Introdução;
AULA 2 – Aplicações Distribuídas;
AULA 3 – Tratamento de Falhas;
AULA 4 – Classificação de Flynn;
AULA 5 – Modelo Cliente/Servidor;
AULA 6 – Sockets e RPC;
AULA 7 – Modelo P2P;
AULA 8 – Sistemas de Arquivos Distribuídos;
AULA 9 – Serviços WEB;
AULA 10 – Tecnologia: Computação Ubíqua e nas 
Nuvens.
Introdução – AULA1
ARQUITETURA DE SISTEMAS 
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
Introdução – AULA1
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
1970 20131980
Evolução Histórica do Processamento
1950 1960
Mainframe Time-
sharing
Redes Sistemas 
Distribuídos
?
Introdução – AULA1
ARQUITETURA DE SISTEMAS 
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
Introdução – AULA1
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
AINDA EXISTE “MAINFRAME”?
Introdução – AULA1
ARQUITETURA DE SISTEMAS 
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
Introdução – AULA1
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS
O que é?
É um sistema em que os 
computadores estão conectados 
em rede e coordenam suas ações 
através de troca de mensagens.
 
Introdução – AULA1
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
O que é?
É um sistema em que os computadores estão conectados 
em rede e coordenam suas ações através de troca de 
mensagens.
 
SISTEMAS DISTRIBUÍDOS
Introdução – AULA1
ARQUITETURA DE 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 
pela troca de mensagens;
•ambiente geralmente marcado pela heterogeneidade.
Introdução – AULA1
ARQUITETURA DE SISTEMAS 
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
Introdução – AULA1
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Porque precisamos de sistemas distribuídos?
Eles podem resolver tudo? 
SISTEMAS DISTRIBUÍDOS
Introdução – AULA1
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Porque? 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
Introdução – AULA1
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
RESUMINDO:
Podemos comparar sistemas centralizados com 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
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Aula 2- Aplicações distribuídas e TI VERDE
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
ESTRUTURA DA DISCIPLINA
AULA 1 – Introdução
AULA 2 – Aplicações Distribuídas
AULA 3 – Tratamento de Falhas
AULA 4 – Classificação de Flynn
AULA 5 – Modelo Cliente/Servidor
AULA 6 – Sockets e RPC
AULA 7 – Modelo P2P
AULA 8 – Sistemas de Arquivos Distribuídos
AULA 9 – Serviços WEB
AULA 10 – Tecnologia: Computação Ubíqua e nas 
Nuvens
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Conteúdo Programático AULA 2
 Aplicações Distribuídas – 
Como identificar?
 Aplicações atuais
 Contribuição para TI Verde
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
MOTIVAÇÃO
• Ampla utilização das redes de computadores 
• Velocidade e Confiabilidade
• Trabalho cooperativo
• Aumento do poder computacional
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Computação Distribuída é para 
mim?
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
COMPUTAÇÃO EM GRADE 
(GRID)
Worldwide LHC Computing 
Grid (CERN) 
http://boinc.berkeley.edu/
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
DESAFIOS DA COMPUTAÇÃO DISTRIBUÍ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.
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
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.
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
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.
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
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.
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
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.
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
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.
AULA2 - AplicaçõesDistribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
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.
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
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.
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
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
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
ATRIBUTOS DOS SITEMAS 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
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
 
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
ATRIBUTOS DOS SITEMAS DISTRIBUÍDOS
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..
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. 
 
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
ATRIBUTOS DOS SITEMAS DISTRIBUÍDOS
Escalabilidade
Capacidade de melhoria do desempenho do sistema distribuído 
conforme cresce o número de elementos processadores.
Disponibilidade
Característica que indica quanto tempo o sistema funcionará 
ininterruptamente sem ser afetado por falhas, manutenção 
preventiva ou corretiva etc.
Tolerância a falhas
Capacidade de o sistema sobreviver à falha de alguns de seus 
elementos.
 
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
TOP 500
Desde 1993, o 
site 
TOP500 
publica, 
semestralme
nte, um 
ranking dos 
500 
computador
es com 
maior 
desempenho 
no mundo.
 
 
Ran
k Site Computer
1 DOE/NNSA/LLNLUnited States
Sequoia - 
BlueGene/Q, Power BQ
C 16C 1.60 GHz, Cust
om
IBM2
RIKEN Advanced I
nstitute for Com
putational Scien
ce (AICS)
Japan
K computer, SPARC64 VI
IIfx 2.0GHz, Tofu inte
rconnect
Fujitsu
3
DOE/SC/Argonne 
National Labora
tory
United States
Mira - 
BlueGene/Q, Power BQ
C 16C 1.60GHz, Custo
m
IBM
4
Leibniz Rechenz
entrum
Germany
SuperMUC - 
iDataPlex DX360M4, X
eon E5-2680 8C 2.70G
Hz, Infiniband FDR
IBM
5
National Superco
mputing Center i
n Tianjin
China
Tianhe-1A - 
NUDT YH MPP, Xeon X5
670 6C 2.93 GHz, NVI
DIA 2050
NUDT
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
TOP 500 - BRASIL
 
Rank Site System Cores Rmax (TFlop/s)
Rpeak 
(TFlop/s) Power (kW)
68 PETROBRASBrazil
Grifo04
 - Itautec Cl
uster, Xeon X
5670 6C 2.930
GHz, Infiniba
nd QDR, NVIDI
A 2050
Itautec
17408 251.5 563.4 365.5
79
INPE (National In
stitute for Space
 Research)
Brazil
Tup
 - Cray XE6, 
Opteron 6172 
12C 2.10GHz, 
Cray Gemini i
nterconnect
Cray Inc.
31104 214.2 261.3
456
NACAD/COPPE/U
FRJ
Brazil
Galileu
 - Sun Blade 
x6048, Xeon X
5560 2.8 Ghz,
 Infiniband Q
DR
Oracle
6464 64.6 72.4 430
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
TI VERDE
VIRTUALIZAÇÃO
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
TI VERDE
GREEN 500
Green50
0 Rank MFLOPS/W Site* Computer*
Total 
Power 
(kW)
1 2026.48 IBM - Rochester
BlueGene/Q, 
Power BQC 
16C 1.60 GHz, 
Custom
85.12
2 2026.48
IBM Thomas J. 
Watson Research 
Center
BlueGene/Q, 
Power BQC 
16C 1.60 GHz, 
Custom
85.12
3 1996.09 IBM - Rochester
BlueGene/Q, 
Power BQC 
16C 1.60 GHz, 
Custom
170.25
4 1988.56 DOE/NNSA/LLNL
BlueGene/Q, 
Power BQC 
16C 1.60 GHz, 
Custom
340.50
5 1689.86
IBM Thomas J. 
Watson Research 
Center
NNSA/SC Blue 
Gene/Q 
Prototype 1
38.67
http://www.green500.org
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
O que fazer com o lixo eletrônico?
AULA2 - Aplicações Distribuídas e TI verde 
ARQUITETURA DE SISTEMAS 
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
 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Aula 3- TRATAMENTO DE FALHAS
AULA 3 – Tratamento de Falhas
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
ESTRUTURA DA DISCIPLINA
AULA 1 – Introdução
AULA 2 – Aplicações Distribuídas
AULA 3 – Tratamento de Falhas
AULA 4 – Classificação de Flynn
AULA 5 – Modelo Cliente/Servidor
AULA 6 – Sockets e RPC
AULA 7 – Modelo P2P
AULA 8 – Sistemas de Arquivos Distribuídos
AULA 9 – Serviços WEB
AULA 10 – Tecnologia: Computação Ubíqua e nas 
Nuvens
AULA 3 – Tratamento de Falhas
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Conteúdo Programático AULA 3
 Falhas em Sistemas Distribuídos
 Tolerância a falhas
 Conceito: Falha, Erro e Defeito
 Tipos de falhas
 Detecção, Tratamento e Recuperação
AULA 3 – Tratamento de Falhas
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
FALHAS EM SISTEMAS 
DISTRIBUÍDOS
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 ????????
AULA 3 – Tratamento de Falhas
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
TOLERÂNCIA A FALHAS
Disponibilidade
Confiabilidade 
Segurança
Capacidade de manutenção
AULA 3 – Tratamento de Falhas
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
TOLERÂNCIA A FALHAS
Disponibilidade  estar pronto para ser usado imediatamente 
Confiabilidade 
Segurança
Capacidade de manutenção
AULA 3 – Tratamento de Falhas
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
TOLERÂNCIA A FALHAS
Disponibilidade  estar pronto para ser usado imediatamente 
Confiabilidade  funcionar continuamente sem falhas. 
Segurança
Capacidade de manutenção
AULA 3 – Tratamento de Falhas
ARQUITETURA DE SISTEMAS 
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
AULA 3 – Tratamento de Falhas
ARQUITETURA DE SISTEMAS 
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.
AULA 3 – Tratamento de Falhas
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Falha, Erro e Defeito
Falha (físico)  Erro (informação)  Defeito (erro 
percebido)
AULA 3 – Tratamento de Falhas
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
A HISTÓRIA DO BUG
AULA 3 – Tratamento de Falhas
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
No dia a dia, o que fazemos?
AULA 3 – Tratamento de Falhas
ARQUITETURA DE SISTEMAS 
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.”
 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Aula 4 – Classificação de Flynn
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
ESTRUTURA DA DISCIPLINA
AULA 1 – Introdução
AULA 2 – Aplicações Distribuídas
AULA 3 – Tratamento de Falhas
AULA 4 – Classificação de Flynn
AULA 5 – Modelo Cliente/Servidor
AULA 6 – Sockets e RPC
AULA 7 – Modelo P2P
AULA 8 – Sistemas de Arquivos Distribuídos
AULA 9 – Serviços WEB
AULA 10 – Tecnologia: Computação Ubíqua e nas 
Nuvens
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Conteúdo Programático AULA 4
 Classificação geral
 Detalhando cada tipo
 Modelos de programação
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
PRINCIPIOS DA CLASSIFICAÇÃO
• Fluxo de instruções
• Fluxo de Dados
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
SISD – Single Instruction Single Data
Máquina clássica de Von Neumann (não paralela)
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
SIMD – Single Instruction Multiple 
Data
Arquitetura vetorial – Execução síncrona
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
SIMD – Single Instruction Multiple 
Data
Arquitetura vetorial – Execução síncrona
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
MISD – Multiple Instruction Single 
Data
?????????
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
MIMD – Multiple Instruction Multiple 
Data
Execução simultânea de instruções diferentes para cada 
dado
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
MIMDMIMD
Multiprocessadore
s
Multiprocessadore
s
UMAUMA NUMANUMA
MulticomputadoresMulticomputadores
MPPMPP COWCOW
Arquiteturas MIMD – Memória 
Compartilhada
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Arquiteturas MIMD
Todos os processadores compartilham a memória principal
MIMDMIMD
Multiprocessadore
s
Multiprocessadore
s
UMAUMA NUMANUMA
MulticomputadoresMulticomputadores
MPPMPP COWCOW
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Arquiteturas MIMD
Memória global compartilhada e memória local.
MIMDMIMD
Multiprocessadore
s
Multiprocessadore
s
UMAUMA NUMANUMA
MulticomputadoresMulticomputadores
MPPMPP COWCOW
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Arquiteturas MIMD – Memória 
Compartilhada
MIMDMIMD
Multiprocessadore
s
Multiprocessadore
s
UMAUMA NUMANUMA
MulticomputadoresMulticomputadores
MPPMPP COWCOW
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Arquiteturas MIMD
Cada computador é um nó de processamento
MIMDMIMD
Multiprocessadore
s
Multiprocessadore
s
UMAUMA NUMANUMA
MulticomputadoresMulticomputadores
MPPMPP COWCOW
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Arquiteturas MIMD
Estações de trabalho interligadas
MIMDMIMD
Multiprocessadore
s
Multiprocessadore
s
UMAUMA NUMANUMA
MulticomputadoresMulticomputadores
MPPMPP COWCOW
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
COMO FAZER MAIS RÁPIDO ?
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
COMO FAZER MAIS RÁPIDO ?
 Aumentar a frequência da CPU
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
COMO FAZER MAIS RÁPIDO ?
 Aumentar a frequência da CPU
 Otimização do Algoritmo
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
COMO FAZER MAIS RÁPIDO ?
 Aumentar a frequência da CPU
 Otimização do Algoritmo
 Colaboração
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
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).
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
DIFICULDADES 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).
AULA 4 – Classificação de Flynn
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
RESUMINDO
•Sistemas classificados quanto ao fluxo de instruções e 
dados
•Para cada tipo de sistema um modelo de programação
 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Aula 5 – Modelo Cliente/Servidor
AULA 5 – MODELO CLIENTE/SERVIDOR
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
ESTRUTURA DA DISCIPLINA
AULA 1 – Introdução
AULA 2 – Aplicações Distribuídas
AULA 3 – Tratamento de Falhas
AULA 4 – Classificação de Flynn
AULA 5 – Modelo Cliente/Servidor
AULA 6 – Sockets e RPC
AULA 7 – Modelo P2P
AULA 8 – Sistemas de Arquivos Distribuídos
AULA 9 – Serviços WEB
AULA 10 – Tecnologia: Computação Ubíqua e nas 
Nuvens
AULA 5 – MODELO CLIENTE/SERVIDOR
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Conteúdo Programático AULA 5
• Modelos de comunicação;
• Características de cada 
componente do modelo 
cliente/servidor.
AULA 5 – MODELO CLIENTE/SERVIDOR
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
PARA QUE SERVE UM MODELO?
Representa de forma unívoca um conjunto de 
características
AULA 5 – MODELO CLIENTE/SERVIDOR
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
MODELOS DE COMUNICAÇÃO
MODELOS
ARQUITETURA FUNCIONAIS
Aqueles que definem a 
forma como os 
componentes dos 
sistemas interagem.
AULA 5 – MODELO CLIENTE/SERVIDOR
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
MODELOS DE COMUNICAÇÃO
MODELOS
ARQUITETURA FUNCIONAIS
Aqueles que definem o 
comportamento e as 
propriedades dos 
componentes.
AULA 5 – MODELO CLIENTE/SERVIDOR
ARQUITETURA DE SISTEMAS 
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 dessesistema
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.
AULA 5 – MODELO CLIENTE/SERVIDOR
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
ABSTRAÇÕES
PLATAFORMA = HARDWARE + SOFTWARE BÁSICO
AULA 5 – MODELO CLIENTE/SERVIDOR
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
IMPLEMENTAÇÕES
NESTE MOMENTO ESTUDAREMOS O MODELO CLIENTE-
SERVIDOR
CLIENTE-SERVIDOR PEER –TO – PEER (P2P)
AULA 5 – MODELO CLIENTE/SERVIDOR
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
MODELO CLIENTE/SERVIDOR
• Dois processos trocam mensagens para 
realização de uma tarefa: 
processo cliente e processo servidor
• O processo SERVIDOR é acionado primeiro e 
espera que o CLIENTE faça contato. 
• O processo CLIENTE precisa conhecer a 
localização na qual o SERVIDOR espera contato.
AULA 5 – MODELO CLIENTE/SERVIDOR
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
CARACTERÍSTICAS DO PROCESSO CLIENTE
É O ELEMENTO 
ATIVO
RESPONSÁVEL PELA INTERFACE COM O 
USUÁRIO
PRECISA CONHECER A LOCALIZAÇÃO DO 
SERVIDOR
AULA 5 – MODELO CLIENTE/SERVIDOR
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
CARACTERÍSTICAS DO PROCESSO SERVIDOR
É REATIVO
NÃO POSSUI INTERFACE COM O USUÁRIO
É 
ESPECIALIZADO
PODE SER ITERATIVO OU CONCORRENTE
AULA 5 – MODELO CLIENTE/SERVIDOR
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
CARACTERÍSTICAS DA COMUNICAÇÃO
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
 
AULA 5 – MODELO CLIENTE/SERVIDOR
ARQUITETURA DE SISTEMAS 
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
AULA 5 – MODELO CLIENTE/SERVIDOR
ARQUITETURA DE SISTEMAS 
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.
 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Aula 6 – Sockets e RPC
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
ESTRUTURA DA DISCIPLINA
AULA 1 – Introdução
AULA 2 – Aplicações Distribuídas
AULA 3 – Tratamento de Falhas
AULA 4 – Classificação de Flynn
AULA 5 – Modelo Cliente/Servidor
AULA 6 – Sockets e RPC
AULA 7 – Modelo P2P
AULA 8 – Sistemas de Arquivos Distribuídos
AULA 9 – Serviços WEB
AULA 10 – Tecnologia: Computação Ubíqua e nas 
Nuvens
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Conteúdo Programático AULA 6
•Sockets.
•Remote Procedure Call (RPC).
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS 
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.
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS 
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
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
CHAMADAS AO SISTEMA - 
LINUX
Socket : cria um 
socket
Bind: associa uma 
porta ao socket
Listen: Indica ao 
kernel que está apto 
a receber conexões
Accept: Aceita 
conexões
Connect: Solicita 
uma conexão
 
S o c k e t 
W r i t e 
R e a d 
A c c e p t 
L i s t e n 
B i n d 
S o c k e t 
R e a d 
W r i t e 
C o n n e c t 
L i g a ç ã o 
M e n s a g e m 
M e n s a g e m 
S e r v i d o r 
C l i e n t e 
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
CONFIGURAÇÃO - SERVIDOR
int open_servidor(unsigned short port){
 int sock;
 struct sockaddr_in server;
  sock = socket(AF_INET,SOCK_STREAM,0);
 if (sock < 0) return -1;
 server.sin_family = AF_INET;
 server.sin_addr.s_addr = INADDR_ANY;
 server.sin_port = htons((short) port);
  if ( bind(sock, (struct sockaddr *)&server, sizeof(server)) < 0 ) return 
-1;
 if (listen(sock, MAXBACKLOG) < 0 ) return -1;
 return sock; 
}
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
EXEMPLO – ACERTAR A HORA
Configura Cliente Configura Servidor
Solicita conexão Aguarda conexão
Recebe data/hora 
e ajusta o 
sistema
Obtém data/hora 
e envia ao cliente
FIM
FIM 
CONEXÃ
O
 Servidor: ./server Cliente:./client <ip do servidor> 
8000
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
REMOTE PROCEDURE CALL
• Birrell e Nelson (1984) : permitir que programas fossem 
capazes de chamar procedimentos localizados em outras 
CPUs.
• Para chamar um procedimento remoto, o programa 
cliente deve ser ligado a um pequeno procedimento de 
biblioteca chamado de stub do cliente, que representa o 
procedimento servidor no espaço de endereçamento do 
cliente. 
• Da mesma maneira, o servidor é ligado a um 
procedimento denominado stub do servidor.
 .
 
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
REMOTE PROCEDURE CALL
 
 
 
 
Sistema Operacional Sistema Operacional
Cliente
Stub
do
Cliente
Stub
do
Servidor
Servidor
Rede
A
B
C
D
E
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
EXEMPLO – EQUAÇÃO 2º GRAU
Procedimentos:
1)Escrever gerador : calcula.x
2)Gerar arquivos com rpcgen: rpcgen –c – A calcula.x
makefile.calcula compila cliente e servidor
calcula_clnt.c stub do cliente (não alterar)
calcula_svc.c  stub do servidor (não alterar)
calcula.h  cabeçalho das funções
calcula_client.c  esqueleto do cliente
calcula_server.c  esqueleto do servidor
3)Editar arquivos calcula_client.c e calcula_server.c
 
AULA 6 – SOCKETS E RPC
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
RESUMINDO
• Programação com sockets torna explicita as 
características e uso da rede
• Programação com RPC disfarça a existência da rede 
simplificando a programação
 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Aula 7 – Modelo P2P
AULA 7– MODELO P2P
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
ESTRUTURA DA DISCIPLINA
AULA 1 – Introdução
AULA 2 – Aplicações Distribuídas
AULA 3 – Tratamento de Falhas
AULA 4 – Classificação de Flynn
AULA 5 – Modelo Cliente/Servidor
AULA 6 – Sockets e RPC
AULA 7 – Modelo P2P
AULA 8 – Sistemas de Arquivos Distribuídos
AULA 9 – Serviços WEB
AULA 10 – Tecnologia: Computação Ubíqua e nas 
Nuvens
AULA 7– MODELO P2P
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Conteúdo Programático AULA 7
•Características do Modelo P2P
•Aplicações P2P
AULA 7– MODELO P2P
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
COMUNICAÇÃO P2P
• Comunicação direta entre os nós 
(peers)
• Cada peer se comporta como 
cliente e/ou servidor
• Diferentes implementações
AULA 7– MODELO P2P
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
DEFINIÇÃO : Peer – to – Peer
Androutsellis e Spinellis(2004) propuseram a 
seguinte definição:
 
Sistemas peer-to-peer são sistemas distribuídos 
que consistem em nós interconectados com 
capacidade de auto-organização em relação à 
topologia da rede com o propósito de 
compartilhar recursos, adaptar-sea falhas e picos 
de carga mantendo um nível aceitável de 
conectividade e desempenho sem requerer 
intermediação ou suportede um servidor central.
AULA 7– MODELO P2P
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
RESUMO DAS 
CARACTERÍSTICAS
• Não há coordenação central e, portanto, não há 
um ponto de falha nem gargalo. 
• Nenhum peer tem uma visão global do sistema, 
porém todos os dados e serviços são acessíveis 
de qualquer peer.
• Escalabilidade
• Heterogeneidade
AULA 7– MODELO P2P
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
APLICAÇÕES
• Compartilhamento de recursos
• Trabalho Colaborativo (groupware)
• Compartilhamento de arquivos
AULA 7– MODELO P2P
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
TIPOS DE REDES P2P
P2P Puro
Não existe servidor centralizado. Os peers se comunicam 
diretamente
Exemplos: Gnutella e FreeNet
P2P Híbrido
O servidor é conectado primeiro para obter meta-informações 
(identidade do peer, verificar credencias de segurança) e este então 
redireciona para o peer requisitado que se comunicam diretamente 
Exemplos: Napster, Groove, Aimster, Magi, Softwax e iMesh
Intermediários
SuperPeers contém algumas informações que outros peers podem 
não ter. Os peers então procuram informações nos SuperPeers uma 
vez que não conseguiram achá-las em nenhum outro lugar.
Exemplo: KaZaa
AULA 7– MODELO P2P
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
FORMAS DE BUSCA
Centralizada
Consulta feita a um nó central
Inundação
Nós totalmente independentes limitada, em geral, à 
vizinhança mais próxima.
Tabela Hash Distribuida (DHT)
Um ID randômico é associado a cada peer que, por sua vez, 
conhecem um determinado número de peers. Quando um novo 
documento é compartilhado, cada peer encaminha o documento ao 
peer cujo ID é mais próximo ao ID do documento. Este processo é 
repetido até que o ID do peer atual seja o mais próximo do 
documento ou o documento seja encontrado.
AULA 7– MODELO P2P
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
O PROTOCOLO BIT TORRENT
• Existem dezenas de clientes disponíveis gratuitamente que 
entendem esse protocolo. 
• torrent é um arquivoque contém dois tipos de informação: o nome 
de um tracker e os chuncks
 Tracker: Servidor que mantém uma lista dos peers que 
estão fazendo download/upload (swarm). 
 Chuncks: Lista de blocos de mesmo tamanho que compõem 
o conteúdo da torrent. 
 Swarm: Conjunto de peers ativos que entram em contato 
com o tracker regularmente para informando se ainda estão 
ativos. Quando um novo peer entra em contato com o tracker para 
se juntar ao swarm, o tracker lhe informa sobre outros peers no 
swarm. 
AULA 7– MODELO P2P
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
O PROTOCOLO BIT TORRENT
1)Localizar peer com conteúdo 
• Obter o torrent
• Entrar em contato com o tracker
2)Tornar o download rápido
• Enquanto participa de um swarm, o peer efetua, 
simultaneamente, o download de chunks que não encontra em 
outros peers e faz o upload de chunks dos quais outros peers 
precisam. 
• Quando um swarm é formado inicialmente, alguns peers 
precisam ter todos os chunks que compõem o conteúdo. Esses 
peers são chamados de seeders. 
• cada chunk deve estar disponível em muitos peers. 
3)Motivar o upload
• free-riders ou leechers : nós que não contribuem 
• Quanto mais um peer estiver contribuindo com os outros, mais 
ele poderá esperar em retorno. 
AULA 7– MODELO P2P
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
O PROTOCOLO BIT TORRENT
AULA 7– MODELO P2P
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
DISTRIBUTED HASH TABLES 
(DHTs)Seria possível criar índices P2P que fossem total mente distribuídos, mas 
que possibilitassem um bom desempe nho? 
•A funcionalidade básica de um índice é mapear uma chave a um valor. 
•Uma forma de mapeamento é a tabela hash, que na versão distribuída é 
implementada em algoritmos de roteamento como:
 Chord (STOICA et al., 2001);
 Can (RATNASAMY et al., 2001);
 Pastry (ROWSTRON; DRUSCHEL, 2001);
 Tapestry (ZHAO et al., 2004). 
 
 
AULA 7– MODELO P2P
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
SOLUÇÃO DHT - CHORD
• Solução equivalente a um tracker distribuído
• n usuários, cada um com alguns registros.
• O endereço IP de cada usuário pode ser transformado em um 
número.
• Para transformar um endereço de nó em um identifica dor, o IP é 
mapeado para um número de m bits, usando uma função de 
hash. Sendo assim, podemos usá-lo para converter qualquer 
endereço IP em um número de 160 bits – chamado de 
identificador de nó.
AULA 7– MODELO P2P
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
SOLUÇÃO DHT - CHORD
os nós com identificadores 
1, 4, 7, 12, 15, 20 e 27 
sombreados correspondem 
aos nós reais.  
sucessor (k)  identificador 
de nó do primeiro nó real, 
após k, ao redor do anel (no 
sentido horário). 
 
Por exemplo:
•Sucessor (6) = 7;
•Sucessor (8) = 12;
•cada nó precisa manter o 
endere ço IP de seu nó 
sucessor.
AULA 7– MODELO P2P
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
SOLUÇÃO DHT - CHORD Tabela de fingers para M =5 
bits (32 nós):
 inicio = (k + 2i) mod 2M
 IP do sucessor
Ex: k=3 (entrada 3 da 
tabela)
 i = 1 (nó 1) 
 inicio= (3+2) mod 32 = 5
Tabela de fingers 
do nó 1
Iníci
o IP do sucessor
2 4
3 4
5 7
9 12
17 20
AULA 7– MODELO P2P
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
SOLUÇÃO DHT - CHORD
Tabela de fingers 
do nó 4
Início IP do sucessor
5 7
6 7
8 12
12 12
20 20
Tabela de fingers para m =5 
bits:
 inicio = (k + 2i) mod 2m
 IP do sucessor
Ex: k=2 (entrada 2 da 
tabela)
 i = 4 (nó 4) 
 inicio= (2+4) mod 32 = 6
AULA 7– MODELO P2P
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
SOLUÇÃO DHT - CHORD
Exemplo:
Pesquisa chave = 3 no nó 1.
Como o nó 1 sabe que 3 se 
encontra entre ele e seu 
sucessor (4), o nó desejado é 4. 
Retorna o IP do nó 4.
AULA 7– MODELO P2P
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
SOLUÇÃO DHT - CHORD Exemplo:
Pesquisa chave = 14 no nó 1. 
Como 14 não se encontra entre 
1 e 4, as tabelas de fingers serão 
consultadas. 
O predecessor mais próximo de 
14 é 9. A solicitação é 
encaminhada para o endereço IP 
da entrada 9 12. 
 
O nó 12 também não sabe a 
resposta mas identifica que o nó 
14 está entre ele e sucessor 
(15).
 
Retorna o IP do nó 15
AULA 7– MODELO P2P
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
RESUMINDO
• Redes P2P podem eliminar algumas características 
negativas do modelo cliente/servidor
• O protocolo utilizado deve ser capaz de minimizar a 
centralização de compontentes.
• Lembre-se: Pirataria é crime!
 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Aula 8 – Sistemas de Arquivos 
Distribuídos
AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
ESTRUTURA DA DISCIPLINA
AULA 1 – Introdução
AULA 2 – Aplicações Distribuídas
AULA 3 – Tratamento de Falhas
AULA 4 – Classificação de Flynn
AULA 5 – Modelo Cliente/Servidor
AULA 6 – Sockets e RPC
AULA 7 – Modelo P2P
AULA 8 – Sistemas de Arquivos Distribuídos
AULA 9 – Serviços WEB
AULA 10 – Tecnologia: Computação Ubíqua e nas 
Nuvens
AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Conteúdo Programático AULA 8
•Conceitos de Sistemas de Arquivos 
Distribuídos
•Compartilhamento de arquivos
•Replicação de arquivos
AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
MOTVAÇÃO
Sistemas de Arquivos Distribuídos (SAD) 
ou Distributed File System (DFS) são a 
base para muitas aplicações distribuídas.
Permitem compartilhamento de dados, de 
modo seguro e confiável, por longos 
períodos. 
AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
COMPONENTES
Interface para Clientes  fornece serviços de arquivo para clientes: 
criar, apagar, lere gravar um arquivo.
Dispositivos de armazenamento secundário  arquivos são 
armazenados e recuperados, de acordo com as solicitações dos 
clientes.
 
Rede  a atividade de serviço deve ser realizada através da rede. 
AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
FUNÇÕES
• Aparecer para seus clientes como um sistema de arquivos 
convencional centralizado  transparência
• Gerenciar um conjunto de dispositivos de armazenamento 
dispersos
Medida de desempenho
Tempo necessário para o atendimento das requisições de 
serviço.
AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
SERVIÇOS DE UM DFS
AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
NOMEAÇÃO E TRANSPARÊNCIA
Conceitos
•nomeação é um mapeamento entre objetos lógicos e 
físicos. 
•transparência oculta o local em que o arquivo está 
localizado na rede. 
Operação 
•Dado um nome de arquivo, o mapeamento retorna um 
conjunto de localizações dessas réplicas do arquivo. 
 
•Nessa abstração, ficam ocultas tanto a existência de 
múltiplas cópias quanto sua localização.
AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
MODELOS DE ACESSO
Serviço remoto
•O computador que armazena o arquivo será localizado pelo esquema 
de nomeação e, então, realizará a transferência dos dados.
•Utilização de Chamada de Procedimento Remoto (RPC). 
Modelo de Caching
•Se os dados necessários para atender à solicitação de acesso ainda 
não estive rem armazenados em cache, uma cópia desses dados do 
servidor será trazida para o sistema cliente. 
•Acessos serão executados na cópia do cache  redução do tráfego 
na rede
•Quan do uma cópia do cache for modificada, as mudanças precisarão 
se refletir na cópia-mestra para preservar a semântica de 
consistência relevante. 
AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
COMPARANDO ...
Localidade : Quando o armazenamento em cache é 
utilizado, o cache local pode evitar um número substan 
cial dos acessos remotos. 
Problema: consistência do cache é a principal desvan 
tagem do armazenamento em cache principalmente 
quando existem gravações frequentes ou a capacidade 
da máquina é insuficiente.
AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
REPLICAÇÃO DE ARQUIVOS
EXPLICITA
AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
REPLICAÇÃO DE ARQUIVOS
EXPLICITA
ATRASADA
AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
REPLICAÇÃO DE ARQUIVOS
EXPLICITA
ATRASADA
EM GRUPO
AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
SEMÂNTICA DE COMPARTILHAMENTO
Quando dois ou mais usuários compartilham o mesmo arquivo ao 
mesmo tempo, é necessário definir, com exatidão, a semântica de 
leitura e de escrita para evitar problemas. 
 
Semântica Unix
•As alterações são visíveis instantaneamente. 
•A semântica declara que, quando uma operação read vem depois de 
uma operação write, aquela retorna o valor que acabou de ser 
escrito. 
Semântica de Sessão
•As alterações em um arquivo aberto são inicialmente visíveis apenas 
para o processo – ou, possivelmente, máquina – que modi ficou o 
arquivo;
•As alterações devam ficar visíveis para outros processos ou 
máquinas somente quando o arquivo for fechado.
AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
GOOGLE FILE SYSTEM
AULA 8– SISTEMA DE ARQUIVOS DISTIBUÍDOS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
RESUMINDO
• Um sistema de arquivos é a base para aplicações 
distribuídas
• Possuem características específicas
• Implementam técnicas de replicação e compartilhamento
 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Aula 9 – Serviços WEB
AULA 9 – SERVIÇOS WEB
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
ESTRUTURA DA DISCIPLINA
AULA 1 – Introdução
AULA 2 – Aplicações Distribuídas
AULA 3 – Tratamento de Falhas
AULA 4 – Classificação de Flynn
AULA 5 – Modelo Cliente/Servidor
AULA 6 – Sockets e RPC
AULA 7 – Modelo P2P
AULA 8 – Sistemas de Arquivos Distribuídos
AULA 9 – Serviços WEB
AULA 10 – Tecnologia: Computação Ubíqua e nas 
Nuvens
AULA 9 – SERVIÇOS WEB
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Conteúdo Programático 
AULA 9
•Definir o conceito de serviços 
web;
•Identificar os componentes 
utilizados para o 
desenvolvimento desses 
serviços;
AULA 9 – SERVIÇOS WEB
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
MOTIVAÇÃO
As inovações na programação e no 
hardware levaram a tecnologias mais 
poderosas e úteis, entre elas: a 
Programação Orientada a Objeto, a 
computação distribuída, os protocolos 
da internet e o XML.
Serviços WEB (WEB SERVICES) 
representam a integração de diversas 
aplicações através da internet.
AULA 9 – SERVIÇOS WEB
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
PADRÕES ABERTOS
WEB SERVICES utilizam padrões abertos (não proprietários). 
 
Permitem a comunicação entre dois componentes de software 
independentemente das tecnologias utilizadas 
(interoperabilidade). 
Fornecem uma interface de serviços para a interação com os 
servidores
As aplicações podem utilizar sua própria linguagem, 
que será traduzida para Extensible Markup 
LanguagePadrões abertos permitem que empresas que utilizam 
plataformas diferentes se comuniquem
AULA 9 – SERVIÇOS WEB
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
ARQUITETURA SOA (Service Oriented 
Architecture)
Visão lógica : O serviço é uma visão abstrata e lógica de 
programas reais, bases de dados, processos de negócio etc., 
definidos em termos do que faz.
Orientação à mensagem: O serviço é formalmente definido 
em função das mensagens trocadas
Orientação à descrição: Um serviço é descrito por meta-
dados. A descrição apoia a natureza pública da SOA.
Granularidade: Os serviços tendem a utilizar um pequeno 
número de operações com mensagens relativamente grandes 
e complexas.
Orientação à rede: Os serviços tendem a ser orientados para 
uso em rede, embora este não seja um requisito absoluto.
Plataforma neutra: As mensagens são enviadas em uma 
plataforma neutra, de formato padronizado e fornecido 
através das interfaces. 
AULA 9 – SERVIÇOS WEB
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
COMPONENTES SOA
Provedor 
de 
Serviços 
WEB
Provedor 
de 
Serviços 
WEB
Consumidor 
de Serviços
Consumidor 
de Serviços
Registro dos 
serviços
Registro dos 
serviços
publicação e descrição 
do web service no 
registro dos serviços
AULA 9 – SERVIÇOS WEB
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
COMPONENTES SOA
Provedor 
de 
Serviços 
WEB
Provedor 
de 
Serviços 
WEB
Consumidor 
de Serviços
Consumidor 
de Serviços
Registro dos 
serviços
Registro dos 
serviços
Manutenção de diretório com as 
informações sobre os serviços. 
Padrão adotado para registro: Universal 
Description, Discovery and Integration 
(UDDI).
AULA 9 – SERVIÇOS WEB
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
COMPONENTES SOA
Provedor 
de 
Serviços 
WEB
Provedor 
de 
Serviços 
WEB
Consumidor 
de Serviços
Consumidor 
de Serviços
Registro dos 
serviços
Registro dos 
serviços
Chama um serviço web 
descoberto pelo recebimento 
de sua descrição 
AULA 9 – SERVIÇOS WEB
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
CLASSIFICAÇÃO DOS 
SERVIÇOSClassificação segundo a funcionalidade de suas 
especificações
Descrição de serviço: Utilizada para definir as operações, as 
mensagens e os tipos de dados de um serviço. Essa 
descrição também mantém as informações sobre como 
acessar os serviços.
Publicação e Descoberto de Serviços: Contémos protocolos 
que possibilitam a localização da descrição dos serviços
Descrição de Composição de serviços: Contém os modelos e 
linguagens utilizadas para descrever como se dará a 
interação dos serviços.
Protocolos de Comunicação: Utilizados para definir, 
estabelecer e manter a comunicação entre as aplicações 
contendo a descrição dos formatos das mensagens 
utilizadas na comunicação entre aplicações.
AULA 9 – SERVIÇOS WEB
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
COMUNICAÇÃO ENTRE WEB 
SERVICES
• A comunicação entre serviços web é separada em quatro 
camadas que tratam da requisição e da resposta entre o 
cliente e o servidor
• A construção de web services é baseada nos padrões 
XML e SOAP. O transporte dos dados, por sua vez, é 
realizado através do protocolo HTTP ou HTTPS.
• A transferência dos dados ocorre no formato XML 
encapsulados pelo protocolo SOAP.
UDDI
WSDL
SOAP
XML
UDDI
WSDL
SOAP
XML
AULA 9 – SERVIÇOS WEB
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
OPERAÇÃO
AULA 9 – SERVIÇOS WEB
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
PLATAFORMA .NET
• Ambiente de desenvolvimento integrado: Visual Studio .NET
• Uso de blocos de construção reutilizáveis: programadores podem 
utilizar componentes de outras aplicações 
Como começar? 
Abrir o Visual Studio 2008 e criar um novo projeto usando C#.
Selecione ASP.NET WebService Application
Você será redirecionado para uma tela onde poderá observar o 
código padrão de seu WebService.
AULA 9 – SERVIÇOS WEB
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
CONSTRUINDO UM CLIENTE 
CONSULTA DE CEP
AULA 9 – SERVIÇOS WEB
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
RESUMINDO
• Web Services favorecem a interoperabilidade e o 
reuso de código.
• Implementam padrões abertos
 
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Aula 10 –Tecnologia: Computação Ubíqua e 
nas Nuvens
AULA 10 – TECNOLOGIAS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
ESTRUTURA DA DISCIPLINA
AULA 1 – Introdução
AULA 2 – Aplicações Distribuídas
AULA 3 – Tratamento de Falhas
AULA 4 – Classificação de Flynn
AULA 5 – Modelo Cliente/Servidor
AULA 6 – Sockets e RPC
AULA 7 – Modelo P2P
AULA 8 – Sistemas de Arquivos Distribuídos
AULA 9 – Serviços WEB
AULA 10 – Tecnologia: Computação Ubíqua e nas 
Nuvens
AULA 10 – TECNOLOGIAS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
Conteúdo Programático 
AULA 10
• Novas tecnologias em sistemas 
distribuídos;
 
• Computação ubíqua;
• Computação nas nuvens.
AULA 10 – TECNOLOGIAS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
A COMPUTAÇÃO UBÍQUA
Ubíquo: ao mesmo tempo em toda a 
parte
Mark Weiser (1991) :The computer 
for the 21st century.
 
Operações voltadas para a tarefa, e 
não para a ferramenta.
AULA 10 – TECNOLOGIAS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
CONCEITO
• Integração entre mobilidade e presença distribuída;
• Inovação em interfaces – tendência para as interfaces naturais;
• Problemas: segurança, complexidade e privacidade.
INTERSEÇÃO ENTRE COMPUTAÇÃO MÓVEL E PERVASIVA
AULA 10 – TECNOLOGIAS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
APLICAÇÕES
• Ambientes inteligentes;
• Interfaces hands-free (sem as mãos) – 
reconhecimento de voz;
• Consciência de contexto – utilização de sensores;
• Computação de vestir (wearable) – acessórios 
como interfaces; 
• Computação sensível à posição;
• Realidade aumentada – combinação de 
computadores wearable com informações de 
sensores de posição;
• Interfaces sensíveis a objeto – Radio-Frequency 
IDentification (RFID).
AULA 10 – TECNOLOGIAS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
COMPUTAÇÃO EM NUVEM
Utilização de recursos de 
processamento e 
armazenamento compartilhados 
e interligados por meio da 
internet.
 
Segue os moldes da 
computação em grid. 
O acesso aos dados e às 
aplicações é permitido a partir 
de qualquer computador que 
tenha conexão com a internet, 
independente de sua 
plataforma.
AULA 10 – TECNOLOGIAS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
CARACTERÍSTICAS
• Serviços sob demanda: recursos adquiridos 
conforme a necessidade
• Virtualização: recursos acessados pela internet.
• Alta escalabilidade: alocação dinâmica de recurso
• Independência de plataforma: não há vinculo entre 
hardware e software
• Compartilhamento de recursos: disponibilidade de 
hardware e software
• Tolerância a falhas: maior facilidade de recuperação
• Organização de custos de manutenção e aquisições
• Transparência
AULA 10 – TECNOLOGIAS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
SERVIÇOS
Software as a Service 
(SaaS) 
Google Docs
Platform as a Service 
(PaaS) 
Google App Engine.
Infrastructure as a Service 
(IaaS)
Amazon EC2
AULA 10 – TECNOLOGIAS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
IMPLEMENTAÇÕES
Nuvem privada
 (Private cloud)
Nuvem comunitária
 (Community cloud)
Nuvem pública 
(Public cloud)
Nuvem híbrida
 (Hybrid cloud)
AULA 10 – TECNOLOGIAS
ARQUITETURA DE SISTEMAS 
DISTRIBUÍDOS
RESUMINDO
“As tecnologias podem chegar a um ponto além do 
qual os assuntos humanos, da forma como os 
conhecemos, não poderiam continuar a existir”.
John von Neumann

Outros materiais