• Nenhum resultado encontrado

Capítulo 2 Fundamentação Teórica de Experimentos Científicos em Larga Escala

2.6 Nuvens de Computadores

2.6.1 Taxonomia para Computação em Nuvem em e-Science

Mesmo existindo uma enorme quantidade de artigos (científicos e comerciais) apresentando soluções de nuvem, os conceitos envolvidos com a computação em nuvem não são totalmente detalhados ou explicados. Considerando o crescente interesse neste assunto e a dificuldade em encontrar definições organizadas associadas a este paradigma, apresentamos nesta seção uma taxonomia para o campo de computação em nuvem a partir de uma perspectiva de e-Science (Oliveira et al. 2010a).

As taxonomias (Fuller et al. 2007) são uma estrutura de classificação especial onde os conceitos são organizados de forma hierárquica. A taxonomia de nuvem proposta fornece uma compreensão do domínio e visa ajudar os cientistas a entenderem este ambiente. A taxonomia considera uma visão de e-Science da computação em nuvem, apresentando algumas das suas principais facetas. Utilizando a taxonomia proposta (Figura 6) como um vocabulário comum pode-se facilitar o trabalho dos cientistas para encontrar dentre os ambientes existentes, aquele que mais lhe seja adequado.

A taxonomia proposta classifica as características do domínio de computação em nuvem baseado em diferentes aspectos: características arquiteturais, de modelo de negócio, de infraestrutura tecnológica, de privacidade, de normas, de precificação, de orientação e de acesso.

2.6.1.1 Modelo de Negócio

No aspecto Modelo de Negócio, de acordo com o modelo adotado, as abordagens de nuvem são geralmente classificadas em três categorias principais (NIST 2010): Software como Serviço (do inglês Software as a Service ou SaaS), Plataforma como Serviço (do inglês Platform as a Service ou PaaS) e Infraestrutura como Serviço (do inglês Infrastructure as a Service ou IaaS), criando um modelo chamado SPI (do inglês

Service-Platform Infrastructure) (Youseff et al. 2008, Zhu e Wang 2008).

Em SaaS o software é disponibilizado através da Web para o uso comercial ou livre como um serviço sob demanda. Em IaaS o provedor oferece uma infraestrutura computacional (como um cluster, por exemplo) para o usuário final através da Web. Em IaaS, o usuário final normalmente é responsável por configurar o ambiente para usar. Definimos PaaS como a entrega de uma plataforma de programação como um serviço. O processo de entrega de uma plataforma como serviços facilita a implantação de programas na nuvem.

2.6.1.2 Privacidade

De acordo com o aspecto de privacidade, podemos classificar em ambientes de nuvem em três categorias: privados, públicos e mistos (também chamados de híbridos, porém optamos por denominar mistos para não confundir com a arquitetura híbrida de nuvem (Zhang et al. 2009)). Nuvens públicas podem ser consideradas o mais tradicional de todos os tipos de nuvem no que diz respeito à privacidade. Neste tipo de nuvem os vários recursos são dinamicamente disponibilizados por meio da Internet, por meio de aplicações Web ou serviços Web (Alonso et al. 2010), para qualquer usuário. Nuvens privadas são ambientes que emulam a computação em nuvem em redes privadas, dentro de uma corporação ou uma instituição científica. Já um ambiente de nuvem mista é aquele que é composto por múltiplas nuvens, sejam elas públicas ou nuvens privadas. O conceito de nuvem mista ainda é um pouco nebuloso, pois não é definida a fronteira

entre os dois ambientes. Este aspecto das nuvens é importante para os experimentos científicos, dada a importância dos níveis de privacidade na pesquisa.

Figura 6 Taxonomia para o domínio da computação em nuvem adaptada de Oliveira et al. (2010a)

2.6.1.3 Precificação

Uma vez que as nuvens inserem um novo desafio para os cientistas que é lidar com os custos de um experimento (de modo que não se torne proibitivo), devemos classificar as abordagens de nuvem de acordo com o aspecto de precificação. A precificação em nuvens pode ser classificada em duas categorias: gratuita e pague-pelo-uso. A primeira categoria é a mais simples: a gratuita. A categoria gratuita é a aplicada quando o cientista está usando o seu ambiente próprio de nuvem, onde os recursos estão disponíveis gratuitamente para usuários autorizados. A categoria pague-pelo-uso (do inglês pay-per-use) é aquela onde o cientista paga um valor específico relacionado à sua utilização de recursos, seja ele grande ou pequeno. A categoria pague-pelo-uso pode ser aplicada em ambientes de nuvem comerciais e científicos. Os cientistas pagam pelo uso da nuvem da mesma forma que os usuários comerciais o fazem, como por exemplo, ocorre no ambiente de nuvem Nimbus (Wang et al. 2008).

Buy SmartDraw!- purchased copies print this document without a watermark . Visit www.smartdraw.com or call 1-800-768-3729.

2.6.1.4 Características Arquiteturais

