SlideShare uma empresa Scribd logo
1 de 32
werther.desenvolva.info www.desenvolva.info
Modelos de
Sistemas Distribuídos
- Modelos Arquitetônicos -
Werther
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
Modelos Arquitetônicos
 Foco na arquitetura – estrutura de alto nível do sistema,
descrita em termos de componentes separadamente
especificados e seus relacionamentos
 Arcabouço de referência para o projeto
 Base para garantir que a estrutura do sistema atenderá sua atual e
provável futura demanda em termos de atributos de qualidade
 Ex.: confiabilidade, adaptabilidade, desempenho, gerência, etc.
 Descrição simplificada e abstrata dos componentes do
sistema:
 Funcionalidades (ou responsabilidades)
 Ex.: servidor, cliente, peer
 Distribuição física (recursos e carga de trabalho)
 Ex.: regras de particionamento e/ou replicação
 Padrões de interação e comunicação
 Ex.: cliente-servidor, ponto-a-ponto
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
Modelos Arquitetônicos
 Classificados em dois modelos ou “estilos”:
 Cliente-Servidor (client-server)
 Ponto-a-Ponto (Peer-to-peer) - P2P
 Foco na divisão de responsabilidades entre
os componentes do sistema e na alocação
física desses componentes à infraestrutura
de rede
 Na prática existem muitos sistemas híbridos
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
Modelo Cliente-Servidor
 Divisão das responsabilidades entre os componentes
do sistema de acordo com dois papéis bem
definidos:
 Servidores: responsáveis por gerenciar e controlar o acesso
aos recursos mantidos no sistema
 Clientes: interagem com servidores de modo a terem acesso
aos recursos que estes gerenciam
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
Modelo Cliente-Servidor
 Alguns servidores podem assumir o papel de clientes de
outros servidores. Exemplos:
 Servidor web no papel de cliente de DNS local
 Mecanismo de pesquisa é cliente dos sites que visita e servidor para
os usuários que pesquisam
 Continua sendo o modelo de sistema distribuído mais
estudado e utilizado na prática
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
Modelo Cliente-Servidor
 Variações do modelo:
 Múltiplos servidores por serviço
 Cache e servidores proxy
 Clientes magros
 Código móvel
 Agentes móveis
 Objetos distribuídos
 Dispositivos móveis
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
C-S: Múltiplos Servidores
 Cada serviço é implementado por um
conjunto de servidores, possivelmente
localizados em diferentes pontos da
rede
 Servidores podem interagir entre si
para oferecer uma visão global
consistente do serviço para os clientes
 Técnicas mais utilizadas:
 Replicação – manutenção de cópias do mesmo
recurso lógico em dois ou mais servidores
(ex.:base de dados crítica)
 Particionamento – distribuição física dos
recursos entre os vários servidores (ex.:clusters
de servidores)
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
C-S: Cache e Servidor Proxy
 Cache
 Repositório de cópias de objetos recentemente utilizados que está fisicamente
mais próximo do que os objetos originais
 Principais desafios:
 Política de atualização (controla a entrada e saída de objetos no cache)
 Localização física (nos clientes ou em um ou mais servidores proxy)
 Servidor proxy
 Processo compartilhado por vários clientes que serve como cache para os recursos
disponibilizados por outros servidores remotos
 Principais funções:
 Reduzir o tempo de acesso
 Aumentar a disponibilidade
 Também utilizado para proteção, filtragem, adaptação, etc.
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
C-S: Clientes Magros
 Cliente com pouco ou nenhum aplicativo instalados, de
modo que depende primariamente de servidores para o
processamento de atividade
 Cliente que utiliza software com suporte para interação
local com o usuário, e que executa aplicações e solicita
serviços exclusivamente a partir de servidores remotos
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
C-S: Clientes Magros
 Pontos a favor:
 Baixo custo de hardware e software para os clientes
 Maior facilidade de gerência e manutenção das
aplicações
 Pontos Contra:
 Alto custo de hardware e software para os servidores
 Centralização da carga de trabalho
 Aumenta tráfego de mensagens
 Risco de sobrecarga dos servidores e/ou da rede
 Baixo desempenho para aplicações altamente
interativas
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
C-S: Código Móvel
 Serviços oferecidos na forma de um código (programa)
específico que deve ser descarregado do servidor
 Aplicações clientes executam e interagem localmente com o código
móvel recebido
 Dependendo do serviço, código móvel pode interagir com um ou mais
servidores em nome da aplicação cliente
 Ex.: Applets Java, TCL scripts, JavaScript
 Principais benefícios:
 Redução do tempo de resposta para aplicações interativas
 Maior facilidade de customização e atualização da interface de acesso
ao serviço
 Possibilidade de estender dinamicamente as funcionalidades das
aplicações clientes
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
C-S: Código Móvel
 Desafios de projeto:
 Heterogeneidade do código móvel e da arquitetura de
execução das aplicações clientes
 Solução: máquinas virtuais padronizadas embutidas nas
aplicações clientes
 Riscos de segurança na execução do código móvel
 Solução: limitar as ações do código móvel ou executá-lo em um
ambiente isolado do restante da rede
 Atrasos causados pelo tempo de transferência do
código móvel e pelo tempo de inicialização do seu
ambiente de execução
 Solução: transferência do código em formato compactado; cache
de códigos recentemente utilizados; préinicialização do ambiente de
execução
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
C-S: Agentes Móveis
 Agente móvel
 Programas em execução (código + dados) que circula pela rede
