24ªJornadaAMINT (AdrianoStarling's Conflicted Copy 2010-11-05)
Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)
-
Upload
josimarmm01 -
Category
Documents
-
view
1 -
download
0
description
Transcript of Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)
Conceitos e Arquiteturas
Grande porte físico limitações para acomodação
Grande consumo de energia sala especial, refrigeração
SO único dependência do fabricante
Terminais sem capacidade de processamento (“burros”)
Computadores com grande capacidade de processamento (mainframes)
...passado...passado
Motivação
Computadores diversos, todos com capacidade de processamento◦ Portes diversos◦ SOs diversos◦ Redes diversas
(Ethernet, ATM, com fio, sem fio...)
◦ Internet
A realidade dos últimos tempos...A realidade dos últimos tempos...Motivação
Dividindo para conquistar!!!Dividindo para conquistar!!!
A
B
C
D
Programa modularizado
Execução sequencial ou concorrente (threads)
distribuir
Motivação
Dividindo para conquistar!!!Dividindo para conquistar!!!
A
B
C
D
Programa modularizado
A
B
C
D
Motivação
Distribuindo...
Programa distribuído
Componentes interligados (comunicação)
Processamento (computação) distribuído ou paralelo
Dividindo para conquistar!!!Dividindo para conquistar!!!
A
C
D
B
Motivação
Pode ser mais confiável: toda função pode ser replicada◦ Quando um processador falha, outro pode continuar o
trabalho◦ Se um disco dá crash, arquivos gravados também em
outros discos não são perdidos Várias computações podem ser realizadas em
paralelo: um sistema distribuído pode realizar mais na mesma quantidade de tempo
Pode-se considerar tolerância a falha e possibilidade de paralelismo como as propriedades fundamentais de um sistema distribuído
Lamport: “Um sistema distribuído é aquele que faz você parar de ter o trabalho realizado quando uma máquina da qual você nunca ouviu falar falha”
Mais seriamente, Tanenbaum e van Renesse (1985):Um sistema (operacional) distribuído é aquele que aparece para os usuários como um sistema (operacional) centralizado ordinário, mas que executa em múltiplas CPUs independentes.O conceito chave é transparência, ou seja, o uso de múltiplos processadores deve ser invisível (transparente) para o usuário.Pode-se dizer que o sistema é visto como um “uniprocessador virtual”, e não como uma coleção de máquinas distintas.
“Coleção de computadores independentes que aparecem para os usuários do sistema como um único computador.” (Tanenbaum & van Steen)
“Um sistema em que componentes de hardware e software localizados em computadores em rede se comunicam e coordenam suas ações por passagem de mensagens.” (Coulouris et al)
Vários componentesConectados via uma redeCompartilhando recursosTransparência
• “Uma coleção de elementos de processamento interconectados, tanto logicamente como fisicamente, para execução cooperativa de programas de aplicação com o controle geral dos recursos centralizado.” (M. Eckhouse)
Pessoas são distribuídas, informação é distribuída◦ Desejo de comunicar e compartilhar informações
e recursosRelação desempenho/custoModularidadeExpansibilidade
◦ Sistemas distribuídos são capazes de crescimento incremental
Disponibilidade◦ SDs têm capacidade de replicação e redundância
Escalabilidade◦ Idealmente, sistemas distribuídos não devem ter
qualquer componente centralizado (cuja capacidade impõe limites para o tamanho máximo de um sistema), tal que a restrição ao crescimento não deve existir
Confiabilidade◦ Disponibilidade é apenas um aspecto de
confiabilidade◦ O sistema deve ser capaz de se recuperar de
falhas
Complexidade limita o que pode ser construído Schroeder chama os problemas causados pela
complexidade de problemas de sistema:◦ Interconexão: um grande número de problemas de
sistemas acontece quando componentes que antes operavam independentemente são interconectados
◦ Interferência: dois componentes de um sistema, cada um com comportamento razoável quando observados em isolamento, podem exibir comportamento indesejável quando combinados
◦ Propagação de efeito: “efeito cascata” de falhas pode derrubar um sistema inteiro se não houver cuidados no projeto
◦ Efeitos de escala: um sistema que funciona bem com 10 nós pode falhar se crescer para centenas de nós
◦ Falha parcial Grande diferencial de sistemas distribuídos em
relação a sistemas centralizados, tradicionais Fonte considerável de complexidade no projeto de
aplicações tolerantes a falhas
Sistemas distribuídos são complexos porque o que eles têm que fazer é complexo
Exemplos:1. Gerenciamento do escalonamento de trens em uma
rede em que passageiros têm que trocar de trens para chegar em seus destinos – o problema da sincronização
2. Sistema de arquivos distribuídos É preciso prever aspectos como autenticação, controle de
acesso, controle de concorrência etc. Complexidade ainda maior quando há os requisitos de alta
disponibilidade e tolerância a falhas Aspectos como mecanismos de localização de arquivo,
coordenação de estado de servidor replicado, mecanismos de recuperação de falhas parciais etc.
A solução simples nem sempre pode ser usada – às vezes é cara demais!
Exemplo:◦ Em uma rede de longa distância, interconectar todos os
pontos (nós) seria a solução mais simples, porém extremamente cara!
◦ A solução mais barata é fazer uma rede em que todos os nós são alcançáveis, porém não necessariamente de forma direta O custo dessa solução é mais baixo, porém a complexidade é
bastante aumentada: são necessários algoritmos de roteamento, “buferização” para gerenciar o tráfego multiplexado, mecanismos de controle de fluxo para prevenir congestionamento
etc.
Distribuição
Comunicação
Complexidade
Heterogeneidade
Transparência
demandam
A maioria dos (grandes) sistemas (reais) de hoje precisam de comunicação
Os sistemas precisam ser modularizados para melhor legibilidade e menor complexidade no desenvolvimento
Do ponto de vista do usuário e do programador de aplicação, é preciso transparência
Tolerância a falha e possibilidade de paralelismo são propriedades fundamentais de um sistema distribuído
Boa relação desempenho/custo é um desafio alcançável
Continua...
Características-chave:◦ Escalabilidade◦ Confiabilidade (disponibilidade, tolerância a falhas,
segurança,...) Falha parcial é um grande diferencial de
sistemas distribuídos em relação a sistemas centralizados/tradicionais, mas também é fonte considerável de complexidade
Do ponto de vista de software, é preciso agregar outras funcionalidades às que os sistemas operacionais convencionais oferecem para dar suporte adequado a sistemas distribuídos
Características, Objetivose
Modelos Arquiteturais
Conjunto de máquinas autônomasInterconectadas por canais de comunicaçãoComunicando-se por troca de mensagensIndependência de falhas (falhas parciais)
• Ausência de relógio global• Ausência de estado global• Estado compartilhado da aplicação
(através de comunicação)
Conexão de usuários e recursos◦ Desejo de comunicar e compartilhar informações
e recursos
Transparência
Escalabilidade (scalability)
Abertura (openness)
Eficiência – desempenho produtivoConveniência – utilidade e aplicabilidadeRobustez – resistência a falha
◦ Disponibilidade: o sistema está no ar quando preciso (instante de tempo)
◦ Confiabilidade: o sistema não falha por um longo período de tempo E quando falha, a falha não provoca uma
“catástrofe”
Consistência – mesma visão de dadosTransparência
Localização: esconde onde o recurso está localizado Acesso: operações idênticas para acesso local e remoto Migração: esconde que um recurso pode se mover para
outra localização Relocação: esconde que um recurso pode ser movido para
outra localização enquanto está em uso Concorrência: compartilhamento de recursos sem
interferência entre processos concorrentes Falha: esconde a falha e recuperação de um recurso Replicação: esconde de usuários ou programadores de
aplicação a existência de réplicas de recursos
Capacidade de um sistema poder ser estendido (hw, sw) e de interoperar com outros sistemas
Resulta da especificação de interfaces, de tornar as especificações públicas e de padronizá-las
Especificações podem ser◦ padrões estabelecidos por organização de padronização◦ padrões estabelecidos pelo uso (de fato)
Conceito Exemplo
Serviços centralizados Um único servidor para todos os usuários
Dados centralizados Uma única lista telefônica on-line
Algoritmos centralizados
Roteamento baseado em informação completa
Um sistema continuará eficaz mesmo havendo um aumento significativo no número de recursos e de usuários
Desafios:◦ Controlar o custo de recursos◦ Controlar a perda de desempenho◦ Prevenir que os recursos acabem (ex., endereços
IP)
Heterogeneidade
Transparência
Tolerância a Falhas
Segurança
Escalabilidade
Concorrência
Abertura
Cliente-ServidorPeer-to-Peer
Objetos Distribuídos
Estrutura em termos de componentes especificados separadamente
Inter-relações de componentes
Divisão de responsabilidades entre componentes
… invocation
invocation
Results
Results
Clients
Server
… invocation
invocation
Results
Results
ClientsService
Servidor Único Múltiplos Servidores
Vantagens de C/S
Melhor relação preço/desempenhoequipamentos mais baratosMaior facilidade de expansãoexpansão incremental dos serviçosÉ possível adotar soluções abertasintegrar soluções de diferentes fabricantesMenor impacto das falhasfalhas afetam somente parte do sistema
Desvantagens de C/S Software mais complexo é preciso quebrar a aplicação em partes Problemas de saturação da rede Maior dependência do meio de
comunicação interações devem ser bem projetadas Aspectos de segurança mais críticos dados confidenciais circulam na rede necessidade de criptografia
Uma aplicação distribuída pode ser vista como um conjunto de objetos
Objetos:◦ Consistem de dados + código◦ Podem ser clientes, servidores ou ambos◦ Interface esconde detalhes de implementação◦ Modelar com objetos não implica no uso de
programação orientada a objetos
Tanenbaum
and van Steen. Distributed System
s: Principles and Paradigms
© Prentice Hall 2002
Observe a separação entre interface e objeto
Interface local
Objeto remoto
Variações do Modelo C/S
Client
Proxy
Web
server
Web
server
serverClient
a) client request results in the downloading of applet code
Web server
ClientWeb serverApplet
Applet code
Client
b) client interacts with the applet
Agentes Móveis
Coordination
Application
code
Coordination
Application
code
Coordination
Application
code
Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Alguns tradeoffs devem ser considerados para selecionar a arquitetura mais apropriada, incluindo:◦ O crescimento potencial do número de usuários,◦ Custo e◦ Homogeneidade do ambiente computacional
futuro e do momento◦ Reatividade esperada◦ Taxa de rendimento (throughtput)◦ Balanceamento de carga◦ Qualidade de serviço◦ Tolerância a falhas◦ Segurança
Modelos fundamentaisModelos de interação C/S, variações, peer-to-peer Sincronizado, não sincronizado Ordenação de eventosModelos de falha Falhas por omissão Falhas de temporização Falhas arbitrárias Detecção, recuperação ou mascaramento de falhasModelos de segurança Proteção, anulação de ameaças Criptografia, autenticação
Infra-estruturas paraSistemas Distribuídos
Sistemas Operacionais Distribuídos
Sistemas Operacionais de Rede
Middleware
Hardware é importante para sistemas distribuídos...
Software é o que melhor diferencia sistemas distribuídos
Sistemas distribuídos são como sistemas operacionais tradicionais◦ Atuam como gerentes de recursos, permitindo que
múltiplos usuários ou aplicações compartilhem CPUs, memórias, periféricos, rede e dados
◦ Tentam esconder a heterogeneidade e complexidade do hardware (remoto, principalmente) ao fornecer uma máquina virtual (software) onde aplicações podem ser executadas mais facilmente
Fortemente acoplados◦ Tentam manter visão única e global dos recursos
gerenciados
Fracamente acoplados◦ Coleção de computadores, cada um executando
seu próprio sistema operacional◦ No entanto, estes sistemas operacionais
trabalham juntos para tornar os serviços e recursos de uns disponíveis aos outros
Sistemas operacionais fortemente acoplados para sistemas (computadores e programas) distribuídos, geralmente, são chamados de sistemas operacionais distribuídos (SODs) – visão única e global dos recursos
Sistemas operacionais fracamente acoplados são os sistemas operacionais de rede (SORs) – cada computador executando seu próprio SO, e vice-versa, um SO completo para cada computador
Para melhor suporte à transparência de distribuição são necessários melhoramentos ou serviços adicionais aos serviços de SORs, principalmente◦ Estes adicionamentos levaram ao chamado middleware
Sistema Descrição Principal objetivo
SOD SO fortemente acoplado para multi-processadores e multicomputadores homogêneos
Esconder e gerenciar recursos de hardware
SOR SO fracamente acoplado para multicomputadores heterogêneos (LAN/WAN)
Oferecer serviços locais para clientes remotos
Middleware Camada adicional sobre um SOR Prover transparência de distribuição
SODs
Aplicações compartilham recursos e por isso precisam ser protegidas umas das outras◦ Ex: sejam aplicações A e B executando ao mesmo tempo,
A não pode alterar os dados de B simplesmente acessando a parte da memória onde os dados estão armazenados – conceito de espaço de endereçamento
Aplicações têm que usar apenas facilidades oferecidas pelo SO◦ Ex: uma aplicação não pode copiar mensagens
diretamente para uma interface de rede. Em vez disso, o SO oferece primitivas de comunicação
Sistema operacional multi-processador◦ Gerencia recursos de um multiprocessador
Sistema operacional multi-computador◦ Para multicomputadores homogêneos
A funcionalidade de SODs é essencialmente a mesma de SOs tradicionais/convencionais, exceto que SODs manipulam múltiplas CPUs
Objetivo: alto desempenho através de múltiplos processadores – o número de CPUs deve ser transparente para a aplicação
Suporte a múltiplos processadores com acesso a uma memória compartilhada
Proteção contra acesso concorrente para garantir consistência, através de primitivas de sincronização◦ Semáforo◦ Monitor
Não há compartilhamento de memória, mas sim comunicação – comunicação confiável é um aspecto importante e complexo
Exemplos de SODs
Amoebahttp://www.cs.vu.nl/pub/amoeba/
Mach
Chorus
SOR
Em SORs, serviços estão disponíveis em máquinas distintas
Login remoto (rlogin)Cópia remota (rcp)
◦ É preciso saber onde (máquinas) os arquivos se localizam...
Pouca transparência!
Escalabilidade e abertura – SORs
Transparência e uso mais fácil – SODs
NomeaçãoPersistênciaTransaçõesSegurança....
Sistemas homogêneosTransparência de distribuiçãoAlto desempenhoMemória compartilhadaControle de concorrência
Sistemas heterogêneosTransparência de distribuição e comunicaçãoServiçosAbertura
Sistemas heterogêneosPouca transparênciaEscalabilidadeComunicação