UNIVERSIDADE
UNIVERSIDADE
Sistemas Distribuídos
Sistemas Distribuídos
Ciência da Computação
Ciência da Computação
Prof. JesusO modelo
O modelo
peer-to-peer
peer-to-peer
● Surgiu no final da década de 1970Surgiu no final da década de 1970
● Se tornou mundialmente conhecido com o aplicativo Se tornou mundialmente conhecido com o aplicativo
Napster
Napster
● Usado principalmente para compartilhamento de Usado principalmente para compartilhamento de
arquivos, imagens, músicas, vídeos etc.
arquivos, imagens, músicas, vídeos etc.
O modelo
O modelo
peer-to-peer
peer-to-peer
● Todos os processos/objetos possuem as mesmas
capacidades (cliente e servidor)
– fornecimento e requisição de recursos
● Aproveita a capacidade de hardware de PCs em rede ● Modelo descentralizado
– permite um alto grau de distribução dos recursos compartilhados
● Escalabilidade melhor do que no modelo cliente-servidor
O modelo
O modelo
peer-to-peer
peer-to-peer
Application Application Application Peer 1 Peer 2 Peer 3 Peers 5 .... N Sharable objects Application Peer 4
O modelo
O modelo
peer-to-peer
peer-to-peer
● Pode gerar um alto tráfego na redePode gerar um alto tráfego na rede
● Desempenho nas pesquisas por recursos não é muito Desempenho nas pesquisas por recursos não é muito
bom devido a necessidade de se comunicar com muitos
bom devido a necessidade de se comunicar com muitos
peers
peers para obter uma resposta para obter uma resposta
O modelo
O modelo
peer-to-peer
peer-to-peer
● Supernós (super peers) autorizam o ingresso de outros Supernós (super peers) autorizam o ingresso de outros
nós na P2P
nós na P2P
● Coordenação e indexação de recursos compartilhados na Coordenação e indexação de recursos compartilhados na
rede P2P
rede P2P
● Busca por recursos: ao encontrar um recurso permite o Busca por recursos: ao encontrar um recurso permite o
compartilhamento entre os demais nós
compartilhamento entre os demais nós
Interfaces e Objetos
Interfaces e Objetos
● Objetos
– Encapsulam a funcionalidade e o estado dos
componentes de uma aplicação ou serviço distribuído
– Todas as propriedades usuais de orientação a objetos – Modelo de objetos próprio ou da linguagem de progr.
● Uma interface especifica:
– O conjunto de funções (métodos) disponibilizadas por
um processo ou objeto
● Objetos são acessíveis unicamente através de suas
Requisitos de projeto para arquiteturas
Requisitos de projeto para arquiteturas
distribuídas - Desempenho
distribuídas - 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 infra-estrutura de rede
● Tempo de resposta (responsiveness)
– 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
● Taxa de trabalho (throughput)
– Medida do desempenho do sistema considerando todos os
usuários
● Balanceamento de carga (load balance)
– Utilizado para explorar de forma mais eficiente os recursos
Qualidade de Serviço
Qualidade de Serviço
● Capacidade do sistema para oferecer serviços com garantias
suficientes para atender de forma satisfatória as necessidades
específicas de seus usuários
● No contexto de QoS, o desempenho também é definido em termos
da capacidade do sistema de atender restrições de tempo crítico
Ex.: sistemas de tempo real, sistemas para transmissão de dados multimídia
● Em geral, essas restrições devem ser mantidas durante todo o
tempo, e sob todas as circunstâncias, em que os recursos são utilizados, especialmente sob alta demanda
– Recursos críticos devem ser reservados a priori junto aos seus
respectivos servidores (solicitações não atendidas são rejeitadas)
Caching
Caching
e Replicação
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
● 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
Freqüência de atualização X desempenho
Confiabilidade
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
● 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
Modelos Fundamentais de Sistemas
Modelos Fundamentais de Sistemas
Distribuídos
Distribuídos
●
Principais aspectos
– Tipos de entidades que compõem o sistema – Como elas interagem entre si
– Características que afetam o comportamento coletivo
●
Modelo de Interação
●Modelo de Falhas
Modelos Fundamentais de Sistemas
Modelos Fundamentais de Sistemas
Distribuídos
Distribuídos
●
Tornar clara todas as questões relevantes para
um sistema distribuído que está sendo criado
●
O que um determinado sistema pode ou não
Modelo de interação
Modelo de interação
●
Processos interagem entre si através da troca de
mensagens para coordenar suas atividades
●
Um algoritmo distribuído define os passos
necessários para essa coordenação
●
Cada processo possui seu próprio estado
– Ausência de estado global
●
O desempenho do canal de comunicação
subjacente não é previsível (atraso, banda, jitter)
Desempenho do canal de comunicação
Desempenho do canal de comunicação
●
Atraso: soma de várias componentes:
– Transmissão: tempo para um mensagem ser
transmitida da fonte até o destino
– Acesso à rede: tempo que se leva para obter um canal
livre de transmissão
– Processo de envio e recepção: tempo que o sistema
operacional leva para enviar ou receber uma mensagem. Uso de buffers.
Desempenho do canal de comunicação
Desempenho do canal de comunicação
●
Largura de banda
– Quantidade total de informação que pode ser transmitida em uma unidade de tempo
●
Jitter
Relógios e temporização de eventos
Relógios e temporização de eventos
●
Cada computador possui seu próprio relógio
– Pode ser usado para marcar o tempo de eventos locais
●
Mas sem significância global
– Cada relógio marca um tempo diferente – Defasagem entre os relógios
●
Técnicas para sincronização de relógios podem
ser aplicadas
Duas variantes do modelo de interação
Duas variantes do modelo de interação
● Sistema distribuído síncrono – limites conhecidos para:
– tempo de execução de cada passo em um processo – tempo de transmissão (e recepção) de mensagens – taxa de defasagem dos relógios locais
● SD assíncrono – limites não são conhecidos para as
Duas variantes do modelo de interação
Duas variantes do modelo de interação
● Mais fácil construir aplicações sobre sistemas síncronos Mais fácil construir aplicações sobre sistemas síncronos
– ex.: ex.: timeoutstimeouts p/ detectar falhas p/ detectar falhas
● Uma solução válida para um sistema assíncrono também
serve para um sistema síncrono
● Sistemas síncronos podem ser construídos desde que
Ordenação de eventos
Ordenação de eventos
●
Determinar se um evento em um processo
ocorreu antes ou depois de outro evento em outro
processo
– ex.: envio e recepção de uma mensagem
●
Pode ser baseada em relógios físicos
– Com o emprego de alguma técnica para sincronização de relógios
– Tem um limite de precisão que pode não ser tolerado
●
Outra alternativa: relógios lógicos
Ordenação de eventos: exemplo
Ordenação de eventos: exemplo
send receive send receive m1 m2 2 1 3 4 X Y Z Physical time A m3 receive receive send
receive receive receive
t1 t2 t3
receive
receive m2
Ordenação de eventos: exemplo
Modelo de Falhas
Modelo de Falhas
●
Processos e canais podem falhar
– Desvio em relação ao comportamento correto
●
Falhas de omissão
– Processo: processo termina inesperadamente (crash)
● Fail-stop: outros processos podem detectar a falha com
certeza (através de timeouts): requer sistema síncrono
O modelo de processos e canais
O modelo de processos e canais
process p process q
Communication channel
send
Outgoing message buffer Incoming message buffer
receive m
Modelo de Falhas
Modelo de Falhas
●
Neste caso as falhas de omissão podem ser:
– De envio (Entre processo send e o buffer de envio)
– De recebimento (Entre o buffer de recebimento o processo receive)
Modelo de Falhas (2)
Modelo de Falhas (2)
●
Falhas arbitrárias
– Qualquer tipo de erro pode acontecer:
– Canal: mensagens podem ser omitidas, alteradas, duplicadas, etc
– Processo: passos em um algoritmo podem ser omitidos...
● Não é possível detectar a falha
●
Falhas de temporização
– Violação das suposições sobre a temporização de eventos em sistemas síncronos
Falhas de omissão e falhas arbitrárias
Falhas de omissão e falhas arbitrárias
Class of failure Affects Description
Fail-stop Process Process halts and remains halted. Other processes may detect this state.
Crash Process Process halts and remains halted. Other processes may not be able to detect this state.
Omission Channel A message inserted in an outgoing message buffer never arrives at the other end’s incoming message buffer.
Send-omission Process A process completes a send, but the message is not put in its outgoing message buffer.
Receive-omission Process A message is put in a process’s incoming message buffer, but that process does not receive it.
Arbitrary (Byzantine)
Process or channel
Process/channel exhibits arbitrary behaviour: it may send/transmit arbitrary messages at arbitrary times, commit omissions; a process may stop or take an incorrect step.
Falhas de temporização
Falhas de temporização
Class of Failure Affects Description
Clock Process Process’s local clock exceeds the bounds on its rate of drift from real time.
Performance Process Process exceeds the bounds on the interval between two steps.
Performance Channel A message’s transmission takes longer than the stated bound.
Lidando com falhas
Lidando com falhas
●
Mascaramento de falhas
– Por exemplo, utilizando múltiplos servidores
replicados para ocultar a falha de uma das réplicas – É possível oferecer serviços confiáveis a partir de
componentes sujeito à falhas
●
Confiabilidade da comunicação
– Detecção de mensagens com erro (CRCs)
Modelo de segurança
Modelo de segurança
● Descreve os mecanismos utilizados para garantir a segurança dos
processos e de seus canais de comunicação, e para proteger os
recursos que os processos encapsulam contra acessos não
autorizados
● Principais questões:
– Proteção dos recursos
– Segurança dos processos e de suas interações
● Desafios:
– Uso de técnicas de segurança implica em custos
substanciais de processamento e de gerência
– Necessidade de uma análise cuidadosa das possíveis fontes
de ameaças, incluindo ambientes externos ao sistema
Proteção de Recursos
Proteção de Recursos
● Conceitos envolvidos:
– Direitos de acesso – especificação de quem pode realizar
as operações disponíveis para um determinado recurso
– Principal – entidade (usuário ou processo) autorizada para
solicitar uma operação, ou para enviar os resultados de uma operação para o principal solicitante
● Responsabilidade compartilhada entre clientes e servidores
– Servidor verifica a identidade do principal por trás de cada
invocação e checa se ele tem direitos de acesso
suficientes para realizar a operação solicitada
– Cliente verifica a identidade do principal por trás do servidor
para garantir que os resultados vêm do servidor
Objetos e “
Objetos e “
principals
principals
”
”
Network invocation
result Client
Server
Principal (user) Principal (server)
Object Access rights
Segurança dos Processo e Interações
Segurança dos Processo e Interações
● Natureza aberta da rede e dos serviços de comunicação expõe os
processos a ameaças e ataques “inimigos” Principais tipos de ameaça:
● Aos processos – cliente e servidores podem não ser capazes de
determinar a identidade dos processos com os quais se comunicam
● Aos canais de comunicação – mensagens podem ser
indevidamente copiadas, alteradas, forjadas ou removidas enquanto transitam pela rede
● Negação de serviço – envios excessivos de mensagens ou
invocações de serviços através da rede, resultando na sobrecarga dos recursos físicos do sistema e prejudicando seus usuários
Intrusos na comunicação
Intrusos na comunicação
Communication channel Copy of m Process p m Process q The enemy m’Comunicação Segura
Comunicação Segura
● Criptografia – processo de “embaralhamento” de uma mensagem
de modo a esconder seu conteúdo de usuários não autorizados
● Autenticação – utiliza chaves secretas e criptografia para garantir
a identidade dos processos clientes e servidores
● Canal seguro – canal de comunicação conectando um par de
processos, onde cada processo conhece e confia na identidade do principal em nome do qual o outro processo está executando
– Geralmente implementado como uma camada extra de
serviço sobre os serviços de comunicação existentes
– Utiliza mecanismos de autenticação e criptografia para
garantir a privacidade e a integridade das mensagens transmitidas através do canal
Canais seguros
Canais seguros
Principal A Secure channel Process p Process q Principal BOutros problemas de segurança
Outros problemas de segurança
●
Um modelo de segurança deve enumerar todos
os tipos de ataques aos quais um sistema
distribuído estará sujeito
– E empregar técnicas apropriadas para lidar com cada um