Table of Contents


Introdução

Já muito se tem falado sobre a plataforma BizTalk Server, o que é, e as vantagens que oferece as organizações. Para os mais distraídos, BizTalk Server é a plataforma de excelência da Microsoft para a integração de sistemas e processos empresariais.

Mas quais os benefícios que esta plataforma oferece aos programadores?

Mercado de trabalho

Onde o produto é utilizado? Em que contextos? Quais as oportunidades de trabalho que oferece? Remunerações? Estas são algumas perguntas que um programador quer saber antes de se dedicar a uma tecnologia/produto.

Microsoft BizTalk Server 2010 é a sétima versão do produto, tornando-o num dos produtos mais maduros e estáveis da Microsoft.


 
Ao longo dos anos o produto tornou-se uma referência de sucesso entre os sistemas de integração, sendo actualmente o produto mais utilizado no mundo na sua área, como asseguram os seguintes factos:
Com uma robusta infra-estrutura de mensagens, funcionalidade de resiliência (Dehydration e Rehydration), mais de 25 adaptadores multiplataforma, motor de regras, possibilidade de obter informações de desempenho sobre processos críticos de negócios, debug, persistência, tratamento e recuperação de erros, suporte a transacções.

Torna o BizTalk Server numa ferramenta e infra-estrutura única, ideal para ser usado principalmente para integração de aplicações corporativas (EAI), integração de sistemas entre parceiros de negócio (B2B) e para gestão de processos de negócio (BPM).

  

No que diz respeito às oportunidades de trabalho, podemos definir 3 perfis:
Apesar dos mercados diferenciarem de pais para pais, aqui estão alguns exemplos reais de oportunidades de trabalho (fonte LinkedIn):

Funcionalidades para os programadores

Não há nada que o BizTalk faça que com código escrito de raiz não se consiga fazer, a questão é quanto tempo demora a implementar uma solução sem um uso de middleware (sistema de integração). Facilmente se conseguirá efectuar uma integração entre dois sistemas com o uso de tecnologias de comunicação e transporte de dados tais como o Microsoft WCF, mas quando se analisa com mais atenção alguns requisitos, é fácil identificar certos desafios que se podem tornar bastante complexos: implementação de persistência, correlação de mensagens assíncronas, recuperação em caso de falhas nas comunicações, mapeamentos complexos, atomicidade, transacções de longa duração, monitorização e visibilidade dos processos, e tudo isto se reflecte, para um programador, em custos enormes na implementação.

É aqui que o BizTalk entra e o que ele faz de melhor, porque todas estas funcionalidades estão ao dispor dos programadores “out of the box” com o produto, libertando assim, os mesmos, da necessidade de terem de reimplementar vezes sem conta estas funcionalidades e permitindo assim um foco no aspecto mais critico que é a implementação da lógica de negócio associado aos fluxos de integração.

São diversas as funcionalidades ou módulos que poderíamos enumerar. Umas ajudam a simplificar a interoperabilidade, outras a reduzir custos na implementação:

BizTalk Orchestration Designer

Antes de aprender a programar é ensinado a todos os programadores como representar todos os passos necessários para a execução de um processo na forma de um fluxograma, isto porque é mais legível e ilustra de forma simplificada o progresso da execução.

