Resumo Sistemas Distribuidos

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 13

Resumo Sistemas Distribuidos

Resumo escrito por Marcus, na correria mesmo, atraves de revelacoes divinas do livro
de sistemas distribuidos do Taneubaum, acho q e assim q se escreve o nome, ja que o
slide do charles ta uma porra.

O que e um sistema distribuido?


Um Sistema distribuido e um conjunto de computadores independentes que
apresentam um sistema ao usuario como se fosse unico e coerente. Ou seja, utiliza-se
varias maquinas para processar um sistema, mas o usuario so ve o sistema , em si,
como algo unico e isso so e possivel hoje gracas a velocidade das redes de
computadores e as melhorias dos processadores.
Contudo, nao importa muito quais e quantos computadores autonomos serao usados,
nessa descricao, mas sim, como cada um deles vai cooperar para exibir o resultado do
sistema para o usuario.
Alem disso, o usuario (programa ou pessoa) do sistema nao deve saber como e o
funcionamento dos computadores distribuidos, isso fica oculto, escondendo a
complexidade e, por isso, um sistema distribuido e feito para permanecer online de
modo que se alguma parte der problema, o usuario nao consiga identificar qual.

Por que um sistema distribuido e conhecido como middleware?


Os sistemas distribuidos garantem o funcionamento por meio de varias maquinas
heterogeneas mostrando-se como uma unica aplicacao, gracas a uma camada de
software, por operar como intermediario, e, entao, conhecido como middleware:

Resumo Sistemas Distribuidos 1


Entao, na imagem, todas as aplicacoes compartilham a mesma interface (middleware)
que e distribuida por 4 computadores.

Metas para atender a construcao de um sistema distribuido


Para construir um sistema distribuido, e necessario que se atenda a 4 requisitos:

Deve ser facil acessar seus recursos

Deve-se ocultar o fato de os recursos serem distribuidos

Deve ser aberto

Deve ser facilmente expandido.

Acesso a recursos:
Recursos podem ser varias coisas, como, por exemplo, impressoras, sites, banco de
dados etc. Assim, sistemas distribuidos devem facilitar o acesso a esses recursos e
isso, muitas vezes, e bastante economico.

Resumo Sistemas Distribuidos 2


Por exemplo, em um escritorio pode haver uma impressora onde todos acessam de
forma compartilhada.

Porem, um problema que pode ocorrer e a questao da seguranca, pois essas


informacoes trafegam de um sistema a outro que podem nao ser seguros, por exemplo,
nao criptografam senhas, ou salvam em servidores pouco seguros.

Transparencia da Distribuicao
Um sistema distribuido transparente e aquele onde fica oculto para o usuario que seu
processamento e formacao se da por varios computadores distribuidos. Ou seja, e
aquele que parece ser uma coisa so.

GRAUS DE TRANSPARENCIA

Resumo Sistemas Distribuidos 3


Resumidamente:

ACESSO: Implica em chegar a um acordo de modo a tornar generico a


implementacao em dispositivos diferentes.Ex: Os dados de um sistema roda de
igual modo no linux e no windows

LOCALIZACAO: Implica em nao permitir que se descubra a localizacao fisica de


um recurso, por exemplo, uma imagem vem com o nome nao indicativo do servidor
onde esta armazenada.

MIGRACAO: Implica em mover um recurso sem prejudicar o acesso a este.

RELOCACAO: Implica em que, durante o uso, um recurso e movido sem prejudicar


o acesso a esse (melhoria da migracao).(ex, acessar redes wifi diferente sem se
desconectar)

REPLICACAO: Meio o que ocorre com a netflix, ou seja, os recursos sao copiados
para servidores proximos de onde sao acessados, mas para isso, deve haver
transparencia de localizacao, para que possuam o mesmo nome.

CONCORRENCIA: O caso em que dois usuarios diferentes tentam acessar um


mesmo recurso, por exemplo, um banco de dados. E importante que um nao
perceba que o outro esta acessando tambem o recurso mantendo-o consistente.

FALHAS: Se uma parte do sistema falha, e importante que os usuarios nao


percebam e isso e bastante dificil de implementar.

OBS: Nem sempre e necessario e inteligente atribuir todos esses graus de


transparencia. Por exemplo, para servicos que precisem retransmitir dados em caso de
falha, se a transparencia de falhas existir, eles nao vao saber que houve uma falha e
portanto vao deixar o sistema mais lento e pouco funcional.

