Post on 13-Dec-2018
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
Cliente
Cliente
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
6079
70
113
102
40
5280
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
7970
113
102
40
52
80
8532
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ções possí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