• Nenhum resultado encontrado

UMA INTERFACE PARA A ANÁLISE DE FLUXO DE DADOS EM SIMULAÇÕES COMPUTACIONAIS INTENSIVAS EM DADOS. Débora Barbosa Pina

N/A
N/A
Protected

Academic year: 2021

Share "UMA INTERFACE PARA A ANÁLISE DE FLUXO DE DADOS EM SIMULAÇÕES COMPUTACIONAIS INTENSIVAS EM DADOS. Débora Barbosa Pina"

Copied!
59
0
0

Texto

(1)

UMA INTERFACE PARA A AN ´ALISE DE FLUXO DE DADOS EM SIMULAC¸ ˜OES COMPUTACIONAIS INTENSIVAS EM DADOS

D´ebora Barbosa Pina

Projeto de Gradua¸c˜ao apresentado ao Curso de Engenharia de Computa¸c˜ao e Informa¸c˜ao da Escola Polit´ecnica da Universidade Federal do Rio de Janeiro como parte dos requisitos necess´arios para a obten¸c˜ao do grau de Engenheiro de Computa¸c˜ao e Informa¸c˜ao.

Orientadores: Marta Lima de Queir´os Mattoso V´ıtor Silva Sousa

Rio de Janeiro Mar¸co de 2018

(2)

UMA INTERFACE PARA A AN ´ALISE DE FLUXO DE DADOS EM SIMULAC¸ ˜OES COMPUTACIONAIS INTENSIVAS EM DADOS

D´ebora Barbosa Pina

PROJETO SUBMETIDO AO CORPO DOCENTE DO CURSO DE

ENGENHARIA DE COMPUTAC¸ ˜AO E INFORMAC¸ ˜AO DA ESCOLA POLIT´ECNICA DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESS ´ARIOS PARA A OBTENC¸ ˜AO DO GRAU DE ENGENHEIRO DE COMPUTAC¸ ˜AO E INFORMAC¸ ˜AO.

Examinadores:

Profa. Marta Lima de Queir´os Mattoso, D.Sc.

V´ıtor Silva Sousa, M.Sc.

Prof. Alexandre de Assis Bento Lima, D.Sc.

Renan Francisco Santos Souza, M.Sc.

RIO DE JANEIRO, RJ – BRASIL MARC¸ O DE 2018

(3)

Barbosa Pina, D´ebora

Uma interface para a an´alise de fluxo de dados em simula¸c˜oes computacionais intensivas em dados/D´ebora Barbosa Pina. – Rio de Janeiro: UFRJ/POLI – COPPE, 2018.

XI, 48 p.: il.; 29, 7cm.

Orientadores: Marta Lima de Queir´os Mattoso V´ıtor Silva Sousa

Projeto (gradua¸c˜ao) – UFRJ/ Escola Polit´ecnica/ Curso de Engenharia Computa¸c˜ao e Informa¸c˜ao, 2018.

Referˆencias Bibliogr´aficas: p. 45 – 48.

1. An´alise de Dados Cient´ıficos. 2. Gerˆencia de Fluxos de Dados. 3. Dados de Proveniˆencia. 4. Bancos de Dados. I. Lima de Queir´os Mattoso, Marta et al. II. Universidade Federal do Rio de Janeiro, Escola Polit´ecnica/ Curso de Engenharia de Computa¸c˜ao e Informa¸c˜ao. III. T´ıtulo.

(4)

Agradecimentos

Agrade¸co `a minha irm˜a e aos meus pais pelo amor incondicional, pela incans´avel luta para proporcionar a realiza¸c˜ao dos meus sonhos e por estarem sempre ao meu lado em todas as fases.

Agrade¸co `a professora Marta Mattoso e ao V´ıtor Silva, meus orientadores, pela oportunidade e assistˆencia na elabora¸c˜ao deste trabalho, al´em da orienta¸c˜ao durante meu per´ıodo de Inicia¸c˜ao Cient´ıfica na Universidade Federal do Rio de Janeiro.

Agrade¸co `a minha psic´ologa que soube me entender e dizer aquilo que eu preci-sava na reta final da universidade, quando tudo parecia mais dif´ıcil.

Por fim, agrade¸co aos amigos que estiveram ao meu lado nesta trajet´oria e que est˜ao comigo nesta jornada que ´e a vida.

(5)

Resumo do Projeto de Gradua¸c˜ao apresentado `a Escola Polit´ecnica/COPPE/UFRJ como parte dos requisitos necess´arios para a obten¸c˜ao do grau de Engenheiro de Computa¸c˜ao e Informa¸c˜ao.

UMA INTERFACE PARA A AN ´ALISE DE FLUXO DE DADOS EM SIMULAC¸ ˜OES COMPUTACIONAIS INTENSIVAS EM DADOS

D´ebora Barbosa Pina

Mar¸co/2018 Orientadores: Marta Lima de Queir´os Mattoso

V´ıtor Silva Sousa

Curso: Engenharia de Computa¸c˜ao e Informa¸c˜ao

Simula¸c˜oes computacionais s˜ao caracterizadas pelo consumo e produ¸c˜ao de grande volume de dados, que s˜ao, geralmente, armazenados em arquivos em diferen-tes formatos, como FITS na astronomia. Com os avan¸cos da tecnologia, simula¸c˜oes computacionais que antes levavam at´e meses para finalizar, agora s˜ao executadas em menos tempo quando usamos um ambiente de Processamento de Alto Desempenho (PAD). Para controlar a execu¸c˜ao da simula¸c˜ao, os usu´arios podem realizar an´alises sobre os dados cient´ıficos, rastreando grandezas que s˜ao de seu interesse. Por´em, em muitos sistemas, esse rastreamento s´o ´e poss´ıvel ap´os o fim da simula¸c˜ao. Ademais, programas ad-hoc s˜ao desenvolvidos pelos usu´arios para extrair dados cient´ıficos de interesse presentes em arquivos. Portanto, para lidar com diferentes formatos de arquivo e para acessar o conte´udo de interesse armazenado nesses arquivos de dados cient´ıficos, sistemas tˆem sido desenvolvidos para auxiliar o usu´ario na extra¸c˜ao e na an´alise de dados de proveniˆencia e de dom´ınio, permitindo o rastreamento dos ele-mentos de dados cient´ıficos. Ainda assim, o usu´ario encontra dificuldade de realizar as suas an´alises nesses sistemas, pois elas exigem o conhecimento de linguagens de consultas espec´ıficas. Para apoiar a an´alise explorat´oria de dados cient´ıficos, esta monografia introduz uma interface gr´afica para permitir a visualiza¸c˜ao das especi-fica¸c˜oes de fluxos de dados armazenadas anteriormente e o rastreamento do fluxo de dados por meio do processamento de consultas, sem a necessidade do usu´ario especificar as an´alises via sintaxe de linguagens de consulta.

Palavras-Chave: An´alise de Dados Cient´ıficos, Gerˆencia de Fluxos de Dados, Dados de Proveniˆencia, Bancos de Dados.

(6)

Abstract of the Undergraduate Project presented to Poli/COPPE/UFRJ as a partial fulfillment of the requirements for the degree of Computer and Information Engineer.

AN INTERFACE FOR DATAFLOW ANALYSIS IN DATA-INTENSIVE COMPUTER SIMULATIONS

D´ebora Barbosa Pina

March/2018

Advisors: Marta Lima de Queir´os Mattoso V´ıtor Silva Sousa

Course: Computer and Information Engineering

Computer simulations are characterized by the consumption and production of large amounts of data, which are usually stored in files in different formats such as FITS in astronomy. With advances in technology, simulations that used to take months to finalize, now run in less time when we use a High Performance Com-puting (HPC) environment. To control the execution of the simulation, users can perform analysis on the scientific data, tracking quantities of interest. However, in many systems, such tracing is only possible at the end of the simulation. In ad-dition, ad-hoc programs are developed to extract scientific data of interest present in files. Therefore, to deal with different file formats and to access the content of interest stored in these scientific data files, systems have been developed to assist the user to extract and analyze provenance and domain data, allowing the tracking of scientific data elements. Even so, analysis in theses systems can be difficult, since they require a specific background in query languages. To support the exploratory analysis of scientific data, this work introduces a graphical interface to allow visu-alization of previously stored dataflow specifications and dataflow tracking through query processing without the user having to specify the analysis via query language syntax.

Keywords: Raw Data Analysis, Dataflow Management, Provenance Data,

(7)

Sum´

ario

Agradecimentos iv Lista de Figuras ix Lista de Tabelas xi 1 Introdu¸c˜ao 1 1.1 Contexto . . . 1 1.2 Motiva¸c˜ao . . . 2 1.3 Contribui¸c˜ao . . . 3

1.4 Organiza¸c˜ao deste documento . . . 4

2 Referencial Te´orico 5 2.1 Simula¸c˜ao Computacional . . . 5

2.2 Abstra¸c˜ao de Fluxo de dados . . . 5

2.2.1 Atributo de dados . . . 6

2.2.2 Elemento de dados . . . 6

2.2.3 Conjunto de dados . . . 6

2.2.4 Transforma¸c˜ao de dados . . . 6

2.2.5 Fluxo de dados . . . 7

2.2.6 Dependˆencia de dados . . . 8

2.2.7 Exemplo . . . 8

2.3 Dados de proveniˆencia . . . 9

2.3.1 Defini¸c˜ao . . . 9

2.3.2 Tipos de proveniˆencia . . . 10

2.4 Rastreamento de dados de proveniˆencia . . . 11

2.4.1 Gerˆencia do fluxo de dados no n´ıvel f´ısico . . . 11

2.4.2 Gerˆencia do fluxo de dados no n´ıvel l´ogico . . . 11

(8)

4 DfAnalyzer 15

4.1 Vis˜ao geral . . . 15 4.2 Modelo arquitetural . . . 16 4.2.1 Provenance Data Extractor (PDE) . . . 17 4.2.2 Raw Data Extractor (RDE) e Raw Data Indexer (RDI) . . . . 17 4.2.3 Dataflow Viewer (DfViewer) . . . 18 4.2.4 Query Interface (QI) . . . 19

