Translate

Mostrar mensagens com a etiqueta REST API. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta REST API. Mostrar todas as mensagens

quarta-feira, 8 de outubro de 2025

☕🏛️🔥 O Mainframe Nunca Foi Lento: Você Só Não Entendeu o Que o CICS Está Fazendo nos Bastidores

 

,

Bellacosa Mainframe abre a caixa de pandora os bastidores do CICS

☕🏛️🔥

“O Mainframe Nunca Foi Lento: Você Só Não Entendeu o Que o CICS Está Fazendo nos Bastidores”

Uma Jornada Profunda pelo CICS TS, Processamento Transacional e a Engenharia Invisível que Sustenta o Mundo Digital

Por Bellacosa Mainframe — Para Sysprogs Padawans que Querem Entender o Coração do IBM Z


☕ O Grande Equívoco da TI Moderna

Existe uma frase que todo profissional de mainframe já ouviu:

“Mainframe é coisa antiga.”

E normalmente essa frase vem de alguém que:

  • nunca viu um dump IPCS

  • nunca abriu um CEMT

  • nunca analisou um deadlock

  • nunca precisou garantir integridade para bilhões de dólares em transações

Porque quando você realmente entra no universo do:

🔥 CICS Transaction Server

você percebe algo assustador:

☕ muitos sistemas modernos ainda estão tentando resolver problemas que o CICS já resolvia há décadas.


🏛️ O Que é o CICS de Verdade?

O padawan normalmente aprende:

“CICS é terminal verde.”

ERRADO.

Profundamente errado.

O CICS nunca foi apenas tela 3270.

Ele sempre foi:

  • transaction manager

  • middleware enterprise

  • application server

  • runtime transacional

  • coordenador de recoverability

  • engine de integridade concorrente


☕ O CICS é praticamente um “mini sistema operacional transacional” rodando dentro do z/OS.


🏛️ O Verdadeiro Problema que o CICS Resolve

Vamos simplificar brutalmente:

Imagine:

10 milhões de pessoas

fazendo simultaneamente:

  • PIX

  • saque

  • pagamento

  • cartão

  • reserva aérea

  • compra online

Agora responda:

🔥 como impedir que tudo vire caos?


☕ Como impedir:

  • saldo negativo incorreto

  • pagamentos duplicados

  • corrupção de dados

  • concorrência destrutiva

  • travamentos

  • inconsistência financeira


🏛️ É EXATAMENTE isso que o CICS faz.

Silenciosamente.

Todos os dias.


☕ TRANSACTION

O Conceito Mais Importante do Mundo Enterprise

O usuário vê:

“Transferência realizada.”

Mas internamente existe uma:

🔹 TRANSACTION


☕ Uma transaction representa:

🔥 uma unidade lógica completa de negócio.


🏛️ Exemplo

Debitar conta A
Creditar conta B

Parece simples.

Mas pense profundamente:

🔥 e se ocorrer falha no meio?


☕ É aqui que nasce a engenharia transacional.


🏛️ UNIT OF WORK

O Pacto Sagrado da Integridade

O CICS trata tudo como:

🔹 Unit of Work (UOW)


☕ Significa:

ou tudo acontece…

🔥 ou nada acontece.


🏛️ Isso é Atomicidade.

Uma das propriedades ACID.


☕ Fluxo clássico:

1. Lock contas
2. Validar saldo
3. Debitar origem
4. Creditar destino
5. Commit

🔥 Se QUALQUER etapa falhar:

rollback automático.


☕ O dinheiro não desaparece.

O sistema volta atrás.


🏛️ O Que o Padawan Precisa Entender

Falha NÃO é o problema.

🔥 Corrupção é o problema.


☕ O CICS foi criado para:

🔹 falhar sem destruir integridade.


🏛️ TASK

A Entidade Viva da Transaction

Quando uma transaction inicia…

o CICS cria uma:

🔹 TASK


☕ A TASK é:

🔥 a execução ativa da transaction.


🏛️ Exemplo

Usuário A → TASK A
Usuário B → TASK B
Usuário C → TASK C

☕ Todas simultaneamente.


🏛️ E Aqui Surge o Verdadeiro Monstro:

