Translate

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

quinta-feira, 23 de novembro de 2023

APIs sem Mistérios : O Guia Definitivo do Programador COBOL Padawan para Entender Como o IBM Z Conversa com o Mundo Moderno

 

Bellacosa Mainframe em apis sem misterios

☕ Um Café no Bellacosa Mainframe

APIs sem Mistérios

O Guia Definitivo do Programador COBOL Padawan para Entender Como o IBM Z Conversa com o Mundo Moderno

"A comunicação é a essência da cooperação. Uma tecnologia isolada possui pouco valor. Sistemas que conversam mudam o mundo."

— Dr. Spock (adaptado ao universo Bellacosa Mainframe)


Introdução – Quando o Padawan Descobre que o Mundo Não Vive Apenas de Arquivos Sequenciais

Existe um momento curioso na vida de praticamente todo programador COBOL.

Durante meses ele aprende:

  • JCL

  • VSAM

  • Db2

  • CICS

  • IMS

  • SORT

  • IDCAMS

  • MQ

  • TSO

  • ISPF

Tudo parece fazer sentido.

Até que um dia alguém chega perto de sua mesa e diz:

"Precisamos expor esse programa COBOL como uma API REST."

Logo em seguida aparece outra pessoa:

"O aplicativo mobile quer consumir via GraphQL."

Cinco minutos depois:

"O pessoal da IoT vai mandar dados usando MQTT."

Mais tarde:

"O pessoal da arquitetura decidiu migrar tudo para Event Driven Architecture."

Nesse momento, o Padawan olha para sua tela 3270, respira fundo e pensa:

"Será que entrei na nave errada?"

A resposta é simples.

Não.

Na verdade, você acabou de descobrir que o IBM Z nunca deixou de evoluir.

O COBOL continua processando bilhões de transações diariamente.

O que mudou foi a maneira como o restante do mundo conversa com ele.

Hoje não basta apenas executar um programa.

É preciso fazê-lo conversar com:

  • aplicativos móveis;

  • sistemas web;

  • microsserviços;

  • inteligência artificial;

  • sensores industriais;

  • plataformas em nuvem;

  • robôs;

  • bancos;

  • marketplaces;

  • parceiros comerciais.

E tudo isso acontece através das famosas APIs e protocolos de integração.

Pegue sua caneca de café.

Hoje faremos uma viagem digna da USS Enterprise para descobrir como todos esses mundos se conectam.


Antes de tudo…

API não é protocolo.

Essa é uma das maiores confusões da computação.

Muitas pessoas dizem:

"Qual protocolo de API você usa?"

Na realidade, misturam três conceitos diferentes.

Protocolos

São as regras de comunicação.

Exemplos:

  • HTTP

  • MQTT

  • AMQP

  • CoAP

  • XMPP

  • OPC-UA


Arquiteturas

Definem como organizar os sistemas.

Exemplos:

  • REST

  • Event Driven Architecture (EDA)


Linguagens

Definem como fazer consultas.

Exemplo:

  • GraphQL


Frameworks RPC

Automatizam chamadas remotas.

Exemplos:

  • gRPC

  • Apache Thrift


Padrões

Definem maneiras de integração.

Exemplos:

  • Webhooks

  • EDI

Essa distinção é extremamente importante.

Um arquiteto de software sabe exatamente qual dessas ferramentas resolve determinado problema.


A História da Comunicação Entre Sistemas

Vamos voltar algumas décadas.

Imagine um grande CPD IBM.

Tudo era assim.

Programa COBOL

↓

Arquivo Sequencial

↓

Outro programa COBOL

↓

Relatório

Não existia internet.

Não existia JSON.

Não existia XML.

Muito menos APIs.

Os sistemas trocavam informações através de:

  • fitas magnéticas;

  • cartões perfurados;

  • arquivos VSAM;

  • arquivos QSAM;

  • EDI;

  • filas MQ (mais tarde).

Era extremamente eficiente.

Até hoje muitos bancos funcionam exatamente assim.


A Primeira Grande Revolução

Com o surgimento da Internet nasceu uma nova necessidade.

Ao invés de trocar arquivos uma vez por dia…

…os sistemas precisavam conversar em segundos.

Assim nasceu o modelo Request/Response.

Cliente

↓

Servidor

↓

Resposta

Esse paradigma mudou completamente a computação.


REST — O Idioma Universal das APIs

REST significa:

Representational State Transfer.

Criado por Roy Fielding em sua tese de doutorado em 2000.

Curiosamente…

REST não é um protocolo.

Ele apenas utiliza HTTP.

Imagine um restaurante.

Você faz um pedido.

Cliente

↓

Garçom

↓

Cozinha

↓

Resposta

É exatamente isso que acontece.

GET /clientes/100

Resposta

{
 "id":100,
 "nome":"Maria"
}

Tudo extremamente simples.


Métodos HTTP

O Padawan precisa decorar apenas cinco verbos.

GET

Buscar.

POST

Criar.

PUT

Atualizar tudo.

PATCH

Atualizar parcialmente.

DELETE

Excluir.


No mundo Mainframe

Hoje um programa COBOL pode virar uma API REST utilizando:

  • z/OS Connect EE

  • CICS

  • IMS

  • Java

  • Liberty

Sem alterar praticamente nada da lógica de negócio.

Essa talvez seja uma das maiores revoluções do IBM Z.


SOAP — O Cavaleiro Jedi Corporativo

Antes do REST dominar o planeta…

SOAP reinava absoluto.

Tudo era XML.

Exemplo.

<Envelope>

<Body>

<GetCustomer/>

</Body>

</Envelope>

Parece enorme.

E realmente é.

Mas SOAP possui poderes que REST não possui naturalmente.

Entre eles:

  • assinatura digital;

  • segurança WS-Security;

  • transações;

  • confiabilidade;

  • contratos extremamente rígidos.

Por isso bancos ainda utilizam SOAP em larga escala.


GraphQL — O Cliente Decide

Imagine pedir uma pizza.

REST entrega:

  • pizza

  • refrigerante

  • sobremesa

  • talheres

  • guardanapos

Mesmo que você só queira uma pizza.

GraphQL muda completamente isso.

Você pede exatamente aquilo que deseja.

{
 cliente{

nome

telefone

}
}

Recebe apenas isso.

Nada mais.

Muito eficiente para aplicações móveis.


WebSockets — A Conversa Nunca Termina

HTTP tradicional funciona assim.

Pergunta

↓

Resposta

↓

Fim.

WebSocket funciona assim.

Cliente

⇅

Servidor

⇅

Cliente

A conexão permanece aberta.

Excelente para:

  • bolsa de valores;

  • chats;

  • videogames;

  • monitoramento;

  • dashboards.


Server Sent Events (SSE)

Muito parecido.

Mas existe uma diferença importante.

Apenas o servidor fala.

Servidor

↓↓↓↓↓↓↓↓

Cliente

Ideal para notificações.

Exemplo.

Seu dashboard do z/OS mostra:

CPU.

Fila JES.

Espaço em disco.

Tudo atualizado automaticamente.


gRPC — A Fórmula 1 das APIs

Criado pelo Google.

Enquanto REST utiliza texto…

gRPC utiliza Protocol Buffers.

Muito menores.

Muito mais rápidos.

Imagine enviar um livro.

REST envia tudo em papel.

gRPC envia tudo compactado.

É por isso que grandes empresas utilizam gRPC entre microsserviços.


Apache Thrift

Criado pelo Facebook.

Possui a mesma filosofia.

Você descreve uma interface.

O framework gera automaticamente clientes para diversas linguagens.

Java.

Python.

Go.

C#.

C++.

COBOL?

Ainda não…

Mas pode conversar através de gateways.


MQTT — O Mestre da IoT

Imagine um sensor de temperatura.

Ele possui:

  • pouca memória;

  • bateria;

  • internet lenta.

Não faz sentido transmitir XML gigantesco.

MQTT resolve isso.

Publica mensagens extremamente pequenas.

temperatura

↓

25°C

Pronto.

Perfeito.


Publicador e Assinante

MQTT funciona como um jornal.

Alguém publica.

Publisher

Outro recebe.

Subscriber

No meio existe o Broker.

Sensor

↓

Broker

↓

Aplicativos

Muito elegante.


AMQP — O Carteiro Corporativo

Se MQTT é uma bicicleta…

AMQP é um caminhão blindado.

Possui:

  • filas;

  • persistência;

  • confirmação;

  • roteamento;

  • entrega garantida.

Ideal para:

  • bancos;

  • seguradoras;

  • ERP;

  • processamento financeiro.


Onde entra o IBM MQ?

Curiosamente…

O IBM MQ possui protocolo próprio (MQI).

Mas também suporta integrações usando AMQP em determinados cenários.

É uma das tecnologias mais importantes do mundo corporativo.


Event Driven Architecture (EDA)

Aqui acontece uma mudança de mentalidade.

Ao invés de perguntar:

Pedido foi pago?

O sistema anuncia.

Pagamento realizado.

Todos os interessados recebem.

Financeiro

Estoque

CRM