Este aspecto classifica os ambientes de nuvem de acordo com a sua aderência (ou não) a um conjunto de características arquiteturais. Desta forma, de acordo com o aspecto de características arquiteturais, podemos elencar uma série de categorias de características desejáveis em um ambiente. Uma característica fundamental de uma nuvem é a heterogeneidade. Uma nuvem deve apoiar a agregação de hardware heterogêneo assim como vários tipos de recursos de software, assim como acontece com workflows científicos. A virtualização (Asosheh e Danesh 2008) também é uma característica fundamental para as nuvens. Por meio da virtualização, muitos usuários podem se beneficiar da mesma infraestrutura física usando instâncias independentes. A virtualização também aumenta a segurança (Jensen et al. 2009), uma vez que permite o isolamento de ambientes. Nas nuvens, cada usuário tem acesso exclusivo ao seu ambiente virtualizado. Outra característica arquitetural fundamental é a elasticidade. Aliada a virtualização, esta característica é a base para as propostas apresentadas nesta tese. O conceito de elasticidade é definido como o aumento (ou diminuição), sob demanda (e teoricamente sem limites), do número de máquinas virtuais em um ambiente de nuvem. Cada uma dessas características de arquitetura é padronizada por normas específicas.

2.6.1.5 Métodos de Acesso

Podemos classificar os ambientes de nuvem de acordo com o aspecto de métodos de acesso. Na maioria dos casos, podemos encontrar quatro tipos de categorias: Navegadores, Clientes Leves, Clientes Móveis e APIs (Pressman e Roger 2009). Os navegadores são a forma mais comum de acesso para serviços de nuvem. Muitas aplicações são acessíveis somente em navegadores Web. É intuitivo, já que quase todos os computadores tem pelo menos um browser instalado. Clientes leves e móveis são os tipos de acesso às nuvens de um desktop “burro” ou de tablets e telefones celulares. Tornou-se popular o acesso aos serviços através de telefones em vez de desktops. E, finalmente, a API é uma maneira fundamental para o acesso nuvens. A API é um artefato de acesso através de linguagens de programação como Java (Sun 2010) ou Python (Python 2010). Usando uma API, aplicações mais complexas podem usar a infraestrutura de nuvem em uma forma nativa. Uma vez que os experimentos científicos modelados como workflows científicos são especificados nos SGWfC, uma necessidade

importante é conectar os SWfMS às nuvens usando uma API, porque uma API pode ser facilmente invocada por componentes programáveis. Esta, aliás, foi a abordagem utilizada nesta tese e melhor explicada no Capítulo 5.

2.6.1.6 Padrões

Este aspecto classifica os ambientes de nuvem de acordo com os padrões ao qual ele adere. Dessa forma, é dividido em categorias de padrões encontrados na literatura para nuvens. Todos os padrões aqui apresentados são normatizados pelo W3C (do inglês

World Wide Web Consortium). O protocolo de mensagens e presença (do inglês Extensible XMPP) (XMPP 2010) é uma tecnologia aberta de comunicação em tempo

real, que é utilizada por uma ampla gama de aplicações. O Protocolo de Transferência de Hipertexto (do inglês Hyper Text Transfer Protocol ou HTTP) (HTTP 2010) é o padrão mais conhecido de comunicação e é intuitivo de usá-lo na nuvem, uma vez que é usado em aplicações Web básicas. O OAuth (OAuth 2010) é um protocolo de segurança para publicar e interagir com os dados protegidos. Além disso, é um protocolo aberto para permitir a autorização de utilização de uma API de uma forma simples. Por outro lado, o OpenID (OpenID 2010) é um padrão aberto e descentralizado para autenticação de usuários e controle de acesso, permitindo aos usuários registrar-se em muitos serviços com a mesma identidade digital, assim como já foi adotado em grades computacionais. Além disso, podemos encontrar o Atom (Atom 2010) que é um protocolo de licenciamento de conteúdo com base em HTTP para criação e atualização de recursos da Web.

A virtualização é um aspecto fundamental da computação em nuvem e necessita também de padrões. O OVF (OVF 2010) está sendo considerado um dos padrões de

facto para a virtualização. O OVF permite a distribuição flexível e segura de software e

dados, facilitando a mobilidade de máquinas virtuais. Como acontece em muitos sistemas Web, os dados são geralmente representados e transferidas utilizando XML (McLaughlin 2001) e JSON (JSON 2010).

2.6.1.7 Orientação

Um aspecto importante da computação em nuvem para experimentos científicos é a orientação, que pode ser centrada em tarefa ou centrada no usuário. A orientação de um ambiente de nuvem muda conforme o tipo de serviço disponibilizado. Por exemplo,

quando um software é disponibilizado na nuvem como um serviço, podemos considerá- lo como centrado em tarefa, porque é orientado para a tarefa que será executada. Em outras palavras, o cientista precisa transferir o controle para os proprietários do software em vez de ter o controle do mesmo. No entanto, quando a infraestrutura é fornecida como um serviço, o cientista tem o controle do processo. Os programas, aplicativos e dados são escolhidos pelo mesmo. Assim, a abordagem pode ser considerada como centrada no usuário. As abordagens propostas nesta tese são centradas no usuário, ou no nosso caso, o cientista, que deve ter controle do curso do experimento.