Baixe o app para aproveitar ainda mais
Prévia do material em texto
Profº Ivan Maia Vital Junior 1 [ EXA026 ] Sistemas distribuídos [Unidade I] [Aulas 1 e 2] Conceitos básicos de sistemas distribuídos • Apresentar ao aluno os conceitos básicos de Sistemas Distribuídos, as principais características e os tipos de sistemas distribuídos. Objetivos 2 • Definição: O que são sistemas distribuídos? • Principais características de SDs • Tipos de Sistemas Distribuídos • Exemplo 3 Agenda • “Coleção de computadores independentes que se apresenta ao usuário como um sistema único e consistente.” - Tanenbaum - 4 O que são sistemas distribuídos • Aspectos Importantes: – SDs são constituídos de componentes autônomos. – Estes componentes colaboram entre si – Usuários pensam que estão lidando com um único sistema. – Usuários podem ser pessoas ou programas – Não partilham memória – Se comunicam através de mensagens 5 O que são sistemas distribuídos • Vantagens: – Tornam fácil integrar em um único sistema diferentes aplicações executadas em diferentes computadores. – Quando bem projetados podem ser dimensionados adequadamente em relação à rede subjacente. • Desvantagens – Software mais complexo e caro – Degradação da performance – Redução da segurança 6 O que são sistemas distribuídos • Definição: É uma camada de software que se estende por várias máquinas e oculta das aplicações as diferenças de hardware e sistemas operacionais. 7 Middleware • As diferenças entre os vários componentes de um SD e as diversas formas pelas quais eles se comunicam ficam escondidas dos usuários. • A organização interna do sistema distribuído também fica escondida do usuário. • Usuários e aplicações interagem com o SD de forma consistente e uniforme, independente de onde e quando a interação foi realizada. • Um SD deve possuir a capacidade de ser expandido ou escalado facilmente. • Um SD deve estar constantemente disponível. • Para garantir essa disponibilidade, a substituição de componentes defeituosos ou adição de novos componentes deve ser imperceptível aos Usuários do SD. 8 Principais características de SDs • Sistemas de Computação Distribuída • Sistemas de Informação Distribuída • Sistemas Embutidos Distribuídos 9 Tipos de sistemas distribuídos • Sistemas de Computação Distribuídos São utilizados para tarefas de alto desempenho e podem ser subdivididos em duas classes: – Sistemas de computação em cluster – Sistemas de computação em grid • Clusters são homogêneos enquanto os sistemas em grade são heterogêneos 10 Tipos de sistemas distribuídos Sistemas de Computação Distribuídos • Sistemas de computação em cluster – Conjunto de estações de trabalho ou PCs semelhantes, conectados por meio de uma rede de alta velocidade – Cada nó roda o mesmo Sistema Operacional – Hardware subjacente homogêneo – Usado para processamento paralelo – partes de um único programa executado ao mesmo tempo em várias máquinas – Se desenvolveu a partir do barateamento dos computadores pessoais. – Conexão é feita através de uma rede local, e em quase todos os casos, a computação de cluster é usada para programação paralela. Tipos de sistemas distribuídos 11 Sistemas de Computação Distribuídos • Sistemas de computação em cluster – Exemplo: Sistema Beowulf baseado em Linux Cada cluster consiste em um conjunto de nós de computação controlados e acessados por meio de um único só mestre, cujas tarefas são manipular e alocar determinados programas paralelos. Tipos de sistemas distribuídos 12 Sistemas de Computação Distribuídos • Sistemas de computação em cluster – Exemplo: Sistema Beowulf baseado em Linux O mestre efetivamente executa o middleware necessário para a execução de programas e gestão do cluster. Uma parte importante desse middleware é formada pelas bibliotecas de execução paralela dos programas. Os nós de computação muitas vezes não precisam de nada além de um sistema operacional padrão. Vídeo Tipos de sistemas distribuídos 13 Sistemas de Computação Distribuídos • Sistemas de computação em cluster – Exemplo: Sistema MOSIX baseado em Linux Trabalha com o conceito de migração de processos (Threads). Para um dado programa que trabalha com muitos processos rodando simultaneamente, o sistema pode migrar cada processo para um elemento de computação diferente, que não esteja sobrecarregado, tornando assim, a execução do programa mais rápida. Tipos de sistemas distribuídos 14 Sistemas de Computação Distribuídos • Sistemas de computação em cluster – Exemplos: Serviço de cluster do windows server 2003 Serviço Failover cluster do windows server 2008 Um grupo de computadores independentes que trabalham em conjunto para aumentar a disponibilidade de aplicações e serviços. Os servidores agrupados (Nós) ficam conectados através de da rede de alta velocidade e de software específico. Se um nó apresenta problemas, outro nó assume o fornecimento do serviço de forma transparente para o usuário. Tipos de sistemas distribuídos 15 Sistemas de Computação Distribuídos • Sistema de Computação em Grade – Virtualização: Integração de sistemas geograficamente distribuídos e heterogêneos – Organização Virtual: Coleção dinâmica de organizações proporcionando o compartilhamento coordenado de recursos. Ex. Universidades, Data centers, centros de pesquisa... Uma organização virtual pode ser uma entidade multi-institucional. As organizações que fazem parte de uma OV podem ter recursos diferentes em termos de hardware, sistema operacional e largura de banda de rede. Assim, podemos inferir que um OV é uma coleção de recursos heterogêneos. Tipos de sistemas distribuídos 16 Sistemas de Computação Distribuídos • Sistema de Computação em Grade – Diferentemente da computação em cluster, apresentam alto grau de heterogeneidade. – Não são feitas suposições sobre hardware, sistemas operacionais, redes, domínios administrativos, políticas de segurança, etc – Software usado para permitir acesso a recursos computacionais de diferentes organizações, muitas vezes distribuídos geograficamente, reunidos para permitir a colaboração de um grupo – Geralmente estes recursos podem ser supercomputadores(possivelmente implementado como clusters), Servidores de armazenamento e Banco de dados. Tipos de sistemas distribuídos 17 Sistemas de Computação Distribuídos • Sistema de Computação em Grid Permite aos usuários fazer uso dos serviços prestados pela organização virtual de forma transparente. Os utilizadores não precisam ter conhecimento sobre a localização de recursos computacionais. Há apenas um ponto de entrada para o sistema de grade. Os utilizadores só precisam de enviar sua requisição de serviço ao seu nó local. Cabe ao sistema de grade localizar os recursos computacionais disponíveis, que poderão atender à requisição do usuário. Tipos de sistemas distribuídos 18 Sistemas de Computação Distribuídos • Sistema de Computação em Grade Vídeo Tipos de sistemas distribuídos 19 Sistemas de Computação Distribuídos • Sistema de Computação em Grade – Arquitetura dividida em camadas Tipos de sistemas distribuídos 20 Sistemas de Computação Distribuídos • Sistema de Computação em Grade – Camada Base A camada mais baixa, provê interfaces para recursos locais em um site específico. Essas interfaces são projetadas para permitir compartilhamento de recursos dentrode uma organização virtual. Provê funções para consultar o estado e as capacidades de um recurso, em conjunto com funções para o gerenciamento propriamente dito. Exemplo: Travar um recurso. Tipos de sistemas distribuídos 21 Sistemas de Computação Distribuídos • Sistema de Computação em Grade – Camada de conectividade Consiste em protocolos de comunicação para suportar transações da grade que abrange a utilização de múltiplos recursos. Exemplo: Protocolos de transferência de dados entre recursos ou para acessar um recurso que se encontra uma localização remota. Também contém protocolos de segurança para autenticação de usuários e recursos. Tipos de sistemas distribuídos 22 Sistemas de Computação Distribuídos • Sistema de Computação em Grade – Camada de recursos Responsável pelo gerenciamento de um único recurso Utiliza funções fornecidas pela camada de conectividade e chama diretamente as interfaces disponibilizadas pela camada base. Exemplos: Funções que permitem obter informações de configuração a respeito de um determinado recurso. Funções para a criação de processos ou leitura de dados. Tipos de sistemas distribuídos 23 Sistemas de Computação Distribuídos • Sistema de Computação em Grade – Camada coletiva Controla 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 e replicação de dados. – Camada de aplicação Consiste nas aplicações que operam dentro de uma organização virtual e que fazem uso do ambiente de computação em grade Tipos de sistemas distribuídos 24 • Sistemas de Informação Distribuída – Empacota as requisições de clientes, cuja informação está distribuída por vários programas / aplicações em uma transação que é tratada de forma distribuída. – Muito aplicado para viabilizar a integração de sistemas de informação através do conceito de Integração de Aplicações Corporativas (Enterprise Application Integration – EAI) – Pode ser aplicada de duas formas distintas • Sistemas de processamento de transações • Sistemas de integração de aplicações 25 Tipos de sistemas distribuídos • Sistemas de Informação Distribuída – Sistemas de processamento de transações Para simplificar, vamos nos ater a aplicações baseadas em banco de dados. 26 Tipos de sistemas distribuídos • Sistemas de Informação Distribuída – Sistemas de processamento de transações Exemplo de transação aninhada: 27 Tipos de sistemas distribuídos • Sistemas de Informação Distribuída – Sistemas de processamento de transações Propriedades das transações - ACID Atomicidade: Uma transação é indivisível. As operações, ou sucedem todas, ou falham todas. A falha de uma transação não afeta o estado do objeto. Consistência: Estabelece transição de estado sempre válida, ou seja, não pode quebrar as regras do banco de dados. Ao término da transação os dados sempre estão em um estado consistente. Isolamento: transações concorrentes não interferem umas nas outras. Durabilidade: uma vez concluída uma transação, o seu efeito é permanente 28 Tipos de sistemas distribuídos • Sistemas de Informação Distribuída – Sistemas de processamento de transações Exemplo de um monitor de processamento de transação (TP - Transaction Processing). 29 Tipos de sistemas distribuídos • Sistemas de Informação Distribuída – Integração de aplicações empresariais • Aplicações cada vez mais desacopladas do banco de dados • Necessidade da integração entre aplicações de maneira independente dos seus banco de dados • Componentes de aplicação deveriam ter a capacidade de se comunicar diretamente uns com os outros • A ideia principal : Que as aplicações possam trocar informações diretamente . • Essa troca de mensagens é feita através de RPC – Remote Procedure Calls ou RMI – Remote Method Invocation. 30 Tipos de sistemas distribuídos • Sistemas de Informação Distribuída – Integração de aplicações empresariais • RPC – Remote procedure calls – Chamadas a procedimentos remotos – Um componente de aplicação pode enviar uma requisição a outro componente de aplicação executando uma chamada de procedimento local. • RMI – Remote Method Invocation – Invocação de método remoto – Um objeto de uma aplicação pode se comunicar, através de mensagens, com outro objeto. 31 Tipos de sistemas distribuídos • Sistemas de Informação Distribuída – Integração de aplicações empresariais • Um componente de aplicação pode efetivamente enviar uma requisição a um outro componente executando uma chamada de procedimento local • Exemplos de middleware: RPC – Remote procedure calls, RMI.Remote method invocation 32 Tipos de sistemas distribuídos • Sistemas Distribuídos Ubíquos – Também chamados pervasivos – Sistemas decorrentes do uso de computação móvel e embutida, nas quais o comportamento esperado é a instabilidade – Os dispositivos geralmente, mas, nem sempre apresentam: • Mobilidade; • Tamanho reduzido; • Alimentação por bateria; • Comunicação sem fio; 33 Tipos de sistemas distribuídos • Sistemas Distribuídos Ubíquos – Dispositivos componentes do sistema não possuem controle administrativo humano, no máximo permitem que seus usuários os configurem. – Precisam reconhecer automaticamente o ambiente em que se encontram e procurar se “aninhar” neste ambiente. – Para tanto os dispositivos devem ser capazes de: • Identificar e se adaptar a mudanças contextuais • Suportar a composição ad hoc. Deveria ser muito fácil configurar toda a suíte de aplicações que rodam no dispositivo, seja pelo usuário ou por meio de interposição automatizada. – Admitir o compartilhamento como padrão – Os dispositivos devem se juntar a sistema, ao invés de acessá-lo, adaptando-se ao ambiente local, descobrindo serviços e reagindo de forma correta. 34 Tipos de sistemas distribuídos • Sistemas Distribuídos Ubíquos – Exemplo: • Monitoramento de uma pessoa em um sistema de tratamento de saúde. • A) Usando um equipamento (PDA) local • B) Conexão contínua sem fio 35 Tipos de sistemas distribuídos • Sistemas Distribuídos Ubíquos – Exemplo: Rede de sensores sem fio • A) Usando um equipamento (PDA) local • B) Conexão contínua sem fio 36 Tipos de sistemas distribuídos • Sistemas Distribuídos Ubíquos – Exemplo: Rede de sensores sem fio • A) Usando um equipamento (PDA) local • B) Conexão contínua sem fio 37 Tipos de sistemas distribuídos • O cliente deseja sacar dinheiro, vai até o caixa eletrônico, insere seu cartão do banco, digita sua senha e digita a quantidade de dinheiro desejada. • A máquina verifica se há saldo disponível para saque na conta corrente, se há dinheiro suficiente disponível naquele equipamento, se está dentro do limite permitido segundo o calendário. • Os componentes deste sistema distribuído poderiam ser: – Os caixas eletrônicos. – Os servidores de aplicação da rede ATM, que atendem as requisições do caixa eletrônico. – Servidores dos bancos, que recebem e processam as requisições da rede ATM. – Os servidores de banco de dados nos bancos. – As aplicações em back office para configuração e gerenciamento do sistema tanto nos bancos quanto nas redes ATM. 38 Exemplo - ATM Exemplo - ATM 39 ATM 1 ATM 1 ATM 1 ATM 1 Servidor Rede ATM Banco A Banco de Dados ServidorAplicação App Back Office Banco B Banco de Dados Servidor Aplicação App Back Office App Back Office Geografica mente dispersos Podem existir vários servidores na rede da Prestadora de Serviços - Requisitos de projetos de sistemas distribuídos. Próxima aula 40
Compartilhar