E-Collaboration

Desenvolvimento comunicação entre as transportadoras e o sistema de controle interno

 

Execução em que participei diretamente

As duas partes do sistema foram desenvolvidas internamente. Ambas seguiram os padrões internos de desenvolvimento. Eu participei das duas partes do sistema. Segue abaixo a descrição de cada uma delas:

Comunicação entre Sistemas:

A aplicação de troca de informações entre sistemas seria implementado utilizando um programa de gerenciamento de filas. O sistema interno geraria as mensagens quando certos eventos ocorriam, tais como a geração de uma ordem interna de entrega. Neste momento o sistema interno envia uma mensagem para o sistema da transportadora. Antes da mensagem chegar ao seu destina ela precisa ser transformada. Esta transformação era feita por uma camada de filtros que faria o mapeamento e adaptação do formato da mensagem para o seu destino. Eu projetei e implementei esta camada de transformação, filtragem e mapeamento de campos da mensagem.

Eu projetei uma camada de estrutura básica responsável pelas tarefas comuns aos vários tipos de transformações. Sobre esta camada podia-se conectar e desconectar vários tipos de filtros. Eu implementei em Java a estrutura básica e os seguintes filtros:

  • Geração do cadastro de Produto

  • Geração do cadastro a ser enviado

  • Cancelamento de Fatura

  • Recebimento de Embarque

  • Recebimento de Fatura

Para cada filtro eu implementei o leitor da mensagem fonte, um tradutor de formato e um escritor das informações contidas na mensagem nas diversas tabelas do banco da dados da transportadora. A estrutura básica era configurada através de um arquivo de configuração. Neste arquivo se informavam quais classes fariam a leitura da mensagem no formato original, quais classes fariam a transformação de formato e quais classes fariam o armazenamento nas tabelas da transportadora.

Um dos filtros em particular apresentou um desafio adicional, pois os dados recebidos possuíam um formato de árvore de nível indeterminado. Para resolver este problema precisei escrever um filtro que tratasse as informações de modo recursivo.

Escrevi um programa gerador de código para gera as classes de acesso às tabelas e os beans de dados. Eu precisei construir este gerador porque existiam muitas tabelas nos banco de dados da transportadora e o tipo de armazenamento era o mesmo para todos.

Interface com o Usuário

A interface com o usuário foi desenvolvida em Java rodando num servidor de aplicações. A aplicação acessava um banco de dados relacional. A estrutura interna seguiu as recomendações de melhores práticas dividindo as classes de acordo com as suas responsabilidades de modelo, visualização e controle. Além do mais o acesso à base da dados foi encapsulada em uma camada de classes de comando. Eu implementei parte das classes e fiz a revisão de qualidade do restante delas.