acii - sl07 - introducao aos sistemas distribuidos
Post on 27-Jun-2015
8.213 Views
Preview:
DESCRIPTION
TRANSCRIPT
Prof. Rafael Marrocos Magalhães rafael@dce.ufpb.br
Universidade Federal da Paraíba
Centro de Ciências Aplicadas e Educação
Departamento de Ciências Exatas
ACII: Introdução aos Sistemas Distribuídos
17 de Outubro de 2001 UFPB – CCAE - DCE
(R)Evolução na computação
1 - Etapa ! 1945 – 1985
! Dezenas de milhares de $ ! mainframes, minicomputadores ! Isolados, escassos, restritos (donos e aplicações)
! Metade 80` ! Microchips 8 bits – 16, 32, 64 bits ! Poder do mainframe 1/10 $
! 50 anos, evolução assombrosa ! 10 milhões $,1 oper/seg ! Mil $, 1 bilhão inst/ seg
(R)Evolução na computação
2 - Etapa ! Redes de computadores
! ARPANet, outrasNet ! LAN (local)
! 100 milhões bits (MBps) ! 10 bilhões bits (GBps)
! WAN (wides) ! 64 kbps ! Gigabits
Resultados parciais
E daí? ! Tornou-se viável e fácil
! Criar redes com vários computadores ! Conexões em alta velocidade
! Criando: ! Redes de computação ! Sistemas distribuídos
! Sistemas centralizados (monoprocessados) ! Terminais remotos?
Definição
“Um sistema distribuído é um conjunto de computadores independentes que se apresenta a seus usuários como um sistema único e
coerente” ! Componentes (computadores autônomos) ! Usuários (pessoas ou programas)
! Nenhuma premissa, ilusão ! Colaboração entre componentes
CERNE
Características
! Diferenças entre computadores ! Formas como se comunicam ! Organização interna dos SD
! Interação ! Consistente, uniforme (independente do
ponto)
}
oculto aos usuários
Características
! Deveria ser facilmente expansível ! Independência de componentes
! Continuamente disponível ! Queda temporária, consertos ! Substituição ! Inclusão ! Usuário não deveria perceber
Como?
! Dado as características de como criar e conectar ! Computadores heterogêneo ! Redes diversas ! Tecnologias diferentes ! Componentes, linguagens, etc..
Como?
Middleware
Middleware
Metas
Acesso a recursos
Transparência da
distribuição Abertura
Escalabilidade Problemas inerentes
Um SD é realmente necessário? Se sim:
Acesso a recursos
! Facilitar o acesso a recurso remotos e compartilhados aos usuários e às aplicações ! Eficiente ! Controlada
! Quais recursos ! Impressora, arquivos, webpages, etc...
! Porque?? $ Economia $
Acesso a recursos
! WEB ! Comunicação ! Estilo de vida
! Groupware
! Segurança ! Bisbilhotice, senha (texto plano) ! Transmissão e armazenamento
Acesso a recursos
! Privacidade ! Compra com cartão (leitor) ! Rastreamento
! Perfil, propaganda, spam ! Wang, 1998 (artigo)
! Como se proteger ! Filtros, criptografia
Transparência da distribuição
Transparência
! Acesso – Diferenças de sistemas ! Localização – Geografia ! Localização – URL
! http://www.ccae.ufpb.br/ ! Migração – URL ! Realocação – computação móvel ! Replicação – Mídia ! Concorrência – acesso, travas, transações ! Falha – Leslie Lamport, web browser
Grau de transparência
! Considerações ! Desempenho ! Facilidade
! Exemplo do jornal (7 da manhã) ! Localização
! Cidades ! Mãe natureza (tempo limite)
! Sincronismo ! Replicação de dados
Grau de transparência
! Impossível total transparência ! Dissimular que alcançaremos
! Explicitar ao usuário e ao desenvolvedor ! Entendimento do funcionamento ! Não surpreender-se
! Bela meta de desenvolvimento, mas ponderar ! Desempenho e facilidade de
compreensão ! Preço alto
Abertura
! “Um sistema distribuído aberto é um sistema que oferece serviços de acordo com as regras padronizadas que descrevem a sintaxe e a semântica desses serviços”.
! Formato, conteúdo e significado ! Uso da IDL (Interface Definition Language)
! Especificações devem ser completas e neutras. ! Importantes para interoperabilidade e
portabilidade. ! Fornecedores, confiança ! Sistema a, b, ...
! O sistema distribuído deve ser extensível.
Abertura
! Necessário separar política e mecanismo. ! Muitos sistemas mais antigos e outros
contemporâneos são construídos com uma abordagem monolítica.
! Em uma abordagem relativamente nova é crucial que o sistema seja organizado como um conjunto de componentes relativamente pequenos e de fácil distribuição.
! Cache ! Política, mecanismo ! Horário de trens ! Condições climáticas de tráfego
Escalabilidade
! Mais importante meta ! Dimensões de escalabilidade (Neuman,
1994) ! Tamanho ! Geográfico ! Administrativos
! E o desempenho?
Escalabilidade
! Problemas de escalabilidade ! Tamanho
Escalabilidade
! Problemas de escalabilidade ! Tamanho ! As vezes necessário
! Centralizado (Confidenciabilidade) – Histórico médico – Banco
! Agenda de telefones – 50 milhões (2,5 GB)
! Informação instantânea – Algoritmos melhores
Escalabilidade
! Problemas de escalabilidade ! Tamanho ! Algoritmo descentralizados
! Nenhuma máquina tem informações completas sobre o estado do sistema
! As máquinas tomam decisões tendo como base somente informações locais
! A falha de uma máquina não arruína o algoritmo
! Não há nenhuma premissa implícita quanto à existência de um relógio global
Escalabilidade ! Problemas de escalabilidade
! Geográfico ! Comunicação síncrona
– Cliente/bloqueio/servidor/desbloqueio ! Confiabilidade
– Ponto-a-ponto – <> LAN (broadcast) facilita
! Componente centralizados – Servidor de e-mail
! Domínios administrativos – Utilização (recursos, gerenciamento,
segurança, pagamento) – Expansão para outros domínios
Escalabilidade
! Técnicas de escalabilidade ! Devidos basicamente a capacidades limitada
de servidores ! Três tipos (Neuman, 1994)
! Ocultar latências ! Distribuição ! Replicação
Escalabilidade
! Técnicas de escalabilidade ! Ocultar latências
! Comunicações assíncronas – Evita paradas bruscas – Ñ app. Interativas
» Redução de comunicação » Partição do processamento » Exemplo do formulário
Escalabilidade ! Técnicas de escalabilidade
! Ocultar latências
Escalabilidade
! Técnicas de escalabilidade ! Distribuição
! Sub-dividir em componentes menores
! Distribuí-lo através do sistema ! Exemplo típico DNS
Escalabilidade
! Técnicas de escalabilidade ! Distribuição (Exemplo típico DNS)
Escalabilidade
! Técnicas de escalabilidade ! Replicação
! Aumenta a disponibilidade ! Equilibra a carga entre componentes ! Cache caso especial
– Cliente não desenvolvedor – Demanda e não planejado
! Problemas de consistência ! Natureza (3x10^8 m/s) fotons
Escalabilidade
! Técnicas de escalabilidade ! Tamanho
! Mais ou melhores equipamentos – Solução temporária e custosa
! Geográfica ! Mãe natureza
! Replicação ! Consistência
! Administrativas ! Problemas não técnicos (polít.)
Ciladas
! Premissas falsas adotadas ao desenvolver uma aplicação distribuída pela primeira vez
1. A rede é confiável 2. A rede é segura 3. A rede é homogênea 4. A topologia não muda 5. A latência é zero 6. A largura da banda é infinita 7. O custo de transporte é zero 8. Há apenas um administrador
Tipos
! Tipos de Sistemas Distribuídos ! Sistemas de computação distribuídos ! Sistemas de informação distribuídos ! Sistemas embutidos distribuído
Sistemas de Computação Distribuídos
! Tarefas de computação de alto desempenho ! Computação em cluster
! Homogeneidade ! Rede
! Computação em grade (grid) ! Federações de computadores ! Domínios administrativos diferentes ! Heterogeneidade
Sistemas de computação distribuídos
! Sistemas de computação em cluster ! Preço/desempenho ! Hardware de prateleira ! Rede de alta velocidade (100/MB) ! Único programa ! NASA 1991 ! Sistema Beowulf ! Outros sistemas
Sistemas de computação distribuídos
! Sistemas de computação em cluster ! Cluster
! Conjunto de nós ! Master/Slave (Mestre/Escravo) ! Papel do slave ! Papel do master ! Middleware
– Sistema operacional padrão
Sistemas de computação distribuídos
! Sistemas de computação em cluster ! Cluster
Sistemas de computação distribuídos
! Sistemas de computação em cluster ! Cluster
! Bibliotecas de comunicação ! Ñ segurança, falhas, ... ! Hierárquico
! Mosix ! Não hierárquica ! Simetrismo ! Transparência (sistema único) ! Migração (nó nativo)
Sistemas de computação distribuídos
! Sistemas de computação em grade ! Cluster – homogêneo ! Contraponto – alta heterogeneidade ! Sem premissas de hardware, S.O.,
redes, domínios administrativos, política de segurança, ...
! Organização virtual ! Supercomputadores, redes, DBs,
etc...
Sistemas de computação distribuídos
! Sistemas de computação em grade ! Arquitetura (Foster, 2001) ! 4 camadas
! Camada-base – Camada de conectividade – Camada de recursos
! Camada coletiva ! Camada de aplicação
Sistemas de computação distribuídos
! Sistemas de computação em grade ! Arquitetura (Foster, 2001)
Sistemas de computação distribuídos
! Sistemas de computação em grade ! Arquitetura (Foster, 2001) ! Arquitetura de serviços de grade aberta
! OGSA (Open Grid Services Architecture)
! CERN ! GRID Mundial
! OurGrid
Sistemas de Informação distribuídos
! Sistemas de processamento de transações ! Operações iniciais ! Agrupamento de operações
! Transações distribuídas ! Empacota várias requisições de
programas clientes em uma transação distribuída.
! Sistemas de aplicações empresariais ! Integração de aplicações empresariais
(EAI)
Sistemas embutidos distribuídos ! Sistemas distribuídos pervasivos
! Localização ! Estável <> Móvel
! Móvel e embutido ! Pequeno tamanho, alimentação por
bateria, mobilidade, conexão sem fio ! Ñ significa restritivo (smartphone)
! Não possui controle administrativo humano ! Adotar mudanças contextuais ! Incentivar composição ad hoc ! Reconhecer compartilhamento como
padrão
Sistemas distribuídos embutidos
! Sistemas domésticos ! TV ! Computadores ! Players (vídeo, jogos, informação) ! Convergência ! PDA ! Fone
! UPnP – Universal Plug and Play ! 802.x (conectividade)
Sistemas distribuídos embutidos
! Sistemas eletrônicos para tratamento de saúde ! BAN (body-area Network)
Sistemas distribuídos embutidos ! Redes de Sensores
Dúvidas
top related