1 Introdução Camadas de Serviço de Hardware e Software em

Propaganda
Camadas de Serviço de Hardware e Software em
Sistemas Distribuídos
Arquiteutra de Sistemas Distribuídos
Applications, services
Introdução
Middleware
Adaptação do conjunto de slides do livro
Distributed Systems, Tanembaum, com alguns
slides do livro do Coulouris
Operating system
Platform
Computer and network hardware
Clientes Invocando Servidores Individuais
Um Serviço Provido por Múltiplos Servidores
Service
Client
invocation
invocation
Server
Server
Client
result
Server
result
Server
Client
Key:
Process:
Computer:
Client
Server
1
Servidores Assistidos por um Proxy
Web
server
Client
Proxy
server
Aplicação Peer-to-peer
Application
Application
Coordination
code
Coordination
code
Web
server
Client
Application
Coordination
code
Applets na Web
Clientes Leves e Servidores de Computação
a) Cliente
client request
results
the downloading
of applet
interage
com in
o servidor
Web e realiza
o code
download do código do applet
Client
Applet code
Web
server
Thin
Client
b) client
Clienteinteracts
interagewith
comthe
o applet localmente
Client
Applet
Compute server
Network computer or PC
network
Application
Process
Web
server
2
Redes Espontâneas
Music
service
gateway
Definição de um Sistema Distribuído (1)
Um sistema distribuído é:
Alarm
service
Internet
Uma coleção de computadores
independentes que aparecem
para o usuário como um
único sistema coerente.
Hotel wireless
network
Discovery
service
Camera
TV/PC
Laptop
PDA
Guests
devices
Definição de um Sistema Distribuído(2)
1.1
Um sistema distribuído organizado como middleware.
Metas de Sistemas Distribuídos (2)
• Um sistema distribuído tem como meta principal facilitar
o acesso do usuário a recursos remotos e compartilhar
estes recursos com outros usuários de uma forma
controlada (Conectar recursos e usuários).
• Meta importante de um SD é esconder o fato de que
seus processos e recursos estão fisicamente
distribuídos através de vários computadores
(Transparência).
• Outra meta importante em SD é Abertura. Um SD
aberto é um sistema que oferece serviços de acordo
com regras padrões.
• Meta de projeto importante em SD diz respeito a
capacidade de crescimento do sistema
(Escalabilidade).
3
Transparência em Sistemas Distribuídos
Transparência
Problemas de Escalabilidade
Descrição
Acesso
Esconde diferenças na representação de dados e
como um recurso é acessado
Localização
Esconde onde um recurso está localizado
Migração
Esconde que um recurso pode mover-se para outra
localização
Serviços centralizados
Um único servidor para todos os usuários
Relocação
Esconde que um recurso pode ser movido para outra
localização enquanto esta sendo usado
Dados centralizados
Um único guia telefônico on-line
Replicação
Esconde que um recurso pode ser compartilhado por
vários usuários concorrentes
Algoritmos centralizados
Fazer roteamento basedo em informação
completa
Concorrência
Esconde que um recurso pode ser compartilhado por
vários usuários concorrentes
Falha
Esconde a falha e recuperação de um recurso
Persistência
Esconde quando um recurso (software) esta em
memória ou em disco
Técnicas de escalabilidade (1)
1.4
a) Distribuição : dividir dados e computações nas máquinas
b) Replicação : fazer cópias disponíveis em várias máquinas
c) Caching : permitir processos clientes acessar cópias locais
Conceito
Exemplo
Exemplos das limitações de escalabilidade.
Técnicas de escala(2)
1.5
Um exemplo de divisão espaço de nomes DNS em zonas.
4
Conceitos de Hardware
Multiprocessadores e Multicomputadores
• Diferentes organizações do hardware podem ser consideradas
para SDs especialmente com relação a forma de interconexão e
comunicação.
1.6
• Multiprocessadores
• Multicomputadores
• Redes de Computadores
Diferentes organizações basicas: memória compartilhada X
privada e interconexão barramento X chaveamento
Multiprocessadores (1)
Multiprocessadores (2)
1.7
1.8
Um multiprocessor baseado em barramento.
a) crossbar
b) omega
5
Multicomputador Homogêneo
Conceitos de Software
Sistema
1-9
a) Grade (Grid)
b) Hipercubo
SO Uniprocessador
1.11
• Separação de aplicações do código de SO através
de um micronúcleo.
Descrição
meta
SOD
Sistemas operacionais fortemente acoplados
para multi-processadores e
multicomputadores homogêneos
Esconder e
gerenciar recursos
de hardware
SOR
Sistemas operacionais fracamente acoplados
para multicomputadores heterogêneos (LAN
and WAN)
Oferecer serviços
locais para
clientes remotos
Middleware
Nível adicional em cima do SOR
implementando serviços de propósito geral
Prover distribuição
transparência
Revisão entre:
• SOD (DOS - Distributed Operating Systems)
• SOR (NOS - Network Operating Systems)
• Middleware
SO Multicomputador (1)
1.14
Estrutura geral de um SO para um multicomputador
6
SO Multicomputador (2)
SO Multicomputador (3)
Pontos de Sincronização
1.15
Alternativas para bloquear e bufferizar usando troca de mensagem.
Memória Distribuída Compartilhada (1)
a)
Páginas do
espaço de
endereçamento
distribuídas entre
4 máquinas
b)
Situação depois
CPU 1 referecia
página 10
c)
Situação se
página 10 é
apenas leitura e
replicação é usada
Buffer
enviante
com. confiável
guarantida?
Bloquear enviante até buffer livre
sim
não necessariamente
Bloquear enviante até mensagem enviada
não
não necessariamente
Bloquear enviante até mensagem recebida
não
Necessario
Bloquear enviante até mensagem entregue não
Necessario
Relação entre bloqueio, bufferização e comunicação confiável.
Memória Distribuída Compartilhada (2)
1.18
Falso compartilhamento de página entre 2 processos independentes.
7
Sistema Operacional de Rede (1)
1-19
Sistema Operacional de Rede (2)
1-20
Estrutura geral de SOR.
Dois clientes e um servidor em um SOR.
Sistema Operacional de Rede (3)
Middleware
1-22
1.21
Diferentes clientes podem montar os servidores em diferentes lugares.
Estrutura geral de um sistema distribuído com middleware.
8
Middleware
Middleware
• Serviços de Comunicação: abandona primitiva de passagem de
mensagens baseada em sockets em favor de:
1.23
–
–
–
–
–
chamadas de procedimentos através da rede
invocação de métodos remotos
sistemas de fila de mensagens
comunicação com streams
serviço de notificação de eventos
• Serviços de sistemas de informação: serviços que ajudam
gerenciar dados em SDs:
–
–
–
–
serviços de nomes
serviços de diretório (máquinas de busca)
serviços de localização
cache e replicação
• Em um sistema distribuído aberto baseado em middleware, os
protocolos usados por cada middleware deveriam ser os mesmos,
assim como as interfaces que eles oferecem para as aplicações.
Middleware
Comparação entre Sistemas
• Serviços de Controle: serviços para dar a aplicação controle
sobre quando, onde e como acessar dados:
– processamento de transações distribuídas
– migração de código
• Serviços de segurança: serviços para comunicação e
processamento seguro:
– serviços de autenticação e autorização
– serviços de criptografia
– serviços de auditoria
Item
Grau de transparência
Mesmo SO em todos
nodos
Numero de cópias de
SO
Base para comunicação
Gerencia recursos
Escalabilidade
Abertura
SO rede
SO baseado
em
Middleware
Alta
Baixa
Alta
Sim
Sim
Não
Não
1
N
N
N
SO Distribuído
Multiproc.
Multicomp.
Muita alta
Memoria
comp.
Mensagens
arquivos
Específico do
Modelo
Global,
central
Global,
distribuída
Por nodo
Por nodo
Não
Moderada
Sim
Variável
Fechado
Fechado
Aberta
aberta
Uma comparação entre SO multiprocessador, SO
multicomputer, SO rede e SO baseado em middleware.
9
Modelo Cliente-Servidor
• Questão central na organização de SDs diz respeito a como
organizar os processos no sistema. Existe uma certa
concordância em pensar em termos de clientes que requisitam
serviços de servidores.
Clientes e Servidores
1.25
– Modelo básico
– Níveis
– Arquiteturas
Interação geral entre clientes e servidores.
Um exemplo Cliente / Servidor (1)
header.h
Um exemplo Cliente / Servidor (2)
• Servidor, geralmente fornece serviços relacionados a um recurso
compartilhado.
10
Um exemplo Cliente / Servidor (3)
Nível de Processamento
1-27 b
1-28
• Cliente, permite acesso a serviço remoto (API para serviços)
Arquiteturas Multitiered (1)
1-29
Arquiteutras alternativas cliente-servidor
• A organização geral de uma máquina de busca na
Internet em 3 níveis diferentes
Arquiteturas Multitiered (2)
1-30
Exemplo de um servidor intermediário, agindo como um cliente, delegando a
opração para outro servidor.
11
Arquiteturas Alternativas
Arquiteturas Modernas
• Servidores cooperantes: serviço esta fisicamente
distribuído em uma coleção de servidores:
–
–
–
–
–
arquiteturas multi-tiered tradicionais
sistemas de arquivos replicados
serviço de news
serviços de nomes (DNS, X.500)
serviços financeiros
1-31
• Clientes cooperantes: aplicação distribuída existe em
virtude da colaboração de clientes:
– teleconferência onde cada cliente tem uma estação
– arquiteturas publica/subscreve nas quais o papel do cliente e servidor é
confundido
Exemplo de distribuição horizontal de um serviço
Web.
12
Download