• Nenhum resultado encontrado

modulo2-modelosEarquiteturas

N/A
N/A
Protected

Academic year: 2021

Share "modulo2-modelosEarquiteturas"

Copied!
28
0
0

Texto

(1)

Modelos de Sistemas

Distribuídos

Andrey Brito, Lívia Sampaio Campos Sistemas Distribuídos – 2012.3

(2)

Plano de aula

• Motivação

• Um modelo de sistema distribuído

• Tipos de modelo

– Modelo arquitetural: cliente-servidor e variações, p2p

– Modelos fundamentais: interação, falhas, segurança

(3)

Motivação

• O que são modelos?

– Descrição abstrata e simplificada do mundo real

• Um bom modelo deve ser...

– Preciso

• Quão verdadeiro ele é

– Tratável

• Passível de análise

• Usar algum formalismo (matemático ou lógico) para representar os atributos do modelo

(4)

Motivação

• Um bom modelo serve para...

– Viabilidade: resultados de possibilidade e impossibilidade

– Custo: quão cara uma solução pode ser

(5)

Um modelo de sistema distribuído

• Um sistema distribuído consiste de um conjunto de processos em diferentes computadores que estão conectados através de uma rede de comunicação seguindo uma organização cliente-servidor. A rede provê facilidades para a troca de mensagens entre os processos, sendo assíncrona. Não há relógio global. Não há memória global. Mensagens podem ser

entregues fora de ordem. Podem ocorrer falhas na

rede (links quebrados, mensagens perdidas/duplicadas ou corrompidas) e nos processos. O sistema pode ser modelado como um grafo direcionado onde os vértices são processos e os arcos são os canais unidirecionais de comunicação.

(6)

Tipos de modelos

• Arquitetural

– Foco nos componentes, como se relacionam, como serão mapeados na rede

• Cliente-servidor, p2p (par-a-par, entre pares)

• Fundamental

– Foco em propriedades fundamentais (comuns em qualquer arquitetura

(7)

Modelo arquitetural: cliente-servidor

• Definição

– Papéis assimétricos: cliente (consumidor) e servidor (provedor)

• Exemplos

– Web, banco de dados, sistema de arquivos

• Características

– Simplicidade de gerência e manutenção

• Dificuldades

– Centralização (sobrecarga do servidor), escala, ponto único de falhas

C

C

C

(8)

Cliente-servidor em 3 camadas

• Resolvendo o problema do cliente “gordo”

• Muito comum para aplicações web

(9)

Cliente-servidor em 3 camadas:

exemplo

• Serviço de comércio eletrônico

(10)

Cliente-servidor com código móvel

• Versão intermediária entre o cliente “fino” e o

cliente “gordo” 

– Responsabilidades de processamento para o cliente

• Ambientes Java provêm suporte para código

móvel via applets em páginas web

(11)

Cliente-servidor com dispositivos

móveis

• Hardware+software se movem na rede entre

diferentes localizações

– Mobilidade de dispositivos: celulares, laptops, tablets

• Podem encapsular clientes* ou servidores

• Atenção para...

– Transparência de mobilidade – Conectividade variável

(12)

Modelo arquitetural: p2p

• Definição

– Papéis simétricos entre os participantes: “pares”

– Participantes autônomos

• Características

– Escala, ausência de visão global, descentralização, robustez

• Exemplos

– Kazaa (compartilhamento de arquivos), bittorrent (download colaborativo), set@home (computação voluntária), skype (voip)

P

P

(13)

Modelo arquitetural: p2p

• Dificuldades:

– Descoberta de recursos sem ter uma visão global do sistema

– Segurança (participantes não confiáveis) – Escala (carga dos participantes)

(14)

Modelos fundamentais: interação

• Através da interação entre os processos de um

programa distribuído é que a computação

progride

– Algumas notações

• Quais fatores afetam a interação:

– Atrasos na comunicação e processamento – Ausência de tempo global

(15)

Modelos fundamentais: notações

• Um programa distribuído consiste de

– M processos (p1, p2, ..., pm) que executam sobre N processadores

– Processadores são conectados por canais de comunicação

• A execução de um processo equivale à execução sequencial de eventos atômicos

– Eventos internos ou externos (send/receive) – Considere ex

i o evento x do processo pi

– A ocorrência de um evento modifica o estado do processo correspondente ou da rede

– Hi = (hi, →i) descreve a execução de um processo pi como uma sequência de eventos (hi) organizados a partir de uma relação de precedência (→i)

(16)

Modelos de interação: Síncrono

• Certeza na comunicação

– Atrasos limitados e conhecidos para atrasos na comunicação

velocidade de processamento e transmissão de mensagens) e drift dos relógios locais

• Benefícios

– Implementação de sistemas baseados em temporizadores ou outra abordagem dependente de tempo

• Desvantagens

– Dificuldade para garantir certeza na comunicação: sincronismo do ambiente ou pior cenário de carga das aplicações são imprevisíveis – Pouco portáveis

(17)

Modelos de interação: Assíncrono

• Incerteza na comunicação

