Passo-a-passo
Os passos abaixo exemplificam um processo de utilização do Integrate em seu
modo estendido.
- Faça download do Integrate
- Insira os arquivos da pasta "lib" no classpath
- Crie uma aplicação que utilize uma fonte de dados específica. Para os exemplos
do Integrate foi criada uma aplicação
que acessa exclusivamente uma fonte de dados HSQLDB, que executa uma consulta SQL (em hardcode) e imprime
na saída padrão o nome do SGBD acessado e a versão do driver (retornado pelo Driver JDBC utilizado) e a URL
de conexão. Esta fonte de dados possui uma única tabela contendo nomes de pessoas, sendo que os nomes e
sobrenomes aparecem em colunas separadas.
Para exemplificar a integração heterogênea, foi criada uma
fonte de dados MySQL com outros nomes de tabelas e de colunas, também contendo nomes de pessoas, só que
em uma única coluna. Para demonstrar a integração utilizando o driver JDBC para
arquivos CSV disponibilizado pelo Integrate, foi criado um arquivo também com nomes de pessoas, com o
nome em um único campo, para também ser integrado com os dados do HSQLDB.
- Crie os arquivos integrate-datasources.xml,
integrate-config.xml e
integration.xml e insira-os no classpath. Pode-se aproveitar os modelos de arquivos disponíveis no download.
- O Integrate disponibiliza duas implementações da interface Wrapper (WrapperJDBC e WrapperCSV).
Se o usuário quiser criar sua própria implementação ou se quiser acessar outros
formatos de dados, deve implementar a interface Wrapper. A classe utilizada deve ser
informada no arquivo integrate-datasources.xml.
- Se NÃO for utilizar as funções de Lookup, siga para o próximo passo.
Para o Lookup, o Integrate também disponibiliza duas implementações (LookupJDBC e LookupCSV).
Caso o usuário que criar sua própria implementação ou se quiser acessar outros
formatos de dados, deve implementar a interface Lookup. A classe utilizada deve ser
informada no arquivo integrate-datasources.xml.
Independente da implementação, o Integrate necessita dos arquivos de conversão de tipos entre
JDBC e XML Schema para a função de Lookup. Os arquivos para algumas fontes de dados já são
fornecidos. São elas: MS-Access, CsvJdbc, DB2, MS-Excel, Firebird, HSQLDB, Hypersonic, Informix,
InstantDB, Mckoi, MSQL, MySQL, Oracle, Paradox, PostgreSQL, StealCSV, Sybase, XMLJdbc.
Se for utilizar uma destas fontes de dados, basta citar o nome do referido arquivo de conversão
no arquivo integrate-datasources.xml, mas se for uma fonte de
dados diferente, é preciso criar um arquivo semelhante, com as informações necessárias pertinentes à
fonte de dados desejada, com sua informação no arquivo
integrate-datasources.xml.
O Integrate fornece duas implementações (TypeJDBCConf e TypeCSVConf) que manipulam estes
referidos arquivos, e que podem ser utilizadas pelo usuário após devidamente configuradas
no integrate-datasources.xml. Caso a fonte de dados seja
de formato diferente, deve-se implementar a interface TypeConf, que fará a devida manipulação do
arquivo de conversão de tipos, ambos configurados no integrate-datasources.xml.
- Implemente a interface Mediator, com sua devida configuração no arquivo
integrate-config.xml.
* Para os exemplos, foi confeccionado um mediador simples, sem o emprego das técnicas de
integração, como combinação de esquemas ou ontologias nem a geração de esquemas integrados.
O Mediador criado apenas mantém uma tabela relacional que faz o mapeamento um-para-um de cada
sentença SQL necessária para o funcionamento da aplicação cliente, relacionada também com o
identificador de cada fonte de dados definido no Integrate. Para executar a integração dos
ResultSet’s obtidos, o Mediador mantém uma fonte de dados interna com o mesmo esquema da
fonte de dados original da aplicação cliente. Para cada ResultSet recebido, o Mediador faz
as devidas conversões (sem nenhum conhecimento semântico), inserindo os valores nas colunas
desta fonte de dados interna. Finalmente, o Mediador executa a sentença enviada originalmente
nesta fonte de dados temporária e o ResultSet gerado é retornado à aplicação cliente.
Última atualização: 28/06/2009