Translate

Mostrar mensagens com a etiqueta esql. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta esql. Mostrar todas as mensagens

terça-feira, 9 de junho de 2015

☕🔥 LABORATÓRIO PRÁTICO — IBM Integration Bus (Broker) Integrando COBOL/MQ com JSON REST

 

Bellacosa Mainframe e o laboratorio de ibm integration bus (broker)


☕🔥 LABORATÓRIO PRÁTICO — IBM Integration Bus (Broker) Integrando COBOL/MQ com JSON REST

Este laboratório simula um cenário REAL de mercado:

Um sistema COBOL no mainframe envia uma mensagem MQ em formato legado, e o IBM Integration Bus (IIB/ACE) transforma tudo em JSON para APIs modernas.

Você aprenderá:

✅ fluxo completo
✅ MQ Input
✅ transformação EBCDIC/Copybook → JSON
✅ ESQL
✅ Message Flow
✅ deploy
✅ testes
✅ troubleshooting


🎯 CENÁRIO DO LAB

Sistema legado (Mainframe)

Envia:

000123JOAO      0000500

Formato:

  • posição fixa

  • padrão COBOL

  • MQ


Broker/IIB/ACE

Recebe:

  • MQ Queue

Transforma:

  • fixed length

  • copybook lógico

  • JSON

Entrega:

  • API REST

  • ou outra fila MQ


🏗️ ARQUITETURA

COBOL Batch/CICS
       ↓
     IBM MQ
       ↓
 MQINPUT NODE
       ↓
 COMPUTE NODE (ESQL)
       ↓
 JSON OUTPUT
       ↓
HTTP/MQ/API

📦 PASSO 1 — PREPARAR O AMBIENTE

Você precisará:

ComponenteFunção
IBM MQMensageria
IBM ACE/IIBIntegração
ToolkitDesenvolvimento
Queue ManagerFilas
MQ ExplorerAdministração

📌 FILAS DO LAB

Entrada

LAB.INPUT

Saída

LAB.OUTPUT

⚙️ PASSO 2 — CRIAR AS FILAS MQ

Script MQSC

DEFINE QLOCAL(LAB.INPUT)
DEFINE QLOCAL(LAB.OUTPUT)

▶️ EXECUTAR

Linux:

runmqsc QM1 < filas.mqsc

Windows:

runmqsc QM1

Cole os comandos.


🔥 PASSO 3 — CRIAR O PROJETO NO ACE TOOLKIT

Novo Application

File → New → Application

Nome:

LAB_MAINFRAME_JSON

🔥 PASSO 4 — CRIAR MESSAGE FLOW

Novo Message Flow

MF_MAINFRAME_JSON

🧩 PASSO 5 — ADICIONAR NODES

Arraste:

NodeFunção
MQInputReceber MQ
ComputeTransformar
MQOutputEnviar saída

🔗 CONECTAR

MQInput → Compute → MQOutput

⚙️ PASSO 6 — CONFIGURAR MQINPUT

Queue Name

LAB.INPUT

Queue Manager

QM1

⚙️ PASSO 7 — CONFIGURAR MQOUTPUT

Queue

LAB.OUTPUT

🧠 PASSO 8 — CRIAR O ESQL

Compute Node

Clique:

Open ESQL

✨ CÓDIGO COMPLETO

CREATE COMPUTE MODULE MAINFRAME_TO_JSON

CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN

    DECLARE MSG CHAR;
    
    SET MSG = CAST(InputRoot.BLOB.BLOB AS CHAR CCSID 1208);

    DECLARE CONTA CHAR;
    DECLARE NOME  CHAR;
    DECLARE SALDO CHAR;

    SET CONTA = SUBSTRING(MSG FROM 1 FOR 6);
    SET NOME  = TRIM(SUBSTRING(MSG FROM 7 FOR 10));
    SET SALDO = SUBSTRING(MSG FROM 17 FOR 7);

    CREATE FIELD OutputRoot.JSON.Data;

    SET OutputRoot.JSON.Data.conta = CONTA;
    SET OutputRoot.JSON.Data.nome  = NOME;
    SET OutputRoot.JSON.Data.saldo = CAST(SALDO AS INTEGER);

    RETURN TRUE;

