Sei sulla pagina 1di 40

Metas de um Sistema Distribudo

Sistemas Distribudos

Mauro Lopes Carvalho Silva

Professor EBTT
DAI Departamento de Informtica
Campus Monte Castelo

Instituto Federal de Educao Cincia e Tecnologia do Maranho

Sistemas Distribudos 8 Perodo


Objetivos

Nesta aula iremos apresentar as metas de um


Sistema Distribudo. De forma simples, a meta
bsica prover acesso a recursos de forma
transparente, no entanto vamos aprofundar de que
forma isto pode ser realizado. Sero abordados
aqui as metas: Abertura, Transparncia e
Escalabilidade em Sistemas Distribudos.

Sistemas Distribudos 8 Perodo


Plano de Aula

Metas de um Sistema Distribudo


Introduo
Abertura
Transparncia
Escalabilidade

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Introduo
Um Sistema Distribudo tem como meta
principal facilitar o acesso do usurio a recursos
remotos e compartilhar estes recursos com
outros usurios de forma controlada;
Meta importante de um SD esconder o fato de que seus
processos e recursos esto fisicamente distribudos
atravs de vrios computadores (Transparncia);
Outra meta importante a Abertura. Um SD aberto um
sistema que oferece servios de acordo com regras
padres;
Outra meta importante a capacidade de crescimento do
sistema (Escalabilidade).

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Abertura em Sistemas Distribudos


Diz-se que um sistema computacional aberto
se ele pode ser estendido e reimplementado de
vrias maneiras;
Um Sistemas Distribudo aberto esta relacionado
ao grau com que novos servios podem ser
adicionados e disponibilizados para uso por
uma variedade de programas clientes;
Importante: A especificao e a documentao
das principais interfaces de software dos
componentes de um sistema esto disponveis
para os desenvolvedores de softwares.
Sistemas Distribudos 8 Perodo
Metas de um Sist. Distribudo
Abertura em Sistemas Distribudos
Voc j ouviu falar em RFC?
http://pt.kioskea.net/contents/279-os-rfc
http://wiki.locaweb.com/pt-br/RFC_-_822
Voc j ouviu falar em OMG?
http://pt.wikipedia.org/wiki/Object_Management_Group
Os Sistemas Distribudos projetados a partir de
padres pblicos so chamados de sistemas
distribudos abertos, para reforar o fato de que
eles so extensveis;
Eles podem ser ampliados em nvel de:
hardware (adio de computadores a rede, p.ex);
software (adio de novos servios ou reimplementao dos
antigos).
Sistemas Distribudos 8 Perodo
Metas de um Sist. Distribudo

Abertura em Sistemas Distribudos


De forma resumida: A Abertura uma caracterstica
que determina se um sistema pode ser estendido de
diferentes maneiras;
Hardware:
Incluso de dispositivos de fabricantes distintos;
Software
Mdulos de SO
Protocolos de Comunicao
Recursos compartilhados
Imaginem ento os vrios componentes de hardware
e software de variados fabricantes. Como na prtica
todos estes componentes trabalham?
Sistemas Distribudos 8 Perodo
Metas de um Sist. Distribudo

Abertura em Sistemas Distribudos


Interoperabilidade :
Define at que ponto duas implementaes de
sistemas ou componentes de fornecedores diferentes
devem coexistir e trabalhar em conjunto, com base na
confiana mtua nos servios de cada um,
especificados por um padro comum;

Capacidade de um sistema (informatizado ou no) de


se comunicar de forma transparente (ou o mais prximo
disso) com outro sistema (semelhante ou no).

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Abertura em Sistemas Distribudos


Portabilidade:
Caracteriza at que ponto uma aplicao desenvolvida
para um sistema distribudo A pode ser executada, SEM
MODIFICAO, em um sistema distribudo B que
implementa as mesmas interfaces que A;

Habilidade de reusar um cdigo existente ao invs de


refaz-lo quando este movido de um ambiente para
outro.

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Abertura em Sistemas Distribudos


De forma resumida:
Os sistemas abertos so caracterizados pelo fato de
suas principais interfaces serem publicadas;
Os sistemas distribudos abertos so baseados na
estipulao de um mecanismo de comunicao
uniforme e em interfaces publicadas para acesso aos
recursos compartilhados;
Os sistemas distribudos abertos podem ser constitudos
a partir de hardware e software heterogneo,
possivelmente de diferentes fornecedores. Para que
um sistema funcione corretamente, a compatibilidade
deve ser cuidadosamente testada e verificada.

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Abertura em Sistemas Distribudos

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Abertura em Sistemas Distribudos

IMPORTANTE: PADRONIZAO!!!!!

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Transparncia em Sistemas Distribudos


Uma das principais necessidades dos Sistemas
Distribudos tornar o ambiente de rede invisvel
provendo a viso de um ambiente nico para o
usurio;
A transparncia definida como sendo a
ocultao, para um usurio final ou para um
programador de aplicativos, da separao dos
componentes em um sistema distribudo de modo
que o sistema seja percebido como um todo, em
vez de uma coleo de componentes
independentes.
Sistemas Distribudos 8 Perodo
Metas de um Sist. Distribudo