Analytics

IA

Data Lake

Tudo automaticamente.


Webhooks

Webhooks parecem mágicos.

Mas são extremamente simples.

Imagine o GitHub.

Você faz um Push.

Instantaneamente.

GitHub

↓

HTTP POST

↓

Jenkins

↓

Deploy

Ninguém ficou perguntando.

O GitHub avisou.


EDI — Muito Antes da Internet

Muitos acreditam que integração nasceu com REST.

Na verdade…

EDI existe desde os anos 60.

Ele padronizou documentos empresariais.

Como:

  • pedidos;

  • notas fiscais;

  • faturas;

  • ordens de compra.

Até hoje movimenta trilhões de dólares.


CoAP

Pense nele como:

"O HTTP para sensores."

Funciona sobre UDP.

Muito leve.

Ideal para dispositivos extremamente limitados.


XMPP

Muito famoso no começo da internet.

Utilizado por:

  • chats;

  • mensagens;

  • presença online.

Google Talk utilizava XMPP.


DDS

Aqui entramos no mundo militar.

DDS é utilizado em:

  • submarinos;

  • satélites;

  • aviões;

  • radares;

  • defesa.

Latência extremamente baixa.

Comunicação quase instantânea.


OPC-UA

Esse protocolo merece respeito.

É praticamente o idioma universal das fábricas.

Imagine uma linha de produção.

Robôs.

CLPs.

Esteiras.

Sensores.

Todos conversam usando OPC-UA.

Hoje ele é um dos pilares da Indústria 4.0.


Como Tudo Isso Conversa com o IBM Z?

Agora vem a pergunta que todo Padawan faz.

"O COBOL participa disso tudo?"

A resposta é:

Sim.

Muito mais do que imaginamos.

Exemplo.

Aplicativo Android

↓

REST

↓

API Gateway

↓

z/OS Connect

↓

CICS

↓

Programa COBOL

↓

Db2

↓

Resposta

Outro cenário.

Sensor MQTT

↓

Broker

↓

Kafka

↓

IBM MQ

↓

Programa COBOL

Outro.

Marketplace

↓

Webhook

↓

Microserviço

↓

MQ

↓

Batch COBOL

Perceba.

O COBOL não precisa conhecer MQTT.

Nem GraphQL.

Nem WebSocket.

Existe uma camada responsável por traduzir esses protocolos e entregar os dados ao programa de forma transparente.

Essa separação de responsabilidades é uma das razões pelas quais sistemas IBM Z conseguem evoluir durante décadas sem reescrever milhões de linhas de código.


Comparando Cada Tecnologia

TecnologiaMelhor para
RESTAPIs Web
SOAPIntegrações corporativas
GraphQLAplicações móveis
WebSocketTempo real
SSENotificações
gRPCMicrosserviços
MQTTIoT
AMQPFilas corporativas
EDIB2B
WebhooksIntegração instantânea
CoAPDispositivos restritos
OPC-UAAutomação industrial
DDSSistemas críticos
XMPPMensageria
ThriftRPC multiplataforma

Passo a Passo para o Padawan Aprender APIs

Uma boa jornada de estudos pode seguir esta sequência:

  1. Domine HTTP (GET, POST, PUT, PATCH e DELETE) e compreenda códigos de status como 200, 201, 400, 401, 404 e 500.

  2. Aprenda JSON e XML, pois são os formatos de dados mais comuns em integrações.

  3. Estude REST e pratique com ferramentas como Postman ou Insomnia.

  4. Entenda autenticação com API Keys, OAuth 2.0 e JWT.

  5. Conheça SOAP e WSDL para compreender integrações corporativas legadas.

  6. Explore IBM MQ e conceitos de mensageria assíncrona.

  7. Aprenda os fundamentos de EDA e publicação/assinatura de eventos.

  8. Estude GraphQL e gRPC para arquiteturas modernas.

  9. Descubra como o z/OS Connect EE expõe programas COBOL como APIs REST sem alterar a lógica de negócio.

  10. Finalmente, aprofunde-se em observabilidade, segurança, governança e versionamento de APIs.


Erros Comuns dos Iniciantes

  • Achar que REST é um protocolo.

  • Imaginar que GraphQL substitui REST em todos os cenários.

  • Pensar que SOAP está "morto". Em ambientes corporativos críticos ele continua extremamente relevante.

  • Usar WebSockets quando uma API REST seria suficiente.

  • Escolher MQTT para aplicações que exigem garantias complexas de entrega, onde AMQP pode ser mais adequado.

  • Ignorar autenticação, autorização e criptografia nas APIs.

  • Expor diretamente programas COBOL sem uma camada de gerenciamento, segurança e monitoramento.


Easter Eggs do Bellacosa Mainframe

🔹 Star Trek: o computador da USS Enterprise conversa com sensores, consoles, replicadores e sistemas de navegação usando diferentes protocolos internos. Nenhum tripulante percebe essa complexidade porque existe uma arquitetura de integração por trás. O IBM Z faz exatamente isso nas empresas modernas.

🔹 A Torre de Babel da Computação: REST, SOAP, MQTT, AMQP e GraphQL parecem idiomas diferentes. O papel das plataformas de integração, gateways de API e barramentos de mensagens é funcionar como "tradutores universais", lembrando o Tradutor Universal de Star Trek.

🔹 O COBOL como o Capitão da Nave: enquanto novas tecnologias entram e saem de moda, o COBOL permanece tomando as decisões críticas do negócio. As APIs são os oficiais de comunicações que levam e trazem informações para o capitão.

🔹 Curiosidade Histórica: antes de JSON, XML e APIs, muitos bancos trocavam informações usando arquivos EBCDIC em fitas magnéticas e conexões SNA. Em muitos casos, esses processos ainda coexistem com APIs REST e microsserviços em arquiteturas híbridas.


Conclusão — O Verdadeiro Poder Está na Integração

Existe uma tendência no mercado de apresentar cada nova tecnologia como uma substituta definitiva da anterior. A história da computação mostra exatamente o contrário.

REST não eliminou SOAP.

GraphQL não eliminou REST.

MQTT não eliminou AMQP.

EDI continua movimentando cadeias globais de suprimentos.

IBM MQ permanece essencial para integração corporativa.

E o COBOL continua executando algumas das transações mais importantes do planeta.

O segredo não está em escolher um único protocolo, mas em compreender quando e por que utilizar cada um deles.

Para o programador COBOL Padawan, essa é uma lição valiosa: o IBM Z não vive isolado em uma sala com luzes piscando e terminais 3270. Ele é o coração de um ecossistema conectado por APIs, filas, eventos, microsserviços, sensores industriais, aplicações móveis, inteligência artificial e serviços em nuvem.

Como diria o Dr. Spock ao observar um datacenter moderno:

"A lógica indica que nenhuma tecnologia vence sozinha. As maiores realizações surgem quando sistemas diferentes aprendem a cooperar."

E talvez essa seja a maior lição desta jornada: o futuro da computação não pertence a uma linguagem, a um protocolo ou a uma plataforma. Ele pertence à integração inteligente entre todos eles.


segunda-feira, 2 de novembro de 2020

CICS Conversacional e Pseudo-Conversacional - Parte III

 

Bellacosa Mainframe e a conversação em cics parte III

☕ Um Café no Bellacosa Mainframe

CICS Conversacional e Pseudo-Conversacional

Parte 3 — Channels, Containers, BMS Avançado, APIs, Observabilidade e o Futuro do CICS

"Salve novamente, jovem Padawan Mainframe! Já entendemos por que a pseudo-conversação venceu, como a COMMAREA funciona e como o CICS se integrou ao mundo REST. Agora vamos explorar o lado mais moderno do CICS, descobrir como ele conversa com aplicações em nuvem, conhecer boas práticas utilizadas em bancos e seguradoras e entender por que muitos engenheiros consideram o CICS uma das obras-primas da engenharia de software."

Pegue seu terceiro café, deixe o CEDF ligado, abra uma aba do OMEGAMON, outra do SDSF e vamos continuar.


O problema da COMMAREA

Durante décadas a COMMAREA foi suficiente.

64 KB.

Poucos campos.

Poucos estados.

Poucos dados.

Era perfeito.

Mas o mundo mudou.

Hoje temos:

JSON

JWT

XML

SOAP

REST

Objetos complexos

Payloads gigantes


A chegada dos Channels

A IBM precisava resolver isso.

E resolveu.

CICS TS 3.1

Introduziu:

Channels

Containers


O que é um Channel?

Pense em um diretório.

CLIENTE
│
├── CPF
├── ENDERECO
├── LIMITE
├── HISTORICO
└── TOKEN

O Channel funciona exatamente assim.

Um agrupador.

Pode conter vários Containers.


O que é um Container?

Container é um objeto.

Armazena informações.

Pode conter:

Texto

XML

JSON

Estruturas COBOL

Blobs

Imagens

Arquivos


Comparativo

TecnologiaCapacidade
COMMAREA64 KB
TSQMB
ContainerGB
DB2TB

Exemplo COBOL

Criando.


