You are on page 1of 27

1.

Introduo aos Sistemas Distribudos


Fernando Silva
DCC-FCUP

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

1 / 27

Agenda
Denio para Sistema Distribudo Razes para se Desenvolver um Sistema Distribudo Objectivos na Concepo de um Sistema Distribudo Falcias no Desenvolvimento de Sistemas Distribudos Tipos de Sistemas Distribudos

Baseados no livro e slides de Andrew Tanenbaum e Maarten van Steen.

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

2 / 27

Denio para Sistema Distribudo


Possveis denies: Um sistema constitudo 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 aces atravs da troca de mensagens (Coulouris) Um sistema no qual a falha de um computador que nem sequer sabamos existir, pode tornar o nosso computador no usvel (Lamport)

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

3 / 27

Denio para Sistema Distribudo (2)


Aspectos relevantes na denio de Tanenbaum & van Steen: computadores (processos) independentes sistema nico middleware
Computer 1 Appl. A Computer 2 Computer 3 Computer 4 Appl. C

Application B Distributed system layer (middleware)

Local OS 1

Local OS 2

Local OS 3

Local OS 4

Network

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

4 / 27

Denio para Sistema Distribudo (3)


Podemos ento caracterizar um Sistema Distribudo pelas seguintes propriedades: constitudo por mltiplos computadores (processos) ligados por uma rede
portanto, no partilham memria, e comunicam apenas por mensagens

coordenam aces e cooperam entre si

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

5 / 27

Sistemas distribudos no so redes


A computao distribuda no o mesmo que redes de comunicao: As redes preocupam-se com
o envio de mensagens de um ponto A para outro B e no com o que se faz com a mensagem

A computao distribuda
assume que existe alguma forma de enviar a mensagem (o transporte da mensagem assegurado pela rede de comunicao) preocupa-se com as propriedades dessas mensagens e como construir um sistema com o uso de mensagens

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

6 / 27

Algumas diculdades na concretizao de um SD


Partilha
dados processamento consistncia

Descoberta
como localizar os recursos uma vez encontrados, como us-los?

Modelos de programao
complexidade e dimenso dos sistemas no-determinismo no seu funcionamento torna os modelos de programao necessariamente complexos.

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

7 / 27

Falhas operacionais em sistemas


Sistema no distribudo
quando falha, esta total quando ocorre uma falha, sabemos que ocorreu uma estratgia de recuperao: re-iniciar

Sistema distribudo
a falha pode ser parcial (apenas em alguns elementos) a falha pode no ser conhecida uma estratgia para lidar com falhas

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

8 / 27

Exemplos de Sistemas Distribudos


A Internet e a Web Sistema de cheiros (reas) dos alunos na FCUP Aplicaes P2P: e.g. Napster, Gnutella, Freenet, Kazaa, Skype Computao voluntria: SETI@home, Folding@home, . . . (ver distributed computing projects na wikipedia) Sistema SIBS (Gesto de caixas bancrias automticas) Sistemas de gesto de inventrios em cadeias de supermercados Sistemas de gesto de sade (SONHO do Min. Sade) Sistemas de gesto de redes de sensores Sistemas de suporte a trabalho colaborativo Arquitecturas: cliente-servidor e peer-to-peer

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

9 / 27

Razes a favor de sistemas distribudos


Funcionalidades e capacidades distribudas
clientes / servidores recolha de informao / processamento

Domnio da aplicao intrinsecamente distribudo


caixa de registo e sistema de inventrio numa cadeia de supermercados sistema de gesto de dados administrativos numa rede hospitalar

Desempenho: distribuio de carga, dados e processamento


permite distribuir tarefas de modo a optimizar o desempenho geral mais CPUs, maior capacidade de processamento vantagem econmica: custo/performance

Expansibilidade (scalability)
utilizadores (e processos), disperso fsica e administrao

Disponibilidade e tolerncia a falhas

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