solicitando serviços em nome de um usuário ou de uma aplicação
cliente
 Ex.: agente para coleta de dados, busca e comparação de preços de
produtos, instalação de software, chats, etc.
 O acesso aos serviços é feito localmente pelo agente, ou de locais
fisicamente próximos (da mesma rede local) aos servidores
 Benefícios:
 Redução dos custos e do tempo de acesso
 Acesso antes remoto agora passa a ser local
 Maior tolerância a falhas de comunicação
 Conexão necessária apenas durante a transferência do agente
 Melhor distribuição do tráfego de mensagens na rede
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
C-S: Agentes Móveis
 Desvantagens
 Segurança: necessária proteção contra malwares que podem
interceptar as informações que estão sendo transportadas pelo agente
 Maior custo de processamento : custos de processamento gerados
por mecanismos de segurança – limita performance
 Necessidade de ambiente padronizado: Cada máquina da rede
deve ter plataforma se software base a fim de permitir a migração de
agentes.
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
C-S: Objetos Distribuídos
 Objetos encapsulados em processos servidores
 Objetos acessados por outros processos (clientes) através de referências remotas
para uma ou mais de suas interfaces
 Referência remota permite invocar remotamente os métodos disponíveis na
interface do objeto referenciado
 Implementação na forma de middleware orientada a objetos (ex.:
CORBA, COM+, Java RMI, EJB)
 Diferentes mecanismos para criar, executar, publicar, localizar e invocar objetos
remotos
 Diferentes serviços de suporte
 Transação, persistência, replicação, segurança, etc.
 Diferentes fabricantes e modelos de negócio
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
C-S: Dispositivos Móveis
 Aplicações clientes que executam em dispositivos móveis
e acessam servidores da rede fixa através de uma
infraestrutura de comunicação sem fio (Wi-Fi, GSM, 3G,
etc.)
 Dispositivos móveis: notebooks, celulares, PDAs, etc.
 Principais benefícios:
 Fácil conexão dos dispositivos a uma nova rede local
 Inclusão de novos clientes sem a necessidade de configuração explícita
 Fácil integração dos clientes aos serviços locais
 Descoberta automática de novos serviços (sem intervenção do usuário)
 Desafios de projeto:
 Identificação de recursos independente de sua localização física
 Limitações de processamento, tempo de conexão e largura de banda
 Privacidade e segurança
 Atualmente dispositivos móveis comportam-se muito
parecidos com dispositivos fixos
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
Modelo Ponto-a-Ponto (P2P)
 Todos os processos/componentes (nós) envolvidos em uma
mesma tarefa ou atividade exercem papéis similares, interagindo
cooperativamente como “parceiros” (pares/peers) uns dos outros
 Criado para suprir as conhecidas deficiências de escalabilidade do modelo CS
tradicional
 Padrão de interação e de compartilhamento de recurso entre os participantes
depende inteiramente dos requisitos da aplicação
 O objetivo principal é explorar os recursos (hardware & software)
de um grande número de máquinas/usuários interessados em
realizar uma determinada tarefa ou atividade
 Uso pioneiro no compartilhamento de arquivos de áudio (Napster)
 Sucesso do Napster (1999) abriu caminho para vários outros sistemas e
middleware P2P de propósito geral
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
Modelo Ponto-a-Ponto (P2P)
 Algumas características:
 Arquitetura totalmente distribuída (sem qualquer controle
centralizado)
 Sem distinção entre clientes e servidores (cada nó é cliente e
servidor ao mesmo tempo)
 Os nós podem trocar recursos diretamente entre si
 Os nós são autônomos para se juntarem ao sistema ou deixá-
lo quando quiserem
 Necessidade de código de coordenação em cada nó para
manter a consistência dos recursos e sincronizar as ações em
nível de aplicação
 Interação entre nós pode ser feita utilizando mecanismos
apropriados para comunicação em grupo
 Difusão seletiva (multicast)
 Notificação de eventos
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
Redes e Aplicações P2P
 ATENÇÃO: P2P não serve só para compartilhamento
de arquivos 
 Comunicação – Skype, GTalk, MSN
 Base de Dados – DNS, NTP
 Jogos Online – Counter Strike, Unreal
 Compartilhamento – eMule, BitTorrent, Gnutella
 Computação em Grid
 Content Delivery Networks (CDN) – Amazon, Azure, Coral
 Multimedia Streaming – TV ou Radio P2P
 Outros – Video on Demand
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
Arquiteturas P2P
 Arquitetura básica (ou “pura”)
 Nenhum nó é especial
 Cada nó conhece apenas os seus vizinhos
 Determinados quando o nó se junta ao sistema (busca na rede pelos
vizinhos mais próximos)
 Conjunto de vizinhos pode mudar ao longo do tempo
 Topologia
 Estruturada (DHT – tabelas hash para controle de processos)
 Napster, eDonkey, Chord
 Não-estruturada (dados de forma aleatória em cada nó)
 BitTorrent, Gnutella
 Arquitetura híbrida
 Algumas tarefas (com descoberta da localização de recursos)
realizadas com a ajuda de um ou mais componentes
centralizados
 BitTorrent, TeamViewer
 Demais tarefas realizadas de forma descentralizada através
