Buscar

ARQUITETURA DE SISTEMAS DISTRIBUIDOS (67)

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 32 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 32 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 32 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

Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 1 
SISTEMAS DISTRIBUÍDOS 
Capítulo 2 
Arquiteturas e Modelos de Sistemas Distribuídos 
 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 2 
SISTEMAS DISTRIBUÍDOS 
Capítulo 2 
Arquiteturas de Sistemas Distribuídos 
 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 3 
NOTA PRÉVIA 
A estrutura da apresentação é semelhante e utiliza algumas 
das figuras do livro de base do curso 
 
G. Coulouris, J. Dollimore and T. Kindberg, 
Distributed Systems - Concepts and Design, 
Addison-Wesley, 5th Edition, 2011 
 
 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 4 
CONTEXTOS - ARQUITETURA 
Camadas de software 
Reparte a complexidade de um sistema, em várias camadas, com 
interfaces bem definidas entre si. Cada camada pode usar os serviços da 
camada abaixo, sem conhecimento dos detalhes de implementação. 
Arquitetura (distribuída) multinível/camada 
as camadas do sistema são atribuídas a processos/máquinas diferentes 
 
Arquitetura distribuída 
Especifica como se organizam e quais as interações entre os vários 
componentes de um sistema distribuído 
 
Em todos os casos há implicações no desempenho, fiabilidade e segurança 
do sistema 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 5 
CAMADAS DE SOFTWARE - MIDDLEWARE 
O middleware fornece uma interface homogénea e serviços mais complexos 
que os disponibilizados pelo sistema de operação 
Limitações: algumas funcionalidades apenas podem ser implementadas de forma 
eficaz com o conhecimento da semântica da aplicação, pelo que fornecer essa 
funcionalidade no sistema de middleware seria contraproducente (correção de erros, 
segurança, etc.) 
Sistema de comunicações 
Sistema de operação 
Sistema de comunicações 
Sistema de operação 
Sistema de comunicações 
Sistema de operação 
N computadores interligados 
Sistema middleware 
Aplicação distribuída 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 6 
ARQUITECTURA EM CAMADAS: MODELO 3-CAMADAS 
Em aplicações de acesso a 
sistemas de informação/
comércio eletrónico, etc. 
Arquitetura de três níveis (3-tier) 
- Apresentação 
- (Lógica) Aplicação 
- (Armazenamento) Dados 
 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 7 
ARQUITECTURA DISTRIBUÍDA 
Arquitetura do sistema 
 
Organização de um sistema (complexo) em componentes mais 
simples com funcionalidades/responsabilidades próprias 
 
Arquitetura do sistema distribuído 
 
Define os componentes, o que fazem, onde estão e como interagem 
entre si. 
 
Terá implicações em diversas propriedades do sistema: desempenho, 
fiabilidade e segurança do sistema 
 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 8 
ARQUITECTURA DISTRIBUÍDA 
Arquitetura de um sistema distribuído pode (e deve) ser 
determinada por diversos fatores: 
 
Requisitos funcionais: 
“tudo relacionado com o propósito direto (a função) do sistema” 
ex. Lógica de negócio 
 
Requisitos não funcionais: 
Desempenho (escalabilidade, latência), disponibilidade 
Custo (de: desenvolvimento, operação, manutenção) 
Segurança, confiabilidade 
 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 9 
CLIENTE/SERVIDOR 
Sistema em que os processos podem ser divididos em dois 
tipos, de acordo com o seu modo de operação: 
Cliente: programa que solicita pedidos a um processo servidor 
Servidor: programa que executa operações solicitadas pelos clientes, 
enviando-lhes o respectivo resultado 
Cliente Servidor 
pedido 
resposta 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 10 
CLIENTE/SERVIDOR: PROPRIEDADES 
Arquitetura mais simples, muito usada em sistemas pouco 
exigentes – ponto de partida para criar sistemas mais 
complexos... 
 
Positivo 
Interação simples facilita implementação 
Segurança apenas tem de se concentrar no servidor 
Negativo 
Servidor é um ponto de falha único 
Não escala para além dum dado limite (servidor pode tornar-se ponto 
de contenção/estrangulamento) 
 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 11 
CLIENTE/SERVIDOR: COMPOSIÇÃO 
Arquiteturas mais sofisticadas, com novas propriedades, podem 
ser obtidas por composição do modelo C/S base 
 Servidor [particionado, replicado, geo-replicado], 
 P2P, 3-Camadas, etc. 
 
