Para isso vamos montar três
cenários distintos e solucionar cada um destacando seus pontos positivos e
negativos. A integração entre diferentes bases de dados é o ponto inicial para
unificação de sistemas distribuídos. Sendo assim, conhecer mais de um modelo de
integração é de grande valia quando se precisa construir uma solução com
interface entre sistemas.
Integrar sistemas sempre será um grande desafio, principalmente pelo maior fator motivador das integrações: unir elementos diferentes em uma única solução. Atualmente, a maioria das integrações, sem dúvida, é feita entre plataformas diferentes, bancos de dados diferentes
Neste contexto, um dos livros mais conhecidos é “Enterprise Integration Patterns”, escrito por Gregor Hohpe e Bobby Woolf. Os autores expõem padrões de integração usados no mercado corporativo e sinalizam que a abordagem de integração apropriada deve levar em consideração aspectos como tecnologias utilizadas, tempo de atualização, formato dos dados, nível de acoplamento, etc.
Cada abordagem é categorizada de acordo com estes aspectos e ditam padrões a serem seguidos na montagem das soluções de integração. As principais abordagens são: transferência de arquivos, bancos de dados compartilhados, web services e mensageria. Segundo os aspectos apontados no livro, a mensageria se destaca positivamente na maioria, mas isso não indica que ela deva ser utilizada em todas as situações.
Baseado nestas informações, nosso objetivo é apresentar soluções de integração utilizando a abordagem de bancos de dados compartilhados.
Iremos considerar como sistema alvo de integração um ERP (Enterprise Resource Planning), mas nada impede que os exemplos apresentados neste artigo sejam aplicados em outras situações. Para isso, serão criados cenários para ilustrar diferentes situações em que podemos integrar sistemas utilizando esta opção.
Qual a necessidade de integrar sistemas?
Mesmo com dezenas de módulos e por mais abrangente que seja seu ERP, na maioria dos casos ele não substitui todos os sistemas existentes na empresa.
Além disso, a empresa também pode optar por não implantar todos os módulos ou já possuir algum software que atenda alguma necessidade específica.
Ainda assim, por mais planejada que tenha sido a aquisição de um novo software, mais cedo ou mais tarde será necessário buscar uma integração com outro ponto de informação.
Inicialmente, pode-se pensar que a necessidade de integração seja uma falha no projeto inicial, que não previu uma ampliação ou que o levantamento de requisitos não elencou todas as necessidades daquele novo módulo, e que precisamos interligar com outro sistema para completar a informação necessária.
O fato é que a todo momento estamos integrando módulos, sistemas e bases de dados não por falta de planejamento, mas sim pela dinâmica de crescimento e evolução de nossas aplicações.
A implantação de um novo módulo Contábil que precisa ser integrado ao módulo Financeiro; o novo sistema de Processo Seletivo que precisa ser integrado ao sistema de Recursos Humanos e assim vamos criando pontos de diálogo entre sistemas.
A integração entre esses sistemas se transforma em um ponto-chave para ganhos tecnológicos e de negócio, minimizando problemas como: falta de comunicação entre os softwares existentes, automatização de processos manuais e eliminação de erros advindos deste tipo de procedimento.
Buscando sucesso nas integrações
Sabemos que em processos de integração a chance de falhas e insucessos é grande. Para ajudar na busca pelo sucesso neste tipo de projeto, vamos listar aqui três dicas úteis:
1. Foco no objetivo: Evite ao máximo requisitos que não estão diretamente ligados ao projeto de integração. Quando iniciamos um projeto de integração, é muito comum que algumas melhorias sejam solicitadas nas bases de dados de origem e/ou destino, e não estejam associadas à integração;
2. Tudo de uma só vez: Muito cuidado com aquela solução única, completamente flexível e escalável. Ela também pode desviar o foco do projeto. O seu objetivo é fazer com que a informação chegue ao outro lado e seja íntegra, respeitando os valores de desempenho que foram projetados;
3. Onde terminam os processos e começa o sistema? Imagine a seguinte situação: em uma base de dados que é carregada a partir de um ERP e consumida por um sistema de BPM (Business Process Management), naturalmente vai surgir a necessidade do sistema BPM escrever nessa base e vamos precisar programar as rotinas de integração para se comportar como o ERP.
No entanto, a integração não deve reescrever as rotinas do ERP, pois estaria caindo no erro de “redesenvolver” o sistema ao invés de integrar os dois.
Em alguns ambientes temos os processos tão bem desenhados que na integração com os sistemas existentes procuramos fazer com que o comportamento do BPM seja o mesmo do sistema transacional existente. Contudo, se seguirmos este caminho, fatalmente vamos reescrever a aplicação, o que claramente não é escopo da integração.
Mesmo com os dois sistemas escrevendo na base de integração, devemos separar o escopo de cada um. O módulo BPM deve gerir os fluxos através de informações compartilhadas pela integração e não transacionar operações através dela, por exemplo: criar uma rotina na integração a partir do BPM para gerar uma venda no ERP, ou criar uma rotina para matricular um aluno.
Cenários e soluções
Dentre os muitos cenários de integrações
possíveis, elaboramos três que resumem algumas situações para que possamos
exemplificar como realizar ...