Modelos de Sistemas Distribuídos
Modelos de Sistemas Distribuídos
Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
1 / 35
SD
Modelos de sistema Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
Peer-to-peer
I Modelos descritivos para representar as propriedades e Web proxy
Thin-client
problemas de projeto de SD: Applets
DSM
Em camadas
Middleware
Modelos fundamentais
Modelo de interação
Modelo de falhas
Modelo de segurança
2 / 35
SD
Modelos de sistema Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
Peer-to-peer
I Modelos descritivos para representar as propriedades e Web proxy
Thin-client
problemas de projeto de SD: Applets
DSM
1. Modelos fı́sicos: computadores e equipamentos que Em camadas
constituem um sistema e sua interconectividade Middleware
Modelos fundamentais
Modelo de interação
Modelo de falhas
Modelo de segurança
2 / 35
SD
Modelos de sistema Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
Peer-to-peer
I Modelos descritivos para representar as propriedades e Web proxy
Thin-client
problemas de projeto de SD: Applets
DSM
1. Modelos fı́sicos: computadores e equipamentos que Em camadas
constituem um sistema e sua interconectividade Middleware
Modelos fundamentais
2. Modelos de arquitetura: descrevem um sistema em termos
Modelo de interação
das tarefas computacionais e de comunicação realizadas por Modelo de falhas
Modelo de segurança
seus elementos computacionais
2 / 35
SD
Modelos de sistema Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
Peer-to-peer
I Modelos descritivos para representar as propriedades e Web proxy
Thin-client
problemas de projeto de SD: Applets
DSM
1. Modelos fı́sicos: computadores e equipamentos que Em camadas
constituem um sistema e sua interconectividade Middleware
Modelos fundamentais
2. Modelos de arquitetura: descrevem um sistema em termos
Modelo de interação
das tarefas computacionais e de comunicação realizadas por Modelo de falhas
Modelo de segurança
seus elementos computacionais
3. Modelos fundamentais: adotam uma perspectiva abstrata
para descrever soluções para os problemas individuais
enfrentados pela maioria dos sistemas distribuı́dos
2 / 35
SD
Modelos fı́sicos Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
I São a maneira mais explı́cita de descrever um sistema Peer-to-peer
Web proxy
I É uma representação dos elementos de hardware de um Thin-client
Applets
sistema distribuı́do DSM
Em camadas
I Abstrai os detalhes especı́ficos do computador e das Middleware
3 / 35
SD
Modelos fı́sicos Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
I São a maneira mais explı́cita de descrever um sistema Peer-to-peer
Web proxy
I É uma representação dos elementos de hardware de um Thin-client
Applets
sistema distribuı́do DSM
Em camadas
I Abstrai os detalhes especı́ficos do computador e das Middleware
3 / 35
SD
Modelos fı́sicos Alexandre S. Nery
Introdução
Modelos fı́sicos
Sistemas Primitivos Adaptados para Contemporâneos Modelos arquiteturais
Distribuídos Internet
Cliente-servidor
Escala Pequenos Grandes Ultragrandes Serviço
Peer-to-peer
Heterogeneidade Limitada Significativa em termos Maiores dimensões Web proxy
(configurações de plataformas, introduzidas, incluindo Thin-client
Applets
homogêneas) linguagens e estilos de arquitetura
DSM
middleware radicalmente diferentes Em camadas
Sistemas abertos Não há prioridade Prioridade significativa, Grande desafio para a Middleware
com introdução de pesquisa, com os Modelos fundamentais
diversos padrões padrões existentes Modelo de interação
ainda incapazes de Modelo de falhas
abranger sistemas Modelo de segurança
complexos
QoS Em seu início Prioridade significativa, Grande desafio para a
com introdução de pesquisa, com os
vários serviços serviços existentes
ainda incapazes de
abranger sistemas
complexos
4 / 35
SD
Modelos fı́sicos Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
intranet ☎
Peer-to-peer
☎ Web proxy
☎ ISP Thin-client
Applets
☎ DSM
Em camadas
Middleware
satellite link
desktop computer:
server:
network link:
5 / 35
SD
Modelos arquiteturais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
Peer-to-peer
Web proxy
Thin-client
I Elementos arquitetônicos: Applets
DSM
I Quais são as entidades que estão se comunicando no SD? Em camadas
Middleware
I Como elas se comunicam ou qual é o paradigma de
Modelos fundamentais
comunicação utilizado? Modelo de interação
I Quais funções e responsabilidades estão relacionadas a eles? Modelo de falhas
Modelo de segurança
I Como eles são mapeados na infraestrutura distribuı́da fı́sica
(qual é a sua localização)?
6 / 35
SD
Modelos arquiteturais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
Peer-to-peer
I Quais são as entidades que se comunicam no SD? Web proxy
Thin-client
Applets
DSM
Em camadas
Middleware
Modelos fundamentais
Modelo de interação
Modelo de falhas
Modelo de segurança
7 / 35
SD
Modelos arquiteturais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
Peer-to-peer
I Quais são as entidades que se comunicam no SD? Web proxy
Thin-client
I As entidades que se comunicam normalmente são processos Applets
(threads) DSM
Em camadas
Middleware
Modelos fundamentais
Modelo de interação
Modelo de falhas
Modelo de segurança
7 / 35
SD
Modelos arquiteturais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
Peer-to-peer
I Quais são as entidades que se comunicam no SD? Web proxy
Thin-client
I As entidades que se comunicam normalmente são processos Applets
(threads) DSM
Em camadas
I ou Nós (redes de sensores) Middleware
Modelos fundamentais
I Do ponto de vista da programação: Modelo de interação
Modelo de falhas
I Objetos: estratégias OO nos sistemas distribuı́dos Modelo de segurança
I Componentes: contrato mais completo para construção do
sistema
I Serviços Web: serviços completos por si sós, intrinsicamente
integrados na World Wide Web (usando padrões Web)
7 / 35
SD
Modelos arquiteturais Alexandre S. Nery
Introdução
I Qual o paradigma de comunicação?
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
Peer-to-peer
Web proxy
Thin-client
Applets
DSM
Em camadas
Middleware
Modelos fundamentais
Modelo de interação
Modelo de falhas
Modelo de segurança
8 / 35
SD
Modelos arquiteturais Alexandre S. Nery
Introdução
I Qual o paradigma de comunicação?
Modelos fı́sicos
I Paradigmas de comunicação direta
Modelos arquiteturais
I Comunicação entre processos: suporte de nı́vel baixo para Cliente-servidor
comunicação entre processos (API sockets, primitivas Serviço
Peer-to-peer
SEND/RECV) Web proxy
Thin-client
I Chamada de procedimento remoto: procedimentos nos Applets
processos de computadores remotos podem ser chamados DSM
Em camadas
como se fossem procedimentos no espaço de endereçamento Middleware
send m receive
Communication channel
Outgoing message buffer Incoming message buffer
8 / 35
SD
Modelos arquiteturais Alexandre S. Nery
Introdução
I Paradigmas de comunicação indireta
I Comunicação em grupo: entrega de mensagens para um Modelos fı́sicos
9 / 35
SD
Modelos arquiteturais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Client invocation Web server Serviço
invocation Server Peer-to-peer
Web proxy
Thin-client
Browser result Server Applets
result DNS server DSM
Em camadas
Middleware
10 / 35
SD
Modelos arquiteturais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Client invocation Web server Serviço
invocation Server Peer-to-peer
Web proxy
Thin-client
Browser result Server Applets
result DNS server DSM
Em camadas
Middleware
10 / 35
SD
Modelos arquiteturais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Service Cliente-servidor
Serviço
Peer-to-peer
Web proxy
Server Thin-client
Applets
Client DSM
Em camadas
Middleware
11 / 35
SD
Modelos arquiteturais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
Peer-to-peer
Web proxy
Thin-client
Applets
DSM
Em camadas
Middleware
Modelos fundamentais
Modelo de interação
Modelo de falhas
Modelo de segurança
12 / 35
SD
Modelos arquiteturais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
Peer-to-peer
Web proxy
Client Web Thin-client
server Applets
DSM
Proxy Em camadas
server Middleware
Modelos fundamentais
Modelo de interação
Client Web Modelo de falhas
server Modelo de segurança
13 / 35
SD
Modelos arquiteturais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
Peer-to-peer
Compute server Web proxy
14 / 35
SD
Modelos arquiteturais Alexandre S. Nery
Introdução
Modelos fı́sicos
Web
Client Applet server
15 / 35
SD
Modelos arquiteturais Alexandre S. Nery
Introdução
Modelos arquiteturais
Código de programa que pode ser transferido de um computador Cliente-servidor
Serviço
para outro e ser executado no destino (ex: Java applets) Peer-to-peer
Web proxy
Thin-client
Applets
Servidor Web Browser (cliente) DSM
Em camadas
Middleware
<applet code=...>
Modelos fundamentais
Documento Modelo de interação
HTML Modelo de falhas
Modelo de segurança
init()
start()
paint()
stop()
Java.class destroy()
16 / 35
SD
Modelos arquiteturais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
Peer-to-peer
Web proxy
Thin-client
Applets
DSM
Em camadas
Middleware
Modelos fundamentais
Modelo de interação
Modelo de falhas
Modelo de segurança
17 / 35
SD
Modelos arquiteturais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
Peer-to-peer
Web proxy
Thin-client
Applets
DSM
Em camadas
Middleware
Modelos fundamentais
Modelo de interação
Modelo de falhas
Modelo de segurança
18 / 35
SD
Modelos arquiteturais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
Peer-to-peer
Web proxy
Thin-client
Applets
DSM
Em camadas
Middleware
Modelos fundamentais
Modelo de interação
Modelo de falhas
Figure: O Middleware. Modelo de segurança
Middleware
Abstração de programação de nı́vel mais alto para o
desenvolvimento de sistemas distribuı́dos e, por meio de camadas
lógicas, abstrair a heterogeneidade da infraestrutura subjacente.
19 / 35
SD
Modelos arquiteturais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
Peer-to-peer
Web proxy
Thin-client
Applets
DSM
Em camadas
Middleware
Modelos fundamentais
Modelo de interação
Modelo de falhas
Modelo de segurança
20 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
I Objetivo: fazer generalizaçãos a respeito do que é possı́vel ou Serviço
Peer-to-peer
impossı́vel, dadas certas suposições (cenários) Web proxy
Thin-client
I Generalizações podem assumir a forma de: Applets
DSM
I Algoritmos de propósito geral Em camadas
Middleware
I Propriedades desejáveis a serem garantidas
Modelos fundamentais
I 3 modelos fundamentais: Modelo de interação
Modelo de falhas
Modelo de segurança
21 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
I Objetivo: fazer generalizaçãos a respeito do que é possı́vel ou Serviço
Peer-to-peer
impossı́vel, dadas certas suposições (cenários) Web proxy
Thin-client
I Generalizações podem assumir a forma de: Applets
DSM
I Algoritmos de propósito geral Em camadas
Middleware
I Propriedades desejáveis a serem garantidas
Modelos fundamentais
I 3 modelos fundamentais: Modelo de interação
Modelo de falhas
I Modelo de interação: trata do desempenho e da dificuldade Modelo de segurança
21 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
I Objetivo: fazer generalizaçãos a respeito do que é possı́vel ou Serviço
Peer-to-peer
impossı́vel, dadas certas suposições (cenários) Web proxy
Thin-client
I Generalizações podem assumir a forma de: Applets
DSM
I Algoritmos de propósito geral Em camadas
Middleware
I Propriedades desejáveis a serem garantidas
Modelos fundamentais
I 3 modelos fundamentais: Modelo de interação
Modelo de falhas
I Modelo de interação: trata do desempenho e da dificuldade Modelo de segurança
21 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
I Objetivo: fazer generalizaçãos a respeito do que é possı́vel ou Serviço
Peer-to-peer
impossı́vel, dadas certas suposições (cenários) Web proxy
Thin-client
I Generalizações podem assumir a forma de: Applets
DSM
I Algoritmos de propósito geral Em camadas
Middleware
I Propriedades desejáveis a serem garantidas
Modelos fundamentais
I 3 modelos fundamentais: Modelo de interação
Modelo de falhas
I Modelo de interação: trata do desempenho e da dificuldade Modelo de segurança
21 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
22 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
22 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
22 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
22 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
22 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
23 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
23 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
23 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
23 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
23 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
23 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
I Ordenação de eventos: Peer-to-peer
Web proxy
I Em muitos casos, estamos interessados em saber se um Thin-client
evento (envio ou recepção de uma msg) ocorreu em um Applets
DSM
processo antes, depois ou simultaneamente com outro evento Em camadas
Middleware
em outro processo
Modelos fundamentais
I Em um SD os relógios não podem ser perfeitamente Modelo de interação
sincronizados Modelo de falhas
Modelo de segurança
I Mesmo na ausência da noção de relógio, a execução de um
SD pode ser descrita em termos da ocorrência de eventos e
de sua ordem.
I Lamport: propôs um modelo de relógio lógico (veremos mais
adiante no curso)
24 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
I Considere o seguinte conjunto de troca de mensagens, entre Peer-to-peer
Web proxy
um grupo de usuários de e-mail X, Y, Z e A, em uma lista de Thin-client
Applets
distribuição: DSM
Em camadas
1. o usuário X envia uma mensagem com o assunto “Reunião” Middleware
2. os usuários Y e Z respondem, enviando uma mensagem com Modelos fundamentais
o assunto “Re:Reunião” Modelo de interação
Modelo de falhas
I A mensagem de X foi enviada primeiro Modelo de segurança
I Y a lê e responde
I Z lê a mensagem de X e a resposta de Y e envia outra
resposta fazendo referência às msgs de X e de Y
25 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
m3 m1 m2
A
receive receive receive
t1 t2 t3
26 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
I Devido a diferentes atrasos, alguns usuários poderão ver essas Modelos arquiteturais
Cliente-servidor
mensagens na ordem errada: Serviço
Peer-to-peer
Web proxy
Thin-client
23 Z Re:Reunião
Modelo de interação
Modelo de falhas
Modelo de segurança
24 X Reunião
25 Y Re:Reunião
27 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
I Se os relógios nos computadores de X, Y e Z pudessem ser
Modelos fı́sicos
sincronizados
Modelos arquiteturais
I Cada msg, ao ser enviada, poderia transportar a hora do Cliente-servidor
relógio de seu computador local Serviço
Peer-to-peer
I Ex: m1 , m2 e m3 transportariam os tempos t1 , t2 e t3 , onde Web proxy
Thin-client
t1 < t2 < t3 Applets
DSM
send receive receive Em camadas
Middleware
X
1 m1 4 Modelos fundamentais
Modelo de interação
m2
send Modelo de falhas
receive Modelo de segurança
2 3 Physical
Y
receive time
send
Z
receive receive
t3 t1 t2
m3 m1 m2
A
receive receive receive
t1 t2 t3
28 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos arquiteturais
I Falhas por omissão
Cliente-servidor
I de processo Serviço
Peer-to-peer
I na comunicação Web proxy
I Falhas arbitrárias (ou bizantinas) Thin-client
Applets
I Falhas na temporização DSM
Em camadas
I Mascaramento de falhas Middleware
Modelos fundamentais
process p process q
Modelo de interação
Modelo de falhas
Modelo de segurança
send m receive
Communication channel
Outgoing message buffer Incoming message buffer
29 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
30 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
Peer-to-peer
Web proxy
Classe de falha Afeta Descrição Thin-client
Applets
Relógio Processo O relógio local do processo ultrapassa os limites DSM
de sua taxa de desvio em relação ao tempo físico. Em camadas
Desempenho Processo O processo ultrapassa os limites do intervalo de Middleware
31 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
Modelos fı́sicos
Modelos arquiteturais
Cliente-servidor
Serviço
Peer-to-peer
Web proxy
Thin-client
I Modelo de segurança: Applets
DSM
I Ataques de agentes externos e internos Em camadas
I O sistema precisa tolerar falhas (continuar funcionando Middleware
32 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
I Direitos de acesso especificam quem pode executar
Modelos fı́sicos
determinadas operações sobre um objeto
Modelos arquiteturais
I Os usuários são incluı́dos no modelo de segurança Cliente-servidor
Serviço
I Associa-se a cada invocação a entidade que a executa Peer-to-peer
(principal) Web proxy
Thin-client
I O servidor é responsável por verificar a identidade do Applets
DSM
principal que está por trás de cada invocação Em camadas
Middleware
Modelos fundamentais
Access rights Object Modelo de interação
invocation Modelo de falhas
Modelo de segurança
Client
result Server
33 / 35
SD
Modelos fundamentais Alexandre S. Nery
Modelos fı́sicos
processo e ler ou copiar qualquer mensagem
Modelos arquiteturais
I Tais ataques podem ser realizados usando-se um computador Cliente-servidor
conectado a uma rede para executar um programa que lê Serviço
Peer-to-peer
mensagens endereçadas para outros computadores ou por um Web proxy
programa que gere mensagens que façam falsos pedidos para Thin-client
Applets
serviços e deem a entender que sejam provenientes de DSM
Em camadas
usuários autorizados Middleware
Modelos fundamentais
Copy of m Modelo de interação
Modelo de falhas
Modelo de segurança
The enemy
m’
Process p m Process q
Communication channel
34 / 35
SD
Modelos fundamentais Alexandre S. Nery
Introdução
I Criptografia e autenticação são usadas para construir canais Modelos fı́sicos
seguros como uma camada de serviço a mais sobre os serviços Modelos arquiteturais
de comunicação já existentes (ex: HTTPS) Cliente-servidor
Serviço
I Cada processo conhece com certeza a identidade do principal Peer-to-peer
Web proxy
(em nome de quem o outro processo está executando) Thin-client
I Garantir privacidade e a integridade dos dados transmitidos Applets
DSM
I Inclui indicações de relógio lógico ou fı́sico para impedir que Em camadas
Middleware
as mensagens sejam reproduzidas ou reordenadas
Modelos fundamentais
Modelo de interação
Modelo de falhas
35 / 35