MULTITASKING

O CICS executa:

🔥 milhares de TASKS concorrentes.


☕ Todas disputando:

  • DB2

  • VSAM

  • MQ

  • CPU

  • memória

  • recursos compartilhados


🏛️ Sem controle isso seria um desastre.

Então entra o:

🔹 CICS Dispatcher


☕ O maestro invisível do ambiente.

Ele controla:

  • prioridades

  • waits

  • CPU

  • scheduling

  • concorrência


🔥 O usuário acha que está sozinho.

Mas existem milhares de tasks coexistindo.


🏛️ REENTRANCY

O Conceito que Todo Sysprog Junior Precisa Gravar na Alma

Aqui muitos iniciantes quebram a cabeça.

O CICS usa:

🔹 reentrant programs


☕ Isso significa:

UMA única cópia do programa na memória.


🏛️ Mas milhares de usuários executando simultaneamente.


☕ Como isso é possível?

Porque:

🔥 o código é compartilhado…

🔥 os dados são isolados.


🏛️ Arquitetura Conceitual

Programa COBOL único
        ↓
Task A → Working Storage A
Task B → Working Storage B
Task C → Working Storage C

☕ Isso economiza memória absurdamente.

Lembre-se:

o CICS nasceu quando memória era caríssima.


🏛️ DEADLOCK

O Congestionamento Invisível

Agora imagine:

Task A segura recurso X
Task B segura recurso Y

Depois:

Task A quer Y
Task B quer X

🔥 BOOM.

Deadlock.


☕ Nenhuma consegue continuar.


🏛️ O CICS detecta isso e mata uma das tasks.

Depois executa:

  • rollback

  • backout

  • liberação de locks


☕ Isso acontece silenciosamente milhares de vezes.


🏛️ O Sysprog Junior Precisa Entender Uma Verdade Dolorosa

Concorrência é MUITO difícil.

Muito mais difícil do que frameworks modernos fazem parecer.


☕ O CICS trata isso desde os anos 60.


🏛️ “MAINFRAME NÃO EVOLUIU”

A Maior Mentira da TI Moderna

O padawan normalmente imagina:

CICS = terminal verde

Mas o CICS moderno possui:

  • REST APIs

  • JSON

  • Java

  • Node.js

  • cloud integration

  • z/OS Connect

  • Liberty JVM

  • Web Services


☕ O COBOL continua lá.

Mas agora falando:

{
  "customer":"Maria"
}

🏛️ z/OS CONNECT EE

A Ponte Entre o Mundo Moderno e o Mainframe

Isso foi revolucionário.

Hoje o fluxo é:

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

☕ O desenvolvedor mobile nem imagina que existe COMMAREA por trás.


🏛️ NODE.JS NO CICS

Sim, JavaScript no Mainframe

Quando o padawan descobre isso normalmente reage assim:

“COMO ASSIM?”

☕ Mas sim.

O CICS moderno suporta:

🔹 Node.js

🔹 Java

🔹 REST

🔹 APIs modernas


🏛️ O COBOL continua fazendo:

  • regras de negócio

  • recoverability

  • integridade

Enquanto:

  • Node.js

  • Java

  • APIs REST

fazem integração moderna.


☕ Isso é arquitetura híbrida enterprise real.


🏛️ O GRANDE SEGREDO DO CICS

O segredo nunca foi:

velocidade pura

O segredo é:

🔥 velocidade COM integridade.


☕ Qualquer sistema pode ser rápido.

Poucos conseguem ser:

  • rápidos

  • concorrentes

  • auditáveis

  • recuperáveis

  • consistentes

ao mesmo tempo.


🏛️ O Sysprog Junior Precisa Entender Outra Verdade

Quando você administra CICS…

você não administra apenas software.

Você administra:

🔥 confiança digital.


☕ Porque bilhões de pessoas dependem disso sem perceber.


🏛️ O Usuário Só Vê:

“PIX realizado”

☕ Mas nos bastidores existem:

  • tasks

  • dispatcher

  • locks

  • rollback

  • syncpoint

  • journaling

  • reentrancy

  • storage management

  • recovery manager