5 Interface gr´afica para a an´alise do fluxo de dados em simula¸c˜oes

computacionais 23

5.1 Visualiza¸c˜ao do fluxo de dados . . . 24 5.2 Especifica¸c˜ao da consulta . . . 25 5.3 Processamento de consulta . . . 28

6 Resultados obtidos 30

6.1 Simula¸c˜ao computacional em dinˆamica de fluidos computacionais . . 30 6.2 Uso dos recursos gr´aficos . . . 32

7 Conclus˜ao 43

(9)

Lista de Figuras

2.1 Exemplo de transforma¸c˜ao de dados t com conjunto de dados de

entrada i e conjunto de dados de sa´ıda o. . . 7

2.2 Exemplo de fluxo de dados, com transforma¸c˜oes de dados t1 e t2 e conjuntos de dados s0, s1 e s2. . . 7

2.3 Exemplo de especifica¸c˜ao de fluxo de dados D, com duas trans-forma¸c˜oes de dados e trˆes conjuntos de dados. . . 8

4.1 Arquitetura DfAnalyzer . . . 16

4.2 P´agina com lista de especifica¸c˜oes de fluxos de dados da ferramenta DfAnalyzer [1] . . . 18

4.3 Visualiza¸c˜ao da especifica¸c˜ao do fluxo de dados clothing [1] . . . 19

4.4 Fragmento do fluxo de dados a ser analisado [1] . . . 22

4.5 Resultado ap´os o processamento da consulta [1] . . . 22

5.1 Aba para especifica¸c˜ao da consulta . . . 26

6.1 Fluxo de dados D utilizado no experimento do Cap´ıtulo 6 . . . 31

6.2 Caminho do fluxo de dados D rastreado na consulta #1 . . . 33

6.3 P´agina inicial da interface gr´afica . . . 34

6.4 Fluxo de dados da simula¸c˜ao computacional em sedimenta¸c˜ao . . . . 35

6.5 Escolha do conjunto de dados osolversimulationtransport . . . . 35

6.6 Escolha do conjunto de dados oline0extraction . . . 36

6.7 Resultados da consulta A com o atributo time do conjunto de dados osolversimulationtransport e s, points0, points1 e points2 do conjunto de dados oline0extraction . . . 37

6.8 Resultados da consulta B com o atributo time do conjunto de dados osolversimulationtransport e s, points0, points1 e points2 do conjunto de dados oline0extraction . . . 38

6.9 Resultados da consulta C com o atributo time do conjunto de dados osolversimulationtransport e s, points0, points1 e points2 do conjunto de dados oline0extraction . . . 39

(10)

6.11 Resultados da consulta #2 com o atributo dt do conjunto de dados ogetmaximumiterationstotransport, time do conjunto de dados osol-versimulationtransport e s, points0, points1 e points2 do conjunto de dados oline0extraction . . . 42

(11)

Lista de Tabelas

2.1 Exemplo de atributo de dados . . . 6

4.1 Especifica¸c˜ao da consulta utilizando QI . . . 21

5.1 Especifica¸c˜ao de parˆametros . . . 28

6.1 Exemplos de alguns atributos de dados de S . . . 32

6.2 Argumentos do Query Interface para a consulta #1 . . . 32

(12)

Cap´ıtulo 1

Introdu¸

ao

Este cap´ıtulo apresenta o contexto, a motiva¸c˜ao e as contribui¸c˜oes deste trabalho. Al´em disso, a organiza¸c˜ao desta monografia ´e descrita no final desta introdu¸c˜ao.

1.1

Contexto

Simula¸c˜oes computacionais tˆem o objetivo de ratificar uma hip´otese cient´ıfica. Fre-quentemente, essas simula¸c˜oes s˜ao complexas, com resultados mais detalhados e as suas execu¸c˜oes vˆem se tornando cada vez mais eficientes devido aos avan¸cos na computa¸c˜ao, como os ambientes de Processamento de Alto Desempenho (PAD), que possibilitam a execu¸c˜ao paralela das simula¸c˜oes [2, 3]. Nesse contexto, essas simula¸c˜oes envolvem a execu¸c˜ao de uma sequˆencia de programas cient´ıficos, em que dados cient´ıficos (i.e., dados do dom´ınio cient´ıfico) gerados por um programa s˜ao consumidos por outro, formando um fluxo de dados [4]. Por conta de sua caracter´ıstica explorat´oria e do n´ıvel de detalhamento dos resultados obtidos, as simula¸c˜oes computacionais envolvem a gera¸c˜ao de um grande volume de dados.

Para viabilizar a an´alise desses dados cient´ıficos durante a execu¸c˜ao da simula¸c˜ao, algoritmos tˆem sido desenvolvidos de maneira a acessar os dados em suas fontes de dados, que podem ser estruturas de dados ainda alocados em mem´oria ou arquivos. Por´em, o desenvolvimento desses programas para acessar ou analisar os dados ci-ent´ıficos presentes em fontes de dados consiste em uma tarefa que consome bastante tempo e suscet´ıvel a erros, j´a que os arquivos podem apresentar diferentes formatos (ex.: FITS para astronomia) ou mesmo os dados podem assumir diversas estruturas [2].

Al´em da extra¸c˜ao dos dados cient´ıficos dos arquivos, esses programas podem preparar os dados para o processamento de consultas definidas e realizadas por especialistas do dom´ınio durante ou ap´os a simula¸c˜ao computacional [2]. Por´em, em ambos os casos, as consultas s˜ao ad-hoc, isto ´e, cada programa de an´alise de dados cient´ıficos resolve apenas um tipo de consulta e dependendo do resultado

(13)

que o especialista do dom´ınio recebe do processamento da consulta, pode haver a necessidade de modifica¸c˜oes na especifica¸c˜ao da consulta e, consequentemente, no programa de an´alise.

Nesse cen´ario, a an´alise explorat´oria de dados cient´ıficos abrange diferentes tipos de consultas aos dados cient´ıficos, que visam acessar (i) dados cient´ıficos pontuais (resultados parciais ou finais) presentes em arquivos de dados cient´ıficos, (ii) o fluxo de arquivos, e (iii) elementos de dados consumidos e produzidos pela sequˆencia de programas cient´ıficos executados (fluxo de elementos de dados) [2]. Considerando o estado da arte, as principais solu¸c˜oes existentes baseiam-se em an´alises realizadas ao final da execu¸c˜ao da simula¸c˜ao computacional, o que, em cen´arios de larga escala, leva semanas ou meses. Diferentemente dessas solu¸c˜oes, essa monografia baseia-se em uma abordagem baseada na an´alise de dados cient´ıficos em tempo de execu¸c˜ao [4].

1.2

Motiva¸

ao

Uma forma de viabilizar a gerˆencia e o monitoramento do desempenho em tempo de execu¸c˜ao consiste em modelar a simula¸c˜ao computacional como um workflow ci-ent´ıfico [5]. Assim, Sistemas de Gerˆencia de Workflows Cient´ıficos (SGWfC) s˜ao desenvolvidos para modelar, executar e monitorar os workflows cient´ıficos. Alguns desses SGWfC permitem a execu¸c˜ao paralela dos programas e gerenciam a distri-bui¸c˜ao dos dados nos recursos computacionais dispon´ıveis. Dessa forma, um SGWfC consiste em um sistema que executa aplica¸c˜oes cient´ıficas cuja ordem de execu¸c˜ao ´e definida por uma representa¸c˜ao digital da l´ogica do workflow [6], baseada na de-pendˆencia de dados.

Os SGWfC registram a execu¸c˜ao do workflow por meio dos dados de pro-veniˆencia, que s˜ao informa¸c˜oes sobre o processo de transforma¸c˜ao dos dados, o que ´e essencial para preserv´a-los e determinar sua qualidade, reproduzi-los, assim como interpretar e validar os resultados gerados [3]. Al´em dos dados de proveniˆencia, os especialistas tamb´em necessitam de dados espec´ıficos do dom´ınio, o conte´udo de arquivos que s˜ao produzidos e consumidos pelos programas cient´ıficos, que s˜ao essenciais para investigar comportamentos em um determinado dom´ınio da ciˆencia [3].

Muitos dos SGWfC existentes, como o Pegasus e o Swift/T, gerenciam tanto a execu¸c˜ao do workflow em ambientes de PAD quanto capturam os dados de pro-veniˆencia correspondentes ao workflow [3]. Entretanto, as solu¸c˜oes baseadas na abs-tra¸c˜ao de workflow cient´ıfico apresentam limita¸c˜oes quanto ao potencial anal´ıtico, pois n˜ao consideram o acesso e a extra¸c˜ao dos dados cient´ıficos presentes em fontes de dados, ou mesmo a an´alise do fluxo de elementos de dados cient´ıficos, conforme

(14)

discutido nos trˆes tipos frequentes de consultas para a an´alise explorat´oria de dados cient´ıficos. Ou seja, do ponto de vista anal´ıtico, as an´alises comumente desejadas pelos especialistas do dom´ınio est˜ao focadas no fluxo de dados cient´ıficos pelos pro-gramas cient´ıficos.

Entre as solu¸c˜oes existentes que apoiam an´alises em fluxos de dados podemos citar o SQLShare que n˜ao tem a extra¸c˜ao de dados brutos e apresenta dificuldade em lidar com muitos dados cient´ıficos. Portais como esses oferecem funcionalidades para a realiza¸c˜ao de an´alises do fluxo de dados em simula¸c˜oes computacionais atrav´es do processamento de consultas previamente definidas, ou seja, n˜ao ´e poss´ıvel edit´a-las. Al´em disso, a maioria desses sistemas permite apenas que os usu´arios analisem os dados ap´os a execu¸c˜ao da simula¸c˜ao [7]. Ademais, a especifica¸c˜ao de consultas sobre uma base de dados exige conhecimentos em linguagem do tipo SQL (Structured Query Language), SPARQL ou Prolog.