– Nenhuma restrição sobre os atrasos na comunicação • Benefícios

– Maior portabilidade; semântica simples

– Um sistema distribuído é normalmente assíncrono! • Desvantagens

– Não é possível distinguir entre processos falhos ou lentos

– Impossibilidade de resolver problemas importantes • Ex. consenso [FLP85]

(18)

Modelos de interação: Parcialmente

Assíncronos

• Parcialmente assíncrono = assíncrono + alguma noção de sincronismo

– Objetivo é contornar resultados de impossibilidade

• Duas “escolas” principais

– Sistemas que não são sempre assíncronos

• Suposição: existem períodos onde a detecção de falhas é confiável • Ex. modelo assíncrono com detectores de falhas não-confiáveis

[CT96]

– Sistemas que não são completamente assíncronos

• Suposição: existem limites para algumas propriedades (atrasos na transmissão de mensagens ou escalonamento ou sincronização de relógios)

(19)

Modelos fundamentais: falhas

Para assegurar o correto funcionamento de um sistema é preciso compreender porque e como ele

falha.

• Falhas por omissão (benignas)

– O sistema deixa de realizar ações esperadas – Processos falham por parada

– Processos fail-stop

(20)

Modelos fundamentais: falhas

• Falhas de temporização (benignas)

– O sistema deixa de realizar ações dentro do tempo esperado

– Aplicável a sistemas síncronos

(21)

Modelos fundamentais: falhas

• Falhas por valor (benignas)

– O sistema deixa de realizar alguma ação da maneira esperada

– Resultados incorretos pela construção ou significado

(22)

Modelos fundamentais: falhas

• Falhas arbitrárias (maliciosa, Bizantina)

– Qualquer tipo de falha pode ocorrer

– Processos falham gerando valores inesperados ou parando

– A rede falha...

• corrompendo mensagens

• gerando mensagens inesperadas ou • duplicando mensagens

(23)

Modelos fundamentais: hierarquia de

falhas

Nível de restrição parada omissão valor temporização arbitrária

(24)

Modelos fundamentais: segurança

Para assegurar o correto funcionamento de um sistema

é preciso compreender porque e como ele torna-se inseguro.

– Insegurança é causada por ataques realizados por atacantes explorando vulnerabilidades do sistema de forma maliciosa.

(25)

Modelos fundamentais: segurança

• Modelo de segurança implica em conhecer às

ameaças ao sistema (recursos computacionais

e de comunicação além da informação):

– Uso de recursos de forma não autorizada

– Mal funcionamento dos serviços providos pelos recursos

– Uso da informação de forma não autorizada – Modificação da informação de forma não

(26)

Modelos fundamentais: segurança

• Propriedades de segurança e como garanti-las

– Confidencialidade

• Proteger o sistema dos “olhos” dos atacantes • Como? Encryption

– Integridade

• Proteger o sistema de modificações impróprias • Como? Controle de acesso

– Autenticidade

• Proteger o sistema de forjamentos • Como? Assinatura digital

– Disponibilidade

• Proteger o sistema de interrupções no seu funcionamento • Como? Controle de acesso, redundância

(27)

Criptografia: paradigma fundamental

para segurança

• Criptografia consiste de:

– Encryption: algoritmo de criptografia + chave(s) • Entrada: dado original (plaintext)

• Saída: dado criptografado (ciphertext) – Decryption: processo reverso

• Criptografia de chave privada (simétrica)

– Usa a mesma chave para os processos de encryption e

decryption

• Criptografia de chave pública (assimétrica)

• Importância das chaves na criptografia

(28)

Referências

• [FLP85]

– Impossibility of Distributed Consensus with One Faulty Process

• [CT96]

– Unreliable Failure Detectors for Reliable Distributed Systems

• [CF98]

– The Timed Asynchronous System Model

• [VA95]

– Quase-synchronism: a step away from the traditional fault-tolerant real-time system models

Referências

Documentos relacionados

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

Reconheço que fui esclarecido que se houver alteração de qualquer um dos dados sem a comunicação à Defensoria Pública eu assumirei integralmente os riscos decorrentes dessa

Antes de adentrar na matéria é preciso compreender que os princípios fundamentais constitucionais são a base protetora dos direitos e garantias

Estão aptas(os) à inscrição no processo seletivo de ingresso discente no curso de Doutorado no Programa de Pós-Graduação Lógica e Metafísica do Instituto de Filosofia e

Seveda me je bilo malo strah in sem bila živčna, vendar sem vseeno uživala.. Želela sem, da bi mi vaja dobro uspela, vendar

Os balconistas devem saber que venda adicional também faz parte da atenção prestada ao cliente e deve ser praticada com bom senso, pelo oferecimento de produtos e serviços que

Incluir gráficos do Gantt em um painel com outros tipos de gráficos pode ajudar a correlacionar dados que geralmente não são associados.... Gráfico

Por isso, a origem histórica do capital e do sistema capitalista euro- peu é indissociável do poder político e das guerras, e a teoria sobre a formação deste “universo europeu”