Modelos e Arquiteturas de Sistemas Distribuídos1
1) Camadas de Software
Aplicativos, Serviços
Middleware
S.O.
Plataforma
Hardware
a) Plataforma: fornecem serviços as camadas de cima para comunicação e coordenação dos
processos.
b) Middleware: macarar a heterogeneidade e fornecer um modelo de programação conveniente
para os programadores de aplicativos. É um conjunto de processos ou objetos para
implementar a comunicação e para compartilhamento de recursos.
RPC, CORBA, RMI Java, DCOM, WebServices
c) Aplicativos : software desenvolvido a partir da programação paralela.
2) Arquiteturas de Sistemas
a) Cliente-Servidor:
Cliente
Servidor
Cliente
- não há necessidade de sincronizar tarefas
- limitado a capacidade de processamento do servidor (gargalo)
b) Peer-to-peer: todos os “peers” desempenham todas as tarefas, não havendo um servidor.
- garante escalabilidade.
c) Serviços fornecidos por vários servidores:
1
Material adaptado das notas de aula da Profa. Diana Adamati . Baseado no Capítulo 2 do livro Sistemas Distribuídos
– Conceitos e Projeto. Coulouris, G., Dollimore, J. E Kindberg, T.. Bookman: Porto Alegre, 2007.
Cliente Servidor
Cliente Servidor
Cliente Servidor
Diversos computadores como servidores hospedeiros, interagindo conforme for necessário.
d) Servidores proxies e caches: armazenar objetos usados recentemente em local mais próximo que
a origem real dos objetos. Por exemplo: páginas web.
e) Agentes Móveis: programa que passa de um computador para outro (em rede) para coletar
informações e ao final retorna os resultados a quem o acionou.
- São uma ameaça a segurança dos recursos existentes. Por quê?
f) Computadores em rede: carga do SO e dos aplicativos de um servidor de arquivos remoto
(download)
- ver capacidade do processador e da memória de cada computador
g) Clientes “leves”: apenas interface gráfica, pois programa esta em computador remoto,
executando remotamente.
- problema: capacidade da banda da rede
h) Dispositivos móveis e interoperabilidade espontâneo: hardware que “se move”, como PDAs,
laptops, etc. via rede sem fio
- deve haver transparência de conexão: utilizar IP móvel, onde o número o IP é o mesmo sempre,
independente da localização física.
3) Interfaces
Conjutno de funções disponíveis para invocar em um processo. Por exemplo: API de comunicação
do RMI Java.
4) Requisitos para arquiteturas distribuídas
a) Problemas de desempenho
Reatividade: resposta rápida e consistente
Taxa de rendimento: velocidade do trabalho computacional, passando pelas camadas de
software
Balaceamento de carga: permitir que aplicativos e processos de serviço prossigam
concomitantemente, sem disputar os mesmos recursos.
b) Qualidade do Serviço: confiabilidade, segurança e desempenho.
c) Uso de cache e replicação: ajuda a resolver problemas de desempenho. Exemplo: páginas web
ficam na cache e só são atualizadas (da cache) quando há modificação no servidor.
d) Dependabilidade: correção, segurança e confiabilidade dos sistemas
Tolerância a falhas: uso de redundâncias, como espelhamento (é um processo caro); uso de
protocolos confiáveis, que retornam confirmação de recebimento.
5) Modelos Fundamentais
Prover desempenho e confiabilidade aos sistemas.
a) Modelo de Interação
b) Modelo de Falhas
c) Modelo de Segurança