🔥 Tudo funcionando em milissegundos.


🏛️ A Grande Lição Final para o Padawan

O CICS não é apenas um software antigo sobrevivendo.

Ele é:

☕ uma das maiores obras de engenharia transacional já criadas.


🔥 E o mais impressionante:

muitos conceitos modernos ainda derivam diretamente dele.


☕ Frase Final Bellacosa Mainframe

“O usuário vê apenas um aplicativo moderno no celular.
Mas no fundo… existe um CICS coordenando milhares de tasks, protegendo integridade, resolvendo deadlocks e garantindo que o dinheiro continue existindo corretamente no banco.”

terça-feira, 4 de junho de 2019

☕💥 A Jornada do Padawan COBOL – Parte 6 Desvendando o Universo dos CALLs no Mainframe

 

Bellacosa Mainframe apresenta o CALL em Cobol Parte VI

☕💥 A Jornada do Padawan COBOL – Parte 6

Desvendando o Universo dos CALLs no Mainframe

CICS LINK, XCTL, COMMAREA, Channels, Containers, APIs REST, MQ, Java e os Segredos dos Arquitetos da Nova República IBM Z

Ou como descobrir que um programa COBOL escrito em 1987 pode responder uma API REST em menos tempo do que muita startup consegue carregar um framework

Por Vagner Bellacosa – Bellacosa Mainframe


O dia em que o Padawan descobre que CALL não é a única forma de chamar programas

Até agora aprendemos:

✅ CALL estático

✅ CALL dinâmico

✅ Binder

✅ RENT

✅ CEEDUMP

✅ LPA

✅ LE

Mas um dia o Padawan entra em um ambiente CICS.

Abre um programa.

E encontra isto:

EXEC CICS LINK
     PROGRAM('PGM0001')
     COMMAREA(WS-COMM)
END-EXEC

E pensa:

Ué...

Cadê o CALL?


O universo paralelo do CICS

Em Batch usamos:

CALL 'VALIDA'

No CICS temos:

LINK

XCTL

START

RETURN

LOAD

DELETE


LINK

É praticamente o CALL do CICS.

Exemplo

EXEC CICS LINK
     PROGRAM('CPFVAL')
     COMMAREA(WS-COMMAREA)
END-EXEC

Visualmente


CLIENTE01


↓

LINK


↓

CPFVAL


↓

RETORNA


↓

CLIENTE01



Programa chamador continua vivo.

Igual ao CALL.


Vantagens

Retorna controle

Compartilha contexto

Excelente modularização

Pode executar milhares de vezes


XCTL

Agora a coisa muda.


Exemplo

EXEC CICS XCTL
     PROGRAM('MENU0001')
END-EXEC

Visualmente


TELA01

↓

XCTL

↓

MENU0001



TELA01 morre




Não retorna.

Nunca.


É quase um:

exit();

Quando usar?

Troca definitiva.

Menu.

Workflow.

Navegação.


LINK versus XCTL

CaracterísticaLINKXCTL
RetornaSimNão
Consome stackSimNão
PerformanceBoaExcelente
WorkflowMédioIdeal

COMMAREA

A rainha do CICS.


Ela transporta dados.


Exemplo

01 WS-COMM.

05 WS-CPF PIC X(11).

05 WS-NOME PIC X(30).

05 WS-RC PIC 99.

LINK

EXEC CICS LINK
PROGRAM('CPFVAL')
COMMAREA(WS-COMM)
LENGTH(100)
END-EXEC

Subprograma

DFHCOMMAREA.

O limite

64 KB


Padawan feliz.

Arquiteto preocupado.


Channels e Containers

IBM resolveu.


Nasce o conceito:

CHANNEL

CONTAINER


Praticamente JSON.

Mas IBM.


Exemplo

EXEC CICS PUT CONTAINER
CONTAINER('CLIENTE')
CHANNEL('CANAL1')
FROM(WS-CLIENTE)
END-EXEC

Ler

EXEC CICS GET CONTAINER
CONTAINER('CLIENTE')
CHANNEL('CANAL1')
INTO(WS-CLIENTE)
END-EXEC

Vantagens

Gigabytes.

