• Nenhum resultado encontrado

CPUs para processar, analisar e armazenar os dados produzidos pelo LHC. Além disto, os dados estarão disponíveis para 5000 cientistas espalhados por mais de 500 institutos de pesquisa no mundo que participam do experimento.

O middleware necessário para prover toda esta infraestrutura precisa, além de permitir acesso aos recursos do grid, controlar e monitorar sua performance. Ele precisa garantir um balanceamento de carga otimizado entre os diversos centros, para isto precisa monitorar os recursos disponíveis de cada um: os dados que estão sendo armazenados e a situação corrente das redes que conectam toda a camada. Além disso, há duas questões importantes relacionadas a segurança: autorização e autenticação, que precisam estar cobertas pelo middleware do grid. A infraes- trutura, portanto, utiliza vários projetos como: Globus (FOSTER, 2005), Condor (THAIN et al., 2005), Virtual Data Toolkit5 e o gLite Toolkit (BURKE et al., 2009)

pertencente ao projeto EGEE6 (pan-European Grid infrastructure).

2.3 Sistemas de Workow para Suporte a e-Science

2.3.1 Globus Toolkit

A ferramenta é um dos produtos que foram gerados através da iniciativa The Globus Alliance7 , um conglomerado de universidades, centros de pesquisa e pes-

quisadores que trabalham no desenvolvimento de ferramentas de código aberto para computação distribuída, grids arquiteturas orientadas à serviços e e-Science. Como exemplo das entidades envolvidas podemos citar: University of Chicago, University of Edinburgh, National Center for Supercomputing Applications (NCSA), Northern Illinois University, Royal Institute of Technology, UnivaUD e University of Southern California.

O Globus Toolkit (GT) é desenvolvido desde a década de 90 para dar suporte ao desenvolvimento de aplicações computacionais orientadas a serviços. Os com- ponentes principais, como qualquer framework, visam atender a requisitos como:

5http://vdt.cs.wisc.edu 6http://www.eu-egee.org/ 7http://www.globus.org/

2.3 Sistemas de Workow para Suporte a e-Science 14 segurança, acesso a determinado recurso, gerenciamento dos recursos, transferência de dados, descoberta de recursos dentre outros. Todo este framework é usado para desenvolver aplicações distribuídas e prover infraestruturas para grids computacio- nais em larga escala (FOSTER, 2005).

Dentre os diversos recursos podemos citar de maneira mais detalhada as seguintes capacidades do framework:

ˆ Um conjunto de implementações de serviços que incluem gerenciamento de re- cursos, transferência de dados, descoberta de serviços e conceitos relacionados; ˆ Ferramentas para construir novos serviços que podem ser desenvolvidos em

Java, C ou Python;

ˆ Uma infraestrutura de segurança poderosa e padronizada para autenticação e autorização dentro da infraestrutura;

ˆ APIs em diferentes linguagens e programas em linha de comando para acessar vários destes serviços;

ˆ Documentação detalhada destes vários componentes, interfaces e como eles podem ser usados no desenvolvimento de aplicações.

A gura 2.2 ilustra como a arquitetura da ferramenta é organizada para aten- der aos requisitos das aplicações desenvolvidas sobre o framework. Um primeiro conjunto de serviços implementados representa as funções que podemos chamar de estruturais, que compõem a base da infraestrutura do kit. Entre eles podemos destacar: GRAM (gerenciador de execução), GridFTP, RFT, OGSA-DAI (todos responsáveis pelo acesso e transporte dos dados), RLS, DRS (ambos responsáveis pelo gerenciamento de replicação), Index, Trigger, WebMDS (encarregados pelo mo- nitoramento e busca), MyProxy, Delegation, SimpleCA (gerenciamento de creden- ciamento) e GTCP (gerenciamento de instrumentos) (FOSTER, 2005). A maioria dos serviços citados foi desenvolvida em Java, mas alguns foram implementados em outras linguagens como C ou utilizam outros protocolos.

Três repositórios podem ser usados para hospedar os serviços desenvolvidos pelos usuários escritos em Java, Python e C respectivamente. Estes repositórios, além de

2.3 Sistemas de Workow para Suporte a e-Science 15

Figura 2.2: Arquitetura do Globus Toolkit (FOSTER, 2005)

hospedar os serviços, provêem implementações de segurança, gerenciamento, des- coberta, gerenciamento de estados e outros mecanismos frequentemente necessários na construção de serviços. Estes repositórios estendem ambientes já conhecidos de código livre que hospedam serviços para que possam oferecer novas funcionalidades: Web Service Resource Framework (WSRF) (FOSTER et al., 2005), WS-Notication e WS-Security (WELCH, 2004).

Além disto, um conjunto de bibliotecas disponíveis permite que aplicações cli- ente desenvolvidas em Java, C ou Python, invoquem operações dos serviços que se encontram nos repositórios do framework, sejam eles da própria infraestrutura ou dos serviços disponibilizados por outros usuários (FOSTER, 2005).

2.3.2 Taverna

Para contextualizar o desenvolvimento da ferramenta Taverna (OINN et al., 2004) é importante entender o domínio na qual ela está inserida. Basicamente, o Taverna é uma ferramenta para composição e execução de workows cientícos

2.3 Sistemas de Workow para Suporte a e-Science 16 relacionados à bioinformática.

Estes workows estão diretamente relacionados aos chamados experimentos in si- lico, que são experimentos realizados através do uso coordenado de ferramentas com- putacionais e repositórios de dados para que uma hipótese possa ser testada, derivar uma conclusão ou buscar por padrões (STEVENS et al., 2003). Grande parte destas ferramentas computacionais está sendo desenvolvida como serviços Web, portanto, a criação, o gerenciamento e execução destes workows cientícos tentam orquestrar o funcionamento destes serviços, com suas respectivas entradas e saídas de dados e ainda o acesso às bases de informações muitas vezes distribuídas e escritas em formatos diferentes (OINN et al., 2004).

A ferramenta foi desenvolvida a partir da necessidade identicada dentro do projeto myGrid, apresentado anteriormente, que é prover um middleware de serviços para dar suporte a experimentos in silico relacionados a bioinformática que utilizam grandes fontes de dados e recursos computacionais distribuídos.

O Taverna, portanto, provê uma interface gráca para a criação e execução de workows que representam experimentos in silico em bioinformática. Para a ferra- menta, o conceito de workow é um grafo de processadores, onde cada processador transforma um conjunto de dados de entrada em um novo conjunto de dados de saída (OINN et al., 2004). Todos estes workows são representados utilizando a linguagem Scu.

Scu (Simple conceptual unied ow language) é uma linguagem conceitual de alto nível, baseada em XML, onde cada passo de processamento de um workow representa uma tarefa atômica. Existem três entidades principais para a construção dos workows:

ˆ Processadores: Um processador é uma transformação que toma um conjunto de dados de entrada e produz um conjunto de dados de saída. Ele sempre pos- sui um nome que o identica e um conjunto de portas de entrada e saída. Além disto, durante a execução de um workow, cada processador possui um sta- tus corrente da sua execução: inicializando, aguardando, rodando, terminado, falho ou abortado;

2.4 O Futuro da e-Science 17