Camadas de Serviço de Hardware e Software em Sistemas Distribuídos Arquiteutra de Sistemas Distribuídos Introdução Applications, services Adaptação do conjunto de slides do livro Distributed Systems, Tanembaum, com alguns slides do livro do Coulouris Middleware Operating system Computer and network hardware Platform es Invocando Servidores Individuais Um Serviço Provido por Múltiplos Servidores Service invocation invocation Server Server result Server result Server Key: Process: Computer: Server
Servidores Assistidos por um Proxy Aplicação Peer-to-peer Application Application Proxy server Web server Coordination code Coordination code Web server Application Coordination code Applets na Web es Leves e Servidores de Computação a) e client request interage results com in o servidor the downloading Web e realiza of applet o code download do código do applet Applet code b) client e interacts interage with com the o applet localmente Web server Network computer or PC Thin network Compute server Application Process Applet Web server
Redes Espontâneas Definição de um Sistema Distribuído (1) gateway Music service Alarm service Um sistema distribuído é: Internet Discovery service Hotel wireless network Camera Uma coleção de computadores independentes que aparecem para o usuário como um único sistema coerente. 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).
Transparência em Sistemas Distribuídos Problemas de Escalabilidade Transparência Acesso Localização Migração Relocação Replicação Concorrência Falha Persistência Descrição Esconde diferenças na representação de dados e como um recurso é acessado Esconde onde um recurso está localizado Esconde que um recurso pode mover-se para outra localização Esconde que um recurso pode ser movido para outra localização enquanto esta sendo usado Esconde que um recurso pode ser compartilhado por vários usuários concorrentes Esconde que um recurso pode ser compartilhado por vários usuários concorrentes Esconde a falha e recuperação de um recurso Esconde quando um recurso (software) esta em memória ou em disco Conceito Serviços centralizados Dados centralizados Algoritmos centralizados Exemplo Um únicoservidorparatodososusuários Um único guia telefônico on-line Fazer roteamento basedo em informação completa Exemplos das limitações de escalabilidade. Técnicas de escalabilidade (1) Técnicas de escala(2) 1.4 1.5 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 Um exemplo de divisão espaço de nomes DNS em zonas.
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. Multiprocessadores Multicomputadores Redes de Computadores 1.6 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
Multicomputador Homogêneo Conceitos de Software Sistema Descrição meta 1-9 SOD SOR Middleware Sistemas operacionais fortemente acoplados para multi-processadores e multicomputadores homogêneos Sistemas operacionais fracamente acoplados para multicomputadores heterogêneos (LAN and WAN) Nível adicional em cima do SOR implementando serviços de propósito geral Esconder e gerenciar recursos de hardware Oferecer serviços locais para clientes remotos Prover distribuição transparência a) Grade (Grid) b) Hipercubo Revisão entre: SOD (DOS - Distributed Operating Systems) SOR (NOS - Network Operating Systems) Middleware SO Uniprocessador SO Multicomputador (1) 1.11 1.14 Separação de aplicações do código de SO através de um micronúcleo. Estrutura geral de um SO para um multicomputador
SO Multicomputador (2) SO Multicomputador (3) Pontos de Sincronização Buffer enviante com. confiável guarantida? 1.15 Bloquear enviante até buffer livre Bloquear enviante até mensagem enviada sim não não necessariamente não necessariamente Bloquear enviante até mensagem recebida não Necessario Bloquear enviante até mensagem entregue não Necessario Alternativas para bloquear e bufferizar usando troca de mensagem. Relação entre bloqueio, bufferização e comunicação confiável. Memória Distribuída Compartilhada (1) Memória Distribuída Compartilhada (2) a) Páginas do espaço de endereçamento distribuídas entre 4 máquinas 1.18 b) Situação depois CPU 1 referecia página 10 c) Situação se página 10 é apenas leitura e replicação é usada Falso compartilhamento de página entre 2 processos independentes.
Sistema Operacional de Rede (1) Sistema Operacional de Rede (2) 1-19 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.
Middleware 1.23 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 Serviços de Comunicação: abandona primitiva de passagem de mensagens baseada em sockets em favor de: 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 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 Item Grau de transparência SO Distribuído Multiproc. Muita alta Multicomp. Alta SO rede Baixa SO baseado em Middleware Alta 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 Mesmo SO em todos nodos Numero de cópias de SO Base para comunicação Gerencia recursos Sim 1 Memoria comp. Global, central Sim N Mensagens Global, distribuída Não N arquivos Por nodo Não N Específico do Modelo Por nodo Escalabilidade Não Moderada Sim Variável Abertura Fechado Fechado Aberta aberta Uma comparação entre SO multiprocessador, SO multicomputer, SO rede e SO baseado em middleware.
Modelo e-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. es e Servidores 1.25 Modelo básico Níveis Arquiteturas Interação geral entre clientes e servidores. Um exemplo e / Servidor (1) Um exemplo e / Servidor (2) header.h Servidor, geralmente fornece serviços relacionados a um recurso compartilhado.
Um exemplo e / Servidor (3) Nível de Processamento 1-27 b 1-28 e, permite acesso a serviço remoto (API para serviços) A organização geral de uma máquina de busca na Internet em 3 níveis diferentes Arquiteturas Multitiered (1) Arquiteturas Multitiered (2) 1-29 1-30 Arquiteutras alternativas cliente-servidor Exemplo de um servidor intermediário, agindo como um cliente, delegando a opração para outro servidor.
Arquiteturas Alternativas 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 es 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 Arquiteturas Modernas 1-31 Exemplo de distribuição horizontal de um serviço Web.