EXEC CICS PUT CONTAINER

CONTAINER('CLIENTE')

CHANNEL('CADASTRO')

FROM(WS-DADOS)

FLENGTH(WS-TAM)

END-EXEC.



Recuperando.


EXEC CICS GET CONTAINER

CONTAINER('CLIENTE')

CHANNEL('CADASTRO')

INTO(WS-DADOS)

END-EXEC.



BMS continua vivo?

Muito.

Talvez mais vivo do que muita gente imagina.


Grandes bancos.

Seguradoras.

Cartões.

Previdência.

Companhias aéreas.

Utilities.

Governo.


BMS avançado

Poucos desenvolvedores usam.


SEND MAP ACCUM

Acumula telas.

Exemplo


EXEC CICS SEND MAP

ACCUM

END-EXEC



SEND PAGE

Paginação.


SEND CONTROL

Controle terminal.


ERASEAUP

Limpa apenas campos editáveis.


CURSOR

Posicionamento dinâmico.


Exemplo

Cursor no CPF.



MOVE -1 TO CPFL



EXEC CICS SEND

MAP('TELA1')

CURSOR

END-EXEC




APIs no CICS

Aqui muita gente se surpreende.

O CICS é praticamente um Application Server.


Suporta.

HTTP

HTTPS

SOAP

REST

MQ

TCP/IP

JMS

JSON

XML


Exemplo moderno

Aplicativo Android.

API Gateway

z/OS Connect

CICS

COBOL

DB2


z/OS Connect

Talvez uma das melhores ideias da IBM.

Transforma.

COBOL

em

API REST.


Sem reescrever.

Sem Java.

Sem Node.

Sem Python.


Exemplo.

Cliente faz:

GET /clientes/123

Internamente.

CICS chama.


PERFORM CONSULTA-DB2


Retorna.

{

"id":123,

"nome":"Bellacosa"

}


Web Open Interface

WOI.

Pouco conhecido.

Muito poderoso.

Permite integração.

HTTP.

TCP.

Sockets.


Event Processing

Outro recurso fantástico.

CICS captura eventos.

Exemplo.

Cliente alterou endereço.


Evento.

Publica MQ.


Outro sistema consome.


Observabilidade

Década de 80.

Console.

Dump.

IPCS.


Hoje.

OpenTelemetry.

Prometheus.

Grafana.

OMEGAMON.

Instana.

Elastic.


Métricas interessantes

Task Time.

CPU.

Response.

DB2.

MQ.

VSAM.


O CICS morreu?

Pergunta clássica.

Resposta curta.

Não.


Resposta longa.

Muito pelo contrário.


Ele evoluiu.

Muito.


Anos 70

3270

Anos 80

BMS

Anos 90

MQ

2000

SOAP

2010

REST

2020

Containers

2025

OpenTelemetry

IA

APIs

Cloud híbrida


Problemas comuns

COMMAREA gigante

Erro clássico.


Não usar pseudo

Aplicação lenta.


Múltiplos SEND

Desnecessário.


Não verificar RESP

Perigoso.


MDT ligado em tudo

Tráfego excessivo.


Dicas Bellacosa Mainframe

Utilize sempre

DATAONLY.


Sempre valide

RESP.


Use CEDF


Use CECI


Use Channels

Projetos novos.


Mantenha COMMAREA pequena


Nomeie MAPSET adequadamente

Exemplo.


CLI001


CLI002


CLI003



Easter Eggs Mainframe

Programadores antigos adoravam esconder mensagens.

Exemplo.



* MAY THE COBOL BE WITH YOU




Outro clássico.



* IF IT WORKS



* DON'T TOUCH




Mais um.



* WRITTEN 1987



* STILL RUNNING




Curiosidade

Diversos sistemas escritos em 1986.

Rodam hoje.

No z16.

No z17.

Praticamente sem alterações.

Trocaram.

CPU.

Storage.

Rede.

Interface.

Mas o COBOL.

Continua.

O CICS.

Continua.

O DB2.

Continua.

E milhões de transações continuam acontecendo diariamente.


Considerações finais

Aprender CICS conversacional e pseudo-conversacional é muito mais do que aprender comandos.

É entender como a IBM resolveu problemas de escalabilidade décadas antes da popularização da computação em nuvem.

É descobrir que conceitos como:

Stateless

Session Management

API Gateway

Observabilidade

Microserviços

Persistência de contexto

Já estavam presentes, de certa forma, em arquiteturas concebidas nos anos 70.

Talvez seja por isso que o CICS continue sendo uma das tecnologias mais fascinantes do IBM Z.

Porque ele não apenas sobreviveu ao tempo.

Ele evoluiu com ele.

E provavelmente continuará executando aplicações críticas quando muitos frameworks modernos já forem apenas uma nota de rodapé na história da computação.

No IBM Z, cada transação conta uma história. Cada COMMAREA guarda uma memória. E cada RETURN é apenas uma promessa de que a próxima task continuará exatamente de onde paramos.

Até o próximo café no Bellacosa Mainframe.


sexta-feira, 4 de setembro de 2020

CICS Conversacional e Pseudo-Conversacional - Parte II

 

Bellacosa Mainframe e a conversação em cics parte II

☕ Um Café no Bellacosa Mainframe

CICS Conversacional e Pseudo-Conversacional

Parte 2 — Escalabilidade, COMMAREA, Channels, Web Services e Boas Práticas

"Na primeira parte aprendemos que programas conversacionais gostam de ficar esperando o usuário pensar, enquanto programas pseudo-conversacionais executam como ninjas do IBM Z: aparecem, trabalham, desaparecem e retornam apenas quando necessários. Agora vamos entender por que a IBM praticamente transformou a pseudo-conversação em padrão de mercado."

Pegue mais um café, abra o CEDF, deixe o CEMT pronto e vamos continuar nossa jornada.


Os problemas do modelo Conversacional

O modelo conversacional é elegante.

É simples.

É intuitivo.

Mas infelizmente é extremamente caro.

Vamos imaginar um banco.

Cenário

50.000 usuários.

Cada usuário demora:

20 segundos

para preencher uma tela.


Aplicação Conversacional

Programa fica ativo.

Task permanece viva.

TCB permanece associado.

TCA permanece ocupada.

Storage continua reservado.

EIB continua residente.

Tudo isso...

Durante vinte segundos.


Resultado

Pouca escalabilidade.

Maior uso de CPU.

Maior consumo de memória.

Possibilidade de gargalos.


O fenômeno Think Time

Um dos maiores inimigos do CICS.

Think Time.

Tempo em que o usuário está apenas pensando.

Exemplos:

Lendo uma tela.

Pegando um documento.

Atendendo telefone.

Procurando CPF.

Conversando com cliente.


Conversacional

Think Time = recursos desperdiçados


Pseudo

Think Time = recursos liberados


A IBM fez uma escolha inteligente

Ao invés de esperar.

Finaliza a task.

Salva contexto.

Cria nova task depois.


Visualmente:

Task 1

Mostra tela

RETURN


=================


Usuário pensa


=================


Task 2


Recebe dados


Processa


RETURN

Múltiplas telas

Poucos desenvolvedores COBOL iniciantes percebem.

Uma pseudo-conversação pode navegar por dezenas de telas.

Exemplo:

Menu

Consulta

Inclusão

Alteração

Confirmação

Resumo

Help

Paginação


Exemplo

MENU

PF5

CONSULTA

ENTER

DETALHE

PF3

MENU


Tudo utilizando.

COMMAREA.


COMMAREA

Provavelmente um dos conceitos mais importantes do CICS.

Ela guarda estado.

Entre uma task.

E outra.


Exemplo:


01 WS-COMM.

   05 WS-MODO PIC X.

   05 WS-PAGINA PIC 99.

   05 WS-CPF PIC 9(11).

   05 WS-NOME PIC X(30).


Limitação

COMMAREA possui limite.

64 KB.


Antigamente

Era suficiente.


Hoje.

JSON.

REST.

SOAP.

XML.

JWT.

Podem ultrapassar facilmente.

64 KB.


Surge Channels e Containers

Introduzidos para resolver isso.


COMMAREA

64 KB


Container

Gigabytes.


Exemplo


EXEC CICS PUT CONTAINER

CONTAINER('CLIENTE')

FROM(WS-DADOS)

END-EXEC



Recuperando.


EXEC CICS GET CONTAINER

CONTAINER('CLIENTE')

INTO(WS-DADOS)

END-EXEC



Qual utilizar?

Sistemas antigos

COMMAREA


Novos projetos

Channels

Containers


EIBCALEN

Nos projetos antigos.

Era rei.




IF EIBCALEN = ZERO


PERFORM PRIMEIRA-VEZ


ELSE


PERFORM RETORNO


END-IF



Pseudo-Conversação com BMS

Fluxo típico.


SEND MAP

RETURN

Usuário ENTER

Nova Task

RECEIVE

DB2

SEND

RETURN


Web Services no CICS

Muitos acreditam.

Que CICS é apenas 3270.

Isso está muito longe da realidade.


CICS suporta.

SOAP.

REST.