C S 
C 
S 
C 
S 
C 
S 
C 
S 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente Cliente 
Cliente 
Cliente 
Servidor 
Servidor 
Servidor 
Servidor 
Servidor Servidor 
Servidor 
Servidor 
Servidor 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 12 
Modelo alternativo para lidar com limitações do 
modelo cliente/servidor 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 13 
MODELO PEER-TO-PEER (P2P) / ENTRE-PARES 
Todos os processos têm funcionalidades semelhantes 
Durante a sua operação podem assumir o papel de clientes e servidores 
do mesmo serviço em diferentes momentos 
Exemplos: partilha de ficheiros, VoIP, edição colaborativa 
C 
S 
C 
S 
C 
S 
C 
S 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 14 
MODELO PEER-TO-PEER: PROPRIEDADES 
Positivo 
Não existe ponto único de falha (improvável que todos os pares falhem) 
Grande potencial de escalabilidade (+ pares --> + recursos) 
Baixo custo de operação (os pares contribuem c/ os recursos) 
Negativo 
Interação mais complexa (do que num sistema cliente/servidor) leva a 
implementações mais complexas 
Operações de pesquisa são complexas 
Maior número de computadores envolvidos pode colocar questões 
relativas a heterogeneidade e segurança 
Apropriado para ambientes em que todos os participantes 
querem cooperar para fornecer uma dado serviço 
Capacidade agregada muito maior que a capacidade individual de cada 
par 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 15 
Variantes do modelo cliente/servidor para lidar com 
limitações de escalabilidade e tolerância a falhas 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 16 
Servidor 
 
 
 
 
Cliente/servidor particionado 
Existem vários servidores com a mesma interface, cada um capaz de 
responder a uma parte dos pedidos 
 
Quando o servidor não pode responder: 
Redirige o cliente para outro servidor (iterativo); 
Ou, invoca pedido noutro servidor (recursivo) 
exemplo: DNS (.mz, .com, .org, etc.) 
Servidor 
Servidor 
Servidor 
VARIANTES DO MODELO CLIENTE/SERVIDOR: SERVIDOR 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente Cliente 
ClienteCliente 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 17 
VARIANTES DO MODELO CLIENTE/SERVIDOR: SERVIDOR 
Cliente/servidor particionado 
 
Positivo 
Permite distribuir a carga, melhorando o desempenho (potencialmente) 
Não existe um ponto de falha único 
 
Negativo 
Falha de um servidor impede acesso aos dados presentes nesse servidor 
Difícil de aplicar em alguns modelos de dados 
 
Sendo: w : nº de escritas; r : nº de leituras; n : nº de partições 
Cada partição recebe, em média: w / n + r / n pedidos 
ou seja, potencialmente divide as escritas e as leituras por todos os 
servidores, melhorando o desempenho do sistema 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 18 
VARIANTES DO MODELO CLIENTE/SERVIDOR: SERVIDOR 
Cliente/servidor replicado 
 
Existem vários servidores idênticos 
portanto, capazes de responder aos mesmos pedidos 
 
 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente Cliente 
Cliente 
Cliente 
Servidor 
Servidor 
Servidor 
Servidor 
Servidor 
Servidor 
Servidor 
Servidor 
Servidor 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 19 
VARIANTES DO MODELO CLIENTE/SERVIDOR: SERVIDOR 
Cliente/servidor replicado 
 
Positivo 
Redundância - não existe um ponto de falha único 
Permite distribuir a carga, melhorando o desempenho, mas depende do 
rácio entre escritas e leituras) 
 
Negativo 
Custo da Coordenação - garantir coerência entre todas as réplicas 
Recuperar uma réplica que tenha falhado (sem parar o resto do sistema) 
 
Sendo: w : nº de escritas; r : nº de leituras; n : nº de réplicas 
Se todas as réplicas receberem todos os pedidos de escrita, cada 
réplica recebe: w + r / n pedidos 
Ou seja, as leituras podem ser distribuídas entre as réplicas, mas as 
escritas têm que ser feitas em todas elas 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 20 
VARIANTES DO MODELO CLIENTE/SERVIDOR: SERVIDOR 
Cliente/servidor geo-replicado 
 
Servidor replicado, com réplicas distribuídas geograficamente 
 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente 
Cliente Cliente 
Cliente 
Servidor 
Servidor 
Servidor 
Servidor 
Servidor 
Servidor 
Servidor 
Servidor 
Servidor 
Servidor 
Servidor 
Servidor 
Servidor 
Servidor 
Servidor 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 21 
VARIANTES DO MODELO CLIENTE/SERVIDOR: SERVIDOR 
Cliente/servidor geo-replicado 
 
Positivo 
Proximidade aos clientes melhora a qualidade de serviço (latência) 
Redundância acrescida – as falhas das réplicas são (ainda) mais 
independentes 
 
Negativo 
Coordenação mais dispendiosa – maior separação física das réplicas 
traduz-se na utilização de canais com latência/atrasos significativos 
 
 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 22 
VARIANTES DO MODELO CLIENTE/SERVIDOR: CLIENTE 
Cliente leve (thin client)/servidor 
 
O cliente apenas inclui uma interface (gráfica) para executar operações 
no servidor (ex.: browser + formulários) 
 
