Olá pessoALL,
Aqui na empresa estamos num trabalho e existe um ponto bastante desafiador. Estamos desenvolvendo um produto cujo objetivo é efetuar uma comparação entre dados de duas bases(com modelos idênticos) e gerar um relatório de discrepância. Uma base, é fruto de varredura executada na rede, e a outra, é do sistema de cadastro da empresa. A idéia é que se tenha a visão de que existem equipamentos na rede que não estão cadastrados, equipamentos no cadastro que não existam mais na rede, ou mesmo diferença nos dados de configuração entre uma tabela de roteamento (que encontrou o mesmo roteador em ambas as bases) por exemplo.
A questão é que, por se tratar de um produto, a base de cadastro da empresa pode ser de bancos diferentes(oracle, sql, db2), e mais, o próprio modelo do banco pode ser bem diferente. No cenário atual, a base de cadastro da empresa é um modelo relacional, mas modelado como metamodelo(não tenho uma tabela roteador, tenho uma tabela classe, que possui um registro roteador,e a mesma analogia vale para os campos. Poderia ser um modelo puramente relacional, com uma tabela roteador, e seus respectivos campos.
Minha tarefa é criar uma espécie de engine de transformação em que o usuário possa estabelecer o de/para entre o que está na base do cliente, e a base que armazena os dados da rede. Não posso me prender ao modelo dos dois bancos, mas preciso conseguir definir posteriormente executar regras de mapeamento do tipo um “atributo la/um atributo ca”, e dai conseguir fazer a leitura do valor que desejo em uma ponta, e gerar os devidos inserts na outra, de acordo com a correspondência.
Enfim, preciso gerar um schema pra que esse mapeamento seja gravado, e então eu possa escrever as regras que me dizem como recuperar e inserir valores para que eu carregue as informações da base do cliente nessa minha base com modelo idêntico a base da rede.
Já existe algo desenvolvido, ou existe algum padrão de projeto, framework ou direcionamento pra eu cumprir essa tarefa, independentemente de como serão esses dois modelos de dados??