Desafios de um projeto de integração de Softwares

Elvis Brito
TOTVS Developers
Published in
5 min readMar 22, 2018

Integrar produtos de softwares é uma das mais desafiadoras atividades do desenvolvimento de software. Fazer com que aplicativos desenvolvidos em culturas, em linguagens e em diferentes épocas conversem entre si exige esforço intelectual gigantesco. Cada parte do processo de integração deve ser pensada e repensada, considerando as peculiaridades de cada produto envolvido no processo.

Em geral, um projeto de integração nasce do fato de que um determinado produto pode possuir requisitos que outro precise ou considere importante para complementar suas funções, por exemplo, um aplicativo de CRM pode obrigar a adoção de um back office, que cuide do faturamento de suas vendas. Um módulo de faturamento pode exigir um módulo fiscal e contábil, que apoie e registre suas movimentações, cuidando de obedecer às regras do país que rode o software. A primeira opção seria o detentor de um dos produtos desenvolver todas as funcionalidades necessárias ao seu projeto, todavia, tal abordagem pode ter um custo elevado e o prazo para tal empreitada pode extrapolar o limite dos projetos ou a desenvolvedora pode não possuir as habilidades necessárias para tal tarefa. Como alternativa, a maioria das empresas opta por integrar seus produtos.

Na maioria dos casos, integrar dois ou mais produtos é bem mais barato do que começar do zero. Todavia, é importante se preocupar com a arquitetura utilizada para comunicar os produtos, se estarão acessíveis em uma rede distribuída, como ocorrerá a segurança da troca de mensagens, como serão identificadas e tratadas possíveis falhas no processo, filas, atualizações de apenas um dos produtos, enquanto o outro permanece intocado e, principalmente, se esta arquitetura permitirá, no futuro, substituir parte ou todo o módulo integrado por outro, sem grandes investimentos e efeitos colaterais. Não é possível ter um projeto de integração de sucesso, ignorando qualquer dos itens mencionados.

Para atender a tais requisitos, deve-se dividir o processo de integração em três partes:

1) Desenvolvimento: é, sem dúvida, a mais importante parte da implementação da integração. É nesta etapa que os alicerces do projeto serão construídos e tudo o que acontecer, posteriormente, dependerá desta fase.

O desenvolvimento deve ser precedido de uma especificação funcional, que explicite os limites e as responsabilidades de cada módulo envolvido, bem como a forma de comunicação e a estrutura de dados transacionados. Neste momento é preciso pensar em como será feita a atualização dos produtos, como será resolvida a possibilidade de atualizar apenas um dos lados da integração.

Para os produtos TOTVS, o processo de desenvolvimento é pautado no modelo “mensageria padronizada”, ou seja, todos os produtos da TOTVS obedecem a um mesmo padrão de troca de mensagens, através de um canal seguro e compatível com as principais tecnologias do mercado.

Para mais informações, consulte o link abaixo:

http://api.totvs.com.br:8050/ComoIntegrarcomaTOTVS.mp4

Implantação: após o término do desenvolvimento é necessário implantar e colocar em produção o que foi contratado. É, justamente, neste momento, que a maioria dos projetos falha.

As principais falhas ocorrem, uma vez que:

1) A integração não foi projetada para considerar o cenário de utilização de dois (ou mais) produtos integrados, tendo em vista as especificidades da cultura e de organização da empresa.

É muito fácil fazer a mensagem X sair do aplicativo A e ser recebida pelo aplicativo B, porém outra coisa é fazer com que esta mensagem se comporte no aplicativo B da forma como este espera que seja tratada. Explica-se melhor, quando se fala de integrar um ERP (Enterprise Resource Planning) a um aplicativo do tipo Vertical (que atende a uma demanda específica) é comum transacionar a entidade do tipo “cliente”, e este conceito quase que invariavelmente existe nos dois produtos, todavia, dependendo do negócio da empresa contratante, por exemplo, se esta for uma escola, o cliente pode ser um aluno ou um responsável financeiro e, portanto, terá forma de tratamento diferenciado que deve depender de parametrizações.

Outro erro comum, nesta fase do ciclo de vida do software, é não considerar a infraestrutura hospedeira dos produtos, cuidando se estará em uma mesma rede ou local, se possui acesso direto ou indireto ao outro, a velocidade da transmissão de dados, tamanho dos pacotes e segurança da informação.

De acordo com Fowler (2004), existem quatro formas de integrar:

1) File Transfer (transferência de arquivos);

2) Shared Database (compartilhamento de banco de dados);

3) Remote Procedure Invocation (RPC);

4) Messaging (troca de mensagens).

A estratégia de implantação deve levar em consideração a abordagem de implementação escolhida. Não adianta exigir performance, segurança ou confiabilidade se a integração ocorrer por meio de troca de arquivos. Esta será lenta e a implantação deverá prever como tratar a segurança e a resolução de conflitos da atualização.

Da mesma forma, se a integração ocorrer através do compartilhamento de Banco de Dados, o processo de implantação deverá levar em consideração a disponibilidade deste para os aplicativos consumidores, bem como se as licenças estão compatíveis com o cenário.

RPC é uma excelente estratégia de integração, todavia, ainda assim, o processo de implantação deverá levar em consideração a existência de rota segura entre os servers integrados. É importante considerar e tratar pontos de falhas do canal, bem como será feita a mitigação de erros. Outro ponto importante é considerar se o dimensionamento da banda de rede será suficiente para atender o tamanho de pacote trocado, bem como a velocidade desejada.

A TOTVS automatizou o processo de implantação da integração por meio da ferramenta “TOTVS Configurador”. Através dela, as integrações que seguiram o padrão de implementação de mensagem padronizada poderão utilizar um “wizard”, que orientará em cada parte do processo, mitigando erros e resolvendo conflitos.

Para mais informações, veja o link abaixo:

http://tdn.totvs.com.br/pages/releaseview.action?pageId=286736415

Monitoramento: após a entrada em produção, é preciso utilizar mecanismos, que garantam que o fluxo de informação ocorra conforme planejado e desvios devem ser rapidamente expostos e tratados.

Existem, no mercado, diversas ferramentas de monitoramento de integração, boa parte com excelentes recursos, que permitem monitorar diversas pontas e fases de um processo. A TOTVS, por sua vez, liberou nativamente em seus produtos uma ferramenta chamada “monitor de integração”, que é capaz de monitorar todos os atores de um processo e fazer o controle dos históricos das mensagens, proporcionando ao usuário uma experiência empolgante e simples para análise e correção de quaisquer problemas de integração.

Para mais informações, veja o link abaixo:

http://api.totvs.com.br:8050/monitor3.mp4

http://tdn.totvs.com.br/display/public/FRAMJOI/Menu+principal

--

--

Elvis Brito
TOTVS Developers

Chief engineer of Integration on TOTVS, developing solutions since 97, plugged to the brand new technologies in order to always improving.