Pessoal tenho dois programas de cadastros de clientes e vou realizar a integração entre os dois, de maneira que ao fazer o cadastro no Programa A ou alterar, o cadastro seja replicado para o Programa B, de forma automática.
Estou programando em java.
A e B tem bases diferentes.
O Programa A possui uma base de dados em Access.
O Programa B possui uma base de dados em Oracle.
Nenhum dos dois programas são meus.
O fornecedor do programa A se disponibiliza a gerar um arquivo no layout que eu determinar(XML, TXT…), arquivo que pode conter um ou mais cadastros.
O fornecedor do Programa B, me disponibiliza duas tabelas, uma de inserção de dados e outra de erros.
A de inserção possui 194 campos, que contem Endereços, Informações bancárias, Informações básicas, etc. Mas ainda sim uma única tabela.
Após a inserção nessa primeira tabela é executada uma procedure, que valida os dados e se tiver tudo correto faz a inserção nas respectivas tabelas do Programa B.
Caso haja algum erro na validação dos dados, é gerado um código de erro que inserido na tabela de erros.
Eu queria criar inicialmente um webservice, para o fornecedor do Programa A, enviar os dados, mas ele diz que não trabalha com este tipo de tecnologia.
Então atualmente planejo seguir a seguinte abordagem:
-
Estabelecer um modelo de xml que conterá um único cadastro, com o titulo do XML sendo o CPF do cliente, para repassar para o fornecedor A.
-
O fornecedor do Programa A deve salvar os arquivos gerados em uma pasta, que chamaremos aqui de input, definida por mim em um servidor.
-
Meu programa a cada x minutos irá varrer esta pasta, e se tiver um arquivo novo ele irá desserializa-lo.
-
Como são poucas tabelas, não penso em utilizar nenhum framework de persistência de dados como o hibernate, então pretendo fazer o insert e a execução da procedure via JDBC direto.
-
Ainda via JDBC pretendo recuperar eventuais erros da tabela de erros.
-
Existem 144 códigos de erro, ao qual possuo um maravilhoso PDF com suas descrições, a tabela de erros possuirá apenas os códigos, pretendo cadastra-los em uma pequena base de dados, penso em usar o JavaDB, mas aceito sugestões.
-
Meu programa deve gerar um arquivo de saida com os erros, ou informando sucesso em uma pasta que chamaremos output, com o título sendo também o CPF do cliente.
Agora as minhas dúvidas:
Existe alguma maneira de tornar isso “real time” ao invés de esperar X minutos, para varrer a pasta Input?
Existe alguma maneira de otimizar essa rotina?
Comentário pessoal: Fiquei meio perdido ao não poder criar um webservice, pois na minha concepção seria a maneira mais otimizada de realizar o processo(posso ter falado abobrinha agora), então minha atual abordagem pode ser um tanto quanto grosseira no ponto de vista de alguns, mas peguem leve nas críticas rsrsr