Transparncia em Sistemas Distribudos


A ANSA e o RM-ODP definem 8 formas de transparncia.

Falta uma, Escalabilidade veremos ela de forma individual, no somente a transparncia!!!

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Transparncia em Sistemas Distribudos - Acesso


Permite que recursos locais e remotos sejam
acessados com uso de operaes idnticas;
Ocultar diferenas entre arquiteturas de
mquinas;
Mais importante:
Acordo sobre como os dados devem ser representados;
Exemplo:
Imaginamos diferentes mquinas com diferentes SOs, como
seria a nomeao de arquivos.
Como estas mquinas entendem os tipos de dados em uma
aplicao?

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Transparncia em Sistemas Distribudos - Localizao


Permite que recursos sejam acessados sem
conhecimento de sua localizao fsica ou na rede;
Usurios no so capazes de dizer a localizao
fsica do recurso;
Nomeao:
www.google.com nome no d pistas da
localizao fsica de um dos servidores google?

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Transparncia em Sistemas Distribudos - Migrao


Permite a movimentao de recursos e clientes
dentro de um sistema sem afetar a operao de
usurios e programas;
Recursos podem migrar de uma localidade para
outra, por questes de desempenho, segurana, etc;
Esta ao deve ser feita de forma automtica pelo
sistema;
O objeto deve manter o mesmo nome;
Deve garantir a continuidade de comunicao.
O objeto no sabe que mudou de lugar !!!

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Transparncia em Sistemas Distribudos - Relocao


Oculta do cliente que um recurso possa ser movido
para outra localizao durante o uso;
Exemplos:
Celular se movimentando dentro da mesma
rea de cobertura;
Um automvel passando por vrias redes de
acesso sem fio, com conexo ininterrupta;

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Transparncia em Sistemas Distribudos - Replicao


Permite que vrias instncias de recursos sejam
usadas para aumentar a confiabilidade e o
desempenho, sem conhecimento das rplicas por
parte dos usurios ou dos programadores de
aplicativos;
O conhecimento das rplicas por parte dos
usurios deve ser mascarado;
Relao com a transparncia de localizao;
Perigoso: Problemas de consistncia

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Transparncia em Sistemas Distribudos -


Concorrncia
Permite que vrios processos operem
concorrentemente, usando recursos
compartilhados sem interferncia entre eles;
Compartilhamento competitivo de recursos:
Deve-se garantir a consistncia;
Criar travas de acesso;
Tratamento mais refinado: uso de transaes;

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Transparncia em Sistemas Distribudos - Falhas


Permite a ocultao de falhas, possibilitando que
usurios e programas aplicativos concluam suas
tarefas, a despeito da falha de componentes de
hardware ou software;
Usurio no pode perceber que um recurso deixou
de funcionar bem;
Mascarar falhas uma das questes mais difceis!!
Recurso morto ou incrivelmente lento? Como
saber?

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Transparncia em Sistemas Distribudos


Almejar transparncia completa pode ser
excessivo:
Usurios podem estar em continentes diferentes;
Esconder falhas de rede e de ns (na teoria e na prtica)
extremamente difcil;
No possvel distinguir entre um computador lento e um
falho;
No possvel ter certeza de que um servidor executou uma
operao antes de falhar;
Transparncia total tem custo no desempenho - Exemplos:
Mantendo caches Web exatamente atualizados com a cpia
principal;
Forando escrita de disco (flush) para tolerncia a falhas;
Sistemas Distribudos 8 Perodo
Metas de um Sist. Distribudo

Transparncia em Sistemas Distribudos


Como funciona o YouTube?
http://www.tecmundo.com.br/youtube/48298-como-funciona-o-
youtube-ilustracao-.htm
Como funciona o DropBox?
http://www.techtudo.com.br/dicas-e-
tutoriais/noticia/2012/02/como-usar-o-dropbox.html
https://www.dropbox.com/pt_BR/help/90
Falhas do Servio da Google e DropBox
http://canaltech.com.br/noticia/google/Servico-de-busca-do-Google-
ficou-fora-do-ar-nesta-sexta-feira-4/
http://www.correiodoestado.com.br/noticias/fora-do-ar-ha-dias-
dropbox-afirma-que-todos-os-arquivos-estao-seguros/205037/

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Escalabilidade em Sistemas Distribudos


Um sistema descrito escalvel se permanece
eficiente quando h um aumento significativo
no nmero de recursos e no nmero de
usurios.
Controlar o custo dos recursos fsicos;
Controlar a perda de desempenho;
Impedir que os recursos de software se esgotem;
Evitar gargalos de desempenho.

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Escalabilidade em Sistemas Distribudos


A escalabilidade pode ser medida segundo trs
dimenses:
Escalabilidade de tamanho: fcil adicionar
mais usurios e recursos no sistema;
Escalabilidade geogrfica: usurios e recursos
podem estar distantes entre si;
Escalabilidade administrativa: fcil gerenciar,
mesmo que abranja muitas organizaes
administrativas diferentes;
Observao: A maioria dos sistemas leva em conta, e at um
certo ponto, escalabilidade de tamanho. Hoje em dia, os
desafios esto em escalabilidade geogrfica e administrativa.

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Escalabilidade em Sistemas Distribudos

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Escalabilidade em Sistemas Distribudos

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Escalabilidade em Sistemas Distribudos