END;

END MODULE;

🧠 O QUE ESSE ESQL FAZ?


📌 PASSO A PASSO DA LÓGICA

1️⃣ Recebe o BLOB MQ

SET MSG = CAST(InputRoot.BLOB.BLOB AS CHAR CCSID 1208);

Converte:

  • bytes MQ

  • para texto


2️⃣ Extrai os campos

Conta

SET CONTA = SUBSTRING(MSG FROM 1 FOR 6);

Pega:

000123

Nome

SET NOME = TRIM(SUBSTRING(MSG FROM 7 FOR 10));

Pega:

JOAO

Saldo

SET SALDO = SUBSTRING(MSG FROM 17 FOR 7);

Pega:

0000500

📌 MONTA JSON

SET OutputRoot.JSON.Data.conta = CONTA;

Cria:

{
  "conta": "000123"
}

🚀 RESULTADO FINAL

Mensagem saída:

{
  "conta": "000123",
  "nome": "JOAO",
  "saldo": 500
}

🔥 PASSO 9 — DEPLOY

Clique direito

Deploy → Integration Server

📦 PASSO 10 — TESTAR

Enviar MQ Message

Use:

amqsput LAB.INPUT QM1

Digite:

000123JOAO      0000500

ENTER
ENTER novamente.


📥 VERIFICAR SAÍDA

amqsget LAB.OUTPUT QM1

🎉 RESULTADO

{
  "conta":"000123",
  "nome":"JOAO",
  "saldo":500
}

🔥 O QUE VOCÊ APRENDEU AQUI?

Você criou:

✅ integração real
✅ transformação legado → moderno
✅ parsing de layout COBOL
✅ transformação JSON
✅ fluxo MQ
✅ ESQL
✅ Message Flow


🧠 CENÁRIOS REAIS DE MERCADO

Esse padrão é MUITO usado para:

LegadoModerno
COBOLAPI REST
VSAMJSON
CICSCloud
MQKafka
DB2Microservices

🚨 PROBLEMAS COMUNS

❌ CCSID errado

Erro clássico:

caracteres estranhos

Solução:

  • validar UTF-8

  • EBCDIC

  • CCSID MQ


❌ Campo deslocado

Exemplo:

JOAO indo para saldo

Problema:

  • posições incorretas


❌ JSON vazio

Problema:

  • OutputRoot errado


❌ MQInput não lê

Verificar:

  • queue manager

  • channel

  • listener

  • permissões


🔥 LAB AVANÇADO (PRÓXIMOS PASSOS)

Você pode evoluir para:

✅ Copybook COBOL real
✅ XMLNSC
✅ SOAP
✅ REST API
✅ Kafka
✅ integração DB2
✅ CICS Web Services
✅ SAP IDoc
✅ HTTPS OAuth2
✅ JWT
✅ transformação XML ↔ JSON


🏆 DESAFIO EXTRA

Transforme este layout:

000123JOAO      00005000000100SP

Em:

{
  "conta":123,
  "nome":"JOAO",
  "saldo":500,
  "agencia":100,
  "estado":"SP"
}

☕🔥 CONCLUSÃO

Esse laboratório mostra exatamente:

como o IBM Integration Bus/ACE virou a ponte entre o mundo COBOL/mainframe e o universo APIs/cloud.

É literalmente:

✅ legado falando moderno
✅ MQ falando REST
✅ EBCDIC falando JSON
✅ mainframe conectado ao futuro 🚀


quinta-feira, 14 de maio de 2015