Considerando facilitar a an´alise do fluxo de dados impl´ıcito em simula¸c˜oes com-putacionais, esta monografia prop˜oe o uso da ferramenta DfAnalyzer [8] para realizar a extra¸c˜ao de dados cient´ıficos e o registro de dados de proveniˆencia em uma base de dados, assim como uma extens˜ao dessa ferramenta para oferecer recursos anal´ıticos. Especificamente, esta monografia introduz uma interface gr´afica capaz de prover visualiza¸c˜oes das especifica¸c˜oes de fluxos de dados armazenados na base de dados, al´em da submiss˜ao e execu¸c˜ao de consultas na base de dados em tempo de execu¸c˜ao da simula¸c˜ao computacional, sem a utiliza¸c˜ao de uma linguagem declarativa para o processamento de consultas, como SQL.

1.3

Contribui¸

ao

Diante desse contexto e dessa motiva¸c˜ao, para evitar que o especialista do dom´ınio tenha que se afastar de sua pesquisa para dominar t´ecnicas de computa¸c˜ao, esta mo-nografia contribui com a an´alise do fluxo de dados cient´ıficos em tempo de execu¸c˜ao. Al´em disso, ao aliar a abstra¸c˜ao de fluxo de dados com os conceitos de proveniˆencia de dados, essa solu¸c˜ao permite a rastreabilidade, a reprodutibilidade e a confiabi-lidade dos dados produzidos. Com o apoio `a captura de dados de proveniˆencia, consultas ao fluxo de elementos de dados [4] podem ser realizadas, apresentando uma abordagem intuitiva para o usu´ario e uma forma vers´atil de avaliar e reavaliar os resultados parciais e finais obtidos pelas simula¸c˜oes computacionais.

Assim, a abordagem descrita nesta monografia permite que os especialistas do dom´ınio investiguem os dados referentes ao dom´ınio da simula¸c˜ao, por meio da an´alise de dados cient´ıficos extra´ıdos de fontes de dados e do fluxo de elementos de dados pelos programas cient´ıficos encadeados. Do ponto de vista da usabilidade, desenvolveu-se uma interface gr´afica que permite os usu´arios definirem apenas os

(15)

atributos e as condi¸c˜oes de valores de atributos de interesse, assim como os conjuntos de dados envolvidos na an´alise de um fragmento do fluxo de dados. Desta forma, a importˆancia desta monografia est´a relacionada com a possibilidade de que hip´oteses propostas pelos especialistas do dom´ınio sejam devidamente analisadas e avaliadas por meio da interface gr´afica, que facilita a especifica¸c˜ao das consultas de interesse e a visualiza¸c˜ao dos resultados cient´ıficos.

1.4

Organiza¸

ao deste documento

Esta monografia est´a organizada em outros 6 cap´ıtulos al´em desta introdu¸c˜ao. O Cap´ıtulo 2 apresenta a fundamenta¸c˜ao te´orica necess´aria para melhor compreens˜ao desta monografia. O Cap´ıtulo 3 apresenta os trabalhos relacionados a esta mono-grafia quanto a an´alise explorat´oria de dados cient´ıficos. O Cap´ıtulo 4 descreve a ferramenta DfAnalyzer utilizada no desenvolvimento desta monografia. No Cap´ıtulo 5 apresentamos decis˜oes quanto a implementa¸c˜ao e a interface gr´afica desenvolvida. O Cap´ıtulo 6 discute o resultado obtido atrav´es da interface desenvolvida utilizando uma simula¸c˜ao computacional. Finalmente, o Cap´ıtulo 7 conclui a monografia com perspectivas de trabalhos futuros.

(16)

Cap´ıtulo 2

Referencial Te´

orico

Este cap´ıtulo tem como finalidade apresentar as principais defini¸c˜oes para melhor compreens˜ao desta monografia. Por isso, os conceitos de fluxo de dados, proveniˆencia e rastreamento s˜ao definidos formalmente. Destaca-se que os conceitos apresentados foram retirados de [2].

2.1

Simula¸

ao Computacional

Uma simula¸c˜ao computacional contempla a execu¸c˜ao de modelos computacionais cada vez mais complexos com o objetivo de avaliar um determinado comporta-mento cient´ıfico. Normalmente, uma simula¸c˜ao computacional ´e caracterizada pela execu¸c˜ao de diversos programas cient´ıficos encadeados. No cen´ario de larga escala, o volume de dados manipulados por esses programas comumente exige o uso de um ambiente de Processamento de Alto Desempenho (PAD) [9], a fim de tirar proveito do paralelismo de dados. Al´em disso, os dados cient´ıficos produzidos, consumidos e propagados pelos programas encadeados em uma simula¸c˜ao computacional podem ser modelados como um fluxo de dados, conforme explicado na Se¸c˜ao 2.2. Nessa abstra¸c˜ao, os programas cient´ıficos e as dependˆencias de dados s˜ao representados por transforma¸c˜oes de dados e fluxos de dados entre duas transforma¸c˜oes de dados (isto ´e, conjuntos de dados), respectivamente [9].

2.2

Abstra¸

ao de Fluxo de dados

Esta monografia segue a abstra¸c˜ao de fluxo de dados apresentada em [10], que visa re-presentar como os elementos de dados s˜ao consumidos, produzidos e propagados por diferentes transforma¸c˜oes de dados em uma simula¸c˜ao computacional. Entretanto, para o seu melhor entendimento, alguns conceitos importantes para a defini¸c˜ao de fluxo de dados s˜ao apresentados antes, como conjunto de dados e transforma¸c˜ao de

(17)

dados.

2.2.1

Atributo de dados

Um atributo de dados ´e uma caracter´ıstica que descreve o conjunto de dados. Ade-mais, um atributo de dados ´e composto por um r´otulo (do termo em inglˆes, tag) e um tipo. O r´otulo funciona como um identificador para o conjunto de dados, de forma a apresentar um valor ´unico. O tipo pode assumir diferentes estruturas de dados, como texto, booleano, inteiro, ponto flutuante ou arquivo.

Um exemplo para a defini¸c˜ao de atributo de dados ´e o que segue na Tabela 2.1.

Tabela 2.1: Exemplo de atributo de dados

R´otulo do atributo Tipo do atributo

Nome Texto

Idade Inteiro

2.2.2

Elemento de dados

Um elemento de dados ´e definido como e = (v1, v2, ...vz), em que o i-´esimo v em

e ´e o valor do i-´esimo atributo de dados a de um conjunto de dados s. Percebe-se que a quantidade de atributos do conjunto de dados s deve ser igual `a quantidade de valores presentes no elemento de dados e [11].

2.2.3

Conjunto de dados

Supondo um conjunto de dados s. s consiste em um conjunto de elementos de dados E = {e1, e2, ...ex}, sendo x o n´umero de elementos de dados. Cada elemento de

dados ´e composto por atributos predefinidos A = (a1, a2, ..., ay), sendo y o n´umero

de atributos.

2.2.4

Transforma¸

ao de dados

Supondo uma transforma¸c˜ao de dados t. t ´e caracterizada pelo consumo de um ou mais conjuntos de dados de entrada i e produ¸c˜ao de um ou mais conjuntos de dados de sa´ıda o, conforme a Figura 2.1. Logo, o = t(i).

(18)

Figura 2.1: Exemplo de transforma¸c˜ao de dados t com conjunto de dados de entrada i e conjunto de dados de sa´ıda o.

2.2.5

Fluxo de dados

Considerando duas transforma¸c˜oes de dados t1 e t2. A composi¸c˜ao t1 o t2 ´e uma

transforma¸c˜ao que primeiro aplica t1 ao conjunto de dados de entrada s0 de maneira

a obter um conjunto de dados intermedi´ario s1. A seguir, a transforma¸c˜ao t2 ´e

aplicada ao conjunto de dados intermedi´ario s1 para obten¸c˜ao do conjunto de dados

de sa´ıda s2. ´E importante notar que a composi¸c˜ao ´e uma propriedade associativa,

logo a composi¸c˜ao linear de n transforma¸c˜oes de dados ´e denotada como tno tn− 1 o

... o t1. Portanto, pode-se definir a composi¸c˜ao de n transforma¸c˜oes de dados como

um fluxo de dados D. Assim, s2 = (tn o tn− 1 o ... o t1)(s0) ou D(s0), onde s0 ´e o

conjunto de dados de entrada desse fluxo de dados. Esse fluxo de dados ´e mostrado na Figura 2.2. Al´em disso, um fluxo de dados pode ser modelado como um grafo direcionado ac´ıclico (DAG), no qual os v´ertices (n´os) representam as transforma¸c˜oes de dados de uma simula¸c˜ao computacional, e as arestas direcionadas representam os conjuntos de dados entre as transforma¸c˜oes.

Figura 2.2: Exemplo de fluxo de dados, com transforma¸c˜oes de dados t1 e t2 e

(19)

2.2.6

Dependˆ

encia de dados

Uma especifica¸c˜ao de dependˆencia de dados l ´e dada por l = (s, tprevious, tnext) onde:

• s ´e um conjunto de dados;

• tprevious´e uma transforma¸c˜ao de dados que produz elementos de dados para o

conjunto de dados s;

• tnext ´e uma transforma¸c˜ao de dados que consome elementos de dados do

con-junto de dados s.

2.2.7

Exemplo

Para elucidar as defini¸c˜oes e as especifica¸c˜oes da Se¸c˜ao 2.2, apresentamos um fragmento de fluxo de dados produzido por uma simula¸c˜ao computacional real no dom´ınio de dinˆamica de fluidos computacionais. Na Figura 2.3 podemos ver o DAG correspondente a esse fluxo de dados D composto por trˆes conjuntos de dados, iinput-mesh, oinputmesh e oioconfig, duas transforma¸c˜oes de dados, inputmesh e ioconfig, e trˆes dependˆencias de dados.

Figura 2.3: Exemplo de especifica¸c˜ao de fluxo de dados D, com duas transforma¸c˜oes de dados e trˆes conjuntos de dados.

Logo a especifica¸c˜ao de D ´e: D = (S, T, L)

S = iinputmesh, oinputmesh e oioconfig T = inputmesh, ioconfig

(20)

