↓ Ir para o conteúdo principal
  1. Posts/

Business Processes e BPML no IBM Sterling B2B Integrator: Duas Visões do Mesmo Motor

·1401 palavras·7 minutos· loading · loading ·
Newton Rocha
Autor
Newton Rocha
Profissional sênior de TI com mais de 15 anos de experiência em administração de sistemas Linux, automação com Bash e integração corporativa usando tecnologias IBM Sterling (File Gateway, B2B Integrator, Connect:Direct). Escrevo sobre incidentes reais de produção, dicas de MFT/middleware, automação de infraestrutura e como estou aplicando IA em operações de TI.
Tabela de conteúdos
sterling-b2bi-architecture - Este artigo faz parte de uma série de artigos.
Parte 3: Esse Artigo

O que é um Business Process
#

Um Business Process é o fluxo de trabalho que encadeia adapters e services em algo que de fato realiza uma tarefa: receber um arquivo, validá-lo, mapeá-lo, criptografá-lo, entregá-lo a um adapter para envio, registrando cada etapa pelo caminho. É a coisa que a Parte 1 chamou de “a coisa mais parecida com um coração que a plataforma tem” — porque quase nada relevante acontece no Sterling B2B Integrator fora da execução de um deles.

Estruturalmente, um Business Process é apenas uma sequência de etapas com lógica de ramificação: chame este service, verifique esta condição, chame aquele adapter, trate de forma diferente se algo der errado. Nada nessa descrição exige um diagrama. E esse é exatamente o ponto.

O que é BPML
#

BPML — Business Process Markup Language — é a linguagem baseada em XML na qual um Business Process é realmente escrito por baixo. Cada caixa que você arrasta no designer visual vira um elemento nesse markup; cada seta vira o aninhamento e o sequenciamento desses elementos. Não é um resumo simplificado do processo — é a definição literal e completa que o Business Process Engine executa. Nada roda que não esteja no BPML, incluindo qualquer coisa que o designer visual tenha gerado para você sem perguntar.

GPM e BPML são a mesma coisa, vistas de formas diferentes
#

O Graphical Process Modeler (GPM) é a ferramenta que a maioria das pessoas aprende primeiro: arraste um ícone de service para o canvas, conecte-o à próxima etapa, e a ferramenta constrói o processo visualmente. O que é fácil de não perceber no início é que o GPM não é uma forma separada e simplificada de construir um Business Process — é um tradutor em tempo real. A própria documentação da IBM o descreve como uma ferramenta de interface gráfica implantada via web, usada para criar e modificar Business Processes (Documentação IBM), e por baixo dos panos ela converte cada modelo gráfico que você constrói diretamente em BPML — e da mesma forma converte BPML existente de volta para o diagrama, deixando você alternar entre as duas visões do mesmo processo a qualquer momento.

Essa reversibilidade é a parte que vale a pena internalizar: nada se perde ao ir do diagrama para o código ou vice-versa. Um Business Process construído inteiramente arrastando ícones e um Business Process digitado à mão em um editor de texto são funcionalmente idênticos depois de salvos — o motor não sabe nem se importa qual dos dois você usou.

Os elementos de BPML que você realmente vai usar
#

O BPML tem um vocabulário razoavelmente grande, mas um punhado de elementos cobre a esmagadora maioria do que você vai ler e escrever:

OPERATION. O elemento cavalo de batalha — este é o componente BPML usado para chamar um service ou adapter de dentro de um Business Process (Documentação IBM). Todo ícone que você arrasta no GPM representando um service ou adapter é compilado para uma OPERATION por baixo. Se você está procurando onde um service específico é invocado, você está procurando um bloco OPERATION.

SEQUENCE. O elemento estrutural que diz “essas etapas acontecem nesta ordem.” A maior parte de um Business Process é uma grande SEQUENCE com outros elementos aninhados dentro dela — é o esqueleto no qual tudo o mais se pendura.

CHOICE. Ramificação condicional — faça isso se uma condição for verdadeira, faça outra coisa se não for. É aqui que normalmente mora a lógica de roteamento específica por parceiro: “se o trading partner for X, use o map A; senão, use o map B.”

ASSIGN. Move dados entre a memória de trabalho do Business Process e os parâmetros de entrada ou saída de um service. Nada glamouroso, mas é aqui que uma grande fatia dos bugs de “o map pegou o campo errado” realmente se origina — não no map em si, mas em um ASSIGN que apontou para o pedaço de dado errado.

ONFAULT. Tratamento de erros. Quando uma etapa dentro de uma SEQUENCE falha, um bloco ONFAULT permite capturar essa falha e fazer algo deliberado a respeito — tentar de novo, notificar, rotear para uma mailbox de dead-letter — em vez de deixar o processo morrer silenciosamente. Um Business Process sem tratamento ONFAULT não está exatamente errado, mas é o motivo mais comum de “o arquivo simplesmente sumiu” virar uma investigação longa.

Cenários: lendo e escrevendo BPML na prática
#

Cenário 1 — Construindo um novo Business Process de entrada do zero. Este é o terreno natural do GPM: arraste um ícone de adapter, arraste um service de validação, arraste um service de mapeamento, conecte tudo, salve. Para um primeiro rascunho, a ferramenta visual é mais rápida do que digitar BPML à mão, e é muito mais difícil produzir XML inválido por acidente.

