Introdução aos Sistemas Distribuídos: histórico, evolução e a computação moderna Prof. MSc Hugo Vieira L. Souza
Este documento está sujeito a copyright. Todos os direitos estão reservados para o todo ou quaisquer partes do documento, em especial a interpretação de tradução, reprodução, distribuição ou comercialização física ou na Web do conteúdo contido nos slides, estão sujeitas a autorização prévia pelo autor. Hugo Vieira Lucena de Souza, 2015 Todos os textos, nomes, marcas e figuras de outras publicações e autores contidos neste documento estão devidamente referenciados através de suas obras originais e protegidos pelas leis de propriedades intelectuais.
Agenda Introdução aos Sistemas de Computação Modernos Visão histórica da Computação Processamento Computacional Local e Distribuído Macroprocessamento e Microprocessamento Redes de Computadores e a Computação Moderna Evolução dos Sistemas de Computação Modernos Sistemas de Computação e Infraestruturas Locais e Distribuídas Cases e Empresas do Futuro Computacional Referências
Introdução aos Sistemas de Computação Modernos Voltando alguns anos no tempo, mais precisamente para a década de quarenta, os Estados Unidos desempenhou um papel fundamental para o surgimento e criação dos computadores atuais. O país buscava desenvolver estratégias militares ao longo da segunda guerra mundial, e através deste ocorrido, viabilizou seus investimentos neste contexto; O objetivo inicial era o de que: os soldados pudessem se comunicar de maneira descentralizada e segura, de pontos distintos. Uma pergunta que você deverá está se fazendo é a de como isto se tornou possível, quando nem se quer o software existia na época? Os primeiros sistemas de coordenadas e posição legados, baseados na comunicação em código-morse estavam em pleno desenvolvimento, através da projeção de arquiteturas de computação de grande porte, ainda mecânicas, elétricas e manuais;
Introdução aos Sistemas de Computação Modernos Só que o propósito da época só se tornaria possível observando três pontos: Dividir as tarefas; Organizar a divisão das tarefas; Projetar como os problemas poderiam ser corrigidos; Desta forma, a partir da década de cinquenta, o surgimento de novos modelos computacionais desencadeou o avanço acelerado destes três tópicos citados; A autonomia é o principal obstáculo a ser alcançado para obter sucesso;
Introdução aos Sistemas de Computação Modernos Um dos primeiros equipamentos a utilizar o paradigma de divisão do esforço nas operações foi o ENIAC. O primeiro computador, considerado da era digital, utilizava uma tecnologia conhecida por compartilhar os dispositivos de entrada e saída I/O; A lógica do ENIAC era baseada em uma notação de cálculos aritméticos baseados em um processamento mecânico e elétrico. Este processamento tinha como objetivo reportar uma sequencia de combinações que equivaliam aos resultados obtidos, mediante a manipulação realizada pelo operador; Cada unidade de processamento era conhecida como célula de processamento, ou unidade de operação computacional;
Introdução aos Sistemas de Computação Modernos Observe uma ilustração que exemplifica como estaria organizada a unidade mecânica:
Introdução aos Sistemas de Computação Modernos A partir do final da década de sessenta, com a evolução do software, e o uso das Redes de Computadores, as pesquisas e investimentos ascenderam em uma nova perspectiva; As operações em um mesmo computador local seriam insuficientes para suprir grandes atividades. Desta forma, os engenheiros da computação engenheiros elétricos propuseram a distribuição em dois contextos: operacional e de infraestrutura; Este fato desencadeou o surgimento da Computação Distribuída, ou ainda, dos Modelos de Computação Distribuída;
Introdução aos Sistemas de Computação Modernos Na década de oitenta a evolução dos microprocessadores contribuiu para a expansão dos modelos computacionais que surgiram. Desde o começo, o contexto custo x performance, era inviável tanto por aspectos arquiteturais de hardware e software, quanto para a interconexão de redes; Os supercomputadores eram organizados esteticamente em modelos de grid, posteriormente conhecidos por Clusters Computacionais avançados; O foco era alcançar a expansão de serviços para grande órgãos do governo, universidades e aplicações comerciais;
Introdução aos Sistemas de Computação Modernos Nos anos noventa, vários países ja possuíam grandes Mainframes espalhados pelo mundo. As empresas de tecnologia viam que uma nova tendência de crescimento estava nascendo, e que em breve a rede de comunicação serviria como molde para o desenvolvimento de operações distribuídas; O surgimento das redes locais, e a adequação das diversas arquiteturas de processamento compartilhado também incentivaram esta perspectiva de crescimento; Outra contribuição, sendo uma das mais importantes, foi a evolução dos sistemas operacionais modernos, dentre eles, o Unix e o Microsoft Windows;
Introdução aos Sistemas de Computação Modernos Observe alguns computadores e sua evolução entre as décadas de sessenta e oitenta: [1] The IBM 1130 computing system. Foto-reprodução original da fonte. IBM Corporation. Todos os direitos reservados
Introdução aos Sistemas de Computação Modernos The IBM 3090 computing system. Foto-reprodução original da fonte. IBM Corporation. Todos os direitos reservados
Já nos anos dois mil, um largo salto foi dado com a popularização da internet, o que na verdade constitui um macro sistema distribuído. Grandes empresas construíram grandes parques tecnológicos com sistemas distribuídos em vários países, mas com um gerenciamento integrado; A divisão e organização dos equipamentos é adotada em larga escala até os dias atuais. As empresas, em tese, mantém a integração de suas sedes com suas filiais, subsidiadas as restrições de funcionamento de cada país, mas adotando a política de que o sistema distribuído é como um todo, pois onde você precisar e quiser, ele estará disponível;
Um exemplo prático, e que todos nós utilizamos em nosso dia-a-dia é o Google. A infraestrutura desenvolvida pela empresa tem dados expressivos aspectos dos quais, destacamos alguns principais [2]: 1 milhão [~valor aproximado] de servidores dedicados; 18.000 metros quadrados de área útil com datacenters em operação; O datacenter Council Bluffs, no estado de Iowa, tem uma área útil de 10.500 metros quadrados [ Velocidade de busca e carregamento dos vídeos do Youtube - servidores index]; 900 mil litros de água utilizados em tanques para garantir o resfriamento dos equipamentos, dentre servidores e dispositivos de rede; Fonte: Revista VEJA Editora Abril
[2] a Welcome to Google Datacenters Foto-reprodução original da fonte. Google Corporation. Todos os direitos reservados
Arquitetura de containers [2] Foto-reprodução original da fonte. Google Corporation. Todos os direitos reservados
Os servidores do Google estão organizados com uma infraestrutura simples. A lógica da empresa é a de que o parque é organizado buscando viabilizar uma manutenção rápida e de fácil acesso, conforme podemos observar a seguir: [3]
Os usuários hoje em dia compram computadores virtuais e a moeda de cotação é o C$ (centavo de dólar) por uma determinada infraestrutura alugada. Seus arquivos podem estar em diversos países ao mesmo tempo ou apenas do outro lado do mundo, dependendo da seu perfil empresarial ou pessoal; Ainda no Google, por exemplo, o cliente tem acesso a uma espécie de orçamento acerca da sua demanda. A plataforma Google Cloud estipula e oferece soluções não só de software, mas também comerciais, organizacionais e de inteligência, algo conhecido para o mercado como Internet das Coisas, ou para nós da T.I. de Software Como Serviço, abreviado por SaaS;
Observe uma simulação página de orçamento do Google para Cloud: [4] [4] Simulação-exemplo. Pode haver variações de preço. Google Corporation. Todos os direitos reservados
Outro exemplo de evolução com o surgimento da internet das coisas é a Salesforce; A empresa reporta vários tipos de pacotes e serviços p a r a t o d o s o s n í v e i s empresariais, desde o CRM com o cliente a expansão do marketing e infraestrutra de software; Venda de soluções; [5] Foto-reprodução original da fonte. Salesforce Corporation. Todos os direitos reservados
Outras empresas e propostas estão no mercado recente, principalmente voltadas para as aplicações móveis. Esta nova perspectiva recente está sendo denominada como Mobile Cloud Computing; A ideia é a de que no futuro exista uma combinação de serviços e arquiteturas que reportem ao usuário a capacidade de realizar atividades utilizando o dispositivo móvel como fonte de integração de plataformas, clientes, empresas e que os dados circulem e se adequem a todos os mecanismos que estejam neste rede de conexões e aplicações; A IBM publicou um artigo em que explica como esta tendência pode renovar vários conceitos acerca do desenvolvimento de novas soluções ao longo dos anos. O paper é intitulado Mobile Cloud Computing: devices, trens, issues and enabling technologies;
[6] Internet das coisas no smartphone e tablet;
Antes de concluir nossa volta ao passado, temos alguns fatos e datas que querem uma certa importância na vida das pessoas, principalmente para os profissionais de T.I. Destacamos algumas datas que vocês precisam saber: 1946:Surgimento dos Mainframes noseua; 1959:Criação do COmmon Business Oriented Language - COBOL; 1960:Idealização e criação dos clusters pela IBM; 1964:A IBM apresenta o Mainframe System/360; 1965:Nasce o Multics,pai do Unix; 1969/1970: Surge um dos primeiros sistema operacionais com multitarefa, multiprogramação o e sistematização: Unix;
1970:Surge o conceito de processo para software e a projeção paralela para o desenvolvimento Engenharia de Software para SDiS; 1972: Explode a Crise do Software destacada por Edsger Dijkstra em :The Humble Programmer; 1973: A Arpanet desenvolve as primeiras pesquisas com computação paralela e arquiteturas de redes locais; 1974: Criado o SNA, protocolo responsável pela comunicação das camadas de um cluster; 1975: A partir deste ano, o processamento computacional é realizado com circuitos integrados;
1976-1980: A evolução dos sistemas acompanhou a evolução das redes com o compartilhamento de recursos locais (arquivos, impressoras, código, etc.); 1981-1990: Desenvolvidos os primeiros sistemas operacionais com interconexões de operações concorrentes distribuídas; 1991: São implementados escalonadores de balanceamento/carga para serviços; 1991/1992: É implementada a versão 1.0 do Common Object Request Broker Architecture; 1995: É lançado a plataforma BOINC, maior projeto de processamento distribuído da época;
1997:É lançada a versão JDK 1.1da linguagemjava com a Remote Method Invocation para distribuição de código; 1999: O antigo BOINC é fundido em um novo projeto denominado SETI@home para processamento distribuído. É fundado o SETI@home Brasil - http://www.setibr.org/; 2000: A orientação a serviço para software distribuído (SOA-SDiS) é lançada e várias empresas adotam este modelo, dentre eles o Walmart; 2010: As Redes Sociais e afins,invadem e expandem a tecnologia de distribuição ao longo dos anos;
2012: As mídias sociais compartilham dados,e mais dados, com pequenos sistemas móveis, que utilizam processamento local e distribuído integrado, tais como compartilhamento de fotos, vídeos, currículos, e compras... Foto-reprodução original dos sites das marcas. Todos os direitos reservados
e no futuro?
Referências [1] IBM. Foto-reprodução pública The IBM 1130 computing system. Disponível em: <https://www-03.ibm.com/ibm/history/exhibits/ 1130/1130_intro.html > Acesso em 22 jul. 2015 [2] Google Corporation. Google Datacenters. Disponível em: < http://www.google.com/about/datacenters/gallery/#/ > Acesso em 22 jul. 2015 [3] SIGNALOGIC.com. Foto-reprodução pública Google Server. Disponível em: < http://www.signalogic.com/images/ google_server_sm.jpg > Acesso em 22 jul. 2015 [4] Google Cloud Corporation. Disponível em: < https://cloud.google.com/products/calculator/# > Acesso em 22 jul. 2015 [5] Salesforce Corporation. Foto-reprodução pública preços. Disponível em: < http://www.salesforce.com/br/ > Acesso em 22 jul. 2015 [6] naya.co Foto-Reproduçãoo pública Mobile Cloud Computing. Disponível em: <http://nahya.co/wp-content/uploads/2015/04/ Mobile-Cloud-Technology.jpg > Acesso em 22 jul. 2015