Múltiplos objetos.

Flexível.


MQ

Padawan evolui.

Conhece IBM MQ.


Exemplo

CALL 'MQPUT'

Visualmente



COBOL

↓

MQPUT


↓

QUEUE


↓

JAVA


↓

API




Assíncrono.

Bonito.

Elegante.

IBM aprova.


APIs REST

O grande sonho.


"Posso expor COBOL como API?"

Sim.


Muito.


zOS Connect

O mago moderno.


Ele converte

REST

em

COBOL


Visualmente



POST /cliente



↓

zOS Connect



↓

COBOL



↓

DB2



↓

JSON




Cliente pensa:

Microserviço.


Realidade:

COBOL 1989.


Exemplo

API

{
"id":123
}

COBOL

01 WS-ID PIC 9(9).

Java

Sim.

Java conversa.


JNI.

LE.

DLL.


Exemplo

CobolService.executar();

COBOL

CALL 'PROCESSA'

Python

Sim.

Também.


API REST.

MQ.

Kafka.


Tudo possível.


Metal C

Território avançado.


Muito usado.

IBM Z.

Baixa latência.


zIIP

Arquiteto sorri.

Financeiro também.


Pode descarregar CPU.


Exemplo

JSON parsing.

REST.

MQ.

DB2 DRDA.


SMF 110

O espião do CICS.


Captura:

Tempo

CPU

LINK

XCTL

DB2

MQ


APA

Application Performance Analyzer


Mostra:

Hotspots

CALLs

Loops

CPU


Strobe

Ferramenta lendária.


Veteranos adoram.


Exemplo real

Programa

1000 LINKs

Tempo

5 segundos

Após otimização

400 ms


Truques Bellacosa

Dica 1

LINK

Retorna.


Dica 2

XCTL

Não retorna.


Dica 3

Channels > COMMAREA

Projetos novos.


Dica 4

MQ desacopla.


Dica 5

REST não mata COBOL.

REST promove COBOL.


Easter Egg Mainframe

Muitos bancos possuem.

Programa.

APIGEN01

Dentro.

EXEC CICS LINK

PROGRAM('LEG1987')

END-EXEC

API moderna.

Swagger.

OAuth.

OpenAPI.

JWT.

Kubernetes.

No final...

Executa.

MOVE SALDO TO WS-SALDO

Escrito em 1987.

Funciona.

Processa bilhões.

Ninguém reclama.


Checklist Jedi da Integração

✅ Preferir LINK

✅ XCTL para troca definitiva

✅ Evitar COMMAREA grande

✅ Usar Channels

✅ Monitorar SMF110

✅ Medir CPU

✅ Utilizar MQ

✅ Explorar zOS Connect

✅ Aproveitar zIIP

✅ Testar latência

✅ Documentar APIs


A Filosofia Jedi do CALL – Parte 6

O Padawan iniciante acredita:

COBOL só conversa com COBOL.

O desenvolvedor intermediário pensa:

COBOL pode consumir APIs.

O Arquiteto IBM Z entende:

COBOL conversa com qualquer tecnologia capaz de trocar bytes, mensagens, estruturas, JSON, XML ou eventos.

E é exatamente por isso que alguns dos sistemas mais modernos do planeta possuem uma arquitetura semelhante a esta:

Mobile

↓

API Gateway

↓

REST

↓

zOS Connect

↓

CICS LINK

↓

COBOL

↓

DB2

↓

MQ

↓

Analytics

↓

IA

Enquanto o cliente enxerga apenas um botão escrito "Consultar Saldo", um pequeno exército de programas COBOL, escritos ao longo de quarenta anos, continua executando silenciosamente milhões de chamadas por segundo, provando mais uma vez que, no Mainframe, a Força nunca esteve na moda da tecnologia, mas na sua capacidade de durar décadas sem perder desempenho, segurança e confiabilidade.


Próxima aventura do Padawan COBOL – Parte 7

Assembler, BALR, BASSM, PC-Bit, SVC, LE Internals, SRBs, TCBs, Cross Memory Services, zIIP, HiperDispatch e os segredos obscuros dos Sysprogs Jedi do IBM Z.