☕🔥 IBM Integration Bus (Broker) no Mainframe — O “Tradutor Universal” dos Sistemas Corporativos

Bellacosa Mainframe e o IBM Integration Bus (Broker)


 ☕🔥 IBM Integration Bus (Broker) no Mainframe — O “Tradutor Universal” dos Sistemas Corporativos

Quando alguém fala em Integration Bus, Broker, Message Broker ou até no antigo MQSeries Integrator… estamos falando de uma das tecnologias mais importantes da integração corporativa moderna.

E no mundo mainframe isso teve — e ainda tem — um impacto gigantesco.


📌 O QUE É O INTEGRATION BUS (BROKER)?

De forma simples:

O IBM Integration Bus (IIB) é um middleware de integração criado pela IBM para:

  • conectar sistemas diferentes

  • transformar dados

  • rotear mensagens

  • integrar aplicações legadas e modernas

  • fazer “sistemas conversarem”

Ele funciona como um:

✅ tradutor
✅ roteador
✅ orquestrador
✅ mediador
✅ transformador de protocolos


📜 EVOLUÇÃO HISTÓRICA

A IBM mudou o nome várias vezes:

NomeÉpoca
MQSeries Integratoranos 90
WebSphere Message Broker (WMB)anos 2000
IBM Integration Bus (IIB)2010+
IBM App Connect Enterprise (ACE)atual

Muita gente no mercado ainda chama tudo de:

👉 “Broker”

Porque o nome ficou eternizado no ambiente corporativo.


🧠 O PROBLEMA QUE ELE RESOLVE

Imagine isso:

Sistema A

Mainframe COBOL
fala:

  • EBCDIC

  • Copybook COBOL

  • MQ

Sistema B

Java/Linux
fala:

  • JSON

  • REST

  • UTF-8

Sistema C

SAP
fala:

  • IDoc

  • XML

Sistema D

Cloud/API
fala:

  • HTTPS

  • OAuth

  • SOAP/REST

Sem um barramento de integração…

🔥 vira caos.

Cada sistema teria que entender diretamente todos os outros.


🎯 O BROKER ENTRA COMO INTERMEDIÁRIO

Ele recebe dados de um lado e entrega no formato correto do outro.

Exemplo:

COBOL + MQ + EBCDIC
        ↓
   Integration Bus
        ↓
JSON + REST + UTF-8

Ou:

CICS → MQ → Broker → API REST → Cloud

🏦 ONDE ELE É MUITO USADO?

Principalmente:

  • bancos

  • seguradoras

  • bolsas financeiras

  • telecom

  • governo

  • varejo

  • empresas gigantes

Porque quase todas possuem:

✅ sistemas legados
✅ mainframe
✅ aplicações distribuídas
✅ cloud
✅ APIs modernas

E alguém precisa integrar tudo isso.


⚙️ COMO ELE FUNCIONA?

O Integration Bus trabalha com:

📦 Message Flows

Fluxos gráficos que definem:

  • entrada

  • transformação

  • regras

  • roteamento

  • saída

Visualmente parece um pipeline.


🧩 COMPONENTES PRINCIPAIS

🔹 Input Node

Recebe mensagens:

  • MQ

  • HTTP

  • File

  • Kafka

  • SOAP

  • REST

  • TCP/IP


🔹 Compute Node

Onde fica a lógica.

Normalmente usando:

  • ESQL

  • Java

  • Mapping

Aqui ele:

  • transforma campos

  • converte layouts

  • altera dados

  • toma decisões


🔹 Mapping Node

Transformação visual:

COPYBOOK COBOL
   ↓
JSON/XML

🔹 Output Node

Entrega para:

  • MQ

  • API

  • banco

  • arquivo

  • Kafka

  • SAP

  • cloud


🧠 O QUE É O ESQL?

O ESQL é a linguagem clássica do Broker.

Parece mistura de:

  • SQL

  • procedural

  • manipulação de mensagem

