Tipos de Sistemas Distribuídos Prof. Daniel Leite
Tipos de Sistemas Distribuídos Sistemas de Computação Distribuídos Voltado para computação de alto desempenho Clusters Grade Sistemas de Informação Distribuídos Sistemas de Processamento de Transações Integração de Aplicações Corporativas Sistemas Distribuídos Pervasivos Sistemas Domésticos Sistemas Eletrônicos para Transporte de Saúde Rede de Sensores
Tipos de Sistemas Distribuídos Clusters Foi tornando-se comum a medida que o preço do hardware foi diminuindo É executado em uma rede local, sobre os mesmos SO e máquinas com hardware semelhante. Ambiente local e homogêneo Utilizada quando exige-se muito processamento de um ambiente O processamento é paralelo por um único programa executado em várias máquinas
Tipos de Sistemas Distribuídos Clusters – Beowulf Fundamentado em 1994, pela NASA, com a finalidade de processar as informações espaciais recolhidas. Características A conexão dos nós pode ser feita por redes do tipo Ethernet (mais comum); Existe um servidor responsável por controlar todo o cluster quanto a distribuição de tarefas e processamento monitoração de falhas Este servidor é chamado de Front-end; Pode-se usar computadores comuns, inclusive obsoletos
Tipos de Sistemas Distribuídos Front-end Switch ... Nós
Tipos de Sistemas Distribuídos
Tipos de Sistemas Distribuídos Cluster - Mosix - Multicomputer Operating System for UnIX Conjunto de ferramentas de cluster para Linux, voltado ao tipo Balanceamento de Carga Uma de suas principais características é a não necessidade de aplicações e recursos de software voltados ao cluster, como acontece com o Beowulf É eficiente na tarefa de distribuição dinâmica de processamento entre os computadores do cluster Trabalha como se fosse um único supercomputador, por meio de conceitos de Distribuição de Processos e Balanceamento de Carga.
Tipos de Sistemas Distribuídos Grade Alto grau de heterogeneidade Não existe premissa sobre o ambiente que será executado: Hardware SO Redes Domínios administrativos Políticas de segurança Reuni recursos de diferentes pessoas ou organizações permitindo a colaboração. É uma forma de organização virtual
Tipos de Sistemas Distribuídos
Tipos de Sistemas Distribuídos Grade O middleware de Grade é voltado para fornecer acesso a recursos de diferentes domínios administrativos A arquitetura tem um peso muito forte em sua concepção e implementação
Tipos de Sistemas Distribuídos
Tipos de Sistemas Distribuídos Camada base Provê interfaces para recursos locais em um site específico São projetadas para permitir compartilhamento dos recursos computacionais dentro da organização virtual Provê funções para consultar o estado e as capacidades de um recurso Funciona em conjunto com funções para o gerenciamento de recursos propiamente dito Ex. Trava de recursos
Tipos de Sistemas Distribuídos Camada de conectividade Consiste em protocolos de comunicação para suportar transações da grade que abranjam a utilização de múltiplos recursos Conterá protocolos de segurança
Tipos de Sistemas Distribuídos Camada de recursos Responsável pelo gerenciamento de um único recurso, o controle de acesso Utiliza as funções fornecidas pela camada de conectividade e chama diretamente as interfaces disponibilizadas pela camada-base
Tipos de Sistemas Distribuídos Camada coletiva Trata de manipular o acesso a múltiplos recursos e normalmente consiste em serviços para descoberta de recursos, alocação e escalonamento de tarefas para múltiplos recursos, replicação de dados, etc.
Tipos de Sistemas Distribuídos Camada de aplicação Consiste em aplicação virtual que funcionam dentro de uma organização virtual e fazem uso do ambiente de computação em grade
Tipos de Sistemas Distribuídos As camadas coletivas, de conectividade e de recursos formam o cerne do que pode ser denominado de camada de middleware em grade
Tipos de Sistemas Distribuídos Sistemas de Informação Distribuídos Sistemas de Processamento de Transações Integração de Aplicações Corporativas
Tipos de Sistemas Distribuídos Sistemas de Informação Distribuídos Encontrada em organização que possuem uma grande quantidade de aplicações em rede que necessitam interoperarem Ex. Servidor, geralmente também de BD, disponibiliza acesso a programas remotos (clientes). Os clientes enviam requisições ao servidor e recebem uma resposta deste servidor. A aplicação de nível mais baixo permite que clientes empacotem várias requisições em uma única requisição maior, e as enviam para execução como uma transação distribuída. Esta transação ou executará todas as requisições, ou nenhuma
Tipos de Sistemas Distribuídos Sistemas de Informação Distribuídos A medida que as aplicações foram tornando-se mais sofisticadas e eram gradualmente separadas em componentes independentes, distinguindo Componentes de BDs Componentes de processamento A integração deveria ocorre de modo a permitir a aplicação se comunicar diretamente uma com as outras Grande indústria voltada para Integração Empresariais (EAI – Enterprise Application Integration) Sistemas de Processamento de Transações Integração de Aplicações Corporativas
Tipos de Sistemas Distribuídos Sistemas de Processamento de Transações Bancos de dados executam suas operações sob forma de transações Programar utilizando transações requer primitivas especiais BEGIN_TRANSACTION – Inicia a transação END_TRANSACTION – Termine a transação e tente comprometê-la ABORT_TRANSACTION – Elimine a transação e restaure os valores antigos READ – Leia dados de um arquivo, tabela, etc. WRITE – Escreva dados para um arquivo, tabela, etc.
Tipos de Sistemas Distribuídos As transações precisam ser ACID: Atômica: A transação é indivisível Consistentes: Sai do estado inicial consistente e vai até ao final também consistente Isoladas: Transações concorrentes não interferem umas com as outras Duráveis: Uma vez comprometida uma transação, as alterações são permanentes
Tipos de Sistemas Distribuídos Atômica Garante que cada transação aconteça completamente ou não aconteça Será como uma única ação indivisível e instantânea Enquanto uma transação está em progresso, outros processos que estejam ou não envolvidos em transações, não podem ver nenhum dos estados intermediários
Tipos de Sistemas Distribuídos Consistentes Se o sistema tiver certos invariantes válidos antes da transação, estes também deverão valer após a realização da transação Ex. Sistema bancário Invariante é a lei a conservação do dinheiro Após toda a transferência interna, o $ no banco deverá ser o mesmo Observe que durante o a transação, por um breve instante o invariante pode ter sido violado. Porém não é visível para fora da transação
Tipos de Sistemas Distribuídos Isoladas ou serializáveis Se duas ou mais transações são executadas ao mesmo tempo, o resultado final para cada uma delas e para outros processos se apresentará como se todas as transações fossem executadas em sequência em certa ordem
Tipos de Sistemas Distribuídos Duráveis Refere-se ao fato de que não importa o que aconteça, uma vez comprometida uma transação, ela continua e os resultados tornam-se permanentes Nenhuma falha após o comprometimento pode desfazer os resultados ou provocar sua perda
Tipos de Sistemas Distribuídos Até aqui foram definidas transações em um único BD Transação Aninhada É construída com base em uma quantidade de subtransações
Tipos de Sistemas Distribuídos Subtransações Possuem uma transação pai Permite que as subtransações possam executar transações em máquinas diferentes Ganho de desempenho Simplifica a programação
Tipos de Sistemas Distribuídos Subtransações Problema Imagine uma transação inicia várias subtransações em paralelo Uma delas se compromete, tornando seus resultados visíveis a transação pai Após um certo tempo a transação pai é abortada Restaura-se o sistema ao estado que estava antes que a transação do nível mais alto começasse
Tipos de Sistemas Distribuídos Integração de Aplicações Corporativas Quanto mais crescia as aplicações distribuídas e se desvinculavam dos BDs mais evidente ficava que eram necessárias facilidades para integrar as aplicações As aplicações deveriam poder se comunicar diretamente com outras aplicações Não apenas através do comportamento requisição/resposta Existem vários de middleware de comunicação RPC RMI MOM
Tipos de Sistemas Distribuídos Integração de Aplicações Corporativas RPC – Remote Procedure Calls Comunicação através de chamadas de procedimentos remotos Um componente da aplicação pode efetivamente enviar uma requisição a um outro componente de aplicação executando uma chamada de procedimento local Resulta no empacotamento da requisição como uma mensagem e em seu envio ao chamado Da mesma forma o resultado será enviado de volta e devolvido a aplicação como resultado da chamada do procedimento
Tipos de Sistemas Distribuídos RMI - Remote Method Invocation Popularização das linguagens OO Java, C++ Foram desenvolvidos técnicas que permitisse chamadas a objetos remotos Invocações da métodos remotos A grande diferença entre RMI e RPC é que um funciona com objetos em vez de aplicações
Tipos de Sistemas Distribuídos Desvantagem da RPC e RMI O chamador e o chamado devem estar ligados e em funcionamento no momento da comunicação Precisam saber exatamente como se referir um ao outro Forte acoplamento ( muitas vezes percebido como desvantagem)
Tipos de Sistemas Distribuídos MOM – Message-oriented Middleware As aplicações enviam mensagens a pontos lógicos de contato Aplicações indicam interesse por um tipo específico de mensagem O middleware de comunicação cuidará para que todas as mensagens sejam entregues a essas aplicações
Tipos de Sistemas Distribuídos Os sistemas distribuídos vistos até este momento são em grande parte caracterizados por: Nós relativamente fixos Conexão relativamente permanente Alta qualidade de rede Sistemas Distribuídos Pervasivos Dispositivos de computação móveis e embutidos Pequeno tamanho Alimentação a bateria Sistemas Domésticos Sistemas Eletrônicos para Transporte de Saúde Rede de Sensores
Tipos de Sistemas Distribuídos Sistemas domésticos Sistemas comuns Montados ao redor de redes domésticas Integram eletrônicos TVs Equipamentos de audio e vídeo Dispositivos para jogos PDAs
Tipos de Sistemas Distribuídos Sistemas domésticos Desafios Autoconfigurável Autogerenciável Tirar do usuário a responsabilidade de configurar o sistema doméstico e deixá-lo funcionando O padrão UPnP (Universal Plug and Play) Obtêm automaticamente endereços IP Capacidade de descobrir uns aos outros
Tipos de Sistemas Distribuídos Sistemas domésticos Gerenciamento de dados Espaço pessoal Dentro de um sistema doméstico consiste em muitos dispositivos pessoais e dados compartilhados, onde estão sujeitos a restrições de compartilhamento
Tipos de Sistemas Distribuídos Sistema eletrônicos para tratamento de saúde Consiste em dispositivos para monitorar o bem-estar de indivíduos e entrar automaticamente em contato com médicos caso necessite Objetiva-se evitar que pessoas sejam hospitalizadas
Tipos de Sistemas Distribuídos Sistema eletrônicos para tratamento de saúde Costuma ser equipados com vários sensores organizados em um rede de área corporal (BAN – Body-area Network) Preferencialmente sem fio
Tipos de Sistemas Distribuídos Sistema eletrônicos para tratamento de saúde
Tipos de Sistemas Distribuídos Redes de sensores Consiste em espalhar sensores (podendo chegar a milhares) para que algo seja monitorado Esses sensores devem monitorar e se comunicar em rede para responder a requisições sobre este ambiente Ex. Monitoração de tráfego de carros em uma estrada, poderia facilmente responder questões relacionadas ao tráfego dos veículos Ex. Utilização da rede de sensores para recolher informações sobre temperatura/humidade, onde com base nessas informações possa ser modificada para uma temperatura ideal.
Tipos de Sistemas Distribuídos Redes de sensores