12. Redes de
Computadores
▫Localmente permitiram a
conexão de centenas de
máquinas em um edifício;
▫Redes de longa distância
permitiram que milhões de
máquinas no mundo se
conectem;
12
14. “
“O resultado dessas tecnologias é
que, atualmente não é somente
viável, mas também fácil de montar
sistemas de computação compostos
por quantidades de computadores
conectados por uma rede de alta
velocidade.”
14
19. “
“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)
19
21. Analisando a
definição
21
▫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)
24. 24
Não seria mais simples
conectar vários recursos a um
computador em vez de criar um
Sistemas Distribuído?
25. 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.
25
28. Acesso a
recursos
(cuidados)
28
▫ Sistemas que oferecem pouco proteção;
▪ Informações sensíveis enviados como texto
comum;
▪ Rastreamento de comunicações para
montar um perfil de usuário específico;
30. Transparência
da Distribuição
30
▫“Uma meta importante de um sistema
distribuído é ocultar o fato de que seus
processos e recurso estão fisicamente
distribuídos por vários computadores”
31. Transparências
da Distribuição
31 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
33. Transparência
da Distribuição
33
▫ Usuários não podem afirmar a
localização física de um
recurso;
▪ Por exemplo: utilização de nomes
lógicos, como a url.;
Transparência de
localização
34. Transparência
da Distribuição
34
▫ Usuários não podem afirmar a
localização de um recurso ou
se ele sempre esteve ali;
▪ Exemplo: um arquivo index
em um servidor web.
Transparência de
migração
36. Transparência
da Distribuição
36
▫ Oculta o fato de terem várias
cópias disponíveis do mesmo
conteúdo;
▪ Como funcionam as redes
sociais?
Transparência de
replicação
37. Transparência
da Distribuição
37
▫ Oculta o fato de dois ou mais
usuários estarem utilizando o
mesmo recurso;
▪ Deverá acontecer mesmo
que exista impacto de um
sobre o outro.
Transparência de
concorrência
39. “
A principal dificuldade para
mascarar falhas está na
incapacidade de distinguir
entre um recurso morto e um
recurso insuportavelmente
lento.
39
40. Transparência
da Distribuição
40
▫ Distância percorrida por uma informação pela
rede tem a limitação da velocidade da luz;
▫ Repetir a conexão com o servidor diversas
vezes, antes de desistir;
▫ Cópias (replicações) com servidores em
continentes diferentes;
Grau de
Transparência
43. Abertura
43
“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”
45. Abertura
45
Interoperabilidade: o ponto no qual
dois serviço ou recursos trabalham
juntos baseada na confiança, dado
seus diferentes fabricantes.
Portabilidade: capacidade de uma
aplicação desenvolvido para A poder
ser utilizada em B sem alterações.
Conceitos
importantes
47. Escalabilidade
47
“[...] 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;
48. Escalabilidade
48
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
55. Técnicas de
Escalabilidade
55
▫ Objetiva resolver o problema de
desempenho;
▫ Aumenta a disponibilidade e o
equilíbrio de carga entre
componentes;
▫ Em sistemas geográficos auxiliar na
diminuição da latência;
Exemplo: cache
Replicação
56. Técnicas de
Escalabilidade
56
▫ Escalabilidade geográfica;
▪ Problema centrado na própria
natureza;
▫ Escalabilidade administrativa;
▪ Apresenta problemas não técnicos
relacionados as organizações e
suas políticas.
59. Ciladas em
Sistemas
Distribuídos
59
▫ 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.
62. Sistemas de
computação
distribuídos
62
“[...] 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
64. Sistemas de
computação
distribuídos
64
“[...] 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
68. Sistemas de
Processamento
de Transações
68
Primitiva Descrição
BEGIN_TRANSACTION Marque o inicio de uma transação
END_TRANSACTION
Termine a transação e tente
comprometê-la
ABORT_TRANSACTION
Elimine a transação e restaure os
valores antigos
READ
Leia dados de um arquivo, tabela
ou de outra forma
WRITE
Escreva dados para um arquivo,
tabela
Fonte: TANENBAUM; STEEN, 2008, p. 12
69. Sistemas de
Processamento
de Transações
69
▫ Atômicas: para o mundo exterior, a transação
acontece como se fosse indivisível;
▫ Consistente: a transação não viola invariantes de
sistema;
▫ Isoladas: transações concorrentes não interferem
umas com as outras;
▫ Duráveis: uma vez comprometida uma transação,
as alterações são permanentes.
ACID
74. Sistemas
Distribuídos
Pervasivos
74
“[...] 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”
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.
O suporte a redes e componentes heterogêneos é resolvido com uma camada de middleware. Esta camada de software é responsável por adaptar os diversos tipos de redes, conexões e interpretações necessárias para comunicação dos componentes e funcionamento do sistema.
Um sistema distribuído deve oferecer fácil acesso a seus recursos;
Deve ocultar razoavelmente bem o fato de que os recursos são distribuídos por uma rede;
Deve ser aberto e deve poder ser expandido;
Informações sensíveis podem ser enviadas sem criptografia devido a rede ser local, e a conexão entre os recurso serem pouco protegidas.
Rastreamento de comunicação, como o compartilhamento de um endereço de email, pode resultar, por exemplo, no envio de spams, ou seja, mala direta sem permissão.
Neste caso a utilização de filtro com base no conteúdo podem ser uma solução.
Ocultamos arquiteturas de máquinas;
Deve-se atentar em como essa ocultação impacta na forma que os dados são apresentados à diferentes máquinas e sistemas operacionais.
Por exemplo, a forma de nomear um arquivo diferente no Linux e no Windows. Um sistema distribuído deve atentar-se a este fato.
Neste caso o usuário não tem a confirmação se o recurso sempre esteve ali, se foi alterado de local, quando foi sua última alteração.
Ou seja, ele não sabe se houve migração.
O usuário não percebe, ao utilizar um notebook ou um smartphone, quando ele vai percorrendo um caminho e o próprio equipamento vai alterando a rede, ou roteador, de modo a manter-se conectado.
Neste caso é necessário que todas as réplicas tenham o mesmo nome;
Em geral se comportar sistema de replicação deverá manter a transparência de localização também.
É importante manter a consistência do recurso.
Por exemplo, ao utilizar um banco de dados. O controle de transação seria altamente necessário.
Sistemas de RAID funcionam de forma parecida como um recurso de sistemas distribuídos.
Difícil de manter a transparência!
Grau de transparência e desempenho do sistema.
Limitação por causa da propagação. Torna impossível realizar uma nova alteração sem consolidar as que foram realizadas.
Diversidade de interfaces;
Camadas de comunicações;
Completas:
tudo foi especificado para implementação;
Neutras:
não podem definir uma única forma de conexão.
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.
Deve-se evitar ao máximo executar tarefas que objetivem sincronizar atividades com base no envio de mensagens por horário. Os relógios apresentam diferenças, e que por menores que sejam podem resultar em perda;
Geograficamente apresenta-se o problema da distância, deve-se considerar que é uma rede mais lenta do que lan;
Além de serem inerentemente não confiável, por exemplo não tem um recurso simples de broadcast;
Trabalhar com vários domínios administrativos diferentes. Como confiar em recursos que estão fora do seu domínio;
A ideia é que o usuário, ou um processo de um outro recurso não necessite ficar esperando por respostas.
A técnica, portanto, deve prever que realize-se outro(s) processos enquanto se aguarda a resposta.
Existe a exceção, em aplicações que trabalham diretamente com iteratividade, é necessário ter a resposta para que o usuário continue a realizar sua atividade.
Exemplo é sistema de domínios.
No qual o endereço é subdividido e cada servidor realiza parte do processamento total do nome.
Necessário ter cuidado com a consistência dos dados.
Necessário ter cuidado com a consistência dos dados.
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;
A lista de transações necessárias depende do domínio da aplicação.
Correios eletrônicos: Enviar, Receber, Encaminhar, Responder;
Contabilidade: Pagar, receber pagamento, agendar pagamento;
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;