PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO PAULO – PUC-SP DIOGO CORTIZ DA SILVA Grid Computing e Cloud Computing - Análise dos impactos sociais, ambientais e econômicos da colaboração por meio do compartilhamento de recursos computacionais MESTRADO EM TECNOLOGIAS DA INTELIGÊNCIA E DESIGN DIGITAL São Paulo 2009 PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO PAULO – PUC-SP DIOGO CORTIZ DA SILVA Grid Computing e Cloud Computing - Análise dos impactos sociais, ambientais e econômicos da colaboração por meio do compartilhamento de recursos computacionais MESTRADO EM TECNOLOGIAS DA INTELIGÊNCIA E DESIGN DIGITAL Dissertação apresentada à Banca Examinadora da Pontifícia Universidade Católica de São Paulo, como exigência parcial para obtenção do título de MESTRE em Tecnologias da Inteligência e Design Digital - Inteligência Coletiva e Ambientes Interativos sob a orientação do Prof. Doutor Fernando Antônio de Castro Giorno São Paulo 2009 - ERRATA , Página 96 Onde se lê: pode-se (PODEM-SE) Leia-se podem-se Página 101 Onde se lê: (NECESSÁRIAS) Leia-se: necessárias "I Página 11O Substituir o Gráfico 11 pelo Gráfico abaixo: Watts 300 I I -- 250 200 1.50 1.00 50 o 0% . 1.0% Cor;>sumo 20% Míni 30% mo 40% (Componentes) Página 112 Onde se lê: que um recursos computacional 50% 60% 70% 80% 90% 1.00% . Vari ação CPU Leia-se: que os recursos computacionais Banca Examinadora ________________________________ ________________________________ ________________________________ AGRADECIMENTOS A Deus, por guiar meus passos e me dar a certeza de que os desafios estão presentes em nossas vidas para serem superados. À minha mãe, que me proporcionou com carinho e humildade todas as coisas necessárias para que eu pudesse alcançar os objetivos da minha vida. Ao meu pai, que sempre acreditou no meu potencial e me ensinou que a honestidade é a chave para uma vida em paz. Ao meu irmão Denis, que de forma peculiar me incentivou a concluir esse mestrado. Aos meus avós, que sempre me apoiaram em todas as decisões da minha vida com carinho incondicional. Ao meu padrinho Ilson, pelos ensinamentos fundamentais ao longo da minha juventude. À minha namorada Fernanda, pelo amor, carinho, compreensão e conselhos na minha vida. À Maria Helena, pela dedicação todas as vezes que foram necessárias revisões dessa dissertação. Ao José, pela sua disposição em ajudar sempre que necessário. À Daniela, pelas idéias compartilhadas. Ao Marcus Vinicius, pela ajuda na etapa inicial dessa conquista. Ao Luiz, Jefferson, Mark e demais companheiros de trabalho que tornaram essa tarefa possível. Ao orientador Prof. Fernando Giorno, pela dedicação, ajuda e ensinamentos durante a realização desse trabalho. “Conheça todas as teorias, domine todas as técnicas, mas ao tocar uma alma humana, seja apenas outra alma humana.” Carl Gustav Jung RESUMO SILVA, Diogo Cortiz. Grid Computing e Cloud Computing - Análise dos impactos sociais, econômicos e ambientais da colaboração por meio do compartilhamento de recursos. 2009. 145 f. Dissertação (Mestrado em Tecnologias da Inteligência e Design Digital) – Pontifícia Universidade Católica de São Paulo, São Paulo, 2009. Esta dissertação discute o excesso de recursos computacionais disponíveis mundialmente com capacidade de processamento excedente e também debate como o emprego dos conceitos de compartilhamento e colaboração influenciam a integração desses dispositivos para constituir um ambiente econômico e com alta capacidade de processamento. Atualmente, é possível encontrar uma grande quantidade de computadores pessoais, servidores, entre outros dispositivos, que apresentam elevados níveis de ociosidade. Estes poderiam ser utilizados para outra finalidade, haja vista pesquisas científicas, projetos colaborativos e programas de inclusão digital carentes de recursos para atingirem seus objetivos. A tecnologia de Grid Computing, também chamada de Computação em Grade, foi concebida como uma alternativa para integrar recursos distribuídos geograficamente e pertencentes a diferentes domínios, habilitando um ambiente computacional abrangente e descentralizado. O objetivo desta dissertação é analisar como essa tecnologia, baseada no conceito de colaboração, pode gerar benefícios no contexto social, ambiental e econômico. No âmbito social, Grid Computing estimula o trabalho colaborativo e o compartilhamento de recursos computacionais e aplicacões, além de prover funcionalidades que auxiliam na transparência de dados entre diversos domínios. Essas características também são importantes para a inclusão científica. O primeiro Estudo de Caso aborda a importância de Grid Computing para o projeto científico do Superacelerador de Partículas (LHC). No contexto ambiental, essa tecnologia também apresenta características para tornar os recursos computacionais mais eficientes em relação ao consumo de energia através do aumento do uso de sua capacidade computacional. O segundo Estudo de Caso aborda dados em relação à quantidade de máquinas conectadas à Internet e como uma aplicação de Grid Computing, no modelo de Computação Voluntária, pode tornálas mais produtivas e, consequentemente, mais eficientes no consumo de recursos energéticos. Já no contexto econômico, é de importância destacar a sinergia existente entre Grid Computing e Cloud Computing, as suas vantagens financeiras e a geração de novos modelos de negócios através da comercialização de plataformas e softwares como serviços na Internet, e não mais como produtos. O terceiro Estudo de Caso aborda um modelo de Cloud Computing que disponibiliza recursos computacionais em forma de serviços, permitindo que empresas e pessoas físicas possam contratar um ambiente computacional de rápido provisionamento, sem a necessidade de adquirir equipamentos e investir em projetos de implementação. Por fim, ambas as tecnologias são apontadas como grandes tendências para os próximos anos, as quais influenciarão a geração de novos modelos de softwares, plataformas e serviços voltados à Internet. Palavras-chave: grid computing, cloud computing, colaboração, compartilhamento, Internet ABSTRACT SILVA, Diogo Cortiz. Grid Computing and Cloud Computing – Analysis of the social, environmental and economic impacts of the collaboration through the resources sharing. 2009. 145 f. Dissertação (Mestrado em Tecnologias da Inteligência e Design Digital) – Pontifícia Universidade Católica de São Paulo, São Paulo, 2009. This research debates the excess of worldwide available computational resources with exceeded processing capacity and also how the utilization of the sharing and collaboration concepts influence the integration of those devices to constitute an economic environment with high processing capacity. Currently, it is possible to find a great amount of personal computers, servers and others devices that show high level of idleness, while they could be being used for another purpose, once there are many scientific researches, collaborative projects and digital inclusion programs that are short of resources to reach theirs objectives. The Grid Computing technology was conceived as an alternative to integrate geographically distributed resources pertaining to different domains, enabling a decentralized computational environment. The main objective of this research is to analyze how this technology can generate benefits to the social, environment and economic contexts. In the social approach, Grid Computing stimulates the collaboration and the sharing of computational resources and applications, as well as providing features that are very useful for data transparency between many domains. Those characteristics are also important for the scientific inclusion. The first Case Study approaches the importance of Grid Computing for the collaborative tasks found in the scientific project of the Large Hadron Collider (LHC), which allowed many research institutions and universities around the world to build a shared computational environment of large scale for processing the data generated by LHC. In the environment context, this technology also presents some characteristics to make the computational resources more energy efficient increasing the use of its computational capacities. The second Case Study analyzes the data related to the amount of personal computers connected in the Internet and how to implement Grid Computing based on the Volunteer Computing model to make those computers more productive with no relevant impact in the energy consumption. This research also highlights the synergy between Grid Computing and Cloud Computing, its financial advantages and the generation of new business models based on the commercialization of platform and software as a service in the Internet. The third Case Study analyzes a Cloud Computing model that delivers computational resources (such as a whole server) as a service, enabling a scenario where companies and people could contract a computational environment with a quick provisioning with no need to purchase equipments and to invest in implementation projects. Finally, it is possible to appoint both technologies as relevant trends for the coming years, which can be an influence to generate new software models, platforms and services focused in the Internet. Keywords: Grid Computing, Cloud Computing, collaboration, Internet LISTA DE ACRÔNIMOS TI – Tecnologia da Informação EELA – E-science grid facility for Europe and Latin America EGEE – Enabling Grids for E-sciencE SDK – Software Development Kit API – Application Programming Interface TCP – Transmission Control Protocol IP – Internet Protocol OV – Organização Virtual OGSA – Open Grid Services Architecture SOAP – Simple Object Access Protocol XML – Extensible Markup Langauge OGF – Open Grid Forum CPU – Central Processing Unit RAM – Random Access Memory GNU – GNU’s Not Unix TCO – Total Cost Ownership GPL – General Public License SOA – Service-Oriented Architecture SaaS – Software as a Service UDDI – Universal Description, Discovery and Integration QoS – Quality of Service LISTA DE FIGURAS Figura 1 – Arquitetura dos Sistemas Distribuídos (TANENBAUM; STEEN, 2002)........40 Figura 2 - Ambiente de Organizações Virtuais (FOSTER; KESSELMAN; TUECKE, 2001).........................................................................................................................................47 Figura 3 – Arquitetura em Camadas (FOSTER; KESSELMAN; TUECKE, 2001)........49 Figura 4 - Interações entre os Componentes (JACOB et al., 2008)....................................54 Figura 5 – O Projeto do Superacelerador de Partículas (LHC, 2009)...............................85 Figura 6 – Cloud Computing: sinergia entre conceitos e tecnologias...............................116 Figura 7 - Matriz taxonômica de Cloud Computing.........................................................123 LISTA DE TABELAS Tabela 1 – Sítios de computação da segunda camada Tier-1 (WLCG, 2009) ...................88 Tabela 2 – Projeção da quantidade total de recursos...........................................................89 Tabela 3 – Organizações Virtuais filiadas ao LHC (WLCG, 2009)....................................93 Tabela 4 – Penetração de acesso a Internet por regiões (IWS, 2009)...............................103 Tabela 5 – Total de computadores pessoais no mundo (ALMANAC, 2009)....................105 Tabela 6 – Cenário consumo de energia com Grid Computing........................................111 Tabela 7 – Sistemas Operacionais disponíveis no Amazon EC2 (AMAZON, 2009).......130 Tabela 8 – Softwares disponíveis no Amazon EC2 (AMAZON, 2009).............................130 Tabela 9 – Preços de instâncias On-demand do Amazon EC2 (AMAZON, 2009)..........131 Tabela 10 – Preço de transferência de dados na Internet através do Amazon EC2 (AMAZON, 2009)..................................................................................................................131 LISTA DE GRÁFICOS Gráfico 1 – Investimento no WLCG até o ano de 2008.......................................................87 Gráfico 2 – Projeção da quantidade de Jobs .......................................................................89 Gráfico 3 – Projeção de recursos de CPU por camada........................................................90 Gráfico 4 – Pojeção de recursos de armazenamento em disco por camada .....................91 Gráfico 5 – Projeção de recursos de armazenamento em fita por camada.......................92 Gráfico 6 – Total de Usuário conectado à Internet por região (IWS,2009).....................104 Gráfico 7 – Local de acesso à Internet no Brasil (CETIC, 2009)......................................104 Gráfico 8 – Consumo de energia por recursos computacionais (SCHMID, 2005)..........106 Gráfico 9 – Utilização de CPU em notebook com sistema operacional Linux................108 Gráfico 10 – Utilização de CPU em desktop com sistema operacional Windows...........109 Gráfico 11 – Consumo de energia em relação a utilização de CPU..................................110 SUMÁRIO 1. Introdução............................................................................................................................13 1.1 Motivação......................................................................................................................13 1.2 Objetivos........................................................................................................................14 1.3 Contribuições................................................................................................................15 1.4 Método de Pesquisa.......................................................................................................15 1.5 Organização do trabalho..............................................................................................17 2. Fundamentação teórica......................................................................................................19 2.1 As tecnologias da inteligência ......................................................................................19 2.2 Redes sociais..................................................................................................................21 2.2.1 Comunidades virtuais nas redes sociais..................................................................23 2.3 Riquezas das redes........................................................................................................26 2.3.1 Compartilhamento e produção entre pares ............................................................29 2.4 Inteligência nas redes...................................................................................................32 2.5 Sistemas distribuídos.....................................................................................................38 2.5.1 Histórico ................................................................................................................38 2.5.2 Arquitetura .............................................................................................................39 2.5.3 Características.........................................................................................................40 2.6 Grid Computing ............................................................................................................42 2.6.1 Histórico ................................................................................................................42 2.6.2 Definição ...............................................................................................................44 2.6.3 Organizações Virtuais.............................................................................................46 2.6.4 Arquitetura .............................................................................................................48 2.6.5 Componentes .........................................................................................................52 2.6.6 Tipos ......................................................................................................................54 2.6.6.1 Computação Voluntária.............................................................................................56 2.6.7 A Importância dos padrões ....................................................................................56 2.6.8 Principais sistemas .................................................................................................59 2.6.9 Principais projetos..................................................................................................62 3. Estado da arte em compartilhamento e trabalhos colaborativos nos ambientes das redes de comunicação.............................................................................................................66 3.1 A Colaboração e a interação na Web 2.0......................................................................66 3.1.1 Análise do artigo.....................................................................................................67 3.2 A confiança em repositórios colaborativos de informação.........................................68 3.2.1 Análise do artigo ....................................................................................................70 3.3 A emergência do compartilhamento como modalidade de produção econômica.......71 3.3.1 Análise do artigo.....................................................................................................72 4. Análise de Grid Computing................................................................................................74 4.1 Contexto social..............................................................................................................74 4.1.1 Trabalho colaborativo.............................................................................................75 4.1.2 Inclusão científica...................................................................................................80 4.1.3 Estudo de Caso – Worldwide LHC Computing Grid.............................................84 4.1.3.1 Visão geral do LHC ..................................................................................................85 4.1.3.2 Coleta de Dados........................................................................................................86 4.1.3.3 Análise.......................................................................................................................93 4.1.3.4 Resultados e contribuições .......................................................................................97 4.2 Contexto Ambiental.......................................................................................................98 4.2.1 Estudo de Caso – Computação Voluntária como uma alternativa de tornar o consumo de energia mais eficiente................................................................................103 4.2.1.1 Coleta de Dados......................................................................................................103 4.2.1.2 Análise ....................................................................................................................107 4.2.1.3 Resultados e contribuições......................................................................................112 4.3 Contexto Econômico...................................................................................................113 4.3.1 Cloud Computing..................................................................................................115 4.3.1.1 Infra-estrutura.........................................................................................................116 4.3.1.2 Grid Computing e virtualização..............................................................................117 4.3.1.3. Serviços tecnológicos ............................................................................................117 4.3.1.4 Consumidores e Negócios: Market-Oriented Cloud Computing.............................121 4.3.1.5 Tipos de serviço e níveis de abrangência................................................................122 4.3.1.5.1 Tipos de serviços.............................................................................................................123 4.3.1.5.2 Níveis de abrangência ....................................................................................................125 4.3.2 Estudo de Caso – Open Utility Cloud Computing...............................................126 4.3.2.1 Coleta de dados.......................................................................................................127 4.3.2.2 Análise ....................................................................................................................131 4.3.2.3 Resultados e contribuições......................................................................................133 5. Considerações finais..........................................................................................................135 5.1 Tendências e trabalhos futuros...................................................................................137 REFERÊNCIAS BIBLIOGRÁFICAS................................................................................139 WEBGRAFIA........................................................................................................................142 13 1. Introdução 1.1 Motivação A evolução da tecnologia fortaleceu a concepção de dispositivos com alto poder de processamento. É possível encontrar no mercado recursos computacionais com processadores de última geração capazes de processar grandes quantidades de informações que no passado só poderiam ser processadas por supercomputadores ou computadores paralelos. Foster (2002a, p.42) intensifica esse cenário com a seguinte afirmação: Um computador pessoal em 2001 é tão rápido quanto um supercomputador em 1990 [...]. Computadores pessoais possuem agora mais de 100 GB de espaço em disco – A mesma quantidade de um centro de supercomputadores em 1990. Porém, é notório perceber que as capacidades de processamentos desses recursos computacionais muitas vezes não são utilizadas completamente, existindo dispositivos com capacidade excedente. É possível citar os diversos motivos que influenciam esse cenário, mas destaca-se na maioria das vezes a execução de atividades que não exigem alto poder de processamento, como a utilização de aplicações simples, navegação na Internet, entre outras. Essas características mostra que, em muitos casos, as aplicações não requerem alta capacidade de processamento; porém, isso não significa que a tecnologia de software não evoluiu, mas aponta que a indústria de hardware teve um gigantesco salto na produção de recursos computacionais, produzindo máquinas cada vez mais potentes. Os servidores muitas vezes são responsáveis pela execução de uma aplicação específica para a disponibilização de um serviço, enquanto os computadores pessoais são utilizados pelos usuários para tarefas geralmente utilitárias, como uso de aplicativos de escritório, aplicações pessoais e navegação na Internet, entre outras. Em ambos os equipamentos é possível encontrar capacidade de processamento excedente e ociosidade. No caso dos servidores, geralmente as empresas ou as instituições responsáveis pelo gerenciamento dos recursos optam pela abundância de equipamentos para fins de balanceamento de carga e alta-disponibilidade, visando assim a garantia de continuidade do processo produtivo. Entretanto, essas práticas podem acarretar em uma grande quantidade de máquinas com pouca utilização ao invés de uma quantidade menor de 14 recursos com utilização balanceada. Os computadores pessoais também possuem recursos computacionais, como processadores e memória, sem utilização total por parte do usuário, mantendo-se assim máquinas ociosas conectadas à Internet. Nesse trabalho, serão abordados os impactos da colaboração através do compartilhamento de recursos computacionais para a constituição de um ambiente mais produtivo e menos ocioso. O estudo baseia-se em três vertentes para a análise das vantagens da tecnologia de Grid Computing e também Cloud Computing: • Impacto Social: aborda-se a influência do compartilhamento de recursos computacionais para a construção de um ambiente de computação compartilhado e de larga escala, o qual pode ser capaz de servir diferentes instituições, organizações e pessoas ao redor do mundo. Esse ambiente compartilhado também é importante para transparência de informação, possibilitada devido a arquitetura descentralizada de Grid Computing. • Impacto Ambiental: aborda-se os benefícios de Grid Computing através do uso da capacidade ociosa de recursos computacionais, situação que os tornam mais eficientes em relação ao consumo de energia. Também são considerados projetos científicos com foco no meio-ambiente que utilizam uma plataforma de Grid Computing para o processamento de seus dados. • Impacto Econômico: o ambiente das redes de comunicação proporciona um novo modelo econômico baseado no compartilhamento de recursos e também no trabalhos colaborativos. As vantagens financeiras e os novos modelos de negócios gerados por Grid Computing e Cloud Computing são tendências que já podem ser observadas. 1.2 Objetivos O objetivo desse trabalho é analisar o impacto da tecnologia de Grid Computing na sociedade e seus benefícios em relação aos contextos social, ambiental e econômico. Analisa- 15 se também a sinergia entre Grid Computing e Cloud Computing, os seus novos modelos de negócios e tendências. 1.3 Contribuições Espera-se com esse trabalho apresentar os benefícios da colaboração através do compartilhamento de recursos computacionais, incentivando a adoção desse conceito por empresas, instituições e usuários finais de dispositivos computacionais. 1.4 Método de Pesquisa O método de pesquisa utilizado é composto do levantamento bibliográfico para o estudo da influência das tecnologias para a sociedade, dos novos modelos produtivos gerados pela colaboração e compartilhamento de recursos, e da tecnologia de Grid Computing, seu conceito, sua arquitetura e seus principais projetos. Posteriormente, são levantados os trabalhos relacionados ao tema da pesquisa para a formulação do Estado da Arte em compartilhamento de recursos e trabalhos colaborativos nas redes de comunicação. Em seguida, são analisadas as vantagens de Grid Computing e como essa tecnologia gera benefícios nos contextos sociais, ambientais e econômicos. Também levanta-se dados referente a Cloud Computing e como tal conceito pode ser empregado em conjunto com a tecnologia de Grid Computing. A técnica de Estudo de Caso é aplicada com o objetivo de analisar uma situação concreta e reforçar a dissertação de como a Computação em Grade pode ser vantajosa para o compartilhamento de recursos, trabalhos colaborativos, utilização otimizada de recursos energéticos e também para a economia financeira. Yin (2002) afirma que a técnica de Estudo de Caso é a estratégia mais indicada quando as questões “como” ou "por que" estão presentes, e quando o foco é no fenômeno contemporâneo entre alguns contextos na vida real. Serão aplicados, ao todo nesta pesquisa, três Estudos de Caso, sendo um relevante a cada vertente de estudo (contexto social, ambiental e econômico). Mais detalhadamente, as seguintes atividades compõem om método de pesquisa. 1. Levantamento Bibliográfico: a pesquisa inicia-se com o levantamento bibliográfico 16 relativo ao tema para fomentar a motivação e o objetivo do trabalho, servindo como embasamento teórico no desenvolvimento da pesquisa. 2. Estudo das Tecnologias da Inteligência: estudo dos impactos das novas tecnologias no processo de constituição do ser humano. Análise das interações entre os indivíduos e as novas formas de conhecer possibilitadas pelas tecnologias da inteligência. 3. Análise dos Benefícios gerados pelas Redes de Comunicação: análise das características das redes de comunicação que possibilitaram o surgimento de uma nova economia informacional baseada em compartilhamento de recursos e organização descentralizada. 4. Estudo do conceito de Compartilhamento e Trabalhos Colaborativos: estudo dos fundamentos do compartilhamento de recursos nas redes de comunicação, trabalho colaborativo e produção entre pares. 5. Estudo sobre a Tecnologia de Grid Computing: estudo da tecnologia de Grid Computing, o seu surgimento, a sua arquitetura e seus benefícios através do modelo de colaboração e compartilhamento. 6. Levantamento sobre trabalhos relacionados: levantamento e análise de projetos de pesquisas e trabalhos científicos relacionados ao tema do trabalho. 7. Análise do impacto de Grid Computing no contexto Social: discorre-se nesta atividade como a tecnologia de Grid Computing, através de sua arquitetura baseada na descentralização, gera benefícios para a sociedade em relação ao compartilhamento de recursos e trabalhos colaborativos. Um Estudo de Caso é aplicado com o objetivo de analisar uma situação concreta e reforçar a dissertação sobre o impacto positivo da Computação em Grade no contexto social. 8. Análise do impacto de Grid Computing no contexto Ambiental: discorre-se nesta atividade como a tecnologia de Grid Computing cria novas possibilidades para tornar 17 os recursos computacionais mais eficientes em relação ao consumo de energia. Assim como na atividade sete, um Estudo de Caso é aplicado para apoiar a dissertação sobre o impacto positivo de Grid Computing no contexto ambiental. 9. Análise do impacto de Grid Computing e Cloud Computing no contexto Econômico: discorre-se nessa atividade a sinergia entre ambas as tecnologias, as suas influências para economia financeira e também as possibilidades de geração de novos negócios. Assim como nas atividades sete e oito, um Estudo de Caso é aplicado em uma situação concreta para fomentar a dissertação sobre o impacto de Cloud Computing no contexto econômico. 10. Fechamento do trabalho: conclusão da pesquisa e proposta de trabalhos futuros. 1.5 Organização do trabalho No primeiro capítulo dessa pesquisa, Introdução, descreve-se a problemática, a motivação e os objetivos que serão discutidos nesse trabalho. Apresentam-se também as contribuições e a metodologia de pesquisa para alcançar os objetivos especificados. No segundo capítulo, Fundamentação Teórica, apresenta-se o conceito das tecnologias da inteligência e suas influências na constituição do ser humano. Destaca-se o poder das redes digitais com a concepção de uma nova economia informacional baseada em compartilhamento e trabalho colaborativo. Apresenta-se também, nesse capítulo, a tecnologia de Grid Computing, a suas origens, arquiteturas e principais características. No terceiro capítulo, Estado da Arte em Trabalhos Coletivos e Colaboração nas Redes Digitais, são revistos os projetos de pesquisas e trabalhos científicos relacionados ao tema do trabalho. No quarto capítulo, Análise dos Benefícios de Grid Computing, apresenta-se uma análise do impacto da tecnologia de Computação em Grade para os projetos científicos, trabalhos colaborativos e o meio-ambiente. Também são abordadas as vantagens financeiras e os novos modelos de negócios gerados por Cloud Computing. A técnica de Estudo de Caso é aplicada para fomentar a dissertação de como a tecnologia de Computação em Grade é vantajosa para os contextos social, ambiental e econômico. 18 No quinto capítulo são apresentadas as conclusões do presente trabalho, suas contribuições e trabalhos futuros. 19 2. Fundamentação teórica Neste capítulo serão estudados os fundamentos da dissertação. Inicialmente, discorrerse-á sobre as influências da tecnologia para a sociedade e como isso alterou a forma de compartilhamento de informações através do surgimento da Internet, ligando indivíduos separados geograficamente e modificando a interação entre as pessoas com a concepção das redes sociais e das comunidades virtuais. Em seguida, serão destacados os novos modelos de produção gerados pelas novas tecnologias e seus impactos para a concepção de novos conteúdos que são capazes de abranger meios alternativos e meios comerciais de comunicação. Posteriormente, serão expostos o conceito, arquitetura, principais sistemas e projetos de Grid Computing, uma tecnologia de sistemas distribuídos capaz de favorecer o compartilhamento de informações e novas formas de interações entre indivíduos conectados ao mesmo ambiente. 2.1 As tecnologias da inteligência As tecnologias são influentes na constituição da cultura das pessoas e são capazes de moldar a inteligência de grupos. Isso é possível, segundo Levy (1990), pois o ser humano possui algumas funções cognitivas, como forma de conhecer e pensar, que são fortemente influenciadas pela cultura na qual está inserido, modelo denominado transcendental histórico. A afirmação abaixo enaltece a importância das tecnologias e suas influências na constituição do modo de pensar dos seres humanos: Novas maneiras de pensar e conviver estão sendo elaboradas no mundo das telecomunicações e da informática. As relações entre os homens, o trabalho, a própria inteligência dependem, na verdade, da metamorfose incessante de dispositivos de todos os tipos (LEVY, 1990, p.7). As tecnologias tornam-se partes integrantes do transcendental histórico podendo influenciar o processo de constituição do ser humano. Levy (1990) exemplifica esse conceito afirmando que as concepções de tempo e espaço que se tem hoje não são resultados apenas de idéias sobre tempo e espaço, mas necessitam de um agenciamento técnico para existirem, como relógios e procedimentos de cartografia, evidenciando assim a importância das 20 tecnologias para o processo de desenvolvimento humano e social. Atualmente, é possível destacar uma maior dependência dos indivíduos da sociedade em relação às tecnologias. Os usuários necessitam estar em constante contato com as tecnologias que os auxiliam com suas tarefas, ditando um tempo mais veloz e produtivo. É possível destacar assim que as tecnologias já fazem parte da constituição dos sujeitos, sendo um fator influente para a transformação da estrutura social, principalmente nos meios de comunicação e nas formas de adquirir, armazenar e compartilhar conhecimento. A concepção das tecnologias influencia o modo de conhecer dos indivíduos, que antes era direcionado por teorias e agora passa a ser constituído por simulações e modelos que não são possíveis de serem lidos e interpretados, como a forma de textos tradicionais, mas que geralmente são explorados de uma maneira interativa. O usuário tem a possibilidade de alterar alguns parâmetros do modelo para obter o resultado sobre a forma de causa e efeito, adquirindo conhecimento por simulação, característica que não se assemelha nem com o conhecimento teórico nem com a experiência prática. Os benefícios do conhecimento por simulação são citados por Levy (1990, p.122): O conhecimento por simulação, menos absoluto que o conhecimento teórico, mais operatório, mais ligado às circunstâncias particulares de seu uso, junta-se assim ao ritmo sociotécnico específico das redes informatizadas: o tempo real. A simulação por computador permite que uma pessoa explore modelos mais complexos e em maior número do que se estivesse reduzido aos recursos de sua imagística mental e de sua memória de curto prazo, mesmo se reforçadas por este auxiliar, por demais estático, que é o papel. É notório que o surgimento das tecnologias modificou o modo de adquirir conhecimento dos indivíduos atribuindo novas possibilidades a sua cultura. Levy (1990) dividiu a história da comunicação em três tempos: a oralidade primária, a escrita e a informática. Na oralidade primária, destacavam-se as comunidades onde a técnica de comunicação era principalmente a linguagem oral, sendo assim, todo o saber era transmitido por meio desse recurso. A memória humana e a fala eram os únicos meios de que a sociedade dispunha para o armazenamento e a transmissão de conhecimento para as próximas gerações, perdendo-se assim, conhecimento valioso durante o passar dos tempos. A escrita foi uma das grandes revoluções na área da comunicação interpessoal, pois 21 possibilitou separar em diferentes contextos o emissor e o receptor da mensagem. A escrita permitiu que o armazenamento do conhecimento fosse prolongado e que o receptor pudesse usufruir de uma informação muito tempo após a sua concepção. A informática é responsável pela concepção das tecnologias da inteligência que disponibilizam serviços que auxiliam a comunicação e a forma de obter conhecimento entre os seres humanos. O modelo de conhecimento por simulação exalta a utilização das tecnologias para a exteriorização das informações, atribuindo a necessidade de armazenamento de dados em dispositivos computacionais e a disponibilização dos mesmos para os usuários quando necessário. Essa situação é fortalecida pelo conceito de inteligência conectiva que será abordada mais a frente nesta dissertação. As tecnologias de comunicação também permitiram que indivíduos dispersos geograficamente pudessem agrupar-se em um ambiente para trocarem informações, debaterem sobre um assunto e trabalharem de forma coletiva por um objetivo em comum, influenciando a formação de redes sociais na Internet. 2.2 Redes sociais Uma rede social é definida como um conjunto de dois principais elementos: os atores (os quais podem ser pessoas, instituições, etc.) e as suas conexões (interações ou laços sociais). A rede social tem foco na estrutura social, onde os indivíduos (atores) não devem ser analisados individualmente, sem que as suas conexões não sejam levadas em consideração. Uma das características mais ricas das redes sociais está justamente na habilidade de poder estudar a relação e a interação entre os indivíduos (RECUERO, 2006). Esse é um conceito que está sendo estudado há muito tempo, porém com o avanço das redes de comunicação, novas pesquisas surgiram com o foco em redes sociais suportadas pelos ambientes de comunicação mediada pelo computador, ou seja, como a Internet possibilitou novas formas de relacionamentos entre indivíduos separados geograficamente. Wellman et al. (1996) citam que quando os computadores interligam as pessoas, assim como as máquinas, eles tornam-se redes sociais. O autor parte do pressuposto que computadores conectam pessoas, e por esta razão podem ser estudados como redes sociais: A análise de redes sociais concebe a estrutura como um padrão de organização desses membros da rede e suas relações. Os analistas de redes sociais trabalham descrevendo os padrões latentes das estruturas sociais, 22 explicando o impacto destas estruturas em outras variáveis e levando-as em conta no estudo das medidas da estruturas sociais (WELLMAN, 1997). O conceito de redes sociais na Internet foi impulsionado quando a US Defense Departament's Advanced Projects Research Agency desenvolveu a ARPANET com o objetivo de interligar as redes de computadores das grandes universidades. Desde os anos 80, os computadores pessoais conectaram-se com alguns centros de comunicações, os quais também expandiram suas interligações com outros centros, tornando a ARPANET a “rede das redes”, conhecida posteriormente como Internet. Wellman et al. (1996) destacam que a Interntet foi a base para o surgimento da comunicação mediada pelo computador (computer-mediated communication), permitindo que pessoas de diferentes lugares e com diferentes fusos horários trocassem informações, seja em uma forma de comunicação síncrona ou assíncrona. Essa situação também é importante para tornar os laços sociais menos fortes, mais fluidos e amplos, pois a relação das pessoas não fica restrita somente aos seus lugares de residência e trabalho, como encontrada antigamente nos pequenos vilarejos. Os indivíduos podem agora, através da comunicação mediada pelo computador, relacionar-se com outras pessoas com quem compartilham certos interesses, mesmo que estes não estejam na mesma localidade. Os laços sociais são fatores importantes em uma rede social, pois são eles que definem a efetiva conexão entre os indivíduos envolvidos em uma interação social. Wellman, Chen e Weizhen (2001) definem os laços sociais: Laços consistem em uma ou mais relações específicas, tais como proximidade, contato frequente, fluxos de informação, conflito ou suporte emocional. A interconexão destes laços canaliza recursos para localizações específicas na estrutura dos sistemas sociais. Os padrões destas relações – a estrutura da rede social – organiza os sistemas de troca, controle, dependência, cooperação e conflito. Esses laços sociais possuem dois tipos: fortes e fracos. A força de um laço pode estar associada diretamente com a quantidade de tempo, intensidade emocional e intimidade que caracterizam um laço. Os laços fortes são aqueles caracterizados pela intimidade, proximidade e pela intencionalidade de estabelecer conexão entre dois indivíduos. Já os laços fracos são caracterizados por conexões que não remetem características de proximidade e intimidade. Wellman et al. (1996) citam que muitos dos laços online, podem compreender características de laços fortes, principalmente por facilitar contatos frequentes, recíprocos e 23 com finalidades de companheirismo. É comum encontrar pessoas que possuem amigos na Internet, com quem dividem segredos, recebem apoio emocional e conselhos, mesmo que nunca tenham se encontrado pessoalmente. Essa é uma característica evidente de laços sociais fortes na Internet. Wellman et al. (1996) fortalecem a idéia que a comunicação mediada pelo computador permite uma relação afetiva entre os seus usuários, citando que há frequentemente uma troca de suporte emocional através da Internet. Essa situação acontece, segundo o autor, pelo fato dos usuários passarem muito tempo em frente aos computadores, influenciando a discussão de seus problemas e dificuldades de forma online. Em contra partida, Granovetter (1973, apud RECUERO, 2006) afirma que os laços fracos também são importantes para ajudar a fortalecer a estrutura das redes sociais. Isso acontece pelo fato dos laços fracos conectarem os grupos constituídos de laços fortes entre suas conexões. A Internet permite que pessoas ou grupos sociais que não possuem intimidades possam se relacionar, criando um laço social fraco, para trocar informações e trabalhar em conjunto visando alcançar um determinado objetivo. Com o advento da comunicação mediada pelo computador, e principalmente pelo surgimento da Web, as pessoas não limitam os seus relacionamentos apenas com os seus familiares, companheiros de trabalho e seus vizinhos. Pelo contrário, os indivíduos que possuem interesse por determinado assunto podem deixar suas conexões fluírem para a criação de laços sociais (mesmo que forem laços fracos) com pessoas que tem os mesmos interesses que o seus, não importando a localização geográfica, podendo ser residentes de cidades, estados e até países diferentes. Os estudos das redes sociais foram retomados principalmente após o surgimento da Web, situação onde os indivíduos começaram a expandir os seus laços de relacionamentos de forma exponencial. Entretanto, a forma de interação no ciberespaço não é alvo de estudos somente das redes sociais. Existe um conceito denominado comunidades virtuais que é bastante abordado por diversos pesquisadores. Na próxima seção, será descrito o conceito de comunidades virtuais e a sua sinergia com as redes sociais. 2.2.1 Comunidades virtuais nas redes sociais O conceito de comunidades é um grande desafio de definição para as ciências sociais. 24 É possível entender como comunidades as aldeias, os grupos étnicos e até mesmo as nações, apesar de o conceito ter sofrido algumas modificações em sua abordagem ao longo do tempo. Baumann (2003) é uma das referências para o conceito de comunidades, tendo abordado em seu livro a relação das comunidades e a segurança no mundo atual. O autor supõe que há uma oposição entre liberdade e comunidade no período contemporâneo: Há um preço a pagar pelo privilégio de 'viver em comunidade'. O preço é pago em forma de liberdade, também chamada 'autonomia', 'direito à autoafirmação' e à 'identidade'. Qualquer que seja a escolha, ganha-se alguma coisa e perde-se outra. Não ter comunidade significa não ter proteção; alcançar a comunidade, se isto ocorrer, poderá em breve significar perder a liberdade (BAUMANN, 2003, p.10). A própria definição de Baumann (2003, p.57) fortalece o cenário onde a liberdade é oposta à forma de pertencer a uma comunidade, conforme a seguinte afirmação: Tecida de compromissos de longo prazo, de direitos inalienáveis e obrigações inabaláveis (...) E os compromissos que tornariam ética a comunidade seriam do tipo do 'compartilhamento fraterno', reafirmando o direito de todos a um seguro comunitário contra os erros e desventuras que são os riscos inseparáveis da vida individual. Baumann (2003) fez um estudo da relação das comunidades com a questão da segurança, apontando que a elite da sociedade tenta criar os seus próprios ambientes de interações de forma seletiva, onde somente os eleitos possuem acesso, esquecendo da comunidade pura, que pode oferecer algum tipo de vantagem aos indivíduos, sem importar-se com suas classes sociais. O conceito de comunidade, assim como as redes sociais, também teve uma grande retomada nos seus estudos com o surgimento da comunicação mediada pelo computador. As comunidades virtuais na Web vêm sendo abordadas por muitos autores como um conceito muito próximo às redes sociais. Castells (2003) cita que o termo comunidade virtual surgiu a partir de novas interações sociais, ocasionadas principalmente pela Internet. O autor também destaca que é necessário reestruturar o conceito de comunidade, focando principalmente no seu papel de apoio social, constituída através de grupos esparsos e não restritos a apenas uma localidade. Rheingold (1996) foi um dos principais autores a abordar o conceito de comunidades virtuais, definindo-o como agregações sociais que emergem da rede quando uma quantidade 25 suficiente de pessoas permanece em discussões públicas longas o suficiente, com sentimento humano, para formar teias de relações pessoais no ciberespaço. De acordo com essa definição, demonstra-se que os elementos formadores das comunidades virtuais são as discussões públicas; as pessoas que se encontram ou que mantêm contato através da Internet; o tempo e o sentimento, características fáceis de serem observadas nos ambientes de comunicação mediada pelo computador, consequentemente também perceptíveis nas redes sociais. Assim, nota-se uma forte sinergia entre os conceitos de comunidades virtuais e de redes sociais. Esse fator é tão relevante que influenciou Rheingold (2000) a publicar um texto onde repensou sobre o seu conceito de comunidades virtuais e a suas relações com as redes sociais. Wellman (1997) também é outro autor a citar a forte relação entre os conceitos de redes sociais e comunidades virtuais, defendendo que os agrupamentos sociais na Internet teriam a presença de variados tipos de conexão. Seguindo esse raciocínio, o autor prefere chamar os agrupamentos de redes sociais, ao invés de comunidades, devido à variedade de seus laços sociais e sua abrangência geográfica. O conceito de comunidades está fortemente relacionado com um ambiente onde há relações através de laços sociais fortes. Entretanto, a Internet está influenciando o surgimento de novos modelos de interações entre indivíduos, onde os grupos passam a ser constituídos por laços menos fortes e com uma abrangência geograficamente maior, por isso Wellman (1997) prefere chamar tal conceito de rede social. É importante destacar que as redes sociais na Internet correspondem, muitas vezes, a redes sociais na vida concreta, e que a comunicação mediada por computador é uma forma de manter e criar novos laços sociais, os quais não são obrigatoriamente mantidos apenas no ciberespaço. As comunidades virtuais também apresentam características próprias em contraste com as redes sociais. Recuero (2006) cita que o estudo de comunidades virtuais a partir das redes sociais seria o mais apropriado, principalmente por esse último conceito permitir um maior alargamento geográfico dos laços sociais. O autor também defende que a metáfora da rede social é importante por enfatizar a estrutura da rede, local onde a comunidade virtual é encontrada. Assim, pode-se defender a idéia que tanto as redes sociais, quanto as comunidades 26 virtuais, mesmo apresentando sinergia nas suas definições, não correspondem simplesmente a um mesmo conceito. Em outras palavras, o grau de proximidade, a intensidade das interações e o compromisso entre os indivíduos são elementos que ajudam a diferenciar o conceito de redes sociais e comunidades virtuais. A rede social torna-se a base dos relacionamentos para a criação de laços sociais entre os indivíduos, muitas vezes de maneira menos intensa e mais dispersa geograficamente. Já as comunidades virtuais emergem a partir de tal cenário de interação, onde indivíduos podem se agrupar de acordo com seus objetivos e interesses em comum, cooperando intensamente entre si para a construção de laços sociais fortes. Apesar desses conceitos apresentarem diferenças, vale ressaltar que ambos são importantes para o surgimento de novas formas de interações e relacionamentos na sociedade, situação que também influenciou o amadurecimento do conceito de colaboração. O conceito de redes sociais é evidenciado nessa dissertação por esta pesquisa ter como objetivo investigar as formas de colaboração e compartilhamento entre os indivíduos, situação que caracteriza laços sociais mais fluídos e menos fortes, e não interação de intimidade e suporte emocional, como encontrados em comunidades virtuais. A tecnologia de Grid Computing, conforme será discorrida mais a frente nesta dissertação, também favorece a criação de novas formas de redes sociais em seu ambiente, permitindo que indivíduos possam interagir, criando laço sociais fracos, através do compartilhamento de recursos computacionais, dados e aplicativos. As redes sociais têm papéis fundamentais para o surgimento de novos modelos produtivos, principalmente influenciando o compartilhamento e a colaboração entre os indivíduos. As redes sociais também têm uma função importante para facilitar a comunicação e troca de informação, estimulando a colaboração entre indivíduos que não têm laços sociais fortes, mas que compartilham interesse por um mesmo assunto. Na próxima seção será abordado sobre uma revolução que modificou o processo produtivo nas redes digitais. 2.3 Riquezas das redes As redes de comunicação são responsáveis por importantes mudanças na sociedade, desde a criação de novas formas de interações e relacionamento entre as pessoas até o surgimento de novos modelos produtivos de conteúdos, produtos e serviços. 27 De acordo com essa situação, Benkler (2006) afirma que a economia informacional está sofrendo importantes saltos sociais na concepção dos seus bens, partindo de um movimento controlado pela indústria privada de informação para uma indústria social, não proprietária e descentralizada. O grande fator responsável por essa mudança foi o surgimento das redes de comunicações construídas com recursos capazes de interligar comunidades distribuídas geograficamente, permitindo assim o aumento da produção nonmarket, ou seja, uma produção informacional e cultural fora do sistema de mercado e organizada de uma maneira descentralizada. Atualmente, o declínio dos preços dos recursos computacionais, dispositivos de comunicações e armazenamento tornou possível a produção informacional e cultural para uma significante fração da população mundial conectada à Internet. Em meados do século dezenove, era necessário um grande investimento de capital físico para a circulação da mídia impressa em larga escala. O surgimento de diversas técnicas como telégrafos, rádios, transmissores de televisão a cabo e computadores de grande porte, como os mainframes, foram necessários para que a informação tivesse um alcance para um público além do limite local do emissor. Como resultado, a produção de informação tornou-se ainda mais privilegiada e restrita para as indústrias informacionais que possuíam recursos para investimento nessas tecnologias. Entretanto, o surgimento do ambiente de comunicação possibilitado pelas redes de computadores mudou esse cenário, pois permitiu que o material necessário para a produção de informação estivesse disponível para um grande número de indivíduos conectados na rede. Segundo Benkler (2006), a remoção das barreiras físicas na efetiva produção de informação transformou a criatividade humana e os fatores estruturais da tradicional economia da informação, concebendo um novo ambiente denominado economia informacional conectada. Na economia informacional conectada, o capital necessário para produção de informação está distribuído na sociedade através dos computadores pessoais e também das redes sociais, enfatizando a questão de que simples usuários conectados na Internet possam desenvolver quaisquer atividades que envolvam a criatividade humana através de seus computadores pessoais, sozinhos ou em cooperação com outras pessoas. O resultado desse cenário é o florescimento de uma produção informacional e cultural baseada no ambiente de redes sociais, o qual pode ser aplicado para o surgimento de diversos 28 recursos que não são tratados como bem de propriedade exclusiva, mas sim como recursos abertos e compartilhados. Jenkins (2006) cita que a convergência das mídias também tem papel fundamental para que simples consumidores, posteriormente chamados de prossumidores, comecem a gerar conteúdos que podem abranger as mídias tradicionais e também as atuais mídias participativas e coletivas. Como exemplo, o mesmo autor cita o episódio ocorrido em 2001, quando um estudante criou, utilizando o Photoshop1, uma edição do personagem Beto da Vila Sésamo interagindo com o terrorista Osama Bin Laden. Essa montagem faz parte de uma brincadeira de internautas denominada “Beto é do Mal”, que traz o personagem como membro da Ku Kux Klan, ou até mesmo ao lado do Hitler. Logo após os ataques de 11 de Setembro, um editor de Bangladesh fez pesquisas na Internet para coletar imagens de Osama Bin Laden com o objetivo de criar cartazes antiamericanos. O editor provavelmente não conhecendo o personagem Beto e julgado a imagem de Bin Laden como um bom retrato, utilizou tal conteúdo para a confecção de cartazes que, pouco tempo depois acabou espalhado por todo o Oriente Médio em manifestações. Repórteres da CNN registraram imagens de protestos contra os Estados Unidos da América onde estavam sendo utilizados cartazes com a imagem de Beto e Osama Bin Laden. Os representantes do Children's Television Workshop, criadores do programa Vila Sésamo, descobriram a imagem da CNN e ameaçaram tomar medidas legais contra o seu uso inapropriado, porém sem direcionar quem seriam os responsáveis por esse abuso - o estudante que criou a imagem, ou os simpatizantes terroristas que a utilizaram em cartazes. O que realmente chama a atenção nesse caso é a convergência entre as mídias em um cenário global. Um jovem estudante fez uma colagem de um personagem de um programa de televisão e a disponibilizou na Internet, o que possibilitou que cidadãos de países do Oriente Médio pudessem utilizar o conteúdo para gerar cartazes antiamericanos durante protestos, os quais foram transmitidos para todo o mundo através de um dos maiores veículos de informação internacional. Esse é um exemplo de conteúdos gerados por prossumidores que podem cruzar por meios comerciais e meios alternativos. É possível destacar que serviços e produtos intangíveis, como os softwares produzidos 1 Photoshop – Aplicativo utilizado para edição de imagem. 29 por uma coleção de indivíduos organizados muitas vezes pelas redes sociais na Internet, já estão aptos a competir em relação à qualidade com bens gerados por indústrias especializadas e orientadas ao mercado. O Sistema Operacional Linux é um grande exemplo de software desenvolvido colaborativamente por voluntários, sendo capaz de traçar batalhas árduas com grandes empresas desenvolvedoras de software na busca pelo mercado consumidor. O compartilhamento e o trabalho colaborativo são questões extremamente valiosas em um ambiente de interação proporcionado pelas redes sociais, onde usuários de todas as partes do mundo podem se comunicar, trocar informações e trabalhar em conjunto, seja em assuntos relacionados aos seus hobbies, profissionais ou até mesmo em prol da ciência. 2.3.1 Compartilhamento e produção entre pares A concepção da Internet e o rápido crescimento das redes sociais influenciaram a concepção de um novo meio de produção. A visão existente no fim do século vinte era do poder de produção centralizado nas indústrias com grande capacidade de investimento e não se pensava em um conjunto de indivíduos voluntários trabalhando colaborativamente para a produção de um bem capaz de superar um produto gerado por uma grande indústria. Porém, é exatamente isso que está acontecendo atualmente e um exemplo incontestável é o processo de desenvolvimento de software livre. A emergência dos softwares de código-livre é um fenômeno de sucesso baseado em colaboração através do compartilhamento de recursos e produção entre pares. O sistema operacional GNU/LINUX, o servidor Web Apache, a linguagem de programação Perl, são práticas de sucesso que surgiram apenas da colaboração de voluntários, sem a influência de uma indústria especializada. Os voluntários dificilmente participam de projetos colaborativos por serem influenciados por seus superiores ou por receberem uma oferta em dinheiro, porém dedicam seu trabalho visando retorno a longo prazo, como a divulgação do seu trabalho na sociedade e a prestação de serviços. Benkler (2006) cita que os ambientes das redes digitais possibilitam um novo modelo de organização de produção baseado em algumas características, como a descentralização, a colaboração e a não-proprietariedade. Esse novo processo produtivo evidencia as vantagens do compartilhamento de recursos e resultados com os indivíduos que cooperam sem 30 influências de mercados, o que foi chamado de produção entre pares baseada em commons, O termo common significa uma forma particular de estruturar o direito de acesso, uso e controle sobre recursos. A principal característica de common é o fato de nenhuma pessoa ter total e exclusiva autoridade sobre os recursos, mas permitir que sejam utilizados por qualquer indivíduo, entre um número de pessoas, através de regras que possivelmente emergiram das influências dos próprios usuários. Os commons podem ser divididos em quatro tipos baseados em dois parâmetros. O primeiro parâmetro define se o recurso está aberto para qualquer indivíduo ou somente para um grupo definido de pessoas. Os oceanos, o ar, a luz do sol são exemplos de commons abertos para qualquer indivíduo. Os bens imóveis privados, como casas e terrenos, são exemplos de commons abertos somente para um determinado grupo. O segundo parâmetro é baseado no fato de um bem ser regulamentado ou nãoregulamentado. Geralmente, os commons com acessos limitados são governados por algum tipo de regra, enquanto os commons abertos não são regulamentados. A condição de produção entre pares, a qual compartilha semelhantes características com a tecnologia peer-to-peer, caracteriza um conjunto de práticas de produção baseada em commons, onde o sistema produtivo depende da ação individual que é auto-selecionável e descentralizada, ao contrário de uma produção baseada em hierarquia (BENKLER, 2006). Bauwens (2002) também cita, na mesma linha, que o modelo peer-to-peer não deve ser visto somente como uma tecnologia, mas que isso tornou-se um processo de produção, uma maneira de organizar a forma que produtos imateriais são produzidos, distribuídos e consumidos. O ambiente conectado das redes sociais favorece a produção entre pares provendo novos mecanismos que auxiliam os indivíduos distribuídos geograficamente a adotarem estratégias radicalmente descentralizadas de cooperação, ao invés de utilizarem recursos proprietários ou bens baseados nos sistemas de mercado. A economia informacional conectada, influenciada pelo modelo de produção entre pares destaca a importância das informações produzidas de maneira distribuída e colaborativa. Bauwens (2002) afirma que um dos maiores exemplos desse tipo de produção é o software livre. Delanda (2001) cita que os grupos hackers, que muitas vezes se organizam e formam alguma rede social na Internet, são os grandes responsáveis pelo sucesso dos softwares livres. O autor defende que o termo hacker não está relacionado com os vândalos 31 digitais (chamados de crackers), mas sim com pessoas que buscam o desenvolvimento dos seus próprios softwares. O autor cita ainda que esses indivíduos não precisam necessariamente possuir o título de bacharel em ciências da computação, mas que a motivação por criar algo que eles julgam útil faz com que eles desenvolvam novos softwares sem a presença de uma imposição profissional ou alguma recompensa econômica. É possível encontrar na Internet diversas redes sociais focadas no desenvolvimento de software livre que agrupam pessoas de diversos países sem que haja alguma empresa por trás ou qualquer mecanismo de mercado presente. Os voluntários que compartilham interesse pelo objetivo de um determinado projeto podem trabalhar de forma colaborativa para desenvolverem uma nova aplicação. É importante destacar que nesse cenário de produção colaborativa entre pares, o compartilhamento é uma característica fundamental, pois permite que todos tenham acesso às mesmas informações e produtos desenvolvidos. Delanda (2001) cita que os dois principais itens responsáveis pelo sucesso do movimento do software livre são: O modelo das licenças (principalmente a GPL2) e o modelo de produção. É perceptível que os dois itens apresentam grande sinergia entre si, principalmente pelo fato das licenças permitirem maior transparência e confiança no processo colaborativo de desenvolvimento de software. Os voluntários muitas vezes participam dos projetos de desenvolvimento de software livre por acreditarem que as licenças ajudam a proteger o intelectual social através do conceito de commons, onde existe a eliminação da exclusiva propriedade sobre um bem. Os commons são encontrados na Internet como um meio de expansão das possibilidades de práticas colaborativas, mobilização comum e compartilhamento de recursos. Os indivíduos tendem a colaborar mais quando eles encontram um bem gerenciado como um common, devido as suas características de liberdade e não exclusividade. O ambiente informacional constituído por redes sociais e influenciado pelos conceitos de colaboração são também importantes para o fortalecimento de novo modelo de inteligência, como é chamado por diversos autores. Isto se dá pelo fato de pessoas de diferentes países, culturas, formações e experiências poderem interagir via Internet para trabalhar em conjunto, compartilhando os seus conhecimentos específicos. 2 General Public License Licença para software livre idealizada por Richard Stallman no final dos anos 80. 32 Para exemplificar esse cenário, pode-se pensar em um projeto de desenvolvimento de uma nova aplicação, onde pessoas com diferentes tipos de experiências estão trabalhando em conjunto. Existem indivíduos com conhecimento na linguagem de programação Java, outros com experiência na linguagem C++ e também pessoas que trabalham apenas com gerenciadores de bancos de dados. Todos esses indivíduos podem compartilhar os seus conhecimentos para agregar valor no processo produtivo. O indivíduo que trabalha com a linguagem Java pode ser o responsável pelo desenvolvimento da interface gráfica de uma aplicação, mas pode estar em constante contato com os desenvolvedores em C++ que estão responsáveis pela construção de outra parte do sistema e até mesmo com os administradores dos bancos de dados. Assim, se o desenvolvedor de Java estiver enfrentando alguma dificuldade, ele poderá ser ajudado por pessoas com diferentes experiências e perspectivas do projeto. Na próxima seção serão estudados os novos conceitos de inteligência que emergiram a partir das redes de comunicação e forma impulsionadas por fatores coletivos e de colaboração. 2.4 Inteligência nas redes Diversas pesquisas foram iniciadas com foco na reflexão sobre a dimensão e abrangência do coletivo, estudando de qual forma os indivíduos atuam em grupo, mesmo que eles apresentem características pessoais diferentes (como país de origem, formação, idade, sexo, etc.), e como eles podem agregar valor social para o coletivo do qual fazem parte. As redes sociais na Internet permitem que pessoas pertencentes a distintas culturas e com diferentes perfis possam trocar experiência em um ambiente de comunicação mediada pelo computador, possibilitando que novas formas de inteligência possam ser estimuladas através do compartilhamento e colaboração de cada um dos indivíduos. Levy (1999) define o termo inteligência coletiva como “uma inteligência distribuída por toda a parte, coordenada em tempo real, que resulta uma mobilização efetiva das competências”. Essa definição constata que na Inteligência Coletiva o conhecimento está espalhado por todos os lugares do mundo, onde cada pessoa pode apresentar um tipo de conhecimento diferente em relação a outros indivíduos, sejam estes inseridos na mesma ou em diferentes culturas. A Internet é um espaço de compartilhamento de informações, um ambiente onde os 33 indivíduos submetem seus conhecimentos e expertises individuais para objetivos comuns. Levy (1999) cita também que nenhuma pessoa sabe tudo e que todo o conhecimento reside na humanidade. De acordo com essa afirmação, exalta-se que, através das redes sociais, é possível que as tarefas que as pessoas não tinham conhecimento ou não podiam fazer sozinhas, agora tornam-se possíveis de serem realizadas coletivamente. Na Wikipedia, embora haja alguns mecnismos de controle, todo o conhecimento foi gerado por indivíduos espalhados ao redor do mundo em um formato de voluntariado. Pessoas nascidas em diferentes países, com diferentes idades e formações podem trabalhar em conjunto, adicionando, editando e removendo informações para enriquecer um determinado artigo nessa enciclopédia colaborativa. As mesmas características, conforme já abordado anteriormente, também podem ser facilmente encontradas nos movimentos de desenvolvimento de software livre. A Internet possibilitou que novas formas de ações coletivas fossem capazes de serem realizadas com sucesso. As pessoas conectam-se em um ambiente de comunicação e computação, onde podem executar suas tarefas com ajuda de algum outro indivíduo que reside em um país diferente, criando uma situação de cooperação que nunca tinha sido observada anteriormente. Rheingold (2002) fortalece a idéia que as novas tecnologias, principalmente aquelas que potencializam a mobilidade, como as redes de telefonia móvel e as redes wireless, são de extrema importância para facilitar ações colaborativas através das redes sociais. O autor defende que o acesso às redes modifica a capacidade e a forma das pessoas executarem suas atividades, pois elas passam a ter acesso constante a repositórios de informações e também podem solicitar ajuda para pessoas que não estão presentes no seu espaço físico, mas que são acessíveis através da comunicação mediada por computador. Com base nessas características, Rheingold (2002) definiu Smart Mob (Multidão Esperta), conceito que corresponde a um grupo que se comporta de maneira inteligente ou eficiente em uma rede onde suas conexões crescem exponencialmente, permitindo que as pessoas possam agir de forma conjunta. O autor ainda cita que as pessoas que formam a Smart Mob cooperam através de uma nova forma devido ao fato de utilizarem aparelhos que possuem tanto capacidade de comunicação quanto de computação. Rheingold (2002) cita que uma Smart Mob emerge quando redes sociais utilizam principalmente tecnologias móveis, computação pervasiva e métodos peer-to-peer para 34 coordenar uma ação coletiva. O autor exemplifica essa afirmação citando o cenário da queda do presidente das Filipinas, onde os cidadãos filipinos organizados por meio de mensagens de texto via celular (sms3) promoveram manifestações pacíficas que conseguiram tirar do poder o presidente Joseph Estrada. É importante ressaltar que as tecnologias e as redes sociais têm papel fundamental para identificar e mobilizar as pessoas próximas, criando laços extremamente valiosos para que possam atuar em conjunto por um mesmo objetivo, muitas vezes sem importar sua cultura, formação, sexo ou idade. Levy (1999) afirmou que todos os indivíduos na humanidade têm um tipo de conhecimento e que, por esse motivo, nenhuma pessoa deveria ser desprezada. Rheingold (2002) escreveu que as interações entre as pessoas podem transformar uma simples multidão em uma multidão esperta. Por sua vez, Surowiecki (2006), com uma proposta visionária, defende o que ele chama de sabedoria das multidões, um assunto extremamente polêmico, já que a grande maioria das pessoas associa a idéia de multidão com tumulto e desordem. Entretanto, o que o autor mostra é que as decisões tomadas por uma multidão eclética são mais inteligentes do que as opiniões geradas por um pequeno grupo de especialistas. Para defender sua definição, Surowiecki (2006) cita diversos exemplos, podendo ser destacado o caso do desaparecimento do submarino americano Scorpion no Atlântico Norte. Nesta situação, os oficiais da marinha em terra possuíam somente informações do possível local do desaparecimento, o qual correspondia a uma área com raio de 20 milhas em águas que apresentavam variações de profundidade. John Crave, um oficial da marinha naquela época, teve a idéia de levar as informações disponíveis para especialistas das mais diversificadas área do conhecimento, pedindo para que estimassem o possível local onde estaria o submarino Scorpion. Após receber todas as coordenadas dos especialistas, Crave utilizou essas informações em uma fórmula matemática, obtendo um impressionante resultado – apontou a localização do submarino com um pequeno erro de 200 metros, o que seria uma tarefa bastante difícil, se fosse trabalhada apenas por especialistas de uma única área de atuação. Entretanto, Surowiecki (2006) menciona que a sabedoria das multidões é fácil de ser observada em várias situações na sociedade, porém são muito difíceis de serem obtidas por terem que obedecer quatro principais características: 3 Short Message Service – Serviço de comunicação presente nas redes de telefonia móvel que permite o envio e recebimento de mensagens de texto. 35 • Diversidade – Os indivíduos que compõem a multidão devem ser discrepantes em relação a sua cultura, formação, área de atuação e opinião. O consenso não é uma propriedade valiosa; pelo contrário, nesse modelo a diversidade é o fator que engloba diferentes visões sobre um mesmo assunto, permitindo aproveitar as opiniões de estudiosos, profissionais de áreas afins, para enriquecer a ótica sobre o assunto abordado. É notável que esse modelo gere conteúdos úteis (informações) e inúteis (ruídos), porém destaca-se que a própria multidão tende a anular os ruídos. • Independência – Os indivíduos devem formular suas opiniões de maneira individual, sem que haja a influência de outros integrantes da multidão, pois esse cenário favorece o surgimento de informações e também diminui os ruídos. • Descentralização – As opiniões coletivas são mais valiosas e inteligentes quando não há um fator de controle sobre isso, onde os indivíduos possam pensar e emitir suas opiniões de maneira livre e baseando-se apenas em sua cultura e formação. • Agregação – As opiniões emitidas por todos os indivíduos que compõem a multidão devem ser agregadas para formar uma opinião coletiva, assim como aconteceu na situação do submarino Scorpion. Rheignold (2008), autor que havia publicado anteriormente um texto sobre multidões espertas, aponta que uma multidão esperta não necessariamente é uma multidão sábia, contrapondo alguns pontos de Surowieck (2006). Rheignold (2008) cita que as tecnologias por si só não garantem democracia e qualidade das multidões, mas que possivelmente devem haver algumas regras a serem seguidas para que uma multidão se torne cada vez mais inteligente. O mesmo autor ainda sugere que as pessoas engajadas nesses movimentos tenham consciência que isso é apenas o início e que talvez elas devessem assumir uma posição de liderança para fazer as multidões mais inteligentes, extraindo o bem intelectual mais valioso de cada indivíduo. É importante destacar que o conceito de multidões existe há muito tempo, antes do surgimento das tecnologias, mas são elas que, nos dias atuais, facilitam a comunicação entre 36 seus indivíduos. As formas de interações entre os indivíduos foram reformuladas após a concepção da comunicação mediada pelo computador, quando passaram a se comunicar em tempo real sem a necessidade de estarem no mesmo espaço físico e quando começaram a receber ajuda através de respostas e compartilhamento de informação de forma instantânea. Mas não é somente a forma de comunicação síncrona, envio e recebimento de mensagem entre dois ou mais indivíduos em tempo real, que favorece um cenário de inteligência nas redes. A Web é um espaço onde existem muitas informações que foram publicadas por diversas fontes em um determinando tempo no passado que estão disponíveis para serem acessadas a qualquer momento. No período anterior a Internet, as pessoas necessitavam locomover-se até uma biblioteca para ter acesso a uma determinada obra. Se ela quisesse obter alguma informação instantaneamente, a forma mais prática era perguntar para as pessoas ao seu redor, que poderiam não saber as respostas. O advento da Internet reformulou totalmente esse cenário. Hoje em dia, a pessoa tem uma quantidade extremamente alta de informações disponível a partir de dispositivos conectados na Web em qualquer espaço de tempo. Na Web não existe horário de funcionamento. Pelo contrário, tornou-se um grande repositório de informações coletivas aberto 24 horas nos 7 dias da semana, seja através de sites de veículos de comunicação, portais corporativos, blogs pessoais e até mesmo ferramentas wikis É justamente seguindo essa mesma linha de raciocínio que De Kerckhove (1997) define o que ele chama de inteligência conectiva. O autor cita que a Internet é uma espécie de cérebro global composto através da interligação de cérebros individuais. Ele ainda cita, mais profundamente, que a Web é uma extensão de nossas próprias mentes interligadas com recursos das mentes de milhões de indivíduos. As pessoas expandem suas mentes na Internet através de blogs, sites, sistemas wikis, participação em fórum e comunicação em tempo real (instant messaging) De Kerckhove (1997) cita, para fortalecer a sua opinião, que as pessoas buscavam através de reuniões locais, antes da Internet, uma forma para conectarem suas mentes com o objetivo de alcançar certo consentimento mental. Porém, com a comunicação mediada por computador, as pessoas podem fazer isso mesmo estando em diferentes cidades, através do uso de aplicações de comunicação síncrona ou assíncronas. Assim, os indivíduos estão em um ambiente de mentes conectadas, onde existe um 37 grande acesso as informações pertencentes a diversas classes e que podem ter sido construídas em qualquer espaço de tempo. Na Web é fácil encontrar notícias extremamente recentes até conteúdos publicados há muitos anos que foram digitalizados e disponibilizados na rede. É possível perceber uma grande sinergia entre inteligência conectiva e inteligência coletiva. Entretanto, De Kerckhove (2009) cita em uma entrevista a diferença entre ambos os conceitos. O autor inicia essa diferenciação da seguinte forma: Pelo pensamento eu compreendo o mundo, pelo espaço o mundo me compreende. Pascal compreendeu bem a diferença entre o eu pensante e a pertinência do ponto no espaço. A nova possibilidade é: eu compreendo o mundo, o mundo me compreende, sem exclusão, juntos. E cada indivíduo que compreende o mundo comigo partilha da minha inteligência, da minha consciência conectiva. É diferente da emergência de uma inteligência coletiva, como a de que fala Pierre Levy (DE KERCKHOVE, 2009). O autor ainda acrescenta que a inteligência conectiva tem aplicações reais e não é apenas uma teoria. Para fortalecer sua afirmação, ele exemplifica que a partir de um notebook, sem importar sua localização, ele pode se conectar com pessoas com quem trabalha e pode executar seu trabalho a distância da mesma maneira como seria se ele estivesse cara a cara com seus companheiros. É interessante notar que os diversos conceitos de inteligência nas redes apresentados até o momento compartilham uma mesma característica: os indivíduos estão cada vez mais interligados com um número maior de conexões e que tendem a aumentar com o passar do tempo. No presente momento é possível encontrar diversas pessoas que recorrem a Web como fonte de informação, seja para uma pesquisa acadêmica, para resolver um problema no trabalho ou para esclarecer uma dúvida pessoal relacionada a assuntos de conhecimento geral. Entretanto, destaca-se que o conceito de inteligência conectiva é o que melhor relaciona-se com o tema do trabalho. Conforme foi definido anteriormente, pode-se pensar a inteligência conectiva como a extensão da mente humana, a qual está interligada com a mente de inúmeras pessoas. Adicionalmente, pode-se exaltar que as tecnologias apresentam incrível capacidade de processamento e de armazenamento, tornando-se mais eficientes para determinadas tarefas em conjunto. A tecnologia de Grid Computing compartilha, similarmente a Web, características com o modelo de inteligência conectiva. Os ambientes de Grid Computing são espaços com alta capacidade de processamento constituídos com recursos de diversas entidades e indivíduos, 38 permitindo assim que eles fiquem conectados para troca de informações, execução de aplicações em conjunto e compartilhamento de resultados. Seguindo o modelo de inteligência conectiva, pode-se pensar um ambiente de Grid Computing como um cérebro global (aglomerado de recursos computacionais, aplicações e dados) composto por inúmeros recursos de indivíduos e instituições, os quais podem compartilhar informações, aplicações e resultados, além de recursos computacionais que elevam a capacidade de processamento do ambiente. A tecnologia de Grid Computing será abordada em detalhes nas próximas seções. 2.5 Sistemas distribuídos Nessa seção trata-se do conceito de sistemas distribuídos, suas características e arquiteturas. 2.5.1 Histórico Desde o surgimento dos primeiros computadores devido, entre outros, ao pesquisador Von Neuman4 na década de quarenta, até o avanço das atuais redes de dados, foi constante a alteração no processo produtivo de software em relação à sua funcionalidade e à sua complexidade para atender à crescente demanda de utilização das tecnologias ao redor do mundo. Os primeiros computadores de grande-porte, chamados mainframes, possibilitaram o modelo de computação com a utilização de funcionalidades centralizadas em apenas um dispositivo, ou seja, os recursos estavam todos disponíveis em um mainframe central e os usuários utilizavam seus serviços disponíveis através de terminais locais ou remotos. A partir de 1985, o aumento da produção de dispositivos computacionais e o avanço da Internet foram fatores fundamentais para o surgimento de um novo paradigma no desenvolvimento de softwares. Os recursos tornaram-se compartilhados e também distribuídos entre um grande número de computadores separados geograficamente, característica que fortaleceu a concepção da arquitetura cliente-servidor. Na arquitetura cliente-servidor, o programa executado em máquinas locais (clientes) tem acesso aos serviços fornecidos por computadores remotos (servidores) fazendo o acesso 4 John Von Neuman – Matemático húngaro criador do primeiro Computador Digital Eletrônico. 39 através de uma rede de dados, caracterizando assim um processamento de informação distribuído entre as duas máquinas. Entretanto, esse novo modelo de software conduziu a novos desafios em relação ao desenvolvimento e gerenciamento de programas distribuídos, como também questões técnicas pertinentes ao ambiente da época: Ausência de estados globais dos recursos remotos (acesso a memória RAM das máquinas remotas), dificuldades para solucionar problemas básicos devido à discordância entre as partes responsáveis pelos recursos distribuídos para tomarem uma ação comum (FISCHER; LYNCH; PETERSON, 1985). Entretanto, hoje em dia já existem algoritmos específicos que são utilizados para solucionar esses desafios. No início dos anos 90, com a concepção da Web, a arquitetura de sistemas distribuídos passou a assumir um papel de tecnologia definitiva para os desenvolvedores de software, que passaram a visar seus aplicativos com funcionalidades de acesso remoto a sistemas legados, sistemas de fornecedores e clientes. Esse cenário favoreceu o surgimento de diversas técnicas e tecnologias de sistemas distribuídos com foco no processamento e compartilhamento de informações de uma forma simples e ágil, facilitando assim a tarefa do desenvolvedor de aplicativos e trazendo transparência para os usuários finais. 2.5.2 Arquitetura A arquitetura de sistemas distribuídos é abordada por diversos autores – Tanenbaum (1994) define Sistemas Distribuídos como uma "Coleção de computadores independentes que se apresenta ao usuário como um sistema único e consistente". Adicionalmente, Coulouris, Dollimore e Kindberg (2002) também destacam esse modelo de processamento como uma "Coleção de computadores autônomos interligados através de uma rede de computadores equipados com software que permita o compartilhamento dos recursos do sistema: hardware, software e dados". Baseado nessas duas definições pode-se então consensuar a definição de sistemas distribuídos como uma coleção de computadores que compartilham os seus recursos (hardware, software e dados) de uma maneira transparente para a interface humana, ou seja, o usuário tem a percepção de que todos os recursos utilizados são locais. Os sistemas distribuídos são construídos através de uma camada lógica denominada 40 middleware, executada acima da camada do sistema operacional e abaixo das aplicações, sendo a responsável pelo funcionamento de um sistema distribuído através de diversos recursos físicos separados, conforme a Figura 1: Figura 1 – Arquitetura dos Sistemas Distribuídos (TANENBAUM; STEEN, 2002) 2.5.3 Características Algumas características são típicas na definição de um sistema distribuído, porém cada um pode apresentar propriedades diferentes dependendo da sua finalidade. As características julgadas importantes para grande parte dos sistemas distribuídos são destacadas nesse trabalho. Transparência Um dos objetivos mais importantes de um sistema distribuído é o fato de ocultar, para o usuário, que os processos utilizados por ele são fisicamente distribuídos por diversos computadores (TANENBAUM; STEEN, 2002). Alguns aspectos de transparência são destacados a seguir: • Transparência do acesso: oculta a maneira de como um recurso é alcançado. • Transparência da posição: oculta a localização de onde o recurso é encontrado. • Transparência da migração: oculta a possibilidade de um recurso poder mover-se para outra posição. • Transparência de deslocamento: oculta a possibilidade de um recurso poder ser movido para outra posição enquanto estiver em uso. • Transparência de replicação: oculta que um recurso pode ser replicado. • Transparência de concorrência: oculta que um recurso pode ser utilizado por 41 diversos usuários concorrentes. • Transparência de falha: oculta a falha e a recuperação de um recurso. • Transparência de persistência: oculta se um aplicativo está sendo executado em memória real ou em disco. Um sistema distribuído é considerado transparente se o usuário, ao utilizá-lo, tem a sensibilidade de um único sistema, e sem necessariamente perceber que ao utilizar certa funcionalidade está executando processos em diversas máquinas fisicamente separadas. Escalabilidade Escalabilidade é a característica do sistema que define a funcionalidade de gerenciar e atender o crescimento de demanda de trabalho de forma uniforme (BONDI, 2000). Essa funcionalidade habilita o sistema a suportar o aumento da carga de trabalho, adequando a sua utilização, de modo a minimizar ou eliminar impactos no desempenho do sistema. São constantes as dificuldades de escalabilidade em sistemas que possuem alguma funcionalidade centralizada, como por exemplo, serviços disponibilizados por um único servidor. Interoperabilidade Interoperabilidade é a propriedade referente a habilidade de diversos sistemas e tecnologias trabalharem juntos. IEEE (1990) define interoperabilidade como a habilidade de dois ou mais sistemas trocarem informações e poderem utilizar esses dados após a troca. Em outras palavras, interoperabilidade significa a possibilidade um sistema desenvolvido com a tecnologia A comunicar-se com outra plataforma desenvolvida com a tecnologia B sem a necessidade de grandes mudanças em suas arquiteturas. Para tal feito, torna-se importante a padronização das interfaces das tecnologias. Portabilidade Portabilidade é a característica de mover, sem a necessidade de grandes adaptações e modificações, uma determinada aplicação executada em um ambiente A para um ambiente B 42 que possua as mesmas interfaces. Garen (2007) reforça a definição de portabilidade: Portabilidade não implica que uma aplicação será simplesmente transferida para uma nova plataforma, mas também não significa que um grande esforço é necessário para que ela funcione. Portabilidade é simplesmente a habilidade de utilizar o programa em outro sistema com razoável custo e esforço. Dependabilidade Dependabilidade é a habilidade para disponibilizar um serviço considerado confiável. O serviço entregue por um sistema tem o seu comportamento definido pela percepção dos usuários; portanto, a sua funcionalidade deve estar de acordo com a sua especificação. Os atributos da característica de dependabilidade são: • Disponibilidade: prontidão para a entrega do serviço quando requisitado. • Confiabilidade: continuação da entrega do serviço correto. • Segurança: ausência de consequências catastróficas no ambiente. • Integridade: ausência de mudanças impróprias no sistema. • Manutibilidade: habilidade para reparos e manutenções. O conceito de tolerância a falha também é aplicado à característica de dependabilidade e sugere preservar a entrega do serviço corretamente mesmo na presença de falhas. Geralmente, esse conceito é implementado utilizando técnicas de detecção de erros e seus subsequentes procedimentos de recuperação (AVIZIENIS;LAPRIE;RANDELL, 2001). 2.6 Grid Computing A tecnologia de Grid Computing será abordada com mais detalhes nesta seção, como o seu histórico, definição, arquitetura, principais sistemas e projetos. 2.6.1 Histórico A história dos sistemas distribuídos concebendo os conceitos de Grid Computing surgiu na década de 80, período de intensa pesquisa, desenvolvimento e disponibilização de 43 hardware, software e aplicações para computadores paralelos. Nessa época, os desenvolvedores de sistemas estavam focados em aplicações de larga escala que facilmente atingiam os limites dos recursos computacionais, mesmo sendo executadas nos computadores paralelos mais rápidos presentes no momento. Essa situação fortaleceu a pesquisa pelo processamento além dos limites locais das máquinas para alcançar resultados de problemas de larga escala. Grid Computing foi pensado inicialmente como uma arquitetura para estender os paradigmas da computação paralela de clusters firmementes acoplados para sistemas geograficamente distribuídos. Porém, essa tecnologia está sendo altamente utilizada como uma plataforma para a integração de aplicações e recursos fracamente acoplados. Nos anos 90, surgiu um projeto nos Estados Unidos da América denominado US Gigabit testbed, com foco nas aplicações distribuídas em áreas metropolitanas (metropolitanarea) e também em áreas mais abrangentes (wide-area). O projeto era composto de quatro ambientes de testes (testbeds) com os objetivos de investigar o potencial das arquiteturas de redes e prover interface de contato para aplicações distribuídas. O projeto I-WAY (Information Wide Area Year) é considerado a primeira implementação de Grid Computing e tinha como objetivo interligar redes de supercomputadores. Em 1995, durante uma conferência sobre supercomputação, pesquisadores pioneiros integraram um ambiente de teste com mais de 17 redes interconectadas. Mais de 60 aplicações foram desenvolvidas para a conferência e disponibilizadas no IWAY, assim como, um software rudimentar de Grid para prover acesso, segurança e coordenar os recursos. Esse projeto abriu as portas para o paradigma de Computação em Grade no meio acadêmico. A tecnologia de Grid Computing tornou-se um conceito global devido ao trabalho de diversas instituições ao redor do mundo para o desenvolvimento e especialização dessa técnica (BERMAN; FOX; HEY, 2003). O programa SETI@HOME foi um dos projetos pioneiros na implementação de uma moderna infra-estrutura de Grid Computing orientada à Internet. Esse projeto tinha como objetivo analisar os dados captados pelo telescópio de rádio instalado em Arecibo, Puerto Rico, para a busca de sinais de vidas extraterrestre. 44 2.6.2 Definição Grid Computing, também chamada de Computação em Grade em português, é o conceito que está reformulando as infra-estruturas computacionais, tornando-as mais produtivas e eficientes. Essa tecnologia tem como objetivo elevar a capacidade computacional do ambiente, através da integração de dispositivos distribuídos geograficamente. O termo Grid Computing surgiu como analogia aos sistemas de distribuição de energia (Power Grids), devido a sua característica de prover recursos de forma contínua e transparente. A arquitetura de Grid Computing visa o gerenciamento de acesso a recursos remotos de modo escalável, seguro e com alto-desempenho, disponibilizando um cenário de colaboração científica com o objetivo de compartilhar recursos para grupos de trabalhos distribuídos geograficamente (BERMAN; FOX; HEY, 2003). Foster, Kesselman e Tuecke (2001) definem Grid Computing como um ambiente capaz de conduzir o compartilhamento de recursos de forma segura, coordenada e flexível entre coleções dinâmicas de indivíduos e instituições. Chetty e Buyya (2002) definem como “A habilidade de compartilhar, selecionar e agregar recursos distribuídos geograficamente para solucionar problemas de larga escala na ciência, engenharia e comercio" Baseado em todas as definições acima identifica-se, como característica principal dos ambientes em grade, o compartilhamento e a integração de recursos distribuídos para o aumento da capacidade de processamento. Esses recursos são geralmente os processadores, as memórias RAM5 e os dispositivos de armazenamento, os quais apresentam em sua grande maioria capacidade excedente, ou seja, possuem carga de trabalho menor do que a sua capacidade total. De acordo com esse cenário, a tecnologia de Grid Computing visa à integração de componentes distribuídos para a constituição de um supercomputador virtual disponível para diversas aplicações. Tradicionalmente, o usuário ao submeter uma aplicação a um ambiente de Grid Computing está utilizando transparentemente a capacidade excedente de diversos dispositivos distribuídos geograficamente e pertencentes a distintos usuários e instituições. Atualmente, o conceito de sistemas distribuídos está tornando-se popular além das fronteiras acadêmicas, situação que influenciou o surgimento de diversas nomenclaturas como 5 Memória de acesso aleatório que permite a leitura e a escrita, tornandose a principal memória em computadores. 45 Compute Grids, Data Grid, Bio Grid, Knowledge Grid, Cluster Grid e simplesmente Grid. Foster (2002b) sugere então três propriedades para que um sistema seja considerado um Grid Computing: • Coordenação de recursos que não estão sujeitos a um controle centralizado. • Utilização de padrões abertos, protocolo de propósito geral e interfaces. • Prover qualidade de serviço não-trivial. É possível, com base nessas afirmações, exaltar a diferença entre a arquitetura de Cluster e Grid Computing. A análise de uma arquitetura de Cluster demonstra certas propriedades presentes também em um sistema de Grid Computing, como o compartilhamento de carga de trabalho e a distribuição de serviços através de uma rede local. Porém, em um ambiente de Cluster, o controle dos servidores e serviços geralmente é centralizado, descaracterizando-o como um sistema de Grid Computing. Buyya (2002) reforça a diferença com a seguinte afirmação: Se acontece o compartilhamento de recursos gerenciado por um único sistema global sincronizado e centralizado, então é um cluster. Em um cluster, todos os nós trabalham cooperativamente em um objetivo comum e o objetivo é a alocação de recursos executada por um gerente centralizado e global. Em Grid, cada nó, possui seu próprio gerente de recursos e política de alocação. A Web também apresenta características presentes em um sistema de Grid, como a utilização de protocolos de propósitos gerais e abertos, mas também não pode ser considerada (pelo menos até o presente momento) uma arquitetura de Grid, devido à ausência de coordenação de recursos para garantir a qualidade de serviços (FOSTER, 2002b). Gentzsch (2002 apud MAROWKA, 2002) argumenta, em contra partida as três propriedades definidas por Foster (2002b), que essas definições podem reduzir o potencial e a rica variedade das tecnologias de Grid, com diferentes arquiteturas, modelos operacionais, aplicações. De acordo com Marowka (2002), a definição de Grid é uma visão aberta que dificilmente pode ser definida. A tentativa de definir Grid pode alcançar somente o horizonte tecnológico previsto que, em média, tem um espaço de dois anos. A tecnologia de Grid Computing remete a novos paradigmas de processamento que podem acarretar no surgimento de novas arquiteturas e padrões, podendo mudar a sua direção e, consequentemente, a sua definição. 46 Porém, consolidando as definições acima, é notório destacar que o acesso simples a um conjunto de recursos distribuídos geograficamente e a colaboração entre comunidades e organizações são as características fundamentais para obter sucesso em uma arquitetura de Grid Computing. 2.6.3 Organizações Virtuais A característica elementar de colaboração entre organizações distintas e distribuídas traz grandes desafios à tecnologia de Grid Computing. Foster, Kesselman e Tuecke (2001, p.2) destacam como principal desafio no conceito de Grid Computing o "[...] compartilhamento de recursos coordenados e a solução de problemas em organizações virtuais dinâmicas e multi-institucionais". O compartilhamento citado não se refere a uma simples troca de arquivo, mas envolve acesso direto a computadores, aplicações, dados, entre outros recursos que são necessários para solucionar colaborativamente um determinado problema. Com base nessa característica, a ação de compartilhamento deve ser altamente controlada, com os provedores e consumidores definindo políticas claras de utilização, como, quais os recursos que serão compartilhados, quem está habilitado a compartilhar e sobre qual condição. Os conjuntos de indivíduos e instituições definidos pelas mesmas regras de compartilhamento são denominados Organizações Virtuais (OV). Exemplos de OVs são: uma determinada Pesquisa Científica, Membros de um Consorcio, Membros de uma Pesquisa de Mercado, entre outros, podendo estes variar em seu escopo de trabalho, tamanho, duração, comunidade e estrutura, mesmo participando do mesmo ambiente de Grid Computing. Em Grid Computing é notório a necessidade por um ambiente flexível para o relacionamento de compartilhamento, com níveis precisos de controle sobre como os recursos podem ser compartilhados e usados. Foster, Kesselman e Tuecke (2001) defendem que as tecnologias tradicionais de Computação Distribuída não tratam desses desafios, citando como exemplo a Internet, tecnologia destinada a comunicação e a troca de informação entre computadores, sem prover serviços de coordenação de recursos entre os sítios de computação. 47 Outro exemplo a ser citado são os Provedores de Serviços de Aplicações (ASP), que disponibilizam seus serviços com algumas restrições, como o uso de uma Virtual Private Network para a comunicação com seus clientes. A tecnologia de Grid Computing foca exatamente o compartilhamento dinâmico entre organizações, sendo considerada como um complemento para as tecnologias de Computação Distribuídas tradicionais. O potencial de uso das Organizações Virtuais para a tecnologia de Grid Computing é destacada: Nós acreditamos que as Organizações Virtuais têm potencial para mudar drasticamente a maneira que nós usamos os computadores para solucionar problemas, assim como a Web mudou a forma como trocamos informações (FOSTER; KESSELMAN; TUECKE, 2001, p.3). A Figura 2 tem como objetivo clarificar um ambiente de Grid Computing composto pelas interações entre os Participantes, as Organizações Reais e Organizações Virtuais. Figura 2 - Ambiente de Organizações Virtuais (FOSTER; KESSELMAN; TUECKE, 2001) A Figura 2 exemplifica um cenário composto por três Organizações Reais (círculos) e duas Organizações Virtuais – A OV P é responsável por agrupar participantes interessados no consórcio Aerospace Design, enquanto a OV Q é responsável por agrupar indivíduos que concordam em compartilhar seus recursos com o projeto de Ray Tracing Computation. Os participantes da Organização Real da esquerda participam apenas em projetos da 48 OV P; os participantes da Organização Real da direita participa em projetos da Organização Virtual Q; enquanto a terceira Organização Real possui participantes em P e Q. O modelo de Grid Computing é bastante dinâmico, e suas políticas de governança e acesso aos recursos variam de acordo com as Organizações Reais, e Organizações Virtuais envolvidas na constituição do ambiente. 2.6.4 Arquitetura As Organizações Virtuais são conceitos que exigem da arquitetura de Grid Computing novas funcionalidades e modelos de integrações para a abrangência de recursos geograficamente distribuídos pertencentes a diferentes entidades. Esse desafio acarretou a necessidade pela busca da definição de um modelo de arquitetura capaz de integrar recursos atendendo o requisito de interoperabilidade. Foster, Kesselman e Tuecke (2001) defendem a arquitetura de Grid Computing como a responsável pela definição de mecanismos básicos para que cada usuário de uma Organização Virtual possa negociar, estabelecer e gerenciar os relacionamentos de compartilhamento. A arquitetura deve ser aberta e baseada em padrões, facilitando a extensibilidade, interoperabilidade, portabilidade e compartilhamento de códigos. Pode-se também construir API's6 e SDK's7 para a disponibilização de abstrações necessárias para tornar um Grid utilizável. Essas práticas, juntamente com a arquitetura de Grid Computing, constituem o que atualmente é chamado de middleware, o serviço necessário para suportar aplicações em um ambiente distribuído. Para facilitar o desenvolvimento de novas funcionalidades em um ambiente de Grid, foi concebida uma arquitetura escalável em camadas. A Figura 3 demonstra as cinco camadas de uma arquitetura de Grid Computing: 6 Application Program Interface – É um conjunto de regras e padronizações adotado por um software para que algumas de suas funcionalidades possam ser utilizadas por outros aplicativos. 7 Software Development Kit – É um conjuto de ferramentas utilizadas para o desenvolvimento de softwares 49 Figura 3 – Arquitetura em Camadas (FOSTER; KESSELMAN; TUECKE, 2001) Camada de fábrica Na arquitetura de Grid Computing, a camada de nível mais baixo é denominada fábrica e corresponde aos dispositivos físicos ou recursos que os usuários do Grid desejam compartilhar (FOSTER, 2002a). Os componentes pertencentes à fábrica implementam as operações locais que ocorrem em recursos específicos, como resultado de uma operação iniciada em camadas de níveis superiores. Esses recursos podem ser entidades físicas ou lógicas, e podem utilizar protocolos que não são específicos da arquitetura de Grid Computing, como por exemplo, o NFS8 para acesso ao local de armazenamento de dados. Exemplos dos tipos de recursos da camada de fábrica são: recursos computacionais, recursos de armazenamento, rede e dispositivos especializados, como telescópios, microscópios, entre outros. Camada de conectividade A camada de conectividade define os protocolos de comunicação e autenticação requeridos por uma transação em uma rede de Grid Computing. Esses protocolos derivam atualmente do TCP/IP, e habilitam a possibilidade de troca de dados entre os recursos presentes na camada da Fábrica. 8 NFS – Protocolo de acesso a arquivos através da rede. 50 Porém, é possível, com o avanço da tecnologia de Grid Computing, que novos protocolos sejam necessários para o desenvolvimento de diversas funcionalidades e serviços. Em relação às soluções de autenticação, os mecanismos presentes nos ambientes de Organizações Virtuais dependem das seguintes características: • Single sign-on: oferece a funcionalidade para o usuário autenticar-se apenas uma vez no ambiente de Grid e assim ter acesso aos múltiplos recursos presentes na camada de Fábrica. • Delegação: o usuário tem a possibilidade de delegar os seus direitos para que um programa possa acessar determinados recursos. • Integração com diversas soluções de segurança: cada sítio ou provedor de recursos pode aplicar qualquer solução de segurança localmente, como por exemplo, Kerberos9 e Unix10. Entretanto, o ambiente de Grid Computing deve estar apto para interoperar ao mesmo tempo com diversos tipos de segurança de diferentes locais. • Relações baseadas em confiança: para que o usuário possa usufruir de múltiplos provedores de recursos ao mesmo tempo, o sistema de segurança deve prover serviços para que isso possa acontecer sem a necessidade de solicitar cooperação entre os provedores. Camada de recursos A camada de recursos desenvolve, sob a camada de conectividade, protocolos (APIs e SDKs) para a negociação segura, iniciação, monitoramento e controle de operações de compartilhamento em recursos individuais. A camada de recursos invoca funções da camada de fábrica para o acesso e controle dos recursos. Destaca-se que, nessa camada, ocorre exclusivamente o gerenciamento de recursos individuais e não há qualquer controle sobre o estado global e atômico do sistema como um 9 Protocolo de transporte de rede que oferece serviços de segurança. 10 Sistema Operacional Multitarfa que possui determinados serviços de segurança. 51 todo. A camada de recursos distingue-se em duas classes: Protocolos de Informação: responsável por obter informações sobre a estrutura e o estado dos recursos. • Protocolos de Gerenciamento: responsável por negociar acesso a um recurso compartilhado. • Camada coletiva Enquanto a camada de recursos preocupa-se apenas com recursos individuais, a camada coletiva tem enfoque na captura de interações entre coleções de recursos. Os principais serviços são destacados a seguir: • Co-alocação, Alocação, escalonamento e negociação de recursos (brokering): permite que os participantes de uma Organização Virtual possam solicitar alocação de um, ou mais recursos, para o escalonamento de tarefas. • Replicação de dados: gerencia o armazenamento de dados de uma Organização Virtual. • Contabilidade e Pagamento: coleta informações sobre a utilização de recursos para propósito de cobrança. • Colaboração: permite o trabalho colaborativo distribuído através do compartilhamento e troca de informações, síncrona ou assíncrona, entre usuários potenciais de uma comunidade. As funcionalidades citadas anteriormente destacam serviços que são utilizados na prática. Vale ressaltar que os protocolos da camada de recursos são genéricos e largamente disponibilizados, enquanto os protocolos da camada coletiva são focados nas aplicações ou domínios específicos. 52 Camada de aplicação A camada de aplicação compreende as aplicações geradas pelos usuários no ambiente de uma Organização Virtual. As aplicações desenvolvidas utilizam os serviços definidos nas camadas inferiores, como acesso aos dados, descoberta de recursos, entre outras funcionalidades (FOSTER; KESSELMAN; TUECKE, 2001). Conforme já abordado, os componentes das camadas coletivas são responsáveis pela disponibilização de serviços necessários para a execução de uma aplicação, ou seja, a camada de aplicação depende diretamente da camada coletiva para a execução de determinadas funcionalidades. 2.6.5 Componentes A arquitetura em camadas da tecnologia de Grid Computing foi descrita anteriormente. Nessa seção, serão abordados os principais componentes de Grid Computing para habilitação de uma plataforma robusta e confiável. A IBM (2008) destaca os seis principais componentes: Segurança Os computadores e servidores em uma plataforma de Grid são responsáveis pela execução de diversas aplicações, muitas vezes processando informações valiosas para uma determinada organização. Os componentes de segurança estão concentrados em serviços de criptografia, autenticação e autorização, provendo maior segurança para a plataforma. Interface do usuário O acesso às informações que estão sendo executadas em uma plataforma de Grid Computing é um aspecto importante para as Organizações Virtuais. Os usuários necessitam ter acesso às informações de maneira simples e fácil. As Interfaces disponibilizadas são responsáveis por atender esse requisito, geralmente através de duas maneiras: • Interface fornecida pela aplicação que o usuário está executando. • Interface habilitada pelo administrador da plataforma de Grid, geralmente em 53 forma de um portal Web, para prover acesso as aplicações e recursos disponíveis. Gerenciamento da carga de trabalho Os usuários executam diversas aplicações em um ambiente de Grid Computing e necessitam ter informações sobre os recursos disponíveis para alcançar melhor desempenho. Sendo assim, as aplicações estabelecem comunicação com o gerenciador de carga de trabalho para a descoberta de recursos e seus respectivos estados dentro de uma plataforma de Grid. Em muitas implementações de Grid Computing, o gerenciador de carga de trabalho é chamado de Broker, sendo o responsável pela descoberta de recursos disponíveis e apropriados para a execução de uma aplicação, com base nas características da própria aplicação e parâmetros fornecidos pelos usuários. Em algumas plataformas, o broker pode atuar em conjunto com o serviço chamado MDS, o qual provê informações sobre recursos disponíveis em um Grid e seus respectivos estados. Escalonador Uma vez que os recursos tenham sidos identificados pelo sistema de Broker, o próximo passo é a definição de recursos que serão utilizados para a execução de uma aplicação e atribuição de Jobs. Deve-se levar em consideração a prioritização de filas, gerenciamento de carga, recursos reservados, monitoramento e progresso. É coerente citar que se a execução de uma aplicação corresponde a um conjunto de Jobs independentes e sem nenhuma interdependência, então, não é necessário a utilização de um Escalonador especializado. Entretanto, se for necessário a alocação de recursos específicos ou a execução de Jobs concorrentes que requererem comunicação inter-processo, um escalonador específico pode ser utilizado para coordenar eficientemente a execução em Grid. Gerenciamento de dados A aplicação pode, em muitas vezes, ser iniciada em recursos que não possuem os dados necessários para a execução; portanto, o gerenciador de gados deverá movimentar os 54 dados para os locais necessários através de várias máquinas e diversos protocolos. Gerenciamento de recursos O gerenciador de recursos é responsável pela iniciação de um determinado Job em um recurso específico, assim como o monitoramento do estado de um conjunto de Jobs e a coleta de seus resultados quando finalizado. A Figura 4 ilustra as interações entre os componentes da plataforma de Grid Computing citados acima. Figura 4 - Interações entre os Componentes (JACOB et al., 2008) É importante destacar que uma plataforma de Grid Computing não é implementada utilizando apenas os componentes citados; pelo contrário, é um ambiente aberto que pode envolver tecnologias adicionais e protocolos existentes. 2.6.6 Tipos As tecnologias de Grid podem ser atualmente classificadas em três principais tipos: • Grid Computing – Grade Computacional • Data Grid – Grade de Dados • Network Grid – Grade de Redes Há também um novo conceito chamado Computação Voluntária, o qual pode abranger 55 qualquer um desses três tipos. Grade computacional O foco das grades computacionais é a integração de diversos recursos computacionais para a habilitação de um ambiente com alto poder de processamento. Uma característica fundamental desses ambientes é a exploração dos recursos excedentes em computadores pessoais e servidores, diminuindo a ociosidade presente nesses dispositivos e aumentando a capacidade de processamento do ambiente de Grid Computing. As grades computacionais possibilitam que aplicações que exigem alto poder de processamento possam ser executadas em um ambiente constituído por diversas máquinas distribuídas geograficamente e de forma descentralizada. Essas características influenciaram o nome Grid Computing como um conceito de integração de recursos compartilhados e distribuídos. Grade de dados A grade de dados visa o aproveitamento dos espaços de armazenamento disponíveis e ociosos em diversas máquinas interligadas para a constituição de um repositório de dados com alta capacidade de armazenamento. Esses ambientes, dependendo da quantidade de máquinas, podem facilmente alcançar as medidas de Terabyte. Grade de redes Este tipo de grade tem a funcionalidade de prover serviços de comunicação tolerantes a falha e com alto nível de desempenho. As grades de redes utilizam a capacidade total ociosa de um canal de comunicação para o aumento da largura da banda disponível, e também aproveitam a existência dessa interligação para promover serviços de colaboração e compartilhamento. Vale ressaltar que as tendências demonstram futuras integrações desses tipos de tecnologia de Grid Computing com diversos conceitos, possibilitando o surgimento de novos tipos de ambientes como, por exemplo, Mobile Grid, Semantic Grid, entre outros. 56 2.6.6.1 Computação Voluntária A tecnologia de Grid Computing é em muitas vezes citada também como Computação Voluntária. Pode-se destacar que a Computação Voluntária é um modelo derivado de Grid Computing. Conforme visto em sua arquitetura, a tecnologia de Computação em Grade visa a integração de recursos computacionais para criar um ambiente de processamento com alta capacidade, onde os usuários podem compartilhar dados, executarem aplicações em conjunto e trabalharem colaborativamente. Baseado nessas características, é possível afirma que Computação Voluntária é um modelo de processamento que utiliza a tecnologia de Grid Computing como arquitetura, mas que apresenta um ambiente menos interativos para os seus participantes. Em Computação Voluntária, os usuários participam apenas compartilhando os seus recursos computacionais, mas raramente possuem acesso ao ambiente informacional, o que não permite que eles coletem informações ou iniciem uma aplicação. Em outras palavras, o modelo de Computação Voluntária apresenta o conceito de voluntariado relacionado somente ao compartilhamento de recursos computacionais de forma passiva, onde os voluntários raramente são envolvidos no projeto para ajudar de forma mais interativa, seja executando uma aplicação ou compartilhando resultados. 2.6.7 A Importância dos padrões A integração de dispositivos heterogêneos e distribuídos geograficamente é uma característica eminente em um ambiente de Grid Computing, tornando necessária a adoção de determinados padrões para a habilitação da interoperabilidade entre os recursos. Os padrões são necessários para definir e facilitar as técnicas de comunicação entre diversos dispositivos, sistemas e ambientes de Grid Computing. A OGSA (Open Grid Service Architecture) foi desenvolvida por membros do grupo, atualmente denominado OGF (Open Grid Forum), e tem como base os conceitos e tecnologias de Web Services11, representando uma evolução para a arquitetura dos sistemas de Computação em Grade. A OGSA define o que são os serviços de Grid, as suas estruturas gerais e a forma de disponibilização no ambiente através dos padrões existentes em Web Services, como o 11 Web Services é a solução utilizada para a integração e a comunicação entre diferentes sistemas e aplicações. 57 protocolo SOAP12 e a linguagem de marcação XML13. Essas características remetem a um sistema com padrões abertos de comunicação para proporcionar interoperabilidade. Em um ambiente orientado a serviços, a interoperabilidade pode ser particionada em dois subproblemas - A definição das interfaces de serviços e os protocolos que podem ser utilizados para invocar uma determinada interface. A visão orientada a serviços permite endereçar a necessidade por mecanismos de definições de interfaces padrões, transparência local e remota, e adaptação para os sistemas operacionais locais. Também se destaca a simplificação da virtualização, ou seja, a funcionalidade que permite o acesso consistente através de múltiplas plataformas com transparência de localização, habilitando o mapeamento de múltiplas instâncias de recursos lógicos em um mesmo recurso físico (FOSTER et al., 2002). Na OGSA todos os dispositivos são tratados como serviços - recursos computacionais, recursos de armazenamento, redes, aplicativos e bancos de dados. A OGSA também abrange seis principais áreas definidas em termos de capacidade frequentemente requiridas em um cenário de Grid Computing para definir os seus serviços. Com base nos serviços descritos abaixo, é possível destacar que a OGSA cobre os principais desafios presentes na arquitetura e nos componentes que formam um ambiente de Grid Computing. Serviços de infraestrutura Os serviços de infra-estrutura são um conjunto de funcionalidades comum requiridas por serviços de níveis superiores. A OGSA utiliza a tecnologia de Web Services para construir sua infra-estutura e também Web Service Description Language (WSDL) para definir as interfaces dos serviços. Os serviços de infra-estrutura são os responsáveis pela nomeação de recursos, comunicação e descoberta. Na OGSA um recurso é uma entidade física ou lógica que suporta o uso ou a operação de uma aplicação de computação ou de um ambiente de informação computacional. Os recursos geralmente fornecem algum tipo de capacidade, como os servidores, redes, memórias, aplicações e bancos de dados. 12 SOAP é o protocolo desenvolvido que permite a chamada remota de funções em diferentes sistemas. 13 XML Recomendação da W3C para gerar linguagens de marcação para necessidades específicas. 58 Serviços de gereciamento de execução Os serviços de gerenciamento de execução são responsáveis por tratar problemas de gerenciamento para a conclusão de unidades de trabalho, incluíndo os serviços da OGSA e as aplicações legadas. Em outras palavras, esses serviços estão preocupados com a execução de unidades de trabalho, como alocação, provisionamento e o gerenciamento do ciclo de vida. Serviços de gerenciamento de dados Os serviços de gerenciamento de dados estão relacionados com os processos de localizar, armazenar, transferir e gerenciar os recursos de dados. A arquitetura de dados da OGSA apresenta um conjunto de ferramentas de serviços de dados e interfaces que são capazes de tratarem diversos cenários. Estes serviços direcionam o acesso a dados através de Web Services para dados estruturados e não estruturados. Serviços de segurança A segurança é a habilidade de proteger os recursos presentes no ambiente, tanto os dos usuários, quanto os dos provedores de recursos. Vale ressaltar que os recursos correspondem geralmente a informações, dados, comunicação e serviços de processamento de dados, os quais são disponibilizados muitas vezes em forma de serviço. Os serviços de segurança tem como finalidade prover autenticação, autorização, garantia de integridade. Serviços de gerenciamento de recursos Os serviços de gerenciamento de recursos provêem o gerenciamento de capacidades para os recursos presentes no ambiente de Grid Computing. Estes recursos podem ser os recursos individuais, componentes do Grid e também a infra-estrutura da OGSA. Serviços de informação Os serviços de informação correspondem a habilidade de criar e acessar informações sobre o ambiente de Grid Computing e os seus recursos. As informações correspondem aos dados dinâmicos e qualquer dado logado no sistema. 59 2.6.8 Principais sistemas Nas seções anteriores foram descritos os conceitos, as arquiteturas, os tipos e os componentes de Grid Computing. Nesta seção, serão abordadas as implementações dos principais sistemas de Grid Computing como, por exemplo, os projetos colaborativos GLOBUS, gLITE, OurGrid, BOINC e também produtos corporativos. GLOBUS Globus Toolkit (GLOBUS, 2008) é um projeto open-source que visa à habilitação da tecnologia Grid permitindo que as pessoas compartilhem ciclos de CPU, bancos de dados e outras ferramentas em distintas corporações, instituições e comunidades geográficas, sem sacrificar a autonomia local. O Globus oferece módulos e bibliotecas para o monitoramento, descoberta e gerenciamento de recursos, sendo um sistema caracterizado como uma coleção de serviços que permite o desenvolvimento de aplicações em maneira incremental, podendo adicionar serviços extras conforme necessário. Os serviços do Globus são divididos em serviços locais e serviços globais, sendo que os serviços globais são constituídos através da integração de diversos serviços locais. O Globus Toolkit também inclui módulos para segurança, gerenciamento de recursos, gerenciamento de dados, comunicação, detecção de falhas e portabilidade, os quais são empacotados como uma coleção de componentes que podem ser utilizados para o desenvolvimento de aplicações. O destaque do Globus Toolkit é a sua disponibilização como software livre, característica que permite a adoção de uma estratégia colaborativa, permitindo que inúmeras pessoas ao redor do mundo possam melhorar, alterar e adicionar novas funcionalidades ao sistema. gLITE gLITE (2009) é um middleware de Grid Computing que nasceu do trabalho colaborativo de mais de 80 pessoas de 12 diferentes grupos acadêmicos e centros de pesquisas industrias, os quais fazem parte do projeto EGEE. 60 O gLite (2009) provê um ambiente de trabalho para o desenvolvimento de aplicações de Grid que utilizam o poder da computação distribuída através da Internet. O gLite segue a arquitetura orientada a serviços (SOA), a qual habilita a interoperabilidade entre diferentes serviços de Grid e facilita a intergração com padrões, como a própria OGSA. É importante destacar que as evoluções no gLITE foram também fortemente influenciadas pelo projeto do LCG, projeto de Grid Computing utilizado pelo expermento do Superacelerador de Partículas. OurGrid O OurGrid (2009) é um middleware de Grid Computing brasileiro que teve sua origem na Universidade Federal de Campina Grande e está em produção desde 2004. A comunidade do OurGrid está aberta para a sociedade e a sua capacidade de processamento é obtida através do compartilhamento de recursos por parte de seus usuários. É importante destacar que os usuários que colaboram com mais recursos têm prioridades para executarem suas tarefas. O OurGrid é um software open-source desenvolvindo em Java usando a licença GPL, firmando o seu comprometimento com a comunidade ativa de usuários e desenvolvedores. A plataforma de Grid do OurGrid atua no processamento de aplicações do tipo Bag-of-Tasks, o que corresponde as aplicações paralelas nas quais suas tarefas são independentes, permitindo que cada tarefa possa ser processada paralelamente no Grid sem que haja necessidade de comunicação entre elas. BOINC O BOINC (BOINC, 2008) é uma das principais plataformas de Grid Computing que segue o modelo de Computação Voluntária. O seu sistema foi desenvolvido na Universidade da Califórnia (Berkeley), mesma instituição dos criadores do SETI@HOME. O sistema tem enfoque na colaboração dos usuários para a composição de uma plataforma de Grid com alta capacidade de processamento. O BOINC disponibiliza um aplicativo de protetor de tela que, ao ser executado, utiliza os recursos das máquinas dos usuários para processamento da plataforma de Computação em Grade. Essa característica é um dos grandes méritos para o projeto BOINC por incentivar a economia computacional através da utilização de recursos de máquinas ociosas ao redor do 61 mundo, fator que possibilita a geração de um ambiente a ser utilizado por diversos projetos, pesquisas científicas e trabalhos colaborativos. Nos últimos anos, muitas iniciativas de projetos de pesquisas científicas vêm sendo possibilitadas através do uso do sistema BOINC. Instituições que necessitam de um ambiente com alta capacidade de processamento, encontram o BOINC como uma plataforma de suporte para suas aplicações, pois tal tecnologia habilita um ambiente, composto por máquinas pertencentes a diversas instituições em vários países, para execução de aplicações de larga escala. O BOINC suporta a execução de diversos projetos, pertencentes a distintas organizações, e também fornece APIs em C++ para o desenvolvimento de aplicações para acesso aos recursos do sistema. Hughes (2005) cita que o BOINC foi desenhado para ser um middlware menos complexo do que aqueles que seguem as implementações do OGSA. Sistemas corporativos Os sistemas apresentados acima são frutos de projetos colaborativos focados em pesquisas científicas. Porém, é notório destacar que atualmente as empresas estão buscando um ambiente tecnológico mais produtivo e menos ocioso, oferecendo assim retorno de investimento em tempo reduzido. Com base nesse desafio, as grandes empresas de tecnologia lançaram seus produtos de Grid Computing para auxiliar as corporações, instituições, órgãos governamentais, entre outros, a constituir um ambiente computacional tecnicamente robusto e financeiramente econômico. Os sistemas de Computação em Grade corporativos visam à implementação desses conceitos em recursos presentes nos datacenters para atender requisitos de balanceamento de carga, alta disponibilidade e diminuição do TCO14. A implementação consiste na integração de diversos servidores que atendam diversos serviços e demandas em um único ambiente de Grid Computing, capaz de gerenciar a carga de trabalho sem a necessidade de aquisição de novos equipamentos. Atualmente está em evidência no mercado de Tecnologia da Informação um termo denominado Cloud Computing, em português Computação em Núvem. Será abordado mais a frente nesta dissertação a sinergia entre Grid Computing e Cloud Computing, bem como os 14 TCO – Estimativa financeira do custo total da posse de recursos, tal como software e hardware. 62 seus novos modelos de negócios. 2.6.9 Principais projetos Na seção anterior foram apresentados os principais sistemas de Grid Computing existentes até o momento. Entretanto, é necessário destacar os maiores e principais projetos de Computação em Grade ao redor do mundo, sendo esses responsáveis por grande parte das pesquisas científicas que são executadas em ambiente de alta capacidade de processamento. Os dois maiores projetos na atualidade são: EGEE (Enabling Grids for E-science) e OGS (Open Science Grid). EGEE Enabling Grids for E-sciencE (EGEE, 2008) é atualmente a maior infra-estrutura multidisciplinar de Grid Computing. É formada por mais de 140 instituições e oferece um ambiente escalável e confiável para comunidades de pesquisas da Europa e outros países ao redor do mundo. A infra-estrutura atualmente é composta por aproximadamente 300 sítios de processamento espalhados por 50 países, integrando um ambiente de computação com aproximadamente 80.000 CPUs e responsável por atender a demanda de 10.000 usuários. O EGEE é ideal para pesquisas científicas, especialmente para projetos que executam aplicações que requerem recursos considerados impraticáveis quando usadas as infraestruturas tradicionais da Tecnologia da Informação. O projeto EGEE foi dividido em fases. Atualmente o seu estado encontra-se na terceira fase: • EGEE 1: o projeto EGEE iniciou suas atividades focadas em duas áreas bem definidas: Física de Partículas e Biomedicina, pois já haviam aplicações de Grid nesses dois campos de pesquisas, fator que favorecia o projeto piloto do EGEE. A primeira fase do projeto teve encerramento oficial no dia 31 de Março de 2006. • EGEE 2: iniciou suas atividades em 1 de Maio de 2006, expandindo o escopo do projeto de apenas dois campos científicos para uma variedade maior de 63 aplicações e áreas do conhecimento. Na segunda fase do projeto, a infra-estrutura de Grid tornou-se ideal para qualquer pesquisa científica que requeria alta capacidade de processamento. • EGEE 3: a terceira fase do projeto EGEE iniciou-se em 1 de Maio de 2008 tendo como co-fundador a comissão européia. O EGEE 3 tem como objetivo a expansão e otimização da infra-estrutura de Grid Computing que atualmente processa 300.000 Jobs diariamente, submetidos por diversos domínios de pesquisas. A arquitetura do EGEE consiste em um conjunto de serviços de middlewares disponibilizados em uma coleção global de recursos de computação e armazenamento. Uma estrutura de suporte também é dedicada à operação do ambiente e possui as seguintes divisões: • Production Service: a infra-estrutura é composta por aproximadamente 250 centros de recursos globais, provendo em torno de 4.000 CPU e dezenas Petabytes de espaço para armazenamento. Essa infra-estrutura é utilizada diariamente por milhares de cientistas espalhados em mais de 200 Organizações Virtuais. Essa infra-estrutura executa a última versão do middleware gLite e oferece um ambiente estável e robusto. • Pre-Production Service: ambiente para teste e avaliação de mudanças e novas funcionalidades aplicadas ao middleware. Adicionalmente, o serviço de PréProdução estende a atividade de certificação do middleware para a avaliação do ambiente em comparação às condições reais de produção. • EGEE Network Operations Centre (ENOC): serviços de operação que refletem a coordenação entre o EGEE e a rede dos provedores de recursos. O projeto EGEE tem grande apelo pela colaboração e incentiva que instituições, organizações e pesquisadores, colaborem com o projeto através do compartilhamento de recursos, dados, aplicações ou até mesmo apenas juntando-se a uma Organização Virtual 64 existente para trabalhos colaborativos. O EGEE também incentivou a criação de um novo projeto para atender as demandas da América Latina. O EELA (EELA, 2008) tem como objetivo a expansão da atual infraestrutura para constituir um ambiente com 41 Centros de Recursos, sendo que 13 estão localizados na Europa e 28 na América Latina, mobilizando aproximadamente 3000 CPUs e mais de 700 Terabytes. O Brasil está envolvido no projeto EELA através da participação de institutos de pesquisas e universidades. OSG O Open Science Grid (OSG, 2008) é um projeto suportado pelo National Science Foundation15 e tem como missão a integração de recursos computacionais e dispositivos de armazenamento de comunidades de pesquisas para estabelecer uma infra-estrutura comum de Grid Computing para satisfazer a crescente demanda dos projetos científicos por capacidade computacional. OSG é um consorcio de softwares, serviços, provedores de recursos e pesquisadores de universidades, laboratórios de pesquisas e centros de computação espalhados pelo território dos Estados Unidos da América, que juntos integram e operam o projeto OSG. O OSG também valoriza a colaboração entre seus membros, os quais compartilham seus recursos computacionais para a formação de um ambiente com capacidade de processamento superior ao que se conseguiria em um projeto individual. O OSG também fornece projetos para inclusão de comunidades de pesquisas, as quais não são familiares com a tecnologia de Grid Computing, através da modificação das suas aplicações para utilização do ambiente de computação fornecido pelo OSG. A interoperabilidade é uma das características principais no projeto OSG, uma vez que estão sempre almejando a integração da sua infra-estrutura com outros diversos projetos de Computação em Grade. Nota-se a sinergia de diversos projetos para a habilitação de um ambiente para um determinado tipo de pesquisa, como o projeto de Grid Computing do Superacelerador de Partículas, onde ambos os projetos EGEE e OSG juntaram forças para a constituição de um ambiente com poder de processamento extremamente impressionante, conforme será 15 National Science Foundation – Agência NorteAmericana responsável pelo suporte as pesquisas e educação nos campos de ciência e engenharia. 65 abordado mais profundamente nessa pesquisa. O modelo de operação do OSG fornece facilidades distribuídas para acesso aos recursos de processamento e armazenamento, apresentando as seguintes características: • Proprietários registram seus recursos no OSG. • Pesquisadores recebem a permissão de acesso a esses recursos registrando-se em uma ou mais Organizações Virtuais. • Administradores registram suas Organizações Virtuais no OSG. • Cada recurso e cada Organização Virtual são suportados por um Centro de Suporte determinado no momento do registro. Ressalta-se que uma Organização Virtual corresponde a indivíduos de diversas instituições. As instituições e as Organizações Virtuais são os elementos que fazem parte do OSG Consortium, enquanto os pesquisadores individuais são considerados apenas usuários. Assim que uma Organização Virtual é aprovada e registrada no ambiente do OSG, todos os membros associados e que assinaram a política de utilização (Acceptance Use Policy) são liberados para acessarem os recursos do sistema de Computação em Grade. O middleware do OSG é composto basicamente pela integração do sistema Condor-G com alguns serviços do GLOBUS, mas também pode apresentar integração com alguns outros sistemas para adicionar novas funcionalidades ao seu ambiente. A infra-estrutura do OSG está sendo utilizada por diversos projetos espalhados ao redor do mundo, auxiliando comunidades de pesquisas que necessitam de alta capacidade de processamento para executarem suas aplicações. Projetos científicos sobre Aquecimento Global, Física de Partículas (Superacelerador de Partículas), entre outros, são exemplos de participantes do OSG. 66 3. Estado da arte em compartilhamento e trabalhos colaborativos nos ambientes das redes de comunicação Neste capítulo serão estudados três artigos relacionados ao tema da pesquisa para a formulação do estado da arte em compartilhamento e trabalhos colaborativos nos ambientes das redes de comunicação. Silva e Blattmann (2007), referenciados na seção 3.1, tratam dos impactos da Internet, e principalmente da Web 2.0, habilitando novos modelos de produção baseados na colaboração. McGuinness et al. (2006), referenciados na seção 3.2, descrevem a proposta de um mecanismo para o gerenciamento do nível de confiança em conteúdos criados e armazenados em repositórios colaborativos. Benkler (2004), referenciado na seção 3.3, descreve novos modelos de interações coletivas para habilitar modalidades produtivas descentralizadas e eficientes. Inicialmente, será feita uma síntese dos artigos estudados. Após isso, para cada um deles haverá uma análise das suas características em contraste com o tema da dissertação para que os principais pontos que apóiam o objetivo desse trabalho sejam levantados. 3.1 A Colaboração e a interação na Web 2.0 Silva e Blattmann (2007) citam que a Internet tornou-se a principal responsável pela mudança no modelo de organização e acesso aos conteúdos na sociedade da informação. Este cenário proporcionou a habilitação de um ambiente influente para a disseminação da colaboração e inteligência coletiva, principalmente através da interação, troca e armazenamento de informações. A criação da Web foi um dos grandes estímulos para a utilização da Internet como meio de comunicação para trabalhos colaborativos, pois criou serviços capazes de facilitar a troca de informações entre pessoas interessadas no mesmo assunto, mesmo que separadas geograficamente. Atualmente está em evidência o termo Web 2.0, um ambiente que permite aos usuários maior interação e manipulação das informações. Esse termo surgiu durante uma conferência entre as empresas MediaLive e O'Reilly Media, na qual discutiu-se a possibilidade de tornar a Web mais dinâmica, de modo que os 67 usuários pudessem participar colaborativamente na criação e edição de conteúdo. A Web 2.0 é uma nova concepção tecnológica descentralizada onde os usuários participam ativamente na criação, seleção e troca de conteúdos disponibilizados em um ambiente aberto, como um simples sítio ou uma aplicação Web sofisticada. O destaque da Web 2.0 é a interação online entre os usuários acessando o mesmo conteúdo, ou seja, permitindo que eles possam compartilhar entre si informações relevantes a um determinado trabalho, pesquisa ou simplesmente disponibilizando um conteúdo de conhecimento geral. Um dos mais evidentes serviços disponibilizados pela Web 2.0 são os sistemas wikis. Silva e Blattmann (2007) citam que o termo wiki foi criado por Ward Cunningham e surgiu da expressão havaiana “wiki wiki”, que significa rapidez e velocidade. Os autores ainda citam que Cunningham resolveu nomear assim um dos seus sistemas por ser esta a primeira expressão que aprendeu ao chegar ao Havaí, onde foi solicitado que utilizasse o ônibus expresso (wiki wiki). O seu primeiro sistema considerado wiki (Portland Pattern Repository) foi disponibilizado na Web em 1995 e tinha como objetivo desenvolver um ambiente onde os próprios usuários pudessem criar conteúdos compartilhados. Com base no sucesso alcançado por esse projeto, diversas alternativas foram criadas para a construção de textos colaborativamente e também para servir de ferramenta de apoio para a gestão do conhecimento (SILVA; BLATTMANN, 2007). A principal diferença entre wikis e outras ferramentas utilizadas na Internet, como blog e sítios, é principalmente o fato de wiki prover funcionalidades que permitem que os conteúdos possam ser editados e atualizados constantemente, sem a necessidade de uma prévia autorização do autor da versão anterior. Essa característica possibilita a correção de erros e a inserção de novas informações dinamicamente, habilitando um cenário onde não existe um autor proprietário de nenhum texto, podendo o conteúdo ser modificado por qualquer usuário. 3.1.1 Análise do artigo O artigo em pauta faz uma análise do impacto da Web 2.0 para o surgimento de uma nova forma de produção. É importante destacar que as redes de comunicação são as camadas 68 de sustentabilidade para estimular a colaboração e o trabalho coletivo por indivíduos ou grupos espalhados geograficamente, pois permitem uma eficiente comunicação e funcionalidades que apóiam o compartilhamento de recursos. A Internet, em sinergia com a Web 2.0, é uma das principais características de um novo modelo de interação na sociedade da informação. Principalmente através de sistemas wikis, a Web 2.0 disponibiliza serviços que permitem o trabalho colaborativo e coletivo para a criação e melhoria dos conteúdos existentes no ambiente informacional das redes de comunicação. A Web 2.0 foi um dos primeiros ambientes que possibilitou, na comunicação mediada pelo computador, que indivíduos pudessem criar seus conteúdos a partir de conteúdos criados por outras pessoas, fortalecendo assim a idéia de compartilhamento e colaboração. Entretanto, novas tecnologias também estão surgindo, com base na mesma filosofia, para serem aplicadas em outros contextos. A tecnologia de Grid Computing difere-se da Web 2.0 por ter como principal objetivo a integração de recursos computacionais para o estabelecimento de um ambiente de processamento com alta capacidade. Mas é certo que essa tecnologia, em um contexto amplo, segue a mesma filosofia da Web 2.0, principalmente por permitir que os indivíduos possam criar e disponibilizar seus conteúdos em um ambiente compartilhado, valorizando muito o conceito de colaboração. 3.2 A confiança em repositórios colaborativos de informação McGuinness et al. (2006) destacam em seu artigo a Wikipedia como um dos maiores mecanismos wiki disponíveis, uma enciclopédia online que possui mais de novecentos mil autores registrados e mais de três milhões de artigos publicados em diferentes idiomas. A Wikipedia tornou-se um sistema valioso de conteúdos reconhecido mundialmente, principalmente devido ao aumento do número de pessoas citando-o como fonte de informação confiável. Diversos estudos apontam que a Wikipedia é extremamente valiosa para artigos de ciências, embora também existam afirmações de incoerência em determinados artigos. McGuinness et al. (2006) exemplificam esse cenário citando a situação em que um jornalista e um oficial da administração do governo Kennedy afirmaram que a Wikipedia possuía informações incorretas sobre a biografia do presidente americano. Os repositórios colaborativos de informação apresentam uma grande vantagem: 69 beneficiam-se da contribuição de uma vasta diversidade de usuários, ou seja, da colaboração dos indivíduos para a geração de novos conteúdos. É certo que existem algumas ameaças presentes no ambiente, como usuários sem conhecimento no assunto, usuários utilizando fontes irrelevantes ou indivíduos agindo de maneira suspeita para prejudicar o meio. O gerenciamento da confiabilidade torna-se um crítico componente no desenvolvimento desses sistemas. Se não houver a presença de qualquer mecanismo de controle de confiança, esses repositórios de informações colaborativas podem encontrar dificuldade em atribuir níveis de coerência. A ausência de um mecanismo de confiabilidade pode acarretar em serviços que provêem somente os conteúdos aos usuários finais, mas não as informações de onde eles foram extraídos. As grandes implementações de sistemas wikis, como a Wikipedia, já estão direcionando esses desafios. Entretanto, atualmente, o nível desejado ainda não foi atingido para que os sistemas alcancem o objetivo de disponibilizar informações sobre a relevância e as fontes dos conteúdos dos artigos. McGuinnes et al. (2006) abordam um modelo de medidas baseado em citações para determinar os níveis de confiabilidade de um artigo. Em muitas situações, o usuário final propende em acreditar nos conteúdos disponibilizados em sítios e blogs quando a fonte citada corresponde a entidades de reputação reconhecida, como um jornal do porte do The New York Times. Essa situação ocorre principalmente quando o autor do blog ou sítio é desconhecido. No cenário da Wikipedia, a situação é semelhante, sendo destacado um algoritmo de classificação da confiabilidade baseado na relação de citações entre entidades. Basicamente, o mecanismo propõe um modelo no qual o número de referências para um termo implicará diretamente em sua relevância e grau de confiabilidade. A proposta de McGuinnes et al. (2006) visa expandir a Wikipedia agregando uma ferramenta de gerenciamento da confiabilidade através de uma nova aba associada aos artigos da enciclopédia. A aba deve ser integrada junto às abas existentes, como article, edit, history e deve ser responsável por disponibilizar os artigos renderizados, baseando-se no modelo de quantidade de citações, de tal maneira que seja possível identificar os fragmentos de textos mais confiáveis que compõem o artigo. McGuinnes et al. (2006) divulgaram um resultado do seu mecanismo, após um experimento aplicado em uma cópia do banco de dados da Wikipedia de 2005, onde foi possível denotar que essa ferramenta de gerenciamento de confiança teve um ótimo 70 desempenho, pois marcou como mais confiáveis os featured articles, ou seja, artigos que são revistos e editados por especialistas no assunto. O mesmo mecanismo também apontou os clean-up articles como menos confiáveis, classificação que representa os artigos que geralmente são destacados pelos administradores da Wikipedia como conteúdos com qualidade abaixo do indicado e que necessitam de revisões adicionais. 3.2.1 Análise do artigo O artigo em pauta traz um estudo sobre o nível de confiança dos conteúdos gerados colaborativamente, onde uma grande quantidade de indivíduos pode adicionar e editar informações em um repositório compartilhado de informações. Este é um desafio que está sempre presente quando a questão envolve compartilhamento e colaboração. No ambiente da Web, por ser um espaço aberto, isso se torna ainda mais difícil de ser endereçado. Já em Grid Computing, por proporcionar um espaço um pouco mais restrito, o gerenciamento da confiança é mais fácil de ser tratado. É comum encontrar projetos de Grid Computing que exigem que as instituições e indivíduos que queiram integrar o seu ambiente tenham que assinar contratos e termos de responsabilidades para obterem acesso a infra-estrutura, aplicações e dados. A maioria dos projetos de Grid Computing encontrada hoje em dia está focada em pesquisas científicas, por isso existe a possibilidade haver um controle sobre as instituições que podem ou não fazer parte deste ambiente. Se no futuro, essa tecnologia for a base para o processamento de informações da sociedade conectada na Internet, talvez o seu desafio de gerenciar a confiança passe a ser semelhante como o que encontramos nos dias de hoje na Web. É importante destacar que já existem alguns projetos de Grid abertos na Internet onde os indivíduos podem facilmente participar. Entretanto, na sua grande maioria, eles utilizam o modelo de Computação Voluntária, ou seja, os indivíduos colaboram de forma passiva apenas compartilhando seus recursos computacionais para ser integrado no ambiente e assim gerar capacidade de processamento, sem a necessidade de terem acesso aos dados e aplicações que estão sendo executadas. Vale ressaltar também que a própria arquitetura descentralizada da tecnologia auxilia a 71 tratar os problemas de gerenciamento de confiabilidade. O fato do ambiente não ter um controle centralizado e ser composto por recursos de diferentes instituições, nos quais as informações são armazenadas de forma distribuída por todos eles, influencia em um ambiente mais seguro e transparente, conforme será estudado mais a fundo nessa dissertação. 3.3 A emergência do compartilhamento como modalidade de produção econômica Benkler (2004) cita que o supercomputador mais rápido do mundo e o segundo meio de transporte mais eficiente nos Estados Unidos são habilitados através de um modelo de gerenciamento de recursos que não é totalmente especificado nas economias contemporâneas. A plataforma de computação distribuída SETI@HOME, baseada na arquitetura de Grid Computing, envolve mais de quatro milhões de voluntários cedendo ciclos ociosos de suas CPUs para habilitar o seu ambiente de processamento. O sistema de transporte baseado em carona corresponde a quase 16% de todas as viagens urbanas dentro do território americano. Ambos os modelos confiam em relações sociais e éticas de compartilhamento para mobilizar e alocar recursos. É importante destacar que nenhuma dessas duas práticas envolve recursos públicos ou recursos financeiros. Os computadores pessoais e os automóveis são bens privados e rivais, do inglês rival goods, o que significa que a sua utilização pode eliminar, ou pelo menos diminuir, a utilização por parte de outros indivíduos. A prática de compartilhamento que envolve esses dois modelos não está limitada a uma comunidade onde os participantes se conhecem; pelo contrário, representam instâncias onde o compartilhamento social é extremamente impessoal, ou ocorre entre entidades sem afiliações definidas. Essa definição caracteriza a confiança total no compartilhamento social através da vontade própria dos voluntários, sem a necessidade de ocorrer qualquer troca financeira. O compartilhamento social está tornando-se uma modalidade comum de produção valiosa nos mais avançados modelos de economia, como informação, educação, cultura, computação e setores de comunicação. Os softwares livres, a computação distribuída e a forma de produção entre pares são exemplos notáveis de uma prática de compartilhamento mensurável e de larga escala. Benkler (2004) ainda sugere que a estrutura de capital distribuído, presente nas 72 comunicações contemporâneas e nos sistemas de computação, é a grande responsável pelo aumento da característica de compartilhamento social como modalidade de produção econômica. A diminuição do custo de capital necessário para ações individuais e o avanço das tecnologias também permitiram grande aumento na produção descentralizada, baseada nas relações sociais e não em mercados ou hierarquias. Benkler (2004) apresenta dois estudos de caso sobre compartilhamento: Carpooling que é um sistema baseado em carona para o compartilhamento de assentos disponíveis em automóveis e os projetos de Grid Computing. Os dois estudos de casos, Carpoooling e Grid Computing compartilham quatro principais características em um ambiente colaborativo: 1- Os modelos envolvem práticas de compartilhamento de larga escala entre indivíduos sem relações sociais ou completamente desconhecidos entre eles. 2- Os recursos econômicos compartilhados são privados. 3- A existência de modelos de mercados onde a capacidade excedente dos recursos privados podem ser destacáveis e utilizáveis. 4- O resultado da prática de compartilhamento em ambos os estudos de caso são bens rivais. Com base nas características citadas acima, destaca-se o modelo de Carpooling e Computação Distribuída como exemplos de práticas colaborativas através do compartilhamento, assim como as redes peer-to-peer, a produção entre pares e o modelo de desenvolvimento de softwares livres. 3.3.1 Análise do artigo No artigo em pauta, Benkler (2004) demonstra as vantagens geradas pelo modelo de produção baseada na colaboração através do compartilhamento de recursos. Foram destacadas também duas grandes práticas colaborativas de sucesso, o Carpooling e Grid Computing, as quais foram constituídas através da colaboração voluntária em larga escala para a produção de produtos e serviços confiáveis. É importante citar que os modelos baseados em compartilhamento podem, em muitas 73 vezes, gerar mecanismos produtivos com qualidade superior aos modelos orientados ao mercado. Como exemplo, pode-se citar o Linux, um sistema operacional produzido coletivamente que apresenta características e funcionalidades semelhantes em relação aos sistemas operacionais produzidos pelas grandes indústrias. No estudo de caso sobre Computação Distribuída, Benkler (2004) destaca o projeto de Grid Computing chamado SETI@HOME, que através da colaboração e do compartilhamento de recursos na Internet tornou-se um dos mais poderosos ambientes de processamento. Vale ressaltar também que foi a partir do trabalho colaborativo que esta tecnologia foi concebida na comunidade científica. No próximo capítulo serão discutidas em mais detalhes as relações de Grid Computing em contraste com a colaboração. 74 4. Análise de Grid Computing A tecnologia de Grid Computing foi uma grande quebra de paradigma no modelo de computação distribuída, pois permitiu novas oportunidades de utilização de recursos distribuídos e novas formas de interação em um ambiente informacional. Neste capítulo serão abordadas as vantagens e os impactos da tecnologia de Computação em Grade nos contextos sociais, ambientais e econômicos. A técnica de Estudo de Caso será aplicada para fomentar a dissertação de como a tecnologia pode influenciar positivamente o trabalho colaborativo, a inclusão científica, os novos modelos econômicos e a redução de consumo de recursos energéticos. 4.1 Contexto social A consolidação da Internet, e principalmente da Web como tecnologia de comunicação em tempo real foi um dos grandes saltos para o surgimento de novas formas de interação na sociedade. As redes sociais são responsáveis por uma nova forma de comunicação e troca de informações em abrangência global, permitindo que indivíduos de diversos países possam estabelecer relações entre si. As redes sociais na Internet são valiosas para a sociedade, pois são elas que ajudam a alavancar a criação de novos conteúdos, serviços e produtos. Uma pessoa que não conseguia realizar uma determinada tarefa sozinha pode criar laços, através das redes sociais, com indivíduos que compartilham os mesmos interesses que os seus para executarem as tarefas em conjunto, não importando sua localização geográfica. Assim, é possível notar que as redes sociais na Internet apresentam grande participação para o crescimento e amadurecimento dos trabalhos colaborativos que são encontrados hoje na sociedade, pois são elas que facilitam o estabelecimento de laços sociais entre indivíduos que desejam atuar em busca de um determinado objetivo, seja para a criação de um novo software ou a adição de um novo artigo na wikipedia. É importante citar também que novas tecnologias surgem, a cada dia que passa, para influenciar positivamente o compartilhamento de conteúdo e o trabalho colaborativo. Grid Computing é uma das recentes tecnologias que envolvem os conceitos de coletividade para possibilitar cenários de processamento de dados e compartilhamento de informações nunca antes observados em nenhuma outra tecnologia. 75 Indivíduos podem agrupar-se para compartilhar os seus recursos computacionais e assim constituir um ambiente de computação paralela com alta capacidade, o qual também permite que eles compartilhem seus dados, aplicações e resultados. A influência de Grid Computing em relação ao trabalho colaborativo e a inclusão científica será abordada adiante. 4.1.1 Trabalho colaborativo A tecnologia de Grid Computing apresenta uma arquitetura descentralizada e distribuída, conforme abordado no capítulo dois deste trabalho, característica que fortalece um cenário favorável aos trabalhos colaborativos. A necessidade por um ambiente com alta capacidade de processamento, sem que fosse necessária a aquisição de supercomputadores, foi um dos motivos para que pesquisadores de diversas áreas buscassem o desenvolvimento de um novo sistema distribuído que fosse capaz de integrar a capacidade ociosa de recursos computacionais espalhados geograficamente. Os principais sistemas de Grid Computing existentes no momento são frutos de projetos coletivos de desenvolvimento de software, seja entre instituições de pesquisas, ou entre indivíduos voluntários espalhados ao redor do mundo Entre os principais sistemas de Grid Computing, pode-se destacar o Globus Toolkit, um software open source desenvolvido por uma comunidade de voluntários trabalhando por um mesmo objetivo - construir um sistema distribuído capaz de integrar recursos para gerar um ambiente computacional de larga escala. A participação coletiva é um dos pontos de sucesso de muitos bens tecnológicos, incluindo os sistemas de Computação em Grade. No caso do Globus, a aceitação do sistema foi tão relevante que incentivou novos voluntários a participar da comunidade para melhorar a aplicação existente e desenvolver novas funcionalidades. Globus foi primeiramente constituído como um projeto de software opensource em 1996. Desde aquele tempo, o time de desenvolvimento do Globus expandiu-se de poucos indivíduos para uma comunidade distribuída e internacional. Em resposta a esse crescimento, a comunidade Globus (Globus Alliance) estabeleceu em Outubro de 2005 uma nova infraestrutura de desenvolvimento de software e um modelo de governança baseado em meritocracia, os quais juntos tornam mais fácil e transparente o processo de inscrição a comunidade Globus (GLOBUS, 2009). 76 O aumento da quantidade de voluntários trabalhando no projeto Globus tornou-o uma das atuais referências na área de Grid Computing. É importante destacar que o conceito de Computação em Grade surgiu, em um primeiro momento, no meio científico de pesquisas, situação em que comunidades estavam preocupadas em solucionar seus problemas de processamento de dados em larga escala, para posteriormente ser adotado como tecnologia promissora pelas grandes empresas desenvolvedoras de sistemas. Com base no levantamento do histórico de Grid Computing, pode-se apontar que esse conceito emergiu da sociedade informacional na busca por um novo paradigma tecnológico, capaz de romper os limites dos supercomputadores da época, sem a necessidade de envolver as grandes indústrias especializadas. Uma revolução tecnológica que teve a sua origem e sua fundamentação no coletivo, com indivíduos motivados a inovar e criar um sistema importante para a sociedade, permitindo que seus cidadãos pudessem realizar trabalhos nunca antes possibilitados por qualquer infra-estrutura computacional. Como diversas outras tecnologias, Grid Computing é um exemplo claro de que um bem é capaz de influenciar e orientar as grandes indústrias, mesmo tendo surgido através da produção não-trivial, sem a orientação de mercados e baseado apenas no coletivo de indivíduos trabalhando por um objetivo comum. Adicionalmente ao modelo de desenvolvimento do seu middleware, baseado no trabalho colaborativo, a tecnologia de Grid Computing também possibilita o que pode ser denominada 2-Ways Collaboration. Esse termo refere-se à capacidade de usufruir da colaboração através do compartilhamento de recursos computacionais para constituir um ambiente com alta capacidade de processamento. Entretanto, é importante destacar que esse mesmo ambiente fornece funcionalidades que impulsionam o trabalho colaborativo devido à sua arquitetura descentralizada, agilizando o modelo de compartilhamento de informações, acesso a dados e a execução de atividades em conjunto. Conforme mencionado, a maioria dos sistemas de Grid Computing é fruto de um trabalho colaborativo e estão prontos para serem implementados com a finalidade de constituir um ambiente computacional com alta capacidade de processamento, principalmente através da integração de recursos computacionais distribuídos geograficamente. Entretanto, um dos grandes desafios dos projetos que utilizam Grid Computing é a alocação de recursos computacionais para constituir uma infra-estrutura com capacidade para processar dados de problemas de larga escala. Dependendo da necessidade do projeto, o 77 ambiente de Grid Computing não apresenta uma efetiva funcionalidade se a quantidade de recursos que o compõem for muito baixa. Por exemplo, uma instituição de inclusão digital pode ter em sua infra-estrutura uma coleção de vinte ou trinta recursos computacionais, entre servidores e computadores pessoais, sendo que sua aplicação requer um ambiente computacional referente, no mínimo, a mil servidores para o processamento de suas informações. De acordo com esse cenário, uma possível solução seria a utilização de recursos de entidades parceiras e voluntários simpatizantes com o tema do projeto. Isso é possível devido a Grid Computing apresentar uma característica flexível e abrangente, graças a sua arquitetura e o seu modelo de Organizações Virtuais, o que permite que a integração de recursos não fique atrelada somente ao limite de uma única organização. Essa tecnologia visa à integração de recursos computacionais pertencentes a diversas entidades em diferentes domínios espalhados geograficamente. Os projetos de Grid Computing que obtiveram maiores sucessos foram justamente aqueles que confiaram na colaboração de indivíduos e entidades compartilhando a capacidade ociosa de seus recursos para a constituição de uma infra-estrutura computacional. Conforme já abordado no capítulo três deste trabalho, o projeto SETI@HOME é considerado por muitos pesquisadores como um dos programas pioneiros a integrar recursos computacionais pertencentes a diversos domínios, atualmente sendo composto por mais de 4.500.000 participantes no mundo todo. Se não houvesse a colaboração por parte dos voluntários, o projeto SETI@HOME possivelmente não teria capacidade de processamento suficiente em sua infra-estrutura computacional para tratar a quantidade de informações necessárias, o que poderia levá-lo ao fracasso. É notório destacar o quanto a colaboração é benéfica e agrega valor para as plataformas de Grid Computing, principalmente se considerada a capacidade computacional alcançada através da integração de dispositivos compartilhados por voluntários conectados na Internet. Entretanto, o alto nível de processamento obtido com a Computação em Grade não é a única vantagem da tecnologia, ela também oferece funcionalidades para a execução de aplicações em conjunto e compartilhamento de informações. Conforme citado anteriormente, essa tecnologia possibilita a colaboração em dois caminhos - inicialmente creditando confiança na colaboração coletiva para agregar recursos e 78 formar um ambiente computacional com alta capacidade de processamento, o qual passa a fornecer funcionalidades que favorecem o trabalho colaborativo. A possibilidade da Computação em Grade fornecer um ambiente favorável ao trabalho colaborativo está fortemente ligada à característica de sua arquitetura descentralizada, o que permite que seu controle não esteja nas mãos de uma única entidade, mas distribuído por todos os indivíduos que compõem uma determinada Organização Virtual. Não existe apenas uma única definição para Grid Computing. Essa é uma tecnologia que provê uma visão aberta sobre sua arquitetura, que pode ser modelada para constituir um ambiente de acordo com as necessidades de um projeto. O conceito de Organizações Virtuais, conforme citado no capítulo dois, foca a concepção de um grupo de trabalho formado por entidades e usuários interessados no mesmo assunto, permitindo que eles compartilhem seus recursos e aplicações para constituir um ambiente computacional necessário para a execução de suas tarefas. Os problemas que antes eram difíceis de serem resolvidos sozinhos, com a tecnologia de Computação em Grade tornam-se mais fáceis de serem tratados em conjunto com os membros de uma Organização Virtual. Essa situação não está ligada somente a alta capacidade de processamento de informação obtida com essa tecnologia, mas também se relaciona com a possibilidade de pessoas de diferentes países e interessadas no mesmo projeto ingressarem em uma OV para compartilhar a execução de suas aplicações e seus dados. O fator de descentralização é muito importante também para garantir a segurança do ambiente e a transparência das informações, podendo permitir a auto-sobrevivência de uma determinada aplicação. Em Computação em Grade, ao contrário dos sistemas centralizados, é improvável que uma única entidade prejudique toda a infra-estrutura computacional, pois a mesma interfere somente na porção do ambiente correspondente aos seus recursos, o que poderia, dependendo do nível de colaboração da entidade, degradar o desempenho, mas nunca fazer com que ele fosse afetado completamente. Essa característica é evidente em um ambiente de Grid Computing, pois não existe um único ponto de controle centralizado. Se o ambiente é composto por 50 mil servidores e uma entidade X decide se desligar do sistema, o resultado é que somente os recursos pertencentes a X (por exemplo, 10 mil servidores) serão eliminados da infra-estrutura. Entretanto, a tecnologia apresenta funcionalidades para auto-regular o seu ambiente, permitindo que o mesmo con- 79 tinue ativo e executando suas tarefas nos dispositivos que ainda fazem parte de sua infra-estrutura (40 mil servidores). Em um sistema centralizado, se o proprietário do ambiente resolvesse desativá-lo, isso impactaria todos os usuários que fazem uso de seus serviços. Entretanto, isso não acontece em Grid Computing, pois o ambiente estará ativo, mesmo com baixíssimo desempenho, até o último participante ativo. Essa situação depende da configuração escolhida para a constituição da infra-estrutura de Computação em Grade. Para exemplificar a situação de um trabalho colaborativo, pode-se destacar um projeto de Grid Computing com foco em renderização de filmes, onde exista um ambiente de processamento de dados constituído através da integração de recursos computacionais distribuídos geograficamente e pertencentes a diversos membros de uma Organização Virtual. Nesse cenário, não há um controle central, mas existe um ambiente onde o processamento ocorre de forma distribuída entre os recursos computacionais de uma OV. Todos os membros de uma OV podem integrar seus recursos ao ambiente para gerar mais capacidade e também podem executar suas aplicações, as quais podem ser compartilhadas com todos os outros membros. De acordo com as características citadas acima, percebe-se que a concepção do conceito de Organização Virtual em um ambiente descentralizado favorece o coletivo, principalmente por disponibilizar todos os recursos distribuídos de forma transparente. Os usuários podem usufruir do ambiente que eles mesmos ajudaram a construir. Um ambiente composto por milhares de dispositivos computacionais pertencentes a diferentes entidades, onde cada qual pode administrar os seus recursos dentro do seu domínio, sem interferir diretamente a funcionalidade final do ambiente como um todo. A colaboração está ligada diretamente a tecnologia de Grid Computing em três maneiras: • Os trabalhos colaborativos dos desenvolvedores de software conceberam os principais sistemas de Grid Computing, antes mesmo das indústrias especializadas. • A Colaboração está presente para a constituição de uma infra-estrutura de Computação em Grade com capacidade de processamento de larga escala através da integração de recursos computacionais compartilhados. 80 • A infra-estrutura ativa de Computação em Grade facilita que o coletivo de pessoas, agrupadas em Organizações Virtuais, possam trabalhar compartilhando suas aplicações e dados de maneira transparente e segura. As três afirmações acima reforçam a importância da colaboração para a constituição de um ambiente de Computação em Grade, desde o desenvolvimento do sistema até a integração de recursos para atingir alta capacidade de processamento. Consequentemente, essas características tornam a tecnologia de Grid Computing extremamente importante para ser aplicada em diversos cenários, com destaque para a inclusão científica. A seguir, discorre-se sobre a influência de Grid Computing para proporcionar ambientes computacionais necessários para inúmeros projetos científicos, os quais seriam ineficientes na ausência da tecnologia. Posteriormente, aborda-se o projeto de Grid Computing utilizado pelo experimento do superacelerador de partículas (LHC), um exemplo de sucesso da tecnologia aplicada ao trabalho colaborativo e inclusão científica. 4.1.2 Inclusão científica As novas tecnologias têm papel fundamental para a evolução da ciência, pois permitiram que pesquisas que antigamente não eram possíveis de serem realizadas, agora passam a existir e também buscar resultados mais apurados e precisos com a utilização de recursos tecnológicos. Destaca-se também que atualmente as pesquisas científicas estão gerando um volume maior de dados, seja pela utilização de dispositivos tecnológicos mais avançados ou apenas em razão do seu escopo. Porém, essa situação acarreta em um novo desafio: Qual ambiente tem capacidade computacional em larga escala para processar um grande volume de dados com baixo custo? Há determinadas pesquisas que precisam de um ambiente computacional com alta capacidade para processar os dados obtidos com o objetivo de tratar informações, executar simulações e até mesmo chegar aos resultados finais. Entretanto, em muitos casos os computadores tradicionais utilizados em laboratórios de pesquisas já não são suficientes para processar de forma eficiente um grande volume de dados, exigindo assim a utilização de servidores com alta capacidade de processamento ou até mesmo supercomputadores 81 especializados. Porém, esses recursos computacionais podem custar muito caro ou podem até mesmo não estarem disponíveis no momento requerido para viabilizar uma determinada pesquisa. Esses desafios para obter um ambiente computacional de alta capacidade de processamento com baixo custo e de forma rápida foram os grandes estimuladores para o surgimento da tecnologia de Grid Computing, a qual foi concebida como uma alternativa para driblar o alto custo e as limitações das capacidades dos recursos computacionais nos anos 90. Conforme já abordado nos capítulos anteriores, a tecnologia de Grid Computing tem como principal desafio integrar recursos computacionais distribuídos com o objetivo de constituir um ambiente computacional em larga escala. Em outras palavras, Grid Computing visa à formação de um supercomputador virtual composto pela capacidade excedente de diversos computadores pessoais, servidores ou qualquer outro dispositivo computacional, sem a necessidade de supercomputadores especializados, situação que torna claro a característica de baixo custo da tecnologia. Nos últimos anos Grid Computing ganhou maior evidência na sociedade através do meio científico, principalmente por habilitar um ambiente com capacidade de processamento de dados para atender demandas de pesquisas de larga escala. Hoje em dia já é possível encontrar inúmeros projetos científicos que são realizados exclusivamente graças à utilização de Grid Computing. Se não existisse essa tecnologia, essas pesquisas certamente não teriam condições para executarem suas aplicações. O experimento do superacelerador de partículas, um grande exemplo de pesquisa que depende totalmente dessa tecnologia, será abordado em um estudo de caso adiante. Outro ponto importante é o fato dos recursos que compõem uma infra-estrutura de Grid Computing não precisarem pertencer exclusivamente há um único domínio. Ou seja, o ambiente computacional pode ser composto por recursos de diversas entidades, como instituições de pesquisas, universidades, centro de computações ou até mesmo usuários finais conectados na Internet. O modelo de computação voluntária, abordado no capítulo dois desta dissertação, tem obtido grande aprovação por parte das pesquisas científicas. O projeto SETI@HOME, lançado oficialmente em maio de 1999, foi um dos grandes marcos de Grid Computing como uma plataforma de computação voluntária composta por recursos compartilhados na Internet. Qual o preço de um supercomputador com a mesma capacidade de processamento do Grid 82 Computing do projeto SETI@HOME? Esta é uma pergunta que demonstra a importância da tecnologia de Grid como a grande impulsionadora de novas pesquisas. Instituições que não têm condições financeiras para montar um ambiente computacional encontram em projetos de Grid Computing a chance de viabilizar suas pesquisas. Seguindo a linha do SETI@HOME, surgiram outros projetos que utilizam o modelo de computação voluntária como forma de conseguir processar os seus dados. Ou seja, são projetos que não existiriam se não houvesse a tecnologia de Grid Computing e voluntários interessados em compartilhar o tempo ocioso de seus recursos computacionais. Pode-se citar como exemplo algumas pesquisas com importância fundamental para a humanidade, como projetos de investigação de dobramentos de proteínas, projetos de pesquisa contra a AIDS, entre outros. Percebe-se assim que o conceito de colaboração em sinergia com a tecnologia de Grid Computing tem um potencial significante para a sociedade, permitindo que novos projetos de pesquisa sejam criados, que espaços de compartilhamento de dados sejam alavancados e que descobertas científicas sejam realizadas. É importante citar também que a maioria dos projetos de Grid Computing tem como objetivo prover uma infra-estrutura compartilhada por várias pesquisas, graças a sua arquitetura descentralizada. O conceito de Organizações Virtuais também tem sua parcela de importância, principalmente por agrupar e coordenar as entidades que trabalham na mesma pesquisa, seja apenas compartilhando recursos computacionais ou executando aplicações em conjunto. É possível pensar cada Organização Virtual como uma pesquisa dentro de um ambiente de Grid Computing. O World Community Grid (WCG, 2009) é um exemplo de ambiente compartilhado por diversas pesquisas. O projeto tem como objetivo a criação de um ambiente público de computação em grade, com base no modelo de computação voluntária, para ajudar projetos científicos benéficos para a humanidade. O World Community Grid é executado no sistema BOINC e o seu sucesso depende diretamente dos voluntários que compartilham o tempo ocioso dos seus recursos conectados na Internet. O World Community Grid não fornece sua infra-estrutura computacional para apenas uma única pesquisa. Ao contrário, o ambiente é compartilhado por diversos projetos científicos que podem trazer algum benefício para a sociedade. Atualmente são executadas 83 pesquisas com foco no combate ao câncer, dengue e AIDS. Há ainda projetos sendo executados com o objetivo de desenvolver modelos climáticos mais exatos para regiões específicas da África. É interessante destacar que o modelo de computação voluntária foi bastante importante para disseminar os benefícios que os projetos científicos podem obter utilizando a tecnologia de Grid Computing. Essa afirmação pode ser justificada pelo fato dos primeiros projetos de sucesso de Grid Computing terem focado na colaboração de voluntários conectados na Internet. Porém, essa tecnologia ganhou evidência nos últimos anos, tornando-se alvo de estudo de pesquisas acadêmicas e também de empresas especializadas. Hoje em dia, é possível encontrar uma gama imensa de projetos que visam à constituição de um ambiente compartilhado de processamento em larga escala entre diversas instituições e universidades. Com a tecnologia de Grid Computing as instituições podem unir forças para alavancar suas pesquisas. Uma determinada instituição que não tenha a quantidade de recursos necessária para processar os seus dados pode juntar-se com outras instituições para habilitar uma infra-estrutura computacional compartilhada, na qual todos os envolvidos colaboram para a sua formação, mas também podem usufruir de sua capacidade. Como exemplo, pode-se citar uma situação onde a universidade A e a universidade B podem criar um acordo para a construção de uma infra-estrutura computacional de Grid Computing apenas utilizando os seus recursos, sem a necessidade da colaboração de usuários conectados na Internet. Existem também diversas iniciativas de projetos que têm como foco habilitar um ambiente comum de computação científica, onde instituições podem firmar acordos para a execução de suas aplicações em um ambiente compartilhado por diversas pesquisas. O projeto EELA-2 é uma iniciativa do EGEE para a América Latina, permitindo que universidades possam participar de um ambiente compartilhado de Grid Computing a partir de acordos firmados entre as partes, seja cooperando com recursos computacionais, aplicações ou mãode-obra, conforme a afirmação abaixo: O projeto EELA está aberto para qualquer organização que queira colaborar. Tornando-se um associado do projeto, seu grupo de pesquisa estará apto a utilizar a infra-estrutura de Grid em produção do EELA-2 para executar aplicações e compartilhar resultados. Além disso, a organização será intitulada para receber qualquer tipo de suporte técnico para integrar os seus recursos computacionais no Grid do EELA-2 ou para disponibilizar e executar as aplicações neste ambiente (EELA, 2008). 84 Pode-se observar que a tecnologia de Grid Computing tem proporcionado condições extremamente positivas para a inclusão científica. Primeiro, por permitir a criação de uma infra-estrutura computacional de larga escala para o processamento de um grande volume de dados de forma simples e com baixo custo. Segundo, por todas as partes envolvidas em uma Organização Virtual poderem acessar em conjunto as aplicações e os dados do ambiente, característica que exalta a importância da colaboração para o enriquecimento da ciência. Os projetos de Grid Computing geralmente têm abrangência global, o que permite o envolvimento de instituições e indivíduos de diversos países. As entidades geralmente colaboram com o que têm de melhor, algumas cedendo uma quantidade maior de recursos computacionais, outras fornecendo aplicações e também têm aquelas que atuam diretamente na pesquisa. O importante é notar que as pessoas que estão trabalhando juntas nos projetos, compartilhando o mesmo ambiente informacional, podem pertencer a diversas instituições. Consequentemente, esses indivíduos podem apresentar diferentes perfis e formações díspares (tanto culturais, quanto acadêmicas), situação que pode ser benéfica para a ciência, pois permite a formação de diversas opiniões sobre a pesquisa a partir de diversos pontos de vistas. Essas características deixam evidente que a tecnologia de Grid Computing é uma das novas formas de interação e trocas de informação que impulsionam novos conceitos de inteligência, como a própria inteligência conectiva, características muito importante para o avanço da humanidade e da ciência. 4.1.3 Estudo de Caso – Worldwide LHC Computing Grid Nesta seção discorre-se sobre o projeto do Worldwide LHC Computing Grid (WLCG), a infra-estrutura de Grid Computing do superacelerador de partículas, um dos maiores experimentos científicos da atualidade. A coleta de dados foi efetuada a partir de duas principais fontes: o portal na Internet do projeto (WLCG, 2009), onde estão todos os documentos sobre as instituições envolvidas, informações técnicas, relatórios dos recursos computacionais. Também foi utilizado o documento denominado LHC Grid Fest Media Guide compilado durante o seminário CERN LHC GRID realizado na Suíça em Outubro de 2008 (GRIDTALK, 2008). O objetivo deste estudo de caso é responder como a colaboração teve papel fundamental para possibilitar umas das mais importantes pesquisas na ciência de Física de 85 Partículas e quais foram suas consequências e influências na sociedade. Incia-se este estudo de caso com a visão geral do experimento do superacelerador de partículas (LHC), seguido da coleta de dados sobre a sua infra-estrutura computacional baseada em Grid Computing para, enfim, analisar o impacto da colaboração para a formação de seu ambiente informacional. 4.1.3.1 Visão geral do LHC O projeto do superacelerador de partículas, também chamado de LHC (Large Hadron Collider), é um dos mais impressionantes experimentos científicos já construídos e tem como objetivo possibilitar novas pesquisas na área de física de partículas. O equipamento do LHC foi construído pelo CERN (European Organization for Nuclear Reseach) e corresponde a um túnel em circunferência de 27 quilômetros na região de Genebra, próximo a fronteira da Suíça com a França. Existem quatro principais detectores de colisões espalhados pelo túnel: o LHC-B, o CMS, o ALICE e o ATLAS, sendo esse último o maior de todos. A função dos detectores é coletar os dados referentes às colisões de partículas que ocorrem dentro do LHC, os quais são enviados para processamento em um ambiente de Grid Computing denominado Worldwide LHC Computing Grid. A Figura 5 ilustra o projeto do túnel do LHC e os seus detectores: Figura 5 – O Projeto do Superacelerador de Partículas (LHC, 2009) 86 É interessante citar que o experimento do superacelerador de partículas tem a projeção de gerar em torno de 15 Petabytes de dados por ano, os quais devem estar acessíveis para milhares de cientistas ao redor do mundo. Entretanto, o projeto enfrentou um grande desafio para encontrar um ambiente computacional com capacidade suficiente para processar esse volume de dados. A tecnologia mais adequada e a escolhida pelo projeto para servir a sua infra-estrutura computacional foi Grid Computing. Assim, foi iniciado um projeto denominado Worldwide LHC Computing Grid (WLCG) para o estabelecimento de um ambiente computacional que tivesse abrangência global e que fosse possível envolver a colaboração de diversas instituições de pesquisas e universidades. A missão do WLCG é a construção de uma infra-estrutura de Grid Computing capaz de integrar recursos de diversas instituições para o armazenamento e processamento de dados extraídos do LHC, os quais são compartilhados com a comunidade de pesquisa. A seguir, serão coletados dados importantes sobre o projeto do WLCG para posterior análise de como o conceito de colaboração e a tecnologia de Grid Computing têm papeis fundamentais para o sucesso do projeto do LHC, e consequentemente para a sociedade científica. 4.1.3.2 Coleta de Dados O projeto do Worldwide LHC Computing Grid estabeleceu uma infra-estrutura global e com alta capacidade de processamento, composta por mais de 140 centros de computação em mais de 33 países para prover acesso aos dados do LHC para mais de sete mil cientistas ao redor do mundo (LHCGRIDFEST, 2008). O CERN investiu aproximadamente 100 milhões de Euros até o ano de 2008 em pessoal e material para a construção do WLCG, recursos financeiros que são provenientes do governo nacional da Suíça e também da União Européia. Entretanto, estima-se que a participação do CERN corresponde somente a 20% do investimento total para a construção da infra-estrutura computacional do WLCG (LHCGRIDFEST, 2008). 87 Gráfico 1 – Investimento no WLCG até o ano de 2008 É importante perceber que a colaboração financeira das outras instituições foi de extrema importância para que o WLCG pudesse alcançar fundos necessários para a constituição de um ambiente computacional com a quantidade indicada de recursos para atender a demanda de processamento advinda do LHC. Basicamente, cada instituição participante é responsável por seus gastos com o projeto, permitindo que o custo total fosse distribuído entre todos os envolvidos. O projeto do WLCG organizou o seu ambiente computacional em camadas para facilitar a integração de recursos e a configuração de troca de dados entre as entidades participantes do projeto. Assim, a infra-estrutura do WLCG é composta de três principais camadas. A primeira camada (Tier-0) corresponde ao centro de computação do CERN, o qual é responsável por armazenar todos os dados recebidos do experimento do LHC e enviar os mesmos, baseado nas Organizações Virtuais, para instituições da segunda camada (Tier-1). A segunda camada (Tier-1) é composta por onze sítios de computação espalhados ao redor do mundo. Todos esses sítios são de extrema importância para o WLCG, possuem conexão dedicada com o CERN e também são os responsáveis pela transferência de dados para outros sítios de computação da terceira camada (Tier-2). A Tabela 1 lista os onze sítios que compõem a segunda camada (Tier-1) do projeto do WLCG: 88 Localidade Canadá Alemanha Espanha França Itália Países Nórdicos Holanda Taipei Reino Unido Estados Unidos Estados Unidos Sítio TRIUMF Karlsruhe Institute of Technology Port d'Informació Científica(PIC) IN2P3 - Institut national de physique nucléaire et de physique des particules INFN – Istituto Nazionale di Fisica Nucleare Nordic Datagrid Facility NIKHEF - Nationaal instituut voor subatomaire fysica ASCG GridPP – UK Computing for Particle Physics Fermilab RACF Computing Facility Tabela 1 – Sítios de computação da segunda camada Tier-1 (WLCG, 2009) Os sítios da terceira camada (Tier-2) são associados de acordo com a proximidade geográfica a um sítio de nível superior (Tier-1), o qual é responsável por transferir os dados de acordo com o modelo de participação nas Organizações Virtuais. Os sítios da terceira camada armazenam os dados recebidos e alimentam os laboratórios de física de partículas para que os cientistas possam analisar os dados do LHC a partir de seus próprios ambientes informacionais. Estima-se que o WLCG possibilitará acesso aos dados do LHC para aproximadamente sete mil cientistas. A terceira camada do WLCG é composta por mais de 140 sítios agrupados em 60 federações que cobrem a Alemanha, Austrália, Áustria, Bélgica, Canadá, China, Dinamarca, Eslovênia, Espanha, Estados Unidos da América, Estônia, Finlândia, França, Holanda, Hungria, Itália, Índia, Israel, Japão, Noruega, Paquistão, Polônia, Portugal, Reino Unido, República da Coréia, República Tcheca, Romênia, Rússia, Suíça, Suécia, Taipei e Ucrânia. É importante destacar que os dois principais projetos de Grid Computing citados nesta dissertação, o EGEE e o OSG, também fazem parte do WLCG. O Brasil participa do projeto desde 2006, entretanto não é reconhecido pelo CERN como colaborador. Em Abril de 2009 a FAPESP enviou um memorando de entendimento para formalizar a participação de pesquisadores do país no Worldwide LHC Grid Computing (UNESP, 2009). Vale ressaltar que a infra-estrutura do Worldwide LHC Grid Computing proporciona um dos ambientes computacionais com maior capacidade de processamento na atualidade. O 89 WLCG já foi responsável pela execução de aproximadamente 44 milhões de Jobs em 2007 e mais de 65 milhões em 2008. Entretanto, estima-se que a quantidade que o WLCG deverá processar pode chegar a 500 mil Jobs diários quando o LHC estiver em atividade por completo. Com base nesses dados é possível fazer uma projeção do aumento do número de Jobs a serem processados a partir do ano de 2009, conforme o Gráfico 2: Gráfico 2 – Projeção da quantidade de Jobs Percebe-se com base no Gráfico 2 que a quantidade de Jobs apresenta um crescimento expressivo ao longo do tempo, situação que pode, consequentemente, demandar maior utilização dos recursos computacionais que compõem o WCLG, guiando o projeto a uma eminente expansão de sua infra-estrutura. A Tabela 2 está populada com os dados referentes ao total de recursos de CPU, espaço de armazenamento em disco e espaço de armazenamento em fita que são requeridos para os próximos anos de acordo com o WLCG (2009). Os recursos de CPU utilizam a métrica de capacidade KSI2K, o qual corresponde a milhares de unidades da métrica de CPU SPECint200016. Já os recursos de armazenamento utilizam a métrica de Terabyte. CPU (KSI2K) Disco (Tbytes) Fita (Tbytes) 2008 98715 40036 35309 2009 174258 68858 68692 2010 315695 111793 117464 2011 409975 151931 170030 2012 509695 193579 225187 2013 658206 275075 276839 Tabela 2 – Projeção da quantidade total de recursos O foco desta dissertação não é mensurar o poder computacional do WLCG, porém o 16 SPECint2000 É um especificação computacional baseada em benchmarking de processadores. 90 que se pretende mostrar é a crescente demanda por recursos computacionais ao longo dos anos, para que posteriormente seja possível analisar a colaboração de cada camada (Tier-0, Tier-1 e Tier-2) para o projeto. A Tabela 2 mostra a quantidade total de recursos que é requerida pelo projeto do WLCG para alcançar nível aceitável de processamento no ambiente de Grid Computing, porém não cita a quantidade de recursos cedida por cada camada. Já os Gráficos 3, 4 e 5 demonstram, com base em dados de relatórios de recursos disponibilizados no portal do WLCG (2009), a colaboração de cada camada para atingir a quantidade total de recursos especificada para cada ano. O Gráfico 3 demonstra a participação de Tier-1, Tier-2 e Tier-3, através do compartilhamento de CPUs, para constituição da infraestrutura global do LHC. Gráfico 3 – Projeção de recursos de CPU por camada Com base no Gráfico 3, percebe-se que o CERN (Tier-0) é a camada que tem a projeção para contribuir com menos recursos para os próximos anos. Mesmo sendo a instituição fundadora do projeto, o CERN conta com forte colaboração tanto dos sítios de processamento da segunda camada (Tier-1) quanto da terceira camada (Tier-2) para habilitar um ambiente com alta capacidade de processamento. O gráfico 4 demonstra, seguindo a mesma linha do Gráfico 3, a quantidade de espaço para armazenamento de disco correspondente com cada camada. 91 Gráfico 4 – Pojeção de recursos de armazenamento em disco por camada Com base no Gráfico 4, é possível destacar que a colaboração de espaço de armazenamento esperada para os próximos anos também é muito maior para segunda camada (Tier-1) e terceira camada (Tier-2) do que para o próprio CERN. Mesmo o sítio do Tier-0 sendo o responsável por receber todos os dados do LHC e armazená-los para posterior envio aos sítios da segunda camada (Tier-1), nota-se que a maioria dos sítios dos Tier-1 e Tier-2 também poderão receber os mesmos dados para que seus cientistas possam fazer suas pesquisas, aumentando a capacidade de armazenamento em disco por toda a infra-estrutura do WLCG. O Gráfico 5 difere dos gráficos anteriores pelo fato de contemplar somente o CERN (Tier-0) e os sítios da segunda camada (Tier-1). Isso ocorre pelo fato do armazenamento em fita ser utilizado basicamente para backup, ou seja, quando os dados estão sendo processados por aplicações eles são armazenados em disco (conforme visto no Gráfico 4) e após o seu uso podem ser gravados em fitas. É importante lembrar que os sítios do Tier-0 e Tier-1 formam a estrutura essencial do WLCG, principalmente por serem os responsáveis pelo préprocessamento dos dados e também por enviá-los para todos os envolvidos no projeto. Os sítios da segunda camada têm acordos diferenciados com o CERN para a participação no WLCG, o que pode acarretar em algumas obrigações específicas aplicadas para eles, como por exemplo, garantir uma cópia de segurança dos dados do projeto. 92 Gráfico 5 – Projeção de recursos de armazenamento em fita por camada Com base no Gráfico 5, percebe-se que o CERN contribui com menos da metade da capacidade total de armazenamento em fita, sendo que a grande parte da colaboração está distribuída entre os sítios do Tier-1. No geral, é possível destacar que a maior parte da capacidade de processamento e armazenamento do WLCG é proveniente da colaboração dos sítios da segunda (Tier-1) e terceira camada (Tier-2), que juntos correspondem a mais de 140 centros de computação ao redor do mundo. Adicionalmente ao WLCG, o projeto do LHC também utiliza um ambiente baseado no modelo de computação voluntária. O LHC@HOME (2009) é uma iniciativa que possibilita que pessoas possam colaborar com o projeto do LHC a partir de suas casas, cedendo a capacidade excedente das suas máquinas para processamento de dados do superacelerador de partículas. Esse projeto está atualmente sendo executado na plataforma BOINC. O LHC@HOME diferencia-se do WLCG por ser um ambiente aberto na Internet constituído de voluntários ao redor do mundo. Sendo assim, esse projeto tem como objetivo principal o processamento de tarefas que exigem alto poder de processamento, mas uma taxa relativamente baixa de transferência. O LHC@HOME tornou-se a infra-estrutura para a execução de um programa denominado SixTrack, o qual simula o percursso de partículas ao redor do LHC para o estudo da estabilidade de suas órbitas. O SixTrack foi a primeira aplicação escolhida a ser executado no ambiente de computação voluntária por requerer uma taxa relativamente baixa de entrada e saída de dados, e também por exigir alto nível de 93 processamento. Voltando a abordar o projeto do WLCG (2009), foi visto até o momento que a colaboração entre todas as entidades envolvidas para a constituição da infra-estrutura de Grid Computing do projeto é fundamental para o seu sucesso. As instituições compartilham seus recursos para habilitar um ambiente computacional de larga escala com capacidade suficiente para processar os dados do LHC. Entretanto, é importante destacar que essas mesmas entidades também se agrupam em Organizações Virtuais para terem acesso aos dados, característica que ajuda a organizar o ambiente informacional, ditando o que cada uma pode acessar e o que pode ser executado no WLCG. O WLCG é composto por diversas Organizações Virtuais, entretanto serão destacadas nesta dissertação somente aquelas que são afiliadas ao projeto científico do LHC: OV ALICE ATLAS CMS DTEAM LHCb SixTrack Afiliação LHC ALICE experimento ATLAS experimento CMS experimento Grupo de deployment do LCG LHCb experimento Single Particle Tracking Code Tabela 3 – Organizações Virtuais filiadas ao LHC (WLCG, 2009) Conforme citado anteriormente, o projeto do LHC é composto de quatro principais detectores que geram dados diferentes das colisões que acontecem no LHC. O conceito de OV foi utilizado no WLCG para organizar os dados gerados por cada detector com o objetivo de garantir a segurança e a transparência do ambiente informacional. De acordo com a Tabela 3, percebe-se que para cada coletor existe uma Organização Virtual, ou seja, um meio de isolar os dados para que somente aqueles que têm permissão possam acessá-los, mesmo sendo disponibilizados em uma infra-estrutura compartilhada. Ainda existe uma OV para o SixTrack e também outra para o time de deployment do WLCG. 4.1.3.3 Análise Incia-se a análise do WLCG com base em no principal desafio que influenciou o CERN a adotar a tecnologia de Grid Computing para a construção de sua infra-estrutura 94 computacional: O alto custo do projeto. Grid Computing teve um papel importante para adequar o modelo de investimento financeiro para habilitação do projeto WLCG. Conforme abordado anteriormente, o CERN investiu em torno de 100 milhões de Euros em materiais e recursos humanos para a construção da infra-estrutura computacional do LHC. Entretanto, esse investimento corresponde a somente 20% do total do custo do projeto, sendo que as outras instituições que fazem parte do projeto foram responsáveis por seus próprios investimentos, que somados correspondem ao custo total do WLCG. É importante notar que Grid Computing é uma tecnologia que fornece eficientes funcionalidades para este tipo de modelo de investimento, permitindo que inúmeras instituições possam construir em conjunto um ambiente computacional compartilhado, e que o seu investimento total seja distribuído por todos os participantes. Embora o CERN seja o fundador do projeto, é notório que sozinho não teria condições financeiras de habilitar um ambiente computacional com a capacidade necessária para o processamento dos dados do LHC. Estima-se que o experimento possa gerar em torno de 15 Petabytes por ano, e que essa quantidade possa aumentar ao longo do tempo. Assim, somente uma infra-estrutura de larga escala e com alta capacidade escalável poderia processar esses dados com eficiência, situação que corresponde a um alto custo de investimento, tanto em recursos computacionais como também em pessoal especializado. O CERN contou com a ajuda de mais de 140 instituições para a construção do WLCG, considerado um dos ambientes computacionais com mais poder de processamento na atualidade. O WLCG é uma infra-estrutura de Grid Computing que integra recursos computacionais de universidades, centros de computação, instituições de pesquisas espalhados ao redor do mundo. A maioria dos envolvidos na construção do WLCG colabora através do compartilhamento de recursos computacionais e também do fornecimento de mãode-obra especializada. É importante destacar que a capacidade de processamento do WLCG é proveniente da colaboração de cada entidade envolvida no projeto. Conforme visto no Gráfico 3, a segunda camada (Tier-1) e a terceira camada (Tier-2) são os grandes responsáveis pelo nível de processamento do ambiente, uma vez que são os maiores colaboradores de recursos de CPU. A mesma situação também pode ser observada para o espaço de armazenamento em disco. Vale ressaltar que a primeira camada (Tier-0) corresponde apenas ao CERN, enquanto 95 a segunda camada corresponde a 11 instituições com link dedicado ao CERN e a terceira camada é composta por mais de 140 sítios de computação ao redor do mundo. A transferência de dados inicia-se no CERN, que os envia para os sítios da segunda camada, que por sua vez são responsáveis por abastecer os sítios da terceira camada. Percebe-se assim uma estrutura de confiança baseada em hierarquia entre todas as camadas. O CERN (Tier-0) é a camada principal da estrutura do WLCG, pois é o responsável por receber os dados gerados pelo LHC, efetuar o processamento inicial, enviá-los para os sítios da segunda camada (Tier-1) e armazená-los para propósito de backup. O CERN tem uma importância fundamental para o funcionamento do WLCG, pois se seu sítio de computação estiver fora do ar, nenhum outro sítio das outras camadas receberão novos dados. Já os sítios da segunda camada são responsáveis por receber os dados do CERN, analisá-los de forma intensiva e também oferecer suporte regional para os sítios da terceira camada (Tier-2). Geralmente os sítios de terceira camada são associados, baseando-se em proximidade geográfica, a um sítio de segunda camada, o qual é responsável pela transferência dos dados necessários de acordo com o modelo de Organizações Virtuais. É perceptível que nessa situação o impacto de um problema causado em qualquer sítio da segunda camada é bastante preocupante, pois uma situação de emergência colocaria o próprio sítio de segunda camada e todos os seus respectivos sítios de terceira camada em estado de alerta. Entretanto, é importante citar que o ambiente do WLCG continuaria funcionando com base nos outros sítios de segunda e terceira camada. Em uma configuração de Grid Computing baseada totalmente na descentralização, onde um sítio não depende do outro, um problema que ocorresse em uma determinada localidade teria um impacto ainda menor. Essa característica é importante para ressaltar questões como segurança e transparência em uma infra-estrutura de Grid Computing. No projeto do WLCG, o qual utiliza uma configuração em camadas, percebe-se que nem mesmo o CERN (Tier-0) tem controle absoluto do ambiente informacional. O CERN pode afetar o ambiente apenas não enviando novos dados, porém aqueles que já foram transferidos estão em poder de inúmeras instituições ao redor do mundo. Foi visto até o momento que a colaboração é um fator importante para o projeto do WLCG para a constituição de sua infra-estrutura computacional. Entretanto, conforme foi destacado anteriormente, Grid Computing favorece o 2-Ways Collaboration, ou seja, os 96 envolvidos no projeto colaboram inicialmente através do compartilhamento de seus recursos computacionais para habilitar um ambiente de larga escala, o qual fornece funcionalidades para o trabalho colaborativo, execução de aplicações em conjunto e compartilhamento de dados de forma transparente, principalmente devido à arquitetura descentralizada da tecnologia. O projeto do WLCG tem o objetivo de prover os dados gerados pelo LHC para mais de sete mil cientistas pertencentes a diferentes entidades, as quais podem estar associadas a uma, ou mais, Organizações Virtuais. É importante citar que o modelo de OV tem papel importante no WLCG para organizar o acesso aos dados, trazendo maior confiabilidade e confiança para o ambiente colaborativo. Assim, uma instituição que participa apenas do experimento ALICE (consequentemente é associada à OV ALICE), não poderá receber dados provenientes do experimento ATLAS, mesmo ambos os experimentos estarem disponibilizando seus dados na mesma infra-estrutura. Destaca-se também que o WLCG desempenhou uma função interessante para a inclusão científica do projeto do LHC. Primeiro, esse projeto tornou possível a criação de um ambiente computacional de larga escala e com custo distribuído, o que favoreceu o investimento a partir de diversas fontes. Segundo, o WLCG permite que as instituições de pesquisas que não tinham a possibilidade de efetuar pesquisas na área de físicas de partículas, principalmente de uma riqueza tão abrangente como a do LHC, possam participar ativamente de um dos maiores experimentos científicos da humanidade, seja apenas acessando os dados, executando aplicações ou até mesmo compartilhando resultados. Basicamente, o que o WLCG proporciona é um ambiente de trabalho compartilhado por cientistas espalhados por todo o globo terrestre. Os cientistas do CERN podem trabalhar em conjunto com cientistas do Japão, Índia, Estados Unidos, e Brasil, por exemplo. Onde cada instituição tem um papel a desempenhar para contribuir com uma parcela significante para o projeto, e que todos juntos possam tornar a grande descoberta da humanidade uma realidade. Até mesmo os cientistas individuais podem ter acesso a esse ambiente através de recursos de uma quarta camada (Tier-3), que pode ser constituída de servidores de um departamento de uma universidade ou até mesmos de um simples computador pessoal. Com base na análise das características do WLCG, pode-se (PODEM-SE) destacar algumas vantagens da tecnologia de Grid Computing: 97 • Múltiplas cópias de dados podem estar armazenadas em diferentes sítios de computação, garantindo assim acesso para todos os cientistas envolvidos independentemente de suas localizações geográficas. • Aperfeiçoamento da utilização da capacidade excedente de recursos computacionais, tornando-os mais eficientes. • Redução dos pontos únicos de falha no ambiente. • O custo de operação e manutenção é distribuído por todos os envolvidos, onde cada um é responsável por seus equipamentos, mas todos juntos colaboram para o objetivo global. • Pesquisadores e cientistas não precisam deixar os seus países para participar do projeto, uma vez que os dados estarão disponíveis em seus recursos computacionais. • A comunidade é beneficiada com o surgimento de novas tecnologias que favorecem a redução do custo e também o consumo de energia. A colaboração é o fundamento do projeto do WLCG, e não está englobando apenas as entidades científicas que fazem parte dos projetos. Há indústrias que também apóiam o projeto ajudando os cientistas do CERN a desenvolver novas tecnologias e também melhorar as já existentes. Inclusive, existem alguns produtos vendidos no mercado que são frutos de esforços do projeto do WLCG. O projeto CERN Openlab (2009) tem foco na contribuição de parceiros de indústrias especializadas, como Intel, Oracle e HP. Essa situação fortalece o cenário de que a colaboração pode ditar o desenvolvimento de novos produtos, tanto nas comunidades sociais, como também nas indústrias especializadas. 4.1.3.4 Resultados e contribuições O projeto do superacelerador de partículas é, apoiado pela infra-estrutura do WLCG, um exemplo dos benefícios da colaboração na sociedade. Anteriormente, as instituições tentavam proteger as suas pesquisas para que fossem exclusivas. Entretanto, esse cenário está sofrendo fortes reformulações. Há algum tempo já se pode observar um cenário maior de ajuda recíproca e troca de informações entre as entidades científicas. O projeto do LHC é um exemplo notável do impacto da colaboração para a sociedade, 98 pois essa pesquisa busca responder perguntas que sempre foram destaque no meio científico, e consequentemente também na sociedade. É a busca por uma grande descoberta na ciência. E o mais importante é que essa pesquisa só será possível devido à colaboração entre várias instituições. O CERN não quer proteger as grandes descobertas ou tê-las como exclusividade. Pelo contrário, o CERN só tornou possível o seu projeto devido à colaboração de outras instituições, sendo assim, nada mais justo do que compartilhar o seu ambiente informacional para que todos trabalhem em conjunto na busca da evolução da ciência. É importante também destacar que o sucesso do projeto do WLCG vem guiando novas oportunidades inovadoras da utilização de Grid Computing ao redor do mundo, como a luta contra determinadas doenças, pesquisas sobre mudança climática, poluição do mar, entre outras. Qualquer ciência que requer intensiva simulação ou cálculos pode se beneficiar de Grid Computing. Os benefícios de Grid Computing não se limitam apenas ao contexto científico, embora o mesmo tenha possibilitado o surgimento de novas pesquisas. Essa tecnologia demonstra potencial para tornar-se algo de extremo valor para a sociedade informacional conectada, permitindo que através da colaboração um novo ambiente de alto nível de processamento seja provisionado com baixo custo, permitindo assim que novos projetos sociais sejam criados, principalmente aqueles focados em inclusão digital. Os ambientes de Grid Computing também tornam possíveis a produção de produtos e serviços que antes estavam restritos apenas as grandes indústrias por necessitar a utilização de supercomputadores para determinadas tarefas, como a renderização de um filme, por exemplo. Entretanto, com Grid Computing, uma comunidade torna-se capaz de habilitar um ambiente computacional para geração de qualquer bem que exija em seu processo produtivo alto nível de processamento computacional. Na próxima seção, discorre-se sobre o impacto de Grid Computing para o meioambiente, como esta tecnologia pode ser benéfica para a redução de consumo de energia e também como pode servir de infra-estrutura para pesquisas focadas na proteção ambiental. 4.2 Contexto Ambiental Hoje em dia, uma das principais preocupações da sociedade está relacionada ao meio- 99 ambiente. Cientistas, pesquisadores e ativistas estão sempre em busca de alternativas para que possamos diminuir o consumo de recursos naturais sem que haja um grande impacto na vida das pessoas. A energia elétrica é um dos elementos essenciais para a humanidade, o qual exige atenção especial para que seja possível evitar desperdícios durante a sua utilização. Na realidade, pode-se evitar o consumo excessivo de energia elétrica em várias situações do cotidiano, como apagar a luz ao sair de um recinto, desligar os aparelhos eletrônicos que não estiverem em uso, entre outras atitudes fáceis de serem notadas no dia-adia. Entretanto, existem cenários mais complexos de consumo de recursos energéticos em larga escala, os quais geralmente são difíceis de serem mensurados. Como exemplo, pode-se citar as infra-estruturas tecnológicas repletas de dispositivos computacionais, os quais consomem energia sem muitas vezes estarem produzindo em sua capacidade máxima. É interessante citar que a tecnologia da informação apresenta um papel de destaque nesta situação, pois é parte do problema e ao mesmo tempo a chave para solucioná-lo. Por esta razão, surgiu nos últimos anos um conceito denominado TI Verde (Green IT), o qual tem enfoque em estudos e práticas de como usar recursos computacionais de forma eficiente. Este é um conceito completo e aborda a forma de melhor utilizar as tecnologias a partir de diversas iniciativas, como reduzir o uso de materiais perigosos e poluentes para a fabricação de produtos, promover a reciclagem ou garantir a biodegrabilidade dos mesmos e também buscar eficiência no consumo de energia durante todo o seu ciclo de vida. O conceito de TI Verde teve sua origem com a concepção de um projeto da agência de proteção ambiental dos Estados Unidos (U.S. Environmental Protection Agency) chamado Energy Star. Basicamente, este projeto estava focado em promover iniciativas de energia eficiente para monitores, equipamentos de controle climático e demais tecnologias. O seu resultado foi bastante surpreendente e correspondeu à adoção do modo de espera (sleep mode) por diversos produtos no mercado. O objetivo desta dissertação não é o estudo a fundo do conceito de Green IT e todas as suas derivantes. Porém, o que se espera é salientar os impactos e as vantagens da utilização de energia de forma adequada, principalmente por parte das tecnologias da informação. O portal GreenIT (2009) estima que a participação da tecnologia da informação na emissão global de carbono corresponde, em média, entre 2% e 2.5% do total mundial, sendo que esse valor pode chegar entre 5% a 6% em países mais desenvolvidos. A mesma fonte 100 também cita, com base em um relatório do McKinsey17, que esses dados podem triplicar no período correspondente entre os anos 2002 e 2020. Entretanto, o Gartner (2006) cita que os custos de energia compreendem em média menos de 10% do orçamento total de TI nas organizações, mas que este nível pode chegar a 50% nos próximos anos. Essa situação de aumento no custo de energia apresenta uma forma difícil de ser gerenciada, causando certos desafios para os CIOs18. Ainda segundo o Gartner (2006), a legislação com foco no controle de energia é eminente tanto nos Estados Unidos quanto na União Européia, cenário que pode possibilitar punição de organizações com data centers de larga escala que não possuem medição e gerenciamento do seu consumo de energia. É importante também considerar a possibilidade que o crescimento de ações por parte de campanhas com foco na proteção dos recursos naturais pode influenciar os consumidores (empresas, governos e pessoas físicas) a levantar estas questões na hora de escolher os fornecedores de seus produtos, podendo este cenário apresentar impactos de curto prazo na rentabilidade de organizações que não estão tomando medidas que visam redução excessiva no consumo de recursos naturais. Como exemplo dessa situação, GreenIT (2009) aborda o programa dos Estados Unidos chamado Federal Eletronics Challenge (FEC), que tem como objetivo incentivar as agências federais a adquirir preferencialmente produtos eletrônicos que apresentam características positivas em relação ao meio-ambiente e também descartar os produtos obsoletos em ambientes adequados e seguros. Perante todos esses desafios e também obrigações impostas, as organizações de TI precisam tomar algumas ações em relação ao planejamento dos seus data centers para garantir um melhor aproveitamento da utilização dos recursos energéticos, bem como garantir o seu consumo escalável de acordo com o seu crescimento. O maior desafio que se pode encontrar nas tecnologias da informação está relacionado à sua infra-estrutura. O que ocorre é que atualmente existe uma grande quantidade de recursos computacionais ociosos, como servidores, computadores pessoais e periféricos que estão consumindo energia muitas vezes sem ser utilizados. Algumas tecnologias surgiram motivadas por essa situação e tem como objetivo 17 McKinsey – Empresa de consultoria estratégica que tem como clientes empresas líderes em diversificados setores. 18 CIO (Chief Information Officer) – Nome dado ao cargo do responsável pelo ambiente das tecnologias da informação de uma determinada organização. 101 aperfeiçoar a configuração da quantidade de recursos necessários para atender uma determinada demanda, aumentando assim a utilização da capacidade de cada dispositivo e diminuindo o numero total de equipamentos, e consequentemente o gasto de energia. Grid Computing tem apresentado excelentes resultados como tecnologia para aperfeiçoar a utilização em infra-estruturas computacionais complexas, as quais possuem uma grande quantidade de servidores. Conforme já visto nos capítulos anteriores, Grid Computing tem como característica extrair o máximo da capacidade de cada recurso para habilitar um ambiente de alto poder computacional. Através da implementação dessa tecnologia em um data center, pode-se alcançar como resultado a diminuição de consumo de energia, uma vez que foram mantidas somente as máquinas que apresentam nível de utilização aceitável para o ambiente, eliminando os recursos ociosos. É importante relembrar também que essa é uma tecnologia que fomenta um ambiente computacional escalável, ou seja, consegue gerenciar o crescimento de sua demanda através da adição de recursos computacionais adicionais, fator extremamente positivo para o controle do consumo de energia. Em outras palavras, Grid Computing apresenta-se como uma tecnologia favorável para a economia de recursos energéticos por manter um ambiente computacional conciso, ou seja, (QUE) somente utiliza um número de máquinas (NECESSÁRIAS) para manter o nível de processamento exigido em um data center para atender uma determinada demanda, eliminando qualquer recurso computacional que apresenta ociosidade, reduzindo assim o consumo de energia. Adicionalmente à aplicação de Grid Computing em uma infra-estrutura de um data center, essa tecnologia também é importante para tornar mais eficiente o consumo de energia por parte dos computadores pessoais. Na verdade, Grid Computing torna os recursos com baixa utilização conectados na Internet, em dispositivos produtivos através do modelo de computação voluntária, sem ter um grande impacto no consumo de energia elétrica. É importante ressaltar que os recursos computacionais dos usuários finais não precisam estar ativos exclusivamente para servir um ambiente de Grid Computing, mas eles podem ser utilizados por uma aplicação do estilo de computação voluntária quando o mesmo apresentar baixa utilização. Um exemplo fácil de ser encontrado nos dias de hoje são computadores pessoais que ficam ligados apenas para o download de músicas e filmes, com nível de processamento extremamente baixo, enquanto poderiam ser utilizados para servir uma 102 aplicação de um projeto científico. Entretanto, os benefícios de Grid Computing em relação ao meio-ambiente não estão restritos apenas a esses dois cenários – consumo de energia mais eficiente em data centers e computadores pessoais conectados à Internet. Conforme já visto anteriormente, essa tecnologia também tem potencial para geração de um ambiente compartilhado de alto processamento, característica importante para apoiar o trabalho colaborativo. Assim, é possível encontrar inúmeros projetos com foco na proteção de recursos naturais e também pesquisas climáticas que utilizam Grid Computing como a forma de criar um ambiente de trabalho comum entre diversas entidades. O projeto Clean Energy (HARVARD, 2009) é uma iniciativa com foco em pesquisas na busca de novos materiais para a próxima geração de células solares e também dispositivos de armazenamento de energia. Utiliza um ambiente de Grid Computing baseado no modelo de computação voluntária (também é integrante do World Community Grid), ou seja, qualquer pessoa interessada no projeto pode ceder a capacidade excedente de suas máquinas para a busca de uma fonte mais eficiente de geração de energia. A aplicação de Grid Computing no projeto Clean Energy permite que os pesquisadores possam calcular as propriedades eletrônicas de mais de dez mil materiais orgânicos (um número extremamente superior ao que poderia ser testado em um laboratório), e assim determinar quais são os mais indicados para o desenvolvimento de uma nova tecnologia de energia solar. O projeto Climateprediction (2009) é uma pesquisa focada na produção de predições do clima no planeta terra até 2080 e também na verificação da exatidão de modelos climáticos existentes. A mudança climática é um assunto de importância global, podendo afetar a produção de alimentos, ecossistemas, os recursos de águas, a demanda por energia entre outros pontos. Algumas pesquisas sugerem que a terra passará por um aquecimento global de impacto nos próximos anos. O Climaprediction (2009) tem como objetivo investigar com afinco e trazer resultados sobre o que realmente pode-se esperar em relação ao aquecimento global. Para isso, o projeto necessita de um ambiente computacional de larga escala para o processamento de seus dados e execução de suas simulações. A plataforma BOINC foi a escolhida para prover um ambiente de Grid Computing orientado ao modelo de computação voluntária. O projeto também criou um portal onde todos os resultados são compartilhados 103 com a comunidade interessada na pesquisa. Em suma, Grid Computing apresenta benefícios em duas vertentes para o meio ambiente, permitindo consumo de energia mais eficiente através do aperfeiçoamento da quantidade de recursos computacionais para atender uma determinada demanda, e também habilitando um ambiente computacional com capacidade de processamento suficiente para suportar novas pesquisas com foco no desenvolvimento de novas tecnologias e produtos, os quais ajudam de alguma forma a preservação dos recursos naturais. 4.2.1 Estudo de Caso – Computação Voluntária como uma alternativa de tornar o consumo de energia mais eficiente O objetivo deste estudo de caso é levantar informações sobre a quantidade de computadores pessoais em uso na atualidade, o seu consumo médio de energia e como Grid Computing pode se beneficiar da capacidade excedente dos recursos computacionais sem decorrer em grandes impactos em relação ao consumo de energia elétrica. 4.2.1.1 Coleta de Dados O portal Internet World Stats (IWS, 2009) traz dados estatísticos sobre a utilização da Internet em relação à população mundial. Estima-se que o número total de usuários conectados à rede global de computadores é de 1.5 bilhão, espalhados por todo o planeta. A tabela 4 detalha informações sobre a penetração do acesso à Internet por regiões: Usuários de Usuários de População Internet Internet Crescimento de (Estimado em (Dezembro de (Março de Penetração (% Usuários (2000- % Usuários no 2008) 2000) 2009) População) 2008) total global Regiões África 975330899 4514400 54171500 5.60% 1100.00% 3.40% Ásia 3780819792 114304000 657170816 17.40% 474.90% 41.20% Europa 803903540 105096093 393373398 48.90% 274.30% 24.60% Oriente Médio 196767614 3284800 45861346 23.30% 1296.20% 2.90% América do Norte 337572949 108096800 251290489 74.40% 132.50% 15.70% América Latina/Caribe 581249892 18068919 173619140 29.90% 860.90% 10.90% Oceania / 34384384 7620480 20783419 60.40% 172.70% 1.30% Austrália TOTAL 6710029070 360985492 1596270108 23.80% 342.20% 100.00% Tabela 4 – Penetração de acesso a Internet por regiões (IWS, 2009) 104 As regiões da Oceania e da América do Norte são as que apresentam maior penetração de usuários conectados na Internet em relação as suas populações. A África, mesmo sendo a região com menor penetração, apresentou um crescimento extremamente considerável entre os anos de 2000 e 2008. Já a Ásia é a região que tem o maior número de usuários conectados na Internet, seguida pela a Europa. A Oceania apresenta, mesmo despontando entre as regiões com mais penetração, o menor número de usuários conectados à rede em relação ao total. O Gráfico 6 demonstra um comparativo do total de usuários conectados à Internet por região. Gráfico 6 – Total de Usuário conectado à Internet por região (IWS,2009) Vale ressaltar que os usuários da Internet não possuem necessariamente o próprio dispositivo computacional, principalmente em países sub-desenvolvidos, onde muitas vezes acessam a rede a partir das máquinas dos seus trabalhos, centros de inclusão digital, lan houses, entre outros locais. Para exemplificar este cenário, pode-se comentar uma pesquisa divulgada por CETIC (2009), onde foi comparado o acesso a Internet a partir de diversas localidades: Percentual sobre o total de usuários de Internet no Brasil Gráfico 7 – Local de acesso à Internet no Brasil (CETIC, 2009) 105 Apesar de o número de pessoas conectadas à Internet não representar o número de computadores, a quantidade total de recursos computacionais atualmente em uso no mundo é bem próximo a quantidade de usuários, principalmente para que seja possível atender toda essa demanda de acesso à Internet. Reuters (2008) divulgou um estudo realizado pelo Gartner Group19 onde cita que o número de computadores pessoais em uso superou a marca de 1 bilhão de equipamentos em 2008. Já de acordo com um estudo da Almanac (2009), estima-se que a quantidade total atingiu 1,2 bilhão de dispositivos no fim do ano de 2008. A Tabela 5 traz informações referentes aos 15 países que possuem uma maior quantidade de computadores pessoais: Localidade 1. Estados Unidos 2. China 3. Japão 4. Alemanha 5. Reino Unido 6. França 7. Rússia 8. Itália 9. Coréia do Sul 10. Brasil 11. índia 12. Canadá 13. México 14. Austrália 15. Espanha Top 15 Total Total Mundial PCs em uso (Unidade: Milhões) 264.1 98.67 86.22 61.96 47.04 43.11 36.42 35.69 34.87 33.3 32.03 27.63 19.13 17.01 16.71 853.9 1190.1 Porcentagem % 22.19 8.29 7.24 5.21 3.95 3.62 3.06 3 2.93 2.8 2.69 2.32 1.61 1.43 1.4 71.7 100 Tabela 5 – Total de computadores pessoais no mundo (ALMANAC, 2009) O próximo passo é a investigação da média do consumo de energia por parte dos recursos computacionais. Existem muitas métricas disponibilizadas sobre este assunto, entretanto o estudo realizado por Schmid (2005) buscou uma análise com mais detalhes sobre as principais marcas e modelos de processadores. O Gráfico 8 mostra o consumo de energia de recursos computacionais em dois 19 Gartner Group Empresa de consultoria fundada em 1979 focada em pesquisas de tecnologias. 106 cenários distintos – computadores ociosos (Idle) e também alta utilização (100% do consumo de CPU). O autor citou que os dados foram coletados a partir de um ambiente computacional composto por uma placa-mãe, memória RAM, uma placa de vídeo, dois discos rígidos, um dispositivo de DVD e o processador em questão, sendo que apenas os periférios foram excluídos (monitores, impressoras entre outros). Gráfico 8 – Consumo de energia por recursos computacionais (SCHMID, 2005) Nota-se que o consumo de energia está diretamente relacionado à utilização da capacidade computacional do computador. A partir dos dados de consumo dos processadores analisados, a média de demanda por recursos energéticos aumenta de acordo com a sua utilização. Em computadores ociosos (Idle), o consumo médio é de aproximadamente 173.4 W, enquanto pode atingir 258.55 W quando o recurso estiver com toda a sua capacidade 107 explorada (100% CPU). Vale também ressaltar que os recursos computacionais, principalmente os mais novos, apresentam capacidade de processamento extremamente alta, o que muitas vezes não é utilizada por completa, simplesmente por serem aplicados à tarefas que não requerem muito processamento, como navegação na Internet, uso de aplicativos de escritórios, entre outros. Joseph e Humphreys (2004) citam, em uma publicação da empresa de consultoria IDC, que a taxa de utilização em servidores baseados na plataforma Intel x86 é de apenas 15% em média. Seguindo a mesma linha, Maurrer (2009) também publicou alguns dados onde aborda que somente 20% da capacidade de processamento dos computadores pessoais é utilizada. Para fomentar esse cenário de consumo de CPU, também foram coletados dados referentes à utilização de CPU em dois tipos de recursos computacionais - um notebook HP 6910p com o sistema operacional Linux e um desktop HP dc7700s com o sistema operacional Windows. Ambos dispositivos apresentaram utilização máxima de 30%, mesmo enquanto seus usuários estavam operando-os normalmente. A utilização de CPU é algo difícil de especificar, pois depende muito do cenário de implementação, tipo de dispositivo, aplicações executadas, entre outros fatores. Entretanto, nessa dissertação toma-se como base, de acordo com os dados apresentados, a utilização média de 30% para os computadores pessoais, fortalecendo um cenário de desperdício computacional. Grid Computing surge como uma tecnologia fundamental para a utilização da capacidade excedente dos recursos computacionais para outros projetos. Entretanto, à medida que a utilização da capacidade de processamento dos computadores aumenta, a demanda por recursos energéticos também segue esta tendência, apresentando assim maior consumo de energia. A seguir será analisado, com base nos dados coletados, a implementação de Grid Computing para a redução de desperdício da capacidade de processamento em computadores pessoais e o seu impacto no consumo de energia elétrica. 4.2.1.2 Análise Na seção anterior foi visto que há uma grande quantidade de computadores pessoais em uso mundialmente que, em sua grande maioria, possuem conexão à Internet. Também foi 108 destacado que utiliza-se em média somente 30% da capacidade dos recursos computacionais. Grid Computing é uma tecnologia que apresenta habilidade para aproveitar a capacidade excedente de dispositivos computacionais para processar dados de um determinado projeto e aplicação. Entretanto, o consumo de energia está fortemente atrelado à utilização da capacidade de processamento das máquinas. Nesta seção, analisa-se o impacto do aumento de utilização para o consumo de recursos energéticos a partir de computadores pessoais que estão executando a aplicação de Grid Computing do World Community Grid (WCG, 2009). A aplicação cliente do World Community Grid permite que os usuários voluntários que estão colaborando com o projeto, cedendo recursos de suas máquinas, possam configurar algumas preferências para adequar a aplicação em relação à utilização da capacidade de processamento de seus computadores, como configurar os horários que a aplicação pode inciar, o limite de uso de CPU e espaço de armazenamento. A configuração padrão limita a utilização do espaço em disco em 10GB e a utilização de CPU em 60%. Para propósito de testes, a aplicação foi instalada em dois equipamentos - notebook HP 6910p e desktop HP dc7700s. O Gráfico 9 mostra a utilização de CPU do notebook em condições de uso normal (usuário utilizando o computador normalmente, como navegação na Internet e utilização de suas aplicações diárias) e também um cenário de execução da aplicação de Grid Computing do World Community Grid. Os dados foram coletados a partir da ferramenta vmstat do próprio sistema operacional Linux: Gráfico 9 – Utilização de CPU em notebook com sistema operacional Linux 109 O Gráfico 10 mostra os dados de utilização de CPU do desktop coletados a partir da ferramenta de gereciamento do sistema operacional Windows: Gráfico 10 – Utilização de CPU em desktop com sistema operacional Windows De acordo com os Gráficos 9 e 10, percebe-se que a aplicação do World Community Grid aproveitou os recursos ociosos das máquinas, as quais a utilização gira em torno de 30%, para processar dados de pesquisa científica sem prejudicar o ambiente computacional do usuário. É importante citar que a configuração da aplicação do Word Community Grid estava configurada para consumir no máximo 60% de CPU, funcionalidade padrão do software. Entretanto, o usuário pode configurar para que a aplicação possa consumir até 100% de CPU do seu computador. Porém, um grande desafio para o modelo de Grid Computing focado em computação voluntária é gerenciar o consumo de energia de acordo com a utilização da capacidade de processamento de computadores conectados à Internet. O próximo passo é identificar o impacto direto do aumento da autilização de um computador para o consumo de energia elétrica. Vale ressaltar que está sendo analisada somente a aplicação de Grid Computing, baseada no modelo de computação voluntária, em um cenário onde os computadores estão ligados por algum motivo, seja pelo fato de seu usuário estar utilizando um editor de texto ou o mesmo ter deixado sua máquina fazendo download de vídeos e músicas durante toda a noite. O cenário de computadores em stand-by (hibernado) ou desligados não fazem parte do escopo dessa pesquisa. Assim, estamos apenas abordado aquelas máquinas que por alguma razão estão ligadas, consumindo energia e apresentando capacidade excedente. Entretanto, o 110 aumento de utilização também corresponde a um maior consumo de energia por parte do equipamento computacional. Blackburn (2008) publicou uma pesquisa sobre a variação de consumo de energia em relação a utilização de CPU nos computadores. O autor cita a seguinte fórmula para calcular o quanto um recursos computacional consome de recursos energéticos: Pn = Pidle + (Pmax – Pidle) / 100 X N Onde, Pidle significa o consumo de energia quando o computador está ocioso (Idle), Pmax o consumo de energia quando o computador apresenta máxima utilização (100% CPU) e N o nível de utilização de CPU no dado momento. O Gráfico 11 mostra a tendência do aumento de consumo de energia de acordo com a sua utilização. Para a geração deste gráfico foi utilizado dados referente ao consumo médio de energia dos recursos computacionais, coletados na seção anterior, aplicados a fórmula anterior: Gráfico 11 – Consumo de energia em relação a utilização de CPU De acordo com o Gráfico 11, é possível destacar que, do total consumido por um computador, uma parcela considerável corresponde aos seus componentes (placa-mãe, memória, disco rígido, leitor de DVD, entre outros). Já a CPU, responsável pela maior parte do consumo de energia nos computadores, apresenta uma tendência suave no crescimento de demanda por recursos de energia quando há maior utilização de sua capacidade. Por exemplo, um computador pode ter sua capacidade de processamento dobrada de 10% para 20% de 111 utilização de CPU, enquanto o consumo de energia varia apenas em torno de 4,7%, saltando de 181.92 W para 190.43 W. A Tabela 6 está populada com dados referentes ao consumo de energia elétrica quando o computador apresentar diferentes cenários de utilização – uso normal do usuário e também a aplicação do World Community Grid em diferentes configurações de consumo máximo de CPU (60%, 80% e 100%). Cenário % CPU Utilizada % CPU Ociosa Energia Consumida Consumo de energia por % CPU Utilizada Uso Normal 30% 70% 198.95 W 6.63 W WCG (60%) 60% 40% 224.49 W 3.74 W WCG (80%) 80% 20% 241.52 W 3.01 W WCG (100% 100% 0% 258.55 W 2.58 W Tabela 6 – Cenário consumo de energia com Grid Computing De acordo com os dados apresentados na Tabela 6, os recursos computacionais mostram-se mais eficientes em relação ao consumo de energia quando há maior utilização de CPU. Durante o uso normal de um computador, ou seja, enquanto o usuário está executando suas aplicações, navegando na Internet, estima-se que o nível de capacidade de CPU explorada é de apenas 30%, consumindo em torno de 198.95 W, equivalente a 6.63 W por cada 1% de CPU utilizada. Porém, se o usuário optar por ceder a capacidade ociosa de seu computador para o World Community Grid, e o mesmo configurar a aplicação cliente para utilizar até 60% de sua CPU, o consumo médio de energia por cada 1% de CPU utilizada atinge o valor de aproximadamente 3.74 W. Já se a aplicação for configurada para usar toda a capacidade de processamento, a eficiência é ainda maior, com um consumo médio de 2.58 W por cada 1% de CPU utilizada. Assim, mesmo que o aumento da utilização da capacidade de processamento de CPU decorra em um consumo total de energia maior, os computadores pessoais demonstram-se mais eficientes com alta utilização, pois o aumento de uso de recursos computacionais é bastante pequeno perto da capacidade de processamento obtida. Um computador com 100% de utilização apresenta apenas 60 W de consumo de energia a mais do que um computador com uso normal (30% de utilização de CPU), ou seja, um aumento ínfimo se comparado com o poder de produção alcançado. 112 4.2.1.3 Resultados e contribuições De acordo com a análise dos dados na seção anterior, percebe-se que um recursos computacional, tanto os desktops, notebooks ou até mesmo os servidores, apresentam um consumo mais eficiente de energia quando estão com sua capacidade máxima de processamento em uso. Isso acontence, pois os computadores consomem uma certa quantidade de energia, quase metade do total, apenas para alimentar todos os seus componentes, como placa-mãe, memória, disco rígido, placa de vídeo. É certo que os processadores também têm uma grande parcela no total de energia consumida, mas mesmo assim essa variação acaba tornando-se mínima perante a capacidade de produção alcançada com o aumento de processamento. Através da colaboração, os indivíduos da sociedade que possuem máquinas ativas que apresentam capacidade ociosa de processamento, podem participar de projetos científicos e sociais execuntando aplicações de Grid Computing, como o World Community Grid, aumentando o nível de processamento de suas máquinas e tornando-as mais eficientes em relação ao consumo de energia. Muitas pessoas deixam seus computadores ligados durante um longo período para fazer download de arquivos, ou simplesmente por não querer desligá-los, situação que mantêm uma grande quantidade de máquinas conectadas na Internet consumindo energia de uma forma ineficiente, já que o recurso apresenta baixa utilização de sua capacidade de processamento. Isso não quer dizer que a máquina está consumindo mais energia para produzir menos, mas significa que ela poderia estar produzindo muito mais com apenas um leve acréscimo no seu consumo de energia. Grid Computing, baseado no modelo de computação voluntária, apresenta-se com uma oportunidade colaborativa para a elaboração de um ambiente computacional de larga escala sem que haja um grande impacto ambiental e financeiro, principalmente levando em consideração a quantidade total de computadores em usos e pessoas conectadas na Internet atualmente. Geralmente, quando um usuário colabora com um projeto como o World Community Grid, ele permite a execução da aplicação cliente de Grid Computing enquanto seu computador estiver ativo devido algum motivo – usuário trabalhando, lendo e-mails, navegando na Internet ou jogando algum game. Essa situação demonstra uma característica 113 interessante para a economia de recursos energéticos, pois como foi visto anteriormente, uma boa parcela do consumo total de energia é utilizada pelos componentes do computador, e nesse caso Grid Computing estaria consumindo energia apenas em relação a variação de CPU. Como exemplo, pode-se citar um usuário que utiliza apenas 20% da capacidade total de seu computador, e por esta razão decidiu participar do World Community Grid. De acordo com os dados de consumo médio de energia coletado nas seções anteriores, pode-se destacar que uma pessoa que utiliza apenas 20% da capacidade de seu computador, para desempenhar suas atividades normais, consome em torno de 190 W de energia elétrica. Porém, com a instalação da aplicação de Grid Computing no mesmo dispositivo computacional, pode ocorrer um aumento do total de CPU utilizada, atingindo o nível de 60% de utilização – 20% referente ao uso normal do usuário e 40% referente a aplicação de Grid Computing. Esse aumento de utilização da capacidade de processamento também acarreta em um maior consumo de energia, saltando para aproximadamente 224 W, ou seja, um acrescimo de apenas 34 W no consumo total de energia elétrica. Considerando que a máquina já estava ativa por algum motivo, e por isso estava consumindo 190 W, pode-se determinar que a aplicação de Grid Computing consumiu apenas 34 W para utilizar 40% de CPU de um computador ativo na Internet, enquanto seria necessário em torno de 207 W para atingir a mesma capacidade de processamento em uma máquina dedicada. Grid Computing torna-se uma excelente alternativa para um consumo mais eficiente de energia através da utilização da capacidade ociosa de recursos computacionais na Internet. A tecnologia também apresenta importates características em relação a redução do desperdício de energia elétrica em data centers de empresas e instituições. 4.3 Contexto Econômico Grid Computing é uma tecnologia que está ganhando evidência na indústria de tecnologia nos últimos anos. As grandes empresas fornecedoras de tecnologia da informação, como IBM, HP, Oracle, já estão lançando suas soluções de Grid Computing para atender a demanda de seus clientes. Esses produtos têm como foco tornar mais eficiente e econômica a infra-estrutura de data centers, criando um ambiente computacional escalável, tolerante à falhas e com alto 114 poder de processamento. Elimina os recursos ociosos e mantêm apenas aqueles que estão realmente sendo utilizados no processo produtivo, reduzindo assim o investimento na aquisição de novos equipamentos. É comum hoje em dia, encontrar data centers que são construídos com uma relevante quantidade de clusters na configuração active/stand-by para atender requisitos de altadisponibilidade. Para isso, geralmente existe um servidor ativo, responsável por receber todo o tráfego do ambiente, enquanto há um outro ocioso esperando uma falha no servidor principal para começar a executar as aplicações. Grid Computing tem importate papel para suprir os requisitos de alta-disponibilidade de TI das empresas, mas sem a necessidade de manter uma quantidade abundante de servidores ociosos. Isso acontece pelo fato da tecnologia integrar, em uma infra-estrutura global, somente os recursos computacionais necessários para atender a demanda de processamento de um data center. Através da adoção de Grid Computing, elimina-se a alocação exclusiva de máquinas para a execução de uma determinada aplicação, como é comum encontrar nos data centers. Por exemplo, um sistema gerenciador de banco de dados sendo executado no servidor A, uma solução da área financeira no servidor B, e uma aplicação Web no servidor C. Esse cenário não é muito favorável à economia de recursos, pois de acordo com os dados coletados nas seções anteriores, a utilização da capacidade de um servidor varia entre 15% e 30%. Já Grid Computing visa a eliminação dessas ilhas de processamento, através da integração dos recursos computacionais (no caso, os servidores A, B e C), para a constiuição de uma infra-estrutura computacional de larga escala que será compartilhada por todas as aplicações, explorando ao máximo a capacidade de processamento de cada equipamento, o que pode influênciar a redução da quantidade total de dispositivos para atender uma determinada demanda. Com base nessa caracterísitca, Grid Computing torna-se interessante para empresas e instituições, pois torna a infra-estrutura de suas organizações de TI mais eficiente através da aquisição somente de dispositivos computacionais que realmente são necessários. Em face a necessidade dos seus clientes e os benefícios apresentados por Grid Computing, os grandes fornecedores de tecnologia estão buscando produtos comercias a partir de uma idéia que emergiu da comunidade científica. Essa tecnologia é um grande exemplo de que produtos e serviços que surgem do coletivo, apresentam qualidade, e até mesmo potencial 115 para guiar as grandes indústias. Hoje, empresas especializadas em tecnologia estão buscando oportunidades de negócios a partir de criações que não são obrigatoriamente desenhadas por sua equipe de pesquisa e desenvolvimento, mas que são idéias originadas através de um trabalho colaborativo, muitas vezes não guiado por qualquer regra de mercado, mas sim pelo simples poder de voluntariado das pessoas. É importante destacar que os produtos comerciais de Grid Computing, que surgiram a partir de uma criação da comunidade científica, já apresentam atualmente fatores importantes relacionados ao contexto econômico. Para as indústrias de tecnologia, é o desenvolvimento de um novo produto que permite a geração de receita através de sua venda, e para as empresas consumidoras, uma tecnologia que pode trazer certa economia e maior aproveitamento em relação aos seus recursos computacionais. Já é possível indentificar também novos modelos de negócios que estão surgindo, a partir dessa tecnologia, com enfoque na disponibilização de uma infra-estrutura computacional como um serviço na Internet. Empresas e instituições estão disponibilizando capacidade de processamento para clientes de forma on-demand e escalável, sem que eles tenham a necessidade de investir muito em aquisição de equipamentos, projetos de implementação, entre outros. A sinergia entre Grid Computing e Cloud Computing torna-se evidente a partir desse cenário. A seguir será abordado com mais detalhes o conceito de Cloud Computing, suas tecnologias e configurações, bem como a sua relação com Grid Computing e Virtualização. 4.3.1 Cloud Computing Cloud Computing, também chamado de Computação em Nuvem é um novo paradigma de computação que visa à integração de diversos conceitos e tecnologias para a geração de um ambiente tecnológico ubíquo. Weiss (2007) cita Cloud Computing como uma promessa de serviços confiáveis disponibilizados através da próxima geração dos data centers. Assim, os consumidores poderão acessar, de qualquer lugar do mundo, as aplicações e dados hospedados em uma Nuvem Computacional (Cloud Computing). Esse termo está sendo bastante abordado no mercado corporativo e em instituições acadêmicas. Com base nas definições de diversos pesquisadores apresentadas por Sys-Con (2009), é possível consensuar Cloud Computing como uma coleção ubíqua de recursos 116 computacionais, softwares e serviços, que proporcionam a seus usuários um ambiente altamente escalável e provisionado de maneira dinâmica. Esse ambiente pode apresentar sofisticadas combinações de tecnologias e conceitos para a habilitação de serviços. O conceito de Cloud Computing é bastante abrangente e pode apresentar diversos cenários, mas sua principal característica é o fornecimento de recursos através de uma Nuvem Computacional, ou seja, um ambiente ubíquo no qual os usuários utilizam os serviços disponibilizados sem a necessidade de possuir informações sobre os elementos que os compõem. No atual ambiente computacional é possível destacar a sinergia de Cloud Computing com diversas tecnologias largamente adotas pelo mercado. A Figura 6 destaca os principais elementos que, diretamente ou indiretamente, compõem o conjunto de tecnologias e conceitos que fomentam o termo Cloud Computing. Figura 6 – Cloud Computing: sinergia entre conceitos e tecnologias A Figura 6 destaca as tecnologias que impulsionam o conceito de Cloud Computing, entretanto, isso não determina que todas essas técnicas sejam obrigatoriamente utilizadas em conjunto para habilitação de um ambiente de Computação em Nuvem. 4.3.1.1 Infra-estrutura A primeira camada de um ambiente de Cloud Computing corresponde à infra-estrutura, ou seja, às coleções de máquinas, servidores, dispositivos de storage, equipamentos de redes de comunicação e softwares para o monitoramento e gerenciamento de todos esses elementos. Essa é a camada base que promove o ambiente computacional necessário para a execução e disponibilização de serviços. 117 4.3.1.2 Grid Computing e virtualização Grid Computing e virtualização correspondem às tecnologias que gerenciam e habilitam novas funcionalidades para os recursos da camada de infra-estrutura. O conceito de Grid Computing é largamente difundido nas indústrias de tecnologias e institutos de pesquisas. Consequentemente, existem diversas plataformas científicas e corporativas implementadas com grande sucesso, principalmente pelo fato de habilitar um ambiente robusto, conciso e econômico. Mesmo sendo um conceito em evidência na atualidade, ainda há muitas abordagens confusas em relação à Grid Computing e Cloud Computing. Existem diversas pesquisas de mercado abordando Cloud Computing como evolução de Grid Computing. Entretanto, considera-se nessa dissertação, Grid Computing como sendo uma tecnologia de gerenciamento de infra-estrutura utilizada para a geração de novos serviços em um ambiente de Computação em Nuvem. As evoluções de Grid Computing ficam a cargo de pesquisas sobre a própria tecnologia, como já é possível encontrar integrações de funcionalidades nas áreas de mobilidade (Mobile Grid) e semântica (Semantic Grid). Já a virtualização é um conceito tecnológico que permite que diversos ambientes avulsos sejam implementados em um único equipamento físico, permitindo que os serviços possam ser compostos por esses ambientes como se fossem máquinas individuais. O usuário tem a seu dispor a funcionalidade para alocar um ambiente de processamento on-demand e com ajustes dinâmicos em relação aos seus recursos computacionais, como CPU, Memória RAM e espaço de armazenamento, em um único elemento físico. Essas duas tecnologias, Grid Computing e Virtualização, possibilitam que o ambiente de Cloud Computing disponibilize sua infra-estrutura como serviços a serem consumidos por seus clientes. Empresas podem alocar recursos computacionais em um ambiente de Computação em Nuvem para atender uma demanda específica, sem a necessidade de aquisição de novos equipamentos. Essa situação apresenta vantagem financeira para as empresas consumidoras de serviços e permite a diminuição do custo total de propriedade (TCO). 4.3.1.3. Serviços tecnológicos A terceira camada representa os conceitos e tecnologias que utilizam o ambiente 118 computacional, constituído pelas camadas anteriores, para promover diversificados tipos de serviços para os consumidores da Nuvem Computacional. Entre os principais conceitos tecnológicos nessa camada estão: SaaS, SOA, Web 2.0 e Mobilidade. Software as a Service Software as a Service (SaaS) é um modelo de disponibilização de software no qual a aplicação é hospedada como um serviço disponível ao consumidor. O Gartner define o paradigma de Software as a Service: Gartner define SaaS como um software que é possuído, entregue e administrado remotamente por um ou mais provedores. O provedor fornece uma aplicação baseada em um grupo de definições de dados e códigos comuns, que são consumidos em um modelo um-para-muitos por todos os consumidores contratados a qualquer momento em uma base de pagamento por uso, ou como uma assinatura baseada na métrica de uso (GARTNER, 2009a). Com base nas características e definições de SaaS, é notório destacar a sinergia entre esse modelo computacional e Cloud Computing. Ambos os conceitos apresentam similaridade pelo fato de disponibilizarem funções de TI através de um ambiente ubíquo. No modelo de SaaS as funções de TI disponibilizadas são os softwares, enquanto os ambientes de Cloud Computing disponibilizam variadas funções, como hardware e também software. Gartner (2009a) destaca que o modelo de SaaS é um conceito aplicado desde a década de 90, entretanto atualmente já existem antigos provedores de SaaS que estão mudando a nomenclatura de seus serviços para Cloud Computing, mesmo não tendo efetuado qualquer alteração na arquitetura de suas aplicações. Essa migração entre os nomes é gerada por questão de marketing, principalmente devido ao fato do termo Cloud Computing estar em evidência no mercado. A empresa Salesforce.com foi uma das primeiras a focar o desenvolvimento de seus softwares em serviços e hoje possui considerável market share na área de aplicativos de CRM e uma das maiores plataformas de entrega de serviços on-demand. A Salesforce.com é um exemplo de empresa que atualmente já utiliza o termo Cloud Computing em parte de sua publicidade (SALESFORCE.COM, 2009). Entretanto, Gartner (2009a) destaca que a diferença entre os conceitos de SaaS e Cloud Computing está no modelo de infra-estrutura utilizado para a disponibilização dos serviços. 119 Sendo assim, para que um ambiente possa ser considerado Cloud Computing, o mesmo deve utilizar tecnologias escaláveis em sua infra-estrutura para fornecer, consequentemente, ofertas escaláveis para o mercado. Grid Computing é uma técnica que atualmente promove uma infra-estrutura com tais características. SaaS é um conceito consagrado que ao longo do tempo emergiu novos modelos de negócios para a indústria de tecnologia. Cloud Computing é um novo paradigma computacional que apresenta um amplo conceito de integração de técnicas para habilitação de serviços escaláveis, no qual SaaS é uma prática associada ao seu portfólio. ServiceOriented Architecture Os serviços disponibilizados pelo modelo de Cloud Computing podem prover determinadas aplicações que fazem parte dos fluxos informacionais dos processos de negócios de empresas clientes, portanto necessitam ser integrados ao ambiente de Tecnologia de Informação dos consumidores de modo conciso. Como exemplo, podemos citar as soluções de CRM disponibilizadas pela Salesforce.com, onde as empresas consumidoras integram esse serviço em seu ambiente de TI para interações com outros serviços internos, como ERP, BI, entre outros. Atualmente, o conceito SOA (Service-Oriented Architecture) está em completa evidência no mercado, pois visa à integração de serviços para a constituição de uma arquitetura informacional concisa. Segundo OASIS (2006), SOA é um paradigma para a organização e utilização de capacidades distribuídas que podem ser controladas por diferentes domínios proprietários. Esse cenário é aplicável ao ambiente de Cloud Computing, uma vez que esse modelo visa à disponibilização de serviços para serem integrados em uma arquitetura orientada a serviços. WANG (2008) cita que muitos serviços dos ambientes de Cloud Computing são disponibilizados como Web Services, que seguem os padrões da indústria de tecnologia, como SOAP e UDDI. Com base nessa citação, destaca-se a importância de SOA para o gerenciamento, organização e orquestração de serviços para a composição de um ambiente informacional íntegro, podendo esses serviços serem disponibilizados por aplicações internas ao ambiente de TI ou ambientes externos provenientes de Cloud Computing. Muitos investimentos estão sendo realizados por empresas para adoção de SOA como plataforma base para a integração de serviços. Esse cenário torna favorável a integração de 120 serviços habilitados pelo modelo de Cloud Computing. Consequentemente, a crescente demanda pelo paradigma de Computação em Nuvem também pode acarretar em incentivos para implementação da Arquitetura Orientada a Serviços. ZDNET (2009) destaca que as ofertas de Cloud Computing serão constituídas de acordo com os princípios de SOA, exaltando a Arquitetura Orientada a Serviços como backbone utilizado pelas emergentes tecnologias baseadas em Cloud Computing. Mobilidade As tecnologias móveis foram inventadas para suprir a necessidade do ser humano de estar acessível não importando sua localização geográfica. O grande símbolo de mobilidade na atualidade é o telefone celular, pois permite que os usuários estejam acessíveis e conectados sempre que desejado, não importando onde quer que estejam. A necessidade do indivíduo de possuir acesso móvel aos seus recursos já ultrapassou a fronteira da comunicação. Hoje em dia, as pessoas não querem somente comunicar-se via voz, os usuários têm o desejo de utilizar todo o seu ambiente informacional sempre que necessário, não importando a sua localização ou o tipo de dispositivo utilizado. Cloud Computing é um conceito capaz de habilitar novos modelos de mobilidade pelo fato de constituir um ambiente ubíquo, ou seja, um ambiente acessível a qualquer hora e a partir de qualquer lugar. Os usuários podem inserir seus recursos, sejam eles softwares ou arquivos pessoais, dentro de um ambiente de Computação em Nuvem para que possam ter acesso sempre que necessário. Essa característica é de grande importância para o conceito de mobilidade, pois permite que recursos não fiquem dependentes de um único dispositivo, podendo ter seu acesso expandido para além dos limites locais. Um exemplo é o serviço de e-mail do Google, denominado Gmail, onde todos os e-mails, lista de contatos e arquivos anexos dos usuários ficam armazenados em uma Nuvem Computacional disponibilizada na Internet, assim esses recursos não estão hospedados em um único dispositivo do usuário. Pelo contrário, estão disponibilizados em um ambiente ubíquo e escalável que permite acesso independente do tipo de dispositivo utilizado. O conceito de Cloud Computing é capaz também de expandir o poder computacional de dispositivos móveis, que em muitos casos possuem recursos com baixa capacidade de 121 processamento. Isso ocorre, pois o ambiente computacional disponibilizado por Cloud Computing pode ser acessível a partir de qualquer dispositivo. Assim, um usuário pode iniciar uma aplicação de larga escala em um ambiente de Cloud através do seu celular, pois todo o processamento vai ocorrer dentro dos limites da Nuvem Computacional e não em seu aparelho de telefonia móvel. 4.3.1.4 Consumidores e Negócios: Market-Oriented Cloud Computing Cloud Computing tem como desafio integrar as tecnologias e os conceitos citados anteriormente para prover um ambiente ubíquo para os seus consumidores com base nos requerimentos especificados. O gerenciamento dos modelos de negócios e o relacionamento com os consumidores são dois pilares que sustentam as oportunidades geradas pelos ambientes de Computação em Nuvem. Os consumidores ao adotarem o ambiente de Cloud Computing para suprir a sua demanda computacional podem atribuir responsabilidades a seus provedores de serviços, como a exigência do cumprimento de métricas de QoS20, para garantir a qualidade dos serviços prestados. Entretanto, os provedores também têm um grande desafio, pois esse cenário requer um novo conceito de gerenciamento para atender múltiplos parâmetros de QoS com base em diversos consumidores e seus respectivos SLAs. Buyya, Yeo e Venugopal (2008) citam que a mudança de paradigma na entrega de serviços é inexorável. Os provedores de Cloud Computing devem modificar os seus tradicionais sistemas que tratam todas as requisições de alocações de serviços com igual importância. Em seu lugar, a proposta é a adoção de um sistema de Cloud Computing orientado ao mercado, ou seja, um ambiente capaz de promover a alocação de serviços baseados em QoS individuais dos consumidores, conforme especificados nos SLAs. O conceito de Cloud Computing originou novos nichos de mercados e oportunidades de negócios a serem explorados por empresas fornecedoras de tecnologia. Os provedores de Cloud Computing, assim como todo prestador de serviços, devem estar atentos para atender seus consumidores de acordo com as suas especificações para que todos os Indicadores Chave de Qualidade (KPQ) e Indicadores Chave de Desempenho (KPI), definidos nos SLAs, sejam atendidos. O cenário atual não remete ao modelo de disponibilização de funções de TI em forma 20 QoS – Qualidade de Serviço 122 serviços padrões, onde todos os usuários devem possuir as mesmas funcionalidades e capacidades. Esse novo modelo é denominado Market-Oriented Cloud Computing e visa à disponibilização de serviços orientados as demandas do mercado e não simplesmente a disponibilização de serviços padrões aos consumidores. O grande desafio desse novo ambiente de Cloud Computing é o processo de gerenciamento para garantir que distintos serviços possam ter seus indicadores de QoS atendidos, sem importar a singularidade de cada consumidor. 4.3.1.5 Tipos de serviço e níveis de abrangência Atualmente existem diversos modelos de entrega de serviços de Cloud Computing disponibilizados na área da Tecnologia da Informação, os quais apresentam distintas funcionalidades e modelos de negócios. Um serviço em Computação em Nuvem pode ser a disponibilização de uma infra-estrutura computacional, como CPU, memória e espaço para armazenamento, ou pode envolver serviços informacionais, como aplicativos e softwares especializados. A busca pela classificação dos modelos de Cloud Computing está em constante avanço na indústria de tecnologia e no meio acadêmico. O’Reilly (2009b) classifica Cloud Computing em três tipos baseando-se, em seus modelos de serviços: Utility Computing: disponibilização de recursos de infra-estrutura computacional (CPU, Memória e Espaço para armazenamento) em forma de serviço na Internet. Platform as a Service: Disponibilização de serviços que escondem as instâncias dos servidores e sistemas operacionais através de APIs que são utilizadas para o desenvolvimento de aplicativos hospedados no ambiente. Cloud-based end-user applications: Disponibilização de aplicações habilitadas em forma de serviços para os usuários finais em um ambiente de Cloud Computing. Com base nas definições anteriores e nas análises dos atuais cenários de serviços de Computação em Nuvem, apresenta-se, nessa dissertação, uma classificação dos modelos de 123 Cloud Computing em relação a duas vertentes: tipo de serviço disponibilizado e nível de abrangência do ambiente. A figura 7 ilustra a matriz taxonômica dos modelos de Cloud Computing proposta: Figura 7 - Matriz taxonômica de Cloud Computing 4.3.1.5.1 Tipos de serviços As classificações dos modelos de Cloud Computing podem variar de acordo com os serviços disponibilizados para os consumidores. Os Tipos de serviços dos ambientes de Computação em Nuvem observados até o momento são: Utility Cloud Computing, Platform Cloud Computing, Application Cloud Computing e End-User Cloud Computing. Utility Cloud Computing Utility Cloud Computing, conforme abordado por O’Reilly (2009), corresponde à disponibilização da infra-estrutura computacional em forma de serviços. Esses serviços podem utilizar tecnologias de gerenciamento de recursos computacionais abordadas nessa dissertação, como Grid Computing e virtualização. Atualmente existem experimentos científicos que utilizam serviços de Utility Cloud Computing compostos pela tecnologia de Grid Computing para obter grande capacidade computacional para o processamento de dados de larga escala. No ambiente corporativo, o mais comum é a utilização do conceito de virtualização para disponibilização de serviços, já que tal conceito permite a isolação do ambientes computacionais dos consumidores através de 124 máquinas virtuais. Platform Cloud Computing Platform Cloud Computing foi também definida por O’Reilly (2009b) como Platform as a Service. Esse modelo não visa à total disponibilização dos recursos computacionais, mas tem como principal característica o encapsulamento desses elementos (CPU, Memória, Sistemas Operacionais, etc.) através do uso de APIs. Nesse ambiente os usuários não possuem acesso direto aos recursos das máquinas, mas dependem das plataformas constituídas por um conjunto de APIs, para o desenvolvimento de suas aplicações. Application Cloud Computing Application Cloud Computing é o ambiente onde o serviço disponibilizado corresponde à funcionalidade total ou parcial de um software específico. Nesse ambiente, geralmente os consumidores não têm acesso a quaisquer recursos computacionais e não têm a possibilidade de desenvolvimento de novos aplicativos dentro do ambiente. Os consumidores acessam e utilizam os serviços disponíveis como Web applications. Esse modelo demonstra bastante sinergia com o conceito de Software as a Service, com o requisito de que um Application Cloud Computing deve apresentar uma arquitetura escalável. End-User Cloud Computing End-User Cloud Computing é o modelo mais difundido atualmente na Internet e corresponde aos serviços com enfoque no usuário final. A maioria das aplicações disponíveis na Internet é considerada End-User Cloud Computing. O usuário está em constante contato com esse ambiente, como por exemplo, ao acessar o seu e-mail, utilizar planilhas eletrônicas online, procurar vôos em sites de viagens, etc. A diferença entre o End-User Cloud Computing e o Application Cloud Computing é o fato do segundo modelo ser focado em aplicações específicas, na maioria das vezes voltada para o mercado corporativo. 125 4.3.1.5.2 Níveis de abrangência Os Níveis de abrangência consideram as limitações em relação à utilização do ambiente de Cloud Computing. Os atuais Níveis de abrangência são: Open Cloud, Walled Garden Cloud e Internal Cloud. Open Cloud Open Cloud é considerado o nível mais abrangente e corresponde aos ambientes onde não há quaisquer limitações em relação ao nível de utilização dos serviços adquiridos. Nesse ambiente, o usuário tem a possibilidade de utilizar os recursos da melhor maneira sem ter que se preocupar com imposições impostas pelo provedor de serviço, como suporte somente a tecnologia X ou linguagem de programação Y. Os típicos exemplos desse nível são aqueles onde a plataforma é disponibilizada como commodity. Utility Cloud Computing é o tipo de serviço mais difundido nesse nível de abrangência e atualmente existem diversas plataformas disponibilizadas com essas características. Walled Garden Cloud Walled Garden Cloud corresponde ao ambiente de Cloud Computing limitado aos aplicativos e serviços do provedor. Nesse ambiente, ao contrário do Open Cloud, os usuários utilizam os recursos com imposições do provedor, como por exemplo, suporte somente as tecnologias embutidas no próprio ambiente de Computação em Nuvem. Internal Cloud Internal Cloud é o nível menos abrangente e corresponde ao ambiente de Cloud Computing interno de uma determinada instituição. Nesse ambiente, não existem consumidores externos e somente os usuários da instituição podem fazer proveito da plataforma. 126 4.3.2 Estudo de Caso – Open Utility Cloud Computing Um dos atuais modelos de Cloud Computing com mais evidência no ambiente corporativo visa à disponibilização de serviços de infra-estrutura computacional, envolvendo elementos como CPU, Memória e espaço de armazenamento. Enfim, toda a infra-estrutura computacional necessária para a execução de aplicações. Esse cenário é bastante favorável para atender demandas de curta duração de empresas que não desejam investir capital para aquisição de equipamentos. Os consumidores, ao optarem por utilizar esse tipo de serviço, desejam obter uma infra-estrutura computacional em nuvem que seja de fácil integração e utilização, sem que haja a necessidade de grandes modificações no seu próprio ambiente de TI. O nível de abrangência Open Cloud corresponde à total usabilidade dos recursos por parte dos consumidores. Ou seja, não deverá haver quaisquer restrições ao uso dos recursos disponibilizados em forma de serviço. Essa característica é fundamental para o sucesso desse modelo, pois consumidores que buscam o consumo de Cloud Computing como ambiente de infra-estrutura desejam executar suas aplicações sem ter que se preocupar com certas imposições ou limitações tecnológicas da plataforma. Esse modelo é uma grande oportunidade para o mercado corporativo, uma vez que as empresas buscam alternativas para contornar os altos investimentos em infra-estrutura computacional. Os equipamentos adquiridos muitas vezes apresentam capacidade excedente, ou seja, o proprietário não utiliza a total capacidade do produto mesmo tendo pago por isso. Outro grande desafio é a rápida desvalorização dos equipamentos eletrônicos com base na depreciação. Todas essas características são influências positivas para adoção de um ambiente computacional baseado no modelo de Open Utility Cloud Computing, onde os consumidores não precisam se preocupar com a operação da infra-estrutura e pagam apenas pelos serviços utilizados, modelo extremamente positivo para a diminuição do custo total de propriedade (TCO). Um dos grandes exemplos deste modelo de serviço disponível, baseado em Cloud Computing, é o Amazon Elastic Compute Cloud (Amazon EC2), que tem como objetivo fornecer recursos computacionais como serviços para clientes finais com um rápido e fácil provisionamento. 127 O objetivo desse estudo de caso é levantar informações sobre o modelo de negócios do Amazon EC2, suas vantagens competitivas, bem como as tendências de adoção deste serviço por inúmeras organizações no mercado corporativo. 4.3.2.1 Coleta de dados Todos os dados foram coletados a partir do portal do sistema do Amazon Elastic Compute Cloud (AMAZON, 2009), também denominado Amazon EC2. Visão Geral O serviço da Amazon, denominado Amazon Elastic Compute Cloud (Amazon EC2), provê um ambiente computacional virtual para que o consumidor possa executar aplicações baseadas nos sistemas operacionais Linux e Windows. Esse serviço permite ao consumidor total controle sobre os recursos computacionais, possibilitando que o usuário inicie e pare suas instâncias sempre que desejar. O Amazon EC2 também reduz para minutos o tempo necessário para obter novos servidores e iniciar suas instâncias, permitindo assim que os ambientes sejam escaláveis de acordo com mudanças nos requerimentos computacionais. (AMAZON, 2009). O formato de cobrança dos serviços baseado no conceito pay-as-you-go é uma das características fundamentais para o sucesso do Amazon EC2. Nesse modelo, o usuário é cobrado somente pela capacidade computacional realmente utilizada, ou seja, o consumidor não paga pela capacidade excedente ou pela capacidade ociosa dos seus recursos computacionais. O Amazon EC2 é atualmente um dos serviços de Open Utility Cloud mais aceito no mercado de Tecnologia da Informação, principalmente por oferecer um ambiente escalável, seguro e de fácil habilitação, características fundamentais para um ambiente de Computação em Nuvem. Devido ao crescente sucesso do EC2, a Amazon lançou uma família completa de serviços para integrar seu ambiente de Cloud Computing, como o Amazon Simple Storage Service e Amazon Simple DB. Para utilizar o Amazon EC2, os usuários podem administrar os seus sistemas operacionais, customizar suas aplicações e gerenciar as conexões de redes a partir de uma 128 interface web. Basta apenas criar uma imagem de máquina da Amazon (AMI) contendo suas aplicações, bibliotecas e dados, fazer o upload da mesma para o ambiente do EC2. Os usuários ainda têm a habilidade de escolher os tipos de sistemas operacionais que queiram utilizar, podem iniciar, monitorar e terminar quantas instâncias de sua AMI forem necessárias utilizando API's web ou uma variedade de ferramentas disponibilizadas pela própria Amazon. Serviços de destaque O Amazon EC2 fornece alguns serviços que apresentam uma maior vantagem competitiva e facilidades para seus usuários. • Elasticidade: permite que o usuário possa aumentar ou diminuir a capacidade de processamento do seu ambiente em apenas alguns minutos. Também é possível comissionar uma, centenas e até mesmo milhares de instâncias simultaneamente. • Flexibilidade: o usuário pode escolher por múltiplos tipos de instância (configuração de hardware), sistemas operacionais, softwares e pacotes. O Amazon EC2 permite selecionar a configuração de memória, CPU e armazenamento mais adequado para um determinado tipo de sistema operacional e aplicação. • Integração com outros Web Services da Amazon: trabalha em conjunto com o Amazon Simple Storage Service (S3), Amazon SimpleDB e Amazon Simple Queue Service (SQS) para prover um solução completa de computação. • Confiança: oferece um ambiente extremamente confiável onde instâncias substitutas podem rapidamente serem realocadas. O indicador de alta-disponibilidade do serviço especificado no SLA estima 99.95% de disponibilidade. • Segurança: provê serviços para configurar opções de firewall que controla o acesso de rede entre os grupos de instância. • Baixo custo: o serviço EC2 fornece os benefícios do ambiente de larga escala de computação da Amazon. O usuário paga uma taxa menor para consumir a mesma 129 capacidade se tivesse que adquirir o próprio equipamento. Tipos de i nstâncias O Amazon EC2 também fornece dois tipos principais de instâncias: Standard e HighCPU. A instância padrão (Standard) está de acordo com a maioria das aplicações existentes, e corresponde a três principais configurações: • Small: 1.7 GB de memória RAM, 1 unidade de computação EC2 21 (1 core virtual com 1 unidade de computação EC2), 160 GB de espaço para armazenamento e plataforma de 32-bit. • Large: 7.5 GB de memória RAM, 4 unidades de computação EC2 (2 cores virtuais com 2 unidades de computação EC2 cada), 850 GB de espaço para armazenamento e plataforma de 64-bit. • Extra-Large: 15 GB de memória RAM, 8 unidades de computação EC2 (4 cores virtuais com 2 unidades de computação EC2 cada), 1690 GB de espaço para armazenamento e plataforma de 64-bit. Já as instâncias de High-CPU têm mais recursos de CPU do que memória RAM, sendo indicada para uso de aplicações que requerem intensiva computação. Estão disponíveis em duas configurações principais: • Medium: 1.7 GB de memória RAM, 5 unidades de computação EC2 (2 cores virtuais com 2.5 unidades de computação EC2 cada), 350 GB de espaço para armazenamento e plataforma de 32-bit. • Extra-Large: 7GB de memória RAM, 20 unidades de computação EC2 (8 cores virtuais com 2.5 unidades de computação EC2 cada), 1690 GB de espaço para armazenamento e plataforma de 64-bit. 21 Unidade de computação EC2 – Uma unidade de computação EC2 corresponde a capacidade de CPU de um processador Opteron 1.01.2 GHz 2007 ou Xeon 2007. 130 Sistemas operacionais e softwares As imagens de máquinas da Amazon (AMIs) são configuradas com uma lista dos sistemas operacionais que mais cresceram em utilização nos últimos anos. A Tabela 7 traz os sistemas operacionais disponíveis no Amazon Elastic Compute Cloud: Sistema Operacional Red Hat Enterprise Linux OpenSolaris Fedora Windows Server 2003 openSuse Linux Gentoo Linux Oracle Enterprise Linux Ubuntu Linux Debian Tabela 7 – Sistemas Operacionais disponíveis no Amazon EC2 (AMAZON, 2009) A Amazon EC2 também disponibiliza alguns softwares que podem ser aplicados à AMIs, tanto pagas quanto livres. Uma amostra dos softwares disponíveis no Amazon EC2 é listado na Tabela 8: Databases Batch Processing Web Hosting IBM DB2 Hadoop Apache HTTP IBMInformix Dynamic Condor Server IIS/Asp.Net MySQL Enterprise Open MPI IBMLotus Web Content Management Oracle 11g IBMWebSphere Portal Server Microsoft SQLServer Standard 2005 Application Development Java Application Server JBoss Enterprise Application Platform IBMsMash Ruby on Rails Oracle WebLogic Server Tabela 8 – Softwares disponíveis no Amazon EC2 (AMAZON, 2009) Preços Os preços da Tabela 9 referem-se às instâncias on-demand, ou seja, uma configuração que possibilita que o usuário pague, por hora, pela capacidade de processamento, sem a necessidade de acordos de longo prazo. Essas características são positivas para promover a mudança de um cenário de altos custos, com planejamentos complexos, aquisições e manutenção de máquinas, por custos variáveis extremamente menores. Os preços abaixo são referentes a AMIs privadas e públicas para os sistemas operacionais Linux e Windows. 131 Padrão Small (Default) Large Extra Large High CPU Medium Extra Large Linux/UNIX $0.10 por hora $0.40 por hora $0.80 por hora Linux/UNIX $0.20 por hora $0.80 por hora Windows $0.125 por hora $0.50 por hora $1.00 por hora Windows $0.30 por hora $1.20 por hora Tabela 9 – Preços de instâncias On-demand do Amazon EC2 (AMAZON, 2009) Os preços especificados são cobrados por cada hora de consumo de cada instância, desde o momento que é iniciada até o seu término. O consumo referente ao período menor do que uma hora (por exemplo, 45 minutos) é cobrado como uma hora cheia. A Tabela 10 está populada com os preços referentes à transferência de dados na Internet: Dados de Entrada Todos os dados Dados de Saída Primeiros 10 TB por Mês Próximos 40 TB por mês Próximos 100 TB por mês Mais de 150 TB por mês Preço $0.10 por GB Preço $0.17 por GB $0.13 por GB $0.11 por GB $0.10 por GB Tabela 10 – Preço de transferência de dados na Internet através do Amazon EC2 (AMAZON, 2009) 4.3.2.2 Análise Os benefícios de Cloud Computing tornam-se notórios principalmente para as pequenas e médias empresas, as quais muitas vezes não dispõem de recursos para investimentos em tecnologias da informação, como aquisição de hardware e software. Com o conceito do Open Utility Cloud Computing, essas organizações podem optar por ter um parque tecnológico hospedado em um provedor de serviço, como a Amazon EC2, sendo 132 necessário pagar somente o utilizado, sem a necessidade de grandes projetos de implementação e sem custos de operação. A vantagem competitiva de Cloud Computing é o seu modelo pay-as-you-go, ou seja, os clientes pagam somente pelos recursos consumidos, situação que se mostra bastante interessante, uma vez que foi visto em seções anteriores que a utilização da capacidade de servidores geralmente circula em torno dos 20%. Outra característica bastante importante é a facilidade para o provisionamento de um novo serviço. Uma organização quando precisar de um ambiente computacional para o processamento de uma determinada aplicação, basta apenas contratar o serviço via Web (como é o caso do Amazon EC2) e em alguns minutos a capacidade computacional já estará disponível para a utilização. A questão de operação de uma infra-estrutura computacional é algo que também deve ser levado em consideração, principalmente em pequenas e médias empresas, as quais geralmente não têm uma organização de TI para cuidar de tarefas desse propósito. Pode-se exemplificar esse cenário citando uma organização de pequeno porte especializada em prestação de serviços de recursos humanos e que não tem uma estrutura para administrar e operar o seu ambiente de tecnologia da informação no padrão 24/7, ou seja, 24 horas durante todos os dias da semana. Mesmo que haja organização de TI na empresa, para garantir uma operação 24/7 dos seus serviços tecnológicos, seria necessário um maior investimento em ferramentas e pessoal, o que consequentemente acarretaria um maior custo. Entretanto, no modelo de Open Utility Cloud Computing o responsável pela operação do ambiente tecnológico e por garantir a alta disponibilidade é do próprio provedor do serviço. Nesse cenário, a empresa cliente é responsável apenas por utilizar e administrar suas próprias aplicações, mas não é necessário preocupar-se com os recursos físicos, problemas de hardware e também configurações de redes. Perante todas essas características do Open Utility Cloud Computing, nota-se que esse modelo é também atraente para atender demandas sazonais de empresas de todos os tamanhos. As organizações podem administrar o aumento da demanda em um determinado período, como festa de fim de ano, sem a necessidade de aquisição de novos equipamentos e ferramentas. É possível apenas contratar um serviço especializado no modelo Cloud Computing durante o tempo da demanda sazonal, pagar apenas pelo utilizado e finalizar o 133 contrato após esse período. Outro ponto de destaque é o fato que, no caso de aquisição de dispositivos computacionais, as organizações precisam arcar com a taxa de depreciação,22 a qual varia em torno de 20% ao ano em equipamentos de informática. Já com o modelo de serviços baseado em Cloud, o consumidor não é proprietário de nenhum equipamento, apenas utiliza a capacidade computacional como um serviço, sem a necessidade de se preocupar com a depreciação dos equipamentos, instalações físicas e suporte de hardware. 4.3.2.3 Resultados e contribuições A emergência do modelo de Cloud Computing tem acarretado benefícios no contexto econômico em dois principais modos – geração de novos negócios para empresas de tecnologias e também novas formas mais atraentes de investimentos em tecnologia por parte dos clientes. Conforme foi abordado no último estudo de caso, a Amazon é uma empresa de comercio eletrônico que tem um ambiente computacional de larga escala, o qual não estava sendo utilizado por completo para suprir a sua demanda. A empresa então identificou uma oportunidade de negócio através de Cloud Computing, como vender a capacidade excedente de seus data centers em forma de serviços na Internet. Hoje em dia esse serviço está ganhando evidência e a Amazon tem investido para ampliar seu parque tecnológico. É importante citar que outras empresas também estão seguindo a mesma linha e iniciando serviços baseados em todos os tipos de Cloud Computing. A Salesforce.com é uma organização que já tem uma marca consolidada em tecnologia de CRM, sendo que os seus principais serviços são providos através da Internet. Essa alternativa de disponibilização de software torna-se uma excelente oportunidade para empresas que necessitam de um ambiente de CRM de forma simples e ágil, sem a necessidade de comprar equipamentos, licenças e gastar com os projetos de implementação. Em alguns minutos, uma empresa pode ter acesso a uma ferramenta de CRM completa com o Salesforce.com através de um portal Web. É importante também ressaltar a tendência de Cloud Computing alinhada com a 22 Depreciação - Corresponde à diminuição do valor dos bens devido ao desgaste pelo uso, ação da natureza ou obsolescência normal. 134 globalização, facilitando ainda mais a quebra de barreiras geográficas. Os seus serviços são, na maioria das vezes, orientados à Internet, o que permite que os seus clientes não estejam apenas em sua abrangência local, podendo estar em qualquer país. Uma empresa do Brasil pode facilmente contratar os serviços da Amazon EC2 e alocar parte de sua infra-estrutura de TI nos domínios da empresa Americana, que por sinal poderia disponibilizar os seus serviços a partir de outros locais, como países de baixo custo, muito fáceis de encontrar na prática de offshoring23. Já do ponto de vista dos usuários de Cloud Computing, foi visto até o momento diversos benefícios da tecnologia em termos de redução de investimentos, tanto em relação à aquisição de equipamentos, licença, contratação de mão-de-obra e suporte. Esse cenário é mais evidente em países emergentes, como o Brasil, onde a tecnologia para ser adquirida e implementada pode ter a necessidade de importação de produtos. É esperada uma mudança na economia das tecnologias computacionais com o avanço de Cloud Computing, principalmente por esse modelo permitir a migração da entrega de recursos computacionais através de serviços, e não mais produtos. 23 Offshoring - Modelo de realocação de processos de negócio de um país para outro buscando vantagens competitivas, como redução do custo de mão-de-obra, matéria-prima e até mesmo impostos. 135 5. Considerações finais Nessa dissertação foi apresentada a importância da colaboração com foco na tecnologia de Grid Computing no contexto social, ambiental e econômico. Para isso, buscouse inicialmente um embasamento teórico nas novas formas de interações que emergiram a partir da constante evolução das tecnologias. Foi possível notar que a concepção da Internet teve um papel fundamental para influenciar a formação de redes sociais mais abrangentes, permitindo que pessoas pudessem estabelecer novos contatos independentemente de sua localização geográfica. O surgimento das redes sociais na Internet foi importante para que os indivíduos pudessem interagir de acordo com seus interesses, e não mais baseados em sua localização física. Nos dias de hoje, é mais fácil encontrar pessoas que se relacionam por compartilhar interesses através da Internet, mesmo estando em localidades diferentes, do que pessoas que moram em uma mesma vizinhança, influenciando assim a determinação das comunidades virtuais. As redes sociais, assim como as comunidades virtuais, são conceitos que favorecem o coletivo. Ou seja, permitem que as pessoas possam interagir e trabalhar por um objetivo comum, sem a necessidade de estarem juntas em um mesmo espaço e tempo. Isso fortaleceu o crescimento dos projetos colaborativos na Internet, ocasionando a criação de diversos conteúdos, serviços e produtos de domínio público. A evolução do desenvolvimento do software livre é um dos exemplos clássicos deste novo modelo produtivo, focado nos interesses de um grupo, sem a necessidade de serem guiados por orientações de mercado das grandes indústrias. É importante citar que as novas tecnologias, principalmente as emergentes da Internet, também possibilitam que qualquer indivíduo possa criar e divulgar seus conteúdos e produtos de forma rápida, simples e sem a necessidade de grandes investimentos. O surgimento do Youtube pode ser considerado um dos grandes exemplos de destaque na atualidade. Um usuário desse serviço não é simplesmente um consumidor, mas passa a ser um prossumidor. Ou seja, ao mesmo tempo em que ele pode assistir a um vídeo publicado por uma empresa, uma instituição ou um usuário, ele também pode criar seus vídeos e disponibilizá-los de forma com que todos os demais usuários possam assisti-lo, situação contrária ao sistema de televisão tradicional. 136 Os benefícios das tecnologias em contraste com as formas de interações impulsionadas pela Internet estimulam um novo modelo produtivo capaz de concorrer com as principais indústrias. Isso significa que a Internet possibilita que, a partir das redes sociais e também das comunidades virtuais, pessoas com diferentes competências e distribuídas por diversos países possam trabalhar em conjunto, com base nas ferramentas disponibilizadas pelas novas tecnologias, para a constituição de conteúdos, produtos e serviços com qualidade similar, e muitas vezes superior, aos promovidos pelas indústrias especializadas. Grid Computing é uma tecnologia que surgiu do coletivo, a partir da comunidade científica, e hoje já é adotado pelas grandes empresas como um produto promissor. Nessa dissertação foram analisados os seus benefícios em relação a três principais contextos: social, ambiental e econômico. No contexto social, é notório destacar a importância da relação da tecnologia com o conceito de colaboração. Determina-se um termo denominado 2-ways collaboration, defendendo que a colaboração é essencial para a formação de um ambiente computacional com capacidade de larga escala, principalmente no modelo baseado em computação voluntária, através da integração de máquinas ociosas de usuários espalhados por diversos países. Também devido a sua arquitetura descentralizada, a tecnologia promove um ambiente que estimula a colaboração, permitindo que pessoas compartilhem suas aplicações, dados e resultados. A tecnologia é de extrema importância também para a inclusão científica. O estudo de caso do projeto do World LHC Computing Grid (WLCG) do superacelerador de partículas demonstrou a necessidade por Grid Computing durante a realização de um dos projetos de pesquisa mais evidente na atualidade. O WLCG foi o responsável pela construção de um ambiente computacional de larga escala capaz de processar a grande quantidade de dados gerada pelo experimento do superacelerador de partículas. Também permitiu a inclusão de inúmeras instituições ao redor do mundo através do compartilhamento da capacidade computacional, aplicações, dados e resultados científicos. No contexto ambiental, destaca-se que Grid Computing tem um papel interessante em data centers de empresas e demais instituições para reduzir a quantidade total de servidores, e consequentemente diminuir o consumo de energia. No modelo de computação voluntária, é possível constatar que existe uma grande quantidade de computadores pessoais com capacidade excedente, a qual poderia estar ser utilizada para outros projetos e finalidades. 137 Grid Computing surge como uma alternativa para aplicar essa capacidade de processamento ociosa para outro fim, aumentando assim a sua utilização e tornando os recursos computacionais mais eficientes em relação ao consumo de energia. No contexto econômico, é possível destacar a crescente adoção de Grid Computing, por parte das grandes indústrias, como uma tecnologia com potencial significativo para a geração de novos negócios através do lançamento de produtos e serviços. Pode-se também identificar a sinergia da tecnologia de Grid Computing com o conceito de Cloud Computing, o qual está em crescente avanço e vem transformando o modelo de entrega de recursos tecnológicos como serviços, e não mais produtos. Este conceito apresenta uma abrangência interessante para a evolução de novos modelos de negócios, permitindo a criação de serviços que variam desde a entrega de capacidade de processamento, até modelos mais complexos de softwares e plataformas. Com base em todas as características analisadas da tecnologia, pode-se afirmar Grid Computing como uma tecnologia inovadora, capaz de alcançar um poder de computação extremamente elevado e também possibilitar formas de interações nunca antes observadas em nenhuma outra tecnologia. A sua arquitetura descentralizada permite uma abrangência global, capaz de integrar recursos pertencentes a diversos domínios e espaços geográficos sem grandes investimentos, características importantes para o trabalho colaborativo, a economia de recursos, o meio-ambiente e a ciência. 5.1 Tendências e trabalhos futuros Os mais notáveis casos de sucesso de Grid Computing ainda estão voltados para o meio científico. Entretanto, essa é uma tecnologia que apresenta grande potencial para ser aplicada em diversos contextos, podendo ser destacado a inclusão digital. Conforme analisado, a tecnologia de Grid Computing tem como principal objetivo estabelecer um ambiente computacional de larga escala com baixo custo. Essa característica pode-se tornar essencial para projetos nessa área, os quais podem necessitar de servidores com alta capacidade, que podem ter um custo elevado, e consequentemente impactar negativamente a realização de projetos. A questão de inclusão digital citada aqui não se remete simplesmente a viabilização de acesso à Web. Pelo contrário, abordam-se projetos que visam à produção de conteúdos e a utilização de tecnologias em larga escala para algum propósito definido, como a renderização 138 de um vídeo, por exemplo. Outra tendência que se pode observar é a integração da tecnologia com o conceito de mobilidade. Hoje em dia, os dispositivos móveis já avançaram em sua capacidade de processamento e de armazenamento. Entretanto, eles ainda podem apresentar ineficiências para determinadas finalidades. A integração de recursos móveis com um ambiente de Grid Computing, baseado no conceito de Cloud Computing, também aparenta ser uma alternativa para driblar essas limitações. Os usuários podem, a partir de seus dispositivos móveis, iniciar e monitorar suas aplicações que estão sendo executadas em um ambiente de Cloud Computing, o qual permite acesso ubíquo. A disponibilização de capacidade de processamento computacional disponibilizada por essa tecnologia em forma de serviços na Internet, encapsulados por uma Nuvem Computacional (Cloud Computing), também é uma tendência que está em ascensão na atualidade. Os usuários passarão a usar esse ambiente para implementar suas aplicações e armazenar seus dados, podendo acessá-los a partir de qualquer dispositivo, sem importar sua localização geográfica. Essa evolução já começa a ser observada nos dias de hoje, e muitos serviços, especialmente os disponibilizados pelo Google, tem embasamento nessa filosofia. O serviço chamado Google Docs é um exemplo dessa tendência: ele disponibiliza uma suíte de aplicativos de escritórios, permitindo que os usuários possam criar, editar e armazenar seus arquivos de texto, planilhas eletrônicas, apresentações, sem a necessidade de instalação de qualquer aplicativo em seus dispositivos, bastando apenas acessar o ambiente disponibilizado por essa nuvem computacional. Essas características também tem potencial para reformular o mercado de tecnologia, uma vez que plataformas e softwares são disponibilizados em forma de serviços na Internet. Como esse ambiente não possui limites geográficos, pode influenciar muito a prática de offshoring. Portanto, sugere-se abordar em trabalhos futuros o impacto de Cloud Computing no desenvolvimento sócio-econômico de países como Brasil, Rússia, Índia e China (BRICs). 139 REFERÊNCIAS BIBLIOGRÁFICAS AVIZIENIS, A.; LAPRIE, J.-C.; RANDELL, B. Fundamental Concepts of Dependability. Research Report No 1145, LAAS-CNRS, 2001. BAUMAN, Z. Comunidade: a busca por segurança no mundo atual. Rio de Janeiro: Jorge Zahar, 2003. BENKLER, Y. Sharing Nicely: On Shareable Goods and the Emergence of Sharing as a Modality of Economic Production. Yale Law Journal, p. 273-358, 2004. BENKLER, Y. The Wealth of Networks. 1.ed. Massachusetts: Yale University Press, 2006. BERMAN, F.; FOX, G.; HEY, T. Grid Computing: Making the Global Infrastructure a Reality. Wiley, 2003. BLACKBURN, M. Five Ways to Save Server Power: The Green Grid Technical Forum, 2008. BONDI, A. B. Characteristics of scalability and their impact on performance. In: 2nd INTERNATIONALl WORKSHOP ON SOFTWARE AND PERFORMANCE, 2002, Otawa. Anais, Otawa, 2000. BUYYA, R; YEO, C. S; VENUGOPAL, S. Market-Oriented Cloud Computing: Vision, Hype, and Reality for Delivering IT Services as Computing Utilities. IEEE Computer Society, 2008. CASTELLS, M. A sociedade em rede. 5.ed. São Paulo: Paz e Terra, 2001. CASTELLS, M. A Galáxia da Internet. Reflexões sobre a Internet, os Negócios e a Sociedade. Rio de Janeiro: Jorge Zahar Editor, 2003. CETIC. Pesquisa sobre o Uso das Tecnologias da Informação e da Comunicação no Brasil: A evolução da Internet no Brasil. Pesquisa TIC Domicílios 2008. Apresentação dos dados, 2009. CHETTY, M.; BUYYA, R. Weaving Computational Grids: How Analogous Are They with Electrical Grids?. Computing in Science and Engineering, v.4, n.4, p.61-71, 2002. COULOURIS, G. F.; DOLLIMORE, J.; KINDBERG, T. Distributed Systems: Concepts and Design. 3.ed. Addison-Wesley, 2002. DE KERCKHOVE, D. Connected Intelligence: The Arrival of the Web Society. Toronto: Somerville House, 1997. FISCHER, M.; LYNCH N.; PETERSON, M. Impossibility of Distributed Consensus with One Faulty Process. Journal of the ACM, v.32, n.2, p.374-382, 1985. 140 FOSTER, I. et al. The Physiology of the Grid: An Open Grid - Services Architecture for Distributed Systems Integration. Global Grid Forum, 2002. FOSTER, I. The grid: a new infrastructure for 21st century science. Physics Today, v.55, n.2, p.42-47, 2002a. FOSTER, I.; KESSELMAN, C.; TUECKE, S. The Anatomy of the Grid: Enabling Scalable Virtual Organizations. 7TH INTERNATIONAL EURO-PAR CONFERENCE MANCHESTER ON PARALLEL PROCESSING, 2001, Manchester. Anais, Londres: Springer-Verlag, 2001. GAREN, K. Software Portability: Weighing Options, Making Choices. The CPA Journal, v.77, n.11, p.10-12, 2007. GRAY, J. Distributed Computing Economics. Technical Report, Washignton, 2003. IEEE - Institute of Electrical and Electronics Engineers. IEEE Standard Computer Dictionary: A Compilation of IEEE Standard Computer Glossaries. Nova Iorque, 1990. GRIDTALK. LHC Grid Fest – Media Pack. In: SEMINÁRIO CERN LHC GRID, 2008, Genebra. Anais, Genebra, 2008. MUNGIOLI, A. S. R. UMA PROPOSTA DE TECNOLOGIA PARA VIDEOCONFERÊNCIA INTEGRANDO TECNOLOGIAS GRID. 2005. 121 f. Tese (Doutorado) - Departamento de Escola Politécnica, São Paulo:Universidade de São Paulo, São Paulo, 2005. JENKINS, H. Cultura da Convergência. 1.ed. São Paulo: Aleph, 2006. JOSEPH, E.; HUMPHREYS, J. Base One: Grid Computing for Database-Centric Applications. 2004. LEVY, P. Tecnologias da Inteligencia: O pensamento na era da Informática. São Paulo: Editora 34, 1990. ____________. A inteligência coletiva: por uma antropologia do ciberespaço. 2.ed. São Paulo: Loyola, 1999. MCGUINNESS, D. L. et al. Investigations into Trust for Collaborative Information Repositories: A Wikipedia Case Study. In: WWW2006, Edimburgo, 2006. Anais, 2006. RECUERO, R. C. Comunidades em Redes Sociais na Internet: Proposta de Tipologia baseada no Fotolog.com. 2006. 334 f. Tese (Doutorado) - Departamento de Faculdade de Biblioteconomia e Comunicação, Programa de Pós-graduação em Comunicação e Informação, Ufrgs, Porto Alegre, 2006. RHEINGOLD, H. Smart Mobs: The next social revolution. Cambridge, Mass.: Perseus Publishing, 2002. SILVA, F. C. C.; BLATTMANN, U. A colaboração e a interação na web 2.0. In: 141 CONGRESSO BRASILEIRO DE BIBLIOTECONOMIA, DOCUMENTAÇÃO E CIÊNCIA DA INFORMAÇÃO, 2007, Brasilia. Anais, Brasília, 2007. SUROWIECKI, J. A Sabedoria das Multidões. 1.ed. São Paulo:Record, 2006. TANENBAUM, A. S. Distributed Operating Systems. 1.ed. Nova Jersey: Prentice Hall, 1994. TANENBAUM, A. S.;STEEN, M. Distributed Systems Principles and Paradigms. Nova Jersey: Prentice Hall. 2002. WANG, L et al. Cloud Computing: a Perspective Study. RIT Digital Media Library, 2008 WEISS, A. Computing in the Clouds. Networker, v. 11, n. 4, p.61-71, 2007. WELLMAN, B. An Electronic Group is Virtually a Social Network. In: KIESLER, S. (org.) Culture of Internet. (p. 179-205) Hilsdale, NJ: Lawrence Erlbaum, 1997. YIN, R. K. Case study research: Design and Methods. 3. ed. Sage, 2002. 142 WEBGRAFIA ALLEN, P. (2006). Banks Take Their Places on the Grid. Disponível em: <http://www.wallstreetandtech.com/story/showArticle.jhtml?articleID=187203197&pgno=1>. Acesso em: 20 mai. 2009. ALMANAC. PCs In-Use Reached nearly 1.2B in 2008. Disponível em: <http://www.c-ia.com/pr0109.htm>. Acesso em: 20 mai. 2009. AMAZON. Elastic Compute Cloud. Disponível em: <http://aws.amazon.com/ec2/>. Acesso em: 18 mai. 2009. BAUWENS, M. (2002). Peer-to-peer: from technology to politics to a new civilization? Disponível em: <http://docs.google.com/View? docid=ajkpjkn5qh5j_427ftwgvh>. Acesso em: 19 abr. 2009. BOINC. Open-source software for volunteer computing and grid computing. Disponível em: <http://boinc.berkeley.edu/>. Acesso em: 15 dez. 2008. BUYYA, R. Grid Computing Info Centre (GRID Infoware), 2002. Disponível em <http:// www.gridcomputing.com>. Acesso em 11 nov. 2008. CARNEIRO, L. (2009). Crescimento do uso de computadores aumenta necessidade de economia de energia. Disponível em: <http://moglobo.globo.com/integra.asp? txtUrl=/economia/seubolso/mat/2009/05/16/crescimento-do-uso-de-computadores-aumentanecessidade-de-economia-de-energia-755895872.asp>. Acesso em: 21 mai. 2009. CLIFFORD, B. Gt4 monitoring and discovery, 2005. Disponível em: http://www.globus.org/toolkit/presentations/GlobusWorld_2005_Session_9c.pdf. Acesso em: 10 dez. 2006. CLIMATEPREDICTION. The world's largest climate forecasting experiment for the 21st century. Disponível em: <http://www.climateprediction.net/>. Acesso em: 18 mai. 2009. CORNELL. Computer Energy Usage Facts. Disponível em: <http://computing.fs.cornell.edu/fsit/Sustainable/fsit_facts.cfm>. Acesso em: 20 mai. 2009. CUNNINGHAM, W. Wiki design principles. Disponível em: <http://c2.com/cgi/wiki? WikiDesignPrinciples>. Acesso em: 28 jan. 2009. DE KERCKHOVE, D. Semiosfera: Entrevista com Derrick de Kerckhove. Disponível em:<http://www.eco.ufrj.br/semiosfera/anteriores/semiosfera01/perfil/entrevis/txtentre.htm#a utor>. Acesso em: 21 abr. 2009. DELANDA, M. (2001) Open-Source: A Movement in Search of a Philosophy. Princeton, Nova Jersey. Disponível em: http://www.cddc.vt.edu/host/delanda/pages/opensource.htm>. Acesso em: 20 abr. 2009. 143 EELA. E-Science grid facility for Europe and Latin America. Disponível em: <http://www.eu-eela.eu/>. Acesso em: 18 dez. 2008. EGEE. Enabling Grids for E-sciencE. Disponível em: <http://eu-egee.org/>. Acesso em: 18 dez. 2008. FOSTER, I. (2002b). What is the Grid? A Three Point Checklist. Disponível em <http://www-fp.mcs.anl.gov/~foster/Articles/WhatIsTheGrid.pdf>. Acesso em 11 nov. 2008. GARTNER. (2006). Gartner Urges IT and Business Leaders to Wake up to IT's Energy Crisis. Disponível em <https://gartner.com/it/page.jsp?id=496819>. Acesso em 10 mai. 2009. GARTNER. A relação entre Computação em nuvem e SaaS. Disponível em: <http://info.abril.com.br/corporate/gartner/a-relacao-entre-computacao-em-nuvem-esaas.shtml>. Acesso em: 06 jan. 2009a. GENTZSCH, W. Response To Ian Foster's "What Is The Grid?", 2002. Disponível em: <http://www.gridtoday.com/02/0805/100191.html>. Acesso em 05 dez. 2009 gLITE. Lightweight Middleware for Grid Computing. Disponível em: <http://glite.web.cern.ch/glite/>. Acesso em: 10 abr. 2009. GLOBUS. Dev.Globus Wiki. Disponível em: <http://dev.globus.org/wiki/Welcome>. Acesso em: 10 fev. 2009. GLOBUS. Globus Toolkit Homepage. Disponível em: <http://www.globus.org/>. Acesso em: 15 dez. 2008. GREENIT. Sustainable Information Technology. Disponível em: <http://www.greenit.net>. Acesso em: 10 mai. 2009. HARVARD. Http://cleanenergy.harvard.edu/. Disponível em: <http://cleanenergy.harvard.edu/>. Acesso em: 10 mai. 2009. HUGHES, D. (2005). BOINC: Berkeley Open Infrastructure for Network Computing. Disponível em:<www.comp.lancs.ac.uk/computing/research/mpg/reflection/papers/Middleware07112005 .ppt>. Acesso em:. 4 mai. 2009. IBM. New To Grid Computing. Disponível em: <http://www.ibm.com/developerworks/grid/newto/>. Acesso em: 08 dez. 2008. IWS. Internet World Stats: Usage and Population Statistics . Disponível em: <http://www.internetworldstats.com/stats.htm>. Acesso em: 12 mai. 2009. 144 JACOB, B. et al. IBM Redbook Enabling Applications for Grid Computing with Globus. Disponível em: <http://publibb.boulder.ibm.com/Redbooks.nsf/RedbookAbstracts/SG246936.html>. Acesso em: 08 dez. 2008. LHC. THE LARGE HADRON COLLIDER. Disponível em: <http://lhc.web.cern.ch/lhc/>. Acesso em: 29 abr. 2009. LHC@HOME. LHC@HOME Volunteer Computing. Disponível em: <http://lhcathome.cern.ch/>. Acesso em: 02 maio 2009. MAROWKA, A. Scalable Computing: Practice and Experience. V. 5 N. 1, 2002. Editorial. Disponível em: <http://www.scpe.org/vols/vol05/vol05no1editorial.html>. Acesso em: 12 nov. 2008. MAURER, A. (2009). Parabon Computation puts idle processing power to work. Disponível em: <http://www.techjournalsouth.com/news/article.html?item_id=6784>. Acesso em: 21 mai. 2009. OASIS. (2006). Reference Model for Service Oriented Architecture 1.0. Disponível em: <http://www.oasis-open.org/committees/download.php/19679/soa-rm-cs.pdf>. Acesso em: 10 jan. 2009. OSG. Open Science Grid. Disponível em: <http://www.opensciencegrid.org/>. Acesso em: 19 dez. 2008. OPENLAB. CERN openlab. Disponível em: <www.cern.ch/openlab>. Acesso em: 05 mai. 2009. O'REILLY, Tim. What Is Web 2.0. Disponível em: <http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/whatisweb20.html>. Acesso em: 10 jan. 2009 O'REILLY, Tim. Web 2.0 and Cloud Computing. Disponível em: <http://radar.oreilly.com/2008/10/web-20-and-cloud-computing.html>. Acesso em: 09 jan. 2009b. OURGRID. The OurGrid Community. Disponível em: <http://www.ourgrid.org>. Acesso em: 10 abr. 2009. REUTERS (2008). Computers in use pass 1 billion mark: Gartner. Disponível em: <http:// www.reuters.com/article/technologyNews/idUSL2324525420080623>. Acesso em: 20 mai. 2009. RHEINGOLD, H. (1996). A Comunidade Virtual. Lisboa: Gradiva. Disponível em: <http://www.rheingold.com/vc/book>. Acesso em 10 abr. 2009. 145 RHEINGOLD, H. (2000). Rethinking Virtual Communities. Disponível em: <http://www.rheingold.com/VirtualCommunity.html>. Acesso em 10 abr. 2009. RHEINGOLD, H. (2008). A Smart Mob Is Not Necessarily a Wise Mob. Disponível em: <http://english.ohmynews.com/ArticleView/article_view.asp? menu=&no=382983&rel_no=1&back_url>. Acesso em: 20 abr. 2009. SALESFORCE.COM. Salesforce CRM. Disponível em: <https://www.salesforce.com/>. Acesso em: 06 jan. 2009. SCHMID, P. (2005). Energy Consumption Measurements. tom's hardware web page. Disponível em: <http://www.tomshardware.com/reviews/intels-65-nm-process-breathes-firedouble-core-extreme-edition,1197-14.html>. Acesso em: 25 mai. 2009. SYS-CON. Twenty-One Experts Define Cloud Computing. Disponível em <http://cloudcomputing.sys-con.com/node/612375/print>. Acesso em: 05 jan. 2009. UNESP. (2009) São Paulo assegura participação no LHC. Disponível em: <http://www.unesp.br/int_noticia_imgesq.php?artigo=4108>. Acesso em: 2 mai. 2009. WCG. World Community Grid. Disponível em: <http://www.worldcommunitygrid.org/>. Acesso em: 20 abr. 2009. WLCG. Worldwide LHC Computing Grid. Disponível em:<http://lcg.web.cern.ch/LCG/>. Acesso em: 29 abr. 2009. WELLMAN, B et al. (1996). Computer Networks as Social Networks: Collaborative Work, Telework, and Virtual Community. Annu. Rev. Sociol. 22:213–38. Disponível em: <http://www.chass.utoronto.ca/~wellman/publications/computernetworks/computernetworks2 .pdf> Acesso em: 14 abr. 2009 WELLMAN, B.; GULIA, M. (1999). Net Surfers don't Ride Alone: Virtual Communities as Communities. Disponível em <http://chass.utoronto.ca/~wellman/publications/netsurfers/ netsurfers.pdf>. Acesso em: 16 abr. 2009 WELLMAN, B.; CHEN, W.; WEIZHEN, D. (2001). The Social Network Approach. Disponível em: <http://www.chass.utoronto.ca/~wellman/publications/guanxi/guanxi3a1.htm>. Acesso em: 16 abr. 2009. ZDNET. Five fearless predictions for SOA 2009. Disponível em: <http://blogs.zdnet.com/service-oriented/?p=1239>. Acesso em: 04 jan. 2009.