Tipos de Sistemas Distribuídos
Pedro Ferreira
Departamento de Informática
Tipos de Sistemas Distribuídos
Existem três tipos de sistemas distribuídos:
– Sistemas de Computação Distribuídos
Computação de alto desempenho com vários computadores
– Sistemas de Informação Distribuídos
Integração de diversos sistemas de informação
– Sistemas “Pervasivos” Distribuídos
dinâmicos
+ ou - estáticos
Tipos de Sistemas Distribuídos
Existem três tipos de sistemas distribuídos:
– Sistemas de Computação Distribuídos
Computação de alto desempenho com vários computadores
– Sistemas de Informação Distribuídos
Integração de diversos sistemas de informação
– Sistemas “Pervasivos” Distribuídos
Sistemas de Computação Distribuída
Clusters
Clusters
Definição: conjunto de várias máquinas “comuns” ligadas por uma rede de alto
desempenho de tal forma a trabalharem como um super-computador
Usado para processamento paralelo (i.e., criam-se processos em diferentes nós)
Melhor relação custo benefício que um super-computador:
– Super-computador com 500 processadores é muito mais caro que 500 computadores “normais” do tipo PC
Exemplo: Cluster Beowulf (baseado em Linux)
– Middleware: (1.) gestão e distribuição de tarefas
Clusters
Definição: conjunto de várias máquinas “comuns” ligadas por uma rede de alto
desempenho de tal forma a trabalharem como um super-computador
Usado para processamento paralelo (i.e., criam-se processos em diferentes nós)
Melhor relação custo benefício que um super-computador:
– Super-computador com 500 processadores é muito mais caro que 500 computadores “normais” do tipo PC
Exemplo: Cluster Beowulf (baseado em Linux)
– Middleware: (1.) gestão e distribuição de tarefas
(2.) comunicação eficiente entre processos
Distribui tarefas e coordena computação
Clusters
Definição: conjunto de várias máquinas “comuns” ligadas por uma rede de alto
desempenho de tal forma a trabalharem como um super-computador
Usado para processamento paralelo (i.e., criam-se processos em diferentes nós)
Melhor relação custo benefício que um super-computador:
– Super-computador com 500 processadores é muito mais caro que 500 computadores “normais” do tipo PC
Exemplo: Cluster Beowulf (baseado em Linux)
– Middleware: (1.) gestão e distribuição de tarefas
(2.) comunicação eficiente entre processos
Distribui tarefas e coordena computação distribuída. Executa tarefas definidas pelo master.
Clusters
Definição: conjunto de várias máquinas “comuns” ligadas por uma rede de alto
desempenho de tal forma a trabalharem como um super-computador
Usado para processamento paralelo (i.e., criam-se processos em diferentes nós)
Melhor relação custo benefício que um super-computador:
– Super-computador com 500 processadores é muito mais caro que 500 computadores “normais” do tipo PC
Exemplo: Cluster Beowulf (baseado em Linux)
– Middleware: (1.) gestão e distribuição de tarefas
(2.) comunicação eficiente entre processos
Distribui tarefas e coordena computação distribuída. Executa tarefas definidas pelo master. Usada para comunicação inter-nós.
Em junho de 2013
Lista de super-computadores mais rápidos:
http://www.top500.org
– De
http://s.top500.org/static/lists/2013/06/TOP500_201306_Poster.pdf
:
Computação em Grid
Uma das principais facilidades em se lidar com clusters é o ambiente
homogéneo, i.e., todas as máquinas são iguais e correm o mesmo software
Grids são sistemas distribuídos usados para computação em larga escala, mas
com um alto grau de heterogeneidade:
– Cada nó pode ter hardware, sistema operativo, rede, administração, e
políticas de segurança diferentes
– Esta heterogeneidade tem de ser tratada pelo middleware
Os recursos (processadores, armazenamento, telescópios, aceleradores de
partículas, etc.) e utilizadores são agrupados em organizações virtuais
Utilizadores de uma organização virtual têm privilégios de acesso aos recursos
Computação em Grid
Computação em Grid
O middleware dá acesso aos recursos a utilizadores da sua organização, ainda
que os recursos estejam em domínios administrativos diferentes
Arquitectura em 4 níveis para o middleware de grids:
Computação em Grid
O middleware dá acesso aos recursos a utilizadores da sua organização, ainda
que os recursos estejam em domínios administrativos diferentes
Arquitectura em 4 níveis para o middleware de grids:
Controlo dos recursos no site (pesquisar estado e capacidade; alocação e
liberação do recurso) Protocolos de
comunicação seguros usados para aceder
recursos e fazê-los interagir.
Controlo de um recurso: obter configuração; criar processos; ler dados.
Também realiza controlo de acesso. Coordena o acesso a
múltiplos recursos: descoberta, alocação e
escalonamento em múltiplos recursos. Aplicações que usam os recursos da organização
virtual.
Sistemas de Informação Distribuídos
Sistemas de Processamento de Transações
Integração de Aplicações Corporativas
Sistemas de Processamento de Transações
Transações são usualmente empregues em operações com bases de dados
mas não só… no futuro, talvez o sejam em todo lado (memória transaccional)
O objectivo fundamental das transações é
– proteger um recurso (e.g., base de dados) contra acessos simultâneos por
parte de diversos processos
– permitir que um processo faça diversas operações sobre um ou mais
recursos, como se estas fossem uma única operação atómica (indivisível)
Modo de funcionamento
1. indicar início de transação
2. aceder uma ou mais vezes ao recurso (e.g., leitura e/ou escrita)
3. indicar que as alterações deverão ser permanentes (commit) ou que se
pretende abortar (i.e., esquecer) as alterações (abort)
caso aconteça uma falha antes da execução do passo 3, o sistema
transacional aborta todos os acessos efetuados após o passo 1
Sistemas de Processamento de Transações: Interfaces
Exemplo: reserva de bilhetes aéreos
T1:
BEGIN_TRANSACTION
reservar Lisboa Londres reservar Londres NY reservar NY SF
END_TRANSACTION
Primitive Description
BEGIN_TRANSACTION Make the start of a transaction
END_TRANSACTION Terminate the transaction and try to commit ABORT_TRANSACTION Kill the transaction and restore the old values READ Read data from a file, a table, or otherwise WRITE Write data to a file, a table, or otherwise
T2:
BEGIN_TRANSACTION
reservar Paris NY reservar NY SF
Sistemas de Processamento de Transações: Interfaces
Exemplo: reserva de bilhetes aéreos
T1:
BEGIN_TRANSACTION
reservar Lisboa Londres reservar Londres NY reservar NY SF
END_TRANSACTION
Primitive Description
BEGIN_TRANSACTION Make the start of a transaction
END_TRANSACTION Terminate the transaction and try to commit ABORT_TRANSACTION Kill the transaction and restore the old values READ Read data from a file, a table, or otherwise WRITE Write data to a file, a table, or otherwise
T2:
BEGIN_TRANSACTION
reservar Paris NY reservar NY SF
END_TRANSACTION
As duas não podem ser confirmadas se há
apenas um lugar vago no voo NY
SF
Sistemas de Processamento de Transações
Propriedades ACID das Transações
A
tomicidade: para um observador externo, uma transação executa na sua
totalidade ou não executa, i.e., acontece indivisivelmente
(se existirem falhas, é possível desfazer as alterações parciais das transações, e
um observador externo não deve ver essas alterações parciais)
C
onsistência: cada transação leva o sistema de um estado válido para um novo
estado válido
(as invariantes associadas às estruturas de dados permanecem válidas)
Seriabilidade (
Isolation): se diversas transações forem executadas em paralelo
sobre os mesmos recursos, o resultado é equivalente à execução dessas
transações uma após a outra
Persistência (
Durability): os resultados de uma transação que fez commit
Sistemas de Processamento de Transações
Transações Aninhadas:
– Transações que afetam vários recursos são divididas em subtransações – O uso de transações aninhadas pode levar a alguns problemas:
» Suponha uma transação t com duas subtransações t1 e t2, executadas em paralelo » Se t1 se confirmar e t2 abortar, o que devemos fazer?
Sistemas de Processamento de Transações
Transações Aninhadas:
– Transações que afetam vários recursos são divididas em subtransações – O uso de transações aninhadas pode levar a alguns problemas:
» Suponha uma transação t com duas subtransações t1 e t2, executadas em paralelo » Se t1 se confirmar e t2 abortar, o que devemos fazer?
Opção 1: os resultados de t1 valem (respeita-se a persistência de t1)
Sistemas de Processamento de Transações
Transações Aninhadas:
– Transações que afetam vários recursos são divididas em subtransações – O uso de transações aninhadas pode levar a alguns problemas:
» Suponha uma transação t com duas subtransações t1 e t2, executadas em paralelo » Se t1 se confirmar e t2 abortar, o que devemos fazer?
Opção 1: os resultados de t1 valem (respeita-se a persistência de t1)
Mais correcto!
Sistemas de Processamento de Transações
Transações Aninhadas:
– Transações que afetam vários recursos são divididas em subtransações – O uso de transações aninhadas pode levar a alguns problemas:
» Suponha uma transação t com duas subtransações t1 e t2, executadas em paralelo » Se t1 se confirmar e t2 abortar, o que devemos fazer?
Opção 1: os resultados de t1 valem (respeita-se a persistência de t1)
Sistemas de Processamento de Transações
Monitor de Processamento de Transações:
– Middleware usado na integração de vários sistemas de informação através
do uso de transações
– Oferece uma interface de transações para sistemas distribuídos
» Exemplo de uso: concretizar transferência de dinheiro entre bases de
dados de bancos diferentes
Integração de Aplicações Corporativas
Nem todas as aplicações são bases de dados, e em alguns casos é preciso integrar
aplicações sem aceder às bases de dados que estão por trás
As aplicações devem ser capazes de comunicar umas com as outras, e não permitir que
os “clientes” acedam às suas bases de dados (como nos monitores de transacções)
Existem vários modelos de comunicação, mas em geral, a integração de aplicações é
feita através de middleware orientado a mensagens
Sistemas “Pervasivos” Distribuídos
Home Systems
Sistemas de Saúde Electrónicos
Redes de Sensores
Sistemas “Pervasivos” Distribuídos
Fazem uso de telemóveis, sistemas embebidos e também computadores normais!
Conceito fundamental: Contexto
– O contexto de um sistema distribuído é tudo que o cerca » Localização (via GPS)
» Conectividade (há rede?) » Nível de energia
Requisitos dos sistemas “pervasivos”
– Aceitar e reagir a mudanças de contexto – Encorajar composição ad hoc
– Ter como comportamento padrão a partilha de dados
Na ocorrência de mobilidade, os dispositivos devem suportar adaptações ao ambiente
dependentes das aplicações
– Descobrir serviços e reagir de acordo
Home Systems
Construídos sobre redes domésticas, que usualmente integram:
– Um ou mais PCs
– Uma série de aparelhos electrónicos como TVs, equipamento de áudio,
consolas, telemóveis, TV box, etc.
– Dispositivos como câmaras de vigilância, controlos de luz, etc.
A ideia é que todo esse equipamento seja interligado para que se possa:
– Controlar o volume da TV e do equipamento de áudio pelo telemóvel
– Ver a saída da câmara de vigilância no PC
– Exportar fotos no PC para as visualizar na TV
Requisito número 1:
o sistema deve ser auto-configurável e auto-gerido
– Não vamos esperar que nossa avó consiga ligar todas essas coisas na sua
casa nova
Sistemas de Saúde Electrónicos
Considere uma pessoa que sofre de uma doença grave e, por exemplo, pode ter um
ataque cardíaco a qualquer momento
Faz-se uma BAN (Body-Area Network) nesse indivíduo utilizando uma série de sensores
(e.g., posição, movimento, batimento cardíaco, respiração) e um sistema wireless (fios causariam incómodo)
O sistema recolhe dados sobre o indivíduo que ajudam o médico a acompanhar a
evolução da doença e/ou permitem a um sistema remoto chamar uma ambulância em caso de problemas urgentes
Sistemas de Saúde Electrónicos
Considere uma pessoa que sofre de uma doença grave e, por exemplo, pode ter um
ataque cardíaco a qualquer momento
Faz-se uma BAN (Body-Area Network) nesse indivíduo utilizando uma série de sensores
(e.g., posição, movimento, batimento cardíaco, respiração) e um sistema wireless (fios causariam incómodo)
O sistema recolhe dados sobre o indivíduo que ajudam o médico a acompanhar a
evolução da doença e/ou permitem a um sistema remoto chamar uma ambulância em caso de problemas urgentes
Requisitos: robustez (e se algo falha?) e segurança (e se alguém atacar a rede?),…
Dados são armazenados
num dispositivo e
transferidos periodicamente
Sistemas de Saúde Electrónicos
Considere uma pessoa que sofre de uma doença grave e, por exemplo, pode ter um
ataque cardíaco a qualquer momento
Faz-se uma BAN (Body-Area Network) nesse indivíduo utilizando uma série de sensores
(e.g., posição, movimento, batimento cardíaco, respiração) e um sistema wireless (fios causariam incómodo)
O sistema recolhe dados sobre o indivíduo que ajudam o médico a acompanhar a
evolução da doença e/ou permitem a um sistema remoto chamar uma ambulância em caso de problemas urgentes
Requisitos: robustez (e se algo falha?) e segurança (e se alguém atacar a rede?),…
Dados são armazenados
num dispositivo e
transferidos periodicamente
Dados são enviados continuamente para uma central de armazenamento.
Redes de Sensores
Redes de sensores são fundamentais para muitas aplicações “pervasivas”
Uma rede de sensores consiste em muitos pequenos sensores (temperatura,
movimento, radiação, etc.) com algum poder de processamento e comunicação
– Os elementos da rede são em geral muito limitados em termos de
processamento, comunicação e energia
Redes de Sensores
As redes de sensores normalmente operam como bases de dados distribuídas
Exemplo: monitorização de estradas
– Considere uma rede de sensores nas estradas de Portugal
– Lançam-se consultas do tipo: “Como está o tráfego na A2?”
– Para responder a esta consulta, os sensores espalhados pela A2 devem
colaborar com os seus dados. Há duas soluções possíveis:
(a.) Cada sensor envia os seus dados para uma base de dados centralizada
e uma “aplicação comum” consolida o resultado
(b.) Encaminha-se a consulta aos sensores relevantes que calculam a
resposta, sendo a aplicação/operador responsável por consolidar um
resultado final
Redes de Sensores
Solução (a.)
Problema: envia muita informação – desperdício de rede e energia.
Redes de Sensores
Solução (a.)
Problema: envia muita informação – desperdício de rede e energia.
Solução (b.)
Problema: desperdiça a capacidade de agregação da rede (podia ser retornada
muito menos informação)
Redes de Sensores
Uma terceira solução melhor ainda, seria fazer o processamento dos dados na rede:
– Define-se uma arvore de distribuição na rede de sensores – Difunde-se a consulta nessa arvore
– Os resultados são enviados de volta (devidamente agregados) até a raiz da arvore Solução (a.)
Problema: envia muita informação – desperdício de rede e energia.
Solução (b.)
Problema: desperdiça a capacidade de agregação da rede (podia ser retornada
muito menos informação)