CAPTURA DE DADOS DE PROVENIÊNCIA DE WORKFLOWS CIENTÍFICOS EM NUVENS COMPUTACIONAIS Carlos Eduardo Paulino Silva Dissertação de Mestrado apresentada ao Programa de Pós-graduação em Engenharia de Sistemas e Computação, COPPE, da Universidade Federal do Rio de Janeiro, como parte dos requisitos necessários à obtenção do título de Mestre em Engenharia de Sistemas e Computação. Orientadora: Marta Lima de Queirós Mattoso Rio de Janeiro Setembro de 2011 CAPTURA DE DADOS DE PROVENIÊNCIA DE WORKFLOWS CIENTÍFICOS EM NUVENS COMPUTACIONAIS Carlos Eduardo Paulino Silva DISSERTAÇÃO SUBMETIDA AO CORPO DOCENTE DO INSTITUTO ALBERTO LUIZ COIMBRA DE PÓS-GRADUAÇÃO E PESQUISA DE ENGENHARIA (COPPE) DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE MESTRE EM CIÊNCIAS EM ENGENHARIA DE SISTEMAS E COMPUTAÇÃO. Examinada por: ________________________________________________ Profª. Marta Lima de Queirós Mattoso, D.Sc. ________________________________________________ Prof. Alexandre de Assis Bento Lima, D.Sc. ________________________________________________ Prof. Fabio Andre Machado Porto, D.Sc. RIO DE JANEIRO, RJ - BRASIL SETEMBRO DE 2011 Silva, Carlos Eduardo Paulino Captura de Dados de Proveniência de Workflows Científicos em Nuvens Computacionais / Carlos Eduardo Paulino Silva. – Rio de Janeiro: UFRJ/COPPE, 2011. IX, 47 p.: il.; 29,7 cm. Orientadora: Marta Lima de Queirós Mattoso Dissertação (mestrado) – UFRJ/ COPPE/ Programa de Engenharia de Sistemas e Computação, 2011. Referências Bibliográficas: p. 44-47. 1. Proveniência. 2. Workflows científicos. 3. Computação em nuvem. I. Mattoso, Marta Lima de Queirós. II. Universidade Federal do Rio de Janeiro, COPPE, Programa de Engenharia de Sistemas e Computação. III. Título. iii Resumo da Dissertação apresentada à COPPE/UFRJ como parte dos requisitos necessários para a obtenção do grau de Mestre em Ciências (M.Sc.) CAPTURA DE DADOS DE PROVENIÊNCIA DE WORKFLOWS CIENTÍFICOS EM NUVENS COMPUTACIONAIS Carlos Eduardo Paulino Silva Setembro/2011 Orientadora: Marta Lima de Queirós Mattoso Programa: Engenharia de Sistemas e Computação Workflows científicos são abstrações utilizadas na modelagem de experimentos científicos in silico. Alguns desses experimentos demandam recursos de alto desempenho como clusters e grades computacionais. O modelo computacional chamado de computação em nuvem vem sendo adotado pela comunidade científica. Para que um experimento possa ser considerado válido perante esta mesma comunidade ele precisa ser passível de reprodução, o que só é possível através do registro de metadados de proveniência. No entanto, as nuvens computacionais ainda são incipientes no que se refere à captura e armazenamento destes metadados. Essa dissertação apresenta uma arquitetura que apóia a captura e o armazenamento de metadados de proveniência de workflows científicos executados nos ambientes de nuvens computacionais. Ela é baseada na evolução da arquitetura Matrioshka. iv Abstract of Dissertation presented to COPPE/UFRJ as a partial fulfillment of the requirements for the degree of Master of Science (M.Sc.) CAPTURING PROVENANCE METADATA FROM CLOUD-BASED SCIENTIFIC WORKFLOWS Carlos Eduardo Paulino Silva September/2011 Advisor: Marta Lima de Queirós Mattoso Department: Computer Science Engineering Scientific workflow is an abstraction used to model in silico experiments. Some of these experiments demands high performance computing environments such as clusters and grids. A new computing model called cloud computing is being adopted by the scientific community to execute their scientific experiments. In addition, in order to consider a scientific experiment as scientific, it has to be reproducible, by querying provenance metadata. However, cloud environments are still incipient when we are capturing and storing provenance metadata. This dissertation proposes an approach to support capturing and storing provenance metadata from cloud-based scientific workflows. This approach is coupled to the Matrioshka architecture. v ÍNDICE Capítulo 1 - Introdução ................................................................................................. 1 1.1 Contexto e motivação........................................................................................ 1 1.2 Definição do problema ...................................................................................... 3 1.3 Objetivo ............................................................................................................ 4 1.4 Metodologia ...................................................................................................... 5 1.5 Estrutura da dissertação ..................................................................................... 5 Capítulo 2 - Workflows Científicos e Computação em nuvem ....................................... 6 2.1 Proveniência...................................................................................................... 6 2.2 Experimentos in silico ....................................................................................... 7 2.3 Workflows científicos ........................................................................................ 8 2.4 Sistemas de Gerência de Workflows Científicos................................................. 9 2.5 Computação em nuvem ................................................................................... 10 2.6 Proveniência de Experimentos Científicos em Nuvens Computacionais........... 11 2.7 Trabalhos relacionados .................................................................................... 12 2.8 Considerações finais........................................................................................ 14 Capítulo 3 - Captura de Dados de Proveniência de Workflows Científicos em Nuvens Computacionais .......................................................................................................... 16 3.1 Histórico ......................................................................................................... 16 3.2 Arquitetura ...................................................................................................... 17 3.2.1 Manifestos................................................................................................... 18 3.2.2 Dispatcher................................................................................................... 22 3.2.3 Execution Broker......................................................................................... 23 3.2.4 Provenance Broker...................................................................................... 24 3.2.5 Provenance Eavesdrop ................................................................................ 24 3.2.6 Repositório de Proveniência da Nuvem ....................................................... 25 3.3 Bibliotecas utilizadas na implementação.......................................................... 27 3.4 Considerações finais........................................................................................ 28 Capítulo 4 - Avaliação da arquitetura proposta............................................................ 29 4.1 OrthoSearch .................................................................................................... 29 4.2 Configuração do ambiente............................................................................... 31 4.3 Configuração do experimento.......................................................................... 32 vi 4.4 Consultas à proveniência ................................................................................. 35 Capítulo 5 - Conclusão................................................................................................ 41 5.1 Contribuições .................................................................................................. 41 5.2 Limitações do trabalho .................................................................................... 42 5.3 Trabalhos futuros ............................................................................................ 42 Referências Bibliográficas .......................................................................................... 44 vii LISTA DE FIGURAS Figura 1. Arquitetura Matrioshka adaptada para a captura de proveniência de workflows científicos executados no ambiente de nuvens (PAULINO et al., 2009, 2010, 2011) ............................................................................................................................ 18 Figura 2. Estrutura do arquivo de manifesto de configuração da nuvem. SetupManifest.xml ............................................................................................... 19 Figura 3. Estrutura do arquivo de manifesto com a especificação dos dados do experimento. ExperimentManifest.xml................................................................. 20 Figura 4. Estrutura do arquivo de manifesto com a especificação dos dados da atividade a ser executada no ambiente de nuvem. ActivityManifest.xml............................... 21 Figura 5. Substituição da atividade executada localmente pelo Dispatcher no VisTrails ............................................................................................................................ 23 Figura 6. Modelo de dados de proveniência para o ambiente de nuvens....................... 26 Figura 7. Workflow OrthoSearch (CRUZ et al., 2008b) ............................................... 30 Figura 8. Workflow utilizado para avaliação da arquitetura proposta............................ 33 viii LISTA DE QUADROS Quadro 1. Configuração de hardware e preços de utilização dos tipos de instâncias disponíveis .......................................................................................................... 32 Quadro 2. Resultado da consulta de proveniência (i) ................................................... 36 Quadro 3. Resultado da consulta de proveniência (ii) .................................................. 36 Quadro 4. Resultado da consulta de proveniência (iii) ................................................. 37 Quadro 5. Resultado da consulta de proveniência (iv) ................................................. 38 Quadro 6. Resultado da consulta de proveniência (v) .................................................. 39 Quadro 7. Resultado da consulta de proveniência (vi) ................................................. 40 ix Capítulo 1 - Introdução Este capítulo tem como objetivo apresentar a contextualização e motivação para criação de uma arquitetura para a captura de metadados de proveniência dos workflows científicos executados em nuvens computacionais, além de delimitar qual é o escopo do problema tratado pela arquitetura proposta e definir o objetivo a ser alcançado pela mesma. Será apresentada também a metodologia utilizada para alcançar os objetivos definidos e as contribuições da dissertação, antecipando alguns resultados para que seja possível evidenciar as principais diferenças dessa arquitetura em relação a outras. 1.1 Contexto e motivação A computação em nuvem (VAQUERO et al., 2009) vem se firmando como um novo modelo de computação onde componentes de software e hardware são desenvolvidos como serviços baseados na Web e disponibilizados para uma gama (teoricamente infinita) de usuários. Uma grande vantagem disponibilizada pelas nuvens é a elasticidade de recursos oferecida (KIM et al., 2009, NAPPER e BIENTINESI, 2009, VAQUERO et al., 2009), uma vez que caso um usuário precise de mais recursos computacionais, basta que o mesmo solicite ao provedor da nuvem e os recursos serão automaticamente disponibilizados. Devido a estas vantagens, a computação em nuvem se mostra atrativa em diversos domínios do conhecimento, inclusive no científico (HOFFA et al., 2008, MATSUNAGA et al., 2008, SIMMHAN et al., 2008, WANG et al., 2008). Grande parte dos experimentos científicos elaborados para comprovar ou refutar uma determinada hipótese são baseados em infraestrutura computacional e simulações (TAYLOR et al., 2007b, MATTOSO et al., 2010). Esses experimentos são chamados de experimentos in silico (TRAVASSOS e BARROS, 2003), nos quais os cientistas normalmente utilizam um conjunto de programas para executar uma determinada atividade. Esses programas normalmente são encadeados formando um fluxo coerente onde a saída de um programa é a entrada do próximo no fluxo de execução. A este encadeamento de programas que representa o experimento que está sendo executado dáse o nome de Workflow Científico (TAYLOR et al., 2007b, MATTOSO et al., 2010). 1 Os workflows científicos podem ser gerenciados de maneira ad-hoc, mas são mais adequadamente manipulados por complexos mecanismos chamados Sistemas de Gerência de Workflows Científicos (SGWfC), que oferecem o arcabouço necessário para executar, definir e monitorar as execuções dos workflows científicos tanto local quanto remotamente. Existem diversos SGWfC disponíveis para utilização (TAYLOR et al., 2007b), como por exemplo: Kepler (ALTINTAS et al., 2004), VisTrails (CALLAHAN et al., 2006), Taverna (HULL et al., 2006), Pegasus (DEELMAN et al., 2007), Triana (TAYLOR et al., 2007a), Swift (ZHAO et al., 2007), cada um deles com características próprias e vantagens e desvantagens. Experimentos científicos in silico em larga escala podem ser modelados como workflows científicos. Esses experimentos são caracterizados pela composição e execução de diversas variações de workflows (MATTOSO et al., 2010). Estas variações em execuções incluem parâmetros, dados de entrada e até os programas que compõem o workflow. Nos experimentos em larga escala, estas variações podem ocorrer utilizando uma imensa quantidade de dados ou repetições, as quais necessitam de ambientes de processamento de alto desempenho (PAD) para que produzam resultados em um tempo aceitável (ZHAO et al., 2008). Desta forma, um workflow pode necessitar ser executado em ambientes distribuídos e muitas vezes heterogêneos. Porém, a execução e a definição do experimento não são os únicos aspectos importantes na experimentação científica. Para que um experimento não seja refutado pela comunidade científica, o mesmo deve ser passível de reprodução sob as mesmas condições em outras instalações por outros grupos de pesquisadores utilizando o método originalmente utilizado. Desta forma, toda a informação relacionada ao experimento, tanto sua definição quanto os dados inicialmente utilizados e gerados durante a sua execução, são fundamentais para que o experimento seja considerado consistente e válido. A este tipo de informação, damos o nome de proveniência (BUNEMAN et al., 2001, DAVIDSON e FREIRE, 2008, FREIRE et al., 2008). A captura dos metadados de proveniência nos ambientes distribuídos, chamada de proveniência distribuída, ainda é uma questão em aberto. Mesmo dentre os SGWfC concebidos para operar em ambientes distribuídos, como o Swift, Pegasus e o Triana, existem ainda limitações para a captura de proveniência distribuída, seja ela em clusters ou grades computacionais (FOSTER e KESSELMAN, 2004). No ambiente de nuvens computacionais, capturar a proveniência distribuída de um workflow também é um desafio ainda em aberto (OLIVEIRA et al., 2010a). Portanto, a adoção de nuvens 2 computacionais para a execução de workflows sem o apoio de mecanismos para a captura da proveniência distribuída pode representar uma barreira para a validade do experimento como um todo pela comunidade científica. A principal dificuldade da captura e armazenamento de proveniência na nuvem se dá devido à heterogeneidade do ambiente, pelo fato de existir vários tipos possíveis de configurações de hardware e software oferecidos pelos recursos da nuvem, e à mutabilidade, visto que esses recursos são alocados sob demanda. Atualmente, existem algumas propostas na literatura para capturar e gerenciar proveniência em ambientes distribuídos. Grande parte deles é focada em ambientes como clusters e grades computacionais. Um exemplo destes mecanismos é a Matrioshka (CRUZ et al., 2008a). A Matrioshka tem como objetivo prover uma série de serviços que podem ser acoplados em ambientes distribuídos, como clusters e grades computacionais. O principal diferencial da Matrioshka está em seu apoio à consultas semânticas por meio de relacionamentos entre os metadados de proveniência e ontologias (CRUZ, 2011). Entretanto, a Matrioshka não foi originalmente projetada para operar em ambientes de nuvens computacionais e, portanto, seus serviços precisam ser estendidos para que possam apoiar esse ambiente. Esta dissertação propõe uma evolução da arquitetura da Matrioshka para que a mesma possa ser utilizada na captura de proveniência de workflows científicos executados em nuvens computacionais e consiga manter as vantagens semânticas da Matrioshka. Assim, um dos objetivos está em responder algumas possíveis questões que podem ser realizadas sobre um experimento executado nesse ambiente, como por exemplo, “Quais os nomes e as versões dos programas utilizados para executar as atividades do workflow X?”, “Quais instâncias do ambiente de nuvem estão disponíveis para executar o workflow X?”, “Qual a configuração da instância utilizada para executar a atividade Y do workflow X?”, etc. Para isso, serão realizadas algumas extensões nos serviços da Matrioshka para atender as especificidades dos ambientes de nuvens computacionais. 1.2 Definição do problema Atualmente os experimentos científicos em larga escala do tipo in silico (TRAVASSOS e BARROS, 2003) requerem cada vez mais recursos computacionais que podem ser locais ou distribuídos. Com a adoção do modelo de computação em 3 nuvem, novos desafios foram impostos ao cientista, como por exemplo, a migração dos experimentos científicos para esse novo ambiente, o que faz com que novas soluções computacionais sejam necessárias. Um dos maiores problemas enfrentados pelos cientistas durante essa migração é a coleta dos metadados de proveniência do experimento cientifico. Essa coleta de metadados, conhecida também como proveniência de dados, ainda é uma questão em aberto neste novo paradigma de computação (OLIVEIRA et al., 2010a). A proveniência, também chamada de linhagem ou pedigree, é um registro digital acerca das informações sobre os dados de entrada e saída e processos associados às etapas dos workflows científicos e ao ambiente utilizado para executá-lo. A proveniência é utilizada para permitir a repetibilidade/reprodutibilidade e oferecer dados para o melhor entendimento sobre os experimentos científicos por outros cientistas. Ao longo do desenvolvimento dessa dissertação surgiram abordagens para execução de workflows científicos em ambientes de nuvem como o Pegasus (KIM et al., 2008) e o SciCumulus (OLIVEIRA et al., 2010b, 2011a, 2011b), porém, essas abordagens não possuem ligação de metadados de proveniência com dados ontológicos, o que limita o escopo de consultas sobre os metadados de proveniência. O problema relevante abordado nessa dissertação é como capturar a proveniência distribuída em ambientes de nuvem considerando os aspectos particulares desses ambientes, como a elasticidade de recursos, instâncias virtualizadas, heterogeneidade entre as instâncias com relação a hardwares e softwares, etc. e ao mesmo tempo permitir um relacionamento com ontologias. 1.3 Objetivo Desenvolver um conjunto de serviços baseados em arquitetura de código aberto e de software livre que serão acoplados a SGWfC existentes (ou máquinas de execução de workflows científicos) e serão utilizados para auxiliar a coleta de metadados de proveniência, desenvolvendo um repositório de proveniência das atividades do workflow científico executadas na nuvem. Além disso, criar um vínculo com os metadados de proveniência local armazenados pelo SGWfC, caso o mesmo realize a captura desses metadados. Esse conjunto de serviços é uma extensão da proposta original da Matrioshka e foram adaptados de acordo com as especificidades do ambiente de nuvem. 4 1.4 Metodologia Para alcançar o objetivo proposto por essa dissertação, foi realizada uma revisão da literatura que nos permitiu chegar a conclusões que apontaram para a extensão das funções dos serviços da Matrioshka para a captura de metadados de proveniência nos ambientes de nuvem, além da criação de um novo modelo de dados em que seja possível armazenar esses metadados. Posteriormente, foi projetada uma adaptação na arquitetura da Matrioshka, a qual foi sendo refinada através da criação de protótipos dos serviços e do modelo de dados a ser utilizado para atender às especificidades do ambiente de nuvem, gerando assim, após a realização de vários testes, componentes de extensão para a arquitetura da Matrioshka voltada para o ambiente de nuvem (PAULINO et al., 2009, 2010, 2011). Nessa dissertação também utilizamos o conceito de estudo de caso para que se pudesse verificar o funcionamento dos componentes da extensão da arquitetura proposta utilizando o workflow OrthoSearch (CRUZ et al., 2008b), o qual foi escolhido por ser projetado para ser executado em ambientes distribuídos devido à imensa quantidade de dados e processamento a ser realizado para gerar os resultados esperados. Esse workflow é um experimento real de bioinformática utilizado pelo consórcio BiowebDB (www.biowebdb.org). 1.5 Estrutura da dissertação Essa dissertação está organizada em quatro capítulos além da introdução. O Capítulo 2 apresenta uma breve definição dos principais conceitos utilizados nessa dissertação e, portanto, devem ser definidos, como por exemplo, experimentos científicos, workflows científicos, SGWfC, computação em nuvem e proveniência de dados, além de apresentar alguns trabalhos relacionados com a execução de workflows no ambiente de nuvens. O Capítulo 3 apresenta a arquitetura proposta para a captura de proveniência de workflows científicos executados no ambiente de nuvens. O Capítulo 4 explica como foi realizado o estudo de caso para validar a arquitetura desenvolvida e apresenta os resultados obtidos. E finalmente, no Capítulo 5 é apresentada a conclusão da dissertação, evidenciando as principais contribuições e limitações da mesma, além de relacionar possíveis trabalhos futuros que podem ser desenvolvidos a partir dos resultados apresentados nessa dissertação. 5 Capítulo 2 - Workflows Científicos e Computação em nuvem Esse capítulo tem como objetivo definir alguns conceitos que são utilizados nessa dissertação, como experimentos científicos in silico, workflows científicos e sistemas de gerência de workflows científicos (SGWfC), dentre os quais destacaremos o VisTrails, Kepler, Taverna, Pegasus, Triana e o Swift. Levando em consideração as principais características desses SGWfC um deles foi selecionado para ser usado no estudo de caso dessa dissertação. Além dos conceitos mencionados, também definimos com mais detalhes proveniência e sua utilidade em experimentos científicos, computação em nuvem e os principais trabalhos relacionados com a execução de workflows científicos em ambientes de nuvens. 2.1 Proveniência No domínio científico é possível encontrar diferentes formas de proveniência com os mais diversos propósitos. Por exemplo, publicações são comumente utilizadas para representar a proveniência de dados e resultados de um experimento. GOBLE et al. (2003) resumem as diversas funcionalidades para as informações de proveniência da seguinte maneira: 1 Qualidade dos Dados: informações de proveniência podem ser utilizadas para estimar a qualidade e a confiabilidade dos dados baseando-se na origem dos dados e suas transformações. 2 Auditoria dos Caminhos: os dados de proveniência podem traçar rotas dos dados, determinar a utilização de recursos e detectar erros na geração de dados. 3 Controle de replicação: informações de proveniência detalhadas permitem a derivação de dados e ajudam a padronizar a replicação. 4 Atribuição: mantém controle sobre as informações do dono do experimento e seus dados. Também permite a citação e atribuem responsabilidades em caso de dados errados. 5 Informacional: permite realizar consultas baseadas nos metadados de origem para a descoberta de dados, além de prover o contexto necessário para interpretar os dados. 6 A proveniência pode ser classificada em diversas formas (FREIRE et al., 2008), como por exemplo, as proveniências prospectiva, retrospectiva e analítica. A primeira diz respeito ao processo de definição do workflow científico, a segunda está relacionada com a sua execução e finalmente a terceira com a análise de dados do experimento. Essa dissertação se limita ao estudo da primeira e segunda forma. Para armazenar a proveniência retrospectiva podem ser utilizados modelos de dados que utilizem como base a mais recente recomendação do Open Provenance Model (OPM) (MOREAU et al., 2008), versão 1.1, o qual propõe uma representação genérica de proveniência. O OPM expressa as relações causais entre Processos, Agentes, Artefatos e Papéis existentes em workflows. Uma das principais vantagens do OPM é facilitar a interoperabilidade de metadados de proveniência oriundos de ambientes heterogêneos independentemente da tecnologia e dos SGWfC. Por esse motivo o OPM vem sendo utilizado por diversos SGWfC (FREIRE et al., 2008). 2.2 Experimentos in silico Um experimento científico pode ser definido como “um teste sob condições controladas que é realizado para demonstrar um fato conhecido, examinar a validade de uma hipótese ou determinar a eficácia de algo que ainda não foi analisado” (SOANES e STEVENSON, 2003). Também pode ser definido como “uma situação, criada em laboratório, que tem como objetivo observar, sob condições controladas, o fenômeno de interesse” (JARRARD, 2001). Entretanto, nas últimas décadas, um novo tipo de experimento foi criado, o experimento in silico (TRAVASSOS e BARROS, 2003). Os experimentos in silico são aqueles em que tanto os objetos de estudo quanto os ambientes são simulados através de modelos computacionais. A utilização dos experimentos in silico vem aumentando muito nos últimos anos principalmente devido ao surgimento dos experimentos científicos em larga escala, os quais devido ao grande volume de dados a ser processado pode levar dias ou até meses para serem executados, por isso, precisam de um ambiente de processamento de alto desempenho (PAD). Os ambientes de PAD, tais como clusters, grades computacionais e mais recentemente, as nuvens computacionais, surgem como soluções para atender a demanda de recursos computacionais requerida pelos experimentos científicos em larga 7 escala. Dentre esses ambientes, as nuvens computacionais se destacam atualmente, principalmente pela facilidade de configuração e devido a uma de suas principais características, a elasticidade, o que garante que cientistas sem conhecimentos avançados de computação possam configurar seus próprios ambientes de alto desempenho, algo pouco provável de acontecer no caso de clusters e grades computacionais, além de dimensionar seu ambiente de acordo com a demanda requerida de forma específica por cada experimento, o que evita o desperdício de recursos computacionais. 2.3 Workflows científicos De acordo com o Workflow Management Coalition (WFMC, 1997, BARGA e GANNON, 2007), um workflow pode ser definido como “a automação de um processo de negócio, por completo ou em parte, no qual os documentos, informações e tarefas são passadas de um participante para outro a fim de que uma ação seja tomada de acordo com uma série de regras procedimentais”. Um workflow define a ordem de invocação de atividades e as condições sob as quais devem ser invocadas e sincronizadas. Esta definição foi inicialmente elaborada para definir workflows de negócio, entretanto, pode ser expandida para o domínio científico (TAYLOR et al., 2007b). Os experimentos in silico, são representados por meio do encadeamento de atividades, onde cada atividade é mapeada para uma aplicação, formando um fluxo coerente de informações e controles, onde os dados de saída de um programa são entradas do próximo programa no fluxo. A esse encadeamento de atividades dá-se o nome de workflow científico. Experimentos científicos que são modelados como workflows científicos também devem seguir um método científico específico (JARRARD, 2001) e são caracterizados pela definição e execução de diversas variações de workflows no contexto do mesmo experimento (MATTOSO et al., 2010). Estas variações incluem parâmetros, dados de entrada e até os programas que compõem o workflow. Workflows científicos se assemelham em vários pontos aos workflows de negócio. Entretanto, existem algumas diferenças entre workflows científicos e workflows de negócio que valem a pena serem ressaltadas. As principais são o grande volume de 8 dados que pode ser manipulado em um workflow científico, cujo tamanho é muito variável, e a heterogeneidade de tipos e fontes desses dados. 2.4 Sistemas de Gerência de Workflows Científicos Os workflows científicos podem ser gerenciados de maneira ad-hoc, mas são mais adequadamente manipulados por mecanismos chamados Sistemas de Gerência de Workflows Científicos (SGWfC), que oferecem o arcabouço necessário para executar, definir e monitorar as execuções dos workflows científicos tanto local quanto remotamente. Geralmente os SGWfC oferecem aos usuários interfaces gráficas que visam facilitar não somente a definição dos workflows, como também sua execução e seu respectivo monitoramento. Alguns desses SGWfC oferecem também apoio à coleta de proveniência dos dados e atividades utilizados durante a definição e execução dos workflows, além de apoiar também a análise desses metadados de proveniência coletados. Existem diversos SGWfC disponíveis para utilização (TAYLOR et al., 2007b), como por exemplo: Kepler (ALTINTAS et al., 2004), VisTrails (CALLAHAN et al., 2006) e o Taverna (HULL et al., 2006), concebidos para operar em ambientes centralizados, e os SGWfC Pegasus (DEELMAN et al., 2007) , Triana (TAYLOR et al., 2007a) e Swift (ZHAO et al., 2007), concebidos para operar em ambientes distribuídos. Com relação ao apoio a proveniência, o Kepler possui alguns recursos como os logs, mas os mesmos não foram projetados com a finalidade de serem usados como metadados de proveniência. Swift, Triana e Pegasus apresentam mecanismos projetados especialmente para captura da proveniência da execução distribuída dos workflows. O Taverna e o VisTrails possuem de forma nativa além da coleta dos metadados de proveniência gerados durante a definição e execução dos workflows, o seu respectivo gerenciamento, facilitando assim a consulta e análise da proveniência coletada. O VisTrails possui um modelo de dados no formato XML que é usado para armazenar os metadados de proveniência coletados, além do formato relacional, o que facilita a realização de consultas a esses metadados usando a linguagem SQL e o relacionamento com outras bases de dados relacionais. Um diferencial do VisTrails é capturar a proveniência prospectiva e retrospectiva (FREIRE et al., 2008). Devido a essas características podemos concluir que o SGWfC VisTrails é o mais indicado para ser usado no estudo de caso dessa dissertação, por oferecer de forma nativa, apoio ao 9 gerenciamento de proveniência, com mais semântica que os demais e um modelo de dados relacional para armazenar os metadados coletados a partir do ambiente local de execução do workflow. Entretanto, é importante destacar uma característica comum a grande maioria dos SGWfC mencionados acima, nenhum possui apoio nativo ao gerenciamento de metadados de proveniência coletados a partir da execução dos workflows científicos em ambiente de nuvens, nem mesmo o Swift, concebido para operar em ambientes distribuídos. A ausência desse apoio dificulta em muito a execução de workflows científicos no ambiente de nuvens. 2.5 Computação em nuvem Nos últimos anos a computação em nuvem emergiu (VAQUERO et al., 2009) como um novo paradigma computacional onde serviços baseados na Web possibilitaram que os mais diferentes tipos de usuários pudessem obter uma grande variedade de funcionalidades, como infraestrutura, software e hardware, sem que os usuários tenham que lidar com detalhes de desenvolvimento e configuração. Esse novo paradigma computacional também permite a migração de programas e dados, que são parte fundamental quando modelamos experimentos científicos utilizando a abstração de workflows científicos, de ambientes locais para as nuvens computacionais. FOSTER et al. (2008) examinaram e detalharam as diferenças principais entre grades computacionais e nuvens computacionais, oferecendo assim uma fundamentação teórica para o entendimento e a categorização dos ambientes de nuvem. Esses autores definiram computação em nuvem como “um modelo de computação distribuída em larga escala que é composto por recursos virtualizáveis, dinamicamente escaláveis e que são disponibilizados para os usuários externos através da Web”. Muitas aplicações estão sendo adaptadas para nuvens, como por exemplo, redes sociais, portais de jogos, aplicações para negócios, workflows científicos (VAQUERO et al., 2009), entre outras. Os serviços mais comuns oferecidos por um ambiente de computação em nuvem e que são importantes para o apoio à execução de workflows científicos seguem os seguintes modelos de computação: 1 SaaS: Software como um Serviço - O software é hospedado na nuvem como um serviço e acessado pelos usuários de acordo com a sua necessidade. Com isso a 10 instalação no computador local do usuário não é mais necessária e os custos com a licença, manutenção e atualização do software são reduzidos à zero. 2 DaaS: Dados como um Serviço - Dados de vários formatos e de diversas origens podem ser acessados e manipulados de forma transparente como serviços pelos usuários. 3 IaaS: Infraestrutura como Serviço - A infraestrutura computacional como grades e clusters de empresas e grandes corporações são disponibilizadas como serviços na Web de forma que se possa tirar proveito de recursos de grande porte sem arcar com seus custos iniciais de implantação e configuração. Nessa dissertação são utilizados esses três modelos de computação para a execução e captura dos metadados de proveniência dos workflows científicos em ambientes de nuvens computacionais. Por exemplo, os dados utilizados pelas atividades que compõem o workflow são providos pelo DaaS do provedor de nuvem utilizado na execução do workflow. Dentre as principais vantagens do modelo de computação em nuvem podemos destacar o fato que um usuário comum pode acessar uma grande variedade de recursos sem ter que adquirir e configurar toda a infraestrutura computacional. Essa é uma necessidade importante para aplicações científicas, uma vez que os cientistas devem estar isolados da complexidade do ambiente, focando apenas na gerência do experimento científico. Outras vantagens de suma importância a se destacar são a elasticidade de recursos oferecida e o acesso quase que ininterrupto aos mesmos. Isto é, caso o usuário necessite de mais recursos, basta que o mesmo solicite ao provedor da nuvem e os recursos estarão disponíveis quase que instantaneamente. Devido a estas vantagens, muitos cientistas já começaram a migrar seus experimentos científicos in silico, baseados em infraestrutura computacional e simulações para o ambiente das nuvens computacionais (HOFFA et al., 2008, MATSUNAGA et al., 2008, SIMMHAN et al., 2008, WANG et al., 2008, OLIVEIRA et al., 2011a). 2.6 Proveniência de Experimentos Científicos em Nuvens Computacionais Uma das principais vantagens da utilização do ambiente de nuvens para a execução dos experimentos científicos é prover aos cientistas o acesso a uma grande 11 variedade de recursos sem ter que necessariamente adquirir e configurar a infraestrutura computacional. São exemplos de experimentos in silico adaptados para nuvens, os projetos Sloan Digital Sky Survey e Berkley Water Center (HEY et al., 2009). Outra característica comum a muitos desses projetos é o uso intensivo de workflows científicos utilizando vários SGWfC. Consequentemente surge a necessidade da coleta de metadados de proveniência desses workflows executados na nuvem, pois, é necessário assegurar a reprodutibilidade desses experimentos. Sem esses metadados, o experimento tem sua avaliação e reprodução comprometidas. Por exemplo, em geral a execução em ambientes de nuvem ocorre de forma transparente para o cientista, ou seja, o que se passa na nuvem é uma “caixa preta”. Portanto, é fundamental que os cientistas saibam quais parâmetros foram utilizados e quais produtos de dados foram gerados em cada execução do workflow. Até o momento nenhum dos ambientes de nuvem oferecem, de forma nativa, meios capazes de capturar e armazenar metadados de proveniência produzidos por experimentos in silico. A captura e o gerenciamento de metadados de proveniência em ambientes distribuídos ainda representam uma questão em aberto (FREIRE et al., 2008, MATTOSO et al., 2010). No caso do ambiente de nuvem, além dos problemas típicos dos ambientes distribuídos para a coleta de metadados de proveniência, existe a questão relativa ao tráfego desses dados utilizando a internet, o que deixa mais suscetível a falhas o sistema responsável por capturar esses metadados. Por esse motivo, a arquitetura de captura descrita nessa dissertação armazena os metadados de proveniência na própria nuvem, sendo esses dados relacionados com os dados capturados localmente pelo SGWfC VisTrails para que o cientista possa ter uma visão geral de todos os metadados de proveniência coletados, tanto localmente pelo SGWfC quanto remotamente pela Matrioshka. 2.7 Trabalhos relacionados Atualmente os ambientes de nuvem não oferecem de forma nativa o armazenamento de proveniência. Em MUNISWAMY-REDDY et al. (2009) é fornecida uma motivação para que os provedores de nuvem forneçam a captura e armazenamento de proveniência de dados na nuvem de forma nativa, independente da tarefa que está sendo executada na nuvem. Além dos benefícios de validação e reprodução de experimentos científicos, a proveniência também fornece uma maior transparência e 12 segurança da nuvem, fatores que são determinantes para que algumas aplicações possam ser migradas pra nuvem. Porém vários requisitos são enumerados pelo autor para que os ambientes de nuvem possam capturar e armazenar proveniência de forma nativa, e alguns desses requisitos, como por exemplo, a segurança da proveniência armazenada, precisam ser bem definidos, pois, em alguns casos pode comprometer a privacidade do usuário final da nuvem. Com isso podemos perceber que existem ainda muitos desafios para que os provedores de nuvem ofereçam a captura e armazenamento de proveniência de forma nativa, o que pode demorar ainda alguns anos e com isso prejudicar a adesão da nuvem principalmente por cientistas que desejam rodar seus experimentos nesse ambiente. Em MUNISWAMY-REDDY et al. (2009) os autores mostram também que a computação em nuvem se mostra muito eficiente para o armazenamento de dados, porém, não possui apoio para o armazenamento e posterior consulta de metadados de proveniência. São apresentadas algumas alternativas para o armazenamento da proveniência usando o ambiente de computação em nuvem da Amazon EC2 (AMAZON EC2, 2010) e utilizando o PASS (SIMMHAN et al., 2006). O PASS é um sistema para coleta e armazenamento de proveniência distribuída. O artigo propõe a utilização de três arquiteturas utilizando estruturas de armazenamento nativas da Amazon EC2, o Simple Storage Service (S3), o SimpleDB e o Simple Queueing Service (SQS). As arquiteturas utilizadas são compostas de uma ou mais estruturas de armazenamento, visando assim, minimizar suas limitações quanto ao armazenamento e posterior consulta dos dados armazenados. A arquitetura utilizando apenas o S3 se mostrou ineficiente quanto a consulta dos dados armazenados, a arquitetura utilizando S3 e SimpleDB não garante a atomicidade dos dados e a arquitetura utilizando as três estruturas de armazenamento se mostrou eficiente em todos os requisitos avaliados (atomicidade, consistência, ordenação e eficiência das consultas). Porém, é importante destacar que todo processo de armazenamento é realizado utilizando estruturas nativas da nuvem da Amazon EC2, com isso, caso o ambiente de captura de proveniência não seja a nuvem da Amazon EC2, como por exemplo, utilizando a nuvem da IBM (IBM SMART BUSINESS DEVELOPMENT & TEST, 2010), o sistema terá que ser totalmente adaptado, pois, não utiliza uma estrutura de armazenamento comum entre esses dois ambientes de nuvens. Outro ponto que merece ser destacado é a enorme quantidade de dados que são armazenados para se obter a proveniência. No ambiente de nuvem, quanto mais dados 13 precisam ser trafegados utilizando a internet, mais suscetível a falhas fica o sistema responsável por capturar e armazenar os metadados de proveniência. Para minimizar a quantidade de metadados que precisam ser armazenados, GROTH et al. (2009) propõem um novo modelo de proveniência. Esse novo modelo proposto armazena metadados de proveniência que são realmente consultados pelos usuários finais, visto que em outros modelos são armazenados volumes de metadados extremamente grandes, nos quais o usuário na prática consulta apenas os metadados de determinadas atividades, e com isso, a enorme quantidade de metadados se torna desnecessária. Os autores utilizam o workflow científico Montage (JACOB et al., 2009) utilizado para processamento de imagens astronômicas, nos testes realizados para armazenamento de proveniência utilizando o novo modelo proposto. Por ser um workflow que trabalha com imagens, o tamanho dos dados gerados e que precisam ser armazenados é extremamente grande, na ordem de petabytes. O modelo de proveniência pipeline-centric consiste basicamente em realizar um levantamento dos dados de proveniência que o usuário final necessita para validar e reproduzir seu experimento científico. No exemplo do artigo utilizando o Montage foi apresentada uma redução significativa do tamanho dos metadados armazenados de proveniência, porém, é preciso destacar que para cada workflow científico onde esse modelo é aplicado é necessário determinar quais metadados precisam ser armazenados. Recentemente foi proposto o sistema SciCumulus (OLIVEIRA et al., 2010b, 2011a, 2011b) com objetivo específico de executar workflows científicos em larga escala aproveitando os recursos da nuvem. Porém, o SciCumulus não possui ligação de metadados de proveniência com dados ontológicos, o que limita o escopo de consultas sobre os metadados de proveniência. 2.8 Considerações finais A computação em nuvem, principalmente devido à elasticidade de recursos e a alta disponibilidade, apresenta-se como uma interessante alternativa para a execução de experimentos científicos in silico em larga escala baseados em workflows científicos que demandam ambientes computacionais distribuídos para que sua execução ocorra em um tempo aceitável pelos cientistas. Porém, por ser uma tecnologia ainda incipiente em aplicações científicas a execução dos workflows em nuvens ainda é um problema em aberto, principalmente no que tange à captura e ao gerenciamento de metadados de 14 proveniência gerados nesse ambiente. 15 Capítulo 3 - Captura de Dados de Proveniência de Workflows Científicos em Nuvens Computacionais Nesse capítulo é proposta uma nova arquitetura estendida da Matrioshka para coletar e armazenar os metadados de proveniência de workflows científicos executados nos ambientes de nuvens computacionais. 3.1 Histórico A captura dos metadados de proveniência nos ambientes distribuídos ainda é uma questão em aberto. Mesmo dentre os SGWfC concebidos para operar em ambientes distribuídos, como o Swift, Pegasus e o Triana, existem ainda limitações para a captura de proveniência distribuída, seja ela em clusters ou grades computacionais (FOSTER e KESSELMAN, 2004). Além disso, esses poucos existentes são focados em ambientes como clusters e grades computacionais. Um exemplo destes mecanismos é a Matrioshka (CRUZ et al., 2008a, CRUZ, 2011), cuja arquitetura foi concebida para ambientes de clusters e grades computacionais, e que, por isso, utiliza serviços exclusivos desses ambientes, como por exemplo, gerenciadores de fila (i.e. PBS ou Condor), escalonadores, entre outros. As características do ambiente de nuvens computacionais, como por exemplo, elasticidade de recursos, virtualização, independência de localização, métodos de acesso, entre outras, não são apoiadas pela Matrioshka. No ambiente de nuvens computacionais, capturar a proveniência distribuída de um workflow também é um desafio ainda em aberto (OLIVEIRA et al., 2010a). Para a Matrioshka ser utilizada nas nuvens, foi necessário adaptá-la para os modelos de computação (IaaS, SaaS e DaaS) oferecidos pelos provedores de nuvens. A arquitetura da Matrioshka é composta por três componentes: Provenance Broker, Provenance Eavesdrop e o repositório de metadados de proveniência. Estes componentes operam no ambiente distribuído. No entanto, para que a Matrioshka opere no ambiente de nuvem surge a necessidade não só de alterar os três componentes principais da arquitetura original, como também agregar novos componentes, o Dispatcher e o Execution Broker, e criar o conceito de manifestos, os quais são arquivos no formato XML que permitem ao executor do workflow no ambiente de nuvem 16 configurar o ambiente, o experimento e as atividades que serão executadas. O Dispatcher foi criado para realizar a execução de uma determinada atividade do workflow no ambiente de nuvem. O Execution Broker foi criado para controlar a execução das atividades no ambiente de nuvem e sincronizá-las com o ambiente local, função desempenhada pelo escalonador do cluster ou grades computacionais na arquitetura original da Matrioshka, o qual não existe no ambiente de nuvem. Todos os componentes da arquitetura Matrioshka foram desenvolvidos na linguagem Java e o modelo de dados foi instanciado no SGBD relacional MySQL. 3.2 Arquitetura A arquitetura proposta para a extensão da Matrioshka no ambiente de nuvens (PAULINO et al., 2009, 2010, 2011) possui dois novos componentes incorporados em relação a sua arquitetura original, o primeiro componente tem como função invocar a execução da atividade que será realizada no ambiente de nuvens de dentro do fluxo de execução local do workflow (Dispatcher), e o segundo componente é o responsável por gerenciar essa execução (Execution Broker). Além desses componentes existem outros dois nativos da arquitetura original, o Provenance Eavesdrop, responsável por coletar os metadados de proveniência gerados pela execução das atividades do workflow nas instâncias da nuvem, e o Provenance Broker, que tem a função de persistir esses metadados coletados no modelo de dados estendido seguindo a recomendação do OPM versão 1.1 para armazenar metadados específicos do ambiente de nuvem. Todos os componentes da arquitetura proposta foram desenvolvidos utilizando a linguagem Java e compilados no formato JAR, o que facilita a execução dos mesmos em qualquer sistema operacional. O Execution Broker, Provenance Broker e o Provenance Eavesdrop são os componentes que trabalham no ambiente de nuvem, já o Dispatcher é o componente que trabalha na máquina local onde o workflow é gerenciado pelo SGWfC. A comunicação entre o ambiente local de execução do workflow e o ambiente de nuvens é realizada através dos arquivos de manifesto, os quais são: o arquivo de manifesto de configuração do ambiente da nuvem, o manifesto com os dados do experimento científico e o manifesto com os dados das atividades que serão executadas em nuvem. A comunicação entre os componentes da Matrioshka é síncrona e utiliza o protocolo SSH através da biblioteca Ganymed (GANYMED, 2011). A Figura 1 17 apresenta a adaptação da arquitetura da Matrioshka proposta para a coleta de metadados de proveniência de workflows executados em ambientes de nuvens. Os componentes da arquitetura apresentada são explicados detalhadamente durante as próximas seções. Figura 1. Arquitetura Matrioshka adaptada para a captura de proveniência de workflows científicos executados no ambiente de nuvens (PAULINO et al., 2009, 2010, 2011) 3.2.1 Manifestos Os arquivos de manifestos são usados para três propósitos. Cada propósito é representado por um arquivo de manifesto específico. O primeiro visa especificar as configurações do ambiente de nuvem que não puderam ser capturadas automaticamente (SetupManifest.xml), o segundo especifica os dados do experimento a ser executado (ExperimentManifest.xml) e o terceiro detalha os dados das atividades que são executadas no ambiente de nuvem (ActivityManifest.xml). As principais vantagens dos arquivos de manifesto são o fato de eles serem tecnologicamente agnósticos e representarem um conjunto de metadados de proveniência prospectiva associada à execução de uma ou mais atividades de um workflow na nuvem. Grande parte desses metadados será armazenada no Repositório de Proveniência da Nuvem pelo Provenance Broker, conforme mostrado na Figura 1. 18 Em seguida vamos detalhar as informações contidas em cada um dos arquivos de manifesto utilizados. Inicialmente vamos detalhar o arquivo SetupManifest.xml. É importante destacar que os dados das instâncias que estão sendo executadas no ambiente de nuvem que o usuário possui acesso e os dados das imagens de instâncias são coletados automaticamente pelo Execution Broker. A Figura 2 é uma representação da estrutura do arquivo SetupManifest.xml. Figura 2. Estrutura do arquivo de manifesto de configuração da nuvem. SetupManifest.xml O arquivo SetupManifest.xml possui as seguintes informações: • InstanceConfigurations: Dados de configurações das instâncias da nuvem, como por exemplo, quantidade de memória principal e secundária, arquitetura, capacidade de processamento, etc. • UserSubscribe: Dados que são utilizados para acesso do usuário no ambiente de nuvem e a quais imagens de instâncias da nuvem o mesmo criou ou possui acesso. • ConcreteActivities: Dados das atividades concretas do workflow. É importante destacar que os programas que representam essas atividades devem estar instalados previamente no ambiente antes que as mesmas sejam executadas. Nesse elemento do arquivo XML também é especificado em quais imagens esses programas estão instalados. • ActivityParameter: São especificados os valores dos parâmetros que podem ser informados para as atividades concretas. • CloudAccess: Nesse elemento do arquivo XML são especificados os dados de acesso necessários para que o usuário possa utilizar os serviços da nuvem, além de informar qual o endereço da instância que está executando o componente Execution Broker. 19 • ProvenanceBroker: Dados para acessar o Repositório de Proveniência da Nuvem. A Figura 3 contém a representação da estrutura do arquivo ExperimentManifest.xml, o qual vamos detalhar a seguir. Figura 3. Estrutura do arquivo de manifesto com a especificação dos dados do experimento. ExperimentManifest.xml • CloudProvider: Dados do provedor do ambiente de nuvem e quais imagens de instância estão armazenadas nesse provedor. • Institution / Laboratory: Dados da instituição / laboratório ao qual o pesquisador que criou ou está executando o experimento está vinculado. • Researcher: Dados pessoais do pesquisador e informa qual o seu usuário no ambiente de nuvem. • Experiment: Informações acerca do experimento, como por exemplo, área, referência bibliográfica, data de criação do experimento, etc. • ResearchProject: Informações acerca do projeto de pesquisa, como por exemplo, pesquisador coordenador, data de início, duração prevista, etc. 20 • AbstractWorkflow: Dados do workflow abstrato, como por exemplo, a qual experimento ele está vinculado, qual pesquisador foi o responsável por sua criação, etc. • ConcreteWorkflow: Informações sobre o workflow concreto, dentre as quais podemos destacar, qual o pesquisador responsável por sua criação, qual(is) pesquisador(es) tem(têm) permissão para executá-lo, quais atividades concretas (informadas no SetupManifest.xml) fazem parte desse workflow, a qual workflow do ambiente local de execução o workflow executado no ambiente de nuvens está relacionado, etc. • AbstractActivities: Dados das atividades abstratas que fazem parte desse workflow e qual(is) atividade(s) concreta(s) as representam. • CloudAccess / ProvenanceBroker: Mesmas funções informadas durante o detalhamento do SetupManifest.xml. • ProvenanceVT: Dados para acessar o Repositório de Proveniência Local. Para finalizar os arquivos de manifestos vamos detalhar o ActivityManifest.xml, o qual possui sua estrutura representada na Figura 4. Para cada atividade executada no ambiente de nuvens é criado um arquivo de manifesto ActivityManifest.xml correspondente aos dados dessa atividade. Figura 4. Estrutura do arquivo de manifesto com a especificação dos dados da atividade a ser executada no ambiente de nuvem. ActivityManifest.xml • RemoteActivity: Arquivos de entrada e saída da atividade a ser executada no ambiente de nuvem, nome da atividade concreta a ser executada, quantidade de instâncias da nuvem utilizadas na execução da atividade, etc. • CloudAccess / ProvenanceBroker: Mesmas funções informadas durante o detalhamento do SetupManifest.xml. 21 Todos os arquivos de manifesto são enviados para o ambiente de nuvens usando o protocolo de comunicação SCP. Com isso o Execution Broker realiza a leitura desses arquivos e, posteriormente, o Provenance Broker realiza a inserção dos dados lidos a partir do SetupManifest.xml e do ExperimentManifest.xml no Repositório de Proveniência da Nuvem. Os dados informados no ActivityManifest.xml são usados para executar as atividades usando os arquivos de entrada e na quantidade de instâncias informadas pelo usuário. 3.2.2 Dispatcher Inicialmente é necessário determinar qual atividade do workflow deve ser executada na nuvem. A mesma será substituída na modelagem do workflow no SGWfC por um módulo chamado Dispatcher. O Dispatcher é o módulo responsável pela invocação remota dessa atividade na nuvem. É importante destacar que o programa associado a esta atividade deve ser anteriormente instalado nas imagens a partir das quais são criadas as instâncias a que o usuário possui acesso na nuvem. O Dispatcher recebe como parâmetro de entrada um dos seguintes arquivos de manifesto: SetupManifest.xml, ExperimentManifest.xml ou ActivityManifest.xml, os quais são preenchidos conforme descrito na seção 3.2.1. O Dispatcher realiza a comunicação e o envio dos arquivos de manifesto para o componente Execution Broker, o qual é executado no ambiente de nuvem, fazendo uso respectivamente dos protocolos de comunicação SSH e SCP. A Figura 5 mostra como é realizada a substituição de uma atividade executada localmente para a execução da mesma no ambiente de nuvem em um workflow para mineração de texto (OLIVEIRA et al., 2007) definido no SGWfC VisTrails. 22 Figura 5. Substituição da atividade executada localmente pelo Dispatcher no VisTrails Uma outra função do Dispatcher é coletar do Repositório de Proveniência Local do SGWfC o identificador do workflow que está sendo executado e armazená-lo no ExperimentManifest.xml (tag ConcreteWorkflow). Esse identificador é utilizado pelas consultas de proveniência para realizar o relacionamento dos dados armazenados nos dois repositórios de proveniência, tanto o local quanto o da nuvem. 3.2.3 Execution Broker O Execution Broker é instalado em uma instância do ambiente de nuvem e possui como funções disparar a execução da atividade nas instâncias da nuvem a que o usuário possui acesso e na quantidade que foi informada no arquivo de manifesto ActivityManifest.xml invocando o componente Provenance Eavesdrop, realizar a leitura dos arquivos de manifesto SetupManifest.xml e ExperimentManifest.xml para que os dados dos mesmos sejam armazenados no Repositório de Proveniência da Nuvem ou no banco de dados de Configuração e validar os dados de segurança do usuário para acesso ao ambiente de nuvem no banco de dados de Configuração. Esse banco de dados, conceitualmente explicando, é diferente do Repositório de Proveniência da Nuvem, porém, ambos são implementados em um mesmo banco de dados físico, visto que essas informações de Configuração do ambiente de nuvem podem ser usadas como metadados de proveniência. O Execution Broker utiliza threads para invocar a execução de uma atividade em mais de uma instância do ambiente de nuvem simultaneamente. 23 Quando a execução da atividade é concluída nas instâncias em que foi disparada, o Execution Broker repassa essa informação ao Dispatcher para que o fluxo de execução local do workflow no SGWfC continue normalmente. 3.2.4 Provenance Broker O Provenance Broker, assim como o Execution Broker, também é instalado em uma instância no ambiente de nuvem, geralmente na mesma instância do Execution Broker, mas não existem impedimentos para a instalação desse componente em qualquer outra instância do ambiente de nuvem. A função do Provenance Broker é persistir no Repositório de Proveniência da Nuvem e no banco de dados de Configuração os metadados capturados pelo Provenance Eavesdrop durante a execução das atividades na instância ou pelo Execution Broker durante a leitura dos arquivos de manifesto. O Provenance Broker é um componente da arquitetura original da Matrioshka, no qual foi necessário realizar algumas alterações, as quais foram basicamente a adequação do componente para trabalhar como um serviço disponibilizado no ambiente de nuvem, acessado tanto pelo Execution Broker quanto pelo Provenance Eavesdrop. 3.2.5 Provenance Eavesdrop O Provenance Eavesdrop é o componente responsável por executar a atividade e capturar os metadados de proveniência gerados durante essa execução em cada uma das instâncias onde as atividades estão sendo executadas. O Provenance Eavesdrop é o componente da arquitetura que interage diretamente com a instância onde ocorre a execução da atividade, além de interagir com o Execution Broker, mantendo-o informado sobre o andamento da execução da atividade e com o Provenance Broker enviando os metadados de proveniência gerados por essa execução. É importante destacar que a instalação do Provenance Eavesdrop é obrigatória em todas as instâncias do ambiente de nuvem que são utilizadas para executar as atividades. Geralmente essa instalação é realizada na imagem utilizada para a criação dessas instâncias, facilitando assim a alocação de novas instâncias no ambiente de nuvem. O Provenance Broker e o Provenance Eavesdrop trabalham com dados produzidos no ambiente de nuvem que podem ser originados de diversas fontes, como 24 por exemplo, processos em execução, arquivos utilizados ou produzidos ou informações sobre as instâncias. Assim como o Provenance Broker, o Provenance Eavesdrop também é um componente da arquitetura original da Matrioshka, porém, pelo fato do mesmo interagir diretamente com as instâncias da nuvem foram realizadas nesse componente e no Repositório de Proveniência da Nuvem as principais adaptações necessárias para o funcionamento da arquitetura proposta. 3.2.6 Repositório de Proveniência da Nuvem A Matrioshka foi adaptada para o ambiente de nuvens com um novo modelo de metadados de proveniência motivado pelas diferenças dos dados disponíveis em clusters e grades computacionais. Como exemplo de algumas dessas diferenças, podemos citar o fato de que as nuvens são fortemente baseadas nos conceitos de virtualização de recursos, onde um cientista pode acessar uma ou mais contas em diferentes provedores de serviço de nuvem que provêem diferentes tipos de instâncias no que se refere à configuração do hardware e software. Além disto, é necessário registrar em qual instância os produtos de dados das atividades do workflow se encontram, quais foram os recursos consumidos, versão dos programas utilizados, dentre outros. Na proposta original do modelo de dados da Matrioshka havia metadados tais como nós do cluster e detalhes do jobs, os quais eram coletados do ambiente de clusters ou grades computacionais, de forma a descrever o ambiente de execução. Além disso, não havia correlação com a atual versão do OPM. Entretanto, ao desenvolvermos a adaptação da Matrioshka para o ambiente de nuvem, muitos destes metadados perderam o sentido ou devem ser representados de maneira diferente. Por exemplo, o conceito de nó é substituído por máquinas virtuais (instâncias) disponibilizadas pelos provedores de nuvens computacionais e cada instância pode ser diferente da outra no que se refere ao hardware e ao software, pois, o ambiente de nuvens é altamente heterogêneo. Para garantir a reprodutibilidade do experimento é essencial que todos os metadados que descrevem o ambiente de execução e os parâmetros de entrada das atividades do workflow sejam coletados. Visando isso, essa dissertação propõe um novo modelo de dados a ser utilizado pela Matrioshka no ambiente de nuvens. A Figura 6 apresenta esse modelo de dados de proveniência adotado na adaptação da Matrioshka para o ambiente 25 de nuvens. Ele é representado como um diagrama de classes UML e é resultado de um levantamento sobre quais metadados de proveniência podem ser capturados pelos componentes Provenance Eavesdrop e Execution Broker. O modelo de dados é composto por quatro partes principais: (i) elementos que representam os processos que serão distribuídos nas instâncias na nuvem, por exemplo, as atividades do workflow; (ii) elementos que representam os cientistas, associados a execução e definição do workflow; (iii) elementos que representam os artefatos e recursos computacionais utilizados em determinada execução do workflow, e por fim; (iv) elementos que representam informações relacionadas com a temporalidade do workflow e suas atividades. Figura 6. Modelo de dados de proveniência para o ambiente de nuvens 26 Uma vez que o modelo de dados seguiu a recomendação do OPM, temos que, as classes na cor amarela correspondem à representação conceitual de um Artefato-OPM, possuindo a mesma semântica, isto é, representam estruturas digitais em sistemas de computação (i.e. parâmetros, bancos de dados, arquivos, instâncias, entre outros). As classes na cor verde são mapeadas como um Processo-OPM. Um processo representa uma ou mais ações que utilizam ou atuam sobre artefatos e produzem novos artefatos. As classes na cor azul representam um Agente-OPM. Um agente é um elemento que catalisa, possibilita, controla ou afeta a execução de um processo. As classes na cor alaranjada são mapeadas como Papéis-OPM. Um papel determina e correlaciona a função de um agente ou artefato em um processo. A classe matri_execution representa o momento das execuções de um processo na nuvem, com a respectiva instância onde ocorreu a execução e o usuário que realizou a mesma. A utilização desse modelo de dados para armazenar os metadados de proveniência coletados no ambiente de nuvens relacionado ao Repositório de Proveniência Local pode responder várias consultas a serem realizadas pelos cientistas sobre o experimento executado, como por exemplo, “Quantos workflows concretos foram necessários para mapear o workflow abstrato X?”, “Em qual diretório e de qual instância foram armazenados os arquivos de saída da atividade Y?”, “Qual o diretório da máquina local, onde está instalado o SGWfC, que armazena o arquivo de manifesto utilizado para executar a atividade Z?”. No Capítulo 4, onde é descrito o estudo de caso para validar a arquitetura proposta para captura de proveniência, são mostradas as respostas a essas e outras possíveis consultas que podem ser realizadas pelos cientistas. 3.3 Bibliotecas utilizadas na implementação Os componentes da arquitetura descrita nas seções anteriores utilizam as seguintes bibliotecas para facilitar o desenvolvimento de algumas funções: a) AWS SDK for Java 1.2.1: Biblioteca desenvolvida pela Amazon para disponibilizar aos desenvolvedores todas as rotinas que podem ser realizadas no ambiente de nuvem da Amazon através da linguagem Java, como por exemplo, listar todas as instâncias que um usuário da nuvem da Amazon possui. b) Ganymed SSH-2 for Java: Biblioteca que possui funções para utilizar os protocolos de comunicação SSH e SCP para, por exemplo, acessar as instâncias na nuvem ou enviar arquivos de manifesto. 27 c) XStream 1.1.3: Biblioteca para a leitura e escrita de arquivos XML, a qual é utilizada para trabalhar com os arquivos de manifesto. d) Driver JDBC para o MySQL 5.1.6: Biblioteca utilizada para realizar a conexão com o SGBD MySQL, o qual armazena o Repositório Local e da Nuvem de Proveniência. É importante destacar que todas as bibliotecas usadas na arquitetura proposta podem ser utilizadas gratuitamente. 3.4 Considerações finais Durante a implementação dos componentes da arquitetura proposta surgiram dificuldades, dentre as quais, destacamos o levantamento de quais metadados deveriam ser coletados no ambiente de nuvem e como ocorreria a comunicação entre os componentes. O levantamento dos metadados a serem coletados foi direcionado pela ontologia de proveniência proposta por (CRUZ, 2011), a qual norteou a escolha desses metadados. Quanto à comunicação entre os componentes da arquitetura, as dificuldades encontradas foram com relação à comunicação do ambiente local (Dispatcher) com o ambiente de nuvem (Execution Broker, Provenance Broker e o Provenance Eavesdrop). Para solucionar esse problema foram utilizados os protocolos de comunicação SSH e SCP, os quais permitem a execução de comandos remotamente e a transmissão de arquivos. 28 Capítulo 4 - Avaliação da arquitetura proposta A arquitetura proposta nessa dissertação foi avaliada utilizando um experimento real da área de bioinformática. Todas as atividades que fazem parte do workflow que representa esse experimento foram executadas no ambiente de nuvem, favorecendo assim a verificação do funcionamento da coleta dos metadados de proveniência dessas atividades e a posterior consulta aos mesmos, integrando-os com os dados da proveniência local coletada pelo SGWfC. O OrthoSearch possui como principal função detectar homologias distantes em protozoários (CRUZ et al., 2008b). Inicialmente esse workflow foi desenvolvido utilizando scripts na linguagem de programação Perl. Esse workflow tem sido utilizado pelo consórcio BiowebDB (www.biowebdb.org). 4.1 OrthoSearch A grande maioria das doenças negligenciadas pelas empresas farmacêuticas afetam, principalmente, as populações de baixa renda de países em desenvolvimento na Ásia, África e América do Sul. Essas populações não possuem condições financeiras de adquirir medicamentos, por isso, não são prioridade para as empresas farmacêuticas. Esse fato vem chamando a atenção de um número cada vez maior de cientistas da comunidade científica internacional, pois, existe uma imensa necessidade de pesquisa dessas doenças para criação de remédios visando minimizar a contaminação e a morte de milhões de seres humanos. A maioria dessas doenças é causada por cinco protozoários, Trypanosoma cruzi, Trypanosoma brucei, Leishmania major, Plasmodium falciparum e Entamoeba histolytica. Para explorar as informações e conhecer melhor esses cinco protozoários são usados modelos computacionais, objetivando descobrir maneiras eficientes e de baixo custo para o controle das doenças causadas por eles. O OrthoSearch foi criado para facilitar as tarefas de pesquisa, análise e apresentação das semelhanças entre estruturas de diferentes organismos que possuem a mesma origem ortogenética e filogenética desses cinco protozoários, utilizando o “Ptn DB”, um repositório de proteínas (arquivo FASTA) de cada protozoário, e os 29 comparando com os arquivos contidos no “COGs DB”, copiados previamente do repositório do National Center for Biotechnology Information (www.ncbi.nlm.nih.gov/COG). Esses arquivos COGs armazenam genes ortólogos, ou seja, que possuem um ancestral em comum, das vias metabólicas, as quais desempenham um papel fundamental na vida dos protozoários. Esses serão os dados de entrada do OrthoSearch. A Figura 7 mostra o workflow OrthoSearch completo, porém, no experimento dessa dissertação estaremos utilizando apenas uma parte desse workflow, visto que o foco é a coleta de proveniência e apenas com algumas das atividades realizadas por esse workflow foi possível verificar o funcionamento da arquitetura proposta. Além dos dados de entrada, “COGs DB” e “Ptn DB”, explicados anteriormente, foram utilizados o programa MAFFT e o pacote de programas HMMER, com exceção do programa HMMPFAM. O MAFFT otimiza o alinhamento dos genes ortólogos com base em propriedades físicas dos aminoácidos, reduzindo o tempo de processamento nas demais atividades do workflow. O HMMER é um conjunto de programas que tem a função de descobrir as melhores correspondências entre os genes dos protozoários com os genes armazenados nos arquivos COGs. Na Figura 7 é demarcada, com um retângulo de linha contínua, a parte do workflow OrthoSearch que será utilizada no experimento dessa dissertação para avaliar a arquitetura proposta. Figura 7. Workflow OrthoSearch (CRUZ et al., 2008b) 30 4.2 Configuração do ambiente O ambiente de nuvem inicialmente utilizado para realização dos testes com os módulos desenvolvidos foi o da IBM, que possui o mesmo modelo de acesso e controle utilizado pela nuvem da Amazon. Já o estudo de caso apresentado nessa dissertação utilizando o experimento OrthoSearch foi realizado na nuvem da Amazon, utilizando a Elastic Compute Cloud (EC2), o ambiente de nuvem propriamente dito da Amazon, e o Simple Storage Service (S3), o serviço de armazenamento disponibilizado pela Amazon. É importante destacar que a nuvem da Amazon é comercial e, portanto, a cobrança é realizada de acordo com os recursos utilizados. Porém, existem alguns softwares livres, como por exemplo, o Eucalyptus (NURMI et al., 2008) que permitem a instalação e configuração de um ambiente de nuvem utilizando recursos computacionais próprios e que devido a isso não são realizadas cobranças a cada utilização do ambiente, como ocorre nos ambientes de nuvens comerciais. No ambiente de nuvem da Amazon existem vários tipos de configuração de hardware de instâncias, os quais variam de acordo com a imagem utilizada para criar a instância. Essa imagem é criada utilizando o serviço Amazon Machine Image (AMI) com o intuito de armazenar os softwares instalados na instância e evitar perda de tempo na instalação desses softwares toda vez que uma instância é criada. Essa imagem é armazenada dentro do próprio ambiente de nuvem da Amazon, em um serviço chamado Elastic Block Store (EBS). As imagens de instâncias utilizadas nesse experimento são as seguintes: (i) ami-16c3367f: Nessa imagem está instalado o sistema operacional Ubuntu 10.10, o SGBD MySQL 5.1.41, para armazenamento do Repositório de Proveniência da Nuvem, os componentes da arquitetura proposta Execution Broker e Provenance Broker e o Java Runtime Environment 6 para execução desses componentes. (ii) ami-e2c3368b: Nessa imagem está instalado o sistema operacional Ubuntu 10.10, o componente da arquitetura proposta Provenance Eavesdrop, o Java Runtime Environment 6 para execução desse componente, o sistema de arquivos S3QL 1.0.1 (S3QL, 2011), o qual é utilizado para mapear os dados armazenados no serviço Amazon Simple Storage Service (S3) onde estão os dados de entrada/saída utilizados/gerados pelo workflow e os seguintes programas usados pelas atividades do workflow: MAFFT 6.717b e o pacote de programas 31 HMMER 2.3.2, o qual é composto pelo HMMBUILD, HMMCALIBRATE e HMMSEARCH. As duas imagens são executadas na arquitetura i386 e ocupam cada uma 15 Gb de espaço no EBS. Os tipos de configurações de hardware disponíveis e o preço de utilização por hora para as imagens acima durante a execução do experimento realizado no dia 30/07/2011 foram os seguintes: Quadro 1. Configuração de hardware e preços de utilização dos tipos de instâncias disponíveis Tipo da instância Small Memória 1.7 Gb Disco Unidades de Cores de rígido processamento processamento 160 Arquitetura Preço 1 ECU* 1 Core 32 bits $0,085/h 5 ECU* 2 Cores 32 bits $0,17/h 1 Core 32 ou 64 $0,02/h Gb Medium 1.7 Gb 350 Gb Micro 613 Mb 15 Gb 1 ECU* bits *ECU (EC2 Compute Unit): 1 ECU é equivalente a capacidade de processamento de 1.0 a 1.2 GHz. Dentre os tipos de instâncias disponíveis para serem utilizadas nesse experimento utilizamos o tipo “Micro”. Esse tipo foi escolhido basicamente pelo baixo custo de utilização e pelo fato do experimento proposto não levar em consideração questões relativas ao desempenho. 4.3 Configuração do experimento O workflow OrthoSearch foi definido no SGWfC VisTrails, conforme mostrado na Figura 8. As quatro primeiras atividades do workflow foram utilizadas para armazenar no Repositório de Proveniência da Nuvem os metadados relativos à configuração do ambiente, através do arquivo de manifesto SetupManifest.xml, além dos dados coletados do ambiente de nuvem pelo Execution Broker, e a configuração do experimento, através do arquivo de manifesto ExperimentManifest.xml. As outras oito atividades representam os programas utilizados pelo workflow, com seus respectivos arquivos de manifesto ActivityManifest.xml, para processar os arquivos de entrada. Todas as atividades, tanto as de configuração do ambiente quanto do experimento, e as atividades do workflow OrthoSearch são executadas no ambiente de nuvem da Amazon. 32 Figura 8. Workflow utilizado para avaliação da arquitetura proposta A execução do experimento foi realizada utilizando seis instâncias do tipo “Micro”, sendo cinco instanciadas a partir da imagem “ami-e2c3368b”, a qual possui a instalação dos programas utilizados pelas atividades do workflow OrthoSearch. Nessas instâncias foram mapeados os diretórios armazenados no S3 usando o sistema de arquivos S3QL. Esses diretórios foram utilizados para armazenar todos os arquivos de entrada/saída usados/gerados por esse workflow. Cada instância possui um diretório específico. A sexta instância foi criada a partir da imagem “ami-16c3367f”, onde foi armazenado o Repositório de Proveniência da Nuvem. Essa instância foi a responsável por receber as informações de execuções e metadados de proveniência gerados pelas 33 cinco instâncias que executam as atividades do workflow no ambiente de nuvem e manter a conexão SSH com o componente Dispatcher no ambiente local de execução do workflow. Ao finalizar cada uma das atividades invocadas pelo Dispatcher no ambiente de nuvem, o fluxo de execução do workflow retorna para o ambiente local e assim outra atividade é invocada para ser executada, tudo isso controlado pelo SGWfC VisTrails. Inicialmente dentro do diretório mapeado em cada uma das instâncias, existem duzentos e vinte e quatro arquivos COGs e um arquivo FASTA, um para cada um dos cinco protozoários utilizados no experimento. Esses arquivos estão contidos no “Ptn DB”. Por esse motivo foram instanciadas cinco instâncias, cada uma para executar o experimento utilizando um arquivo FASTA diferente. Abaixo é mostrado um exemplo do fluxo de execução realizado pelo workflow OrthoSearch usando o arquivo “COG0022” e o gene do protozoário Entamoeba histolytica (ehisto.100.fasta) através de linhas de comando para executar os programas: (i) mafft COG0022 > COG0022.mafft (ii) hmmbuild COG0022.hmm COG0022.mafft (iii) hmmcalibrate COG0022.hmm (iv) hmmsearch -E 0.1 COG0022.hmm ehisto.100.fasta > cog0022_ehisto.txt Como é possível observar o arquivo de saída de uma atividade é utilizado como arquivo de entrada na atividade posterior, com exceção da última atividade, HMMSEARCH. Nessa atividade além do arquivo de saída gerado pela atividade anterior, também é utilizado como arquivo de entrada um segundo arquivo, o FASTA referente ao gene do protozoário a ser comparado. É importante destacar também que nessa última atividade é utilizado o parâmetro “-E 0.1”. Esse é um parâmetro de corte utilizado para definir o grau de igualdade entre os genes contidos nos arquivos COGs com os genes do protozoário. Quanto menor esse parâmetro maior o grau de igualdade dessas proteínas. Esse parâmetro varia de acordo com a necessidade da pesquisa que está sendo realizada no momento. O workflow executado com as configurações do ambiente descritas na seção 4.2 foi iniciado às 15:41:43 do dia 30/07/2011 e sua execução foi concluída às 08:03:32 do dia 08/08/2011. A atividade HMMSEARCH foi a mais demorada, iniciando às 00:21:13 do dia 01/08/2011 e sendo finalizada às 08:03:32 do dia 08/08/2011. Importante destacar que esses tempos são relativos à execução das atividades nas cinco instâncias. Todos esses dados, além de todos os arquivos gerados, localização desses arquivos, 34 instâncias que foram utilizadas na execução, usuário responsável pela execução do workflow, etc estão armazenados no Repositório de Proveniência da Nuvem. 4.4 Consultas à proveniência Com o intuito de mostrar que os metadados coletados pela arquitetura proposta são capazes de responder a uma série de possíveis consultas que podem ser necessárias para permitir a reprodução do experimento por outros cientistas ou para que o próprio cientista que executou o experimento tenha dados para melhor entender os resultados obtidos, são propostas algumas consultas que podem ser respondidas utilizando o Repositório de Proveniência Local e da Nuvem. Essas consultas foram divididas em três categorias, consulta de proveniência prospectiva, proveniência retrospectiva e consultas que utilizam os dados da proveniência local e da nuvem. Essas consultas foram escritas em linguagem natural e transformadas para a linguagem SQL, para que fosse possível retornar os dados para respondê-la a partir do SGBD MySQL. Abaixo são mostradas duas possíveis consultas que podem ser realizadas utilizando os metadados de proveniência prospectiva armazenados no Repositório da Nuvem. (i) Quais instâncias do ambiente de nuvem estão disponíveis para executar o workflow “ortho.vt”? SELECT mi.Instance, mi.PublicDNS, mi.Allocated FROM matrioshka.matri_workflow_concrete mwc INNER JOIN matrioshka.matri_activity_concrete mac ON mac.WfID=mwc.WfID INNER JOIN matrioshka.matri_activity_image mai ON mai.ActivityID=mac.ActivityID INNER JOIN matrioshka.matri_instance mi ON mi.ImageID=mai.ImageID WHERE mwc.Name="ortho.vt" AND mi.Allocated=0 GROUP BY mi.Instance; 35 Quadro 2. Resultado da consulta de proveniência (i) Instance i-2715e746 i-311be950 i-471ae826 i-9d1be9fc i-a91ae8c8 PublicDNS ec2-174-129-145-195.compute-1.amazonaws.com ec2-50-19-23-198.compute-1.amazonaws.com ec2-107-20-31-160.compute-1.amazonaws.com ec2-50-17-169-171.compute-1.amazonaws.com ec2-50-19-146-109.compute-1.amazonaws.com Allocated 0 0 0 0 0 O Quadro 2 mostra a relação de todos os endereços das instâncias do ambiente de nuvem habilitadas para executar o workflow concreto “ortho.vt” desenvolvido no SGWfC VisTrails, ou seja, essas instâncias possuem os programas necessários para executar esse workflow e não estão sendo utilizadas em outra execução de workflow no momento. (ii) Quais os nomes e as versões dos programas utilizados para executar as atividades do workflow “ortho.vt”? SELECT mac.Name, mac.Version FROM matrioshka.matri_workflow_concrete mwc INNER JOIN matrioshka.matri_activity_concrete mac ON mac.WfID=mwc.WfID WHERE mwc.Name="ortho.vt"; Quadro 3. Resultado da consulta de proveniência (ii) Name mafft hmmbuild hmmcalibrate hmmsearch Version 6.717b 2.3.2 2.3.2 2.3.2 O Quadro 3 mostra os programas utilizados durante a execução do workflow “ortho.vt” com suas respectivas versões a fim de permitir a um cientista que esteja reproduzindo o experimento utilizar as mesmas versões dos programas utilizados na execução a ser reproduzida em seu ambiente. Abaixo são mostradas duas possíveis consultas utilizando os metadados de proveniência retrospectiva armazenados no Repositório de Proveniência da Nuvem. 36 (iii) Quais foram os parâmetros utilizados para executar cada uma das atividades do workflow “ortho.vt”? O que cada um desses parâmetros representa? SELECT mac.Name, map.ParamValue, map.ParamDescription FROM matrioshka.matri_workflow_concrete mwc INNER JOIN matrioshka.matri_activity_concrete mac ON mac.WfID=mwc.WfID LEFT JOIN matrioshka.matri_activity_parameter map ON map.ActivityID=mac.ActivityID WHERE mwc.Name="ortho.vt"; Quadro 4. Resultado da consulta de proveniência (iii) Name mafft hmmbuild hmmcalibrate hmmsearch ParamValue null null null -E 0.1 ParamDescription null null null Parâmetro de corte O Quadro 4 mostra todos os programas executados pelo workflow “ortho.vt” e os respectivos parâmetros utilizados durante suas execuções. Os programas que são executados sem parâmetros possuem na coluna “ParamValue” o valor null. (iv) Qual a configuração da instância utilizada para executar a atividade HMMSEARCH do workflow “ortho.vt”? 37 SELECT mic.* FROM matrioshka.matri_workflow_concrete mwc INNER JOIN matrioshka.matri_activity_concrete mac ON mac.WfID=mwc.WfID INNER JOIN matrioshka.matri_execution me ON me.ActivityID=mac.ActivityID INNER JOIN matrioshka.matri_instance mi ON mi.InstanceID=me.InstanceID INNER JOIN matrioshka.matri_instance_configuration mic ON mic.ID=mi.ID WHERE mwc.Name="ortho.vt" AND mac.Name="hmmsearch" GROUP BY mic.Type; Quadro 5. Resultado da consulta de proveniência (iv) ID Memory Disk Type CPU_Units CPU_Cores Supported_Platform 15 1 Core 32 ou 64 bits Micro 9 613 Mb 1 ECU Gb O Quadro 5 mostra as configurações de hardware da instância utilizada na execução da atividade HMMSEARCH do workflow “ortho.vt”, permitindo assim ao pesquisador conhecer qual o ambiente computacional utilizado na execução dessa atividade. Para finalizar as possíveis consultas que podem ser realizadas utilizando os metadados de proveniência capturados pela Matrioshka, propomos duas consultas que utilizem, ao mesmo tempo, os metadados armazenados nos dois Repositórios de Proveniência, o Local e o da Nuvem. (v) Qual a versão do VisTrails e o usuário local da máquina onde está instalado o SGWfC foram utilizados na execução das atividades do workflow “ortho.vt” na instância i-2715e746? 38 SELECT mac.Name, we.vt_version, we.user FROM matrioshka.matri_instance mi INNER JOIN matrioshka.matri_execution me ON me.InstanceID=mi.InstanceID INNER JOIN matrioshka.matri_activity_concrete mac ON mac.ActivityID=me.ActivityID INNER JOIN matrioshka.matri_workflow_concrete mwc ON mwc.WfID=mac.WfID INNER JOIN vt.workflow_exec we ON we.entity_id=mwc.WfVtID WHERE mi.Instance="i-2715e746" AND mwc.Name="ortho.vt" GROUP BY mac.Name; Quadro 6. Resultado da consulta de proveniência (v) Name hmmbuild hmmcalibrate hmmsearch mafft vt_version 1.5 1.5 1.5 1.5 user kdu kdu kdu kdu O Quadro 6 mostra a partir de qual versão do SGWfC VisTrails as atividades do workflow “ortho.vt” foram invocadas e qual o usuário da máquina local realizou essa invocação para que as atividades fossem executadas na instância do ambiente de nuvem. (vi) Qual a versão do esquema do banco de dados utilizado pelo VisTrails para armazenar os metadados de proveniência local gerados pelo experimento OrthoSearch on the Clouds? 39 SELECT w.version FROM matrioshka.matri_experiment me INNER JOIN matrioshka.matri_workflow_abstract mwa ON mwa.ExperimentID=me.ExperimentID INNER JOIN matrioshka.matri_workflow_concrete mwc ON mwc.WfAbsID=mwa.WfAbsID INNER JOIN vt.workflow w ON w.id=mwc.WfVtID WHERE me.Name="OrthoSearch on the Clouds"; Quadro 7. Resultado da consulta de proveniência (vi) version 1.0.2 O Quadro 7 mostra a versão do esquema do banco de dados utilizado para armazenar os metadados de proveniência gerados no experimento OrthoSearch on the Clouds no Repositório de Proveniência Local do SGWfC VisTrails. As consultas realizadas evidenciam o potencial da arquitetura no que se refere aos metadados de proveniência coletados no ambiente de nuvens computacionais, os quais também podem ser utilizados juntamente com os metadados de proveniência do ambiente local onde o SGWfC está instalado, conforme demonstrado na consulta (vi). Através dos repositórios de metadados de proveniência existentes na arquitetura proposta, consultas podem ser respondidas utilizando tanto os metadados de proveniência prospectiva quanto retrospectiva. 40 Capítulo 5 - Conclusão Concluindo a dissertação, nesse capítulo são apresentadas as principais contribuições da arquitetura proposta para a coleta de proveniência no ambiente de nuvens computacionais, além das suas limitações e os trabalhos que ainda precisam ser realizados. 5.1 Contribuições A arquitetura proposta traz como principal contribuição para a comunidade científica a possibilidade da execução de experimento científicos in silico mapeados como workflows científicos em ambientes de nuvens computacionais, um novo paradigma de computação que vem sendo largamente utilizado na indústria. Porém, na execução de experimentos científicos o ambiente de nuvens é ainda pouco utilizado. Isso ocorre principalmente pela carência nesses ambientes de um mecanismo para a coleta de metadados de proveniência. Para solucionar essa carência é proposta a adaptação da arquitetura da Matrioshka para esse novo ambiente, a qual inicialmente foi proposta para o ambiente de clusters e grades computacionais. Com a utilização dessa nova arquitetura proposta, um grande número de cientistas que não possuem recursos para montar ambientes computacionais geralmente caros e complexos, como clusters e grades computacionais, ou desejem realizar experimentos in silico exploratório, o que não justifica a instalação e configuração desses ambientes, podem utilizar o ambiente de nuvens computacionais e contar com um mecanismo que vai garantir a reprodutibilidade e a validade desses experimentos perante outros cientistas. A proposta dos serviços de nuvens para workflows científicos e seus resultados são discutidos em (PAULINO et al., 2011). Outra contribuição dessa arquitetura é a possibilidade de utilizar os metadados de proveniência coletados para realizar avaliações de desempenho comparando os experimentos executados no ambiente de nuvem com os experimentos executados em outros ambientes, locais ou distribuídos. O modelo de dados do Repositório de Proveniência da Nuvem também é uma contribuição que merece destaque, visto que, através do levantamento bibliográfico 41 realizado não foi localizado nenhum modelo de dados com o propósito de armazenar os metadados de proveniência, tanto prospectiva quanto retrospectiva, para o ambiente de nuvens. Esse modelo de dados pode ser utilizado por outros mecanismos de coleta de proveniência da nuvem, ou estendido para armazenar também proveniência do ambiente local de execução do SGWfC, levando em consideração que o mesmo segue as recomendações do OPM. 5.2 Limitações do trabalho Existem algumas limitações na arquitetura apresentada nessa dissertação. A primeira se refere a criação dos manifestos utilizados para informar os dados de configuração do ambiente de nuvem utilizado (SetupManifest.xml), do experimento (ExperimentManifest.xml) e das atividades do workflow executadas no ambiente de nuvem (ActivityManifest.xml). Na arquitetura proposta os dados contidos nesses manifestos são incluídos manualmente pelo cientista o que pode ser uma tarefa trabalhosa. A segunda limitação se refere à ausência de uma interface para o cientista realizar consultas de proveniência na base de metadados capturados do ambiente de nuvem e local, simultaneamente. Atualmente essas consultas são realizadas utilizando ferramentas próprias do SGBD MySQL. A terceira limitação é que a arquitetura proposta foi avaliada apenas no SGWfC VisTrails. O relacionamento entre o Repositório de Proveniência Local com o Repositório de Proveniência da Nuvem ocorre utilizando identificadores próprios do esquema de proveniência do VisTrails. 5.3 Trabalhos futuros Como trabalhos futuros podem ser criados cartuchos para a geração dos dados contidos nos arquivos de manifesto. Esses cartuchos podem ser usados para capturar esses dados de outras ferramentas e gerar automaticamente os arquivos de manifestos necessários para o funcionamento da arquitetura proposta. Além disso, pode ser criada uma ferramenta para a realização de consultas de proveniência mais intuitiva sem a necessidade do cientista interagir com ferramentas próprias do SGBD. 42 Um outro trabalho futuro a ser realizado é a integração dos repositórios de proveniência local e da nuvem em um único repositório, com o objetivo de otimizar a realização de consultas que utilizem os metadados de proveniência coletados nos dois ambientes. 43 Referências Bibliográficas ALTINTAS, I., BERKLEY, C., JAEGER, E., JONES, M., LUDASCHER, B., MOCK, S., 2004, "Kepler: an extensible system for design and execution of scientific workflows". In: Scientific and Statistical Database Management, pp. 423-424, Grécia. AMAZON EC2, Amazon Elastic Compute Cloud. Disponível em: <http://aws.amazon.com/ec2/>. Acesso em: 10 set. 2010. BARGA, R., GANNON, D., "Scientific versus Business Workflows". In: Workflows for e-Science, Springer, pp. 9-16, 2007. BUNEMAN, P., KHANNA, S., TAN, W., "Why and Where: A Characterization of Data Provenance", International Conference on Database Theory, 316-330, 2001 CALLAHAN, S. P., FREIRE, J., SANTOS, E., SCHEIDEGGER, C. E., SILVA, C. T., VO, H. T., 2006, "VisTrails: visualization meets data management". In: SIGMOD, pp. 745-747, Chicago, Illinois, USA. CRUZ, S., 2011, Uma estratégia de apoio à gerência de dados de proveniência em experimentos científicos. Tese de D.Sc., COPPE/UFRJ, Rio de Janeiro, RJ, Brazil. CRUZ, S. M. S. D., BARROS, P. M., BISCH, P. M., CAMPOS, M. L. M., MATTOSO, M., 2008a, "Provenance Services for Distributed Workflows". In: Proceedings of the 2008 Eighth IEEE International Symposium on Cluster Computing and the Grid, pp. 526-533 CRUZ, S. M. S. D., BATISTA, V., DÁVILA, A. M. R., SILVA, E., TOSTA, F., VILELA, C., CAMPOS, M. L. M., CUADRAT, R., TSCHOEKE, D., et al., 2008b, "OrthoSearch: a scientific workflow approach to detect distant homologies on protozoans". In: Proc. of the ACM SAC, pp. 1282-1286, Fortaleza, Ceara, Brazil. DAVIDSON, S. B., FREIRE, J., 2008, "Provenance and scientific workflows: challenges and opportunities". In: Proceedings of the 2008 ACM SIGMOD international conference on Management of data, pp. 1345-1350, Vancouver, Canada. DEELMAN, E., MEHTA, G., SINGH, G., SU, M., VAHI, K., "Pegasus: Mapping Large-Scale Workflows to Distributed Resources", In: Workflows for e-Science, Springer, pp. 376-394, 2007. FOSTER, I., ZHAO, Y., RAICU, I., LU, S., 2008, "Cloud Computing and Grid Computing 360-Degree Compared". In: Grid Computing Environments Workshop, 2008. GCE '08, pp. 10-11. FOSTER, I., KESSELMAN, C., 2004, The Grid: Blueprint for a New Computing Infrastructure. Morgan Kaufmann. FREIRE, J., KOOP, D., SANTOS, E., SILVA, C. T., 2008, "Provenance for Computational Tasks: A Survey", Computing in Science and Engineering, v. 10, n. 3, pp. 11-21. GANYMED, Ganymed SSH-2 for Java. Disponível em: <http://www.ganymed.ethz.ch/ssh2/>. Acesso em: 31 ago. 2011. GOBLE, C., WROE, C., STEVENS, R., 2003, "The myGrid project: services, architecture and demonstrator". In: Proc. of the UK e-Science All Hands Meeting 44 GROTH, P., DEELMAN, E., JUVE, G., MEHTA, G., BERRIMAN, B., 2009, "Pipeline-centric provenance model". In: Proceedings of the 4th Workshop on Workflows in Support of Large-Scale Science, pp. 1-8, Portland, Oregon. HEY, T., TANSLEY, S., TOLLE, K., 2009, The Fourth Paradigm: Data-Intensive Scientific Discovery. Microsoft Research. HOFFA, C., MEHTA, G., FREEMAN, T., DEELMAN, E., KEAHEY, K., BERRIMAN, B., GOOD, J., 2008, "On the use of cloud computing for scientific workflows". In: IEEE Fourth International Conference on eScience (eScience 2008), Indianapolis, USA, pp. 7-12 HULL, D., WOLSTENCROFT, K., STEVENS, R., GOBLE, C., POCOCK, M. R., LI, P., OINN, T., 2006, "Taverna: a tool for building and running workflows of services", Nucleic Acids Research, v. 34, n. 2, pp. 729-732. IBM SMART BUSINESS DEVELOPMENT & TEST. Disponível em: <https://www949.ibm.com/cloud/developer/dashboard>. Acesso em: 19 mar. 2010. JACOB, J. C., KATZ, D. S., BERRIMAN, G. B., GOOD, J. C., LAITY, A. C., DEELMAN, E., KESSELMAN, C., SINGH, G., SU, M., et al., 2009, "Montage: a grid portal and software toolkit for science-grade astronomical image mosaicking", Int. J. Comput. Sci. Eng., v. 4, n. 2, pp. 73-87. JARRARD, R. D. Scientific Methods. Online book, 2001. Disponível em: <http://emotionalcompetency.com/sci/booktoc.html>. Acesso em: 10 ago. 2011. KIM, J., DEELMAN, E., GIL, Y., MEHTA, G., RATNAKAR, V., 2008, "Provenance trails in the Wings-Pegasus system", Concurrency and Computation: Practice & Experience, v. 20 (Apr.), pp. 587-597. KIM, W., KIM, S. D., LEE, E., LEE, S., 2009, "Adoption issues for cloud computing". In: Proceedings of the 11th International Conference on Information Integration and Web-based Applications & Services, pp. 3-6, Kuala Lumpur, Malaysia. MATSUNAGA, A., TSUGAWA, M., FORTES, J., "CloudBLAST: Combining MapReduce and Virtualization on Distributed Resources for Bioinformatics Applications", IEEE eScience 2008, 222-229, 2008. MATTOSO, M., WERNER, C., TRAVASSOS, G. H., BRAGANHOLO, V., MURTA, L., OGASAWARA, E., OLIVEIRA, D., CRUZ, S. M. S. D., MARTINHO, W., 2010, "Towards Supporting the Life Cycle of Large-scale Scientific Experiments", Int Journal of Business Process Integration and Management, v. 5, n. 1, p. 79-92. MOREAU, L., FREIRE, J., FUTRELLE, J., MCGRATH, R., MYERS, J., PAULSON, P., "The Open Provenance Model: An Overview", Provenance and Annotation of Data and Processes, 323-326, 2008. MUNISWAMY-REDDY, K., MACKO, P., SELTZER, M., 2009, "Making a cloud provenance-aware". In: First workshop on Theory and practice of provenance, pp. 1-10, San Francisco, CA. NAPPER, J., BIENTINESI, P., 2009, "Can cloud computing reach the top500?". In: Proceedings of the combined workshops on UnConventional high performance computing workshop plus memory access workshop, pp. 17-20, Ischia, Italy. NURMI, D., WOLSKI, R., GRZEGORCZYK, C., OBERTELLI, G., SOMAN, S., YOUSEFF, L., ZAGORODNOV, D., 2008, "The Eucalyptus Open-source Cloud-computing System". In: Proceedings of Cloud Computing and Its Applications. OLIVEIRA, D., BAIÃO, F., MATTOSO, M., 2007, "MiningFlow: Adding Semantics to Text Mining Workflows". In: First Poster Session of the Brazilian Symposium on Databases, pp. 15-18, João Pessoa, PB - Brazil. 45 OLIVEIRA, D., BAIÃO, F., MATTOSO, M., "Towards a Taxonomy for Cloud Computing from an e-Science Perspective", In: Cloud Computing: Principles, Systems and Applications (to be published), Heidelberg: Springer-Verlag, 2010a. OLIVEIRA, D., OCANA, K., OGASAWARA, E., DIAS, J., BAIÃO, F., MATTOSO, M., 2011a, "A Performance Evaluation of X-ray Crystallography Scientific Workflow using SciCumulus". In: International Conference on Cloud Computing, Washington D.C. OLIVEIRA, D., OGASAWARA, E., BAIÃO, F., MATTOSO, M., 2010b, "SciCumulus: A Lightweigth Cloud Middleware to Explore Many Task Computing Paradigm in Scientific Workflows". In: International Conference on Cloud Computing, pp. 378 - 385, Miami, FL. OLIVEIRA, D., OGASAWARA, E., OCANA, K., BAIAO, F., MATTOSO, M., "An Adaptive Parallel Execution Strategy for Cloud-based Scientific Workflows", Concurrency and Computation: Practice and Experience, 2011b. PAULINO, C., CRUZ, S., OLIVEIRA, D., CAMPOS, M. L. M., MATTOSO, M., 2011, "Capturing Distributed Provenance Metadata from Cloud-Based Scientific Workflows", Journal of Information and Data Management, v. 2, n. 1, pp. 4350. PAULINO, C., OLIVEIRA, D., CRUZ, S. M. S., CAMPOS, M. L. M., MATTOSO, M., 2010, "Captura de Metadados de Proveniência para Workflows Científicos em Nuvens Computacionais". In: Anais do XXV Simpósio Brasileiro de Banco de Dados, Belo Horizonte, Minas Gerais, Brazil. PAULINO, C., OLIVEIRA, D., CRUZ, S. M. S., MATTOSO, M., 2009, "Captura de Proveniência de Workflows Científicos Executados em Nuvem". In: Proc. III Sessão de Pôsteres do XXIV SBBD, Fortaleza, Ceara, Brazil. S3QL. Disponível em: <http://code.google.com/p/s3ql/>. Acesso em: 10 set. 2011. SIMMHAN, Y., BARGA, R., VAN INGEN, C., LAZOWSKA, E., SZALAY, A., 2008, "On Building Scientific Workflow Systems for Data Management in the Cloud". In: eScience, 2008, pp. 434-435 SIMMHAN, Y., PLALE, B., GANNON, D., 2006, "A Framework for Collecting Provenance in Data-Centric Scientific Workflows". In: ICWS, pp. 427-436 SOANES, C., STEVENSON, A., 2003, Oxford Dictionary of English. 2 ed. Oxford University Press. TAYLOR, I., SHIELDS, M., WANG, I., HARRISON, A., "The Triana Workflow Environment: Architecture and Applications", In: Workflows for e-Science, Springer, pp. 320-339, 2007a. TAYLOR, I. J., DEELMAN, E., GANNON, D. B., SHIELDS, M., 2007b, Workflows for e-Science: Scientific Workflows for Grids. 1 ed. Springer. TRAVASSOS, G. H., BARROS, M. O., 2003, "Contributions of In Virtuo and In Silico Experiments for the Future of Empirical Studies in Software Engineering". In: Proc. of 2nd Workshop on Empirical Software Engineering the Future of Empirical Studies in Software Engineering, pp. 117-130, Roma. VAQUERO, L. M., RODERO-MERINO, L., CACERES, J., LINDNER, M., 2009, "A break in the clouds: towards a cloud definition", SIGCOMM Comput. Commun. Rev., v. 39, n. 1, pp. 50-55. WANG, L., TAO, J., KUNZE, M., CASTELLANOS, A. C., KRAMER, D., KARL, W., 2008, "Scientific Cloud Computing: Early Definition and Experience". In: 10th IEEE HPCC, pp. 825-830, Los Alamitos, CA, USA. WFMC, I., 1997, The WfMC glossary, pp. 385-421. 46 ZHAO, Y., HATEGAN, M., CLIFFORD, B., FOSTER, I., VON LASZEWSKI, G., NEFEDOVA, V., RAICU, I., STEF-PRAUN, T., WILDE, M., 2007, "Swift: Fast, Reliable, Loosely Coupled Parallel Computation". In: Proc. of the 3rd IEEE World Congress on Services, pp. 199-206, Salt Lake City, USA. ZHAO, Y., RAICU, I., FOSTER, I., 2008, "Scientific Workflow Systems for 21st Century, New Bottle or New Wine?". In: IEEE Congress on Services, pp. 467471. 47