da interação direta entre os nós interessados
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
P2P: Descoberta de Recursos
 Topologia não estruturada
 Busca por inundação
 Busca cega
 Busca informada
 Busca informada com replicação
 Topologia estruturada
 Busca via mapeamento de IDs
 Mecanismos de busca na arquitetura híbrida
 Busca em catálogo centralizado
 Busca via super nós
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
P2P: Busca por Inundação (Flooding)
 Nó solicitador envia solicitação/consulta a todos os
vizinhos
 Se vizinho possui o recurso, notifica
 Se não, repassa para todos seus vizinhos até encontrar
ou atingir o TTL
 O solicitador pode obter resultados redundantes ou
até não obter nenhum resultado mesmo que o
recurso exista em algum nó da rede
 Desvantagens:
 Número grande de mensagens trocadas entre os nós
 Consultas podem ser duplicadas
 Difícil escolher o valor do tempo de vida (TTL) das consultas
 TTL alto demais pode sobrecarregar a rede
 TTL baixo demais pode encerrar a busca antes de chegar ao provedor
do recurso
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
P2P: Busca Cega (Aleatória)
 Nó solicitante seleciona um único vizinho para enviar
a consulta
 A seleção é baseada em algumas heurísticas:
 Por exemplo, se o vizinho historicamente retorna
resultados satisfatórios, ele deve ser selecionado com
mais frequência
 Registros para saber quando cada vizinho foi capaz ou não
de encontrar um determinado recurso
 Se o vizinho não possui o recurso, ele seleciona um
dos seus vizinhos para repassar a consulta
 Seleção também baseada em heurística
 O processo se repete até que o recurso seja
encontrado ou o tempo de vida consulta expire
 TTL = 0
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
P2P: Busca Informada
 Cada nó possui um cache para armazenar a
localização de recursos que tenham sido consultados
previamente
 Ao receber uma consulta:
 Se o nó encontra a localização do recurso no seu cache, ele a
informa ao nó de quem recebeu a consulta
 Do contrário, ele tenta descobrir a localização do recurso
fazendo busca por inundação
 Uma vez que o recurso é encontrado, o caminho
inverso da consulta é usado para informar a
localização ao iniciador da consulta
 Dessa forma, os nós que fazem parte do caminho percorrido
pela consulta podem atualizar seus caches, acelerando assim
as próximas consultas
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
P2P: Busca Informada com Replicação
 A diferença para a busca informada simples
(sem replicação) é que os caches dos nós
que compõem o caminho inverso da
consulta serão usados para armazenar o
próprio recurso, ao invés de apenas a sua
localização
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
P2P: Busca via Mapeamento de IDs
 Recursos distribuídos via algoritmo de roteamento
 Montagem de hash table (DHT)
 Chaves e valores (recurso)
 Consultas através das DHTs de cada recurso
 Chave de busca é organizada por semelhança de
recursos, facilitando o processo
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
P2P: Busca Arquitetura Híbridas
 Busca em Catálogo Centralizado
 Descoberta da localização dos recursos feita através de consulta a um
único nó central (servidor de lookup)
 Cada nó fornece ao servidor de lookup meta-informação descrevendo
os recursos que provê
 Acesso aos dados dos recursos feito diretamente entre os nós clientes
e o nós provedores
 Busca via Super Nós
 Nós organizados numa estrutura hierárquica composta por nós
“filhos” e “super” nós
 Cada super nó mantém um catálogo descrevendo os recursos
mantidos por cada um de seus nós filhos
 Um nó filho inicia uma consulta a enviando para o seu super nó
 Um super nó processa consultas recebidas de outros super nós em
nome de seus nós filhos
 Acesso aos dados dos recursos feito diretamente entre os nós clientes
e os nós provedores
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
Requisitos de Projeto
 Questões chave para o projeto
(arquitetura) de um sistema distribuído
 Desempenho
 Cache e replicação
 Confiabilidade
 Qualidade de serviço (QoS)
 Geralmente consideradas fortemente na
implementação de aplicações distribuídas
que compartilham recursos em larga escala
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
Requisitos: Desempenho
 Capacidade do sistema para reagir de forma rápida
e consistente às requisições dos usuários
 Sujeita às limitações de processamento e comunicação dos
computadores e da infraestrutura de rede
 Principais fatores envolvidos:
 Tempo de resposta (responsiveness)
 Necessário que seja adequado ao que se espera
 Afetado pelo número de camadas de software necessário para a invocação
dos serviços remotos e pelo volume de dados transferidos através da rede
 Vazão de trabalho (throughput)
 Medida do desempenho do sistema, critérios variáveis por
funcionalidades/recursos e usuários
 Balanceamento de carga (load balance)
 Utilizado para distribuição de carga de trabalho de modo uniforme e
proporcional, explorando de forma mais eficiente os recursos computacionais
disponíveis
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
Requisitos: Cache e Replicação
 Capacidade do sistema para manter múltiplas cópias
de um mesmo recurso lógico fisicamente
distribuídas, de modo a reduzir o seu tempo de
acesso
 Ex.: protocolo de cache da web (ICP)
 Principais questões envolvidas:
 Alocação e distribuição das réplicas
 Políticas de acesso e atualização
 Mecanismo de validação
 Compromisso entre a consistência e a qualidade do serviço
 Frequência de atualização X desempenho
 Suporte para operações “desconectadas” (off-line)
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
Requisitos: Confiabilidade
 Capacidade do sistema para continuar operando
efetivamente, mesmo diante da ocorrência de falhas
e da ameaça de acessos indevidos aos recursos
compartilhados (ataques)
 Principais questões:
 Tolerância a falhas
 Obtida através da redundância (replicação) de recursos lógicos e