10 / 27

Objectivos na concepo de um sistema distribudo


Acessibilidade e partilha de recursos dispersos sicamente. Transparncia (da distribuio)
capacidade de esconder dos utilizadores a distribuio fsica dos recursos a viso dever ser de um sistema nico e consistente

Aberto
capacidade de o sistema ser implementado de diferentes formas

Expansvel (scalability)

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

11 / 27

Transparncia na distribuio
Transparncia Acesso Localizao Migrao Recolocao Replicao Concorrncia Falhas Descrio Esconder diferenas na representao dos dados e como aceder a recursos Esconder a localizao dos recursos Poder mudar um recurso sem afectar o modo como acedido Poder mudar a localizao de recursos durante o seu uso Esconder a existncia de mltiplas rplicas de um recurso (associado transparncia de localizao) Esconder a coordenao necessria para aceder a recursos partilhados e assegurar consistncia Esconder falhas e possveis recuperaes de recursos

Transparncia um objectivo em SDs, mas alcan-lo difcil.


Fernando Silva (DCC-FCUP) 1. Introduo aos Sistemas Distribudos 12 / 27

Grau de transparncia da distribuio


Observao: pretender transparncia completa pode ser pedir demais; nem sempre h interesse em esconder a localizao dos recursos
e.g. a partilha de uma impressora

por vezes impossvel esconder completamente falhas no sistema,


como distinguir um computador muito lento de uma falha, ou como determinar se um servidor efectuou de facto uma operao antes de um crash?

pode ter custos elevados no desempenho do sistema


manter uma cache Web actualizada com a cpia original, transferir para disco as operaes de escrita para assegurar tolerncia a falhas

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

13 / 27

Abertura de um sistema distribudo


Deve ser capaz de interagir com outros sistemas abertos, independentemente do ambiente. Para isso precisam de:
ter interfaces bem denidas e pblicas suportar portabilidade das aplicaes ser facilmente inter-operveis

Deve ser independente da heterogeneidade do seu ambiente de execuo:


plataformas (hardware + software) linguagens de programao

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

14 / 27

Middleware e abertura
Num SD baseado num middleware aberto, os protocolos em cada camada do middleware tm de ser os mesmos, assim como as interfaces disponibilizadas s aplicaes.

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

15 / 27

Escala em sistemas distribudos


A expansibilidade de um sistema distribudo, envolve pelo menos 3 componentes:
dimenso: nmero de utilizadores e/ou processos disperso geogrca: distncia mxima entre ns administrao: nmero de domnios administrativos

a grande maioria dos sistemas apenas olha expansibilidade relacionada com a dimenso; hoje, os desaos so nas outras duas dimenses, e.g.
realizao de plataformas para computao Grid e computao na Cloud

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

16 / 27

Tcnicas para assegurar scalability


Minorar latncia de comunicao: enquanto espera por uma resposta, faz outra coisa:
usar o mais possvel comunicao assncrona ter um handler separado para a resposta em espera Diculdade: nem todas as aplicaes encaixam neste modelo.

Distribuio: dividir dados e computao por mltiplas mquinas:


deslocar computaes para os clientes (Java applets) descentralizar o servio de nomes (DNS) descentralizar os sistemas de informao (WWW)

Replicao/Caching: tornar disponvel em diferentes mquinas cpias dos dados:


replicao em servidores de cheiros e bases de dados cpias de Web sites (mirrors) Web caches (em browsers e proxies) Caching de cheiros (no servidor e no cliente)
Fernando Silva (DCC-FCUP) 1. Introduo aos Sistemas Distribudos 17 / 27

Scalability: diculdades
A replicao e caching
reduz latncia da comunicao distribui processamento

mas pode originar problemas de consistncia


modicar uma cpia torna-a diferente das demais

manter a informao consistente, requer sincronizao global em cada modicao


assegurar sincronizao global impede solues de grande escala