L = (iinputmesh, null, inputmesh), (oinputmesh, inputmesh, ioconfig), (oioconfig, ioconfig, null)

A palavra null em L significa nulo, indicando que uma das transforma¸c˜oes de dados correspondente `a dependˆencia de dados n˜ao existe.

2.3

Dados de proveniˆ

encia

Com o aumento da complexidade das simula¸c˜oes computacionais, especialistas do dom´ınio cient´ıfico est˜ao cada vez mais interessados em informa¸c˜oes relacionadas `a execu¸c˜ao das simula¸c˜oes. Isso se d´a por conta da possibilidade de obten¸c˜ao de informa¸c˜ao sobre as fontes e transforma¸c˜oes aplicadas aos dados durante a simula¸c˜ao. O conhecimento obtido com essas informa¸c˜oes propiciam a avalia¸c˜ao da qualidade dos dados, observa¸c˜ao dos processos de transforma¸c˜ao e at´e uma reexecu¸c˜ao da simula¸c˜ao omputacional [12]. Nesse cen´ario, a proveniˆencia de dados corresponde a um conceito essencial, discutido em mais detalhes a seguir.

2.3.1

Defini¸

ao

O dicion´ario Michaelis [13] define proveniˆencia como “lugar de onde algo prov´em; o local de origem ou o primeiro hist´orico conhecido de algo”. A proveniˆencia vem sendo estudada em diferentes campos, como arte, medicina, ciˆencia e tecnologia [14]. Na ciˆencia da computa¸c˜ao, dado de proveniˆencia ´e descrito como informa¸c˜oes obtidas sobre processos e conjuntos de dados utilizados na produ¸c˜ao de um resultado final. Assim, dados de proveniˆencia representam informa¸c˜oes a respeito de uma si-mula¸c˜ao computacional, ou seja, sobre o comportamento da execu¸c˜ao dos progra-mas cient´ıficos, possibilitando o rastreamento do fluxo de dados [15]. Mais ainda, dados de proveniˆencia facilitam a an´alise das simula¸c˜oes computacionais por parte dos especialistas do dom´ınio, j´a que possibilita a verifica¸c˜ao de dados de dom´ınio, da origem dos dados e da forma como eles foram processados em cada etapa da simula¸c˜ao, al´em de apoiar a reprodutibilidade e a valida¸c˜ao dos resultados obtidos. Com todas essas defini¸c˜oes percebemos que com dados de proveniˆencia somos capazes de responder certas perguntas, como:

• De que processo um determinado dado foi obtido; • Quando um dado foi criado;

• Em quais transforma¸c˜oes um determinado elemento de dado foi utilizado; • Quais foram os conjuntos de dados de entrada utilizados em determinada

(21)

• Qual crit´erio foi aplicado para gerar certo dado.

Nesse contexto, podemos destacar um importante componente da proveniˆencia que ´e a causalidade, que pode ser descrita como a sequˆencia de etapas, que quando combinada com os dados de entrada e parˆametros definidos nos levam a um resultado final [15]. Essa causalidade ´e refletida no conceito de fluxo de dados apresentado na se¸c˜ao anterior, sendo que cada etapa corresponde a uma transforma¸c˜ao de dados (v´ertice) e os dados processados correspondem aos conjuntos de dados (aresta).

Assim, a proveniˆencia de dados ´e vista como componente fundamental para a an´alise de simula¸c˜oes computacionais, j´a que provˆe informa¸c˜oes sobre os dados de origem e os processos pelos quais esses dados passaram. Entretanto, para um enten-dimento adequado e o uso desses dados de maneira efetiva na an´alise, s˜ao necess´arios mecanismos que facilitem esse recurso.

2.3.2

Tipos de proveniˆ

encia

Tendo definido dados de proveniˆencia na Subse¸c˜ao 2.3.1, agora apresentamos os dois tipos de proveniˆencia que existem na gerˆencia do fluxo de dados: prospec-tiva e retrospecprospec-tiva. A proveniˆencia prospectiva descreve a estrutura da simula¸c˜ao computacional e, abstra¸c˜ao de workflow cient´ıfico representa o encadeamento de ati-vidades [16], relacionando-se `a especifica¸c˜ao das tarefas computacionais e aos passos que devem ser seguidos para gerar um conjunto de dados final. Em outras pala-vras, a proveniˆencia prospectiva registra a especifica¸c˜ao do fluxo de dados de uma simula¸c˜ao computacional, com as transforma¸c˜oes de dados e as suas dependˆencias de dados.

J´a a proveniˆencia retrospectiva refere-se `a captura dos passos executados du-rante a simula¸c˜ao computacional [16, 17], assim como as informa¸c˜oes sobre o ambi-ente computacional utilizado e o tempo para a execu¸c˜ao da simula¸c˜ao computacional. A proveniˆencia retrospectiva ´e constru´ıda utilizando informa¸c˜oes coletadas durante a execu¸c˜ao, incluindo transforma¸c˜oes de dados e valores de parˆametros, conjuntos de dados produzidos, tempo de in´ıcio e fim da execu¸c˜ao [17]. Ou seja, a proveniˆencia re-trospectiva determina propriedades sobre a execu¸c˜ao da simula¸c˜ao, como o diret´orio da execu¸c˜ao ou o host do servidor da base de dados.

Encontram-se dispon´ıveis no mercado diversos sistemas que apoiam esses tipos de proveniˆencia. Entre eles podemos citar noWorkflow [18], YesWorkflow [18], Taverna [19], VisTrails [20], Pegasus [21], Kepler [22], e FlashView [23].

Al´em disso, a an´alise de dados de proveniˆencia pode acontecer de dois modos, offline e online. O modo offline permite o processamento de consultas somente ap´os o t´ermino da simula¸c˜ao computacional, impossibilitando assim a investiga¸c˜ao de resultados parciais enquanto a simula¸c˜ao ainda terminou, como acontece no HubZero

(22)

[24]. Enquanto isso, no modo online, a an´alise dos dados de proveniˆencia pode ser realizada durante a execu¸c˜ao da simula¸c˜ao, como no Chiron [25].

2.4

Rastreamento de dados de proveniˆ

encia

As solu¸c˜oes disponibilizadas devem capturar os dados de maneira a permitir tanto o rastreio quanto o monitoramento do fluxo de dados em rela¸c˜ao aos conjuntos de dados que s˜ao consumidos e produzidos em cada transforma¸c˜ao de dados durante a execu¸c˜ao da simula¸c˜ao computacional. Nesse sentido, a gerˆencia do fluxo de dados pode ser abordada de duas maneiras diferentes: f´ısica ou l´ogica.

2.4.1

Gerˆ

encia do fluxo de dados no n´ıvel f´ısico

A gerˆencia do fluxo de dados no n´ıvel f´ısico consiste do suporte `as transforma¸c˜oes de dados no n´ıvel do sistema de arquivos. Nesse caso, a an´alise `as transforma¸c˜oes de dados s˜ao realizadas em rela¸c˜ao aos arquivos que s˜ao consumidos e produzidos por cada programa envolvido na simula¸c˜ao computacional, sem levar em conta o conte´udo dos arquivos que s˜ao especificamente do dom´ınio da simula¸c˜ao. Nota-se que nesNota-se n´ıvel de gerˆencia, os arquivos s˜ao considerados caixas-pretas, visto que n˜ao h´a ´ındices ou suporte a consulta para acessar os conte´udos espec´ıficos de dom´ınio [2, 10]. Assim, os especialistas do dom´ınio est˜ao restritos a an´alises com ponteiros para arquivos envolvidos no fluxo de dados, criando a necessidade de analisar cada arquivo separadamente ou desenvolver programas espec´ıficos para a extra¸c˜ao e a indexa¸c˜ao do conte´udo do dom´ınio [10].

2.4.2

Gerˆ

encia do fluxo de dados no n´ıvel l´

ogico

A gerˆencia do fluxo de dados no n´ıvel l´ogico trata do monitoramento de como os elementos de dados s˜ao consumidos e produzidos pelos programas de simula¸c˜ao [2]. Esses elementos de dados podem ser tanto dados dos arquivos cient´ıficos, quanto dados que s˜ao propagados na cadeia dos programas de simula¸c˜ao. Com o monito-ramento do consumo e da produ¸c˜ao dos elementos de dados, seus relacionamentos podem ser utilizados para recompor o caminho do fluxo de elementos de dados [2, 10]. Na perspectiva dos especialistas, ´e poss´ıvel consultar dados de dom´ınio sem a necessidade do pr´oprio especialista do dom´ınio desenvolver programas espec´ıficos para a extra¸c˜ao de dados cient´ıficos. Entretanto, ´e importante ressaltar que o custo computacional de uma simula¸c˜ao computacional ´e maior para a gerˆencia do fluxo de dados no n´ıvel l´ogico, j´a que os elementos de dados devem ser extra´ıdos e moni-torados em tempo de execu¸c˜ao, enquanto que, no n´ıvel f´ısico, esse monitoramento se resume a ponteiros para os arquivos de dados cient´ıficos [2, 10]. Considerando a

(23)

gerˆencia do fluxo de dados em ambos os n´ıveis (l´ogico e f´ısico), destaca-se que os es-pecialistas precisam capturar e armazenar dados de proveniˆencia sobre a composi¸c˜ao da simula¸c˜ao computacional com as dependˆencias de dados e dados cient´ıficos ex-tra´ıdos de arquivos em cada etapa de simula¸c˜ao [10].

(24)

Cap´ıtulo 3

Trabalhos Relacionados

Dado que o principal objetivo desta monografia consiste no desenvolvimento de re-cursos gr´aficos para apoiar a visualiza¸c˜ao da especifica¸c˜ao do fluxo de dados e o pro-cessamento de consultas usando a ferramenta DfAnalyzer (introduzida no Cap´ıtulo 4), este cap´ıtulo aborda trabalhos e interfaces relacionados que consideram o rastre-amento do fluxo de dados em simula¸c˜oes computacionais intensivas em dados. Atu-almente, existem na literatura, diversas ferramentas de visualiza¸c˜ao que prop˜oem o apoio `a an´alise explorat´oria de dados, como FlashView [23], SQLShare [26], HUBzero [24] e FireWorks [27]. Essas ferramentas oferecem GUIs (Graphical User Interface) focadas na usabilidade. Por´em, a maioria delas n˜ao fornece suporte `a resposta inte-rativa em tempo de execu¸c˜ao.

