3. Conceito Formal
Definimos um sistema distribuído como sendo aquele no qual
os componentes de hardware ou software, localizados em
computadores interligados em rede, se comunicam e coordena
suas ações apenas enviando mensagens entre si.
[Coulourus, G.; Dollimore, J.; Kindberg, T. Sistemas Distribuídos Conceitos e
Projeto]
4. Consequências da Definição
✔
Concorrência: Execução concorrente de programas. A
capacidade de execução concorrente pode ser ampliada com a
adição de novos computadores ao sistema.
✔
Inexistência de um relógio global: Quando os programas
precisam cooperar, eles coordenam suas ações através da
troca de mensagens;
✔
Falhas independentes: Falhas são inerentes. Cada
componente do sistema pode falhar independentemente,
deixando a inda os outros em funcionamento;
5. Uma Breve Introdução
Os sistemas distribuídos podem ainda ser definidos como :
✔
Uma coleção de computadores independentes que aparecem
para o usuário como um único sistema;
✔
Sistemas autônomos interconectados por uma rede de
comunicação;
✔
Processadores distribuídos cooperando para execução de
processos, compartilhamento de recursos;
✔
Um sistema distribuído organizado como middleware, onde o
nível de middleware abrange múltiplas maquinas.
7. Exemplos de Sistemas Distribuídos
A Internet
- Os protocolos permitem que um programa em
execução em qualquer lugar envie mensagens para
programas em qualquer outro lugar
- Conjunto de serviços aberto, ou seja, pode ser
ampliado com a adição de novos computadores e
servidores e novos tipos de serviço
9. Exemplos de Sistemas Distribuídos
Intranets
- Parte da Internet administrada separadamente
- Composta por várias redes locais interligadas por
backbones
- Tamanho pode variar desde um único site a
múltiplos sites.
11. Exemplos de Sistemas Distribuídos
Computação Móvel e Ubíqua
- Exemplos: notebooks, PDA, telefones móveis,
dispositivos incorporado em aparelhos como
máquinas de lavar, carros, geladeiras, etc..
- Computação Móvel é a capacidade de um
dispositivo computacional e os serviços associados
ao mesmo serem móveis, permitindo este ser
carregado ou transportado mantendo-se conectado a
rede ou a Internet.
- Computação Ubíqua é a capacidade de estar
conectado à rede e fazer uso da conexão a todo o
momento
13. Compartilhamento de Recursos
Principal motivação para criação de SD's.
- Exemplos de recursos: hardware, dados, sistemas
Na Web, os recursos são publicados através de URL
(Uniform Resource Locator)
http://www.cdk4.net
http://www.w3.org/Protocols/Activity.html#intro
http://www.google.com/search?q=kindberg
Nome do Nome do Caminho Consulta Fragmento
Servidor DNS
www.cdk4.net (padrão) (nenhuma) (nenhum)
www.w3.org Protocols/Activity.html (nenhuma) intro
www.google.co search q=kindberg (nenhum)
m
14. Desafios
1. Heterogeneidade
SD devem permitir acesso a um conjunto
heterogêneo de computadores e redes.
Se aplica à:
✔
Redes
✔
Hardware de computador
✔
Sistemas Operacionais
✔
Linguagens de programação
✔
Implementação de diferentes programadores
Middleware (corba)
Heterogeneidade e migração de código (java)
15. Desafios
2. Sistemas Abertos
De forma resumida: Principais interfaces são
publicadas.
Exemplo: RFC's para os protocolos de Internet
SD abertos podem ser construídos a partir de
hardware e software heterogêneo, possivelmente de
diferentes fornecedores.
16. Desafios
3. Segurança
Baseada em três componentes:
✔
Confidencialidade
✔
Integridade
✔
Disponibilidade
Dois problemas ainda não resolvidos:
✔
Ataque de negação de serviço (Denial of Service):
interrupção de serviço
✔
Segurança de código móvel: Aplicativo que é
entregue ao usuário
17. Desafios
4. Escalabilidade
Um sistema é descrito com escalável se
permanece eficiente quando há um aumento
significativo no número de recursos e no número de
usuários.
✔
Controlar o custo dos recursos físicos
✔
Controlar a perda de desempenho
✔
Impedir que os recursos de software se esgotem:
Exemplo: IPv4
✔
Evitar gargalos de desempenho: Arquitetura
antiga DNS. Arquivo de hosts.
18. Desafios
5. Tratamento de Falhas
Falhas em SD devem ser parciais, ou seja, alguns
componentes falham e outros continuam
funcionando.
Algumas técnicas:
✔
Detecção de Falhas: contadores
✔
Mascaramento de Falhas: descarte/retransmissão
de pacotes/Raid.
✔
Tolerância a falhas
✔
Recuperação de Falhas
✔
Redundância: duas rotas de rede, replicação de
servios DNS/BD.
19. Desafios
6. Concorrência
Tanto serviços como os aplicativos fornecem
recursos que podem ser compartilhados pelos
clientes em um SD. Desta forma, existe a
possibilidade de que vários clientes tentem acessar
um recurso compartilhado ao mesmo tempo.
20. Desafios
7. Transparência
É definida como ocultação , para um usuário final
ou programador, da separação dos componentes em
um SD de modo que o sistema seja percebido como
um todo, em vez de uma coleção de componentes
independentes.
Tipos:
✔
De acesso
✔
De localização
✔
De concorrência
✔
De replicação
✔
De falhas
✔
De mobilidade
✔
De desempenho
✔
De escalabilidade