Prévia do material em texto
- -1 ARQUITETURA DE SISTEMAS DISTRIBUÍDOS APLICAÇÕES DISTRIBUÍDAS E TI VERDE - -2 Olá! Objetivo desta aula Ao final desta aula, o aluno será capaz de: 1- Identificar o uso de aplicações distribuídas; 2- Reconhecer as principais aplicações atuais; 3- Avaliar a contribuição da computação distribuída para a TI verde. Introdução Nesta aula, você estudará a importância das aplicações distribuídas e da TI verde. Para as empresas, o valor da informação é considerado, na atualidade, como algo imensurável, e a velocidade para adquiri-la têm fomentado investimentos no desenvolvimento da computação de alto desempenho. Para compreendermos melhor essa questão, vamos ampliar nosso estudo sobre a necessidade e as dificuldades de se implementar um sistema distribuído. 1 Surgimento dos sistemas distribuídos À medida que a velocidade e a confiabilidade das redes de computadores aumentam, computadores do mundo inteiro estão cada vez mais interconectados. A comunicação remota via rede, originalmente reservada para grandes instalações de computadores e ambientes acadêmicos, tem sido amplamente empregada. Em sistemas distribuídos, computadores remotos trabalham cooperativamente por meio da rede, de modo que seja visto como uma única máquina local. As aplicações de sistemas distribuídos podem ser executadas em máquinas locais e remotas, além de permitir o compartilhamento de dados, arquivos e outros recursos entre diversas máquinas. Os sistemas distribuídos quase sempre surgem da necessidade de melhorar a capacidade e a confiabilidade de uma única máquina (como, por exemplo, a capacidade de processamento e o tamanho de armazenamento dessa máquina). 2 Limitação das Máquinas Fatores econômicos podem limitar a capacidade de um sistema! - -3 Sendo assim, ao implementar um sistema com máquinas de baixo custo, é possível projetar um poderoso sistema sem a utilização de equipamentos dispendiosos. Embora ofereçam muitas vantagens em relação a sistemas centralizados, os sistemas distribuídos podem ser complexos e de difícil implementação e gerenciamento. Por exemplo, os sistemas distribuídos têm de manipular atrasos de comunicação e problemas de confiabilidade. É muito difícil gerenciar falhas de máquinas! Mais difícil ainda é gerenciar sistemas distribuídos compostos por diversas máquinas, já que estão mais propensos a sofrer queda de sistema do que os sistemas de apenas uma única máquina. Concorrência A execução concorrente é uma característica intrínseca de um sistema distribuído, na qual os processos disputam pelos recursos compartilhados. Inexistência de relógio global A coordenação dos processos depende de uma noção compartilhada do tempo em que as ações dos programas ocorrem. Falhas independentes Falhas na rede, nos sistemas ou nos processos demoram a ser percebidas nos sistemas distribuídos. (COULOURIS; DOLLIMORE; KINDBERG, 2007). Falácias da computação distribuída Os sistemas distribuídos são diferentes dos softwares tradicionais, porque seus componentes estão dispersos em uma rede. Não levar essa dispersão em conta durante o projeto torna muitos sistemas desnecessariamente complexos, o que resulta em erros que precisam ser corrigidos mais tarde (o que chamamos de retrabalho). Peter Deustch formulou esses erros como as seguintes premissas falsas que todos adotam ao desenvolver uma aplicação distribuída pela primeira vez: · A rede é confiável · A rede é segura · A rede é homogênea · A topologia não muda · A latência é zero · A largura de banda é infinita · O custo do transporte é zero · Há somente um administrador - -4 Atributos dos Sistemas Distribuídos Vamos conhecer alguns atributos dos sistemas distribuídos: Latência – Tempo decorrido entre o início de uma operação e seu término. O termo latência é usado, normalmente, para comunicações entre partes de um sistema. Taxa de transmissão – Taxa que mede a capacidade de transmissão/recepção de informações por unidade de tempo. Speedup – Termo que significa ganho relativo de velocidade ou desempenho. Como exemplo de, speedup podemos citar a razão dos tempos de execução sequencial e o paralelo. Bottleneck – Termo que significa (um elemento de um sistema é o gargalo quando limita seugargalo desempenho, embora o resto do sistema ainda tenha folga para trabalhar. É desejável que não haja gargalos no sistema e que todos os elementos alcancem seus limites juntos. Escalabilidade – Capacidade de melhoria do desempenho do sistema distribuído conforme cresce o número de elementos processadores (de acordo com Neuman (1994), a escalabilidade pode ser medida, a princípio, por três dimensões, quais sejam: – o que significa que é fácil adicionar mais usuários eEm relação a seu tamanho recursos ao sistema; – trata-se de um sistema nos quais usuários e recursos podemEm termos geográficos estar longe uns dos outros; – o que significa que o sistema ainda pode ser fácil deEm termos administrativos gerenciar, mesmo que seja abrangente). Balanceamento de Carga – Característica que permite ao sistema distribuído dividir, adequadamente, suas tarefas, de modoque um elemento processador não fique mais sobrecarregado que os outros. Throughput – Medida de produtividade de um sistema. Essa medida exprime, por unidade de tempo, a produção efetiva do sistema em termos de tarefas, transações, operações, etc. Confiabilidade – Característica do sistema que dá maior ou menor certeza de que vai funcionar a contento. Tolerância a falhas – Capacidade de o sistema sobreviver à falha de alguns de seus elementos. Disponibilidade – Característica que indica quanto tempo o sistema funcionará ininterruptamente sem ser afetado por falhas, manutenção preventiva ou corretiva, etc. Segurança – Garantia de o sistema fazer, de maneira correta e para os usuários corretos, aquilo para o qual foi projetado (em outras palavras, usuários ou programas não autorizados não devem ter acesso aos recursos do sistema. O sistema deve ser capaz de garantir que essa diretriz seja cumprida. Caso contrário, esse mesmo sistema deve detectar como, quando e por que não se cumpriu o estabelecido). Migração de tarefas – Transferência de responsabilidade de execução de uma tarefa de um elemento para outro. A migração de tarefas de ser de processos ou de computação. Migração de dados – Transferência de dados de um elemento processador para outro. - -5 Replicação- Duplicação de recursos de um elemento processador em outro. Transparência – Característica que esconde de usuários ou aplicativos detalhes de funcionamento do sistema distribuído, de tal forma que se tenha a impressão de que esse sistema é centralizado . Veja agora alguns aspectos de transparência (ISO, 1995): Acesso – oculta diferenças na representação de dados e no modo de acesso a um recurso; Localização – oculta o lugar em que um recurso está localizado; Migração – oculta que um recurso pode ser movido para outra localização; Relocação – oculta que um recurso pode ser movido para outra localização durante o uso; Replicação – oculta que um recurso é replicado; Concorrência – oculta que um recurso pode ser compartilhado por diversos usuários concorrentes; Falha – oculta a falha e a recuperação de um recurso. Imagem Única do Sistema (SSI) Um Sistema de Imagem Única (SS!) é a propriedade de se ocultar a complexidade envolvida em uma natureza distribuida e heterogênea de recursos disponíveis para os usuários e aplicações, de tal forma que estes visualizem o sistema como um recurso único. (PITANGA, 2004) Veja, a seguir, alguns beneficios do SSI: Os serviços podem ser requisitados a partir de qualquer nó do sistema;· A localização de dispositivos fisicos pode ser totalmente transparente para o usuário;· O sistema apresenta disponibilidade em seus serviços;· O sistema permite ao usuário trabalhar com uma interface simplificada, com comandos que ajudem a· administrar o cluster por inteiro, como se fosse uma única máquina; O sistema reduz riscos em errosoperacionais e apresenta maior disponibilidade;· O sistema permite a localização independente para a comunicação das mensagens, unificando o espaço de· comunicação entre processos; O sistema permite um modelo de processos com espaço globalizado para balanceamento de carga;· O sistema permite que diversos componentes de uma aplicação trabalhem, de forma cooperativa, para criar a· imagem de uma única aplicação no sistema; Quanto à concorrência, os usuários não devem notar que existem outras pessoas utilizando o sistema.· - -6 3 Máquinas mais velozes Desde 1993, o site publica, semestralmente, um ranking dos 500 computadores com maior TOP500 desempenho no mundo. Na lista do , são obtidos pelo benchmark os seguintes resultados: ranking* Rmax – performance para o maior problema executado em uma máquina (em Gflop/s); Nmax – tamanho do maior problema executado em uma máquina; N1/2 – tamanho quando metade de Rmax é executado; Rpeak – pico de performance teórico para a máquina (em Gflop/s). https://top500.org *Esse ranking é baseado nas informações do programa utilizado para a análise de performance: o LINPACK benchmark. Sua atualização ocorre no mês de junho, coincidindo com a International Supercomputer Conference, e no mês de novembro, na IEEE Supercomputer Conferente. Um computador japonês conquistou o 1º lugar no ranking de junho de 2011, com desempenho medido em 8.16 petaflops. O K computer é mais poderoso que os próximos cinco sistemas da lista combinados. O desempenho foi medido com 68.554 processadores SPARC64VIIIfx, cada um com oito núcleos, em um total de 548.352 núcleos (quase o dobro de qualquer outro sistema dessa lista). Até sua conclusão, essa máquina terá mais de 80.000 processadores! 3.1 Brasil no ranking das máquinas mais velozes O Brasil tem dois supercomputadores na lista do ranking dos computadores mais velozes do mundo: Tupi - Operado pelo Instituto Nacional de Pesquisas Espaciais (INPE) – ocupa a 34ª posição, com 30.270 processadores AMD Opteron de 12 núcleos, cada um rodando a 2.1 GHz e com desempenho de 205.1 teraflops. Galileu - Operado pelo Núcleo de Atendimento em Computação de Alto Desempenho (NACAD/COPPE), da Universidade Federal do Rio de Janeiro (UFRJ) – ocupa a 167ª posição, com 6.464 processadores Intel Xeon Nehalem de 2.8 GHz cada, e desempenho de 64.6 teraflops. Gráfico do ranking TOP500 Veja, a seguir, gráficos fornecidos pelo ranking TOP500 que apresentam o desenvolvimento da performance dos supercomputadores, de 1993 a 2011, e sua projeção: https://top500.org/ https://top500.org - -7 4 Intranet De acordo com Marcelo (2002), a intranet consiste em: “[...] redes corporativas que se utilizam de tecnologia e de infraestrutura de comunicação de dados da internet. Essas redes são utilizadas na comunicação interna da própria empresa e também na comunicação com outras empresas. [...] Portanto, a intranet é o uso da tecnologia da internet na rede corporativa da empresa. Ela facilita a distribuição de documentos, a transferência de arquivos, a consulta à informação e muitas outras aplicações.” Diagrama da intranet Veja, a seguir, um diagrama esquemático de uma intranet. - -8 5 Computação em grade (grid computing) A tecnologia por trás da computação em grade é um conjunto de que gerenciamsoftwares middleware* recursos distribuidos e espalhados pela organização, disponibilizando os servidores e, eventualmente, os desktops da empresa. A ideia básica é combinar os recursos disponíveis com as demandas computacionais das empresas.(CHEDE, 2004, p. 16) Computação em grade é uma maneira bastante eficiente de maximizar recursos computacionais. Trata-se de uma consolidação virtual de servidores. (CHEDE, 2004). *Designação utilizada para se referir ao software executado entre as aplicações distribuídas e o sistema operacional. O middleware ajuda a fornecer portabilidade, transparência e interoperabilidade entre sistemas distribuídos. Exemplo de grid computing Veja, a seguir, o Worldwide LHC Computing Grid (CERN) – uma computação em grade: - -9 Fonte: Imagens disponíveis no link http://michaelgr.com/2008/10/03/cern-unveils-the-worldwide-lhc- computing-grid 6 Computação oportunista - projeto SETIG O conceito de computação oportunista consiste em usar redes de computadores para resolver problemas computacionais. Esse conceito se popularizou com o sucesso do projeto SETIe, baseado na ideia do voluntariado, em que um usuário toma a decisão de ceder ciclos ociosos de seu computador para contribuir com uma determinada organização para a execução de alguma tarefa. (CHEDE, 2004, p. 57) Veja, a seguir, figuras do projeto SETI@home: Fonte: Imagens disponíveis nos links #1 e #2 #1 https://pt.wikipedia.org/wiki/SETI#SETI.40HOME #2 https://boinc.berkeley.edu - -10 7 Computação oportunista - projeto BOINC Outro projeto que pode ser citado no campo da computação oportunista é o Berkeley Infraestructure for Network Computing (BOINC), que tem como proposta permitir que o usuário possa operar simultaneamente diversos projetos desse tipo de computação. Veja, a seguir, a realização de uma previsão de clima, utilizando o projeto BOINC: 8 Sistemas distribuídos e TI verde A virtualização é a camada de abstração entre sistemas de hardware de computador e do software que roda nesses sistemas, proporcionando uma visão lógica dos recursos de computação. Trata-se de uma das formas de economizar recursos e praticar TI verde! A virtualização trata de estender ou substituir uma interface existente, de modo a imitar o comportamento de outro sistema. Uma das razões mais importantes para introduzir a virtualização na década de 1970 foi permitir que softwares herdados (aplicações e sistemas operacionais) executassem em hardwares de mainframe. (TANENBAUM, 2007) Procure, por exemplo, comparar o que é real e o que é virtual! - -11 Algo real possui características físicas; já o virtual está vinculado à simulação. Sendo assim, a virtualização pode ser definida como uma simulação de um ambiente real. Virtualização e o sistema de conectividade Atualmente, grande parte dos computadores está conectada por redes de computadores! Essa conectividade exige dos administradores que um conjunto grande e heterogêneo de computadores servidores execute (cada um) diferentes aplicações utilizando diferentes recursos, que podem ser acessadas por diversos clientes. A virtualização pode contribuir muito nesse sentido! Em primeiro lugar, porque a diversidade de plataformas e máquinas pode ser reduzida. Em segundo lugar, porque cada aplicação pode executar em sua própria máquina virtual, incluindo, possivelmente, suas bibliotecas e o sistema operacional (ambos relacionados), que estariam executando em uma plataforma comum. Diagrama esquemático da máquina virtual Veja, a seguir, um diagrama esquemático de uma máquina virtual: Supercomputadores e TI verde - -12 Desde abril de 2005, o site Green500 fornece um ranking dos mais eficientes supercomputadores do mundo em termos energéticos. Por décadas, a noção de performance tem sido sinônimo de velocidade. Esse enfoque especial levou ao surgimento de supercomputadores que consomem grandes quantidades de energia elétrica e produzem tanto calor que exigem enormes instalações de refrigeração. Alguns supercomputadores têm liderado essas listas que são publicadas semestralmente, como as do ranking TOP500. Um deles aparece no ranking Green500 de junho de 2011: o Cluster DEGIMA, da Universidade de Nagasaki, no Japão. Outro máquina que obteve destaque no mesmo mês e ano é o IBM Blue Gene (protótipo/Q), que possui eficiência energética de 2097 MFLOPS/watt. Esse supercomputador aparece como o número 1 do ranking Green500. Veja: O que vem na próxima aula Na próxima aula, você estudará sobre os seguintes assuntos: •Tratamento de falhas; •Métodos de tratamento de falhas em sistemas distribuídos. CONCLUSÃO Nesta aula, você: • Conheceu as falácias da computação distribuída;•- -13 • Conheceu as falácias da computação distribuída; • Identificou os atributos dos sistemas distribuídos; • Identificou o uso de algumas aplicações distribuídas; • Identificou os maiores computadores com desempenho no mundo; • Compreendeu a necessidade de se tratar o uso consciente da eficiência energética em máquinas multiprocessadas. • • • • • Olá! 1 Surgimento dos sistemas distribuídos 2 Limitação das Máquinas 3 Máquinas mais velozes 3.1 Brasil no ranking das máquinas mais velozes 4 Intranet 5 Computação em grade (grid computing) 6 Computação oportunista - projeto SETIG 7 Computação oportunista - projeto BOINC 8 Sistemas distribuídos e TI verde O que vem na próxima aula CONCLUSÃO