Infra - BizTalk Server

BizTalk Server 2002 - Suas funcionalidades e como podem ajudar no seu negócio

Com esse artigo tentaremos mostrar para que, exatamente, serve o BizTalk? O que ele agrega de valor ao meu negócio? São essas perguntas que vamos responder, ou ao menos clarificar, ao longo deste artigo.

por Luis Alfredo Stockler



Com esse artigo tentaremos mostrar algo que, em minhas andanças como consultor e palestrante, me parece ficar meio nebuloso para os que conhecem essa potente e flexível ferramenta.

Para que, exatamente, serve o BizTalk? O que ele agrega de valor ao meu negócio? São essas perguntas que vamos responder, ou ao menos clarificar, ao longo deste artigo.

Vamos à primeira parte: O que é o BizTalk? Para que serve?

No site, nas palestras e propagandas é dito que o BizTalk é uma ferramenta de EAI (Enterprise Application Integration) e de B2B (Business to Business). É dito também que é uma ferramenta de middle ware. Realmente é tudo isso, mas vamos destrinchar um pouco essas afirmações.

A Palavra BizTalk é um redutivo de Business Talk. O BizTalk Server da Microsoft é uma ferramenta que implementa o Framework BizTalk, que é uma iniciativa aberta de se padronizar trocas de informações entre empresas. Porém, mais do que somente implementar esse framework homônimo, o BizTalk integra aplicações, ou seja, ele conecta informações. Se executarmos essa tarefa dentro de uma organização, conectando duas ou mais aplicações distintas estamos fazendo o chamado EAI e se estas aplicações estiverem em duas ou mais empresas distintas seria o chamado B2B. O BizTalk funciona como "meio de campo" entre aplicações, ou seja o middle ware.

Esquema de funcionamento do BizTalk

Figura 1: Esquema de funcionamento do BizTalk

Mas se já fazemos isso desde que a primeira empresa instalou seu segundo sistema e eles tiveram que trocar dados, o que tem essa ferramenta de tão especial?

Essa ferramenta facilita enormemente esse trabalho. Quem já integrou 2 sistemas heterogêneos e de missão crítica sabe do que estou falando.

Vamos imaginar como fazer as integrações sem o auxílio de uma ferramenta com as características do BizTalk.

Temos duas aplicações: aplicação "A" e aplicação "B". A Aplicação. "A" precisa exportar uma série de informações e o faz em um determinado formato e em um determinado protocolo, podemos tomar como exemplo disso, um servidor de filas, ou uma pasta de arquivo. Normalmente as aplicações já têm essas interfaces de exportação nativamente por isso, normalmente, esta fase não gera muito trabalho. É preciso desenvolver um programa que pegue essa informação, transforme o formato da Aplicação. "A" no formato da Aplicação. "B" (estes programas de transformação consomem muitas horas de código e depuração) e em seguida por meio de algum protocolo envia a informação transformada para a Aplicação. "B".

Parece simples. E em linhas gerais é mesmo. Mas acrescentemos as necessidades de confiabilidade e redundância dos canais por onde trafegam as mensagens, multiplique os programas de transformação por dezenas ou centenas de mensagens, mais as possíveis variabilidades dos protocolos de entrega e ainda as necessidades de assincronicidade inerentes ao ambiente web (que por sinal é por onde trafegam a maioria de nossas mensagens). Poderíamos citar outras, mas creio que já deu para vislumbrar a complexidade desta classe de soluções.

Vamos ampliar um pouco mais nosso cenário.

Imagine que essa interconectividade das aplicações "A" e "B" se estenda para conectar também C, D, E, F e assim por diante configurando um processo de negócio, sendo que este processo pode ainda ser realizado parte internamente à nossa organização e parte externamente a ela e que ainda precisemos transacionar partes ou todo nosso processo de negócio.

Muito complicado? Pois imagine quantas milhares de linhas de código seriam escritas para se realizar projetos desta natureza. Imagine ainda que depois de prontas, essas aplicações ficam gigantes, monolíticas, intrincadas e, portanto, de manutenção cara e difícil.

Estamos na era da conectividade. Nunca, em toda história da informática, foi tão grande a necessidade de integração e nunca foi tão grande a diversidade de programas e tecnologias com que as organizações se deparam. Juntemos a isso a crescente necessidade de interconectividade entre as empresas e teremos montado o cenário.

Como o BizTalk funciona e como pode ajudar minha empresa?

Pensemos no BizTalk como 2 produtos: um que faz o que chamamos de "messageria" e outro que faz automatização de processos.

A messageria é feita pelo BizTalk Messaging e a automatização de processos é realizada pelo BizTalk Orchestration. Vamos ver como estas funcionalidades vão de encontro às necessidades de integração e como otimizam o processo de desenvolvimento destas soluções.

Comecemos com o BizTalk Messaging.

Sendo um produto de messageria, ele recebe uma informação de diversas formas através de serviços de recebimento, valida essa mensagem, transforma o formato dessa mensagem em outro (se for necessário) e entrega essa mensagem a um determinado destino. Este serviço tem ainda a funcionalidade de rotear a mensagem com informações que podem estar dentro da referida mensagem ou com informações de roteamento que são fornecidas quando submetemos a mensagem ao Messaging.

Podemos receber as mensagens de diversas fontes, tais como: pastas de diretórios (file Server), servidores de filas (MSMQ, MQ Series), SMTP, HTTP, HTTPS, componentes, stripts ou mesmo Web Services. Podemos ainda recebê-las diretamente dos aplicativos de mercado através de Adaptadores de Aplicativos ou de legados diversos, tais como ADABAS, ORACLE, Paradox, etc, através dos Adaptadores de Tecnologia, já desenvolvidos pela própria Microsoft ou por terceiros. (veja www.microsoft.com/biztalk/adapters) Logo após o recebimento a mensagem é envolvida num processo de Parse onde, se ela for uma mensagem XML, ela é verificada para ver se é um XML bem formado. Se não for um XML (Flat File, EDI, ou outro qualquer), no processo de Parse a mensagem é transformada num XML, de modo que após o Parse temos a mensagem em XML.

Resolvido o recebimento a mensagem é encaminhada para o Channel (vide figura 2) e validada através de especificações de documentos eletrônicos (Schema 1).

Em seguida a mensagem pode ser transformada em outro formato de documento (outro Schema) através do Mapper. Nesta fase cada campo do Schema de entrada é mapeado para os campos do Schema de saída ("de / para"), podendo ainda cada um destes campos passar por pequenos processamentos de transformação através de objetos dentro do Mapper que se chamam Functoids. Com esses, podemos sumarizar campos, usar funções matemáticas, de processamento de string e até mesmo acessar bancos de dados para buscar uma Razão Social tendo como parâmetro o código da empresa. Esse processo de mapeamento é facílimo de se fazer no BizTalk. A ferramenta é gráfica e de altíssima produtividade. Os programas de "de / para", ao contrário deste, são normalmente de alta complexidade e, portanto, de alta incidência de erros, horas de programação e depuração.Como vemos na Figura 2, estes processos se dão dentro do Channel do BizTalk Messaging.

A mensagem já transformada no seu formato de saída (Schema 2) é encaminhada ao Messaging Port.

Já no Port, a mensagem passa por um processo de Serialize que transforma (se necessário) o XML de saída no formato de saída desejado (EDI, Flat File, etc.).

Depois do Serialize a mensagem é encaminhada a um serviço de entrega onde está definido o protocolo (HTTP, HTTPS, SMTP, AIC, File System, etc) e o destino da mensagem.

Processo de Serialize

Figura 2: Processo de Serialize

Com isso já cobrimos boa parte das funcionalidades do BizTalk Messaging. Claro que faltam detalhar muitos itens de roteamento, segurança, confiabilidade e garantia de entrega das mensagens, mas isso fica para artigos posteriores.

Só essa ferramenta já resolve muitos e complexos problemas de integração. Foi justamente por conta desta funcionalidade que a maioria dos bancos compraram BizTalk para fazer a messageria do novo SPB (Sistema de Pagamentos Brasileiro) em XML.

O Bancos recebem as mensagens em XML do Banco Central e usam o BizTalk Messaging para transformar as mensagens nos formatos dos seus sistemas legados. No envio ocorre o processo inverso. Com isso economizou-se muito tempo no processo de desenvolvimento, viabilizando os prazos dados para a implantação.

Além de "entregar mensagens", temos como viabilizar a automatização de processos de negócio complexos com o BizTalk Orchestration.

Com essa ferramenta automatizamos complexos processos de negócios simplesmente desenhando nosso processo na forma de um DFD (diagrama de fluxo de dados) (Figura 3).

Diagrama de fluxo de dados

Figura 3: Diagrama de fluxo de dados

O DFD é normalmente usado para documentar sistemas e processos mas neste caso a documentação é a própria implementação.

Cada uma das ações descritas no DFD podem ser implementadas enviando ou recebendo uma mensagem ou conectando e executando um componente (Figura 4).


Figura 4:

Enviando e recebendo informações e acionando componentes o BizTalk Orchestration atua gerenciando o fluxo de um processo com toda a flexibilidade, gerenciabilidade inclusive com controle transacional das ações e desvios para fluxos alternativos, no caso de falhas (Figura 5).


Figura 5:

Tendo dado um panorama geral das funcionalidades da ferramenta vejamos em que casos ela pode ser útil.

Estarão em demanda do BizTalk as empresas que:

Tiverem dois ou mais aplicativos (softwares) que precisem trocar informações entre eles;

Empresas que tiverem implantado ou estiver em vias de implantação de um ERP. Invariavelmente este ERP precisa trocar dados, informações ou ser integrado em processos de outros legados ou com parceiros (outras empresas);).

  1. Tiverem dois ou mais aplicativos (softwares) que precisem trocar informações entre eles;
  2. Empresas que tiverem implantado ou estiver em vias de implantação de um ERP. Invariavelmente este ERP precisa trocar dados, informações ou ser integrado em processos de outros legados ou com parceiros (outras empresas);).
  3. Empresas que tiverem implantado ou estiver em vias de implantação de um CRM. (mesmo caso acima);
  4. Empresas que possuem ou estejam implantando um E-commerce, E-procurement ou um B2B qualquer;
  5. Empresas que tem unidades geograficamente distantes com dados a serem integrados;
  6. Empresas com necessidades de troca de informações com parceiros. Ex: Clientes, fornecedores, franquias, etc;
  7. Empresas que usam EDI ou tem necessidade de se comunicar com fornecedores ou clientes que usam EDI;
  8. Empresas com necessidades de automatização de processos internos ou com outros parceiros de negócio;

Os benefícios destas implementações são muitos, dentre eles podemos citar: o tempo de desenvolvimento que costuma ser muito curto, a visibilidade do processo que fica explicitado graficamente, a flexibilidade das soluções, a facilidade nas manutenções futuras, a escalabilidade, a confiabilidade e as facilidades de gerenciamento.

Read more: http://www.linhadecodigo.com.br/artigo/121/biztalk-server-2002-suas-funcionalidades-e-como-podem-ajudar-no-seu-negocio.aspx#ixzz2482mCEqY
Luis Alfredo Stockler

Luis Alfredo Stockler - Consultor Especialista em EAI da CSIT, trabalha a um ano e meio diretamente com a Microsoft como especialista em Biztalk, desenvolvendo, implantando, dando suporte e consultorias diversas a projetos estratégicos para o produto. Criador e instrutor do curso avançado BizTalk Academy da Microsoft. Palestrante de BizTalk em eventos como TechNet, PDC entre outros.