• Nenhum resultado encontrado

UNIVERSIDADE. Sistemas Distribuídos

N/A
N/A
Protected

Academic year: 2021

Share "UNIVERSIDADE. Sistemas Distribuídos"

Copied!
37
0
0

Texto

(1)

UNIVERSIDADE

UNIVERSIDADE

Sistemas Distribuídos

Sistemas Distribuídos

Ciência da Computação

Ciência da Computação

Prof. Jesus

(2)

O 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.

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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)

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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)

(15)

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.

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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

(22)

Ordenação de eventos: exemplo

(23)

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

(24)

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

(25)

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)

(26)

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

(27)

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.

(28)

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.

(29)

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)

(30)

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

(31)

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

(32)

Objetos e “

Objetos e “

principals

principals

Network invocation

result Client

Server

Principal (user) Principal (server)

Object Access rights

(33)

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

(34)

Intrusos na comunicação

Intrusos na comunicação

Communication channel Copy of m Process p m Process q The enemy m’

(35)

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

(36)

Canais seguros

Canais seguros

Principal A Secure channel Process p Process q Principal B

(37)

Outros 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

Referências

Documentos relacionados

Execuções seriais - Não permite que as transações sejam intercaladas entre si. Execuções serializáveis – Permite que as transações sejam intercaladas entre si, mas produzem

g) CEscalonador: utilizada pela classe CServiceModule, implementa os métodos necessários para gerenciar uma fila de requisições de início de transação. Ela garante que apenas

Os (3) três últimos candidatos somente poderão retirar-se da sala de prova simultaneamente e devem fazê-lo após a assinatura da ata de sala. As saídas para: banheiro, tomar

Tabela 6: Situação dos estudantes do curso de Física Diurno após o término do período letivo 2019/2 Taxa de Eficiência Conclusão (acima do tempo padrão) Conclusão (Total)

O mapa da Figura 4 representa a localização das plataformas logísticas multimodais, por tipologia, em Portugal continental3. Sines (Polos A e B) Tunes Elvas/Caia Poceirão

Constatou-se que, as praias deste setor apresentam classificações de praias Reflectivas, Disspativas e Intermediárias (Terraços de Maré Baixa, Banco e Calha Longitudinal

Sistemas Distribuídos Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte – Campus Currais Novos.. Tecnologia em Sistemas para Internet

“Você sabe que existe um sistema distribuído quando a falha de um. computador que você nunca