O SQLShare, por exemplo, ´e um servi¸co de banco de dados que tem como mo-tiva¸c˜ao a remo¸c˜ao de obst´aculos que podem ser empecilhos no uso de bancos de dados relacionais, como instala¸c˜ao, configura¸c˜ao do ambiente, defini¸c˜ao de schema, tuning, ingest˜ao de dados, entre outros. Nessa ferramenta, o usu´ario deve carregar seus dados e imediatamente pode come¸car a consult´a-los atrav´es de consultas SQL, sem a necessidade de instala¸c˜ao e configura¸c˜ao de um sistema para gerenciar os dados. Uma vantagem do SQLShare ´e a possibilidade de salvar o resultado de uma consulta para us´a-lo como entrada em uma outra consulta. Apesar da facilidade trazida por esta ferramenta por conta de excluir a dificuldade do uso de um Sistema de Gerˆencia de Banco de Dados (SGBD), o fato de o pr´oprio especialista precisar escrever as consultas SQL pode ser inconveniente para aquele que n˜ao tem conhe-cimento apronfundado. Al´em disso, o SQLShare apresenta dificuldade ao lidar com dados cient´ıficos para um mesmo conjunto e n˜ao apresenta funcionalidades para a extra¸c˜ao de dados cient´ıficos armazenados em arquivos, sendo uma grande limita¸c˜ao da ferramenta, j´a que esses dados s˜ao importantes na an´alise explorat´oria de dados cient´ıficos.

J´a o FlashView apoia consultas aos dados cient´ıficos. FlashView ´e um sistema que auxilia os especialistas de dom´ınio a entenderem rapidamente as caracter´ısticas

(25)

dos dados e depois, ent˜ao, a carregarem apenas os dados de interesse para as suas an´alises. Para promover essa rapidez, FlashView omite o processo de carregamento consultando diretamente os dados cient´ıficos (sem considerar a extra¸c˜ao de dados) e aplica uma t´ecnica de aproxima¸c˜ao de processamento de consultas para obter resultados de consulta em tempo real. Em rela¸c˜ao `a interface gr´afica proposta no FlashView, os dados s˜ao divididos e organizados como um conjunto de subconjuntos hier´arquicos. Ademais, o FlashView combina os resultados de uma consulta anterior com a pr´oxima, al´em de permitir que os usu´arios fragmentem e filtrem os dados de interesse. Al´em disso, os usu´arios podem adicionar um n´umero fixo de consultas a uma esp´ecie de lista de observa¸c˜ao, e o estado, os gr´aficos e os parˆametros referentes `

as consultas pertencentes a essa lista s˜ao atualizados continuamente.

Diferentemente, o HubZero permite o processamento de consultas apenas ap´os a execu¸c˜ao da simula¸c˜ao, impossibilitando an´alises em tempo de execu¸c˜ao, enquanto o FireWorks apoia an´alises baseadas nos rastros de proveniˆencia gerados a partir da execu¸c˜ao, al´em de permitir que os especialistas do dom´ınio realizem ajustes ou interven¸c˜oes durante a execu¸c˜ao. Por´em, o FireWorks se restringe `as consultas j´a definidas pelo sistema.

(26)

Cap´ıtulo 4

DfAnalyzer

Neste cap´ıtulo apresentamos a ferramenta DfAnalyzer [10], uma ferramenta para a an´alise de fluxo de dados em simula¸c˜oes computacionais. A DfAnalyzer foi proposta pelo N´ucleo Avan¸cado de Computa¸c˜ao de Alto Desempenho (NACAD) da Univer-sidade Federal do Rio de Janeiro (UFRJ) e mais detalhes s˜ao apresentados neste cap´ıtulo.

4.1

Vis˜

ao geral

No cen´ario de an´alise explorat´oria de dados cient´ıficos [4], o especialista do dom´ınio cient´ıfico frequentemente necessita acompanhar a execu¸c˜ao da sua simula¸c˜ao compu-tacional, a fim de rastrear as quantidades de interesse (ou seja, os dados cient´ıficos) para controlar o m´aximo poss´ıvel a sua execu¸c˜ao. Entretanto, anomalias podem ocorrer durante a execu¸c˜ao dos modelos computacionais. Dependendo da severi-dade das anomalias observadas, o especialista do dom´ınio pode observar que os resultados finais n˜ao ser˜ao capazes de validar a sua hip´otese cient´ıfica e, assim, ele precisa interromper a execu¸c˜ao da simula¸c˜ao antes do seu t´ermino.

Nesse sentido, com o intuito de permitir o monitoramento, a depura¸c˜ao, a an´alise e a interven¸c˜ao do fluxo de dados gerado por simula¸c˜oes computacionais em tempo de execu¸c˜ao, a ferramenta DfAnalyzer oferece um conjunto de recursos para apoiar a captura e a an´alise de dados de proveniˆencia e de dados cient´ıficos presentes em arquivos. Al´em disso, a DfAnalyzer mant´em o controle da execu¸c˜ao paralela dos modelos computacionais na pr´opria simula¸c˜ao, ao mesmo tempo em que permite o registro do fluxo de arquivos e de elementos de dados gerados em tempo de execu¸c˜ao.

(27)

4.2

Modelo arquitetural

Como mencionado anteriormente, a ferramenta DfAnalyzer permite a extra¸c˜ao de dados de proveniˆencia e de dados cient´ıficos em simula¸c˜oes computacionais inten-sivas em dados. A Figura 4.1 apresenta uma vis˜ao geral da arquitetura da DfA-nalyzer. Basicamente, n´os temos os programas cient´ıficos comumente utilizados nas simula¸c˜oes e as consultas do dom´ınio no n´ıvel mais alto de abstra¸c˜ao. Em seguida, interfaces de acesso foram desenvolvidas para facilitar o acoplamento dos recursos da ferramenta DfAnalyzer nos programas de simula¸c˜ao. Nesse n´ıvel, a Interface Gr´afica representa a principal contribui¸c˜ao desta monografia, uma vez que contempla todos os recursos gr´aficos desenvolvidos para facilitar a especifica¸c˜ao e o processamento de consultas que investigam fragmentos do fluxo de dados gerado por uma simula¸c˜ao computacional.

Por ´ultimo, o terceiro n´ıvel corresponde aos recursos disponibilizados pela DfA-nalyzer. Assim, a DfAnalyzer apresenta dois componentes para a extra¸c˜ao e a in-dexa¸c˜ao de dados cient´ıficos, conhecidos como Raw Data Extractor e Raw Data Indexer, e trˆes servi¸cos RESTful para permitir a extra¸c˜ao de dados de proveniˆencia (componente Provenance Data Extractor ) e a an´alise do fluxo de dados (componen-tes Dataflow Viewer e Query Interface). Do ponto de vista da an´alise do fluxo de dados, o componente Dataflow Viewer permite apenas a an´alise de dados de pro-veniˆencia prospectiva, pois ele considera apenas an´alises baseadas na estrutura do fluxo de dados, ou seja, na especifica¸c˜ao das transforma¸c˜oes de dados, dos conjuntos de dados e das dependˆencias de dados. Por outro lado, o componente Query Inter-face permite an´alises tamb´em baseadas nos dados de proveniˆencia retrospectiva e nos dados cient´ıficos extra´ıdos de arquivos ou de estruturas de dados alocados em mem´oria [8, 10].

(28)

4.2.1

Provenance Data Extractor (PDE)

O componente Provenance Data Extractor (PDE) ´e respons´avel pela coleta e registro de dados de proveniˆencia, al´em dos dados espec´ıficos do dom´ınio da aplica¸c˜ao. Com esse conte´udo, ´e gerado um arquivo JSON (JavaScript Object Notation) contendo os dados e suas dependˆencias. Todos os dados de proveniˆencia e os espec´ıficos de dom´ınio coletados s˜ao carregados em uma base de dados que segue o diagrama Entidade Relacionamento do PROV-Df [10]. Essa base de dados ´e implementada no SGBD orientado `a coluna MonetDB [28]. A escolha do MonetDB para a cria¸c˜ao dessa base de dados foi motivada pelo fato desse SGBD conseguir trabalhar de forma eficiente com grande volume de dados e apresentar os dados de uma mesma coluna armazenados no mesmo bloco de disco, favorecendo as consultas mais frequentes na an´alise de dados cient´ıficos, que utilizam o operador de Sele¸c˜ao da ´algebra relacional.

4.2.2

Raw Data Extractor (RDE) e Raw Data Indexer

(RDI)

Diferentemente do PDE, o componente Raw Data Extractor (RDE) tem como ob-jetivo acessar o conte´udo dos arquivos cient´ıficos e extrair os dados cient´ıficos re-levantes de acordo com os atributos selecionados pelo usu´ario. Durante o acesso aos dados cient´ıficos, verifica-se se esses dados obtidos correspondem ao dom´ınio da atual simula¸c˜ao computacional. Em seguida ocorre a filtragem dos dados, que leva em considera¸c˜ao o que foi definido pelo usu´ario sobre quais dados e quais valores devem ser capturados e armazenados na base de dados de proveniˆencia. Logo, esse passo evita que atributos que n˜ao s˜ao relevantes para o usu´ario sejam armazenados. Por ´ultimo, como nem sempre os dados se encontram em um formato aceito pelo SGBD, os dados s˜ao convertidos para a estrutura de dados mais apropriada. Como passo adicional ao RDE, o componente Raw Data Indexer (RDI) contempla a in-dexa¸c˜ao de dados cient´ıficos encontrados nos arquivos, de maneira a aperfei¸coar o acesso direto a regi˜oes espec´ıficas do espa¸co de dados, permitindo uma localiza¸c˜ao mais r´apida de um registro quando efetuada uma consulta. Em geral, apesar de per-mitir a representa¸c˜ao de estruturas de dados mais complexas, o RDI introduz um custo adicional do ponto de vista anal´ıtico, pois os ´ındices precisam ser acessados na base de dados para depois serem utilizados no acesso aos dados cient´ıficos em arquivos. Por esse motivo, essa monografia n˜ao considera as t´ecnicas de indexa¸c˜ao de dados cient´ıficos, sendo discutidos em mais detalhes em [10].