físicos
 Implica em maiores custo e complexidade
 Segurança
 Obtida através de mecanismos de criptografia, garantia da
integridade dos dados, assinatura digitais, políticas de controle de
acesso, etc
werther.desenvolva.info www.desenvolva.info
Modelos Arquitetônicos
Requisitos: Qualidade de Serviço (QoS)
 Capacidade do sistema para oferecer serviços com
garantias suficientes para atender de forma
satisfatória as necessidades específicas de seus
usuários
 Principais fatores que o compõem:
 Confiabilidade
 Segurança
 Desempenho
 Adaptabilidade
 Disponibilidade

Mais conteúdo relacionado

Mais procurados

SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosFrederico Madeira
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Arthur Emanuel
 
Caracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosCaracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosPortal_do_Estudante_SD
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosGustavo Monteiro
 
Sistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo realSistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo realRogério Cardoso
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosrobsons75
 
Capítulo1 - Introdução a Sistemas Distribuídos - Coulouris
Capítulo1 - Introdução a Sistemas Distribuídos - CoulourisCapítulo1 - Introdução a Sistemas Distribuídos - Coulouris
Capítulo1 - Introdução a Sistemas Distribuídos - CoulourisWindson Viana
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosHélio Jovo
 
ACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosUFPB
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Arthur Emanuel
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoAdriano Teixeira de Souza
 
Sistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPCSistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPClimabezerra
 
Capítulo 2 - Sistemas Distribuídos - Coulouris
Capítulo 2 - Sistemas Distribuídos - CoulourisCapítulo 2 - Sistemas Distribuídos - Coulouris
Capítulo 2 - Sistemas Distribuídos - CoulourisWindson Viana
 
Introcucao aos Sistemas Distribuidos
Introcucao aos Sistemas DistribuidosIntrocucao aos Sistemas Distribuidos
Introcucao aos Sistemas DistribuidosValberto Carneiro
 
Apresentação da Disciplina de Sistemas Distribuídos
Apresentação da Disciplina de Sistemas DistribuídosApresentação da Disciplina de Sistemas Distribuídos
Apresentação da Disciplina de Sistemas DistribuídosFrederico Madeira
 

Mais procurados (20)

SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02
 
SI - Arquiteturas
SI - ArquiteturasSI - Arquiteturas
SI - Arquiteturas
 
Caracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosCaracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidos
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas Distribuídos
 
Sistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo realSistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo real
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidos
 
Capítulo1 - Introdução a Sistemas Distribuídos - Coulouris
Capítulo1 - Introdução a Sistemas Distribuídos - CoulourisCapítulo1 - Introdução a Sistemas Distribuídos - Coulouris
Capítulo1 - Introdução a Sistemas Distribuídos - Coulouris
 
SI - Comunicação
SI - ComunicaçãoSI - Comunicação
SI - Comunicação
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidos
 
ACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidos
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01
 
Modelo de falhas
Modelo de falhasModelo de falhas
Modelo de falhas
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de Projeto
 
Sistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPCSistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPC
 
Capítulo 2 - Sistemas Distribuídos - Coulouris
Capítulo 2 - Sistemas Distribuídos - CoulourisCapítulo 2 - Sistemas Distribuídos - Coulouris
Capítulo 2 - Sistemas Distribuídos - Coulouris
 
Introcucao aos Sistemas Distribuidos
Introcucao aos Sistemas DistribuidosIntrocucao aos Sistemas Distribuidos
Introcucao aos Sistemas Distribuidos
 
Apresentação da Disciplina de Sistemas Distribuídos
Apresentação da Disciplina de Sistemas DistribuídosApresentação da Disciplina de Sistemas Distribuídos
Apresentação da Disciplina de Sistemas Distribuídos
 
Introducao.2s
Introducao.2sIntroducao.2s
Introducao.2s
 

Destaque

Sistemas distribuidos 2
Sistemas distribuidos 2Sistemas distribuidos 2
Sistemas distribuidos 2Tensor
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídosEduardo de Lucena Falcão
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidosTensor
 
Mapa mental de un sistema distribuido
Mapa mental de un sistema distribuidoMapa mental de un sistema distribuido
Mapa mental de un sistema distribuidoTensor
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidosTensor
 
Programação Concorrente - Aula 06
Programação Concorrente - Aula 06Programação Concorrente - Aula 06
Programação Concorrente - Aula 06thomasdacosta
 
Programação Concorrente - Aula 07
Programação Concorrente - Aula 07Programação Concorrente - Aula 07
Programação Concorrente - Aula 07thomasdacosta
 
Organização de Computadores - Aula 03
Organização de Computadores - Aula 03Organização de Computadores - Aula 03
Organização de Computadores - Aula 03thomasdacosta
 
Organização de Computadores - Aula 02
Organização de Computadores - Aula 02Organização de Computadores - Aula 02
Organização de Computadores - Aula 02thomasdacosta
 
Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04thomasdacosta
 
Programação Concorrente - Curso Completo
Programação Concorrente - Curso CompletoProgramação Concorrente - Curso Completo
Programação Concorrente - Curso Completothomasdacosta
 
Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01thomasdacosta
 
Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06thomasdacosta
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02thomasdacosta
 
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
 
Segurança em banco de dados
Segurança em banco de dadosSegurança em banco de dados
Segurança em banco de dadosArthur Azevedo
 
