 |
| Bellacosa Mainframe e o misterio da porta que nunca dormia |
☕ Um Café no Bellacosa Mainframe
O Mistério da Porta que Nunca Dormia
Quando um Jovem Programador COBOL Descobre que o Verdadeiro Guardião da Internet Mora Dentro do CICS
"Toda cidade possui ruas invisíveis. Toda rede possui caminhos secretos. E todo grande banco possui uma porta que nunca fecha..."
As luzes do CPD permaneciam acesas.
Lá fora, a cidade dormia.
Os semáforos piscavam em amarelo.
Os jornais da madrugada ainda não haviam chegado às bancas.
Mas no subterrâneo daquele enorme edifício existia um mundo que jamais conhecia o descanso.
Centenas.
Milhares.
Milhões de mensagens atravessavam cabos de fibra óptica.
Algumas vinham de um aplicativo bancário.
Outras de um caixa eletrônico.
Outras de um PIX recém-enviado.
Algumas eram geradas por microsserviços em Kubernetes.
Outras por aplicações Java rodando em nuvens espalhadas pelo planeta.
Todas tinham um único destino.
Uma porta.
Uma porta invisível.
E atrás dela...
...havia um velho conhecido dos programadores COBOL.
O CICS.
Hoje iremos investigar um dos maiores mistérios da computação corporativa:
Como um programa COBOL escrito há décadas consegue conversar com um aplicativo instalado em um smartphone lançado na semana passada?
Pegue seu café.
A investigação vai começar.
Capítulo 1 — O Caso da Cidade Invisível
Imagine uma cidade.
Não uma cidade comum.
Uma cidade construída exclusivamente para transportar informações.
Nela existem:
avenidas
ruas
cruzamentos
túneis
portões
guardas
carteiros
Cada pacote de informação precisa atravessar essa cidade.
Essa cidade chama-se...
TCP/IP.
O curioso é que ela não pertence à IBM.
Nem à Microsoft.
Nem ao Linux.
Ela pertence ao mundo inteiro.
É justamente por isso que um iPhone consegue conversar com um IBM Z.
É por isso que um notebook Linux conversa com um servidor z/OS.
Todos falam o mesmo idioma.
Capítulo 2 — Antes da Internet Existia Outro Mundo
Os iniciantes costumam imaginar que os mainframes sempre utilizaram TCP/IP.
Não.
Muito antes da Internet existir...
A IBM já possuía sua própria "Internet".
Chamava-se:
Era um universo extremamente eficiente.
Mas havia um problema.
Era praticamente exclusivo do ecossistema IBM.
Era como um reino onde todos falavam latim.
Quando chegaram novos povos...
Era necessário um idioma universal.
Esse idioma acabou sendo o TCP/IP.
O resto é história.
Capítulo 3 — O Guardião da Porta
Existe um personagem que quase nunca aparece nos diagramas.
O Listener.
Imagine um segurança de um prédio.
Ele não resolve problemas.
Não responde perguntas.
Não faz empréstimos.
Não consulta saldos.
Ele apenas abre a porta.
No CICS acontece exatamente isso.
O Listener permanece imóvel.
Horas.
Dias.
Semanas.
Esperando.
Até que alguém bata à porta.
Knock...
Knock...
Nova conexão.
Então ele responde:
"Entre."
A partir daquele instante nasce uma nova Task CICS.
Capítulo 4 — O Mistério dos Sockets
Um dos termos mais assustadores para quem está começando.
Socket.
Parece algo extremamente complexo.
Mas imagine uma tomada.
Você liga uma televisão.
Liga um videogame.
Liga um computador.
Todos utilizam exatamente a mesma tomada.
Na rede acontece o mesmo.
Um Socket é apenas uma tomada de rede.
Ele conecta dois equipamentos.
Nada mais.
Nada menos.
Easter Egg nº 1 🕵️
Sherlock Holmes provavelmente definiria um Socket assim:
"Meu caro Watson... o Socket não transporta informações. Ele apenas permite que elas encontrem o caminho."
Capítulo 5 — O Cliente Nunca Entra Sem Bater
Toda comunicação TCP/IP possui dois personagens.
O Cliente.
O Servidor.
O Cliente sempre toma a iniciativa.
Ele pergunta.
Solicita.
Pede.
Já o Servidor permanece aguardando.
No CICS:
Cliente
↓
connect()
↓
Servidor
↓
accept()
↓
Nova Task
Curiosamente...
O CICS pode atender milhares de clientes ao mesmo tempo.
Capítulo 6 — A Conversa Começa Antes da Conversa
Pouca gente sabe.
Antes dos dados começarem a viajar...
Existe uma negociação.
Ela chama-se:
Three-Way Handshake
Cliente
SYN
↓
Servidor
SYN ACK
↓
Cliente
ACK
Somente depois disso os dados começam a viajar.
É como apertar as mãos antes de iniciar uma reunião.
Curiosidade
O TCP é educado.
Jamais começa uma conversa sem perguntar:
"Você está pronto?"
Capítulo 7 — O Caminho da Mensagem
Vamos acompanhar uma consulta de saldo.
Celular
↓
Internet
↓
Firewall
↓
Load Balancer
↓
TCP/IP
↓
Socket
↓
Listener
↓
Task CICS
↓
Programa COBOL
↓
DB2
↓
Resposta
Perceba algo curioso.
O COBOL nunca enxergou o celular.
Ele apenas recebeu uma solicitação.
Capítulo 8 — O Programa COBOL Nem Imagina
Este talvez seja o maior segredo.
O programa COBOL não sabe se foi chamado por:
um caixa eletrônico
um terminal 3270
uma API REST
um aplicativo Android
um portal Web
um chatbot
um agente de IA
Ele apenas recebe parâmetros.
Executa.
Retorna resultados.
Essa separação de responsabilidades é um dos grandes motivos pelos quais programas COBOL continuam funcionando por décadas.
Capítulo 9 — O Banco Nunca Dorme
Quando você consulta seu saldo às três horas da manhã...
Existe uma boa chance de que:
um Listener tenha aceitado sua conexão;
uma Task CICS tenha sido criada;
um programa COBOL tenha acessado o Db2 ou o VSAM;
a resposta tenha retornado em poucos milissegundos.
Tudo isso enquanto milhares de outras transações estavam acontecendo ao mesmo tempo.
Easter Egg nº 2 🕵️
Observe os filmes noir dos anos 1950.
Sempre existe um porteiro.
Ele conhece todos.
Mas não participa do crime.
O Listener é exatamente esse porteiro.
Capítulo 10 — TCP Não é IP
Outro erro clássico.
TCP e IP trabalham juntos.
Mas fazem coisas completamente diferentes.
Imagine uma transportadora.
O IP dirige o caminhão.
O TCP confere a carga.
Se faltar uma caixa...
O TCP manda buscá-la novamente.
Por isso ele é tão confiável.
Capítulo 11 — Portas Secretas
Toda aplicação precisa de uma porta.
HTTP?
HTTPS?
SSH?
SMTP?
No CICS também existem portas.
Cada uma pode atender um serviço diferente.
É como um enorme prédio comercial.
Cada sala possui uma função específica.
Capítulo 12 — O Castelo Possui Guardas
Abrir uma conexão não significa entrar.
Primeiro aparecem:
Firewall.
Depois TLS.
Depois certificados.
Depois RACF.
Depois regras do CICS.
Somente então o programa COBOL é executado.
É uma sequência de muralhas.
Cada uma protege a próxima.
Dica do Bellacosa 💡
Nunca pense em segurança apenas no programa COBOL.
A proteção começa muito antes do programa receber o primeiro byte.
Capítulo 13 — REST, JSON e o Tradutor Invisível
Hoje quase ninguém envia mensagens diretamente para um programa COBOL.
Normalmente existe um intérprete.
O z/OS Connect Enterprise Edition.
Ele funciona como um tradutor.
O aplicativo envia JSON.
O tradutor converte.
O COBOL recebe parâmetros tradicionais.
Depois tudo acontece ao contrário.
COBOL gera dados.
O tradutor monta o JSON.
O celular entende.
Nenhuma mágica.
Apenas engenharia muito bem construída.
Capítulo 14 — Por Que Isso Escala Tanto?
Imagine criar um processo inteiro para cada cliente.
Seria pesado.
Muito pesado.
O CICS faz diferente.
Ele trabalha com Tasks extremamente leves.
É por isso que consegue atender milhares de conexões simultâneas utilizando recursos de forma extremamente eficiente.
Essa arquitetura, refinada ao longo de décadas, é uma das razões pelas quais o CICS continua sendo referência em processamento transacional.
Capítulo 15 — TCP/IP ou IBM MQ?
Essa dúvida aparece em praticamente toda entrevista.
TCP/IP é uma conversa direta.
Você pergunta.
Espera.
Recebe.
IBM MQ trabalha com filas.
Você entrega uma mensagem.
Ela aguarda.
Outro sistema a processa quando estiver disponível.
Um não substitui o outro.
Na prática, muitos ambientes usam ambos: a requisição chega via TCP/IP e segue para uma fila MQ antes de alcançar o processamento de negócio.
Passo a Passo — A Jornada Completa de uma Requisição
Imagine que um cliente abre o aplicativo do banco e consulta o saldo:
O aplicativo cria uma conexão HTTPS.
O TCP realiza o Three-Way Handshake.
O pacote atravessa Internet, roteadores e firewalls.
O Listener do CICS recebe a conexão na porta configurada.
O CICS cria uma nova Task.
O programa COBOL é acionado, muitas vezes via EXEC CICS LINK ou XCTL.
O programa acessa um arquivo VSAM ou uma tabela Db2.
A lógica de negócio calcula e valida as informações.
O resultado retorna ao CICS.
O CICS envia a resposta pelo mesmo Socket.
O aplicativo apresenta o saldo ao usuário em frações de segundo.
Tudo isso pode acontecer em menos tempo do que um piscar de olhos.
Curiosidades de Bastidores
📡 O IBM Z é um gigante da Internet
Embora muitas pessoas imaginem o mainframe isolado, ele participa diariamente de milhões de conexões TCP/IP, sustentando serviços críticos ao redor do mundo.
⚙️ Um programa COBOL pode sobreviver por décadas
Ao separar comunicação da lógica de negócio, uma mesma aplicação pode atravessar gerações de tecnologia sem precisar ser reescrita.
🔄 O mesmo COBOL, muitos canais
Uma única rotina pode atender:
terminal 3270;
aplicativo móvel;
API REST;
portal web;
chatbot;
agente de IA.
Isso representa um enorme reaproveitamento de conhecimento e investimento.
Dicas para o Programador COBOL Iniciante
Aprenda os fundamentos de redes: IP, TCP, portas e DNS.
Entenda a diferença entre comunicação síncrona e assíncrona.
Estude como o CICS cria e gerencia Tasks.
Conheça o papel do Listener e dos Sockets.
Familiarize-se com Db2 e VSAM, pois eles aparecem no final da maioria das transações.
Explore o z/OS Connect EE para compreender como APIs REST chegam ao COBOL.
Nunca ignore segurança: RACF, TLS, certificados e autorização fazem parte da aplicação, mesmo que estejam fora do código COBOL.
Perguntas Clássicas de Entrevista
O que é um Socket?
É o endpoint de comunicação entre duas aplicações usando TCP/IP.
Qual é a função do Listener?
Escutar uma porta TCP/IP, aceitar conexões e iniciar o processamento correspondente no CICS.
O COBOL precisa conhecer TCP/IP?
Na maioria dos casos, não. O CICS e os componentes de integração abstraem essa comunicação, permitindo que o programa foque na lógica de negócio.
Por que o TCP/IP é tão importante para o CICS moderno?
Porque conecta aplicações tradicionais do IBM Z a APIs, microsserviços, aplicações web, mobile e plataformas em nuvem com segurança, confiabilidade e alto desempenho.
O Dossiê Bellacosa
Quando alguém afirma que o mainframe "não conversa com a Internet", provavelmente está imaginando um IBM Z preso aos terminais verdes dos anos 1980. A realidade é exatamente o oposto. Hoje, atrás de um pagamento instantâneo, de uma compra por aplicativo ou de uma consulta de saldo, existe uma sofisticada cadeia formada por TCP/IP, sockets, listeners, Tasks CICS, programas COBOL, Db2, VSAM e mecanismos de segurança que operam quase invisíveis ao usuário.
O verdadeiro mistério nunca foi descobrir como o CICS fala com o mundo moderno. O verdadeiro mistério é que ele faz isso há tanto tempo, com tamanha estabilidade e eficiência, que quase ninguém percebe sua presença.
Como todo bom detetive das antigas aprenderia ao fechar seu caderno de anotações:
"Os maiores segredos da computação nunca estiveram escondidos. Eles apenas eram confiáveis demais para chamar atenção."
E, enquanto as luzes do CPD continuam acesas e uma pequena porta TCP permanece escutando silenciosamente na madrugada, milhões de transações seguem seu curso. O guardião continua de plantão. O CICS nunca dorme.