Integração entre aplicações
Boa noite a todos !
Recentemente terminei a leitura do livro “Breve História de Quase Tudo”, através dele, o cronista Bill Bryston fala de maneira simples assuntos vários científicos, desde física, biologia até física quântica.
O capítulo que mais me chamou a atenção foi os estudos sobre a evolução da vida na face da Terra. O autor mostra que desde o início do começo da vida, a busca pela sobrevivência, levou que aquele caldo de proteínas se agrupassem em células, depois em organismos simples, até chegar nos seres complexos (nós, os seres humanos). Fazendo um comparativo com o mundo corporativo, podemos notar uma certa semelhança. As aplicações que construimos, inicialmente servem a um propósito específico, à medida que vão participando ativamente da vida da empresa, elas vão trocando informação com outras aplicações. A grande verdade é que nenhuma aplicação vive sozinha, todas direta ou indiretamente participam do ecossistema corporativo.
Quando participo na construção de uma aplicação/solução, sempre procuro identificar quais os pontos que permite a integração com outras aplicações do ecossistema corporativo. Neste ponto, desenhar uma arquitetura que permite a integração é vital para garantir a sobrevivência da aplicação, devemos gerar os nossos “tentáculos” de integração. Neste momento podemos ver várias perguntas:
- Quem são as aplicações que vamos nos integrar?
- Quais as formas para integração?
- Quais técnicas que me permitem construir modelos de integração que possam garantir a manutenção no futuro?
- Quais os modelos e formatos para exportar e consumir os dados das aplicações?
- Qual é a periocidade da integração?
A minha experiência me mostrou pontos:
- Definir claramente os dados, modelos de integração e interface a ser disponibilizada para o ecossistema
- Definir uma camada responsável pela integração
- Definir quais os protocolos que permitirão obter os dados da minha aplicação
- Definir um processo de notificação sobre evolução e manuntenção da minha aplicação
- Focar nos tipos de informações a serem entregues, e não em formato de entrega
- Instrumentalizar a minha camada de integração para coletar dados sobre como a integração está ocorrendo, e quem está usando
Dentro de tecnologias e produtos disponíveis para promover a integração podemos várias opções:
- Windows Communication Foundation (WCF)– Presente desde o .NET Framework 3.0, esta tecnologia promove o compartilhamento de métodos, classes e atributos com outras aplicações, através de interfaces claras e protocolos interoperáveis.
- Biztalk – Este produto representa uma solução de Enterprise Application Integration (EAI) para ambientes corporativos, e permite a integração de várias aplicações.
- Sql Server Integration Services (SSIS)– Funcionalidade presente dentro do SQL Server 2008, permite gerar fluxogramas de extrações ponto-a-ponto de dados em banco e a manipulação de dados.
É importante falar que dentro das sugestões das tecnologias acima não existe melhor ou pior, mas sim, cenários de uso. Vamos supor que deseja construir uma aplicação que terá uma camada de API para ser consumida por outras aplicações, neste caso um candidato a ser utilizado é o WCF. Em outro cenário, você é um arquiteto de sua empresa e deseja construir um repositório de APIs para que as aplicações possam interagir, neste caso o uso do Biztalk com um barramento de serviço (ESB Toolkit) é um candidato interessante.
E como mensagem final, a minha dica é “Pense em integração, pois nenhuma aplicação vive sozinha.”.
abs e T+
Condé
versão 1.0