Publicar una Presentación de Power Point en SlideShare
Publicar una Presentación de Power Point en SlideSharePublicar una Presentación de Power Point en SlideShare
Publicar una Presentación de Power Point en SlideSharemdlcarmenp
 

Destaque (17)

Sistemas distribuidos 2
Sistemas distribuidos 2Sistemas distribuidos 2
Sistemas distribuidos 2
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidos
 
Mapa mental de un sistema distribuido
Mapa mental de un sistema distribuidoMapa mental de un sistema distribuido
Mapa mental de un sistema distribuido
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Programação Concorrente - Aula 06
Programação Concorrente - Aula 06Programação Concorrente - Aula 06
Programação Concorrente - Aula 06
 
Programação Concorrente - Aula 07
Programação Concorrente - Aula 07Programação Concorrente - Aula 07
Programação Concorrente - Aula 07
 
Organização de Computadores - Aula 03
Organização de Computadores - Aula 03Organização de Computadores - Aula 03
Organização de Computadores - Aula 03
 
Organização de Computadores - Aula 02
Organização de Computadores - Aula 02Organização de Computadores - Aula 02
Organização de Computadores - Aula 02
 
Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04
 
Programação Concorrente - Curso Completo
Programação Concorrente - Curso CompletoProgramação Concorrente - Curso Completo
Programação Concorrente - Curso Completo
 
Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01
 
Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02
 
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
 
Segurança em banco de dados
Segurança em banco de dadosSegurança em banco de dados
Segurança em banco de dados
 
Publicar una Presentación de Power Point en SlideShare
Publicar una Presentación de Power Point en SlideSharePublicar una Presentación de Power Point en SlideShare
Publicar una Presentación de Power Point en SlideShare
 

Semelhante a Sistemas Distribuídos - Modelos Arquitetônicos

Pense Aberto, Pense Linux
Pense Aberto, Pense LinuxPense Aberto, Pense Linux
Pense Aberto, Pense Linuxaviram
 
Redes Avançadas - 3.Noções de Projeto de Redes
Redes Avançadas - 3.Noções de Projeto de RedesRedes Avançadas - 3.Noções de Projeto de Redes
Redes Avançadas - 3.Noções de Projeto de RedesMauro Tapajós
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidorMarcia Abrahim
 
Service Oriented Front-End Architecture
Service Oriented Front-End ArchitectureService Oriented Front-End Architecture
Service Oriented Front-End ArchitectureCristiano Gomes
 
Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...
Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...
Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...Mauro Tapajós
 
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...tdc-globalcode
 
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...Marcelo Palladino
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented Architecturerenanwb
 
AAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambAAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambMicrosoft Brasil
 
Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...
Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...
Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...eneck
 
Julio Silvello - Pervasive Computing
Julio Silvello - Pervasive ComputingJulio Silvello - Pervasive Computing
Julio Silvello - Pervasive Computingjsilvello
 
Php Conf08 Enterprise Patterns
Php Conf08 Enterprise PatternsPhp Conf08 Enterprise Patterns
Php Conf08 Enterprise PatternsWildtech
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
9.cloud computing v3.1_wl_stv
9.cloud computing v3.1_wl_stv9.cloud computing v3.1_wl_stv
9.cloud computing v3.1_wl_stvwilson_lucas
 
Introdução a Cloud Computing
Introdução a Cloud ComputingIntrodução a Cloud Computing
Introdução a Cloud ComputingFrederico Madeira
 

Semelhante a Sistemas Distribuídos - Modelos Arquitetônicos (20)

Pense Aberto, Pense Linux
Pense Aberto, Pense LinuxPense Aberto, Pense Linux
Pense Aberto, Pense Linux
 
Redes Avançadas - 3.Noções de Projeto de Redes
Redes Avançadas - 3.Noções de Projeto de RedesRedes Avançadas - 3.Noções de Projeto de Redes
Redes Avançadas - 3.Noções de Projeto de Redes
 
Computacao em nuvem
Computacao em nuvemComputacao em nuvem
Computacao em nuvem
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 
Service Oriented Front-End Architecture
Service Oriented Front-End ArchitectureService Oriented Front-End Architecture
Service Oriented Front-End Architecture
 
Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...
Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...
Instalação e Atualização Automática de Aplicações em Plataforma Livre para Am...
 
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
 
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented Architecture
 
Introdução à sistemas distribuídos
Introdução à sistemas distribuídosIntrodução à sistemas distribuídos
Introdução à sistemas distribuídos
 
AAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambAAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcamb
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Soa Woa Rest
Soa Woa RestSoa Woa Rest
Soa Woa Rest
 
Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...
Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...
Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...
 
Julio Silvello - Pervasive Computing
Julio Silvello - Pervasive ComputingJulio Silvello - Pervasive Computing
Julio Silvello - Pervasive Computing
 
Php Conf08 Enterprise Patterns
Php Conf08 Enterprise PatternsPhp Conf08 Enterprise Patterns
Php Conf08 Enterprise Patterns
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
9.cloud computing v3.1_wl_stv
9.cloud computing v3.1_wl_stv9.cloud computing v3.1_wl_stv
9.cloud computing v3.1_wl_stv
 
Introdução a Cloud Computing
Introdução a Cloud ComputingIntrodução a Cloud Computing
Introdução a Cloud Computing
 

