• Nenhum resultado encontrado

Componentes

No documento 2007 - TCC - Daniel Nepomuceno (páginas 37-49)

3. TRABALHOS RELACIONADOS

3.1 CoDIMS

3.1.2 Componentes

Este componente é a essência do CoDIMS, pois é ele que provê todos os mecanismos necessários para implementação das configurações física e lógica do ambiente.

Seguem abaixo as principais funções deste componente:

 Registrar a configuração do sistema, através da qual são definidas as configurações física e lógica;

 Garantir a consistência da configuração, verificando se todos os serviços a serem solicitados por um componente bem como aqueles definidos no

workflow foram oferecidos por outro componente;

 Escalonar e gerenciar os serviços a serem executados pelo sistema, quando for submetida uma requisição pelo usuário;

 Repassar as mensagens recebidas de outros componentes para o componente destino;

 Receber os comandos submetidos pela aplicação cliente, através de uma API.

Componente Gerência de Metadados

Esse componente tem como função principal armazenar, gerenciar e viabilizar o acesso aos metadados do sistema integrador. (BARBOSA, 2001)

Metadados, de uma maneira simples, podem ser definidos como “dados sobre dados”. Eles descrevem de uma forma concisa as informações sobre a estrutura dos dados armazenados no sistema, contendo informações como a organização e a estruturação dos dados, o tipo de cada item de dados, a função que

determinado conjunto de dados exerce no sistema, dentre outras. (SILVESTRE, 2005).

No CoDIMS os metadados são divididos em quatro níveis:

 Metadados das Fontes de Dados

 Metadados de Exportação

 Metadados Global

 Metadados Externos

O Componente Gerência de Metadados tem relação íntima com o componente Re-escritor de consultas, pois é através dele que o re-escritor obterá as informações sobre a estrutura de cada fonte de dados, estas que servem como fontes necessárias para criação de consultas específicas para cada banco de dados.

Componente Processamento de Consultas

O componente Processamento de Consultas é o responsável por transformar uma consulta escrita numa linguagem de alto nível em uma estratégia eficiente de execução. Esse processo deve levar em consideração as características de cada fonte de dados, pois a heterogeneidade e a descentralização desses bancos influenciam de forma crítica no desempenho das consultas.

Para que haja uma melhor gerência do processo, as consultas de entrada do sistema geralmente são decompostas em sub-consultas de menor complexidade.

Por efetuarem tarefas específicas, os serviços de processamentos de consultas são divididos em quatro módulos: analisador, re-escritor, otimizador e processador.

Analisador

O componente analisador tem por função verificar a consulta global submetida, analisando os aspectos sintáticos e léxicos da consulta, utilizando para isso as informações contidas nos metadados. Caso haja algum erro na análise da consulta, a mesma é rejeitada e uma mensagem de erro é retornada para a aplicação com seu devido motivo de rejeição. Podemos citar como possíveis motivos de rejeição de uma consulta erros de sintaxe, de semântica ou de tipos incorretos.

Re-escritor

Utilizando o grafo de consulta global e as informações contidas nos metadados globais e dos metadados de exportação das fontes de dados envolvidas na consulta, este componente re-escreve a consulta submetida, agrupando as informações que devem ser fornecidas para cada fonte de dados.

O processo de re-escrita consiste na transformação da consulta global em uma árvore de operação em que cada nó folha representa uma fonte de dados. O nó raiz representa o resultado da consulta e os outros nós não folhas representam os resultados intermediários.

O Re-escritor agrupa as sub-consultas por fonte de dados de forma que uma, e apenas uma sub-consulta, seja enviada a cada fonte de dados para cada consulta global submetida.

Otimizador

Tendo como base o grafo gerado pelo re-escritor, o componente otimizador produz um plano de execução otimizado para a consulta. Para se encontrar um plano de execução ótimo o otimizador faz uma gama de permutações com os operadores da árvore de operação, gerando assim diversos outros planos de execução (GOMES, 2005). O papel fundamental do componente é encontrar uma estratégia que seja ótima.

