O que é e o que faz ?

Uma aplicação é confeccionada para usar uma fonte de dados, estabelecendo forte dependência entre ambas, na qual mudanças em um repercutem no outro. O Integrate é uma infra-estrutura para integrar informações registradas em fontes de dados heterogêneas, a partir de aplicações existentes, e que não exige a modificação nem das aplicações nem das fontes de dados.

É uma proposta na forma de framework a ser empregada por desenvolvedores de código de sistemas de integração de dados heterogêneos, e busca oferecer uma padronização tecnológica que facilite a geração deste tipo de sistemas. Este emprego exige que a infra-estrutura fornecida seja estendida para contemplar as especificidades do caso de integração em questão. A infra-estrutura disponibilizada é baseada na arquitetura de mediadores e tradutores [9].

Diversas propostas de integração ressaltam o significativo uso desta arquitetura, como Integra [4], MOMIS [6], CoDIMS [5], Garlic [7], TSIMMIS [8], LORIS [3], XQuare [11], XMF [1], dentre outros, que têm em comum a necessidade de acessar as fontes de dados após os devidos tratamentos semânticos. O Integrate implementa esta arquitetura, como pode ser visto na figura abaixo:

arquitetura Integrate
Fig. 1: modelo genérico

A maioria dos sistemas de integração pesquisados que influenciaram o Integrate fazem uso de uma interface própria para a interação com seus usuários. Esta interface utiliza internamente o modelo de dados do mediador e o esquema global definido por ele. Para este cenário, a infra-estrutura aqui proposta apresenta-se como uma solução para o problema. Trata-se de uma proposta genérica de solução. Outros detalhes podem ser vistos no item "Desenvolvedor de mediador - modelo genérico".

Para permitir a integração de dados onde as fontes de dados e as aplicações não sejam alteradas, estes cenários ficam inviabilizados. Para tentar solucionar este problema, o modelo de solução foi estendido, incluindo um interceptador, que age entre a aplicação cliente e o mediador, conforme a figura abaixo:


Fig. 2: modelo estendido

No modelo proposto a consulta original é interceptada e reescrita pelo mediador, uma para cada tradutor, e os resultados obtidos são integrados (também pelo mediador) antes de serem retornados à aplicação cliente. Outros detalhes podem ser vistos no item "Desenvolvedor de mediador - modelo  estendido".

Segue uma breve descrição dos módulos do modelo adotado.

Controlador - É responsável pela interação entre o mediador e os tradutores, sendo responsável pelo fluxo de atividades (workflow). Este módulo se assemelha ao componente “Controle”, proposto no CoDIMS [5].

Mediador - Módulo responsável pelo processamento semântico, onde se aplica toda a inteligência do modelo. No modelo tradicional (figura 1), este módulo é responsável pela interface com a aplicação cliente, e executa as subconsultas através dos serviços disponibilizados pelo Controlador, integrando os resultados antes de retorná-los à aplicação. Neste cenário, o Mediador solicita os serviços ao Controlador.

No modelo estendido (figura 2), este módulo oferece serviços de geração das subconsultas e de integração dos resultados parciais. Neste cenário, o Controlador solicita os serviços ao Mediador.

Tradutor - Módulo que interage diretamente com as fontes de dados. Há um tradutor para cada fonte de dados. Tradutores para alguns formatos mais comuns são fornecidos. O modelo de solução, contudo, permite que outros sejam implementados, possibilitando a integração de fontes de dados que fazem uso de outros formatos.

Interceptador - Este módulo é responsável pelo desvio de fluxo de controle entre a aplicação e a fonte de dados original, quando implementado o modelo de solução estendido. Após interceptar as requisições da aplicação cliente, este módulo as redireciona ao Controlador, que as repassa ao Mediador, para que este gere as subconsultas para as fontes de dados de interesse. Estas subconsultas são então direcionadas às respectivas fontes de dados, por meio dos tradutores.

No sentido inverso, os resultados obtidos das fontes de dados são repassados ao mediador para que sejam integrados. O resultado integrado é então entregue à aplicação cliente, no modelo e formato esperado por ela, conforme a fonte de dados original. A figura abaixo resume este processo.