JSON.

XML.

MQ.

JMS.

TCP/IP.

HTTP.

HTTPS.


Exemplo

Angular

API

zOS Connect

CICS

COBOL

DB2


Visualmente



Browser


   │


REST API


   │


zOS Connect


   │


CICS


   │


COBOL


   │


DB2



O COBOL muda?

Quase nada.


Exemplo


PERFORM VALIDA


PERFORM CONSULTA-DB2


PERFORM RETORNA-DADOS




Interface muda.

Negócio permanece.


SOAP

Muito usado.

Seguradoras.

Governo.

ERP.


REST

Dominante.

OpenAPI.

Swagger.

JSON.


BMS ainda é importante?

Sim.

Muito.


Milhares de aplicações.

Continuam em produção.


Além disso.

BMS ensina.

Arquitetura.

Separação de responsabilidades.

Persistência de contexto.

Gerenciamento de estado.


Problemas comuns

MAPFAIL

Usuário apertou PF3.

Sem alterar dados.


INVREQ

Sequência incorreta.


LENGERR

Área pequena.


ASRA

S0C7.

S0C4.

S0CB.


Como debugar?

CEDF.

Excelente.



CEDF ON



Programa para.

Comando por comando.


CECI

Muito útil.


Exemplo


CECI RECEIVE MAP



CEMT

Consultar recursos.



CEMT I TASK




CEMT I PROG




CEMT I TRAN



Boas práticas

Sempre usar pseudo-conversação


Utilizar COMMAREA pequena


Preferir Containers

Projetos novos.


Não salvar tabelas grandes

Na COMMAREA.


Usar MDT apenas quando necessário


Utilizar DATAONLY

Reduz tráfego.


Evitar múltiplos SEND

Na mesma task.


Validar EIBRESP

Sempre.


Exemplo



IF EIBRESP NOT = DFHRESP(NORMAL)

PERFORM TRATA-ERRO


END-IF



Curiosidade Bellacosa Mainframe

Alguns bancos possuem aplicações pseudo-conversacionais escritas em 1986.

Elas foram migradas.

De 3090.

Para 9672.

Para z900.

Para z990.

Para z9.

Para z10.

Para z14.

Para z16.

E continuam praticamente inalteradas.


Easter Egg Mainframe

Nos anos 80.

Muitos desenvolvedores colocavam comentários curiosos.

Exemplo.



* MAY THE COBOL BE WITH YOU


Ou.



* DO NOT TOUCH


* WORKS SINCE 1987


Ou o clássico.



* IF YOU CHANGE THIS


* BUY COFFEE FOR THE TEAM



Continua...

Na Parte 3 veremos:

✔ Web Open Interface (WOI);

✔ CICS Event Processing;

✔ Programas COBOL completos;

✔ Pseudo-conversação com múltiplos MAPSETs;

✔ BMS avançado;

✔ Channels versus TSQ;

✔ Segurança RACF;

✔ Web Services SOAP e REST detalhados;

✔ Observabilidade moderna;

✔ OpenTelemetry;

✔ Curiosidades e easter eggs pouco conhecidos do universo CICS.

segunda-feira, 29 de julho de 2019

☕🔥 APIs NO IBM MAINFRAME — O MUNDO MODERNO DESCOBRIU AGORA O QUE O z/OS JÁ FAZIA HÁ DÉCADAS

 

Bellacosa Mainframe e o uso de APIs em Mainframe

☕🔥 APIs NO IBM MAINFRAME — O MUNDO MODERNO DESCOBRIU AGORA O QUE O z/OS JÁ FAZIA HÁ DÉCADAS

Hoje o mercado fala sem parar sobre:

  • APIs

  • REST

  • GraphQL

  • gRPC

  • Event Streaming

  • Webhooks

  • Tempo real

  • Microsserviços

E muita gente imagina que isso nasceu:

  • na nuvem

  • no Kubernetes

  • no Node.js

  • no mundo cloud-native

Mas existe uma realidade histórica quase escondida:

O Mainframe sempre foi uma máquina de integração.

Muito antes do termo “API Economy” virar moda…

o IBM Mainframe já fazia:

  • comunicação distribuída

  • transações remotas

  • integração entre sistemas

  • troca de mensagens

  • processamento assíncrono

  • request/reply

  • eventos

  • streaming de dados

E talvez essa seja a parte mais impressionante:

🔥 O z/OS não apenas sobreviveu à era das APIs…
ele virou um dos pilares dela.


☕ O QUE MUITA GENTE NÃO ENTENDE SOBRE APIs

API não é “modinha web”.

API é:

contrato de comunicação.

O formato muda.

A tecnologia muda.

Mas a ideia é a mesma desde os anos 70:

  • um sistema solicita algo

  • outro sistema responde

  • existe um protocolo

  • existe um padrão

  • existe governança

E o Mainframe foi pioneiro nisso.


☕🔥 GRAPHQL NO MAINFRAME — A VOLTA DO “PEDIR SOMENTE O NECESSÁRIO”

GraphQL virou tendência porque resolve um problema clássico:

👉 excesso de dados.

O cliente pede exatamente o que quer.


☕ Mas olha a ironia…

O Mainframe já tinha essa mentalidade há décadas.


Exemplo clássico no CICS + COBOL

Uma transação antiga:

EXEC CICS LINK
     PROGRAM('CLI0001')
     COMMAREA(WS-AREA)
END-EXEC

A COMMAREA levava apenas:

  • campos específicos

  • estruturas necessárias

  • dados filtrados

Não havia desperdício.


☕ GraphQL + z/OS Connect

Hoje o Mainframe moderno usa:

  • z/OS Connect

  • API Connect

  • Db2 REST Services

para expor:

  • COBOL

  • CICS

  • IMS

  • DB2

como APIs modernas.


Exemplo real

Um app mobile pode pedir:

cliente {
  nome
  saldo
}

E o Mainframe responde apenas isso.

Sem payload gigante.


☕🔥 gRPC — O “NOVO RPC” QUE O MAINFRAME JÁ CONHECIA

Quando o mercado descobriu gRPC…

o profissional mainframe veterano provavelmente sorriu.

Porque:

👉 gRPC é basicamente a evolução moderna do RPC.

E RPC já existia no universo IBM há MUITO tempo.


☕ O que é gRPC?

Comunicação:

  • rápida

  • binária

  • eficiente

  • orientada a contratos

usando Protocol Buffers.


☕ O Mainframe fazia isso como?

APPC/LU6.2

Comunicação transacional remota.


DPL (Distributed Program Link)

Programa chama outro remotamente:

EXEC CICS LINK
     SYSID('PRD1')
END-EXEC

Isso é praticamente:

🔥 “gRPC raiz”.


☕ MQ também antecipou isso

Mensagens compactas.

Baixa latência.

Integração confiável.

Comunicação assíncrona.


☕🔥 SOAP — O REINADO ABSOLUTO DO MAINFRAME CORPORATIVO

Antes do REST dominar o mundo…

SOAP era rei absoluto.

E o Mainframe foi um dos maiores ambientes SOAP do planeta.


☕ Por quê?

Porque SOAP entrega algo que o mundo financeiro AMA:

  • contratos rígidos

  • padronização

  • WS-Security

  • governança

  • transações confiáveis

  • XML estruturado


☕ CICS Web Services

O CICS consegue expor programas COBOL como SOAP services.


Fluxo clássico

SOAP Request
     ↓
CICS Pipeline
     ↓
COBOL
     ↓
DB2 / VSAM
     ↓
SOAP Response

☕ O que pouca gente sabe

Grande parte:

  • bancos

  • seguradoras

  • governos

AINDA usam SOAP no Mainframe.

E sinceramente?

🔥 Em sistemas críticos, SOAP ainda é extremamente poderoso.


☕🔥 REST — O MAINFRAME APRENDEU A FALAR “INTERNET”

REST virou padrão porque simplifica integração.

HTTP + JSON.

Simples.

Leve.

Universal.


☕ E o Mainframe?

O Mainframe se reinventou brutalmente aqui.


☕ Hoje temos:

z/OS Connect

Transforma:

  • COBOL

  • IMS

  • CICS

em APIs REST modernas.


☕ Exemplo

Aplicação mobile faz:

GET /clientes/1001

E no backend:

  • COBOL executa

  • DB2 consulta

  • CICS processa

O usuário nem percebe que existe um z/OS por trás.


☕ O REST ajudou o Mainframe a sobreviver

Essa talvez seja uma das maiores viradas históricas do IBM Z.

REST permitiu:

  • integração com cloud

  • apps mobile

  • fintechs

  • Open Banking

  • microsserviços

  • APIs públicas


☕🔥 WEBHOOKS — O MAINFRAME SEMPRE VIVEU DE EVENTOS

Webhook é:

“me avise quando algo acontecer”.


☕ Parece moderno…

Mas o Mainframe já vivia disso.


☕ Exemplos clássicos

WTO/WTOR

Mensagens do sistema disparam ações.


Automation

NetView e System Automation executam workflows baseados em eventos.


MQ Triggering