(29)

4.2.3

Dataflow Viewer (DfViewer)

Depois da inicializa¸c˜ao do PDE, com os dados de proveniˆencia e os dados espec´ıficos do dom´ınio da aplica¸c˜ao armazenados na base de dados, a ferramenta DfAnalyzer disponibiliza o recurso DfViewer, que consiste em uma interface gr´afica que fornece uma vis˜ao da perspectiva do conjunto de dados a partir da especifica¸c˜ao do fluxo de dados armazenada na base de dados, de forma a apoiar a visualiza¸c˜ao da pro-veniˆencia prospectiva. Essencialmente, o DfViewer provˆe uma lista de fluxos de dados registrados na base de dados de proveniˆencia e o usu´ario pode escolher qual a especifica¸c˜ao de fluxo de dados gostaria de visualizar.

Para tal, o usu´ario deve utilizar um navegador web, como o Google Chrome ou Mozilla Firefox, e acessar a URL http://localhost:22000 para usufruir das funcio-nalidades do DfViewer ou o host para conex˜oes externas. Com isso, o usu´ario tem acesso a uma lista de especifica¸c˜oes de fluxos de dados armazenados no banco de dados da DfAnalyzer, como mostrado na Figura 4.2.

Figura 4.2: P´agina com lista de especifica¸c˜oes de fluxos de dados da ferramenta DfAnalyzer [1]

Depois de ter escolhido uma especifica¸c˜ao de fluxo de dados para visualizar, o usu´ario deve clicar no bot˜ao View, por exemplo, para analisar a especifica¸c˜ao do fluxo de dados com o r´otulo clothing mostrado na Figura 4.2. Com isso, a p´agina web apresentada na Figura 4.3 ´e exibida para o usu´ario. Essa visualiza¸c˜ao consiste de uma perspectiva do conjunto de dados da especifica¸c˜ao do fluxo de dados, onde os usu´arios podem investigar os conjuntos de dados, as transforma¸c˜oes de dados envolvidas no consumo e na produ¸c˜ao de um conjunto, nas dependˆencias de dados, assim como os atributos de cada conjunto de dados. Destaca-se tamb´em que o componente DfViewer foi desenvolvido no contexto desta monografia e consiste em uma das suas principais contribui¸c˜oes.

(30)

Figura 4.3: Visualiza¸c˜ao da especifica¸c˜ao do fluxo de dados clothing [1]

4.2.4

Query Interface (QI)

Uma vez que os dados estejam armazenados e, consequentemente, dispon´ıveis na base de dados, os especialistas de dom´ınio podem submeter consultas para realizar as suas an´alises. Para auxilar os especialistas nessas submiss˜oes de consultas SQL `a base de proveniˆencia, considerando tamb´em a valida¸c˜ao das consultas e a exibi¸c˜ao dos seus resultados, a DfAnalyzer conta com o componente Query Interface (QI). Do ponto de vista de implementa¸c˜ao, esse componente oferece uma forma alternativa de interface (n˜ao gr´afica) para execu¸c˜ao de consultas por parte de especialistas do dom´ınio cient´ıfico sem conhecimento da linguagem SQL, j´a que ele considera uma forma simplificada de especifica¸c˜ao e descri¸c˜ao das consultas, como proposto em [11]. Por conseguinte, a partir dessa especifica¸c˜ao simplificada da consulta, o QI converte a consulta descrita textualmente para SQL, envia a consulta SQL para o MonetDB, obt´em os resultados e os retorna em um arquivo no formato CSV.

A convers˜ao da consulta descrita textualmente para SQL ocorre considerando que:

• A cl´ausula SELECT ´e populada de acordo com as proje¸c˜oes definidas pelo especialista;

• A cl´ausula WHERE opera como um filtro recuperando apenas os elementos de dados que correspondem as condi¸c˜oes definidas pelo especialista;

(31)

• A cl´ausla FROM cont´em os conjuntos de dados de onde os atributos de dados especificados na cl´ausula SELECT e as condi¸c˜oes especificadas na cl´ausula WHERE fazem parte.

Os argumentos necess´arios para a convers˜ao de texto para SQL que devem ser informados pelo especialista do dom´ınio, de acordo com o apresentado em [1], s˜ao:

• D: o fluxo de dados a ser analisado (incluindo o r´otulo e o identificador do fluxo de dados, detalhados no Cap´ıtulo 5);

• dsOrigins: os conjuntos de dados utilizados como origem para o algoritmo de obten¸c˜ao de caminho;

• dsDestinations: os conjuntos de dados utilizados como destino para o algoritmo de obten¸c˜ao de caminho;

• type: o tipo de gerˆencia do fluxo de dados, que pode ser l´ogico, f´ısico ou h´ıbrido, como explicado na Se¸c˜ao 2.4;

• projections: os atributos escolhidos para a cl´ausula SELECT ;

• selections: condi¸c˜oes para filtragem dos resultados da consulta, correspondente a cl´ausula WHERE ;

• dsIncludes: conjuntos de dados que devem estar presentes no caminho encon-trado pelo algoritmo de obten¸c˜ao de caminho do QI;

• dsExcludes: conjuntos de dados que n˜ao devem estar presentes no caminho encontrado pelo algoritmo de obten¸c˜ao de caminho do QI.

Tendo esclarecido os parˆametros necess´arios para a defini¸c˜ao da consulta SQL e posteriormente a convers˜ao textual para SQL, o especialista deve utilizar a API RESTful disponibilizada pela DfAnalyzer para submeter a consulta. Essa submiss˜ao da consulta ocorre atrav´es de uma requisi¸c˜ao HTTP com o m´etodo POST. Ent˜ao, o especialista deve utilizar a URL http://localhost:22000/query interface/{dataflow -tag}/{dataflow id} e adicionar uma mensagem contendo os parˆametros a serem con-siderados na especifica¸c˜ao da consulta. A Tabela 4.1 mostra a especifica¸c˜ao da mensagem de acordo com o modelo apresentado em [1].

Nesta monografia, propomos uma extens˜ao do componente QI para apresentar uma maneira alternativa de submeter consultas para a an´alise explorat´oria de dados cient´ıficos, em que os especialistas contam com recursos gr´aficos para especificar e submeter as suas consultas, assim como para visualizar os resultados das consultas, j´a que, mesmo n˜ao sendo em SQL, o QI exige uma especifica¸c˜ao textual que pode ser

(32)

uma tarefa complicada para o especialista do dom´ınio. Nessa perspectiva, as consul-tas consideram dados de proveniˆencia e dados cient´ıficos gerados pelas simula¸c˜oes computacionais intensivas em dados, sendo que mais detalhes da interface gr´afica proposta nesta monografia s˜ao apresentados no Cap´ıtulo 5.

Tabela 4.1: Especifica¸c˜ao da consulta utilizando QI

Conceito M´etodo Informa¸c˜ao Adicional

Type mapping(type) type = PHYSICAL, LOGICAL,

HY-BRID dsOrigins source(datasetTags)

dsDestinations target(datasetTags)

dsIncludes include(datasetTags)

Conjuntos de dados a serem inclu´ıdos no fragmento do caminho do fluxo de dados

dsExcludes exclude(datasetTags)

Conjuntos de dados a serem exclu´ıdos no fragmento do caminho do fluxo de dados

Projections projection(attributes)

Argumento attributes define que atri-butos devem ser obtidos ap´os o proces-samento da consulta, ex.: attributes = table1.attr1;table2.attr2

Selections selection(conditions)

conditions filtra apenas os elementos de dados relevantes, ex.: table1.attr1 < 100

Exemplo

Considerando o fluxo de dados apresentado em [1], esta se¸c˜ao prop˜oe um exemplo de an´alise do fluxo de dados usando o QI. Nesse caso, os usu´arios desejam realizar a an´alise do fluxo de elementos de dados do conjunto de dados de entrada icloth -item para o conjunto de dados de sa´ıda oaggregation, quando a probabilidade de um cliente comprar um item da se¸c˜ao de roupas ´e maior que 0,50. Especificamente, queremos saber quais itens da se¸c˜ao de roupas est˜ao nessa situa¸c˜ao e quantos deles ser˜ao vendidos. A Figura 4.4 apresenta o fragmento do fluxo de dados analisado por essa consulta.

(33)

Figura 4.4: Fragmento do fluxo de dados a ser analisado [1]

Baseado nessa an´alise de fluxo de dados, uma requis˜ao HTTP deve ser enviada `

a API RESTful com a URL http://localhost:22000/query interface/clothing/2 e a mensagem como apresentado no C´odigo 4.1. Como resultado, a API RESTful re-torna um arquivo em formato CSV, como mencionado anteriormente nesta mesma se¸c˜ao, com o conte´udo apresentado ne Figura 4.5 ap´os o processamento da consulta.

C´odigo 4.1: Especifica¸c˜ao de consulta enviado ao QI 1 mapping(logical)

2 source(icloth item) 3 target(oaggregation)

4 projection(icloth item.description;oprediction.probability;oaggregation.quantity) 5 selection(oprediction.probability > 0.50)

(34)

Cap´ıtulo 5

Interface gr´

afica para a an´

alise do

fluxo de dados em simula¸

oes

computacionais

Nesta se¸c˜ao apresentamos o processo de desenvolvimento dos recursos gr´aficos para a visualiza¸c˜ao do fluxo de dados pelo DfViewer, assim como para a especifica¸c˜ao e submiss˜ao de consultas pelo QI. O front-end e o back-end da interface gr´afica foram implementados em JavaScript, associado a HTML e CSS, e Java, respectivamente. Para a gerˆencia do servidor utilizamos servi¸cos RESTful com o Spring Boot para a configura¸c˜ao da aplica¸c˜ao [29]. Al´em disso, os dados de proveniˆencia considerados nesta monografia foram persistidos no banco de dados MonetDB [28]. J´a para a visualiza¸c˜ao utilizou-se os vis.js [30], uma biblioteca de visualiza¸c˜ao dinˆamica projetada para lidar com grande volume de dados e para a manipula¸c˜ao e a intera¸c˜ao com os dados.

