• Nenhum resultado encontrado

Capítulo 8 Trabalhos Relacionados

8.3 Abordagens Existentes para Captura de Proveniência em Nuvens

Como a captura de proveniência no SciCumulus é um dos diferenciais da abordagem, foi considerada importante a comparação do mecanismo de captura de proveniência do SciCumulus frente as abordagens no estado da arte. Para avaliar as diferentes abordagens relacionadas à captura de proveniência de workflows científicos em nuvens, foi realizada uma busca sistemática, datada de 22 de janeiro de 2012, nas bases de dados do Scopus, ACM Digital Library e IEEE Xplore, utilizando a seguinte string de busca: “workflow” AND (“cloud” OR “cloud computing”) AND (“provenance” OR “lineage”). As buscas retornaram 32 artigos, dos quais 15 foram selecionados para leitura completa por apresentarem abordagens de captura de proveniência de workflows em nuvens. Adicionalmente a esta busca sistemática na área de workflows científicos foi feita uma pesquisa ad hoc visando complementar as bases pesquisadas e incluir a literatura nacional, que muitas vezes não é indexada nestas bases. As abordagens para captura de proveniência, distribuída ou não, seguem duas direções distintas. Em geral, existem dois tipos de mecanismos para a coleta destes descritores: os dependentes de SGWfC e os independentes de SGWfC. Essa seção é separada nestas duas categorias.

8.3.1 Abordagens Acopladas a SGWfC

A maioria dos SGWfC que oferecem recursos de proveniência possuem mecanismos diretamente codificadas e dependentes do motor de execução do SGWfC para capturar os descritores de proveniência durante a composição e execução do workflow. O VisTrails (Callahan et al. 2006), por exemplo, possui mecanismos de proveniência prospectiva e retrospectiva e são armazenados no próprio arquivo do VisTrails (.vt) que é um arquivo compactado com a estrutura do workflow em XML e o log de

proveniência. Este arquivo de log do VisTrails é consultado através da interface e utilizando uma linguagem própria (VTQL). Uma das vantagens oferecidas pelo VisTrails é o controle de versões oferecido de forma nativa. Por outro lado o VisTrails não trata a proveniência distribuída uma vez que este não é o foco do SGWfC.

Similarmente ao VisTrails, o Taverna (Hull et al. 2006a) e o PASOA (Groth et

al. 2004) também possuem recursos para captura de proveniência da execução, sendo

que o primeiro com a vantagem de oferecer proveniência associada a questão ontológica, para prover consultas com mais semântica. O Taverna grava os dados de proveniência em formato RDF, possibilitando assim consultas de mais alto nível para serem realizadas em SPARQL (Segaran et al. 2009). Como o PASOA armazena os dados de proveniência no formato XML, as consultas de proveniência são realizadas utilizando XQuery (Chamberlin 2003). O Kepler oferece um componente (chamado de diretor) especializado na captura de proveniência (Altintas et al. 2006, Bowers et al. 2008). Apesar de oferecer mecanismos para execução distribuída em grades, o Kepler só captura a proveniência da máquina centralizada que iniciou a execução, não levando em consideração a questão da proveniência obtida no ambiente distribuído. Apesar de armazenar os dados de proveniência em formato relacional, as consultas de proveniência são realizadas utilizando ProLog (Wikipedia 2011).

Existem ainda os SGWfC que focam em distribuição e por isso oferecem mecanismos de captura de proveniência distribuída, como o Swift (Zhao et al. 2007) e o Pegasus (Deelman et al. 2007). Em especial o Pegasus possui mecanismos nativos para captura de proveniência de workflows executados em nuvens (Vöckler et al. 2011), entretanto os dados capturados se limitam a informações da máquina virtual utilizada e tempos de execução das tarefas paralelas. Além disso, todas as abordagens supracitadas apenas disponibilizam a proveniência para os usuários ao final da execução do

workflow, fazendo com que mecanismos de steering e de monitoramento sejam mais

complexos de serem desenvolvidos por terceiros e acoplados ao sistema. Tanto o Pegasus quanto o Swift armazenam os dados de proveniência na forma relacional, entretanto diferem na abordagem de consulta. O Pegasus possibilita ao usuário realizar consultas utilizando SPARQL (DuCharme 2011) enquanto que o Swift utiliza a linguagem SQL.

8.3.2 Abordagens Independentes de SGWfC

