SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Mais conteúdo relacionado

Semelhante a 02 sd - arquiteturas

Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisDuFelix02
 
Julio Silvello - Pervasive Computing
Julio Silvello - Pervasive ComputingJulio Silvello - Pervasive Computing
Julio Silvello - Pervasive Computingjsilvello
 
Big data e mineração de dados
Big data e mineração de dadosBig data e mineração de dados
Big data e mineração de dadosElton Meira
 
Aula 2 arquitecturas de sgbd, utilizadores, perfis
Aula 2   arquitecturas de sgbd, utilizadores, perfisAula 2   arquitecturas de sgbd, utilizadores, perfis
Aula 2 arquitecturas de sgbd, utilizadores, perfisHélio Martins
 
Sistemas Distribuídos - Aula 1
Sistemas Distribuídos - Aula 1Sistemas Distribuídos - Aula 1
Sistemas Distribuídos - Aula 1Edison Santos
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxChadidoDiogo1
 
Arquitetura e Integração de sistemas
Arquitetura e Integração de sistemasArquitetura e Integração de sistemas
Arquitetura e Integração de sistemasJether Rodrigues
 
MyGFT - um Módulo de Integração entre MySQL e Google Fusion Tables
MyGFT - um Módulo de Integração entre MySQL e Google Fusion TablesMyGFT - um Módulo de Integração entre MySQL e Google Fusion Tables
MyGFT - um Módulo de Integração entre MySQL e Google Fusion TablesAlexandre Savaris
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosFrederico Madeira
 
Aula 5 - A TI nas Organizações
Aula 5 - A TI nas OrganizaçõesAula 5 - A TI nas Organizações
Aula 5 - A TI nas OrganizaçõesFilipo Mór
 
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03thomasdacosta
 
Gestao Do Conhecimento_parte 2
Gestao Do Conhecimento_parte 2Gestao Do Conhecimento_parte 2
Gestao Do Conhecimento_parte 2Leonardo Moraes
 
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Messias Batista
 
Em Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoEm Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoMagnos Martinello
 
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídosAula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídosMessias Batista
 
Report - Network Design - CEFET / IFAL.
Report - Network Design - CEFET / IFAL.Report - Network Design - CEFET / IFAL.
Report - Network Design - CEFET / IFAL.Michel Alves
 
Gerência - Aula 01
Gerência - Aula 01Gerência - Aula 01
Gerência - Aula 01Marcus Lucas
 
Componentes de uma Rede de computadores
Componentes de uma Rede de computadoresComponentes de uma Rede de computadores
Componentes de uma Rede de computadoresFelipe Silva
 
Caracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosCaracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosPortal_do_Estudante_SD
 

Semelhante a 02 sd - arquiteturas (20)

Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Julio Silvello - Pervasive Computing
Julio Silvello - Pervasive ComputingJulio Silvello - Pervasive Computing
Julio Silvello - Pervasive Computing
 
Big data e mineração de dados
Big data e mineração de dadosBig data e mineração de dados
Big data e mineração de dados
 
Aula 2 arquitecturas de sgbd, utilizadores, perfis
Aula 2   arquitecturas de sgbd, utilizadores, perfisAula 2   arquitecturas de sgbd, utilizadores, perfis
Aula 2 arquitecturas de sgbd, utilizadores, perfis
 
Sistemas Distribuídos - Aula 1
Sistemas Distribuídos - Aula 1Sistemas Distribuídos - Aula 1
Sistemas Distribuídos - Aula 1
 
Projeto de redes
Projeto de redesProjeto de redes
Projeto de redes
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
 
Arquitetura e Integração de sistemas
Arquitetura e Integração de sistemasArquitetura e Integração de sistemas
Arquitetura e Integração de sistemas
 
MyGFT - um Módulo de Integração entre MySQL e Google Fusion Tables
MyGFT - um Módulo de Integração entre MySQL e Google Fusion TablesMyGFT - um Módulo de Integração entre MySQL e Google Fusion Tables
MyGFT - um Módulo de Integração entre MySQL e Google Fusion Tables
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
 
Aula 5 - A TI nas Organizações
Aula 5 - A TI nas OrganizaçõesAula 5 - A TI nas Organizações
Aula 5 - A TI nas Organizações
 
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03
 
Gestao Do Conhecimento_parte 2
Gestao Do Conhecimento_parte 2Gestao Do Conhecimento_parte 2
Gestao Do Conhecimento_parte 2
 
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
 
Em Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoEm Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do Futuro
 
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídosAula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
 
Report - Network Design - CEFET / IFAL.
Report - Network Design - CEFET / IFAL.Report - Network Design - CEFET / IFAL.
Report - Network Design - CEFET / IFAL.
 
Gerência - Aula 01
Gerência - Aula 01Gerência - Aula 01
Gerência - Aula 01
 
Componentes de uma Rede de computadores
Componentes de uma Rede de computadoresComponentes de uma Rede de computadores
Componentes de uma Rede de computadores
 
Caracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosCaracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidos
 

02 sd - arquiteturas

  • 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