Quando um sistema escalvel contm essas vrias
dimenses, muitas vezes apresenta queda de
desempenho na medida em que ampliado.
Perigoso: Pensar distribudo em um ambiente
centralizado.
Conceito Exemplo

Servios Centralizados nico servidor para todos os


dados

Dados Centralizados Lista telefnica on-line

Algoritmos Centralizados Fazer roteamento com base em


informaes completas

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Escalabilidade em Sistemas Distribudos


Problemas relacionados a Escalabilidade de
tamanho:
Ao inserirmos continuamente mais usurios tendemos a chegar a um
ponto onde o servidor centralizado atinja seu limite operacional,
transformando-se no gargalo do sistema. Mesmo que admitamos que
esse servidor tenha capacidade de processamento e de armazenagem
ilimitadas, ainda assim sofrer restries devido a sua capacidade de
comunicao ser limitada.

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Tcnicas para aplicar a Escalabilidade em SD


Ocultar latncia de comunicao;
Distribuio;
Replicao.

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Tcnicas para aplicar a Escalabilidade em SD


Ocultar latncia de comunicao:
A ideia central simples: evita-se esperar por respostas
a requisies remotas (e lentas). Uma requisio a uma
mquina remota fica pendente, enquanto esta
liberada para continuar executando trabalhos teis ao
lado requisitante.

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Tcnicas para aplicar a Escalabilidade em SD


Ocultar latncia de comunicao:
Evitar esperar por respostas; fazer outra
coisa:
Usar comunicao assncrona;
Ter um tratador separado para
respostas/solicitaes que cheguem;
Problema: nem toda aplicao se encaixa
nesse modelo.

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo
Tcnicas para aplicar a Escalabilidade em SD
Distribuio:
A ideia distribuir entre vrios computadores os
servios e dados. Decompondo os componentes em
partes menores, que por sua vez so distribudas por
todo o sistema distribudo.
O espao de nomes do
DNS organizado em
hierarquia em uma rvore
de domnios, dividida em
zonas de superposio em
acordo com a figura.
Assim, nenhum servidor
prestar todos os servios
nem possuir todos os
dados, portanto se um
servidor falhar, nem tudo
est perdido.

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Tcnicas para aplicar a Escalabilidade em SD


Distribuio:
Particionar dados e computaes entre
mltiplas mquinas:
Mover computaes para os clientes (AJAX);
Servios de distribuio de nomes
descentralizados (DNS);
Servios de informao descentralizados
(WWW)

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Tcnicas para aplicar a Escalabilidade em SD


Replicao/caching:
Aumenta a disponibilidade dos servios e
melhora o balanceamento de carga no
sistema, resultando na melhoria do
desempenho;
Caching uma forma de replicao geralmente
controlada pelo cliente. A existncia de vrias
cpias pode levar a problemas de consistncia;
Se for necessrio ter garantias fortes de
consistncia tem de se atualizar as cpias
imediatamente.
Sistemas Distribudos 8 Perodo
Metas de um Sist. Distribudo

Tcnicas para aplicar a Escalabilidade em SD


Replicao/caching:
Fazer cpias de dados em mquinas distintas:
Servidores de arquivos e bancos de dados
replicados;
Sites Web espelhados;
Caches Web (em navegadores e proxies [HTTP
caching proxy]);
Cache de arquivos (no servidor e no cliente);

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Tcnicas para aplicar a Escalabilidade em SD


Algoritmos Descentralizados
Caractersticas dos algoritmos descentralizados:
Nenhuma mquina tem informaes completas sobre o estado
do sistema;
As mquinas tomam decises tendo como base somente
informaes locais;
A falha de uma mquina no arruna o algoritmo;
No h nenhuma premissa implcita quanto existncia de um
relgio global.

Sistemas Distribudos 8 Perodo


Metas de um Sist. Distribudo

Tcnicas para aplicar a Escalabilidade em SD


Aplicar tcnicas de escalabilidade
relativamente fcil, exceto por:
A existncia de mltiplas cpias (por exemplo,
caches replicados) pode levar a inconsistncias:
alterao de uma cpia a faz distinta das demais;
Manter cpias sempre consistentes de maneira geral
requer sincronizao global para cada modificao;
Sincronizao global dificulta escalabilidade.
Observao
Se podemos tolerar inconsistncias, podemos reduzir a
necessidade de sincronizao global, mas tolerar
inconsistncias dependente da aplicao.

Sistemas Distribudos 8 Perodo


Dvidas

Pgina do Professor Mauro:


http://www.dai.ifma.edu.br/~mlcsilva
Sistemas Distribudos 8 Perodo
Prxima Aula

Tipos de Sistemas Distribudos (Cluster e Grid)

Sistemas Distribudos 8 Perodo