Fila recebe mensagem → programa inicia automaticamente.

Isso é Webhook conceitualmente.


☕ Exemplo real

Pagamento aprovado:

MQ Message
   ↓
Trigger
   ↓
COBOL Batch
   ↓
Atualização DB2
   ↓
Notificação externa

Event-driven desde antes do termo existir.


☕🔥 SSE (SERVER-SENT EVENTS) — O MAINFRAME SEMPRE AMOU STREAMING

SSE mantém conexão aberta enviando eventos contínuos.

Hoje isso aparece em:

  • dashboards

  • monitoring

  • fintechs

  • trading

  • observabilidade


☕ Mas o Mainframe já fazia streaming há décadas

SMF

Fluxo contínuo de eventos do sistema.


RMF

Monitoramento em tempo real.


OMEGAMON

Streaming operacional contínuo.


☕ Ambientes financeiros usam isso intensamente

Bolsa de valores.

Cartões.

PIX.

Fraude.

Monitoramento de transações.

Tudo depende de fluxo contínuo.


☕🔥 O GRANDE CHOQUE CULTURAL

O mercado moderno acha que inventou:

  • integração

  • APIs

  • eventos

  • streaming

  • observabilidade

Mas o Mainframe já enfrentava esses problemas:

  • nos anos 70

  • nos anos 80

  • nos anos 90

em escala absurda.


☕ O QUE MUDA É O FORMATO

Ontem:

  • SNA

  • APPC

  • MQ

  • CICS LINK

  • COMMAREA

Hoje:

  • REST

  • GraphQL

  • gRPC

  • Kafka

  • Webhooks

Mas a essência continua a mesma:

🔥 sistemas precisam conversar de forma confiável.


☕🔥 O MAIOR MITO SOBRE O MAINFRAME

“Mainframe não conversa com sistemas modernos.”

Isso está completamente errado.

Hoje o IBM Z conversa com:

  • AWS

  • Azure

  • Kubernetes

  • OpenShift

  • APIs REST

  • Kafka

  • aplicações mobile

  • IA generativa

E faz isso mantendo:

  • segurança absurda

  • disponibilidade 24x7

  • integridade transacional

  • throughput gigantesco


☕🔥 A VERDADE QUE O MERCADO COMEÇA A REDESCOBRIR

Quanto mais o mundo moderno cresce…

mais ele percebe a importância de:

  • resiliência

  • observabilidade

  • governança

  • transação confiável

  • mensageria robusta

  • integração desacoplada

E adivinha?

👉 Esses sempre foram pilares do Mainframe.


☕🔥 CONCLUSÃO — O MAINFRAME NÃO FICOU PARA TRÁS

Ele apenas:

evoluiu antes dos outros.

REST, GraphQL, gRPC e Webhooks não substituíram o Mainframe.

Eles se conectaram a ele.

Porque no fim das contas…

🔥 quase todo sistema moderno ainda acaba conversando com um IBM Z em algum momento da vida.


quarta-feira, 25 de abril de 2018

☕🔥 API PROTOCOLS NO IBM MAINFRAME — ENQUANTO O MUNDO DISCUTIA “MICROSSERVIÇOS”, O z/OS JÁ PROCESSAVA O PLANETA EM TEMPO REAL

Bellacosa Mainframe e uma visão das api protocols


☕🔥 API PROTOCOLS NO IBM MAINFRAME — ENQUANTO O MUNDO DISCUTIA “MICROSSERVIÇOS”, O z/OS JÁ PROCESSAVA O PLANETA EM TEMPO REAL

Existe uma frase que resume perfeitamente a história da integração corporativa:

“Toda tecnologia moderna acaba redescobrindo algo que o Mainframe já fazia.”

Hoje o mercado vive cercado de siglas:

  • REST

  • GraphQL

  • SOAP

  • gRPC

  • MQTT

  • WebSockets

  • SSE

  • EDA

  • AMQP

  • Webhooks

E muita gente acredita que isso nasceu:

  • na cloud

  • no Kubernetes

  • nas startups

  • no mundo DevOps

Mas existe uma verdade quase chocante:

🔥 O IBM Mainframe já dominava integração distribuída quando muita dessas tecnologias nem existia.


☕ O MAINFRAME NUNCA FOI “ISOLADO”

Esse talvez seja o maior mito da computação.

Muita gente imagina o Mainframe como:

  • terminal verde

  • sistema fechado

  • ambiente monolítico

  • tecnologia presa ao passado

Só que historicamente o Mainframe SEMPRE foi:

✅ distribuído
✅ integrado
✅ orientado a mensagens
✅ orientado a eventos
✅ transacional
✅ resiliente

Na prática:

👉 o Mainframe foi um dos primeiros grandes “hubs de APIs” corporativas do mundo.


☕🔥 REST — O MAINFRAME APRENDEU A FALAR A LÍNGUA DA INTERNET

REST virou padrão mundial porque simplifica comunicação.

HTTP + JSON.

Simples.

Universal.


☕ Mas veja a ironia…

O Mainframe já fazia integração transacional décadas antes.


☕ Hoje o z/OS usa REST via:

  • z/OS Connect

  • CICS REST APIs

  • Db2 REST Services

  • API Connect

  • OpenShift APIs


☕ Exemplo real

Aplicativo mobile:

GET /contas/1001

☕ O que acontece por trás?

REST API
   ↓
z/OS Connect
   ↓
CICS
   ↓
COBOL
   ↓
DB2

Tudo em milissegundos.


☕ O usuário nem percebe

Ele acha que está falando com:

  • cloud

  • microservice

  • fintech moderna

Mas no fundo:

🔥 existe um COBOL no z/OS processando bilhões com segurança absurda.


☕🔥 GRAPHQL — O MAINFRAME SEMPRE DETESTOU DESPERDÍCIO

GraphQL nasceu para resolver:

  • excesso de dados

  • APIs gigantes

  • múltiplas consultas


☕ O conceito é moderno…

Mas a mentalidade é antiga no Mainframe.


☕ COMMAREA no CICS já fazia isso

EXEC CICS LINK
     PROGRAM('CLI001')
     COMMAREA(WS-AREA)
END-EXEC

Somente os campos necessários eram enviados.

Nada de payload gigantesco.


☕ Hoje com GraphQL + DB2

Apps conseguem pedir:

cliente {
   nome
   saldo
}

E o Mainframe retorna exatamente isso.


☕🔥 SOAP — O IMPÉRIO CORPORATIVO QUE O MAINFRAME AJUDOU A CONSTRUIR

Antes do REST…

SOAP era rei absoluto.

E honestamente?

🔥 Em ambientes críticos ele ainda é extremamente forte.


☕ Por quê?

Porque SOAP entrega:

  • contratos rígidos

  • segurança avançada

  • WS-Security

  • governança

  • auditoria

  • confiabilidade


☕ O Mainframe amava isso

Porque bancos e governos PRECISAM disso.


☕ CICS Web Services

Transforma COBOL em serviço SOAP.


☕ Fluxo clássico

SOAP Request
   ↓
CICS Pipeline
   ↓
COBOL
   ↓
DB2
   ↓
SOAP Response

☕ Muitos sistemas financeiros ainda vivem disso

E continuam funcionando perfeitamente.


☕🔥 gRPC — O “RPC MODERNO” QUE O MAINFRAME JÁ CONHECIA

O mercado moderno descobriu:

  • baixa latência

  • comunicação binária

  • chamadas remotas rápidas

e chamou isso de gRPC.


☕ O Mainframe olha e responde:

“Nós já fazíamos isso.”


☕ APPC/LU6.2

Comunicação remota transacional.


☕ DPL (Distributed Program Link)

EXEC CICS LINK
     SYSID('PRD1')
END-EXEC

Programa remoto chamado como se fosse local.

Isso é praticamente:

🔥 gRPC ancestral.


☕🔥 WEBSOCKET — O MAINFRAME SEMPRE GOSTOU DE CONEXÃO PERSISTENTE

WebSocket permite:

  • comunicação bidirecional

  • conexão contínua

  • baixa latência


☕ Isso é perfeito para:

  • trading

  • PIX

  • monitoramento

  • dashboards

  • antifraude


☕ E o Mainframe?

Sempre viveu de sessões persistentes.


☕ VTAM e sessões SNA

Mantinham conexões contínuas décadas antes do WebSocket.


☕ Hoje o z/OS usa isso com:

  • APIs realtime

  • Open Banking

  • streaming financeiro

  • integração cloud


☕🔥 WEBHOOKS — O MAINFRAME SEMPRE FOI EVENT-DRIVEN

Webhook significa:

“me avise quando algo acontecer”.


☕ Parece moderno.

Mas o Mainframe vive disso desde os anos 70.


☕ MQ Triggering

Mensagem chega na fila:

MQ
 ↓
Trigger
 ↓
Programa COBOL inicia

Isso é praticamente um webhook corporativo.


☕ WTO/WTOR também

Eventos operacionais disparam ações automáticas.


☕🔥 EDA — EVENT DRIVEN ARCHITECTURE

Agora chegamos numa parte fascinante.

