O documento apresenta uma aula de revisão sobre sistemas distribuídos, abordando tópicos como caracterização, arquiteturas, processos, comunicação e sistemas de nomeação. A aula discute conceitos como características, metas, tipos e estilos arquitetônicos de sistemas distribuídos.
5. “
“Um sistema distribuído é um
conjunto de computadores
independentes que se apresenta a
seus usuário como um sistema
único e coerente.”
(Tanenbaum; Van Steen)
5
6. Analisando a
definição
6
▫Sistemas distribuídos consistem em componentes
autônomos;
▫Usuários (pessoas ou programas), acham que estão
utilizando um único sistema;
▫Os componentes precisam colaborar;
▫Como colaborar é o cerne ao se desenvolver
sistemas distribuídos;
▫Não é importante o tipo de componentes;
▫“Um sistema distribuído é um
conjunto de computadores
independentes que se
apresenta a seus usuário como
um sistema único e coerente.”
▫(Tanenbaum; Van Steen)
7. Metas
Existem quatro metas importantes a
serem cumpridas na construção
de um sistemas distribuído.
Acesso a recursos;
Ocultação de recursos;
Aberto;
Expansível.
7
10. Transparências
da Distribuição
10 Tipos de Transparência
Transparência Descrição
Acesso
Oculta diferenças na representação de dados e no
modo de acesso a um recurso
Localização Oculta o lugar em que um recurso está localizado
Migração
Oculta que um recurso pode ser movido para
outra localização
Relocação
Oculta que um recurso pode ser movido para uma
outra localização enquanto em uso
Replicação Oculta que um recurso é replicado
Concorrência
Oculta que um recurso pode ser compartilhado
por diversos usuário concorrentes
Falha Oculta a falha e a recuperação de um recurso
Fonte: TANENBAUM; STEEN, 2008, p. 3
13. Abertura
13
“Um sistema distribuído aberto é um
sistema que oferece serviços de acordo
com regras padronizadas que
descrevem a sintaxe e a semântica
desses serviços”
15. Escalabilidade
15
“[...] a escalabilidade é uma das mais
importantes metas de projeto para
desenvolvedores de sistemas distribuídos”
▫ Dimensões:
▪ Escalável quanto ao seu tamanho;
▪ Escalável em termos geográficos;
▪ Escalável em termos administrativos;
16. Escalabilidade
16
Problema de
Escalabilidade
Conceito Exemplo
Serviços centralizados
Um único servidor para todos os
usuários
Dados centralizados Uma única lista telefônica on-line
Algoritmos centralizados
Fazer roteamento com base em
informações completas
Fonte: TANENBAUM; STEEN, 2008, p. 3
19. Ciladas em
Sistemas
Distribuídos
19
▫ A rede é confiável;
▫ A rede é segura;
▫ A rede é homogênea;
▫ A topologia não muda;
▫ A latência é zero;
▫ A largura de banda é infinita;
▫ O custo de transporte é zero;
▫ Há só um administrador.
22. Sistemas de
computação
distribuídos
22
“[...] o hardware subjacente consiste
em um conjunto de estações de
trabalho ou PCs semelhantes
conectados por meio de uma rede local
de alta velocidade”
Computação de
Cluster
24. Sistemas de
computação
distribuídos
24
“[...] consiste em sistemas distribuídos
que costumam ser montados como
federação de computadores, na qual
cada sistema pode cair sob um
domínio administrativo diferente”
Computação em
Grade
32. Sistemas
Distribuídos
Pervasivos
32
“[...] a questão ficou muito diferente
com a introdução de dispositivos de
computação móveis e embutidos.
Atualmente encontramos sistemas
distribuídos nos quais a instabilidade é
o comportamento esperado”
45. Importantes
Estilos
Arquitetônicos
45
1. Arquiteturas em camadas;
2. Arquiteturas baseadas em objetos;
3. Arquiteturas centradas em dados;
4. Arquiteturas baseadas em eventos;
Configurações a
partir de
Componentes e
Conectores
46. Arquiteturas
em camadas
46
▫ Componentes são organizados em camadas;
▫ O componente da camada Li pode chamar
um componente subjacente Li-1;
▫ Modelo amplamente adotado pela
comunidade de redes;
▫ Requisições descem pela hierarquia;
▫ Resultados (respostas) fluem para cima;
48. Arquitetura
baseada em
objetos
48
▫ Cada objeto corresponde a definição de um
componente;
▫ Os componentes são conectados por uma
chamada de procedimento remoto;
▫ É um modelo de arquitetura que se ajusta ao
sistema cliente-servidor;
▫ Configuram-se em um estilo importante para
sistemas de software de grande porte.
50. Arquitetura
centrada em
dados
50
▫ Processos se comunicam por meio de um
repositório comum;
▫ Tem grau de importância similar as baseadas em
camadas e objetos;
▫ Funcionamento:
Trabalha com o compartilhamento de arquivos.
52. Arquitetura
baseada em
eventos
52
▫ Processos se comunicam por meio da propagação
de eventos;
▫ Podem também transportar dados;
▫ Associa-se a sistemas publica/subscrever;
▫ Processos fracamente acoplados;
▪ Podem ser desacoplados;
▪ Ou, referencialmente desacoplados.
56. Camadas de
Aplicação
56
É possível analisar criando uma distinção
entre três níveis, seguindo o estilo
arquitetônico em camadas.
1. Nível de interface de usuário
2. Nível de processamento
3. Nível de dados
Abordagem 1
57. Camadas
1. Nível de interface de usuário
2. Nível de processamento
3. Nível de dados
57
62. Peer-to-peer
62
“De uma perspectiva de alto nível, os processos
que constituem um sistemas peer-to-peer são
todos iguais, o que significa que as funções que
precisam ser realizadas são representadas por
todo processo que constitui o sistema
distribuído”
82. “
Uma importante propriedade de threads
é que eles podem proporcionar um meio
conveniente de permitir chamadas
bloqueadoras de sistemas sem bloquear
o processo inteiro no qual o thread está
executando.
82
84. Servidores
Multithread
84
Quais as vantagens de cada estratégia para
servidores Multithread?
Três modos de construir um servidor
Threads em
Sistemas
Distribuídos
Modelo Características
Threads
Paralelismo, chamadas
bloqueadoras de sistema
Processos Monothread
Sem paralelismo, chamadas
bloqueadoras de sistema
Máquina de Estado Finito
Paralelismo, chamadas de
sistemas não bloqueadoras
86. “
Em sua essência, a
virtualização trata de
estender ou substituir uma
interface existente de modo a
imitar o comportamento de
um outro sistema [...]
86
103. Introdução
▫ O que é um nome?
▪ Em um sistema distribuído é uma cadeia de
bits ou caracteres usada para referencia uma
entidade;
▫ O que é uma entidade?
▪ Praticamente qualquer coisa, uma impressora,
um disco, arquivos, processos, usuários, caixas
postais, páginas web...
▫ Entidades são ativas;
▪ Por exemplo o recurso impressora oferece
uma interface capaz de executar operações
relacionada a impressão;
103
104. Introdução
Acessar uma entidade exige que tenhamos um
ponto de acesso. Portanto, o ponto de acesso
também é uma entidade, mas configura-se
como um entidade especial. “O nome de um
ponto de acesso é denominado endereço”.
104
105. Nomes com
tratamento
especial
Características de um nome do tipo identificador:
1. Um identificador referencia, no máximo, uma
entidade;
2. Cada entidade é referenciada por, no máximo,
um identificador;
3. Um identificador sempre referencia a mesma
entidade, isto é, nunca é reutilizado;
105
114. Tabelas de
hash
distribuídas
(DHT)
▫ Como identificar se um nó estaria mais próximo
▪ Tomando como base o exemplo da figura
anterior. Se:
▫ Nó 1 estivesse em Amsterdã;
▫ Nó18 em San Diego;
▫ Nó 20 em Amsterdã;
▫ Nó 21 em San Diego.
Exploração de
proximidade na
rede
114
115. Abordagens
hierárquicas
▫ Cada domínio D tem um nó de diretório associado;
▫ Esse diretório monitora as entidades nesse domínio;
▫ O nó de diretório (ou nó raiz) conhece todas as
entidades;
115
120. Espaços de
nomes
▫ Nomes são organizados em espaço de nomes (namespace);
▫ Namespaces podem estruturar nomes através da representação
de um gráfico dirigido e rotulado com dois tipos de nós;
▫ O nó-folha representa a entidade nomeada e não apresenta
ramos de saída;
▫ O nó-diretório tem vários ramos de saída, cada qual rotulado
com um nome;
▫ O nó de diretório armazena a tabela diretório que representa o
par (rótulo do ramo, identificador do nó);
120
130. Espaço de
nomes DNS
130
Registro Descrição
A também conhecido por hostname, é o registro central de um DNS, ele vincula um domínio ou subdomínio a um
endereço IP direto.
AAAA Executa a mesma função de A, porém, para um endereço IPv6.
NS Name Server (Servidor de Domínio), especifica servidores DNS para o domínio ou subdomínio. Pelo menos, dois
registros NS devem ser definidos para cada domínio. Geralmente, um principal e outro secundário.
CNAME Significa Canonical NAME. Especifica um apelido (alias) para o hostname (A). É uma forma de redirecionamento.
MX Sigla para Mail eXchanger. Aponta o servidor de e-mails. Pode-se especificar mais de um endereço, formando-se
assim uma lista em ordem de prioridade para que haja alternativas no caso de algum e-mail não puder ser entregue.
PTR PoinTeR, aponta o domínio reverso a partir de um endereço IP.
SOA Start Of Authority. Indica o responsável por respostas autoritárias a um domínio, ou seja, o responsável pelo domínio.
Também indica outras informações úteis como número serial da zona, replicação, etc.
TXT Refere-se a TeXT, o qual permite incluir um texto curto em um hostname. Técnica usada para implementar o SPF.
SPF Sender Policy Framework, é uma tentativa de controle de falsos e-mails. Permite ao administrador de um domínio
definir os endereços das máquinas autorizadas a enviar mensagens neste domínio.
SRV Abreviação de SeRVice, permite definir localização de serviços disponíveis em um domínio, inclusive seus protocolos e
portas.
133. Implementações
descentralizadas
▫ Adote como premissa que consultas consistem em uma
conjunção de pares, como acontece com LDAP;
▫ Vantagem: neste tipo de consulta não é preciso suportar
nenhuma faixa;
▫ A questão principal é transformar AVTrees em um
conjunto de chaves que possa ser consultado em um
sistema DHT;Nomeação baseada
em atributo
133
Uma característica importante é que as diferenças entre os vários tipos de computadores e o modo como eles se comunicam são sempre ocultas para o usuário. Este último, acredita que está utilizando um único sistema.
Um usuário ou aplicação (externa) pode interagir com um sistema distribuído de maneira consistente e uniforme.
Facilidade na escalabilidade.
Teoricamente é algo simples, e seria uma característica direta de termos computadores independentes.
Havendo por exemplo havarias, é importante que usuários e sistemas de terceiros não percebam a substituição de componentes.
Recursos que são acessados através de um único servidor. A sobrecarga pode gerar problemas, por exemplo de lentidão;
Como crescer o volume de dados? Qual o tamanho de um computador para ter todos os dados armazenados no mesmo local? Há limite?
A execução de diversos processamentos em um único local.
Aqui cada nó executa o mesmo sistema operacional.
Cada cluster consiste em um conjunto de nós, mas que são acessados apenas por um nó mestre.
O mestre:
manipula a alocação de nós a um determinado programa paralelo
Manter um fila de tarefas;
Proporcionar a interface para usuários;
O mestre executa o middleware necessário!
E pode ainda haver diferenças de hardware, software, tecnologia de rede.
Recursos de diferentes organizações permitem a colaboração de um grupo de pessoas/instituições;
Finalidade de prover acesso a recurso diferentes;
Base: provê as interfaces para recursos locais;
Conectividade: protocolos de comunicação para os múltiplos recursos;
Recursos: gerencia um único recurso (leitura de dados);
Coletiva: trata o acesso a múltiplos recursos;
Aplicação: são as aplicações que funcionam nas organizações;
Arquitetura orientada a serviço;
Transações aninhada são importantes em sistemas distribuídos porque proporcionam um modo natural de distribuir uma transação por várias máquinas.
Transações aninhada são importantes em sistemas distribuídos porque proporcionam um modo natural de distribuir uma transação por várias máquinas.
O tratamento é realizado através de mensagens para evitar o problema do forte acoplamento.
O dispositivo deve estar continuamente ciente do fato de que seu ambiente pode mudar o tempo todo;
Dispositivos diferentes são utilizados por usuários diferentes;
Capacidade de ler, armazenar, gerenciar e compartilhar informações com facilidade.
Sistemas montados ao redor de redes domésticas;
Tem o objetivo de ser autoconfigurável e auto gerenciável;
Exemplo de recurso que ajuda neste processo: Universal Plug and Play, USB.
Deve-se dar cuidado especial:
ao Espaço Pessoal que deve manter a segurança de acesso as informações pessoais.
Ao armazenamento de dados relevantes e a capacidade de encontra-los (recomendadores);
São dispositivos que monitoram o bem-estar individual;
São conectados automaticamente com médicos, quando necessário;
Funcionam por bateria;
Capacidade de processamento limitada;
Processamento de dados acontece na rede;