Diferentemente das abordagens anteriores, existem propostas de sistemas de captura de proveniência que atuam independente de SGWfC. Um exemplo destes sistemas é o ProvManager (Marinho et al. 2009, 2010a, 2010b, 2011). O ProvManager utiliza uma abordagem de instrumentação do workflow para incluir componentes de captura de proveniência. Entretanto a proveniência capturada não leva em consideração os dados de proveniência da execução distribuída. Uma das vantagens da utilização do ProvManager é que o mesmo trabalha com a questão do conceito de experimento, podendo associar os dados de proveniência de vários workflows independentes. O ProvManager trabalha com workflows gerados no Kepler, Taverna e VisTrails e armazena os dados de proveniência como fatos em ProLog, fazendo com que a consulta a estes dados seja realizada em ProLog. Outro sistema que captura a proveniência de forma semelhante é o Zoom (Kim et al. 2008). Entretanto, nenhuma destas abordagens está preparada para capturar dados de proveniência de workflows executados em nuvens de computadores. Diferentemente do ProvManager, o Zoom armazena os dados de forma relacional e a consulta é realizada utilizando SQL.

Existem abordagens que já oferecem mecanismos para a captura de proveniência em nuvens. Uma delas é o PASS (Simmhan et al. 2010), que é um sistema para coleta e armazenamento de proveniência distribuída. O PASS propõe a utilização de estruturas de armazenamento nativas da nuvem, como o Simple Storage Service (S3), o SimpleDB e o Simple Queueing Service (SQS) da Amazon EC2. Entretanto essa proposta se mostra deficiente em alguns pontos, como por exemplo, no caso do S3 que se mostrou ineficiente na consulta aos dados armazenados e o SimpleDB não garante a atomicidade dos dados. Além disso, toda a proposta depende das estruturas nativas da nuvem da Amazon EC2, com isso, caso o ambiente de execução não seja a nuvem da Amazon EC2 o sistema terá que ser totalmente adaptado. O PASS armazena os dados no formato XML e a consulta só pode ser realizada através da API fornecida.

Outra abordagem capaz de capturar proveniência em nuvens computacionais é a Matriohska (Cruz et al. 2008a) que inicialmente não focava em nuvens, mas foi estendida para alcançar tal objetivo (Paulino et al. 2009, 2010, 2011). Este trabalho de extensão se deu em conjunto com o autor desta tese e parte do modelo de proveniência da Matriohska foi herdada do modelo de proveniência do SciCumulus. Entretanto o foco da Matriohska é na captura de proveniência de mais alto nível como workflows

abstratos associados a conceitos da ontologia OvO, proposta por Cruz et al. (2011). Além disso, a Matriohska não captura automaticamente os dados do ambiente de nuvem, dependendo do cientista informa-los através de arquivos de manifesto, o que é contraproducente. A Matriohska armazena os dados de forma relacional e a consulta é realizada utilizando a linguagem SQL.

8.3.3 Considerações Sobre as Abordagens Existentes para Captura de

Proveniência em Nuvens Computacionais

Os sistemas PASOA, Zoom, PASS, ProvManager e Matriohska são sistemas de captura de proveniência distribuída independentes de SGWfC. Sendo que os dois primeiros focam em proveniência centralizada e os três últimos sistemas são construídos focados no modelo SaaS, i.e. serviços que podem ser acoplados aos SGWfC existentes. As outras abordagens avaliadas são atreladas aos SGWfC existentes, oferecendo assim um alto grau de dependência com os mesmos. Dentre os sistemas avaliados, observa-se que grande parte utiliza a linguagem SQL para consultar os descritores de proveniência que foram armazenados, Apesar de algumas consultas serem complicadas de desenvolver com SQL, como por exemplo, determinar um fecho transitivo, esta linguagem oferece o apoio necessário para grande parte das consultas importantes para os cientistas. Um resumo das abordagens estudadas se encontra na Tabela 10.

Tabela 10 Quadro comparativo entre as principais abordagens de captura proveniência

Abordagem Escalabilidade Apoio à Nuvem Mecanismo Persistência Consulta

VisTrails Centralizado Não Interno Relacional e XML

VTQL e SQL Kepler Centralizado Não Interno Relacional ProLog Taverna Centralizado Não Interno Relacional e

RDF

TriQL

Swift Distribuído Sim Interno Relacional SQL

Pegasus Distribuído Sim Interno Relacional SPARQL

PASS Distribuído Sim Externo XML API

PASOA Centralizado Não Externo XML XQuery

Zoom Centralizado Não Externo Relacional SQL

ProvManager Distribuído Não Externo ProLog ProLog Matriohska Distribuído Sim Externo Relacional SQL SciCumulus Distribuído Sim Externo Relacional SQL