O mercado moderno fala de:

  • Kafka

  • Event Bus

  • Streaming

  • Async Systems

como se fosse novidade absoluta.


☕ Mas o Mainframe sempre viveu de eventos

Exemplos clássicos

  • MQ

  • CICS transient data

  • SMF

  • JES2 messages

  • RACF alerts

  • NetView automation

Tudo baseado em eventos.


☕ O Mainframe é naturalmente orientado a eventos

Porque em sistemas críticos:

🔥 reagir rápido é sobrevivência.


☕🔥 SSE — STREAMING CONTÍNUO NO DNA DO z/OS

Server-Sent Events enviam dados continuamente.


☕ O Mainframe já fazia isso há décadas

OMEGAMON

Streaming operacional contínuo.


RMF

Métricas em tempo real.


SMF

Fluxo permanente de eventos do sistema.


☕ Ambientes financeiros usam isso brutalmente

  • monitoramento

  • fraude

  • observabilidade

  • auditoria

  • analytics em tempo real


☕🔥 MQTT — O MAINFRAME ENCONTROU A IoT

MQTT domina:

  • sensores

  • IoT

  • dispositivos leves


☕ E o Mainframe?

Hoje ele processa eventos vindos de:

  • caixas eletrônicos

  • POS

  • sensores industriais

  • dispositivos bancários

  • telemetria


☕ IBM MQ facilita isso

MQTT → MQ → z/OS.


☕ O Mainframe virou cérebro central de IoT corporativa

Sim.

Isso realmente existe.


☕🔥 AMQP — O ESPÍRITO DO MQ ESTAVA NA FRENTE DO TEMPO

AMQP formalizou mensageria aberta.

Mas o IBM MQ já fazia:

  • persistência

  • roteamento

  • filas

  • entrega garantida

  • transação

há muito tempo.


☕ IBM MQ É UMA LENDA CORPORATIVA

Porque resolve algo extremamente difícil:

🔥 comunicação confiável entre sistemas gigantescos.


☕🔥 EDI — O “PROTOCOLO INVISÍVEL” QUE MOVE O COMÉRCIO MUNDIAL

Muita gente jovem nunca ouviu falar em EDI.

Mas ele ainda move:

  • logística

  • indústria

  • bancos

  • supply chain

  • varejo mundial


☕ E onde ele sempre foi fortíssimo?

👉 No Mainframe.


☕ Exemplo

Pedido eletrônico:

Empresa A
   ↓
EDI
   ↓
Mainframe
   ↓
ERP
   ↓
Faturamento

Décadas funcionando.


☕🔥 A GRANDE VERDADE QUE O MERCADO ESTÁ REDESCOBRINDO

Quanto mais o mundo cresce…

mais ele percebe que integração corporativa exige:

  • confiabilidade

  • resiliência

  • auditoria

  • governança

  • throughput

  • segurança

E isso sempre foi território natural do Mainframe.


☕🔥 O FUTURO NÃO É “MAINFRAME vs CLOUD”

Esse pensamento morreu.

O futuro é:

Cloud
  +
APIs
  +
Eventos
  +
Mainframe

☕ O IBM Z virou peça central da arquitetura híbrida

Hoje ele conversa com:

  • Kubernetes

  • OpenShift

  • AWS

  • Azure

  • Kafka

  • APIs REST

  • IA generativa

  • microsserviços

sem abandonar:

🔥 estabilidade absurda.


☕🔥 CONCLUSÃO — O MUNDO MODERNO NÃO SUBSTITUIU O MAINFRAME

Ele apenas:

começou finalmente a conversar com ele da forma correta.

REST, GraphQL, MQTT, gRPC e WebSockets não aposentaram o z/OS.

Na verdade…

🔥 eles transformaram o Mainframe no coração silencioso da integração mundial.


sábado, 9 de janeiro de 2010

🔥☕ XML: O “DINOSSAURO IMORTAL” QUE AINDA MOVE BANCOS, GOVERNOS E O MAINFRAME — A TECNOLOGIA QUE SOBREVIVEU À INTERNET, À NUVEM E AO JSON ☕🔥

 


Bellacosa Mainframe apresenta o XML

🔥☕ XML: O “DINOSSAURO IMORTAL” QUE AINDA MOVE BANCOS, GOVERNOS E O MAINFRAME — A TECNOLOGIA QUE SOBREVIVEU À INTERNET, À NUVEM E AO JSON ☕🔥

Tem tecnologia que nasce como moda.

E tem tecnologia que vira infraestrutura invisível da civilização digital.

O XML pertence ao segundo grupo.

Muita gente nova olha para XML como se fosse apenas “aquele formato verboso cheio de tags”.
Mas o programador COBOL sênior sabe de uma coisa:

👉 Quando o assunto é integração corporativa séria, rastreabilidade, contratos rígidos, padronização e interoperabilidade… o XML ainda reina em silêncio.

Enquanto startups brigavam por frameworks JavaScript…

O XML estava movimentando:

  • bancos centrais,
  • sistemas SWIFT,
  • telecomunicações,
  • ERPs,
  • SOA corporativo,
  • NF-e,
  • SOAP,
  • mensageria,
  • e toneladas de integrações no z/OS.

Sim…

O “velho XML” ainda respira dentro de milhões de transações por segundo.


☕ O NASCIMENTO DO XML — QUANDO A WEB VIROU BAGUNÇA

No começo da internet, o HTML dominava tudo.

Mas existia um problema gigantesco:

HTML servia para exibir dados.
Não para descrever dados.

Ou seja:

  • visual bonito,
  • estrutura fraca,
  • sem semântica corporativa,
  • difícil integração entre sistemas.

A indústria percebeu rapidamente:

“Precisamos de um padrão universal para troca estruturada de informações.”

Foi aí que nasceu o XML.


🔥 QUEM CRIOU O XML?

O XML foi criado por um grupo do W3C (World Wide Web Consortium).

O principal nome associado ao XML é:

🚀 Jon Bosak

Engenheiro da Sun Microsystems.

Conhecido até hoje como:

“O Pai do XML”.

Bosak liderou o Working Group responsável pela especificação.


📅 DATA OFICIAL DE LANÇAMENTO

O XML 1.0 tornou-se recomendação oficial do W3C em:

📌 10 de fevereiro de 1998

E praticamente explodiu no mercado corporativo.


💣 A IDEIA REVOLUCIONÁRIA DO XML

O XML não queria substituir HTML.

Ele queria resolver outro problema:

🔥 DAR SIGNIFICADO AOS DADOS

Exemplo:

<cliente>
<nome>Vagner Bellacosa</nome>
<conta>45892</conta>
<saldo>9500.75</saldo>
</cliente>

Agora o sistema entende:

  • o que é nome,
  • o que é conta,
  • o que é saldo,
  • e como transportar isso entre plataformas diferentes.

Isso mudou completamente a integração corporativa.


☕ O XML VIROU A “LINGUAGEM UNIVERSAL” DAS EMPRESAS

Nos anos 2000, XML virou praticamente religião corporativa.

Tudo era XML:

  • Web Services SOAP,
  • ESB,
  • integração B2B,
  • mensageria,
  • ERP,
  • telecom,
  • middleware,
  • governo eletrônico,
  • documentos fiscais.

Era o Esperanto da TI corporativa.


🚀 XML NO MAINFRAME — A FUSÃO ENTRE O LEGADO E A INTERNET

Aqui começa a parte que o programador COBOL sênior conhece profundamente.

Quando o mundo começou a falar:

  • APIs,
  • e-business,
  • internet banking,
  • SOA,
  • integração distribuída,

o mainframe precisava conversar com o planeta.

E o XML virou a ponte.


🔥 O DIA EM QUE O COBOL COMEÇOU A “FALAR INTERNET”

A IBM integrou XML ao ecossistema z/OS de várias formas:

  • CICS Web Services
  • IMS Connect
  • MQ
  • SOAP Services
  • DB2 XML
  • z/OS Connect
  • Enterprise COBOL XML PARSE
  • XML GENERATE

De repente:

👉 programas COBOL passaram a consumir e gerar XML nativamente.


☕ EXEMPLO REAL EM COBOL — XML GENERATE

Gerando XML diretamente do COBOL

IDENTIFICATION DIVISION.
PROGRAM-ID. XMLTEST.

DATA DIVISION.
WORKING-STORAGE SECTION.

01 CLIENTE.
05 NOME PIC X(20) VALUE 'BELLACOSA'.
05 CONTA PIC 9(6) VALUE 123456.
05 SALDO PIC 9(5)V99 VALUE 150075.

01 XML-SAIDA PIC X(500).

PROCEDURE DIVISION.

XML GENERATE XML-SAIDA
FROM CLIENTE

DISPLAY XML-SAIDA.

STOP RUN.

Resultado aproximado:

<CLIENTE>
<NOME>BELLACOSA</NOME>
<CONTA>123456</CONTA>
<SALDO>1500.75</SALDO>
</CLIENTE>

Sim…

O COBOL virou produtor de XML sem precisar reinventar parser manual.