Encontrar um plano de execução que seja de fato ótimo pode não ser tão fácil dependendo da complexidade da consulta e da quantidade de fonte de dados envolvidas na consulta. Neste caso, cabe ao otimizador escolher uma boa estratégia ou, na pior das hipóteses, evitar as péssimas estratégias.

O processo de seleção das estratégias tem como base as estimativas dos custos de execução das ordenações previamente definidas como candidatas. Os planos de execução são equivalentes, no sentido de fornecerem os mesmos resultados para consulta, porém eles diferem na ordem de execução das operações, de forma que os custos despendidos podem variar. O objetivo fundamental do otimizador é escolher a estratégia que possua o menor custo.

O modelo de seleção baseada em estimativa de custo requer da aplicação um bom conhecimento acerca do ambiente, como: comunicação e estatísticas sobre os dados das fontes de dados, tamanho estimado dos resultados intermediários, etc.

O plano de execução otimizado para a consulta é denominado árvore de execução. Ele servirá de entrada para o componente processador, descrito no próximo tópico.

Processador

O componente processador tem como objetivos principais enviar as sub-consultas existentes no plano de execução para o componente Acesso aos Dados, receber os resultados dessas sub-consultas, realizar a integração destes resultados e por fim fornecer à aplicação cliente o resultado final da consulta.

O Sistema Integrador, tema deste trabalho, pode ser considerado uma versão enxuta do CoDIMS. Devido a grande quantidade de componentes e recursos propostos, e a alta complexidade de seu funcionamento, o CoDIMS tem sido

objeto de pesquisa de muitos profissionais da computação e há um grande esforço para conseguir de fato implementá-lo.

Dessa forma, buscou-se neste trabalho desenvolver um sistema de integração de dados simples, porém funcional, que implementasse apenas as funcionalidades essenciais; dentre elas destacamos a gerência de metadados, re-escrita de consultas e mecanismo de acesso aos dados (wrappers).

3.2 Sistema de Acompanhamento de Material Prioritário da CST

3.2.1 Visão Geral

Este sistema de integração de banco de dados foi proposto para integrar duas fontes de dados presentes na Companhia Siderúrgica de Tubarão (CST). Trata-se de um sistema que centraliza consultas de materiais considerados como prioridade de processamento (CAMPIOTO, 2007).

Na CST, material prioritário corresponde a todo material com data limite de processamento vencido. Atualmente, a empresa possui dois sistemas de acompanhamento de material: Sistema de Placas e Sistema de Bobinas, cada um com seu respectivo banco de dados.

O desenvolvimento de um sistema para integração desses bancos de dados tornou-se necessário pois havendo a necessidade de se consultar o material que compõe uma carteira de pedido, não há como obter do sistema estes dados dispostos de uma forma centralizada. Para consulta de um material prioritário do tipo bobina, deve-se acessar o Sistema de Bobinas, e para consulta de material prioritário do tipo placa, deve-se acessar o Sistema de Placas. Desta forma, caso se deseje consultar todo material prioritário, independente do tipo, faz-se necessária a integração manual dos resultados obtidos nas consultas dos dois sistemas.

O processo atual do tratamento das informações desses sistemas é mostrado no esquema a seguir. Como será observado, a integração das fontes de dados é realizada manualmente utilizando ferramentas como planilhas eletrônicas.

3.2.2 Camadas

O sistema é divido em duas camadas: Camada de Aplicação e Camada

Middleware. A camada middleware tem como função acessar a camada que

engloba as fontes de dados.

3.2.3 Wrappers

Para acesso às fontes de dados são definidos dois wrappers: WrapperBobina e WrapperPlaca, conforme mostrado no diagrama de classes abaixo:

Figura 3.5: Diagrama de Classes contendo os Wrappers (CAMPIOTO, 2007)