Como apresentado no Se¸c˜ao 2.3.2, a proveniˆencia prospectiva est´a associada `a especifica¸c˜ao do fluxo de dados, com seus conjuntos de dados e transforma¸c˜oes. O objetivo principal do QI, ferramenta proposta na DfAnalyzer, ´e possibilitar que n˜ao haja a necessidade de o especialista do dom´ınio conhecer todos os aspectos da sintaxe da linguagem SQL. Com isso, para submeter uma consulta `a base de dados, ao inv´es de utilizar uma consulta em SQL, o especialista deve informar, por interm´edio de requisi¸c˜ao HTTP com o m´etodo POST, o tipo da consulta que deseja realizar, quais os conjuntos de dados de origem e destino, al´em das condi¸c˜oes que devem ser levadas em conta na consulta. Nesse cen´ario, para auxiliar os especialistas do dom´ınio na an´alise dos dados capturados e armazenados pela DfAnalyzer durante a execu¸c˜ao de uma simula¸c˜ao computacional, esta monografia disponibiliza uma outra maneira de utilizar o QI, com a especifica¸c˜ao das consultas atrav´es de recursos gr´aficos com a visualiza¸c˜ao do fluxo de dados por meio de um grafo direcionado.

(35)

5.1

Visualiza¸

ao do fluxo de dados

Para apoiar o especialista na escolha dos conjuntos de dados antes de finalmente analisar os resultados, faz-se necess´aria a visualiza¸c˜ao do fluxo de dados. Para tal, nos baseamos na representa¸c˜ao da especifica¸c˜ao do fluxo de dados como um grafo direcionado ac´ıclico (DAG), que pode ser visualizado por meio de redes dinˆamicas customiz´aveis da biblioteca vis.js. Assim, o usu´ario visualiza os conjuntos de dados, as transforma¸c˜oes de dados, as dependˆencias de dados e os atributos presentes em cada conjunto.