💣 XML PARSE — QUANDO O COBOL COMEÇOU A ENTENDER TAGS

Depois veio o:

XML PARSE

Agora o COBOL conseguia interpretar XML de entrada.

Isso foi revolucionário.

O legado deixou de ser “isolado”.

O mainframe passou a:

  • consumir serviços externos,
  • receber payloads SOAP,
  • integrar ERPs,
  • conversar com Java,
  • integrar aplicações distribuídas.

🚀 XML E O IMPÉRIO DO SOAP

Antes do REST dominar o hype…

SOAP era o rei absoluto das integrações corporativas.

E SOAP é baseado em XML.

Exemplo:

<soap:Envelope>
<soap:Body>
<consultaSaldo>
<conta>123456</conta>
</consultaSaldo>
</soap:Body>
</soap:Envelope>

Milhões de transações bancárias ainda usam isso HOJE.


☕ O XML É “VERBOSO”? SIM. E ISSO É DE PROPÓSITO.

A nova geração reclama:

“XML é grande demais.”

Mas existe um motivo.

O XML foi criado pensando em:

  • legibilidade,
  • validação,
  • governança,
  • auditoria,
  • contratos formais,
  • interoperabilidade corporativa.

Ele privilegia:

clareza acima da compactação.


🔥 VANTAGENS DO XML

🚀 Estrutura rígida

Excelente para ambientes críticos.


🚀 Auto descritivo

Os dados explicam a si mesmos.


🚀 Padronização mundial

Quase toda plataforma suporta XML.


🚀 Extensível

Você cria suas próprias tags.


🚀 Forte validação

Com:

  • DTD
  • XSD Schema

🚀 Excelente para integração corporativa

Principalmente em ambientes heterogêneos.


💣 DESVANTAGENS DO XML

⚠️ Verbosidade

Arquivos grandes.


⚠️ Parsing pesado

Consome CPU e memória.


⚠️ Mais lento que JSON

Especialmente em APIs modernas.


⚠️ Complexidade

Schemas gigantes podem virar monstros corporativos.


☕ O JSON “MATOU” O XML?

Não.

Ele apenas ocupou outro espaço.

JSON venceu:

  • mobile,
  • microservices,
  • front-end,
  • APIs leves.

Mas XML continua fortíssimo em:

  • bancos,
  • telecom,
  • governo,
  • seguros,
  • sistemas críticos,
  • integrações legadas,
  • contratos corporativos.

🚀 CURIOSIDADES QUE MUITA GENTE NÃO SABE

🔥 XML influenciou profundamente o mundo moderno

Muitas tecnologias nasceram em cima dele:

  • SOAP
  • WSDL
  • XSLT
  • SVG
  • RSS
  • XHTML
  • Office Open XML

🔥 DOCX É XML

Sim.

Um arquivo Word moderno:

.docx

na verdade é:

  • um ZIP
  • cheio de XMLs internos.

🔥 Excel também usa XML

O formato XLSX é praticamente XML compactado.


🔥 Android usa XML em layouts

Até hoje.


💣 EASTER EGG HISTÓRICO

O nome XML significa:

eXtensible Markup Language

Mas internamente, muitos engenheiros brincavam dizendo:

“XML = eXtremely Much Language”

por causa da verbosidade absurda.


☕ XML NO DB2 — O BANCO RELACIONAL VIROU HÍBRIDO

O DB2 introduziu suporte nativo XML.

Isso foi gigantesco.

Agora era possível:

  • armazenar XML puro,
  • indexar XML,
  • consultar XML com XPath/XQuery,
  • misturar SQL relacional com dados hierárquicos.

O banco relacional começou a absorver características semiestruturadas.

Muito antes do hype NoSQL.


🚀 XML E O z/OS CONNECT

Hoje o z/OS Connect traduz:

  • REST ⇄ COBOL
  • JSON ⇄ estruturas legadas

Mas internamente muitos ambientes ainda convertem:

  • XML,
  • SOAP,
  • payloads corporativos.

O XML continua sendo peça fundamental da integração enterprise.


🔥 O GRANDE PARADOXO DO XML

Todo mundo fala que XML morreu.

Mas:

  • bancos continuam usando,
  • governos continuam usando,
  • seguradoras continuam usando,
  • o mainframe continua usando,
  • middleware continua usando.

É o típico caso da tecnologia invisível:

quanto mais crítica ela é…

menos as pessoas percebem que ela existe.


☕ CONCLUSÃO — O XML NÃO É MODA. É INFRAESTRUTURA.

O programador COBOL sênior entende algo que o mercado esquece rápido:

👉 tecnologia corporativa não vive de hype.

Ela vive de:

  • estabilidade,
  • compatibilidade,
  • governança,
  • previsibilidade,
  • integração,
  • longevidade.

E nisso…

o XML virou praticamente aço estrutural da computação enterprise.

Enquanto frameworks nascem e morrem em dois anos…

o XML segue silenciosamente:

  • integrando continentes,
  • movendo trilhões,
  • conectando sistemas críticos,
  • e mantendo o mainframe conversando com o mundo moderno.

🔥 Porque no fim…

o XML nunca quis ser “cool”.

Ele queria ser eterno.

segunda-feira, 12 de março de 2007

O que são APIs e seu Uso no Mainframe?

 

Bellacosa Mainframe apresenta API na Stack Mainframe

O que são APIs e seu Uso no Mainframe?

As APIs (Application Programming Interfaces) revolucionaram a forma como sistemas trocam informações. Hoje, elas são a principal ponte entre aplicações modernas, dispositivos móveis, plataformas Cloud e os sistemas Mainframe que processam as operações mais críticas do mundo.

Quando você consulta saldo pelo celular, faz um PIX, compra com cartão ou utiliza um aplicativo bancário, existe uma grande chance de uma API estar conversando com um programa COBOL executando em um Mainframe IBM Z.


O que é uma API?

API significa:

Application Programming Interface

Ou seja:

Interface de Programação de Aplicações

É um conjunto de regras que permite que um sistema solicite serviços ou informações de outro sistema.


Analogia Simples

Imagine um restaurante:

Cliente
   ↓
Garçom
   ↓
Cozinha
   ↓
Resposta

Nesse cenário:

  • Cliente = Aplicação

  • Garçom = API

  • Cozinha = Sistema Mainframe

A API recebe o pedido, encaminha para o sistema correto e devolve a resposta.


Exemplo do Dia a Dia

Aplicativo bancário:

App Mobile
      ↓
API
      ↓
COBOL
      ↓
DB2
      ↓
Resposta

O cliente vê apenas a tela do aplicativo.

Nos bastidores, uma API conversa com o Mainframe.


Por que APIs são importantes?

Antes das APIs, a integração era feita através de:

Arquivos
FTP
MQ
Batch
Troca de datasets

Essas soluções funcionavam, mas eram mais lentas e complexas.

As APIs permitem:

✅ Integração em tempo real

✅ Menor acoplamento

✅ Reutilização de serviços

✅ Facilidade de manutenção

✅ Integração com Cloud


Principais Tipos de API

REST

O mais utilizado atualmente.

Comunica-se normalmente usando:

HTTP
HTTPS
JSON

Exemplo:

GET /clientes/1001

Resposta:

{
  "id":1001,
  "nome":"JOAO SILVA"
}

SOAP

Muito utilizado em Mainframe.

Baseado em:

XML
WSDL
HTTP

Exemplo:

<ConsultaSaldo>
   <Conta>12345</Conta>
</ConsultaSaldo>

GraphQL

Mais moderno.

Permite solicitar apenas os dados necessários.


APIs e o Mainframe

O Mainframe tradicionalmente trabalha com:

  • COBOL

  • CICS

  • IMS

  • DB2

  • VSAM

As APIs funcionam como uma camada de integração.


Arquitetura Moderna

Mobile
   ↓
API REST
   ↓
z/OS Connect
   ↓
COBOL
   ↓
DB2

Como o Mainframe Consome APIs?

Existem dois cenários.


1. Mainframe Expondo APIs

O COBOL oferece serviços para outros sistemas.

Exemplo:

Programa COBOL
      ↓
API REST
      ↓
Aplicativo Mobile

2. Mainframe Consumindo APIs

O COBOL chama um serviço externo.

Exemplo:

COBOL
   ↓
API Correios
   ↓
Consulta CEP

APIs REST no Mainframe

Hoje são extremamente comuns.

Utilizam:

HTTP
HTTPS
JSON
REST

Métodos HTTP

GET

Consulta dados.

GET /clientes

POST

Inclui dados.

POST /clientes

PUT

Atualiza dados.

PUT /clientes/1001

DELETE

Remove dados.

DELETE /clientes/1001

JSON e COBOL

Uma integração moderna normalmente utiliza:

JSON
   ↓
JSON PARSE
   ↓
COBOL

ou:

COBOL
   ↓
JSON GENERATE
   ↓
API

z/OS Connect

Uma das tecnologias mais importantes da IBM atualmente.

Permite transformar:

Programa COBOL

em

API REST

sem reescrever a aplicação.


Fluxo com z/OS Connect

