JINI como Middleware para Sistemas Distribuídos Prof. Diovani Milhorim Sistemas distribuídos.
Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber...
Transcript of Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber...
![Page 1: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/1.jpg)
Arquitetura de sistemas distribuídos
Ingrid Jansch Pôrto
2006
Agradecimentos a Taisy Silva Weber pelo conjunto de slides
original, a partir do qual este foi realizado.
![Page 2: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/2.jpg)
Ingrid Jansch Porto 2
Arquitetura de sistemas distribuídos
Material baseado
– Pankaj Jalote. Fault Tolerance in Distributed Systems. Prentice Hall, 1994.
– Mukesh Singhal & Niranjan Shivaratri. Advanced Concepts in Operating Systems. McGraw Hill, 1994.
– Sape Mullender. Distributed Systems. Addison-Wesley, 2nd edition, 1994.
![Page 3: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/3.jpg)
Ingrid Jansch Porto 3
Níveis
processador fail-stop, armazenamento estável,comunicação confiável, consenso bizantino,
difusão confiável e atômica
recuperação para um estado consistente
resiliência de dados
resiliência de processos
ações atômicas
software tolerante a falhas
serviços
blocosbásicos
sistema distribuído
![Page 4: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/4.jpg)
Ingrid Jansch Porto 4
Sistemas distribuídos
Modelos de Sistemas Distribuídos (SD): modelos físico e lógico; comunicação entre processos
Relógios lógicos e ordenação de eventos Estado global do SD Canais de comunicação Modelos de computação. Modelos de defeitos Acordo bizantino
![Page 5: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/5.jpg)
Ingrid Jansch Porto 5
Modelos de sistemas distribuídos
Modelo físico: definido pelos componentes físicos do sistema. Ë o nível de realização da computação (rede real).
Modelo lógico: definido do ponto de vista do processamento ou da computação. Corresponde ao ponto de vista do usuário; serve de base para a definição de serviços.
Em sistemas robustos, o modelo lógico é independente das falhas que ocorrem sobre o modelo físico.
![Page 6: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/6.jpg)
Ingrid Jansch Porto 6
Sistemas distribuídos
– sem memória compartilhada– sem relógio global
modelos– modelo físico
– modelo lógico
nodos e rede
processos e canais
o modelo físico é de interesse secundário nessa disciplina; entretanto, para melhorar o desempenho, características físicas especiais do meio podem ser consideradas
processadorrelógio localmemória local volátilarmazenamento não volátilinterface de redesoftware
![Page 7: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/7.jpg)
Ingrid Jansch Porto 7
Modelo físico
processador
memórialocal
relógiolocal
disco
interfacede
rede
NODO i
- memória não é compartilhada com demais nodos- o relógio é local a cada nodo
NODO k
mensagens
NODO j
![Page 8: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/8.jpg)
Ingrid Jansch Porto 8
Comunicação:topologias ponto a ponto
totalmenteconectado
estrela
árvore
![Page 9: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/9.jpg)
Ingrid Jansch Porto 9
Topologia barramento
barramentocomum
nodos
nodos
uma mensagem enviada pelo barramento pode ser recebida simultaneamente por todos os nodos (broadcast)
bus, barra ou via
![Page 10: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/10.jpg)
Ingrid Jansch Porto 10
Modelo lógico
aplicação distribuída– conjunto de processos concorrentes– processos cooperam para realizar uma computação
• cada processo é seqüencial
progresso finito• nada pode ser dito sobre velocidades relativas entre os
processos
cada processo pode estar em um nodo diferente
todos os processos avançam na execução
![Page 11: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/11.jpg)
Ingrid Jansch Porto 11
Modelo lógico
rede completamente conectada• topologia não é considerada
processos e canais• existe um canal entre quaisquer dois processos que
interagem• canais com buffer infinito e livres de erros• canais entregam mensagens na ordem que foram enviadas
(ordem preservada no canal)– Observe-se que estas características não são necessariamente
válidas para o meio físico
![Page 12: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/12.jpg)
Ingrid Jansch Porto 12
Modelo lógico
ordenação de mensagens– ordem das mensagens é preservada em um canal– nada é estabelecido sobre mensagens que chegam a
um nodo vindos de diferentes canais– não existe ordenação total de mensagens, apenas
ordenação parcial• razão: retardos nos canais (delay)
![Page 13: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/13.jpg)
Ingrid Jansch Porto 13
Canal
c b a
c b a
p i
p j
canal
ordem de mensagenspreservada
processo
no modelo físico, as mensagens a, b e c podem trafegar por rotas diferentes
ordem de envio
![Page 14: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/14.jpg)
Ingrid Jansch Porto 14
Canal
p a
p d
p c
p b
x y
x y
m n
m n
m x y n
x m n y
ordem parcial preservadaordem total não preservada
![Page 15: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/15.jpg)
Ingrid Jansch Porto 15
Sistemas síncronos e assíncronos
sistema síncrono• existe um limite de tempo finito e conhecido
• sistema correto opera dentro desse limite
sistema assíncrono– não existe um limite de tempo
• impossível determinar se o sistema está simplesmente atrasado por sobrecarga ou se está com defeito
definidos pela existência de limites de tempo
![Page 16: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/16.jpg)
Ingrid Jansch Porto 16
Limites de tempo
canal de comunicação síncrono– retardo (delay) máximo é conhecido
processador síncrono– tempo de execução de um conjunto de instruções é
conhecido e limitado
existem limites de tempo que podem ser estabelecidos para determinar a conclusão de uma atividade
![Page 17: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/17.jpg)
Ingrid Jansch Porto 17
usado para detectar defeitos em nodos e perda de mensagens
Vantagem do sistema síncrono
detecção de defeito– defeito de um componente do sistema pode ser
deduzido pela ausência de resposta– timeout
se um nodo não reponde após certo intervalo de temposistema síncrono - nodo com defeitosistema assíncrono - nada se pode afirmar
![Page 18: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/18.jpg)
Ingrid Jansch Porto 18
Classificação de defeitos
colapso ou crash– uma falha que causa a parada de um componente ou a perda do
seu estado interno
omissão– um componente não responde a determinadas entradas– engloba crash
temporização– o componente responde ou muito cedo ou muito tarde– engloba omissão
modelo de Cristian
mais restritiva de todas as classes
também chamada falha de desempenho
![Page 19: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/19.jpg)
Ingrid Jansch Porto 19
Classificação de falhas
resposta• computação incorreta, o componente produz respostas
incorretas para algumas entradas– não engloba as anteriores
bizantinas (arbitrárias ou maliciosas)• falha arbitrária que provoca um comportamento
totalmente arbitrário e imprevisível do componente durante o defeito
– engloba todas as classes de falhas
considerada caso especial de bizantinas
![Page 20: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/20.jpg)
Ingrid Jansch Porto 20
respostatemporização
arbitrária
omissãocrash
Classificação de falhas
comportamento totalmente arbitrário e
imprevisível
respostas
incorretas
para algumas entradas
resposta adiantada ou retardada
sem resposta paraalgumas entradas
parada ou perda doestado interno
![Page 21: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/21.jpg)
Ingrid Jansch Porto 21
Exemplos de classes de falhas
– Processador:• crash ou bizantinas
– Rede de comunicação: todos os tipos– Clock:
• temporização ou bizantinas
– Meio de armazenamento• temporização, omissão ou resposta
– Software: resposta
![Page 22: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/22.jpg)
Ingrid Jansch Porto 22
Modelos de falhas
Fred B. Schneider– Failstop (detectável pelos demais)
– Crash (Lamport and Fischer, 1982)
– crash + link (Budhiraja et al., 1992)
– omissão de recepção (Perry and Toueg, 1986)
– omissão de envio (Hadzilacos, 1984)
– omissão geral (Perry and Toueg, 1986)
– comportamento bizantino (Lamport, Shostak and Pease, 1982)
várias classificações diferentes na literatura, mas que não diferem muito das de Cristian e Schneider
![Page 23: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/23.jpg)
Ingrid Jansch Porto 23
Comunicação entre processos
troca de mensagens– SEND e RECEIVE
• primitivas de comunicação e sincronização
RPC (remote procedure call)– mais alto nível que SEND e RECEIVE– interação cliente / servidor
invocação remota de métodos orientação a objetos
![Page 24: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/24.jpg)
Ingrid Jansch Porto 24
Comunicação entre processos
– troca de mensagens• assíncrona• síncrona (sem buffer - CSP)
– troca de mensagens assíncrona• buffer infinito• transmissor nunca bloqueia
– buffered message passing• buffer finito• opera assincronamente até buffer ficar cheio
![Page 25: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/25.jpg)
Ingrid Jansch Porto 25
Comunicação entre processos
RPC– call service (value_args, result_args)– comunicação síncrona
falhas executando RPC– órfãos
• execuções indesejadas de procedimento remoto, ocasionada por defeito durante invocação
– ordem de chamadas
![Page 26: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/26.jpg)
Ingrid Jansch Porto 26
Orientação a objetos
modelo orientado a objetos• outro paradigma de comunicação de alto nível
• atualmente muito popular
– um processo executa um método em um objeto particular
• objeto pode residir em qualquer nodo
• processo envia mensagem ao objeto
• objeto executa uma ação e retorna resultado
![Page 27: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/27.jpg)
Ingrid Jansch Porto 27
Ordenação de eventos
dificuldade de determinar relações temporais– RAZÃO: inexistência de clock global
problema– determinar ordenação temporal de eventos que
ocorrem em nodos diferentes, medidos por relógios diferentes
– relação: a “aconteceu antes de” b : a b
![Page 28: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/28.jpg)
Ingrid Jansch Porto 28
Ordenação de eventos
ordem parcial– se a e b são eventos do mesmo processo e a é
executado antes de b então a b– se a é send e b é receive da mesma mensagem então
a b– a b e b c então a c– eventos concorrentes:
• nem a b, nem b a
![Page 29: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/29.jpg)
Ingrid Jansch Porto 29
Clocks lógicos
Lamport (78)• meio de assinalar um número a um evento
• nenhuma relação com o tempo físico
– sistema de clock lógico• Ci - clock local ao proc Pi, C - sistema de clock
• um sistema de clock lógico é correto se é consistente com a relação
para quaisquer eventos a e b,
se a b então C(a) < C(b)
relógios lógicos
![Page 30: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/30.jpg)
Ingrid Jansch Porto 30
Clocks lógicos
clock lógico– carimba um evento de forma que a relação de
ordem parcial é mantida– pode ser facilmente implementado
• usando contadores
• numerando mensagens com numeração crescente
– exemplo de implementação: timestamp T
a maior parte dos problemas de ordenação podem ser resolvidos com clocks lógicos, sem necessidade de relógios físicos sincronizados
![Page 31: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/31.jpg)
Ingrid Jansch Porto 31
Timestamps
– Pi inclui seu timestamp nas mensagens m que envia• Tm: timestamp da mensagem m
– Duas condições:• cada Pi incrementa Ci entre 2 eventos sucessivos
• recebendo mensagem m com Tm ,Pj torna Cj maior ou igual ao seu valor atual e maior que Tm
Ci - clock local ao processo Pi
![Page 32: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/32.jpg)
Ingrid Jansch Porto 32
Timestamps
– as duas condições asseguram realização da ordem parcial
– implementação:• um contador por nodo é suficiente
• impossível assinalar timestamps consistentes com a relação de ordem parcial puramente usando relógios físicos
• clocks físicos precisariam ser sincronizados para assegurar a relação de ordem parcial
![Page 33: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/33.jpg)
Ingrid Jansch Porto 33
Ordenação total com clock lógico
– relógio lógico pode ser usado para ordenação total (Lamport 78)
• mensagens de diferentes processos podem possuir o mesmo timestamp
• se duas mensagens possuem o mesmo timestamp devem ter sido originadas em diferentes processos
• para estabelecer uma ordem, basta ordenar os processos de alguma forma
a mesma forma de ordenação deve ser seguida por todos os processos
![Page 34: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/34.jpg)
Ingrid Jansch Porto 34
Ordenação total
– uma implementação possível• eventos com mesmo timestamp são ordenados pela
ordem lexicográfica dos nomes dos processos
– preserva a relação de ordem parcial • todos os nodos classificam os eventos na mesma ordem,
• não assegura preservação de ordem temporal dos eventos concorrentes
se a ordem temporal for importante, clocks lógicos não podem ser empregados
![Page 35: Arquitetura de sistemas distribuídos Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc10e497959413d8c4c9e/html5/thumbnails/35.jpg)
Ingrid Jansch Porto 35
Exemplo
p a
p d
p c
p b
a1 a2
b1 b3
ordem parcial preservada
a2
a1 b1 a2 b3
ordem total preservada
b1 a1 b3 a2 Pb recebe a2 após enviar b1
Pb envia b1 antes de Pa enviar a1
a1 b1 a2 b3