Com o objetivo de avaliar a estratégia para o refinamento colaborativo de dados na Web detalhadas no capítulo anterior, desenvolvemos um novo conjunto de serviços para o DWMS, implementado na pesquisa realizada por Oliveira et al. (2018), o qual chamamos de módulo Collaboration Refinement e que, por sua vez, é o protótipo da desta avaliação. O protótipo desenvolvido é composto por funcionalidades específicas que implementam a estratégia colaborativa proposta no capítulo anterior, na qual faz uso do modelo de refinamento descrito no Capítulo 4. Nesse sentido, iremos detalhar aspectos de sua imple- mentação e funcionalidades.
6.1.1 Visão Geral do DWMS
O DWMS é uma coleção de serviços, organizados em módulos, que permitem aos usuários compartilhar conjuntos de dados na Web, proporcionando a definição, criação, manuten- ção, manipulação e o compartilhamento de conjuntos de dados entre diversos perfis de usuários e aplicações (OLIVEIRA et al., 2018). O DWMS foi criado como uma solução capaz de realizar tanto as tarefas já desempenhadas pelos ambientes de catalogação de dados quanto as tarefas relacionadas ao gerenciamento dos conjuntos de dados.
Para implementar o novo módulo para o DWMS, adotamos as mesmas tecnologias utilizadas no desenvolvimento do sistema original. De um modo geral, o DWMS foi de- senvolvido no formato de aplicação Web, por meio das linguagens de programação Java e Javascript, permitindo sua implantação em diferentes servidores de aplicação. O DWMS foi implementado sobre o padrão arquitetural Model View Controller (MVC) que, por sua vez, possibilita a reutilização de código e desenvolvimento paralelo de maneira eficiente (REENSKAUG; COPLIEN, 2009).
As Camadas de Modelo (model) e Controle (controller) foram desenvolvidas usando o
framework Spring, uma estrutura de software livre desenvolvida em Java que provê várias
funcionalidades essenciais para o desenvolvimento de sistemas na arquitetura Java Web. O banco de dados utilizado pelo sistema é o MongoDB que é um banco de dados orientado a
documentos de fonte aberta e sem esquema, que oferece alto desempenho, disponibilidade e escalabilidade automática. O MongoDB apresenta características adequadas para o con- texto de dados na Web, como confiabilidade, disponibilidade e flexibilidade de esquema. A Camada de Apresentação (view) foi desenvolvida utilizando frameworks JavaScript, como o Node.js e o AngularJS, com duas Web interfaces projetadas para produtores e consumidores. As Web interfaces compõem um conjunto de views que permitem a inte- ração dos usuários com o sistema. A Web interface dos consumidores de dados permite consultar e acessar conjuntos de dados, já a Web interface dos produtores permite que o produtor gerencie a extração e a transformação de dados, além de preservar conjuntos de dados publicados.
Como podemos ver na Figura 38, o DWMS possui um conjunto de serviços centrais
(Core Services Set) responsáveis pelo gerenciamento dos conjuntos de dados e metadados
(OLIVEIRA et al., 2018). Assim, com o objetivo de implementar a estratégia de refina- mento colaborativo dentro do DWMS, criamos um novo módulo chamado Collaboration
Refinement, que será descrito na próxima Seção.
Figura 38 – Modelo de Arquitetura do DWMS com o novo Serviço de Refinamento Cola- borativo. Fonte: (OLIVEIRA et al., 2018) Adaptado
6.1.2 Collaboration Refinement
O módulo Collaboration Refinement é responsável por gerenciar as operações Requisi- tar Publicação, Sincronizar e Republicar, como também o processo de Inspeção, todos
descritos no Capítulo 5. Assim, esse módulo é composto por 3 serviços: (i) Requisition
Management, responsável por receber e gerenciar todas as requisições de republicação; (ii) Inspection Management, que faz a gestão dos conjuntos de dados que se encontram sob
inspeção, e (iii) Re-publishing Management, responsável pela republicação dos conjuntos de dados inspecionados. A seguir, cada serviço do módulo Collaboration Refinement será apresentado.
O serviço Requisition Management permite que sejam realizadas requisições de publicação de um conjunto de dados refinado. Relacionando este serviço com a estra- tégia de refinamento colaborativo, ele implementa as operações Requisitar Publicação e Sincronizar. As requisições de publicação podem ser realizadas pelos consumidores de dados que, anteriormente, acessaram e refinaram o conjunto de dados. Para a requisição de publicação, construímos novas views na Web interface do consumidor. Ao acessá-las, o consumidor pode inserir e submeter uma versão refinada de um conjunto de dados juntamente com o log de refinamento.
Ao receber a versão refinada do conjunto de dados e o log de refinamento, o serviço verifica a existência de uma nova versão do conjunto de dados. Esta verificação é realizada por meio da operação Sincronizar. A operação Sincronizar é responsável por recuperar e comparar o log de refinamento da versão mais atual do conjunto de dados, com o log de refinamento da versão refinada pelo consumidor. Assim, se a versão refinada pelo consu- midor estiver desatualizada, o serviço Requisition Management bloqueia a submissão e, por meio da operação Sincronizar, retorna um conjunto de procedimentos de refinamento que devem ser aplicados na versão refinada a fim de atualizar a versão. Por outro lado, também verifica a existência de conflitos entre as versões a partir da análise dos logs. Assim, se houver conflitos de procedimentos entre as versões, o serviço também retorna um conjunto de conflitos que devem ser resolvidos pelo consumidor para que a versão refinada do conjunto de dados possa ser requisitada novamente a publicação.
Todas as versões refinadas do conjunto de dados requisitadas à publicação que já foram sincronizadas são armazenadas em um novo diretório criado dentro doDatasets Archiving
noStorage do DWMS (Figura 38). Este novo diretório, chamado de Inspection Directory,
representa o Branch de Inspeção que é usado pela estratégia. De outro modo, os logs de refinamento são armazenados no Metadata Storage e guardam uma referência para os conjuntos de dados armazenados no Datasets Archiving.
O serviço Inspection Management permite aos publicadores acessar os conjuntos de dados em inspeção, visualizar os logs de refinamento e decidir se o conjunto de dados deve ser republicado ou não. Dentre as funcionalidades deste serviço está a listagem dos conjuntos de dados em inspeção, que lista e permite a filtragem dos conjuntos de dados por data de requisição e status (novo, em inspeção, aceito e rejeitado). Os publicadores também podem baixar os conjuntos de dados em inspeção a fim de utilizar ferramentas específicas que auxiliem a inspeção.
Como descrito anteriormente, o publicador pode fazer alterações no conjunto de dados em inspeção com o objetivo de realizar ajustes opcionais. Assim, este serviço permite que o publicador faça uma nova submissão do conjunto de dados em inspeção, como também submeta um novo log de refinamento contendo os ajustes realizados.
O serviço Re-publishing Management é responsável por todas as atividades relaci- onadas à republicação de um conjunto de dados inspecionado e validado pelo publicador. Para realizar a republicação da nova versão, este serviço utiliza o serviço de gerenciamento de versões (Versions Management) do DWMS. De um modo geral, quando o publicador valida o conjunto de dados em inspeção, este serviço recupera o conjunto de dados inspe- cionado dentro do diretório de inspeção e realiza chamadas ao serviço de gerenciamento de versões que, por sua vez, cria e publica a nova versão do conjunto de dados. Por fim, esta nova versão fica disponível na Web para futuros acessos.
6.1.3 Funcionalidades do Serviço
A seguir apresentamos o diagrama de caso de uso do Serviço de Refinamento Colaborativo implementado no DWMS (Figura 39), o qual ilustra as principais funcionalidades que foram desenvolvidas. Detalhes de cada uma das funcionalidades serão descritas a seguir.
Figura 39 – Diagrama de Casos de Uso. Fonte: Autor
• Publicar conjunto de dados: Essa funcionalidade permite que o publicador rea- lize a publicação de um conjunto de dados. Para isso, o publicador deve carregar o conjunto de dados no formato desejado, como também preencher os metadados re- lacionados ao conjunto de dados. Essa funcionalidade já pertencia a implementação inicial do DWMS. Portanto, não foi necessário implementá-la.
• Inspecionar conjunto de dados refinado: Essa funcionalidade permite que o publicador inspecione o conjunto de dados refinado. Nesse sentido, o sistema provê uma nova tela que mostra os conjuntos de dados em inspeção conforme a situação da inspeção. Assim, o publicador pode acessar o conjunto de dados desejado, como também visualizar olog de refinamento. O publicador também pode carregar novas alterações relacionadas a melhorias feita por ele, como também um novo log de refinamento atualizado com as melhorias.
• Republicar conjunto de dados refinado: Essa funcionalidade permite que o publicador possa republicar um conjunto de dados aceito e validado no processo de
inspeção. Por meio dessa funcionalidade é possível selecionar qual conjunto de dados aceito na inspeção será republicado.
• Acessar conjunto de dados: Essa funcionalidade permite que o consumidor acesse e baixar um conjunto de dados. Nesse sentido, por meio dessa funcionalidade é possível selecionar um conjunto de dados, escolher o formato desejado, visualizar ou realizar o download.
• Requisitar publicação: Essa funcionalidade permite que o consumidor requisite a publicação de um conjunto de dados refinado por ele. A funcionalidade provê um formulário onde o consumidor pode carregar o conjunto de dados refinado, assim como anexar olog do refinamento realizado seguindo o padrão descrito no Apêndice B.
• Sincronizar conjunto de dados refinado: Essa funcionalidade permite que o consumidor possa realizar a sincronização de um conjunto de dados refinado. Para realizar a sincronização, o consumidor deve carregar o log de refinamento no sis- tema, e uma vez carregado, o sistema retornará um arquivo JSON com o conjunto de procedimentos que devem ser exercidos sobre o conjunto de dados e um con- junto de conflitos a serem resolvidos. Uma vez resolvidos os conflitos e exercidos os procedimentos, o consumidor deve realizar uma nova requisição de publicação.