Exemplo:

SET OutputRoot.JSON.Data.nome =
    InputRoot.XMLNSC.cliente.nome;

Ele transforma estruturas de dados em tempo real.


🔥 O MAINFRAME E O BROKER

Aqui está o ponto interessante.

Muitos ambientes z/OS usam:

  • CICS

  • IMS

  • DB2

  • MQ

  • COBOL

Mas aplicações modernas querem:

  • REST

  • JSON

  • APIs

  • microserviços

O Broker virou a ponte entre esses mundos.


💥 EXEMPLO REAL

Cenário bancário

Mainframe

COBOL envia:

000123JOAO      0000500

Formato fixo EBCDIC.


Broker recebe

Ele:

  • decodifica EBCDIC

  • interpreta copybook

  • converte para UTF-8

  • monta JSON

Resultado:

{
  "conta": 123,
  "nome": "JOAO",
  "saldo": 500
}

API REST recebe

Aplicação cloud consome normalmente.

Tudo transparente.


🚀 O QUE FEZ O BROKER FICAR GIGANTE?

Porque ele resolveu o maior problema corporativo:

integração entre mundos incompatíveis

Ele conecta:

Mundo antigoMundo moderno
COBOLJava
MQREST
VSAMJSON
EBCDICUTF-8
CICSAPIs
BatchCloud

🔥 RELAÇÃO COM IBM MQ

Muita gente confunde.

IBM MQ

transporta mensagens

Broker/IIB

processa e transforma mensagens

Exemplo:

Sistema A
   ↓ MQ
Broker
   ↓ MQ/API
Sistema B

MQ = estrada
Broker = inteligência do tráfego


📦 PRINCIPAIS PROTOCOLOS SUPORTADOS

O Broker suporta praticamente tudo:

  • MQ

  • JMS

  • REST

  • SOAP

  • HTTP

  • HTTPS

  • FTP

  • SFTP

  • Kafka

  • TCP/IP

  • SAP

  • JDBC

  • Files

  • XML

  • JSON

  • CSV

  • FIX

  • SWIFT


🧠 POR QUE ISSO FOI REVOLUCIONÁRIO?

Antes dele:

❌ integrações ponto a ponto
❌ spaghetti architecture
❌ milhares de interfaces manuais
❌ manutenção infernal

Depois dele:

✅ centralização
✅ transformação padronizada
✅ governança
✅ desacoplamento
✅ reutilização


⚠️ MAS EXISTEM DESAFIOS

Integration Bus também pode virar:

🔥 “monólito de integração”

Quando:

  • tudo passa por ele

  • todas regras ficam centralizadas

  • ninguém documenta

  • flows crescem demais

Resultado:

❌ complexidade absurda
❌ debugging difícil
❌ dependência gigante
❌ gargalos


🏗️ O QUE VEIO DEPOIS?

Hoje existe forte movimento para:

  • microservices

  • event streaming

  • Kafka

  • API Gateway

  • cloud integration

Mas…

🔥 o Broker continua fortíssimo em empresas enterprise.

Especialmente onde:

  • existe mainframe

  • há MQ pesado

  • integração crítica

  • alto volume transacional


📌 NO MAINFRAME MODERNO

O Broker/ACE virou peça estratégica para:

✅ expor APIs do CICS
✅ integrar COBOL com cloud
✅ transformar copybooks em JSON
✅ integrar DB2 com REST
✅ conectar Kafka ao z/OS
✅ modernização gradual


🎯 RESUMO FINAL

O IBM Integration Bus/Broker é:

“o sistema que faz sistemas incompatíveis conversarem.”

Ele foi — e continua sendo — um dos pilares da integração corporativa entre:

☕ legado
🔥 middleware
🚀 cloud
🏦 mainframe
🌎 APIs modernas

Sem ele, boa parte do mundo corporativo ainda estaria presa em integrações caóticas ponto a ponto.