O documento descreve arquiteturas de sistemas distribuídos, incluindo estilos arquitetônicos, arquiteturas centralizadas, descentralizadas e híbridas. É apresentado um caso de estudo sobre a arquitetura do Skype, que utiliza uma abordagem híbrida com servidores de login e nós supernodes que direcionam o tráfego em uma rede peer-to-peer.
1. Universidade Federal do Oeste do Pará
Programa de Computação
Arquiteturas de
Sistemas
Distribuídos
Prof. M. Sc. Rennan José Maia da Silva
Santarém - 2018
Santarém - Pará
2014
2. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Arquiteturas de Sistemas Distribuídos
•Estilos arquitetônicos
•Arquiteturas
•Centralizada
•Descentralizada
•Híbrida
2
3. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Estilos Arquitetônicos
• Formado em termos de:
• Componentes;
• Do modo como esses componentes estão conectados uns aos outros;
• Dos dados trocados entre componentes e;
• Da maneira como esses elementos são configurados em conjunto para formar um
sistema.
• Componente é uma unidade modular com interfaces requeridas e
fornecidas bem definidas que é substituível dentro de seu ambiente.
• Conector é um mecanismo mediador da comunicação ou da cooperação
entre componentes.
3
4. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Estilos Arquitetônicos
•1.Arquitetura em camadas
•Componentes organizados em camadas, onde componentes
da camada Li pode chamar métodos da camada Li-1, mas não o
contrário;
•2.Arquiteturas baseadas em objetos
•Objetos correspondem às definições de componentes, que são
conectados por meio de chamadas de procedimento remotas;
4
5. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Estilos Arquitetônicos
a) em camadas e b) baseado em objetos
5
6. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Estilos Arquitetônicos
• 3.Arquiteturas centradas em dados
•Processos se comunicam por meio de repositório comum (passivo ou
ativo);
• 4.Arquiteturas baseadas em eventos
•Processos se comunicam por meio de propagação de eventos que
podem transportar dados;
•Sistemas Publicar/Subscrever;
• Estilos podem ser híbridos, como arquiteturas baseadas em
eventos juntamente com centradas em dados, também
conhecidas como espaços compartilhados de dados.
6
7. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Estilos Arquitetônicos
a) baseados em eventos e b) centradas em dados
7
8. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Arquiteturas de Sistemas - Centralizadas
• Modelo Cliente-Servidor
• Problemas: Orientado ou não-orientado a conexão (TCP ou UDP)?
8
9. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Arquiteturas Centralizadas
•Camadas de Aplicação
•Divididas em 3 níveis:
•1. Nível de interface de usuário
•Contém tudo o que é necessário para fazer interface com o usuário
•2. Nível de processamento
•• Contém as aplicações
•3. Nível de dados
•• Gerencia os dados propriamente ditos
9
10. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Organização em 3 Camadas de Aplicação - Um
mecanismo de busca da Internet
10
11. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Arquiteturas Centralizadas - Arquiteturas multidivididas
• Com base na organização de três níveis lógicos discutida
anteriormente, é necessária a distribuição física. A maneira mais
simples, denominada arquitetura de duas divisões (físicas) é
distribuída da seguinte forma:
• 1. Uma máquina cliente que contém apenas os programas que
implementam o nível (ou parte do nível) de interface de usuário
• 2. Uma máquina do servidor que contém todo o resto, ou seja,
os níveis de processamento e de dados
11
12. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Arquiteturas Centralizadas - Arquiteturas multidivididas
• Alternativas de distribuição
12
13. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Arquiteturas Centralizadas - Arquiteturas multidivididas
• Arquitetura de três divisões (físicas)
13
14. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Arquiteturas descentralizadas
• Descentralização se refere a múltiplos domínios de autoridade
(agencies) participando em uma aplicação
•Exemplos: web, correio convencional internacional
•Projetar arquiteturas para software descentralizado traz desafios
adicionais àqueles dos sistemas distribuídos
•Arquiteturas descentralizadas são criadas sempre que as partes
participantes desejam controle autônomo sobre aspectos da sua
participação visto que não há autoridade central, participantes podem ser
maliciosos
14
15. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Arquiteturas descentralizadas
• Distribuição vertical
•Divide componentes logicamente diferentes em máquinas diferentes;
• Distribuição horizontal
•Um cliente ou servidor pode ser subdividido em partes logicamente
equivalentes, mas cada parte está operando em sua própria porção do
conjunto de dados, equilibrando a carga.
• Ex.: Peer-to-Peer – P2P (servidor e cliente ao mesmo tempo,
também chamada “servente”)
15
16. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
P2P - Características
• Cada usuário contribui com recursos, para o sistema;
• Os nós têm, em princípio, as mesmas capacidades e responsabilidades funcionais;
• Seu correto funcionamento não depende da existência de quaisquer sistemas
administrados de forma centralizada;
• Eles podem ser projetados de modo a oferecer um grau limitado de anonimato
para os provedores e usuários dos recursos;
• Um problema importante para o seu funcionamento eficiente é a escolha de um
algoritmo para o arranjo dos dados em muitos hosts e o subsequente acesso a
eles, de uma maneira que equilibre a carga de trabalho e garanta a disponibilidade
sem adicionar sobrecargas indevidas.
16
17. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Middleware para Peer-to-Peer
• Um problema importante é o fornecimento de um mecanismo para permitir aos
clientes acessarem recursos de dados rapidamente e de maneira segura, quando
eles estão localizados por toda a rede.
• O Napster mantinha um índice unificado dos arquivos disponíveis, fornecendo
endereços de rede em seus hosts.
17
18. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Middleware para Peer-to-Peer: Requisitos funcionais
• Permitir aos clientes localizarem e se comunicarem com
qualquer recurso individual disponibilizado;
• Capacidade de adicionar novos recursos e removê-los à
vontade;
• Adicionar hosts no serviço e removê-los;
• Interface de programação simples para programações de
aplicações, que seja independente dos tipos de recurso
distribuído manipulados pela aplicação;
18
19. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Middleware para Peer-to-Peer: Requisitos não-funcionais
• Escalabilidade global;
• Balanceamento de carga;
• Otimização das interações locais entre peers vizinhos;
• Acomodar a disponibilidade altamente dinâmica de hosts;
• Segurança dos dados em um ambiente com confiança
heterogênea;
• Anonimato, capacidade de negação e resistência à censura;
19
20. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Arquiteturas descentralizadas - Peer-to-Peer
•Arquiteturas se dividem pela forma de organizar
os processos em uma rede de sobreposição.
•Redes de sobreposição estruturadas
•Redes de sobreposição não-estruturadas
20
21. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Arquiteturas descentralizadas - Peer-to-Peer
Arquiteturas estruturadas
•O mais usado é organizar os processos por meio de
uma DHT (tabela de hash distribuída).
•Sistema Chord – Nós ligados logicamente em anel, onde um
item de dado com chave k seja mapeado para o nó que tenha
o menor Id ≥ k.
•CAN – Usa espaço de coordenadas cartesianas de d
dimensões particionado entre todos os nós participantes do
sistema.
21
22. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Arquiteturas descentralizadas - Sistema Chord
22
23. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Arquiteturas descentralizadas - Arquiteturas P2P não-
estruturadas
•Cada nó mantém uma lista aleatória de vizinhos.
•Itens de dados são colocados aleatoriamente nos nós.
•Consulta através de inundação da rede
•A meta é construir uma rede de sobreposição parecida com
um grafo aleatório.
23
24. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Superpares (superpeers)
• Usam nós especiais que mantêm um índice de itens de dados, a
fim de facilitar a localização de dados relevantes em sistemas
P2P não estruturados.
• Definem, em muitos casos, uma relação cliente-superpar fixa,
onde sempre que um par se junta à rede, se liga a um dos
superpares e continua ligado até sair da rede
•Nem sempre é uma boa solução!
24
25. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Superpares (superpeers)
25
26. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Arquiteturas híbridas
• Sistemas de servidor de borda (Internet)
• Sistemas colaborativos (Torrent)
26
27. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Arquiteturas híbridas
• BitTorrent
• Um usuário acessa um diretório global que contém um
arquivo .torrent, o qual contém as informações necessárias para
transferir um ou mais arquivos específicos (rastreador).
• Após a identificação dos nós e suas porções de arquivos, o nó
que está transferindo se torna efetivamente ativo, sendo forçado
a auxiliar os outros.
•O gargalo dos servidores são os rastreadores!
27
28. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Funcionamento do BitTorrent
28
29. Universidade Federal do Oeste do Pará
Programa de Computação
Estudo de Caso:
Arquitetura do
Skype
Prof. M. Sc. Rennan José Maia da Silva
Santarém - 2018
Santarém - Pará
2014
30. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Considerações
• Não há implementações open-source, o protocolo e proprietário
e secreto. Binários são obtidos somente de skype.com;
• Inicialmente o usuário se registra/conecta no servidor de login
do Skype e recebe um IP de um supernode. A partir daí a
comunicacao e P2P;
• Quando deseja-se verificar quem esta on-line ou realizar uma
ligação o peer emite uma consulta a um supernode;
• O supernode retorna o IP desejado ou repassa a requisição para
outro supernode;
30
31. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Considerações
•O servidor de login esta sob autoridade da skype.com;
•Os supernodes, entretanto, são peers convencionais que
foram “promovidos” a supernodes devido a um bom
histórico de conectividade de rede e poder de
processamento;
31
32. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Lições arquiteturais:
• Arquitetura híbrida (client-server / P2P) → otimização do problema da
descoberta de recursos;
• Replicação e distribuição dos diretórios, sob a forma de supernodes →
melhor escalabilidade e robustez;
• “Promocao” de peers ordinários a supernodes → outro aspecto do
desempenho: não é qualquer peer que se torna um supernode. Pode-se
adicionar mais supernodes a depender da demanda;
• Protocolo proprietário com criptografia → privacidade;
• Restrição a clientes obtidos somente no skype.com e implementados de
modo a impedir inspeções ou modificações → ausência de clientes
maliciosos;
32
33. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Skype
• NC é uma aplicação skype que se registra em um super nó (SN) e se autentica no
servidor de login;
• Qualquer host do usuário pode hospedar um SN, se
• Possuir um endereço IP público
• Possuir disponibilidade de memória, processamento e banda RAM
• Prioridade é dada para nós que se mantenham conectados
• O servidor de login constitui o único elemento central na rede skype
• É uma aplicação à parte;
• Mantém informação de login e senha dos usuários da rede Skype;
• Realiza a autenticação de usuários;
• Garante que um usuário skype seja único;
• Certifica as chaves públicas utilizadas pelos clientes;
33
34. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
34
35. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Login
• Autenticação da conta/senha cliente com o servidor de login;
• O cliente tenta estabelecer uma conexão UDP;
• Caso não obtenha resposta em 5 segundos tenta estabelecer uma conexãoTCP;
• Caso não obtenha resposta pelo mesmo período tenta estabelecer uma conexão
TCP na porta 80 (HTTP) e em caso de outra falha,TCP 443 (HTTPS);
35
36. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Login
• Servidores de Login (80.160.91.11 - ns14.inet.tele.dk e
ns15.inet.tele.dk)
• • Cliente recebe uma lista de super nós para bootstrap
• • Caso todas as tentativas anteriores falhem, uma falha de
login é retornada para a aplicação;
36
37. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Login
• SNs de bootstrap
37
38. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Busca de nós
• NC envia um pacoteTCP para o seu SN
• SN responde enviando uma lista com 4 IPs e respectivas portas para serem
consultadas
• Caso não encontre, um novo pacoteTCP é enviado ao SN
• SN envia lista com 8 IPs e portas para serem consultadas.
38
39. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Busca de nós
• Mensagens enviadas aos IPs da lista são pacotes UDP
•Processo continua até o usuário em questão ser encontrado ou ser
determinado pela rede skype que o mesmo não existe;
•Em média, 8 nós são contatados na busca;
• NC atrás de um NAT/Firewall:
•Só ocorrem trocas de pacotes com o SN
•SN faz a busca, retornando o resultado da mesma para o NC
•Resultado da busca é armazenado em nós intermediários
39
40. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Skype:Arquitetura
• Portas de serviço
•Não possui um padrão de porta de escuta;
•Portas são escolhidas aleatoriamente
•Na ausência de conectividade nas portas que foram abertas, abre portas
TCP 80 (HTTP) e 443 (HTTPS).
• Host Cache
•Entrada em registro (Windows) ou arquivo de configuração que contém
lista de endereços IP e portas de serviço de SNs alcançáveis pelo cliente.
40
41. Universidade Federal do Oeste do Pará - Programa de Computação – Gerência e Administração de RedesUniversidade Federal do Oeste do Pará - Programa de Computação – Sistemas Distribuídos
Artigo completo
• Salman A. Baset , Henning Schulzrinne, An Analysis of the Skype Peer-to-Peer
Internet Telephony Protocol, Department of Computer Science Columbia
University, Setembro de 2004.
41