Buscar

Sistemas Distribuidos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução aos Sistemas Distribuídos
Fernando Silva
Computer Science Department
University of Porto, School of Sciences
http://www.dcc.fc.up.pt/~fds
Baseados no livro e slides de Andrew Tanenbaum e Maarten van Steen.
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 1 / 26
Definição para Sistema Distribuído
Possíveis definições:
“Um sistema constituído por um conjunto de computadores
independentes visto pelos utilizadores do sistema como sendo um
sistema coerente e único.” (Tanenbaum)
“Um sistema no qual componentes de hardware ou software
localizadas em computadores em rede comunicam e coordenam as
suas acções através da troca de mensagens” (Coulouris)
“Um sistema no qual a falha de um computador que nem sequer
sabíamos existir, pode tornar o nosso computador não usável”
(Lamport)
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 2 / 26
Definição para Sistema Distribuído (2)
Aspectos relevantes na definição de Tanenbaum & van Steen:
computadores (processos) independentes
sistema único ⇒ middleware
Local OS 1 Local OS 2 Local OS 3 Local OS 4
Appl. A Application B Appl. C
Computer 1 Computer 2 Computer 4Computer 3
Network
Distributed system layer (middleware)
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 3 / 26
Definição para Sistema Distribuído (3)
Podemos então caracterizar um Sistema Distribuído pelas seguintes
propriedades:
constituído por múltiplos computadores (processos)
ligados por uma rede
I portanto, não partilham memória,
I e comunicam apenas por mensagens
coordenam acções e cooperam entre si
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 4 / 26
Sistemas distribuídos não são redes
A computação distribuída não é o mesmo que redes de comunicação:
As redes preocupam-se com
I o envio de mensagens de um ponto A para outro B
I e não com o que se faz com a mensagem
A computação distribuída
I assume que existe alguma forma de enviar a mensagem
(o transporte da mensagem é assegurado pela rede de comunicação)
I preocupa-se com as propriedades dessas mensagens
I e como construir um sistema com o uso de mensagens
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 5 / 26
Algumas dificuldades na concretização de um SD
Partilha
I dados
I processamento
I consistência
Descoberta
I como localizar os recursos
I uma vez encontrados, como usá-los?
Modelos de programação
I complexidade e dimensão dos sistemas
I não-determinismo no seu funcionamento
I torna os modelos de programação necessariamente complexos.
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 6 / 26
Falhas operacionais em sistemas
Sistema não distribuído
I quando falha, esta é total
I quando ocorre uma falha, sabemos que ocorreu
I uma estratégia de recuperação: re-iniciar
Sistema distribuído
I a falha pode ser parcial (apenas em alguns elementos)
I a falha pode não ser conhecida
I requer uma estratégia para lidar com falhas
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 7 / 26
Exemplos de Sistemas Distribuídos
A Internet e a Web
Sistema de ficheiros (áreas) dos alunos na FCUP
Aplicações P2P: e.g. Napster, Gnutella, Freenet, Kazaa, Bittorrent,
Skype,
Computação voluntária: SETI@home, Folding@home, . . .
(ver “distributed computing projects” na wikipedia)
Sistema SIBS (Gestão de caixas bancárias automáticas)
Sistemas de gestão de inventários em cadeias de supermercados
Sistemas de gestão de saúde (SONHO do Min. Saúde)
...
Arquitecturas: cliente-servidor e peer-to-peer
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 8 / 26
Razões a favor de sistemas distribuídos
Funcionalidades e capacidades distribuídas
I clientes / servidores
I recolha de informação / processamento
Domínio da aplicação intrinsecamente distribuído
I caixa de registo e sistema de inventário numa cadeia de supermercados
I sistema de gestão de dados administrativos numa rede hospitalar
Desempenho: distribuição de carga, dados e processamento
I permite distribuir tarefas de modo a optimizar o desempenho geral
I mais CPUs, maior capacidade de processamento
I vantagem económica: custo/performance
Expansibilidade (scalability)
I utilizadores (e processos), dispersão física e administração
Disponibilidade e tolerância a falhas
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 9 / 26
Objectivos na concepção de um sistema distribuído
Acessibilidade - tornar acessíveis recursos eventualmente dispersos
fisicamente.
Transparência (da distribuição)
I capacidade de esconder dos utilizadores a distribuição física dos
recursos
I a visão deverá ser de um sistema único e consistente
Aberto
I capacidade de o sistema ser implementado de diferentes formas
Expansível (scalability)
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 10 / 26
Transparência na distribuição
Transparência Descrição
Acesso Esconder diferenças na representação dos dados e como
aceder a recursos
Localização Esconder a localização dos recursos
Migração Poder mudar um recurso sem afectar o modo como é
acedido
Recolocação Poder mudar a localização de recursos durante o seu uso
Replicação Esconder a existência de múltiplas réplicas de um recurso
(associado à transparência de localização)
Concorrência Esconder a coordenação necessária para aceder a recursos
partilhados e assegurar consistência
Falhas Esconder falhas e possíveis recuperações de recursos
Transparência é um objectivo em SDs, mas alcançá-lo é difícil.
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 11 / 26
Grau de transparência da distribuição
Observação: pretender transparência completa pode ser pedir demais;
nem sempre há interesse em esconder a localização dos recursos
I e.g. a partilha de uma impressora
por vezes é impossível esconder completamente falhas no sistema,
I como distinguir um computador muito lento de uma falha, ou
I como determinar se um servidor efectuou de facto uma operação antes
de um crash?
pode ter custos elevados no desempenho do sistema
I manter uma cache Web actualizada com a cópia original,
I transferir para disco as operações de escrita para assegurar tolerância a
falhas
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 12 / 26
Abertura de um sistema distribuído
Deve ser capaz de interagir com outros sistemas abertos,
independentemente do ambiente. Para isso precisam de:
I ter interfaces bem definidas e públicas
I suportar portabilidade das aplicações
I serem facilmente inter-operáveis
Deve ser independente da heterogeneidade do seu ambiente de
execução:
I plataformas (hardware + software)
I linguagens de programação
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 13 / 26
Middleware e abertura
Num SD baseado num middleware aberto, os protocolos em cada camada
do middleware têm de ser os mesmos, assim como as interfaces
disponibilizadas às aplicações.
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 14 / 26
Escala em sistemas distribuídos
A expansibilidade de um sistema distribuído,
envolve pelo menos 3 componentes:
I dimensão: número de utilizadores e/ou processos
I dispersão geográfica: distância máxima entre nós
I administração: número de domínios administrativos
a grande maioria dos sistemas apenas olha à expansibilidade
relacionada com a dimensão;
hoje, os desafios são nas outras duas dimensões, e.g.
I realização de plataformas para computação Grid e computação na
Cloud
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 15 / 26
Técnicas para assegurar scalability
Minorar latência de comunicação: enquanto espera por uma
resposta, faz outra coisa:
I usar o mais possível comunicação assíncrona
I ter um handler separado para a respostaem espera
I Dificuldade: nem todas as aplicações encaixam neste modelo.
Distribuição: dividir dados e computação por múltiplas máquinas:
I deslocar computações para os clientes (Java applets)
I descentralizar o serviço de nomes (DNS)
I descentralizar os sistemas de informação (WWW)
Replicação/Caching: tornar disponível em diferentes máquinas
cópias dos dados:
I replicação em servidores de ficheiros e bases de dados
I cópias de Web sites (mirrors)
I Web caches (em browsers e proxies)
I Caching de ficheiros (no servidor e no cliente)
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 16 / 26
Scalability: dificuldades
A replicação e caching
I reduz latência da comunicação
I distribui processamento
mas pode originar problemas de consistência
I modificar uma cópia torna-a diferente das demais
manter a informação consistente, requer sincronização global em
cada modificação
I assegurar sincronização global impede soluções de grande escala
Observações:
I se pudermos tolerar alguma inconsistência, reduzimos a necessidade de
sincronização global
I a tolerância de cópias não consistentes depende do tipo de aplicação
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 17 / 26
Falácias no desenvolvimento de sistemas distribuídos
Premissas que nem sempre se verificam:
A rede é fiável
A rede é segura
A rede é homogénea
A topologia não muda
A latência é zero
A largura de banda é infinita
O transporte de mensagens tem custo zero
Não existe administrador
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 18 / 26
Tipos de sistemas distribuídos
Sistemas distribuídos de computação
Sistemas distribuídos de informação
Sistemas distribuídos úbiquos
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 19 / 26
Sistemas distribuídos de computação
Configurados para computação de elevado desempenho (HPC):
Computação em clusters
I nós homogéneos (mesmo OS e hardware quase idêntico)
I um nó de administração
Computação em Grid
I nós heterogéneos
I dispersos através de várias organizações e WANs
Local OSLocal OS Local OS Local OS
Standard network
Component
of
parallel
application
Component
of
parallel
application
Component
of
parallel
applicationParallel libs
Management
application
High-speed network
Remote access
network
Master node Compute node Compute node Compute node
Sistemas distribuídos de informação
Inúmeros SDs em uso são no essencial sistemas de informação tradicionais
que integram sistemas antigos (legacy). E.g. sistemas transaccionais.
BEGIN_TRANSACTION(server, transaction);
READ(transaction, file-1, data);
WRITE(transaction, file-2, data);
newData := MODIFIED(data);
IF WRONG(newData) THEN
ABORT_TRANSACTION(transaction);
ELSE
WRITE(transaction, file-2, newData);
END_TRANSACTION(transaction);
END IF;
Essencial: todas as operações READ e WRITE são executadas e o seu
efeito é tornado permanente com a execução de END_TRANSACTION.
Uma transacção constitui uma operação atómica.
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 21 / 26
Sistemas distribuídos de informação: transacções
Transacção é um conjunto de operações sobre o estado de um objecto
(e.g. base de dados) que satisfaz as propriedades (ACID):
Atomicidade: as operações ou sucedem todas, ou falham todas. A
falha de uma transacção falha, não afecta o estado do objecto.
Consistência: estabelece sempre transições de estado válidas.
Isolamento: as transacções não interferem umas com as outras.
Durabilidade: depois da sua execução, o seu efeito é permanente.
TP monitor
Server
Server
Server
Client
application
Requests
Reply
Request
Request
Request
Reply
Reply
Reply
Transaction
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 22 / 26
Integração de aplicações empresariais
Usar um monitor para coordenar a execução de uma transacção, faz
sentido,
mas, em muitos casos, precisamos de separar a aplicação da base de
dados sobre a qual intervém.
Solução: usar mecanismos de comunicação entre aplicações:
I Invocação remota de procedimentos (RPC)
I Middleware orientado por mensagens (MOM)
Server-side
application
Server-side
application
Server-side
application
Client
application
Client
application
Communication middleware
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 23 / 26
Sistemas Distribuídos Ubíquos
A próxima geração de sistemas distribuídos terá
nós pequenos e móveis
integrados num sistema maior
Alguns requisitos:
Mudança de contexto: as alterações devem ser imediatamente
reconhecidas.
Composição ad-hoc: cada nó poderá ser usado de diferentes formas
por diferentes utilizadores.
Partilha é o default: os nós ligam-se e desligam-se, fornecendo
partilha de serviços. Requer simplicidade.
Observação: ubiquidade e transparência nem sempre casam bem.
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 24 / 26
SD úbiquos: exemplos
Sistemas electrónicos de saúde: periféricos próximos da pessoa
onde e como guardar os dados que estão a ser vigiados?
como evitar perder dados cruciais?
o que é preciso para propagar alertas?
como assegurar segurança?
como podem os médicos dar parecer online?
body-area network body-area network
ECG sensor
Motion sensors
Tilt sensor
PDA
Transmitter
External
storage
GPRS/UMTS
(a) (b)
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 25 / 26
SD úbiquos: exemplos
Redes de sensores: os nós aos quais os sensores estão ligados são:
muitos (10-1000)
simples (i.e. quase sem memória, CPU, comunicação)
operados a bateria
Operator's site
Sensor network
Sensor data
is sent directly
to operator
Operator's site
Sensor network
Query
Sensors
send only
answers
Each sensor
can process and
store data
(a)
(b)
Fernando Silva (DCC-FCUP) Introdução aos Sistemas Distribuídos 26 / 26

Outros materiais