Para a defini¸c˜ao de quais s˜ao os v´ertices do DAG e quais s˜ao as arestas, a interface gr´afica automaticamente estabelece duas listas, uma para cada objeto (vertices e arestas, como mostra o C´odigo 5.1.

C´odigo 5.1: C´odigo em JavaScript para defini¸c˜ao de v´ertices e arestas 1 vertices = [{id: 1, label: ‘‘Vertice 1’’}, {id: 2, label: ‘‘Vertice 2’’}, {id: 3, label: ‘‘

,→ Vertice 3’’}] 2

3 arestas = [{id: 1, from: 1, to: 2, label: ‘‘Aresta 1’’}, {id: 2, from: 1, to: 3, label: ‘‘ ,→ Aresta 2’’}]

Como j´a mencionado anteriormente, o fluxo de dados ´e definido pelo conjunto de dados e pela transforma¸c˜ao de dados, no qual, usualmente, os v´ertices (n´os) repre-sentam as transforma¸c˜oes de dados de uma simula¸c˜ao computacional, e as arestas direcionadas representam os conjuntos de dados entre as transforma¸c˜oes. Por´em, como na especifica¸c˜ao da consulta o especialista do dom´ınio est´a interessado em elementos de dados presentes em conjuntos de dados, esta monografia assumir´a que os v´ertices do DAG correspondem aos conjuntos de dados entre as transforma¸c˜oes e as arestas direcionadas representam as transforma¸c˜oes de dados. Al´em disso, essa representa¸c˜ao do fluxo de dados assumida nesta monografia se aproxima da defini¸c˜ao do Modelo Entidade Relacionamento, que descreve as entidades envolvidas em um dom´ınio, com seus atributos e como elas se relacionam entre si. Assim, os conjuntos de dados funcionam como entidades que possuem seus atributos e as transforma¸c˜oes de dados os relacionamentos.

A defini¸c˜ao de arestas e v´ertices para entendimento por parte do vis.js se d´a atrav´es da estrutura de array, de maneira que, no caso do array de arestas, cada aresta assume uma posi¸c˜ao do array e no caso dos v´ertices cada v´ertice uma posi¸c˜ao do array de v´ertices. Para declara¸c˜ao do array de arestas, ´e definido de qual v´ertice a aresta deve partir e em qual v´ertice ela deve chegar atrav´es dos r´otulos from e to, respectivamente. Isso ´e feito atrav´es do id que ´e automaticamente definido pela

(36)

interface gr´afica para o v´ertice no array de v´ertices.

O processo de visualiza¸c˜ao citado acima ´e feito automaticamente quando o usu´ario escolhe um determinado fluxo de dados na interface gr´afica, isto ´e, o usu´ario n˜ao precisa definir nada para visualizar o fluxo de dados. Como explicado detalhada-mente na Se¸c˜ao 4.2.4, ao iniciar a interface gr´afica proposta nesta monografia, uma p´agina inicial ´e exibida com todas as especifica¸c˜oes de fluxo de dados j´a armazena-das, identificando cada uma pela tag identificadora. Assim, o usu´ario pode escolher qual especifica¸c˜ao de fluxo de dados deseja analisar clicando no bot˜ao View (Figura 4.2). Em seguida, uma requisi¸c˜ao HTTP ´e feita `a URL ’/api/dataflows/{id}’, que, por sua vez, realiza uma consulta a base de dados de maneira a obter informa¸c˜oes sobre como se d´a o relacionamento das transforma¸c˜oes de dados entre os conjuntos de dados. Essa URL retorna um ObjectNode contendo o array de v´ertices e o array de arestas presentes no grafo que representa o fluxo de dados, bem como os atributos de cada transforma¸c˜ao de dados, que aqui s˜ao os v´ertices. Tendo essas estruturas bem definidas, utilizou-se o comando network = new vis.Network(container, data, options) da biblioteca vis.js para criar a rede, sendo que data cont´em as informa¸c˜oes do grafo, v´ertices e arestas, e atributos dos v´ertices. Consequentemente, o fluxo de dados pode ser exibido na p´agina em HTML.

5.2

Especifica¸

ao da consulta

A execu¸c˜ao da consulta atrav´es do QI, sem a utiliza¸c˜ao de recursos gr´aficos, exige que alguns parˆametros sejam passados manualmente pelo usu´ario na requisi¸c˜ao HTTP para o mapeamento da consulta. Esses parˆametros s˜ao o tipo de rastro dos dados de proveniˆencia (f´ısico, l´ogico ou h´ıbrido), os conjuntos de dados de origem e de destino, o conjunto de nomes de atributos a serem selecionados referentes aos conjuntos de dados e as condi¸c˜oes de sele¸c˜ao. Assim, a especifica¸c˜ao e o processamento da consulta n˜ao consistem em um processo trivial, al´em de ser suscet´ıvel a erros.

Nesta monografia propomos que o especialista do dom´ınio especifique a consulta atrav´es da pr´opria visualiza¸c˜ao do fluxo de dados (uso da interface gr´afica), com o processamento da consulta ainda sendo realizado pelo QI, j´a que o mesmo consiste na interface da DfAnalyzer para o processamento de consultas focadas na an´alise do fluxo de dados. Dessa forma, assim como a execu¸c˜ao realizada de forma direta pelo QI exige parˆametros definidos pelo especialista, a realiza¸c˜ao da consulta atrav´es da interface gr´afica demanda essa mesma defini¸cao, de maneira que o QI possa definir e executar a consulta.

Com a visualiza¸c˜ao do fluxo de dados disponibilizada pelo DfViewer, o usu´ario pode tirar proveito dessa vis˜ao de todos os conjuntos para especificar a sua consulta de interesse. Dessa forma, o usu´ario deve selecionar o conjunto de dados (v´ertice)

(37)

que deseja analisar, clicando uma vez nele. Com o clique, ´e mostrado uma aba lateral para que o usu´ario possa especificar aquilo que espera saber sobre aquele conjunto, ou seja, quais atributos do conjunto de dados devem ser mostrados no resultado final. Um exemplo dessa aba lateral para uma especifica¸c˜ao de fluxo de dados ´e mostrado na Figura 5.1.

Figura 5.1: Aba para especifica¸c˜ao da consulta

Seguindo o que ´e mostrado na Figura 5.1, o usu´ario deve escolher qual o tipo de rastreamento de dados de proveniˆencia deseja realizar, como discutidos previamente na Se¸c˜ao 2.4. Para essa escolha, s˜ao apresentados as caixas de sele¸c˜ao (do inglˆes checkbox) com as op¸c˜oes Physical e Logical, correspondentes aos tipos f´ısico e l´ogico, respectivamente. O usu´ario deve selecionar a op¸c˜ao Physical caso queira o rastre-amento no n´ıvel f´ısico e a op¸c˜ao Logical para o n´ıvel l´ogico. Para o rastreamento h´ıbrido, o usu´ario deve selecionar ambos.

Depois disso, o usu´ario deve escolher, atrav´es de sele¸c˜ao de caixas de sele¸c˜ao, os atributos que deseja recuperar no processamento da consulta. ´E v´alido mencionar que os atributos mostrados na aba s˜ao relativos a cada conjunto de dados, isto ´e, cada conjunto de dados tem seus atributos. Ent˜ao, ao contr´ario do tipo de consulta que ´e escolhido para a consulta como um todo, os atributos s˜ao escolhidos para cada conjunto de dados separadamente. Logo, os atributos selecionados est˜ao relaciona-dos ao operador de proje¸c˜ao na ´algebra relacional e `a cl´ausula SELECT em SQL para a constru¸c˜ao da consulta.

Al´em disso, o usu´ario deve especificar textualmente quais s˜ao as condi¸c˜oes de filtragem a serem consideradas na consulta. Essa especifica¸c˜ao deve seguir a regra: atributo operador valor, em que o atributo ´e o nome do atributo que se deseja filtrar e o operador pode ser >, <, etc. Caso queira colocar mais de uma condi¸c˜ao, o usu´ario deve separar as condi¸c˜oes com a utiliza¸c˜ao de ponto e v´ırgula (;). Em SQL, essas

(38)

condi¸c˜oes correspondem a cl´ausula WHERE e na ´algebra relacional, se referem ao operador de sele¸c˜ao que selecionar´a as tuplas que satisfazem as condi¸c˜oes impostas. Depois de especificar as propriedades de interesse em um conjunto de dados, o usu´ario deve salvar essas modifica¸c˜oes clicando em Save changes. Ao clicar em Save changes, todas as sele¸c˜oes e modifica¸c˜oes realizadas pelo usu´ario s˜ao salvas e uma mensagem Saved ´e mostrada para o usu´ario. Lembrando que o usu´ario deve repetir essa opera¸c˜ao para todos os conjuntos de dados que deseja realizar opera¸c˜oes de proje¸c˜ao/sele¸c˜ao e salvar. Dessa maneira, ao finalizar a especifica¸c˜ao, o usu´ario deve submeter esses dados selecionados `a execu¸c˜ao clicando em Run Query.

Ademais, a especifica¸c˜ao da cl´ausula FROM ocorre automaticamente. Sempre que atributos e/ou condi¸c˜oes s˜ao colocadas para um determinado conjunto de dados e o usu´ario os salva, o nome desse conjunto de dados ´e adicionado ao conjunto de dados de origem ou de destino (dsOrigins e dsDestinations, respectivamente) e que, consequentemente, ser˜ao adicionados `a cl´ausula FROM. Al´em disso, de acordo com o fragmento do fluxo de dados a ser analisado, outros conjuntos de dados s˜ao adicionados `a cl´ausula FROM.

Para o armazenamento dos conjuntos de dados selecionados e suas respectivas especifica¸c˜oes utilizamos o armazenamento local da Web Storage API [31] atrav´es do m´etodo Window.localStorage. Dessa forma, no caso da sele¸c˜ao de um segundo conjunto de dados, as informa¸c˜oes relacionadas ao primeiro conjunto de dados seleci-onado n˜ao s˜ao perdidas. Al´em de guardar os dados selecionados e especificados pelo usu´ario para a execu¸c˜ao da consulta, a interface gr´afica deve identificar quais s˜ao os conjuntos de dados de origem e de destino a serem considerados na consulta. Para realizar essa identifica¸c˜ao, utiliza-se o algoritmo de busca em largura (Breadth-First Search - BFS, em inglˆes) largamente utilizado em problemas de grafos, que realiza uma busca em n´ıveis de todos os v´ertices vizinhos a partir de um v´ertice raiz em um grafo.

Dessa forma, para que dsOrigins e dsDestinations estejam sempre atualizados, mant´em-se uma estrutura de dados de formato array para o armazenamento de todos os conjuntos de dados selecionados, `a qual chamaremos de selected. A cada vez que o usu´ario clica em Save changes para salvar as modifica¸c˜oes, essa estrutura selected ´e atualizada acrescentando-se o id do conjunto de dados selecionado (ou seja, do v´ertice selecionado) a ela. Por´em, caso o usu´ario queira apenas que o conjunto de dados seja considerado como parte do fluxo de dados e, eventualmente, um v´ertice de origem ou destino, o usu´ario deve clicar no bot˜ao Save changes sem selecionar atributos ou colocar condi¸c˜oes, e ent˜ao, o id do conjunto de dados selecionado (ou seja, do v´ertice selecionado) ´e adicionado a selected. Depois disso, para cada v´ertice em selected, com exce¸c˜ao do que acaba de ser inclu´ıdo, executa-se duas BFS: (i) do v´ertice que acaba de ser inclu´ıdo (raiz) para todos os outros v´ertices em selected, (ii)

(39)

de cada v´ertice de selected (raiz) para o que acaba de ser inclu´ıdo. Se a BFS retornar verdadeiro, isto ´e, confirmar que existe um caminho de um v´ertice a outro, ent˜ao o id da raiz ´e adicionado `a estrutura de dados respons´avel por salvar os conjuntos de dados de origem e o id do v´ertice em que existe um caminho entre a raiz e ele ´e adicionado `a estrutura de dados respons´avel por salvar os conjuntos de dados de destino. Caso o retorno seja falso, nada ´e feito.

5.3

Processamento de consulta

Nesse ponto, a interface gr´afica possui todos os parˆametros necess´arios para a sub-miss˜ao da consulta e o seu processamento pelo QI, sendo esses parˆametros apresen-tados na Tabela 5.1.

Tabela 5.1: Especifica¸c˜ao de parˆametros

Parˆametro Definido por

Tipo de rastreamento Usu´ario ou Especialista do dom´ınio Conjuntos de dados de origem Query Interface

Conjuntos de dados de destino Query Interface

Proje¸c˜ao Usu´ario ou Especialista do dom´ınio Sele¸c˜ao Usu´ario ou Especialista do dom´ınio

Agora, para a submiss˜ao da consulta para o processamento pelo QI, o usu´ario deve clicar em Run Query. Para o processamento da consulta, deve haver uma re-quisi¸c˜ao que identifique a especifica¸c˜ao do fluxo de dados que o QI deve analisar, como o r´otulo da especifica¸c˜ao do fluxo de dados (dataflow tag) e a vers˜ao do fluxo de dados (dataflow id). Isso nos leva a uma requisi¸c˜ao que consiste numa URL que segue o formato: http://localhost:22000/query interface/{dataflow tag}/{dataflow -id}, como na Se¸c˜ao 4.2.4, sendo dataflow tag e dataflow id especifica¸c˜oes recebidas no controle do servi¸co RESTful. Nessa requisi¸c˜ao, ´e enviada tamb´em uma mensa-gem com a discrimina¸c˜ao da consulta, cujo conte´udo ´e o mesmo do apresentado no exemplo da Subse¸c˜ao 4.2.4.

Depois disso, ´e feita a chamada ao QI, em que devem ser passadas as informa¸c˜oes capturadas: tag e vers˜ao do fluxo de dados e a mensagem. O QI mapeia, processa e submete a consulta a base de dados utilizando suas otimiza¸c˜oes, retornando o resul-tado em um arquivo CSV que ´e mostrado em uma forma tabular na p´agina HTML. Al´em disso, a op¸c˜ao de fazer download deste arquivo ´e disponibilizada na interface gr´afica proposta nesta monografia, caso o usu´ario ou especialista do dom´ınio queira analisar em outras ferramentas. Vale ressaltar que o uso dos argumentos dsIncludes

(40)

e dsExcludes para a especifica¸c˜ao de consultas pelo QI n˜ao faz parte do escopo desta monografia.

(41)

Cap´ıtulo 6

Resultados obtidos

De acordo com a interface proposta nesta monografia (Cap´ıtulo 5), este cap´ıtulo apresenta os resultados obtidos com o uso interface gr´afica desenvolvida para a an´alise explorat´oria de dados cient´ıficos. Para isso, utilizamos um fluxo de dados monitorado pela DfAnalyzer em uma aplica¸c˜ao de dinˆamica de fluidos computaci-onais (do termo, em inglˆes, Computational Fluid Dynamics, ou da sigla CFD), que visa resolver um problema de sedimenta¸c˜ao [8].

6.1

Simula¸

ao computacional em dinˆ

amica de

fluidos computacionais

Neste cap´ıtulo, analisamos uma aplica¸c˜ao de sedimenta¸c˜ao usando a ferramenta DfAnalyzer, que tem como finalidade simular a turbidez e perturba¸c˜ao de correntes de fluidos normalmente encontradas em processos geol´ogicos [11]. Os sedimentos que s˜ao transportados devido `a dinˆamica e ao movimento dos fluidos computacionais s˜ao descritos como um modelo matem´atico derivado da combina¸c˜ao de diferentes equa¸c˜oes.

Considerando a complexidade das simula¸c˜oes dessa aplica¸c˜ao, os especialistas do dom´ınio devem rastrear diferentes quantidades de interesse (como res´ıduos, es-timativas de erros, etc.) de forma a controlar o m´aximo poss´ıvel a execu¸c˜ao [8]. Por´em, nem sempre analisar grandezas ´e suficiente, sendo necess´ario analisar os da-dos cient´ıficos de diversos arquivos, que foram gerada-dos em diferentes momentos da execu¸c˜ao da simula¸c˜ao computacional. Nesse sentido, a DfAnalyzer provˆe o mo-nitoramento do fluxo de dados, enquanto que a interface gr´afica proposta nesta monografia oferece recursos para visualizar resultados de consultas online relaciona-das aos dados de proveniˆencia e aos dados cient´ıficos contidos nos arquivos [11]. A Figura 6.1 mostra o fluxo de dados D gerado por essa simula¸c˜ao de sedimenta¸c˜ao, cujos dados foram armazenados no SGBD MonetDB.

Referências

Documentos relacionados

No sentido de reverter tal situação, a realização deste trabalho elaborado na disciplina de Prática enquanto Componente Curricular V (PeCC V), buscou proporcionar as

O termo extrusão do núcleo pulposo aguda e não compressiva (Enpanc) é usado aqui, pois descreve as principais características da doença e ajuda a

Como não se conhece parâmetros hematológicos do pacu-manteiga Mylossoma duriventre Cuvier, 1817, a proposta do presente estudo foi descrever tais parâmetros em espécimes

O presente artigo pretende discutir o exercício do controle de constitucionalidade de leis e atos normativos por de entidades e órgãos não

O CES é constituído por 54 itens, destinados a avaliar: (a) cinco tipos de crenças, a saber: (a1) Estatuto de Emprego - avalia até que ponto são favoráveis, as

A baixa taxa de desconto ao longo dos anos de produção do campo, para o cálculo da função objetivo, aliada a baixa produção de água que a locação de

Em relação aos conhecimentos de saúde oral constatou-se que pais/encarregados de educação e crianças estão informados sobre a presença, ou não, de dentes cariados, bem como,