Observaes:
se pudermos tolerar alguma inconsistncia, reduzimos a necessidade de sincronizao global a tolerncia de cpias no consistentes depende do tipo de aplicao

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

18 / 27

Falcias no desenvolvimento de sistemas distribudos


Premissas que nem sempre se vericam: A rede vel A rede segura A rede homognea A topologia no muda A latncia zero A largura de banda innita O transporte de mensagens tem custo zero No existe administrador

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

19 / 27

Tipos de sistemas distribudos


Sistemas distribudos de computao Sistemas distribudos de informao Sistemas distribudos biquos

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

20 / 27

Sistemas distribudos de computao


Congurados para computao de elevado desempenho (HPC): Computao em clusters
ns homogneos (mesmo OS e hardware quase idntico) um n de administrao

Computao em Grid
ns heterogneos dispersos atravs de vrias organizaes e WANs

Master node Management application Parallel libs Local OS

Compute node Component of parallel application Local OS

Compute node Component of parallel application Local OS

Compute node Component of parallel application Local OS

Remote access network

Standard network High-speed network

Sistemas distribudos de informao


Inmeros SDs em uso so no essencial sistemas de informao 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 operaes READ e WRITE so executadas e o seu efeito tornado permanente com a execuo de END_TRANSACTION. Uma transaco constitui uma operao atmica.
Fernando Silva (DCC-FCUP) 1. Introduo aos Sistemas Distribudos 22 / 27

Sistemas distribudos de informao: transaces


Transaco um conjunto de operaes sobre o estado de um objecto (e.g. base de dados) que satisfaz as propriedades (ACID): Atomicidade: as operaes ou sucedem todas, ou falham todas. A falha de uma transaco, no afecta o estado do objecto. Consistncia: estabelece sempre transies de estado vlidas. Isolamento: as transaces no interferem umas com as outras. Durabilidade: depois da sua execuo, o seu efeito permanente.
Server Reply Transaction Requests Request Client application Reply Reply TP monitor Reply Request Server Server Request

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

23 / 27

Integrao de aplicaes empresariais


Usar um monitor para coordenar a execuo de uma transaco, faz sentido, mas, em muitos casos, precisamos de separar a aplicao da base de dados sobre a qual intervm. Soluo: usar mecanismos de comunicao entre aplicaes:
Invocao remota de procedimentos (RPC) Middleware orientado por mensagens (MOM)
Client application Client application

Communication middleware

Server-side application

Server-side application

Server-side application

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

24 / 27

Sistemas Distribudos Ubquos


A prxima gerao de sistemas distribudos ter ns pequenos e mveis integrados num sistema maior Alguns requisitos: Mudana de contexto: as alteraes devem ser imediatamente reconhecidas. Composio ad-hoc: cada n poder ser usado de diferentes formas por diferentes utilizadores. Partilha o default: os ns ligam-se e desligam-se, fornecendo partilha de servios. Requer simplicidade. Observao: ubiquidade e transparncia nem sempre casam bem.

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

25 / 27

SD biquos: exemplos
Sistemas electrnicos de sade: perifricos prximos da pessoa onde e como guardar os dados que esto a ser vigiados? como evitar perder dados cruciais? o que preciso para propagar alertas? como assegurar segurana? como podem os mdicos dar parecer online?

Tilt sensor ECG sensor PDA Motion sensors Transmitter

External storage

GPRS/UMTS

body-area network (a)

body-area network (b)

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

26 / 27

SD biquos: exemplos
Redes de sensores: os ns aos quais os sensores esto ligados so: muitos (10-1000) simples (i.e. quase sem memria, CPU, comunicao) operados a bateria
Sensor network Operator's site

Sensor data is sent directly to operator (a)

Each sensor can process and store data Operator's site Query

Sensor network

Sensors send only answers (b)

Fernando Silva (DCC-FCUP)

1. Introduo aos Sistemas Distribudos

27 / 27

You might also like