Abertura
Sao servicos distribuidos que fornecem um conjunto de regras padroes que descrevem
esses servicos por meio de uma INTERFACE DEFINITION LANGUANGE (IDL)

Basicamente, sao um conjunto de descricoes do que os servicos fazem, seus


parametros e etc. Quase sempre em linguagem natural.

Resumo Sistemas Distribuidos 4


Algumas metas que surgem com isso sao a INTEROPERABILIDADE (partes distintas
do sistema devem funcionar de modo conjunto) e PORTABILIDADE (o sistema A deve
executar na maquina A e B, sendo essas distintas)

Alem disso, os sistemas distribuidos abertos devem ser EXTENSIVEIS (permitir add ou
remover componentes facilmente, mesmo que de desenvolvedores diferentes).

Escalabilidade
Isso e uma das coisas mais importantes em sistemas distribuidos.

Tipos de escalabilidade:
1) Tamanho: Um sistema pode adicionar recursos ou usuarios

2) Geografica: O sistema pode ter usuarios em varios lugares

3) Administracao: Um sistema pode gerenciar varias organizacoes por vez.

Contudo, a escalabilidade, normalmente, pode ter custo de desempenho.

Problemas de escalabilidade
Escalar um sistema é complicado, mas muitas vezes necessario.

Mesmo uma maquina potente, muitas vezes é inviavel ter apenas um servidor para a
aplicação (principalmente do ponto de vista de redes, ja q a comunicacao fica em um
unico canal redirecionado ao serv, prejudicando as linhas de comunicacao) , pois, às
vezes, é necessario ter algo reservado em sala especial de segurança para garantir
integridade, por exemplo, um servidor de contas bancárias. Logo, é inviavel realizar
copias deste para aumentar o desempenho, pois isso acarreta em possiveis
vulnerabilidades

Assim , surge o conceito de serviços centralizados e dados centralizados, que é


basicamente um unico servidor e dados em um único local e completo para serem
processados. Ou seja, muitas vezes lento e bastante inseguro.E algoritmos

Resumo Sistemas Distribuidos 5


centralizados, normalmente, exigem conhecimento total do sistema e devem carregar
todos os dados, o que, por sua vez, sobrecarrega a rede

Desse modo, os algoritmos que rodam em sistemas distribuidos são descentralizados,


ou seja:

As maquinas nao tem informacao completa do sistema

As tomadas de decisao sao feitas com base em informacoes locais

Se uma maquina falhar, isso nao arruina o algoritmo

Técnicas de escalabilidade
As técnicas de escalabilidade envolvem resolver o problema de escalabilidade que
normalmente resume-se a questão de problema de desempenho devido a limitação do
dispositivo;

Assim, as três técnicas são:

Ocultar latência de computação

Distribuição

Replicação

Ocultar latência de computação:


Basicamente, isso trata-se de evitar problemas de conexão, principalmente, do ponto
de vista geográfico. Por exemplo, trabalhar com funções assíncronas que permitem
com que a aplicação requisitante execute trabalho, enquanto a requisição está em
espera.
Desse modo, quando a requisição obtém uma resposta, a aplicação para para uma
função recuperar o evento.

Em alguns casos, quando o usuário , obrigatoriamente, precisa esperar a resposta, o


processamento pesado deve ficar no lado do cliente.

Resumo Sistemas Distribuidos 6


EXEMPLO: Preenchimento de formulário, os dados podem ser processados no cliente
ao invés de serem processados no servidor

Distribuição
A técnica de distribuição é similar aos servidores hierárquicos de DNS, por exemplo,
um componente é divido em componentes menores para processar os dados.
exemplo:

Resumo Sistemas Distribuidos 7


Replicação
Devido a questão de desempenho, a técnica de replicação é útil para remover carga de
componentes e auxilia no aumento de disponibilidade
Replicar componentes em sistemas distribuídos, portanto, resolve este problemas.

O cache também é uma forma de replicação, porém um pouco diferente, pois, faz
uma cópia de recursos. Contudo, o que diferencia é que o cache é uma replicação
exigida pelo cliente do recurso e não pelo proprietário, além disso, o cache faz o
pedido sobre demanda e o servidor planejado. Uma desvantagem muito relevante
é que o servidor de cache e de replicação causa divergências por conta da
atualização, ou seja, de consistência.

Ciladas:
O que NAO e verdade em um sistema distribuido:
1) A rede e segura
2) A rede e confiavel

