Tipos de Sistemas Distribuídas
Alysson Neves Bessani
Departamento de Informática
Faculdade de Ciências da Universidade de Lisboa
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 que tem em conta mobilidade, autonomia e mudanças no ambiente
+ ou - estáticos
© 2008-2011. Alysson Bessani. Reprodução proibida sem autorização prévia
Sistemas de Computação Distribuída
ClustersComputação em Grid
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.
© 2008-2011. Alysson Bessani. Reprodução proibida sem autorização prévia
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
Gridssã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 tem privilégios de acesso aos recursos
dessa organização
Computação em Grid
© 2008-2011. Alysson Bessani. Reprodução proibida sem autorização prévia
Sistemas de Informação Distribuídos
Sistemas de Processamento de TransacçõesIntegração de Aplicações Corporativas
Sistemas de Processamento de Transacções
Transacções são usualmente empregadas em interacções com bases de dados
mas não só… no futuro, talvez esteja em todo lado (memória transaccional)
O objectivo fundamental das transacçõ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 transacção
2. aceder uma ou mais vezes ao recurso (e.g., leitura e/ou escrita)
3. indicar que se quer que as alterações fiquem permanentes (commit) ou que se quer abortar (i.e., esquecer) as alterações (abort)
caso aconteça uma falha antes da execução do passo 3, o sistema transaccional aborta todos os acessos efectuados desde o passo 1
© 2008-2011. Alysson Bessani. Reprodução proibida sem autorização prévia
Sistemas de Processamento de Transacções: Interfaces
Exemplo
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 Transacções
Propriedades ACID
Atomicidade: para um observador externo, uma transacção executa na sua
totalidade ou não executa
(se existirem falhas, é possível desfazer as alterações parciais das transacções, e um observador externo não deve ver essas alterações parciais)
Consistência: cada transacção leva o sistema de um estado válido para um
novo estado válido
(os invariantes associados às estruturas de dados permanecem válidas)
Seriabilidade (Isolation): se diversas transacções forem executadas em paralelo
sobre os mesmos recursos, o resultado é equivalente a execução dessas transacções uma após a outra
Persistência (Durability): os resultados de uma transacção que fez commit
© 2008-2011. Alysson Bessani. Reprodução proibida sem autorização prévia
Sistemas de Processamento de Transacções
Transacções Aninhadas:
– Transacções que afectam vários recursos são divididas em subtransacções – O uso de transacções aninhadas pode levar a alguns problemas:
» Suponha uma transacção t com duas subtransacçõ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 durabilidade de t1)
Opção 2: os resultados de t1 não valem (respeita-se a durabilidade de t)
Mais correcto!
Sistemas de Processamento de Transacções
Monitor de Processamento de Transacções:
– Middleware usado na integração de vários sistemas de informação através do uso de transacções
– Oferece uma interface de transacções para sistemas distribuídos
» Exemplo de uso: concretizar transferência de dinheiro entre bases de dados de bancos diferentes
© 2008-2011. Alysson Bessani. Reprodução proibida sem autorização prévia
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 as bases de dados que estão por trás
As aplicações devem ser capazes de se comunicar uma com a outra, e não permitir que
“clientes” acedam 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 se dá
através de middleware orientado a mensagens
Sistemas “Pervasivos” Distribuídos
Home SystemsSistemas de Saúde Electrónicos Redes de Sensores
© 2008-2011. Alysson Bessani. Reprodução proibida sem autorização prévia
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 presença de mobilidade, os dispositivos devem suportar adaptações ao ambiente
dependentes das aplicações
– Descobrir serviços e reagir de acordo
– Isto pode implicar em perda de transparência
Home Systems
Construídos sobre redes domésticas, que usualmente contém:
– Um ou mais PCs
– Uma série de aparelhos electrónicos como TVs, equipamento de áudio, consolas, telemóveis, TV box, etc.
– Dispositivos como cameras 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 camera de vigilância no PC
– Exportar minhas fotos no PC para as visualizar na TV (através da PS3)
Requisito número 1:sistema deve ser auto-configurável e auto-gerido
– Não vamos esperar que nossa avó consiga ligar todas essas coisas em sua casa nova ☺
© 2008-2011. Alysson Bessani. Reprodução proibida sem autorização prévia
Sistemas de Saúde Electrónicos
Considere um sujeito que sofre de alguma 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 colecta dados sobre o indivíduo e os dados 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
Requisitos: robustez (e se algo falhas?) e segurança (e se alguém atacar a rede?),…
Dados são armazenados em um dispositivo e
transferidos periodicamente
Dados são enviados continuamente a 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
© 2008-2011. Alysson Bessani. Reprodução proibida sem autorização prévia
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 seus dados. Há duas soluções possíveis:
(a.) Cada sensor envia 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
Uma terceira solução melhor ainda seria fazer o processamento dos dados na rede:
– Monta-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