Enquanto a (a) exibe o cenário tradicional, onde a aplicação acessa diretamente a fonte de dados usando o formato definido, o cenário da figura (b) ilustra as trocas de formato feitas durante o processo. As linhas tracejadas representam a requisição da aplicação A enviada no formato conhecido por ela (f_bd1) e interceptada pelo Interceptador. As requisições são redirecionadas ao mediador que retorna as subconsultas referentes às fontes de dados envolvidas nos seus respectivos formatos (no exemplo, formatos f_bd1 e f_bd2), que são posteriormente repassadas às fontes de dados correspondentes através dos tradutores. No sentido inverso, os resultados são novamente repassado ao mediador, que executa a integração no formato conhecido por A (f_bd1). Este resultado integrado é então entregue à aplicação pelo Interceptador.

Lookup - Interage com as fontes de dados para extrair os esquemas destas fontes. Disponibiliza uma API extensível para permitir que novas fontes de dados possam ser adicionadas, semelhante ao proposto em [2].

Metadados - Módulo responsável por manipular os arquivos de configuração do framework. Estes arquivos de configuração descrevem quais as fontes de dados serão consultadas por uma dada aplicação, entre outras.


Algumas definições.

Escopo

O principal resultado esperado do Integrate é disponibilizar uma infra-estrutura tecnológica que facilite o desenvolvimento de sistemas de integração que acessem informações registradas em fontes de dados heterogêneas.

Na solução aqui proposta, há ênfase nas funções atribuídas aos Tradutores e na interação entre estes e o Mediador. Em conseqüência, Mediadores propriamente ditos, ontologias e outras questões correlatas estão além do escopo do Integrate, e nestes casos pouca funcionalidade é oferecida.

Os serviços disponibilizados pelo Integrate permitem a criação de mediadores sem que estes conheçam necessariamente os detalhes de acesso às fontes de dados a serem integradas. Cabe ao Mediador as questões semânticas e a interação com as aplicações clientes, no cenário da figura 1. Cabe ao Integrate intermediar as conversões entre o Mediador e as fontes de dados, além da interação com as aplicações clientes, no caso do cenário estendido.

O escopo do Integrate é destacado na figura abaixo:



Como proposto, a interação entre a aplicação cliente e o Interceptador é realizada via JDBC. Por trabalhar internamente com o modelo relacional, o Integrate permite a troca de mensagens com o mediador através de JDBC.
Para que as trocas de mensagens não exijam do mediador o conhecimento de JDBC, um formato comum será posteriormente definido pelo Integrate, abstraindo do mediador este conhecimento.

Diante da complexidade pertinente à solução adotada, naturalmente nem toda aplicação pode se comportar adequadamente neste cenário.

Configurações e exemplos de uso podem ser vistos nos tutoriais. Um trabalho completo, contendo extensa documentação sobre os conceitos pertinentes, pode ser encontrado aqui.

Referências

[1] A Design and Implementation of XMLBased Mediation Framework (XMF) for Integration of Internet Information Resources (K. Lee et al.)
[2] Ferramenta para Extração de Esquemas de Bases de Dados Relacionais (G. B. C. de Amorim)
[3] LORIS: Integrating Distributed and Heterogeneous Metadata Repositories of Learning Objects (S. L. Moura et al.)
[4] Managing the Evolution of XML-based Mediation Queries (B. F. Lóscio).
[5] Middleware para Integração de Dados Heterogêneos Baseado em Composição de Frameworks (A. C. P. Barbosa)
[6] MOMIS (Universitá di Modena)
[7] Towards Heterogeneous Multimedia Information Systems: the Garlic Approach (M. J. Carey et al.)
[8] TSIMMIS (Standford University)
[9] Value-added Middleware: Mediators (G. Wiederhold).
[10] What is an Ontology? (T. Gruber)
[11] XQuare (ObjectWeb)

Última atualização: 28/06/2009
Get Integrate at SourceForge.net. Fast, secure and Free Open Source software downloads