O BizTalk inclui um Orchestration Designer, integrado no Visual Studio, que possibilita aos programadores representarem os processo de negócio de forma visual, assim como uma representação das portas, configurações e das ligações entre as diversas actividades (shapes), tornando-se assim mais fácil de gerir e ler do que numa linguagem textual generalista (exemplo C#).

 

BizTalk Expression Editor

O BizTalk Expression Editor permite aos programadores introduzir código .NET, com suporte a intellisense, directamente nas orquestrações ou invocar bibliotecas externas, o que em certos cenários se torna bastante útil, como por exemplo: manipular valores das mensagens a partir da Message Assignment shape, manipular variáveis na Expression shape, construção de expressões booleanas dentro de Loop e Decide shapes, definir tempo de pausa na Delay shape, ou até mesmo configurar portas dinâmicas de saída.


 

Motor de regras (BRE)

O BizTalk Server inclui o Business Rules Framework onde podem ser isolados critérios de decisão de negócio. Sendo que os módulos principais incluem o Business Rule Composer para construção de políticas (regras), o Rule Engine Deployment Wizard para as instalar no Run-Time Business Rule Engine.

A tarefa da criação e alteração das regras poderá não ser uma tarefa do programador. Os analistas, consultores ou responsáveis de negócio poderão cria-las e a qualquer momento actualizar as mesmas. O programador poderá então reutilizar as regras de negócio nas suas orquestrações para suportar uma variedade de cenários como por exemplo para determinar o caminho de execução de um processo de negócio, ou um valor a aplicar numa transacção. Mais que um parâmetro aplicacional, este motor permite que o valor ou condição seja completamente dinâmico e apenas determinado em contexto de runtime.


 
Usar regras, que mudam constantemente, em vez código poderá permite aos programadores não terem de refazer sistematicamente as suas aplicações.

Para mais informação: The Business Rules Framework

BizTalk Mapper Designer

Inclui o BizTalk Mapper Designer, integrado no Visual Studio, que possibilita efectuar transformações de mensagens complexas de forma visual e extremamente simples.



Na realidade, este editor está a gerar um mapa XSLT, e em determinadas situações poderá ser mais adequado usar snippets XSLT directamente no mapa. Estas opções dependem muito da experiência do programador. Em termos de estruturação/modularidade, estes mapas podem ainda ser enriquecidos com funções (Functoids), chamadas externas (SQL lookups, outros mapas) ou código XSLT, .NET/C#, COM, VBscript.

Transacções, Excepções e Persistência de dados

É comum nas aplicações Service-Oriented Architecture (SOA) ou Business Process, onde os processos podem abranger vários endpoints (sistemas), as operações não poderem ser realizados num curto período de tempo, o que origina a que as transacções ACID não sejam as mais adequadas para este tipo de cenários.
Ao contrário da programação tradicional, o BizTalk Server suporta dois tipos distintos de transacções:

Entre várias opções, pode-svários endpoints (sistemas), as operações não poderem ser realizados num curto período de tempo, o que origina a que as transacções ACID não sejam as mais adequadas para este tipo de cenários.
Ao contrário da proe configurar o tipo de transacção ao nível da orquestração:

 

Assim como definir a transação ao nivel do “scope” por forma a encapsular uma unidade de trabalho detro de um contexto de transacção:



O programador também tem a sua disposição a possibilidade de definir vários blocos (Handlers) para tratamento de excepções:
 


Quando lidamos com processos de negócio, nomeadamente os de longa duração, necessitamos sempre de falar de persistência dos dados por forma a salvaguardamos de falhas e podermos efectuar o reprocessamento a partir de uma determinado ponto do processo. A Orquestration engine persiste, automaticamente, o estado das instâncias em execução baseado no desenho das orquestrações efectuada pelo programador, existindo alguns eventos ou etapas em que é despoletado a operação de persistência, chamados pontos de persistência:
A persistência do estado das instâncias inclui: o progresso actual da instância, o estado de qualquer componente .NET que contêm informação do estado e está a ser utilizado na orquestração assim como os valores das mensagens e variáveis.

Para mais informação: BizTalk Orchestration – Understanding Persistence points

Adaptadores

Inclui mais de 25 adaptadores que simplificam a integração directa para as top “Line of Business (LOB) Applications” (tais como o Siebel, SAP, JD Edwards, Oracle ou Dynamics CRM), Base de dados (Microsoft SQL Server, Oracle, DB2) e outras tecnologias (Tibco, Java EE).

 

WCF LOB Adapter SDK

Fornece um modelo de programação enriquecido para desenvolvimento de adaptadores baseados em Windows Communication Foundation. (WCF LOB Adapter SDK)

Suporte poderoso e completo para EDI/AS2

Electronic Data Interchange (EDI) é uma das formas mais comuns de comunicação electrónica entre organizações (Facturas, encomendas, notas de débito). Estes padrões (EDIFACT, ASC X12) são projectados para leitura electrónica, e portanto inadequados para leitura humana, reflectindo à troca estruturada de dados de negócios entre sistemas utilizando um formato de dados padronizado que garante a fiabilidade dos dados através de diferentes checksums.

Para mais informações:

O Business Activity Monitoring ou BAM é um módulo que captura dados de negócio e milestones do processo permitindo que os analistas de negócios monitorizem e analisem os dados em tempo real.



 
Estas ferramentas permitem libertar os programadores da preocupação, na altura do desenvolvimento, de qual a informação que pretendem recolher e da implementação da monitorização, uma vez que os analistas podem desenvolver o seu modelo com uma ferramenta extremamente familiar (Microsoft Excel) e o administrador poderá posteriormente ligar o modelo com os processos utilizando a ferramenta Tracking Profile Editor.


 
O grande benefício do BAM é que proporciona a visibilidade sobre os processos de negócios. Este pequeno grande efeito, poderá ser o ideal para envolver os responsáveis de negócio na operação activa dos processos criando um feedback loop importantíssimo para a melhoria contínua dos projectos de automação (BPA).

Uma vez que a implementação do BAM é muitas vezes apenas a definição do modelo e toda a implementação é automatizada (geradores), o esforço para incluir o BAM é muito simplificado para os programadores.

Mais informações: Business Activity Monitoring

BizTalk WCF Service Publishing Wizard e BizTalk WCF Service Consuming Wizard

Mesmo quando for preciso expor um processo como um Web Service, existem wizards que nos ajudam a criar tanto os projectos WCF, como na instalação destes no servidor Web (IIS). O mesmo acontece no caso de querermos incluir nos nossos processos, chamadas a outros Web Services.

Estas ferramentas permitem aos programadores abstraírem-se de programação repetitiva, agilizando o processo de integração.

BizTalk Flat File Schema Wizard

Uma dos padrões mais antigos para a troca de mensagens é a utilização de arquivos texto (Flat Files) como como: CSV ou TXT, muitos deles customizados à medida para os sistemas. Porém com a adopção do XML como formato de eleição na troca de mensagens, muitas vezes é necessário transformar arquivos texto em XML e vice-versa.

A ferramenta “BizTalk Flat File Schema Wizard” permite ao programador facilmente e de forma visual efectuar transformação de arquivos de texto posicionais:
CABEÇALHOXXXXXXXXXXXXXXXXXXXX
CORPOXXXXXXXXXXXXXXXXXXXXXXXX
CORPOXXXXXXXXXXXXXXXXXXXXXXXX
RODAPÉXXXXXXXXXXXXXXXXXXXXXXX

Ou delimitado por símbolos:
1999990;1;P0110;1;1;20110307;
1999990;2;P0529;2;2;20110307;
1999990;3;P0530;3;3;20110307;


A definição das regras de “parsing” fica embebida no schema XSD, simplificando logo toda a reutilização destes esquemas nos diferentes pontos do processo. Em qualquer ponto o documento poderá ser novamente traduzido para flat-file pois a definição é declarativa e simétrica.

Testes, debug e suporte ao Team Foundation Server

As ferramentas de desenvolvimento do BizTalk usam pastas, ficheiros e projectos do Visual Studio. Assim as equipas podem tirar partido de todo o ambiente ALM (Application Lifecycle Management) colaborando naturalmente com os demais programadores, gestores de projecto e testers que fazem parte da equipa.

Claro que dentro do VS vão encontrar suporte para debug, seja dos orchestrations, ou dos mapas (XSLT), ou componentes de pipelines. Bem como para a realização de Testes Unitários e muitas outras ferramentas do Visual Studio (da Microsoft ou de outros fornecedores).

Conclusão

Conforme apresentado neste artigo, com o foco no desenvolvimento de soluções de integração empresarial, o BizTalk Server 2010 simplifica a integração de aplicações, independentemente dos seus interfaces se encontrarem dentro (EAI), nos seus parceiros (B2B) ou alojados na cloud.

 Este tipo de middleware torna-se cada vez mais importante quando o número de endpoints cresce cada vez mais e o tipo de mensagens transaccionadas se torna cada vez mais crítico num mercado cada vez mais electrónico e automatizado.

Autor

Sandro Pereira
DevScope | MVP & MCTS BizTalk Server 2010
http://sandroaspbiztalkblog.wordpress.com/ | @sandro_asp

Outros idiomas

Este artigo também está disponível nos seguintes idiomas:

Ver Também