Positivo: 
Cliente pode ser muito simples (não implementa a lógica da aplicação) 
 
Negativo 
Maior peso no servidor (a lógica da aplicação reside no servidor) 
Impacto na interatividade (devido ao tempo de ida e volta da rede entre o 
cliente e o servidor) 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 23 
VARIANTES DO MODELO CLIENTE/SERVIDOR: CLIENTE 
Cliente completo (estendido)/servidor 
 
O cliente executa localmente algumas operações que seriam 
executadas pelo servidor 
 
a lógica da aplicação reside em boa parte no cliente; o servidor fornece 
armazenamento 
 
exemplo: Google Docs, Gmail 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 24 
VARIANTES DO MODELO CLIENTE/SERVIDOR: CLIENTE 
Cliente completo (estendido)/servidor 
 
Positivo: 
Permite funcionar desligado/offline, quando não é possível contactar o 
servidor (recorrendo a caching) 
Permite diminuir a carga do servidor e melhorar o desempenho e a 
interatividade 
 
Negativo: 
Implementação do cliente mais complexa 
Necessário tratar da coerência dos dados entre o cliente e o servidor 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 25 
Variantes do modelo P2P com diferentes propriedades 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 26 
VARIANTES DO MODELO PEER-TO-PEER 
Sistema P2P não estruturado 
 
As ligações entre os pares são formadas de forma não-determinista 
 
Quando se junta à rede, um par liga-se um conjunto de outros pares 
conhecidos (os seus vizinhos na rede P2P) 
Os vizinhos podem variar durante a execução do sistema e de sessão para 
sessão 
C 
S 
C 
S 
C 
S 
C 
S 
C 
S 
C 
S 
C 
S 
C 
S 
C 
S 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 27 
VARIANTES DO MODELO PEER-TO-PEER 
Sistema P2P não estruturado 
Positivo: 
Simplicidade, robusto ao dinamismo da rede (churn) 
 
Negativo: 
Pesquisa pesada (geralmente por inundação), não determinista / incompleta 
Latência/escalabilidade depende da árvore formada 
xpto.mp3? 
xpto.mp3? 
.mp3? 
C 
S 
C 
S 
C 
S 
C 
S 
C 
S 
C 
S 
C 
S 
C 
S 
C 
S 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 28 
VARIANTES DO MODELO PEER-TO-PEER 
Sistemas P2P estruturados 
 
Os membros do sistema além 
do endereço físico, têm um 
endereço lógico 
 
A topologia da rede reflete um 
relação determinista 
(matemática) entre os 
endereços lógicos dos pares 
 
Existem topologias para todos 
os gostos, por exemplo um anel 
 
 
32
60
79
70
113
102
40
52
80
85
C 
S 
C 
S 
C 
S 
C 
S 
C 
S 
C 
S C 
S 
C 
S 
C 
S 
C 
S 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 29 
VARIANTES DO MODELO PEER-TO-PEER 
Sistemas P2P estruturados 
 
Uma boa topologia, consegue 
custos de encaminhamento e 
pesquisas por identificador 
O(log N) 
 
Cada passo reduz o espaço de 
pesquisa/encaminhamento 
pela metade... 
 
Ideia: cada nó liga-se a nós 
noutros pontos da topologia 
P2P e usa essas ligações como 
atalhos: ex: O(log N) vizinhos 
60
79
70
113
102
40
52
80
85
32
Lookup(80) 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 30 
Podem existir mais componentes num sistema 
distribuído, cujo papel é simultaneamente cliente e 
servidor 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 31 
NOÇÃO DE PROXY DE UM SERVIÇO 
Proxy de um serviço 
Processo que fornece um serviço recorrendo a um servidor (desse serviço) para executar 
o serviço 
Utilizaçõespossíveis 
Intermediário simples (apenas encaminha pedidos e respostas) 
Intermediário complexo (gateway) 
Transformação dos pedidos 
Serviço adicional, através do armazenamento de respostas a pedidos anteriores. 
Diminuição do tempo de resposta (latência inferior para o proxy) 
Diminuição da carga do servidor 
Mascarar falhas do servidor / desconexão 
Proxy 
Web 
server 
Web 
server 
server 
Servidor 
WEB 
Servidor 
WEB 
PROXY 
Browser 
Browser 
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 32 
SERVIDORES DA PERIFERIA 
Sistemas com servidores localizados na periferia da Internet 
Contratados junto dos ISP para responder a certos pedidos 
 
Objectos pesados como vídeos e imagens são servidos de cópias alojadas 
nos ISPs, obtidas a pedido. 
 
CDNs – Redes de distribuição de conteúdos pesados (exemplo: AKAMAI) 
 
 
Propriedades 
Menor latência, filtragem, 
distribuição de carga, etc. 
 
 
src: https://clickmotive.files.wordpress.com/2009/11/akamaiedgeplatform.jpg

Outros materiais