Cenário 2 — O GPM está lento ou indisponível, e um processo precisa de um pequeno ajuste agora. É exatamente esse o momento que aquele engenheiro sênior estava demonstrando. Abrir o arquivo .bpml diretamente em um editor de texto, encontrar o bloco OPERATION ou ASSIGN em questão, e editá-lo à mão é totalmente válido — o motor não se importa com como o arquivo foi produzido. Estar confortável lendo BPML bruto transforma “eu preciso que o GPM carregue” em “eu preciso de um editor de texto”, o que importa mais do que parece durante um incidente de verdade.

Cenário 3 — A mesma pequena mudança precisa entrar em cinquenta Business Processes. Clicar em cinquenta processos no GPM, um de cada vez, é uma tarde ruim. Rodar um script de busca-e-substituição em cinquenta arquivos .bpml não é. Este é o cenário onde saber BPML não é só uma habilidade de debugging — é a diferença entre uma hora de trabalho e uma semana dele.

Cenário 4 — Um processo está falhando e ninguém sabe onde. Comece pelos blocos ONFAULT — ou pela falta deles. Se uma SEQUENCE não tem tratamento de erro em volta da etapa que está falhando, esse geralmente é o conserto mais rápido disponível: envolva a etapa, registre o que de fato falhou, e a próxima falha se explica sozinha em vez de exigir outra investigação do zero.

Por que a distinção realmente importa
#

O GPM é a ferramenta melhor para construir e entender a forma de um processo — a visão de caixas e setas deixa o fluxo geral óbvio de um jeito que tags XML aninhadas não conseguem. O BPML bruto é a ferramenta melhor para precisão, mudanças em massa, e qualquer coisa que precise acontecer quando a ferramenta visual está lenta, indisponível, ou simplesmente é exagero para um ajuste de duas linhas.

Nenhum dos dois é o Business Process “de verdade” e o outro um atalho. São a mesma definição, e qual usar depende inteiramente do que você está tentando fazer naquele momento — construir algo novo, ou consertar algo específico, rápido.

Onde isso se encaixa no quadro geral
#

Toda chamada de adapter e service da Parte 1 e da Parte 2 acontece porque o BPML de um Business Process disse ao motor para fazer isso acontecer, nessa ordem, com aquele tratamento de erro. O GPM e o BPML bruto são só duas portas para editar o mesmo arquivo:

flowchart TB
    subgraph Authoring["Duas Formas de Entrada"]
        GPM["Graphical Process Modeler
(arrastar, conectar, alternar visão)"] TXT["Editor de Texto
(editar .bpml diretamente)"] end BPML[("BPML
(a definição de fato)")] ENGINE["Business Process Engine"] GPM <-->|gera / renderiza| BPML TXT <-->|lê / escreve| BPML BPML --> ENGINE ENGINE --> OP1["OPERATION
(chama um Adapter)"] ENGINE --> OP2["OPERATION
(chama um Service)"] ENGINE --> CH["CHOICE
(ramificação)"] ENGINE --> OF["ONFAULT
(trata falha)"]

Os dois caminhos de autoria convergem exatamente para o mesmo BPML, e o motor que de fato o executa não tem ideia — nem motivo para se importar — de qual porta você usou.

Fontes e leituras complementares
#

Como no resto desta série, o enquadramento, os cenários e as histórias de guerra são meus — as definições e o comportamento dos elementos de BPML são da IBM.

O que vem a seguir
#

A seguir: SFTP: O Protocolo Por Trás do Adapter — um olhar mais de perto sobre o transporte, a autenticação e a mecânica de chaves por trás do SFTP Server Adapter configurado na Parte 2.

sterling-b2bi-architecture - Este artigo faz parte de uma série de artigos.
Parte 3: Esse Artigo

Relacionados

IBM Sterling B2B Integrator: Adapters vs. Services — A Distinção Que Realmente Importa

·2533 palavras·12 minutos· loading · loading
O que é um Adapter # Um Adapter é um service cujo trabalho inteiro é alcançar o mundo fora do Sterling B2B Integrator — conectando o Business Process Engine a “sistemas e aplicações diferentes” que vivem fora do ambiente (Documentação IBM). Um adapter SFTP abre uma conexão com o servidor SFTP de um parceiro. Um adapter AS2 fala o protocolo AS2 com o gateway de um parceiro comercial. O mecanismo por baixo é o mesmo de qualquer outro service — o Business Process Engine o chama, ele executa, retorna um resultado — mas o trabalho em si acontece em outro lugar, através de uma rede, contra um sistema que você não controla.

IBM Sterling B2B Integrator: Uma Visão Geral Rápida da Arquitetura

·1360 palavras·7 minutos· loading · loading
A página inicial do console de administração — onde toda sessão começa O que é o IBM B2Bi # O IBM Sterling B2B Integrator faz um trabalho: mover arquivos entre a sua empresa e seus parceiros comerciais — bancos, fornecedores, transportadoras, quem quer que precise trocar documentos EDI, arquivos planos ou XML de forma confiável e rastreável — e saber exatamente o que aconteceu com cada arquivo em cada etapa. Só isso. Tudo o mais existe para sustentar esse único trabalho.