1. 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
Prof. Rafael Marrocos Magalhães
rafael@dce.ufpb.br
17 de Outubro de 2001 UFPB – CCAE - DCE
2. (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
3. (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
4. 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?
5. 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
6. Características
}
! Diferenças entre computadores
! Formas como se comunicam
! Organização interna dos SD
oculto aos
usuários
! Interação
! Consistente, uniforme (independente do
ponto)
7. 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
8. Como?
! Dado as características de como criar e
conectar
! Computadores heterogêneo
! Redes diversas
! Tecnologias diferentes
! Componentes, linguagens, etc..
11. Metas
Um SD é realmente necessário?
Se sim:
Transparência
Acesso a
da Abertura
recursos
distribuição
Problemas
Escalabilidade
inerentes
12. 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 $
13. Acesso a recursos
! WEB
! Comunicação
! Estilo de vida
! Groupware
! Segurança
! Bisbilhotice, senha (texto plano)
! Transmissão e armazenamento
14. Acesso a recursos
! Privacidade
! Compra com cartão (leitor)
! Rastreamento
! Perfil, propaganda, spam
! Wang, 1998 (artigo)
! Como se proteger
! Filtros, criptografia
17. 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
18. 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
19. 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.
20. 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
21. Escalabilidade
! Mais importante meta
! Dimensões de escalabilidade (Neuman,
1994)
! Tamanho
! Geográfico
! Administrativos
! E o desempenho?
23. 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
24. 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
25. 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
26. Escalabilidade
! Técnicas de escalabilidade
! Devidos basicamente a capacidades limitada
de servidores
! Três tipos (Neuman, 1994)
! Ocultar latências
! Distribuição
! Replicação
27. 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
29. Escalabilidade
! Técnicas de escalabilidade
! Distribuição
! Sub-dividir em componentes
menores
! Distribuí-lo através do sistema
! Exemplo típico DNS
31. 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
32. 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.)
33. 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
34. Tipos
! Tipos de Sistemas Distribuídos
! Sistemas de computação distribuídos
! Sistemas de informação distribuídos
! Sistemas embutidos distribuído
35. 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
36. 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
37. 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
39. 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)
40. 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...
41. 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
42. Sistemas de computação distribuídos
! Sistemas de computação em grade
! Arquitetura (Foster, 2001)
43. 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
44. 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)
45. 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