3.2.4 Integração de Esquemas

Para integração de esquemas são utilizados dois tipos de metadados: Metadados Global e Metadados de Exportação.

Metadados de Exportação:

Tabela 3.1: Metadados de Exportação do Sistema Placas

Tabela Atributo Tipo

Placa no_contr char(7)

no_item char(2) cd_cloct char(6) nm_cloct char(14) cd_vtran char(2) modal char(10) dt_prccs_limt_cndng date dt_prccs_limt_hsm date no_slab char(12)

Tabela 3.2: Metadados de Exportação do Sistema Bobinas

Tabela Atributo Tipo

Bobina no_contr char(7)

no_item char(2) cd_cloct char(6) nm_cloct char(14) cd_vtran char(2) modal char(10) dt_prccs_limt_divdl date dt_prccs_limt_hspl date dt_prccs_limt_shopp_judge date dt_deliv_reply date dt_deliv_order date no_coil char(12) no_slab char(12)

Metadados Global:

Tabela 3.3: Metadados Global

Tabela Global Atributo Global Tabela-Exportação Tipo

Placa-Glob no_contr Placa String

no_item Placa String

cd_cloct Placa String

nm_cloct Placa String

cd_vtran Placa String

modal Placa String

dt_prccs_limt_cndng Placa String

dt_prccs_limt_hsm Placa String

no_slab Placa String

Bobina-Glob no_contr Bobina String

no_item Bobina String

cd_cloct Bobina String

nm_cloct Bobina String

cd_vtran Bobina String

modal Bobina String

dt_prccs_limt_divdl Bobina String

dt_prccs_limt_hspl Bobina String

dt_prccs_limt_shopp_judge Bobina String

dt_deliv_reply Bobina String

dt_deliv_order Bobina String

no_coil Bobina String

3.2.5 Utilização do sistema

Para efetuar a consulta do material prioritário, o sistema possui uma consulta global pré-definida. Essa consulta é construída com base na linguagem SQL.

Select no_contr, no_item, no_coil, no_slab, cd_cloct, nm_cloct, cd_vtran, modal,

dt_prccs_limt_cndng, dt_prcss_limt_hsm, dt_prccs_limt_divdl, dt_prcss_limt_hspl, dt_prccs_limt_shopp_judge, dt_deliv_reply, dt_deliv_order

From Placa_Glob P, Bobina_Glob B

Where P.pedido = B.pedido and P.item = B.item and P.no_slab = B.no_slab

Este sistema tem como função atender de forma simples uma necessidade específica de integração de fontes de dados na CST. O Sistema Integrador, proposto neste trabalho, da mesma maneira propõe a integração de banco de dados de forma simples, contudo buscou-se construí-lo de maneira que ele pudesse integrar quaisquer tipos de fontes de dados heterogêneas e distribuídas, desde que sejam construídas utilizando o modelo relacional. Assim, o sistema integrador pode ser considerado uma versão aperfeiçoada do sistema anteriormente estudado.

4. LEVANTAMENTO DE REQUISITOS

4.1 Visão Geral

O Sistema Integrador de Banco de Dados tem como principal objetivo prover acesso a diversas fontes de dados heterogêneas e distribuídas de forma transparente aos usuários. Essa transparência significa que os usuários manipulariam várias bases de dados como se estivessem manipulando apenas uma.

Para que isso seja possível, é preciso que seja criado um sistema que funcione como uma camada (middleware) entre a aplicação que está sendo manipulada pelo usuário e as fontes de dados envolvidas.

A manipulação das bases de dados consiste de forma geral em realizar consultas do tipo “seleção” nos bancos de dados integrados. O sistema não provê opções de consultas do tipo “atualização”, “adição” e “remoção”, pois estas são de responsabilidade dos mantenedores de cada fonte de dados.

No documento 2007 - TCC - Daniel Nepomuceno (páginas 37-49)

Documentos relacionados