3) A banda e infinita
4) A latencia e zero

5) Ha apenas um administrador

Tipos de sistemas distribuidos


Ha 3 tipos:

Sistemas de computacao distribuidos

Sistemas de informacao distribuidos

Sistemas embutidos distribuidos

Resumo Sistemas Distribuidos 8


1) Sistemas de computacao distribuidos:

→ Usados para computacao de alto desempenho, podendo contar com clusters


(varios computadores do mesmo tipo que rodam o mesmo sistema operacional - SAO
HOMOGENEOS - e sao conectados por rede local de alto desempenho, executando
softwares paralelamente de forma barata, controlando-os por um no mestre-
computador principal) e computadores de grade que sao tambem varios
computadores de tipos e administradores diferentes - SAO HETEROGENEOS-,
colaboram por meio de uma organizacao virtual, desse modo, somente alguns com
permissao (seja usuario ou software) pode partilhar do uso de recursos. Alem disso,
computadores em grade funcionam com base em 4 camadas arquiteturais:
1) camada base → permite acesso a recursos locais ou site especifico, gerenciando
esse recurso, como se esta disponivel ou pode trava-lo se quiser impedir o acesso.
2) camada de conectividade → conta com varios protocolos e permite a comunicacao e
transacao das informacoes, alem disso, avalia a questao da seguranca e autenticacao

3) camada de recursos → cuida dos recursos advindos da camada de conectivadade,


por exemplo, le dados, busca dados, cria processos etc, tambem possui varios
protocolos.

4) camada coletiva → manipula acesso a varios recursos e descobre novos recursos,


alocando e escalonando, se for necessario.
5) camada de aplicacao → E a aplicacao que roda na organizacao virtual, permitindo
uso da computacao em grade por parte dos membros da organizacao.

OBS: As camadas 2, 3 e 4 formam o chamado middleware.

Sistema de computacao distribuido em cluster:

Resumo Sistemas Distribuidos 9


Sistema de computacao distribuido em grade:

2) Sistemas de informacao distribuidos

Trata de sistemas mais voltados a questao empresarial, consistindo em conversas de


diferentes aplicacoes para processar determinadas operacoes.

Resumo Sistemas Distribuidos 10


Ou seja, o banco de dados esta distribuido entre varias aplicacoes e elas se
comunicam
assim, cada um tem sua aplicacao a nivel de servidor e conta com os middlewares ( um
tipo de sistema operacional que gerencia a aplicacao e executa as aplicacoes para os
clientes, sendo a parte dele realizar tarefas complexas com base no ACID - termo das
transacoes de banco de dados, pois, se uma falhar em um banco, todas as outras de
outros bancos terao de ser desfeitas)

Assim, para integrar essas aplicacoes, pode-se fazer via arquivo(nao e tao flexivel),
banco de dados (mas, possui gargalo), rpc, mensageria.

3) Sistemas embarcados (pervarsivos/embutidos) distribuidos:


Os dois topicos passados sao caracterizados por sua estabilidade, mas, no caso de
embarcados, a instabilidade ja e o comportamento previsto.

Esse tipo de equipamento, no geral, n requer administracao humana. Uma vez que sao
instalados, comecam a transmitir dados etc, desse modo, o proprio dispositivo se
adapta ao seu ambiente, por exemplo, um embarcado com gps, quando fica sem rede
deve realizar determinado procedimento ,como salvar as posicoes em um buffer, ate ter
rede disponivel novamente para voltar a se comunicar.

Resumo Sistemas Distribuidos 11


Alem disso, existem os sistemas distribuidos de saude, que usam de uma rede corporal
local (BAN) que armazenas informacoes da saude do usuario em um hub central que
comunicara a uma rede externa, tudo isso a fim de evitar maiores gastos hospitalares

Redes de sensores:

Redes de sensores nao apenas transmitem informacoes, mas tambem processam


informacoes e se conectam de modo sem fio.

As redes de sensores podem ter um banco de dados central, onde todos os sensores
publicam informacoes, ou entao, os dados sao passados de sensor a sensor e
processados para agregar informacoes faltantes.

Resumo Sistemas Distribuidos 12


No entanto, essas nao sao as melhores opcoes. O ideal e usar uma estrutura em
arvore que, a cada encontro de ramos, se una os dados para produzir informacoes.

Resumo Sistemas Distribuidos 13

Você também pode gostar