Cliente REST
        ↓
JSON
        ↓
z/OS Connect
        ↓
Copybook COBOL
        ↓
Programa COBOL
        ↓
DB2

APIs e CICS

O CICS possui suporte para:

  • REST

  • JSON

  • SOAP

  • HTTP

  • Web Services


Exemplo:

REST API
    ↓
CICS
    ↓
COBOL

APIs e IMS

O IMS também pode ser exposto através de APIs.

Exemplo:

API REST
      ↓
IMS Connect
      ↓
IMS TM
      ↓
Programa COBOL

APIs e DB2

Consultas podem ser disponibilizadas através de APIs.

Exemplo:

SELECT SALDO
FROM CLIENTES

{
  "saldo":5000
}

Open Banking e APIs

Grande parte do Open Finance utiliza:

REST
JSON
OAuth
TLS

integrados ao Mainframe.


Segurança das APIs

Aspecto fundamental.

Normalmente utilizam:

  • HTTPS

  • TLS

  • OAuth 2.0

  • JWT

  • Certificados Digitais

  • RACF


Exemplo de Fluxo Seguro

App
 ↓
OAuth
 ↓
API
 ↓
RACF
 ↓
COBOL

Benefícios para o Mainframe

✅ Modernização sem reescrever COBOL

✅ Integração com Cloud

✅ Integração Mobile

✅ Exposição de serviços legados

✅ Reutilização de regras de negócio

✅ Menor custo de transformação digital


Desafios

❌ Segurança

❌ Governança

❌ Controle de versões

❌ Performance

❌ Monitoramento


Tecnologias Comuns

TecnologiaFunção
RESTAPIs modernas
JSONFormato de dados
SOAPWeb Services XML
z/OS ConnectExpor COBOL como API
CICSProcessamento transacional
IMS ConnectAPIs para IMS
DB2Banco de dados
RACFSegurança

Curiosidade

Muitos bancos processam milhões de chamadas de APIs por dia que, nos bastidores, executam programas COBOL escritos há décadas. O aplicativo parece moderno, mas a regra de negócio continua protegida e executada no Mainframe.


Resumo Rápido

Aplicativo
      ↓
API REST
      ↓
JSON
      ↓
z/OS Connect
      ↓
COBOL
      ↓
DB2

Conclusão

As APIs são interfaces que permitem a comunicação entre sistemas. No Mainframe, elas desempenham um papel essencial na modernização das aplicações COBOL, conectando sistemas IBM Z a aplicativos móveis, plataformas Cloud, microsserviços e ecossistemas digitais modernos. Tecnologias como REST, JSON, CICS Web Services, IMS Connect e z/OS Connect tornaram possível integrar décadas de investimento em Mainframe ao mundo das APIs de forma segura, escalável e eficiente.


quinta-feira, 22 de fevereiro de 2007

Como se Usa XML em COBOL?

 

Bellacosa Mainframe e o XML no COBOL

Como se Usa XML em COBOL?

O XML tornou-se muito importante no mundo Mainframe quando bancos, seguradoras e governos passaram a integrar aplicações COBOL com sistemas Web, Java, .NET, APIs e serviços externos.

Hoje é comum um programa COBOL:

  • receber XML;

  • gerar XML;

  • consumir Web Services;

  • integrar com CICS Web Services;

  • integrar com z/OS Connect;

  • trocar mensagens SOAP.


O que é XML?

XML significa:

eXtensible Markup Language

É um formato textual para troca de informações.

Exemplo:

<cliente>
   <id>1001</id>
   <nome>JOAO SILVA</nome>
   <saldo>5000.00</saldo>
</cliente>

Por que XML foi importante no Mainframe?

Antes do XML, a troca de dados era normalmente feita através de:

Arquivos Flat
QSAM
VSAM
Copybooks

O XML permitiu integração entre plataformas diferentes.


XML no COBOL Moderno

O Enterprise COBOL possui dois comandos especiais:

XML GENERATE

Gera XML.

XML PARSE

Lê XML.


XML GENERATE

Transforma uma estrutura COBOL em XML.


Exemplo COBOL

01 CLIENTE.
   05 ID-CLI      PIC 9(5).
   05 NOME-CLI    PIC X(30).
   05 SALDO-CLI   PIC 9(7)V99.

Dados

MOVE 1001 TO ID-CLI
MOVE 'JOAO SILVA' TO NOME-CLI
MOVE 5000 TO SALDO-CLI

Geração XML

XML GENERATE XML-SAIDA
   FROM CLIENTE
END-XML

Resultado

<CLIENTE>
   <ID-CLI>1001</ID-CLI>
   <NOME-CLI>JOAO SILVA</NOME-CLI>
   <SALDO-CLI>5000</SALDO-CLI>
</CLIENTE>

Estrutura Completa

01 XML-SAIDA PIC X(5000).

XML GENERATE XML-SAIDA
   FROM CLIENTE
END-XML.

XML PARSE

Faz o caminho inverso.

Transforma XML em dados COBOL.


XML Recebido

<CLIENTE>
   <ID>1001</ID>
   <NOME>JOAO</NOME>
</CLIENTE>

Comando

XML PARSE XML-ENTRADA

   PROCESSING PROCEDURE IS PROC-XML

END-XML

Processing Procedure

A cada tag encontrada o COBOL chama um parágrafo.


Exemplo

PROC-XML.

DISPLAY XML-EVENT
DISPLAY XML-TEXT.

Variáveis Automáticas

Durante o PARSE:

XML-CODE
XML-EVENT
XML-TEXT

são preenchidas automaticamente.


XML-CODE

Retorno da operação.

0 = OK

XML-EVENT

Evento encontrado.

Exemplo:

START-OF-ELEMENT
END-OF-ELEMENT
CONTENT-CHARACTERS

XML-TEXT

Conteúdo da tag.


Exemplo Prático

XML:

<NOME>JOAO</NOME>

Durante o PARSE:

EVENT = CONTENT-CHARACTERS
TEXT  = JOAO

XML e CICS

Muito utilizado em Web Services.

Fluxo:

Cliente
   ↓
SOAP XML
   ↓
CICS
   ↓
Programa COBOL

Exemplo SOAP

<soap:Envelope>
   <soap:Body>

      <ConsultaSaldo>

         <Conta>12345</Conta>

      </ConsultaSaldo>

   </soap:Body>
</soap:Envelope>

CICS Web Services

O CICS pode:

✅ Receber XML

✅ Converter XML para COBOL

✅ Converter COBOL para XML

automaticamente.


DFHWS2LS

Ferramenta CICS.

Converte:

XML
 ↓
COBOL Copybook

DFHLS2WS

Faz o inverso.

Copybook
 ↓
XML

XML e z/OS Connect

Hoje muitas empresas utilizam:

REST API
       ↓
JSON
       ↓
z/OS Connect
       ↓
COBOL

Mas internamente ainda existem muitos serviços XML.


XML e DB2

Dados DB2 podem ser transformados em XML.


Exemplo

SELECT *
FROM CLIENTES

<CLIENTE>
...
</CLIENTE>

XML Schema (XSD)

Define regras para XML.


Exemplo

<xs:element name="CLIENTE"/>

Benefícios do XML

✅ Padronização

✅ Interoperabilidade

✅ Legibilidade

✅ Integração entre plataformas

✅ Suporte nativo no COBOL


Desvantagens

❌ Verboso

❌ Arquivos grandes

❌ Parsing mais lento que JSON


XML x JSON

XML:

<NOME>JOAO</NOME>

JSON:

{
  "nome":"JOAO"
}

Hoje JSON é mais comum em APIs REST.

Mas XML continua muito presente em:

  • SOAP

  • Bancos

  • Governo

  • Seguros

  • Mainframe legado


Exemplo Completo XML GENERATE

WORKING-STORAGE SECTION.

01 CLIENTE.
   05 ID-CLI     PIC 9(5).
   05 NOME-CLI   PIC X(30).

01 XML-SAIDA PIC X(1000).

PROCEDURE DIVISION.

MOVE 1001 TO ID-CLI
MOVE 'JOAO SILVA' TO NOME-CLI

XML GENERATE XML-SAIDA
   FROM CLIENTE
END-XML

DISPLAY XML-SAIDA

STOP RUN.

Resumo Rápido

ComandoFunção
XML GENERATECOBOL → XML
XML PARSEXML → COBOL
XML-CODECódigo retorno
XML-EVENTEvento XML
XML-TEXTConteúdo XML
DFHWS2LSXML → Copybook
DFHLS2WSCopybook → XML
SOAPWeb Service XML
XSDSchema XML

Dica para quem estuda Mainframe

Como você já tem interesse em CICS Web Services e z/OS Connect, o próximo passo natural é montar um laboratório com:

COBOL
   ↓
COPYBOOK
   ↓
DFHLS2WS
   ↓
WSDL
   ↓
SOAP XML
   ↓
CICS Web Services

Esse é exatamente o caminho utilizado em muitos bancos para expor programas COBOL como serviços consumidos por aplicações Java, .NET, Mobile e APIs corporativas.