Comecemos pelo básico.
O que é Data Integration?
a) Novo nome que os vendors deram para ETL
b) Processo que combina dados de várias fontes e entrega para o usuário uma visão unificada destes dados (by Wikipedia)
c) Organizar e reconciliar dados dispesos em sistemas heterogêneos e disponibilizar os mesmos para análise
d) Todas as opções acima (correto!, opção “d”)
Como fica a Integração de Dados em um ambiente SOA
Em 2006 estávamos na fase final de definição da solução de software que seria a base da nossa arquitetura SOA. Recebemos a visita de alguns fornecedores que afirmavam que tinham produtos de integração de dados “SOA compliant“.
O cenário abaixo ilustra de forma simplificada o nosso dilema. Temos o vários sistemas A, B e C, legados ou não; temos os bancos de dados corporativo, e também várias outras fontes de dados: arquivos texto, bases de dados departamentais, planilhas etc. Como todos estes dados irão se integrar em nosso ambiente SOA?

Este é um ambiente típico de qualquer empresa e, se estiver pensando em SOA (como mostrado na figura acima), você precisa achar uma alternativa para integrar todos estes dados.
Qual o problema com as ferramentas de Integração de Dados?
O maior problema é que é estas ferramentas, diferente de uma solução baseada em SOA, não suportam movimentação de dados em tempo real. Vamos dar um exemplo simples:
- o sistema A é uma aplicação antiga (leia-se “legada”) que o seu call-center utiliza para informar aos clientes (tempo real!), por exemplo, o saldo de seu telefone pré-pago
- Quando o cliente finaliza uma ligação a plataforma de pré-pago (qualquer que seja ela) atualiza automaticamente/imediatamente o saldo
- Em seguida o cliente liga para a central de atendimento e deseja saber o saldo atual
Pergunta: seu cliente pode esperar até que o próximo ETL (que ocorre uma vez por dia, certo?!) ou você deve garantir que no momento da consulta o sistema A “dispare” uma consulta (tempo real!) à plataforma do seu serviço de pré-pago, que retorna o saldo daquele cliente? Tudo isto deve ocorrer neste tempo:
- (cliente) “Gostaria de saber meu saldo!”
- (atendente) “Certamente senhora. Você poderia me informar o número do seu telefone?”
- (cliente) “É 99-9999-9999″
- (atendente) “Um momento senhora…”
- (Sistema A) Consulta base do sistemas, recupera e exibe os dados do cliente, ao mesmo tempo em que dispara um processo/serviço que consulta o saldo na plataforma de pré-pago
- (atendente) “Seu saldo atual é R$ 50,0. Posso ajuda-la em algo mais?”
- (cliente) “Não, muito obrigada”
Conclusão
As ferramentas de Integração tem suas qualidades e podem solucionar outros problemas das empresas que precisam, por exemplo, consolidar e movimentar grandes volumes de dados (entre outras funcionalidades).
Uma excelente alternativa é utilizar Web Services para recuperar os dados à medida que os sistemas requeiram estas informações. Claro que existem várias outras questões que devem ser consideradas e o objetivo deste post não é resolver este grande dilema, porém existem soluções simples para um cenário tão comum quanto o descrito acima. Veja a figura abaixo que ilustra esta alternativa:



