Infra - BizTalk Server
Qual o papel do BizTalk e quando podemos utilizá-lo
Acompanhando o newsgroup da Microsoft percebemos uma quantidade significativa de pessoas perguntando o é o BizTalk, para que serve, em quais casos posso usá-lo, como ele pode auxiliar no meu trabalho, etc. Com base nessas perguntas vamos tentar responder com este artigo.
por Douglas MelloAcompanhando o newsgroup da Microsoft percebemos uma quantidade significativa de pessoas perguntando o é o BizTalk, para que serve, em quais casos posso usá-lo, como ele pode auxiliar no meu trabalho, etc. Com base nessas perguntas vamos tentar responder com este artigo, apesar de existirem muitas possibilidades para este produto da Microsoft. Espero que após ler este documento você mesmo imagine em quais casos no seu dia-a-dia possa utilizá-lo.
1. O que é o BizTalk Server?
O BizTalk é um servidor desenvolvido pela Microsoft para integrar sistemas computacionais, desenvolver processos de negócios complexos e gerenciá-los de maneira organizada. Integração de sistemas nada mais é do que a necessidade de enviar informações de um software para outro que necessite desta informação, completando um ciclo ou processo de negócio. Já o desenvolvimento de processos de trabalho é baseado em fluxo de informações, onde estas podem passar por diversas transformações e pontos de decisões até chegar em seus destino final.
2. Utilizando o BizTalk para integração de aplicações corporativas (EAI)
Acredito que os sistemas são a extensão de uma pessoa, com eles podemos fazer coisas muito mais rápido aumentando nossa produtividade. Por que as pessoas precisam se comunicar? Para trocarem informações, correto? Da mesma forma que as pessoas estão conectadas, os sistemas também necessitam estar conectados. Este é um dos princícios do BizTalk, fazer com que os sistemas comuniquem-se entre si.
Acompanhe o seguinte caso de utilização do BizTalk:
O cliente entra em um site de uma loja virtual na internet e adquire um produto qualquer. Logo após a efetivação da compra é encaminhado para o BizTalk um documento (podendo ser um arquivo texto, XML, mensagem, etc) contendo as informações do produto e do cliente. Então o BizTalk analisa estas informações, valida se estão corretas e verifica no sistema de estoque se existe a mercadoria. Em caso afirmativo, ele recebe uma resposta do sistema de estoque e encaminha o pedido para o sistema de faturamento que emite uma nota de compra e outra de transporte. Depois que o sistema de faturamento emitir a nota e faturar o produto o BizTalk recebe outra resposta com as informações da nota de transporte e encaminha para o sistema de entrega, que por sua vez irá enviar um pedido de entrega para a empresa de transporte, que no fim irá entregar o produto na casa do cliente.
Este é um caso de aplicação do BizTalk, o processo poderia ser bem mais completo, mas simplificamos para melhor entendermos. O papel do BizTalk é ser o maestro deste processo, toda a lógica de negócio está dentro dele, além do fluxo de informações e as interfaces com cada sistema que são necessárias. Cada seta do caso acima pode ser um padrão de comunicação como arquivos textos ou XML, protocolos de comunição como HTTP, FTP, MSMQ, SMTP, POP3, entre outros. O conceito EAI (Enterprise Application Integration) é este: integrar sistemas de informação em uma empresa, de uma forma simples e coerente.
3. Utilizando o BizTalk para integração de sistemas entre parceiros de negócio (B2B)
Cada vez mais os clientes buscam respostas rápidas, e para isso, muitas vezes dependemos de parceiros e fornecedores para responder a esta velocidade com menor custo. Existem processos de negócio que se extendem a uma infinidade de empresas, sendo necessário o controle desta operação para não deixar o cliente esperando.
Continuando com o exemplo anterior, mas utilizando outras empresas parceiras no processo:
O cliente executa uma compra em um sistema web qualquer, logo após a efetivação da compra o BizTalk captura as informações e verifica se o produto adquirido existe no estoque do fornecedor (neste caso o cliente não possui estoque, ele adquiri os produtos sob demanda para comercialização). Após o retorno do fornecedor o BizTalk encaminha o pedido para o sistema de faturamento, onde é emitida a fatura que será encaminhada para o cliente. Ao mesmo tempo o BizTalk já encaminha um pedido de entrega do produto para o parceiro de transporte, onde contém as informações do cliente para entrega e as informações do produto que será entregue.
Conectar aplicações entre empresas diferentes é o papel das integrações B2B (Business to Business), onde podemos encontrar os mais variados cenários, padrões de comunicações e complexidade de processos de negócios corporativos. 4. Utilizando o BizTalk para gerenciamento de processos de negócio (BPM)
Processos de negócio complexos envolvem clientes, diversos sistemas, fornecedores, parceiros, entre outros coadjuvantes, aumentando a possibilidade de erros e falhas. Por este motivo é fundamental que nestes processos críticos tenhamos a possibilidade de monitorá-los em tempo real, tomar direções de acordo com esta monitoração, rastreá-los caso necessário, e muito mais. Estes processos possuem fluxos de trabalho extensos, então ferramentas de workflow e gerenciamento são muito bem vindas para controle e accounting.
Apresentamos estes dois desenhos para ilustrar esta funcionalidade:
No diagrama Definindo Integrações possuímos diversos sistemas conectados ao BizTalk. Muitas vezes um processo de negócio (exemplo uma venda de produto ou serviço) começa no sistema de Call Center, passa pelo sistema de CRM, e chega até o ERP da corporação. Para cada sistema podemos ter uma forma diferente de entrada e saída de dados, justamente por serem desenvolvidos por empresas distintas. Se tivermos uma forma padronizada de integração e que seja adaptável a qualquer cenário, gastaremos menos tempo para desenvolvê-las. Além do mais, tudo que passar pelo BizTalk poderá ser armazenado numa base de dados, podendo gerar informações consistentes e importantes para análise do negócio como um todo. Além de sistemas possuímos servidores de aplicação e bancos de dados que estão conectados ao BizTalk, facilitanto o desenvolvimento de cenários de acordo com sua necessidade.
No desenho Gerenciando Processos de Negócio e uma vez estes sistemas conectados trocando informações através do BizTalk, temos uma gama de ferramentas disponibilizadas por ele para desenvolver, gerenciar e monitorar este grande workflow. Entre elas destacamos algumas como: BAM (Business Activity Monitoring), BRC (Business Rule Composer), BAS (Business Activity Services), HAT (Health and Activity Tracking), Orchestration e HUB (Management Console). Estaremos apresentando estes recursos detalhadamente em um próximo artigo.
Caso seja necessário criar um ponto central para criação, manutenção e principalmente acompanhamento e rastrabilidade de lógicas comerciais para os processos de negócio, o BizTalk é uma boa opção.
5. Componentes internos do BizTalk Server 2006
Estaremos apresentando os principais componentes do BizTalk para executar as atividades de integração e orquestração de processos de negócio. O objetivo é falar apenas conceitualmente como o produto funciona, não entrando em detalhes técnicos.
Segue o diagrama de funcionamento do BizTalk:
Identificando cada componente da solução:
Message: Este ítem representa a informação que está sendo enviada para o BizTalk ou por ele sendo capturada em algum sistema, diretório, infra-estrutura de tecnologia como um banco de dados, fila de mensagem ou servidor de aplicação por exemplo. Os dados contidos nesta mensagem podem estar codificados (criptografados) garantindo a segurança das informações.
Receive Port: A porta de recebimento é um conjunto de componentes físicos e lógicos do BizTalk utilizados para receber dados externos e transformá-los em um padrão compreensível para serem armazenados no banco de dados do BizTalk. Isso irá facilitar o tratamento destas informações mais adiante na parte de orchestração do processo.
Receive Adapter: O adaptador de recebimento é responsável ela entrada das informações no BizTalk. Diversos adaptadores podem prover meios de comunicação como por exemplo arquivos texto, arquivos XML, protocolos de comunicação como FTP, HTTP, filas de mensagem como MSMQ entre outros mecanismos de transporte de dados.
Receive Pipeline: O pipeline de recebimento é utilizado para preparar a mensagem para recebimento da Orchestração. Nele existem componentes que podem executar atividades como conversão de arquivos em um formato específico para XML, validação de mensagens através de assinatura digital, descriptografia, entre outras atividades de pré-processamento.
Message Box/Persistent Store: Após a mensagem é entregue a um banco de dados chamado MessageBox onde é armazenada para ser utilizada pelas ferramentas do BizTalk. Quando os dados chegam neste ponto são geradas informações como estatísticas de recebimento entre outras e logo são encaminhados para a sua orchestração destino.
Orchestration: Aqui é onde o BizTalk executa a lógica de negócio definida pelos especialistas de processos empresariais. Este componente é baseado em workflow, que consiste em um início, uma sequencia de decisões, avaliações, condições, transformações, entre outras atividades e um fim. Um processo pode utilizar diversas Orchestrations, e geralmente o resultado deste processamento é outra mensagem que será encaminhada para uma porta de envio.
Rules Inference Engine: Para não precisarmos alterar todo o processo de negócio por uma necessidade temporária por exemplo, o BizTalk oferece o Business Rule Engine, uma ferramenta simplificada para criação de regras baseadas em condições.
Send Port: Uma vez a mensagem processada e alterada pelo Orchestration ela é enviada novamente para o banco de dados e encaminhada para uma porta de envio onde existem componentes que irão tratar e preparar os dados para serem enviados ao seu destino.
Send Pipeline: Igualmente ao Pipeline de recebimento, este componente faz o tratamento da mensagem, validando, transformando e executando tarefas necessárias para que o destinário receba o formato definido anteriormente na integração.
Send Adapter: Responsável pelo envio das informações ao seu destino, trabalhando com os mesmos protocolos citados no adaptador de recebimento fazendo o papel de entrega da informação.
Message: Por fim a informação enviada para o BizTalk sai transformada ou analisada de acordo com as regras e atividades uma vez definidas nas ferramentas que acabamos de ver. Ainda existe a possibilidade de uma mensagem gerar inúmeros fluxos de trabalho, e todos podendo ser conectados, controlados e monitorados pelo BizTalk.
6. Conclusão
Apresentamos neste documento algumas possibilidades para utilização do BizTalk bem como os conceitos básicos desta incrível ferramenta. Entendo que o gerenciamento de processos e informações é fundamental para a perpetuação de qualquer negócio, e como o volume de dados vém aumentando considerávelmente não existe alternativa sem ser a utilização de tecnologias para criação, manutenção e monitoração de processos de negócio complexos.
Um abraço,
Douglas Mello.
http://spaces.msn.com/dnmello
Pessoas conectadas, sistemas conectados com BizTalk Server.
- Trabalhando com Biztalk, Sql Adapter e EnvelopeBizTalk Server
- BizTalk Server 2002 - Suas funcionalidades e como podem ajudar no seu negócioBizTalk Server
- Fundamentos dos Servidores Corporativos .NETCommerce Server