Sistemas Distribuídos - Modelos Arquitetônicos

  • 1. werther.desenvolva.info www.desenvolva.info Modelos de Sistemas Distribuídos - Modelos Arquitetônicos - Werther
  • 2. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos Modelos Arquitetônicos  Foco na arquitetura – estrutura de alto nível do sistema, descrita em termos de componentes separadamente especificados e seus relacionamentos  Arcabouço de referência para o projeto  Base para garantir que a estrutura do sistema atenderá sua atual e provável futura demanda em termos de atributos de qualidade  Ex.: confiabilidade, adaptabilidade, desempenho, gerência, etc.  Descrição simplificada e abstrata dos componentes do sistema:  Funcionalidades (ou responsabilidades)  Ex.: servidor, cliente, peer  Distribuição física (recursos e carga de trabalho)  Ex.: regras de particionamento e/ou replicação  Padrões de interação e comunicação  Ex.: cliente-servidor, ponto-a-ponto
  • 3. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos Modelos Arquitetônicos  Classificados em dois modelos ou “estilos”:  Cliente-Servidor (client-server)  Ponto-a-Ponto (Peer-to-peer) - P2P  Foco na divisão de responsabilidades entre os componentes do sistema e na alocação física desses componentes à infraestrutura de rede  Na prática existem muitos sistemas híbridos
  • 4. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos Modelo Cliente-Servidor  Divisão das responsabilidades entre os componentes do sistema de acordo com dois papéis bem definidos:  Servidores: responsáveis por gerenciar e controlar o acesso aos recursos mantidos no sistema  Clientes: interagem com servidores de modo a terem acesso aos recursos que estes gerenciam
  • 5. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos Modelo Cliente-Servidor  Alguns servidores podem assumir o papel de clientes de outros servidores. Exemplos:  Servidor web no papel de cliente de DNS local  Mecanismo de pesquisa é cliente dos sites que visita e servidor para os usuários que pesquisam  Continua sendo o modelo de sistema distribuído mais estudado e utilizado na prática
  • 6. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos Modelo Cliente-Servidor  Variações do modelo:  Múltiplos servidores por serviço  Cache e servidores proxy  Clientes magros  Código móvel  Agentes móveis  Objetos distribuídos  Dispositivos móveis
  • 7. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos C-S: Múltiplos Servidores  Cada serviço é implementado por um conjunto de servidores, possivelmente localizados em diferentes pontos da rede  Servidores podem interagir entre si para oferecer uma visão global consistente do serviço para os clientes  Técnicas mais utilizadas:  Replicação – manutenção de cópias do mesmo recurso lógico em dois ou mais servidores (ex.:base de dados crítica)  Particionamento – distribuição física dos recursos entre os vários servidores (ex.:clusters de servidores)
  • 8. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos C-S: Cache e Servidor Proxy  Cache  Repositório de cópias de objetos recentemente utilizados que está fisicamente mais próximo do que os objetos originais  Principais desafios:  Política de atualização (controla a entrada e saída de objetos no cache)  Localização física (nos clientes ou em um ou mais servidores proxy)  Servidor proxy  Processo compartilhado por vários clientes que serve como cache para os recursos disponibilizados por outros servidores remotos  Principais funções:  Reduzir o tempo de acesso  Aumentar a disponibilidade  Também utilizado para proteção, filtragem, adaptação, etc.
  • 9. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos C-S: Clientes Magros  Cliente com pouco ou nenhum aplicativo instalados, de modo que depende primariamente de servidores para o processamento de atividade  Cliente que utiliza software com suporte para interação local com o usuário, e que executa aplicações e solicita serviços exclusivamente a partir de servidores remotos
  • 10. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos C-S: Clientes Magros  Pontos a favor:  Baixo custo de hardware e software para os clientes  Maior facilidade de gerência e manutenção das aplicações  Pontos Contra:  Alto custo de hardware e software para os servidores  Centralização da carga de trabalho  Aumenta tráfego de mensagens  Risco de sobrecarga dos servidores e/ou da rede  Baixo desempenho para aplicações altamente interativas
  • 11. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos C-S: Código Móvel  Serviços oferecidos na forma de um código (programa) específico que deve ser descarregado do servidor  Aplicações clientes executam e interagem localmente com o código móvel recebido  Dependendo do serviço, código móvel pode interagir com um ou mais servidores em nome da aplicação cliente  Ex.: Applets Java, TCL scripts, JavaScript  Principais benefícios:  Redução do tempo de resposta para aplicações interativas  Maior facilidade de customização e atualização da interface de acesso ao serviço  Possibilidade de estender dinamicamente as funcionalidades das aplicações clientes
  • 12. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos C-S: Código Móvel  Desafios de projeto:  Heterogeneidade do código móvel e da arquitetura de execução das aplicações clientes  Solução: máquinas virtuais padronizadas embutidas nas aplicações clientes  Riscos de segurança na execução do código móvel  Solução: limitar as ações do código móvel ou executá-lo em um ambiente isolado do restante da rede  Atrasos causados pelo tempo de transferência do código móvel e pelo tempo de inicialização do seu ambiente de execução  Solução: transferência do código em formato compactado; cache de códigos recentemente utilizados; préinicialização do ambiente de execução
  • 13. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos C-S: Agentes Móveis  Agente móvel  Programas em execução (código + dados) que circula pela rede solicitando serviços em nome de um usuário ou de uma aplicação cliente  Ex.: agente para coleta de dados, busca e comparação de preços de produtos, instalação de software, chats, etc.  O acesso aos serviços é feito localmente pelo agente, ou de locais fisicamente próximos (da mesma rede local) aos servidores  Benefícios:  Redução dos custos e do tempo de acesso  Acesso antes remoto agora passa a ser local  Maior tolerância a falhas de comunicação  Conexão necessária apenas durante a transferência do agente  Melhor distribuição do tráfego de mensagens na rede
  • 14. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos C-S: Agentes Móveis  Desvantagens  Segurança: necessária proteção contra malwares que podem interceptar as informações que estão sendo transportadas pelo agente  Maior custo de processamento : custos de processamento gerados por mecanismos de segurança – limita performance  Necessidade de ambiente padronizado: Cada máquina da rede deve ter plataforma se software base a fim de permitir a migração de agentes.
  • 15. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos C-S: Objetos Distribuídos  Objetos encapsulados em processos servidores  Objetos acessados por outros processos (clientes) através de referências remotas para uma ou mais de suas interfaces  Referência remota permite invocar remotamente os métodos disponíveis na interface do objeto referenciado  Implementação na forma de middleware orientada a objetos (ex.: CORBA, COM+, Java RMI, EJB)  Diferentes mecanismos para criar, executar, publicar, localizar e invocar objetos remotos  Diferentes serviços de suporte  Transação, persistência, replicação, segurança, etc.  Diferentes fabricantes e modelos de negócio
  • 16. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos C-S: Dispositivos Móveis  Aplicações clientes que executam em dispositivos móveis e acessam servidores da rede fixa através de uma infraestrutura de comunicação sem fio (Wi-Fi, GSM, 3G, etc.)  Dispositivos móveis: notebooks, celulares, PDAs, etc.  Principais benefícios:  Fácil conexão dos dispositivos a uma nova rede local  Inclusão de novos clientes sem a necessidade de configuração explícita  Fácil integração dos clientes aos serviços locais  Descoberta automática de novos serviços (sem intervenção do usuário)  Desafios de projeto:  Identificação de recursos independente de sua localização física  Limitações de processamento, tempo de conexão e largura de banda  Privacidade e segurança  Atualmente dispositivos móveis comportam-se muito parecidos com dispositivos fixos
  • 17. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos Modelo Ponto-a-Ponto (P2P)  Todos os processos/componentes (nós) envolvidos em uma mesma tarefa ou atividade exercem papéis similares, interagindo cooperativamente como “parceiros” (pares/peers) uns dos outros  Criado para suprir as conhecidas deficiências de escalabilidade do modelo CS tradicional  Padrão de interação e de compartilhamento de recurso entre os participantes depende inteiramente dos requisitos da aplicação  O objetivo principal é explorar os recursos (hardware & software) de um grande número de máquinas/usuários interessados em realizar uma determinada tarefa ou atividade  Uso pioneiro no compartilhamento de arquivos de áudio (Napster)  Sucesso do Napster (1999) abriu caminho para vários outros sistemas e middleware P2P de propósito geral
  • 18. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos Modelo Ponto-a-Ponto (P2P)  Algumas características:  Arquitetura totalmente distribuída (sem qualquer controle centralizado)  Sem distinção entre clientes e servidores (cada nó é cliente e servidor ao mesmo tempo)  Os nós podem trocar recursos diretamente entre si  Os nós são autônomos para se juntarem ao sistema ou deixá- lo quando quiserem  Necessidade de código de coordenação em cada nó para manter a consistência dos recursos e sincronizar as ações em nível de aplicação  Interação entre nós pode ser feita utilizando mecanismos apropriados para comunicação em grupo  Difusão seletiva (multicast)  Notificação de eventos
  • 19. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos Redes e Aplicações P2P  ATENÇÃO: P2P não serve só para compartilhamento de arquivos   Comunicação – Skype, GTalk, MSN  Base de Dados – DNS, NTP  Jogos Online – Counter Strike, Unreal  Compartilhamento – eMule, BitTorrent, Gnutella  Computação em Grid  Content Delivery Networks (CDN) – Amazon, Azure, Coral  Multimedia Streaming – TV ou Radio P2P  Outros – Video on Demand
  • 20. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos Arquiteturas P2P  Arquitetura básica (ou “pura”)  Nenhum nó é especial  Cada nó conhece apenas os seus vizinhos  Determinados quando o nó se junta ao sistema (busca na rede pelos vizinhos mais próximos)  Conjunto de vizinhos pode mudar ao longo do tempo  Topologia  Estruturada (DHT – tabelas hash para controle de processos)  Napster, eDonkey, Chord  Não-estruturada (dados de forma aleatória em cada nó)  BitTorrent, Gnutella  Arquitetura híbrida  Algumas tarefas (com descoberta da localização de recursos) realizadas com a ajuda de um ou mais componentes centralizados  BitTorrent, TeamViewer  Demais tarefas realizadas de forma descentralizada através da interação direta entre os nós interessados
  • 21. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos P2P: Descoberta de Recursos  Topologia não estruturada  Busca por inundação  Busca cega  Busca informada  Busca informada com replicação  Topologia estruturada  Busca via mapeamento de IDs  Mecanismos de busca na arquitetura híbrida  Busca em catálogo centralizado  Busca via super nós
  • 22. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos P2P: Busca por Inundação (Flooding)  Nó solicitador envia solicitação/consulta a todos os vizinhos  Se vizinho possui o recurso, notifica  Se não, repassa para todos seus vizinhos até encontrar ou atingir o TTL  O solicitador pode obter resultados redundantes ou até não obter nenhum resultado mesmo que o recurso exista em algum nó da rede  Desvantagens:  Número grande de mensagens trocadas entre os nós  Consultas podem ser duplicadas  Difícil escolher o valor do tempo de vida (TTL) das consultas  TTL alto demais pode sobrecarregar a rede  TTL baixo demais pode encerrar a busca antes de chegar ao provedor do recurso
  • 23. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos P2P: Busca Cega (Aleatória)  Nó solicitante seleciona um único vizinho para enviar a consulta  A seleção é baseada em algumas heurísticas:  Por exemplo, se o vizinho historicamente retorna resultados satisfatórios, ele deve ser selecionado com mais frequência  Registros para saber quando cada vizinho foi capaz ou não de encontrar um determinado recurso  Se o vizinho não possui o recurso, ele seleciona um dos seus vizinhos para repassar a consulta  Seleção também baseada em heurística  O processo se repete até que o recurso seja encontrado ou o tempo de vida consulta expire  TTL = 0
  • 24. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos P2P: Busca Informada  Cada nó possui um cache para armazenar a localização de recursos que tenham sido consultados previamente  Ao receber uma consulta:  Se o nó encontra a localização do recurso no seu cache, ele a informa ao nó de quem recebeu a consulta  Do contrário, ele tenta descobrir a localização do recurso fazendo busca por inundação  Uma vez que o recurso é encontrado, o caminho inverso da consulta é usado para informar a localização ao iniciador da consulta  Dessa forma, os nós que fazem parte do caminho percorrido pela consulta podem atualizar seus caches, acelerando assim as próximas consultas
  • 25. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos P2P: Busca Informada com Replicação  A diferença para a busca informada simples (sem replicação) é que os caches dos nós que compõem o caminho inverso da consulta serão usados para armazenar o próprio recurso, ao invés de apenas a sua localização
  • 26. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos P2P: Busca via Mapeamento de IDs  Recursos distribuídos via algoritmo de roteamento  Montagem de hash table (DHT)  Chaves e valores (recurso)  Consultas através das DHTs de cada recurso  Chave de busca é organizada por semelhança de recursos, facilitando o processo
  • 27. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos P2P: Busca Arquitetura Híbridas  Busca em Catálogo Centralizado  Descoberta da localização dos recursos feita através de consulta a um único nó central (servidor de lookup)  Cada nó fornece ao servidor de lookup meta-informação descrevendo os recursos que provê  Acesso aos dados dos recursos feito diretamente entre os nós clientes e o nós provedores  Busca via Super Nós  Nós organizados numa estrutura hierárquica composta por nós “filhos” e “super” nós  Cada super nó mantém um catálogo descrevendo os recursos mantidos por cada um de seus nós filhos  Um nó filho inicia uma consulta a enviando para o seu super nó  Um super nó processa consultas recebidas de outros super nós em nome de seus nós filhos  Acesso aos dados dos recursos feito diretamente entre os nós clientes e os nós provedores
  • 28. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos Requisitos de Projeto  Questões chave para o projeto (arquitetura) de um sistema distribuído  Desempenho  Cache e replicação  Confiabilidade  Qualidade de serviço (QoS)  Geralmente consideradas fortemente na implementação de aplicações distribuídas que compartilham recursos em larga escala
  • 29. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos Requisitos: Desempenho  Capacidade do sistema para reagir de forma rápida e consistente às requisições dos usuários  Sujeita às limitações de processamento e comunicação dos computadores e da infraestrutura de rede  Principais fatores envolvidos:  Tempo de resposta (responsiveness)  Necessário que seja adequado ao que se espera  Afetado pelo número de camadas de software necessário para a invocação dos serviços remotos e pelo volume de dados transferidos através da rede  Vazão de trabalho (throughput)  Medida do desempenho do sistema, critérios variáveis por funcionalidades/recursos e usuários  Balanceamento de carga (load balance)  Utilizado para distribuição de carga de trabalho de modo uniforme e proporcional, explorando de forma mais eficiente os recursos computacionais disponíveis
  • 30. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos Requisitos: Cache e Replicação  Capacidade do sistema para manter múltiplas cópias de um mesmo recurso lógico fisicamente distribuídas, de modo a reduzir o seu tempo de acesso  Ex.: protocolo de cache da web (ICP)  Principais questões envolvidas:  Alocação e distribuição das réplicas  Políticas de acesso e atualização  Mecanismo de validação  Compromisso entre a consistência e a qualidade do serviço  Frequência de atualização X desempenho  Suporte para operações “desconectadas” (off-line)
  • 31. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos Requisitos: Confiabilidade  Capacidade do sistema para continuar operando efetivamente, mesmo diante da ocorrência de falhas e da ameaça de acessos indevidos aos recursos compartilhados (ataques)  Principais questões:  Tolerância a falhas  Obtida através da redundância (replicação) de recursos lógicos e físicos  Implica em maiores custo e complexidade  Segurança  Obtida através de mecanismos de criptografia, garantia da integridade dos dados, assinatura digitais, políticas de controle de acesso, etc
  • 32. werther.desenvolva.info www.desenvolva.info Modelos Arquitetônicos Requisitos: Qualidade de Serviço (QoS)  Capacidade do sistema para oferecer serviços com garantias suficientes para atender de forma satisfatória as necessidades específicas de seus usuários  Principais fatores que o compõem:  Confiabilidade  Segurança  Desempenho  Adaptabilidade  Disponibilidade