Translate

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

segunda-feira, 9 de setembro de 2024

Se você Saiu do Mainframe Há muito, mas muito tempo? Sherlock Holmes, COBOL e o Mistério da Plataforma que se Recusou a Envelhecer

 

Bellacosa Mainframe reapresenta o mainframe para antigos mainframers retornantes

☕ Um Café no Bellacosa Mainframe

Se você Saiu do Mainframe Há muito, mas muito tempo? Sherlock Holmes, COBOL e o Mistério da Plataforma que se Recusou a Envelhecer

Imagine a seguinte cena.

Depois de quinze ou vinte anos afastado do universo mainframe, você decide voltar.

Talvez tenha trabalhado com COBOL, JCL, CICS, VSAM ou DB2 no início dos anos 2000. Talvez tenha deixado a área para atuar com gestão, sistemas distribuídos, suporte, negócios ou até mesmo em outra profissão. Durante esse período, você acompanhou o nascimento da computação em nuvem, dos smartphones, das redes sociais, dos microsserviços, dos containers e da inteligência artificial.

Então surge a dúvida:

“Será que ainda sei alguma coisa útil?”

Você imagina entrar novamente em um ambiente mainframe e encontrar uma tecnologia completamente diferente daquela que conheceu. Talvez espere descobrir que o COBOL desapareceu, que o terminal 3270 virou peça de museu e que todos os sistemas foram substituídos por aplicativos modernos executando em alguma nuvem misteriosa.

Mas, ao atravessar a porta do data center, algo curioso acontece.

O cenário parece novo e familiar ao mesmo tempo.

É como Sherlock Holmes retornando a Baker Street depois de muitos anos. A cidade ganhou novos prédios, os carros mudaram, as comunicações ficaram instantâneas e agora existem câmeras por toda parte. Entretanto, os mistérios continuam sendo resolvidos da mesma forma: observando detalhes, seguindo pistas, eliminando hipóteses e compreendendo o comportamento humano.

No mainframe moderno, acontece algo parecido.

As ferramentas mudaram.

As integrações mudaram.

Os processos de desenvolvimento mudaram.

Porém, a essência do trabalho continua surpreendentemente reconhecível.

O primeiro mistério: o mainframe ficou parado no tempo?

Não.

Esse é o primeiro caso que precisamos solucionar.

O mainframe não ficou congelado em uma sala escura, cercado por fitas magnéticas e operadores usando jalecos brancos. Ele evoluiu continuamente.

O que aconteceu foi algo mais interessante: a plataforma evoluiu preservando compatibilidade com grande parte do que já existia.

Essa é uma das principais diferenças entre o mundo mainframe e muitas tecnologias distribuídas.

Em certos ecossistemas, uma nova versão pode tornar aplicações antigas incompatíveis. Frameworks surgem, ganham popularidade e desaparecem em poucos anos. Bibliotecas são abandonadas, padrões são substituídos e projetos inteiros precisam ser reescritos.

No mainframe, a evolução costuma ser mais cuidadosa.

A plataforma é responsável por sistemas bancários, seguradoras, governos, empresas de transporte, indústrias, companhias aéreas e organizações que não podem simplesmente parar tudo por alguns meses para reconstruir aplicações críticas.

Portanto, o mainframe evolui como uma grande cidade histórica.

Novas avenidas são construídas.

Novos sistemas de transporte são criados.

Novas redes de comunicação são instaladas.

Mas os prédios centrais continuam funcionando.

O COBOL continua presente.

O CICS continua processando transações.

O DB2 continua armazenando dados críticos.

O MQ continua transportando mensagens.

O JCL continua controlando processamento batch.

O JES continua recebendo e executando jobs.

O SDSF continua permitindo que o profissional consulte filas, resultados e mensagens.

E o TSO/ISPF continua lá, com suas telas, comandos e painéis familiares.

Quem retorna depois de muitos anos pode até sentir uma estranha sensação de conforto ao abrir o ISPF e perceber que a opção 3.2 continua sendo utilizada para trabalhar com data sets.

É quase como reencontrar um antigo café que mudou as mesas, reformou a fachada e instalou Wi-Fi, mas continua servindo o mesmo bom espresso.

O segundo mistério: o COBOL mudou completamente?

Para um programador COBOL iniciante, essa pergunta é importante.

A resposta é: o COBOL mudou, mas não perdeu sua identidade.

Quem conhecia a linguagem há quinze ou vinte anos ainda reconhecerá sua estrutura principal.

Um programa COBOL moderno continua podendo apresentar divisões como:

IDENTIFICATION DIVISION.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.

Ainda encontraremos comandos como:

MOVE
IF
EVALUATE
PERFORM
READ
WRITE
REWRITE
DELETE
CALL

Ainda teremos variáveis descritas por níveis:

01 WS-CLIENTE.
   05 WS-CODIGO        PIC 9(08).
   05 WS-NOME          PIC X(40).
   05 WS-SALDO         PIC S9(11)V99 COMP-3.

Ainda haverá programas que acessam DB2:

EXEC SQL
   SELECT NOME,
          SALDO
     INTO :WS-NOME,
          :WS-SALDO
     FROM CLIENTES
    WHERE CODIGO = :WS-CODIGO
END-EXEC.

Ainda existirão programas CICS:

EXEC CICS
   READ FILE('CLIENTES')
        INTO(WS-REGISTRO)
        RIDFLD(WS-CODIGO)
        RESP(WS-RESP)
END-EXEC.

O programador que já conhecia COBOL não precisará reaprender a lógica fundamental da linguagem.

Porém, encontrará compiladores mais modernos, novos recursos, integração com JSON, XML, Unicode, APIs, ferramentas de análise, IDEs gráficas, testes automatizados e pipelines de desenvolvimento.

O COBOL não virou outra linguagem.

Ele ficou mais conectado ao mundo ao seu redor.

Uma analogia para o iniciante

Imagine um automóvel clássico que recebeu:

  • freios modernos;

  • injeção eletrônica;

  • sensores;

  • GPS;

  • computador de bordo;

  • novos sistemas de segurança.

O volante continua sendo um volante.

O motor continua transformando energia em movimento.

O motorista ainda precisa conhecer trânsito, direção, frenagem e manutenção.

Da mesma forma, o programador COBOL ainda precisa dominar:

  • estruturas de dados;

  • lógica condicional;

  • repetição;

  • arquivos;

  • bancos de dados;

  • tratamento de erros;

  • regras de negócio;

  • processamento transacional;

  • processamento batch.

As novas ferramentas ajudam, mas não substituem a compreensão.

O verdadeiro salto aconteceu ao redor do mainframe

Aqui encontramos a pista mais importante de toda a investigação.

Há quinze ou vinte anos, muitas aplicações mainframe eram acessadas diretamente por terminais 3270.

Um fluxo comum poderia ser representado assim:

Usuário
   ↓
Terminal 3270
   ↓
CICS
   ↓
Programa COBOL
   ↓
VSAM ou DB2

Esse modelo ainda existe.

Entretanto, hoje um mesmo programa pode participar de uma arquitetura muito mais ampla:

Aplicativo de celular
   ↓
API Gateway
   ↓
Microsserviço
   ↓
z/OS Connect
   ↓
CICS
   ↓
Programa COBOL
   ↓
DB2
   ↓
MQ
   ↓
Outro sistema corporativo

Observe o detalhe, meu caro Watson.

O aplicativo móvel pode ter sido escrito em Kotlin ou Swift.

A API pode utilizar Java, Node.js ou outra tecnologia.

A aplicação pode estar parcialmente executando em cloud ou em containers.

Mas a regra crítica de negócio pode continuar dentro de um programa COBOL que existe há décadas.

Isso não significa atraso.

Significa reutilização de um ativo confiável.

Se um programa calcula corretamente juros, impostos, limites, tarifas, seguros ou benefícios há vinte anos, talvez seja mais seguro integrá-lo a novas interfaces do que reescrever tudo apenas para seguir uma moda tecnológica.

O mainframe deixou de ser uma ilha

Antigamente, era comum imaginar o mainframe como uma grande fortaleza.

Tudo acontecia dentro dela.

Os usuários acessavam terminais.

Os sistemas trocavam arquivos.

Os jobs eram executados em horários definidos.

Grande parte da integração permanecia dentro dos limites da empresa.

Hoje, o mainframe faz parte de um ecossistema híbrido.

Ele pode conversar com:

  • aplicações web;

  • sistemas em cloud;

  • APIs REST;

  • ferramentas de analytics;

  • plataformas de inteligência artificial;

  • sistemas distribuídos;

  • aplicações móveis;

  • microsserviços;

  • ambientes Linux;

  • filas de mensagens;

  • plataformas de automação.

O mainframe não desapareceu.

Ele deixou de trabalhar sozinho.

CICS: do terminal 3270 para a API

Para o programador COBOL iniciante, é importante entender o papel do CICS.

CICS é um monitor de processamento transacional.

Ele permite que milhares de usuários e aplicações executem transações com rapidez, controle e segurança.

No passado, muitas transações CICS eram iniciadas diretamente por uma tela 3270.

O usuário digitava dados, pressionava Enter e o programa COBOL era executado.

Hoje, a mesma lógica pode ser acionada por uma API.

Por exemplo:

  1. Um cliente abre o aplicativo do banco.

  2. Solicita o saldo.

  3. O aplicativo envia uma requisição HTTPS.

  4. Uma API recebe essa solicitação.

  5. A API chama um serviço exposto pelo z/OS Connect.

  6. O serviço aciona uma transação ou programa no CICS.

  7. O programa COBOL consulta o DB2.

  8. O resultado é convertido para JSON.

  9. O aplicativo exibe o saldo ao usuário.

Para o cliente, tudo aconteceu em segundos.

Para o programa COBOL, talvez a operação continue sendo uma consulta conhecida há muitos anos.

A entrada mudou.

A saída mudou.

A regra central permaneceu.

DB2, VSAM e o valor dos dados

Todo bom detetive sabe que uma pista isolada não resolve um caso.

É preciso saber onde ela está armazenada e como se relaciona com outras informações.

No mainframe, grande parte das pistas está nos dados.

O DB2 continua sendo um dos pilares de inúmeros sistemas corporativos. Ele oferece recursos de banco de dados relacional, controle transacional, concorrência, integridade e recuperação.

O VSAM também continua presente, especialmente em aplicações que utilizam arquivos estruturados de alta performance.

Um programador COBOL iniciante deve compreender pelo menos quatro conceitos básicos:

1. KSDS

O Key Sequenced Data Set organiza registros por chave.

É semelhante à ideia de acessar um cadastro por um código identificador.

2. ESDS

O Entry Sequenced Data Set armazena registros na ordem em que foram incluídos.

3. RRDS

O Relative Record Data Set permite acessar registros por número relativo.

4. LDS

O Linear Data Set é utilizado como estrutura de armazenamento de baixo nível por alguns produtos.

Mesmo com bancos modernos, APIs e cloud, esses conceitos continuam importantes porque muitos sistemas críticos dependem deles.

MQ: o mensageiro silencioso

Imagine que Sherlock Holmes precisa enviar uma mensagem confidencial para o inspetor Lestrade.

Ele poderia entregar pessoalmente.

Mas também poderia utilizar um mensageiro confiável, garantindo que a mensagem chegasse ao destino mesmo que Lestrade não estivesse disponível naquele instante.

O MQ desempenha papel semelhante.

Uma aplicação envia uma mensagem para uma fila.

Outra aplicação consome essa mensagem quando estiver pronta.

Isso permite desacoplar sistemas.

Por exemplo:

Programa COBOL
   ↓
Fila MQ
   ↓
Sistema antifraude
   ↓
Fila de resposta
   ↓
Outro programa

O produtor da mensagem não precisa conhecer todos os detalhes do consumidor.

Ele precisa apenas respeitar o formato combinado.

Essa arquitetura ajuda a integrar mainframe, cloud, sistemas distribuídos e aplicações externas.

O batch não morreu

Existe uma espécie de lenda urbana na tecnologia: a ideia de que tudo precisa acontecer online e em tempo real.

Não é verdade.

Muitas tarefas continuam sendo mais eficientes em processamento batch.

Entre elas:

  • fechamento contábil;

  • geração de extratos;

  • cálculo de folha de pagamento;

  • faturamento;

  • conciliação;

  • processamento de grandes volumes;

  • cálculo de impostos;

  • liquidação financeira;

  • atualização de cadastros;

  • geração de relatórios.

Um job JCL pode executar vários programas em sequência:

//FECHAMTO JOB ...
//STEP01   EXEC PGM=VALIDA
//ENTRADA  DD DSN=EMPRESA.ARQUIVO.ENTRADA,DISP=SHR
//SAIDA    DD DSN=EMPRESA.ARQUIVO.VALIDADO,
//            DISP=(NEW,CATLG,DELETE)
//STEP02   EXEC PGM=CALCULA
//STEP03   EXEC PGM=ATUALIZA

O princípio continua familiar.

Cada etapa realiza uma parte do trabalho.

O resultado de uma etapa pode alimentar a próxima.

O JES controla a execução.

As mensagens podem ser analisadas pelo SDSF.

O programador ainda precisa investigar códigos de retorno, abends, arquivos, condições e dependências.

Sherlock Holmes entra no SDSF

Suponha que um job terminou com erro.

O iniciante pode olhar para a tela e pensar:

“O programa quebrou.”

O analista experiente pensa diferente.

Ele pergunta:

  • Qual step falhou?

  • Qual foi o código de retorno?

  • Houve abend?

  • O arquivo existia?

  • O DISP estava correto?

  • O espaço foi suficiente?

  • O programa encontrou o registro esperado?

  • O SQLCODE indica erro de banco?

  • O problema aconteceu antes ou depois da alteração?

  • Qual mensagem apareceu primeiro?

Essa é a mentalidade investigativa.

Um erro observado no final nem sempre começou no final.

Talvez o STEP03 tenha falhado porque o STEP02 gerou um arquivo vazio.

Talvez o STEP02 tenha gerado um arquivo vazio porque o STEP01 utilizou uma data incorreta.

Talvez a data incorreta tenha sido enviada por um sistema externo.

O verdadeiro culpado pode estar muitos passos antes da mensagem final.

Elementar.

Git, DevOps e pipelines

Uma das maiores mudanças para quem retorna ao mainframe está no processo de desenvolvimento.

No modelo tradicional, o código COBOL podia permanecer em bibliotecas PDS ou PDSE, controlado por ferramentas corporativas de gerenciamento de mudanças.

Hoje, muitas empresas integram o mainframe com Git.

Isso permite trabalhar com conceitos como:

  • repositório;

  • branch;

  • commit;

  • merge;

  • pull request;

  • code review;

  • pipeline;

  • integração contínua;

  • entrega contínua.

Um fluxo moderno pode ser:

Desenvolvedor altera o COBOL
   ↓
Cria um commit
   ↓
Envia para o Git
   ↓
Pipeline inicia
   ↓
Código é compilado
   ↓
Testes são executados
   ↓
Qualidade é verificada
   ↓
Artefatos são preparados
   ↓
Implantação segue para o ambiente correto

O programa COBOL continua sendo COBOL.

O que mudou foi a estrada utilizada para levá-lo do desenvolvimento até a produção.

DevOps não é uma ferramenta

Essa distinção é importante.

DevOps não é apenas Jenkins.

Não é apenas Git.

Não é apenas pipeline.

DevOps é uma forma de organizar pessoas, processos e tecnologia para entregar software com maior frequência, segurança e rastreabilidade.

No contexto mainframe, isso pode envolver:

  • versionamento de código;

  • automação de builds;

  • testes automatizados;

  • análise de qualidade;

  • controle de mudanças;

  • infraestrutura como código;

  • observabilidade;

  • colaboração entre desenvolvimento e operação.

Para quem está retornando, não é necessário aprender tudo de uma vez.

O importante é compreender o fluxo.

Passo a passo para quem deseja voltar ao mainframe

Agora chegamos à parte prática da investigação.

Passo 1: recupere os fundamentos

Revise:

  • estrutura de programas COBOL;

  • PIC;

  • níveis de dados;

  • COMP e COMP-3;

  • tabelas;

  • REDEFINES;

  • PERFORM;

  • EVALUATE;

  • arquivos;

  • subprogramas;

  • tratamento de erros.

Não tente começar pelas ferramentas mais modernas sem recuperar a base.

Passo 2: revise JCL

Estude:

  • JOB;

  • EXEC;

  • DD;

  • DISP;

  • DSN;

  • SPACE;

  • DCB;

  • COND;

  • IF/THEN/ELSE;

  • PROC;

  • parâmetros simbólicos;

  • GDG;

  • utilitários.

O JCL continua sendo essencial para o processamento batch.

Passo 3: volte ao TSO/ISPF e SDSF

Relembre:

  • navegação no ISPF;

  • edição de membros;

  • manipulação de data sets;

  • submissão de jobs;

  • consulta de spool;

  • interpretação de mensagens;

  • análise de códigos de retorno.

Passo 4: escolha uma trilha de banco ou arquivo

Você pode aprofundar:

  • DB2 e SQL;

  • VSAM;

  • IMS DB.

Para muitos profissionais, DB2 é um excelente ponto de partida.

Passo 5: estude CICS

Compreenda:

  • transação;

  • programa;

  • COMMAREA;

  • canais e containers;

  • mapas BMS;

  • LINK;

  • XCTL;

  • START;

  • READ;

  • WRITE;

  • REWRITE;

  • DELETE;

  • códigos RESP.

Passo 6: aprenda integração moderna

Estude os conceitos de:

  • API REST;

  • JSON;

  • HTTP;

  • z/OS Connect;

  • MQ;

  • autenticação;

  • microsserviços.

Não é necessário virar especialista em desenvolvimento web.

É necessário entender como o COBOL participa do fluxo.

Passo 7: entre no mundo Git

Pratique:

git clone
git checkout -b
git add
git commit
git push
git pull

Entenda a lógica de branches e pull requests.

Passo 8: conheça pipelines

Aprenda o conceito antes da ferramenta.

Pergunte:

  • O que inicia o pipeline?

  • Como o código é compilado?

  • Onde os testes executam?

  • Como o artefato é promovido?

  • Quem aprova a mudança?

  • Como ocorre o rollback?

Passo 9: use inteligência artificial como assistente

A IA pode ajudar a:

  • explicar um trecho COBOL;

  • documentar código;

  • sugerir casos de teste;

  • analisar mensagens de erro;

  • criar exemplos;

  • comparar comandos;

  • explicar JCL;

  • revisar SQL.

Mas existe uma regra de ouro:

Nunca aceite uma resposta técnica sem validar contexto, sintaxe, impacto e segurança.

A IA é Watson.

Você continua sendo Sherlock Holmes.

A experiência ainda vale?

Vale muito.

Talvez mais do que antes.

Um profissional experiente sabe que alterar uma linha de código pode afetar:

  • outro programa;

  • outro job;

  • outro arquivo;

  • uma interface;

  • um relatório;

  • uma regra fiscal;

  • uma rotina contábil;

  • um processo noturno;

  • um sistema externo;

  • uma operação de negócio.

Essa percepção não nasce apenas em cursos.

Ela nasce de incidentes, projetos, viradas de produção, abends, reuniões, erros, acertos e noites acompanhando processamento.

O conhecimento técnico pode ser atualizado.

A maturidade sistêmica leva tempo para ser construída.

Curiosidade: por que o mainframe sobreviveu?

Porque ele resolve problemas difíceis.

Entre suas características estão:

  • alta disponibilidade;

  • segurança;

  • escalabilidade;

  • processamento transacional;

  • grande capacidade de entrada e saída;

  • gestão de cargas;

  • confiabilidade;

  • compatibilidade;

  • recuperação;

  • governança.

Empresas não mantêm mainframes por nostalgia.

Mantêm porque substituir sistemas críticos é caro, arriscado e complexo.

Além disso, a plataforma continua evoluindo.

Easter egg: o programa que ninguém queria tocar

Em quase toda grande empresa existe um programa lendário.

Ele possui milhares de linhas.

Foi escrito por alguém que se aposentou.

Tem comentários misteriosos.

Contém parágrafos chamados:

9000-ROTINA-ESPECIAL.

Ninguém sabe exatamente por que a rotina é especial.

Dentro dela há uma condição:

IF WS-CODIGO = 37
   MOVE 'S' TO WS-LIBERA
END-IF.

Todos perguntam:

“Por que 37?”

A documentação não explica.

O analista antigo diz:

“Não mexa nisso. Foi criado depois do incidente de 1998.”

Esse é o verdadeiro folclore mainframe.

Mas também revela um problema sério: conhecimento não documentado.

O profissional moderno deve preservar a confiabilidade do legado, mas também melhorar documentação, testes e rastreabilidade.

Dicas para o programador COBOL iniciante

Primeira dica: não tenha vergonha de perguntar.

Mainframe é um ecossistema enorme. Ninguém domina tudo.

Segunda dica: aprenda a ler antes de querer escrever.

Grande parte do trabalho será compreender programas existentes.

Terceira dica: siga os dados.

Quando estiver investigando um problema, acompanhe:

  • entrada;

  • transformação;

  • armazenamento;

  • saída.

Quarta dica: leia as mensagens completas.

Não olhe apenas para a última linha do erro.

Quinta dica: entenda o negócio.

Um programa não existe por causa da tecnologia. Ele existe para cumprir uma regra.

Sexta dica: evite alterações desnecessárias.

Em sistemas críticos, elegância não vale mais do que previsibilidade.

Sétima dica: teste cenários extremos.

Considere:

  • zeros;

  • valores negativos;

  • campos vazios;

  • datas inválidas;

  • duplicidade;

  • arquivo inexistente;

  • registro não encontrado;

  • SQLCODE inesperado;

  • indisponibilidade de serviço.

Oitava dica: documente o motivo.

O código mostra o que foi feito.

O comentário deve explicar por que foi feito.

O retorno não é um recomeço do zero

Quem saiu do mainframe há quinze anos não retorna como iniciante absoluto.

Retorna como alguém que já conhece parte do mapa.

Será necessário atualizar ferramentas, processos e integrações.

Mas a capacidade de analisar sistemas, compreender regras e trabalhar com responsabilidade continua presente.

Talvez você precise aprender Git.

Talvez precise entender APIs.

Talvez precise utilizar VS Code.

Talvez precise estudar pipelines.

Mas ainda reconhecerá o cheiro de um job em produção, o silêncio desconfortável de um código de retorno inesperado e a satisfação de encontrar a causa de um erro escondida em uma variável inicializada incorretamente.

Conclusão: o último mistério de Baker Street

Sherlock Holmes colocaria todas as pistas sobre a mesa:

  • o COBOL continua vivo;

  • o CICS continua processando transações;

  • o DB2 continua armazenando dados críticos;

  • o batch continua movimentando empresas;

  • o JCL continua organizando execuções;

  • o mainframe agora conversa com APIs, cloud e aplicações móveis;

  • Git e DevOps modernizaram o processo;

  • a inteligência artificial acelerou o aprendizado;

  • a experiência continua sendo um ativo valioso.

Então ele concluiria:

“O mainframe não permaneceu no passado. Ele trouxe o passado consigo, incorporou o presente e continua se preparando para o futuro.”

Para o programador COBOL iniciante, essa é uma excelente notícia.

Você está entrando em um ambiente que valoriza fundamentos.

Para o profissional que deseja retornar, a notícia é ainda melhor.

Você não perdeu tudo o que sabia.

Seu conhecimento apenas precisa ser recompilado com novas opções, testado em um novo pipeline e integrado a um ecossistema mais moderno.

No Bellacosa Mainframe, diríamos que a carreira não sofreu um ABEND definitivo.

Ela apenas ficou aguardando um novo EXEC.

E quando esse momento chegar, talvez você descubra que a plataforma mudou bastante ao redor de você, mas ainda reconhece perfeitamente os caminhos internos do sistema.

Afinal, meu caro Watson, tecnologias podem mudar de interface.

Mas bons profissionais continuam seguindo pistas, protegendo dados, compreendendo negócios e mantendo o mundo funcionando enquanto todos dormem.

Um Café no Bellacosa Mainframe — onde cada SYSOUT conta uma história, cada ABEND esconde um mistério e todo programa COBOL antigo pode guardar uma pista sobre o futuro.

 

sábado, 18 de maio de 2024

Mainframe — O Gigante que Atravessou a Fronteira Final da Computação

Bellacosa Mainframe e o gigante que atravessou a fronteira final da computacao

☕ Um Café no Bellacosa Mainframe

Mainframe — O Gigante que Atravessou a Fronteira Final da Computação

Diário de bordo, data estelar 2024.05.18

A nave corporativa atravessa uma região silenciosa do espaço digital.

Nos monitores, milhões de transações surgem e desaparecem em frações de segundo. Pagamentos são autorizados. Reservas são confirmadas. Salários são calculados. Apólices são atualizadas. Pedidos são processados. Transferências bancárias cruzam redes inteiras.

Nenhum alarme soa.

Nenhuma explosão ilumina a ponte de comando.

Tudo simplesmente funciona.

No centro dessa operação existe uma máquina que muita gente acredita pertencer ao passado.

O mainframe.

Para o passageiro comum da galáxia tecnológica, a palavra “mainframe” costuma gerar uma imagem antiga: uma sala enorme e gelada, operadores de gravata, fitas magnéticas girando, cartões perfurados empilhados e painéis repletos de luzes piscando.

É uma imagem quase cinematográfica.

Parece o computador de bordo de uma nave criada durante os primeiros anos da corrida espacial. Um equipamento gigantesco, pesado e misterioso, cercado por técnicos que observam seus indicadores como se estivessem tentando impedir a destruição de um planeta.

Essa imagem não está completamente errada.

O erro está em acreditar que a história terminou ali.

O mainframe não permaneceu congelado no tempo. Ele mudou de forma, de arquitetura, de capacidade e de função. Diminuiu por fora, cresceu por dentro e aprendeu a conviver com praticamente todas as revoluções tecnológicas que surgiram depois dele.

Minicomputadores.

Computadores pessoais.

Redes locais.

Internet.

Servidores distribuídos.

Máquinas virtuais.

Nuvem.

APIs.

Containers.

Inteligência artificial.

Em vez de desaparecer, o mainframe incorporou novas tecnologias e continuou executando sua missão principal: processar grandes volumes de trabalho com segurança, confiabilidade e disponibilidade.

Portanto, jovem padawan do COBOL — ou, neste caso, novo cadete da Frota Estelar do processamento corporativo — prepare-se.

Vamos entrar na sala de máquinas.



1. O mito do dinossauro tecnológico

Quando uma tecnologia permanece em uso durante muitas décadas, ela corre o risco de ser chamada de ultrapassada.

Isso acontece porque as pessoas confundem idade com obsolescência.

Uma tecnologia antiga é aquela que surgiu há muito tempo.

Uma tecnologia obsoleta é aquela que deixou de atender às necessidades para as quais foi criada.

Essas duas coisas não são iguais.

A roda é antiga, mas não é obsoleta.

A escrita é antiga, mas não é obsoleta.

O sistema bancário é antigo, mas continua sendo atualizado.

O COBOL surgiu no final da década de 1950, mas ainda é usado porque resolve problemas de negócio que continuam existindo: cálculo, registro, controle, processamento de arquivos, atualização de bancos de dados e execução de transações.

O mesmo raciocínio vale para o mainframe.

Ele não sobreviveu porque as empresas sentem nostalgia de terminais verdes. Sobreviveu porque continua resolvendo problemas importantes.

Imagine uma instituição financeira processando milhões de operações diariamente.

Cada operação precisa ser:

  • autorizada corretamente;

  • registrada sem duplicidade;

  • protegida contra acesso indevido;

  • concluída dentro do tempo esperado;

  • recuperada em caso de falha;

  • auditável posteriormente.

Não basta executar rapidamente.

É preciso executar corretamente.

Essa diferença é fundamental.

Um sistema doméstico pode travar e ser reiniciado.

Um sistema bancário não pode simplesmente dizer:

“Desculpe, perdemos algumas transferências. Reinicie o aplicativo e tente novamente.”

Em ambientes críticos, disponibilidade e integridade não são recursos adicionais. São parte central da arquitetura.

O mainframe foi desenvolvido justamente para esse tipo de missão.


2. Antes do nome: quando os dados começaram a vencer os humanos

Antes de existir o mainframe, já existia o problema que faria nascer o mainframe.

O volume de informações crescia mais rapidamente do que a capacidade humana de organizá-las.

Governos precisavam realizar censos.

Empresas precisavam calcular salários.

Ferrovias precisavam controlar horários, cargas e passageiros.

Seguradoras precisavam manter registros de apólices.

Bancos precisavam registrar depósitos, empréstimos e saldos.

Exércitos precisavam cuidar de logística, suprimentos e pessoal.

Durante muito tempo, essas atividades foram realizadas manualmente. Exércitos inteiros de funcionários preenchiam formulários, copiavam números, conferiam tabelas e arquivavam documentos.

O problema era simples de compreender e terrível de resolver:

Mais pessoas
+
Mais empresas
+
Mais transações
+
Mais documentos
=
Mais complexidade

Em determinado momento, contratar mais funcionários já não resolvia o problema.

Era preciso automatizar.

Um dos acontecimentos mais importantes dessa história foi o uso de cartões perfurados no processamento do Censo dos Estados Unidos de 1890.

O cartão perfurado representava informações por meio de posições físicas. Um furo em determinado ponto podia significar idade, estado civil, profissão, região ou outra característica.

A máquina lia os furos e contabilizava os dados.

Isso parece primitivo hoje, mas representou uma mudança monumental.

A informação deixava de existir apenas como texto compreendido por humanos. Ela podia ser codificada de maneira que uma máquina também conseguisse processá-la.

Era o início de uma longa viagem.

Curiosidade de bordo

O cartão perfurado influenciou profundamente a cultura da computação.

Durante décadas, programadores escreviam seus programas em folhas de codificação. Depois, operadores perfuravam cada linha em um cartão.

Um programa COBOL com 500 linhas poderia significar 500 cartões físicos.

Agora imagine derrubar o baralho no chão.

Esse era um tipo de “falha de ordenação” muito mais dramático do que esquecer um ORDER BY.



3. O dia em que o computador arrumou um emprego

Os primeiros computadores eletrônicos eram frequentemente associados à ciência, à guerra ou à pesquisa.

Eles calculavam trajetórias, tabelas matemáticas e simulações.

Entretanto, o verdadeiro ponto de transformação aconteceu quando o computador deixou o laboratório e entrou na empresa.

O computador arrumou um emprego.

Passou a cuidar de tarefas administrativas e comerciais, como:

  • folha de pagamento;

  • faturamento;

  • contas a receber;

  • inventário;

  • processamento de cheques;

  • emissão de apólices;

  • controle de clientes;

  • reservas aéreas.

Esse momento é essencial para entender o mainframe.

A empresa não precisava apenas de uma calculadora rápida. Precisava de um sistema capaz de executar operações repetitivas, confiáveis e organizadas.

É nesse ambiente que linguagens como o COBOL ganham importância.

COBOL significa:

Common Business-Oriented Language

Ou seja:

Linguagem Comum Orientada a Negócios

Desde o início, sua missão era permitir que regras empresariais fossem representadas de maneira relativamente legível.

Veja um pequeno exemplo:

IF SALDO-CONTA >= VALOR-SAQUE
    SUBTRACT VALOR-SAQUE FROM SALDO-CONTA
    MOVE "SAQUE AUTORIZADO" TO MENSAGEM
ELSE
    MOVE "SALDO INSUFICIENTE" TO MENSAGEM
END-IF

Mesmo alguém com pouca experiência consegue perceber a lógica.

Essa clareza ajudou o COBOL a se tornar uma das principais linguagens do processamento empresarial.

Dica para o iniciante

Ao estudar COBOL, não observe apenas a sintaxe.

Pergunte sempre:

“Qual regra de negócio este programa representa?”

O verdadeiro poder do COBOL não está no MOVE, no PERFORM ou no IF.

Está na capacidade de transformar regras empresariais em processos executáveis.



4. De onde veio a palavra mainframe?

Nos primeiros grandes computadores, os componentes eram instalados em diferentes gabinetes, estruturas e armações metálicas.

O termo “main frame”, ou estrutura principal, passou a ser associado ao gabinete central que abrigava componentes importantes do sistema, especialmente a unidade central de processamento.

Com o tempo, a expressão deixou de representar apenas uma parte física e passou a identificar uma categoria inteira de computadores.

Entretanto, definir mainframe apenas pelo tamanho seria um erro.

Um mainframe moderno não precisa ocupar uma sala inteira.

O que caracteriza a plataforma é principalmente sua arquitetura e sua capacidade de lidar com cargas de trabalho críticas em grande escala.

Entre suas características estão:

  • processamento intenso de transações;

  • grande capacidade de entrada e saída;

  • alta disponibilidade;

  • tolerância a falhas;

  • isolamento entre cargas de trabalho;

  • segurança integrada;

  • capacidade de virtualização;

  • gerenciamento sofisticado de recursos.

Portanto, mainframe não significa simplesmente “computador grande”.

Significa uma plataforma projetada para sustentar operações centrais de grandes organizações.



5. A guerra dos gigantes

A história dos mainframes não pertence a uma única empresa.

Durante várias décadas, fabricantes disputaram o domínio do mercado de computação corporativa.

Entre os nomes mais importantes estavam:

  • IBM;

  • UNIVAC;

  • Burroughs;

  • NCR;

  • Honeywell;

  • Control Data Corporation;

  • RCA;

  • Fujitsu;

  • Hitachi;

  • Siemens;

  • ICL.

Esse período ficou conhecido informalmente por diversas classificações da indústria. Uma das mais famosas agrupava os grandes concorrentes da IBM sob a expressão “BUNCH”:

B — Burroughs
U — UNIVAC
N — NCR
C — Control Data
H — Honeywell

Cada fabricante possuía sua própria visão de arquitetura.

Não existia um padrão universal.

Um programa criado para determinada máquina normalmente não era transferido facilmente para outra.

Os sistemas possuíam diferenças em:

  • conjunto de instruções;

  • formato de dados;

  • tamanho de palavra;

  • periféricos;

  • sistemas operacionais;

  • compiladores;

  • ferramentas;

  • procedimentos de operação.

Escolher um computador era quase como escolher uma civilização inteira.

A empresa não comprava apenas uma máquina.

Comprava um ecossistema.

Easter egg da Frota

Essa disputa lembra as grandes espécies tecnológicas de uma galáxia fictícia.

Cada fabricante tinha seu idioma, seus protocolos, sua engenharia e sua filosofia.

Migrar de uma arquitetura para outra podia ser tão complicado quanto pedir para uma nave romulana usar peças klingons durante uma batalha.



6. A revolução do System/360

Um dos acontecimentos mais importantes na história da computação empresarial foi o lançamento da família IBM System/360 em 1964.

A ideia era criar uma linha compatível de computadores.

Modelos diferentes poderiam atender empresas de tamanhos e necessidades distintas, mas compartilhariam uma arquitetura comum.

Isso permitia que uma organização começasse com uma configuração menor e migrasse para outra mais potente sem abandonar completamente seus programas e conhecimentos.

Essa compatibilidade foi revolucionária.

O número 360 sugeria cobertura completa, como os 360 graus de um círculo.

A proposta era atender diferentes tipos de processamento:

  • científico;

  • comercial;

  • governamental;

  • industrial.

Para quem trabalha com mainframe hoje, essa decisão histórica continua importante.

Grande parte da força da plataforma vem da ideia de continuidade.

As empresas investiram décadas desenvolvendo programas, bases de dados e regras de negócio.

Jogar tudo fora a cada nova geração de hardware seria economicamente inviável.

O mainframe evoluiu preservando compatibilidade sempre que possível.

Isso não significa ausência de mudança.

Significa evolução controlada.


7. Quando o software aprendeu a fazer muitas coisas ao mesmo tempo

Nos primeiros sistemas, era comum processar um trabalho por vez.

O usuário entregava um conjunto de cartões.

O operador carregava o programa.

A máquina executava.

O resultado era impresso.

Depois, o próximo trabalho começava.

Esse modelo ficou conhecido como processamento em lote, ou batch.

O batch continua existindo e sendo extremamente importante. Entretanto, os primeiros ambientes desperdiçavam tempo porque a CPU frequentemente aguardava operações lentas de entrada e saída.

Imagine uma CPU capaz de executar milhares ou milhões de instruções, esperando uma leitora de cartões ou uma impressora terminar sua tarefa.

Era como usar o motor de dobra de uma nave apenas para acender as luzes da cabine.

A solução foi permitir que vários trabalhos permanecessem no sistema ao mesmo tempo.

Enquanto um job aguardava uma operação de disco ou fita, outro poderia utilizar o processador.

Esse conceito ficou conhecido como multiprogramação.

De maneira simplificada:

JOB A usa CPU
JOB A espera disco
JOB B usa CPU
JOB B espera fita
JOB C usa CPU

O sistema operacional passa a organizar essa alternância.

Assim surgem funções fundamentais:

  • escalonamento;

  • gerenciamento de memória;

  • controle de prioridades;

  • proteção entre programas;

  • tratamento de interrupções;

  • alocação de dispositivos.

Hoje consideramos tudo isso normal.

Na época, era uma mudança gigantesca.


8. Time-sharing: uma máquina, muitos usuários

Outro avanço decisivo foi o compartilhamento de tempo, ou time-sharing.

A ideia era dividir pequenas parcelas do tempo do processador entre diferentes usuários.

Cada pessoa, diante de um terminal, tinha a impressão de estar usando o computador individualmente.

Na realidade, o sistema alternava rapidamente entre diferentes sessões.

Imagine três usuários:

Usuário A recebe alguns milissegundos
Usuário B recebe alguns milissegundos
Usuário C recebe alguns milissegundos
Depois o ciclo recomeça

Como essa alternância acontece rapidamente, cada usuário percebe uma experiência interativa.

Esse conceito ajudou a transformar o computador.

Ele deixou de ser apenas uma máquina que recebia lotes de trabalho e devolvia resultados horas depois.

Passou a responder diretamente às pessoas.

Para um programador COBOL, essa evolução é importante porque ajuda a compreender a diferença entre dois universos:

Processamento batch
e
Processamento online

No batch, o programa normalmente lê grandes volumes de dados e produz atualizações ou relatórios.

No online, o programa responde a uma solicitação imediata, frequentemente por meio de monitores transacionais como o CICS.


9. Virtualização: uma máquina física parecendo várias

Uma das maiores contribuições do mundo mainframe foi o amadurecimento da virtualização.

Virtualizar significa permitir que um único computador físico se comporte como vários computadores independentes.

Cada ambiente virtual pode possuir:

  • sistema operacional;

  • memória;

  • usuários;

  • aplicações;

  • configurações;

  • recursos controlados.

Isso permite melhor aproveitamento do hardware e maior isolamento.

De maneira simplificada:

Hardware físico
        |
        +-- Máquina virtual A
        |
        +-- Máquina virtual B
        |
        +-- Máquina virtual C

Hoje a virtualização é comum em servidores, clouds e ambientes de desenvolvimento.

Entretanto, o mainframe já utilizava esse conceito em grande escala muito antes de ele se tornar moda no restante da indústria.

Curiosidade

Quando alguém diz que a virtualização nasceu com os servidores modernos, um veterano de mainframe provavelmente levanta uma sobrancelha.

Talvez não diga nada.

Mas em pensamento estará executando:

IF AFIRMACAO = "VIRTUALIZACAO E NOVA"
    DISPLAY "REGISTRO HISTORICO INCONSISTENTE"
END-IF

10. O habitat da máquina

Comprar um grande computador era apenas o começo.

Era preciso construir um mundo para mantê-lo funcionando.

Os antigos centros de processamento de dados exigiam uma infraestrutura cuidadosamente planejada.

Piso elevado

O piso elevado criava um espaço sob a sala.

Esse espaço podia ser usado para:

  • passagem de cabos;

  • distribuição de ar;

  • organização elétrica;

  • acesso à infraestrutura.

O chão do CPD não era apenas um piso.

Era parte do sistema.

Refrigeração

Computadores geram calor.

Os grandes equipamentos antigos geravam muito calor.

Era necessário controlar:

  • temperatura;

  • umidade;

  • circulação de ar;

  • pontos quentes;

  • estabilidade ambiental.

Algumas instalações utilizavam sistemas de água gelada.

Energia

Um ambiente crítico precisava de energia confiável.

Isso envolvia:

  • alimentação elétrica dedicada;

  • estabilização;

  • nobreaks;

  • geradores;

  • circuitos redundantes;

  • procedimentos de contingência.

Cabeamento

Os cabos eram grossos, numerosos e muitas vezes percorriam grandes distâncias.

Conectar processadores, controladores, discos, fitas, impressoras e terminais exigia planejamento.

Segurança física

O acesso ao CPD era controlado.

Não era uma sala em que qualquer funcionário entrava para tomar café.

Existiam regras, registros, permissões e procedimentos.

O ambiente representava o centro nervoso da empresa.


11. Discos, fitas e o universo do armazenamento

O armazenamento também mudou profundamente.

Os primeiros discos possuíam capacidades minúsculas quando comparadas aos padrões atuais, mas eram enormes fisicamente.

Unidades de disco podiam ocupar gabinetes inteiros.

As fitas magnéticas eram essenciais para:

  • backup;

  • arquivamento;

  • transporte de dados;

  • processamento sequencial;

  • retenção histórica.

No mundo COBOL, ainda é importante compreender a lógica sequencial.

Muitos programas processam arquivos em ordem:

Ler registro
Validar registro
Processar registro
Gravar saída
Ler próximo registro

Esse padrão continua extremamente eficiente para grandes volumes.

Um exemplo conceitual em COBOL:

PERFORM UNTIL FIM-ARQUIVO = "S"
    READ ARQUIVO-ENTRADA
        AT END
            MOVE "S" TO FIM-ARQUIVO
        NOT AT END
            PERFORM PROCESSAR-REGISTRO
    END-READ
END-PERFORM

O programa trabalha registro por registro até atingir o final do arquivo.

Essa lógica pode parecer simples, mas é usada em processos que movimentam milhões de registros.


12. IBM 3090, IBM 9021 e o lendário “agazão”

Para muitos profissionais brasileiros, máquinas como o IBM 3090 e o IBM 9021 não são apenas nomes em livros.

São parte da memória profissional.

Representavam grandes configurações instaladas em ambientes onde cada detalhe importava.

O operador observava consoles, unidades, filas de jobs e mensagens do sistema.

O ruído do ambiente, o ar frio e a presença física dos equipamentos criavam uma sensação difícil de reproduzir atualmente.

Em alguns ambientes, determinadas configurações eram chamadas informalmente de “agazão”.

Apelidos desse tipo fazem parte da cultura de operação.

Toda equipe acaba criando um vocabulário próprio.

Máquinas recebem nomes.

Salas ganham apelidos.

Procedimentos viram expressões.

Erros históricos transformam-se em lendas internas.

Easter egg do veterano

Todo CPD antigo possuía pelo menos uma história que começava assim:

“Isso aconteceu no turno da madrugada, mas ninguém sabe exatamente quem estava no console.”

Normalmente, três pessoas contam versões diferentes.

Todas afirmam que salvaram o sistema.


13. O mainframe não é apenas hardware

Um erro comum do iniciante é pensar no mainframe somente como uma máquina.

Na realidade, estamos falando de uma plataforma completa.

Ela envolve:

  • hardware;

  • sistema operacional;

  • subsistemas;

  • linguagens;

  • compiladores;

  • bancos de dados;

  • monitores transacionais;

  • ferramentas de segurança;

  • ferramentas operacionais;

  • redes;

  • armazenamento;

  • processos empresariais.

Em um ambiente z/OS, por exemplo, você pode encontrar:

  • JES2 para gerenciamento de jobs;

  • TSO/E para interação com o sistema;

  • ISPF para navegação e desenvolvimento;

  • CICS para processamento transacional;

  • Db2 para banco de dados relacional;

  • IMS para banco de dados e transações;

  • RACF para segurança;

  • DFSMS para gerenciamento de armazenamento;

  • SMP/E para manutenção de software;

  • WLM para gerenciamento de cargas de trabalho.

Cada componente possui uma função.

Juntos, formam uma espécie de nave interestelar corporativa.

A CPU é importante, mas não viaja sozinha.


14. O caminho de um programa COBOL

Para o iniciante, o ambiente mainframe pode parecer enorme e confuso.

A melhor forma de aprender é seguir o caminho de um programa.

Vamos imaginar um programa batch simples.

Passo 1 — Escrever o código-fonte

O programa COBOL é armazenado em um dataset ou em um repositório integrado ao fluxo de desenvolvimento.

Passo 2 — Compilar

O compilador analisa o código.

Ele verifica:

  • sintaxe;

  • definição de dados;

  • comandos;

  • referências;

  • estruturas.

Se houver erros, produz mensagens.

Passo 3 — Link-edit

Após a compilação, o código objeto precisa ser transformado em um módulo executável.

Esse processo cria o load module ou program object.

Passo 4 — Executar com JCL

O JCL informa ao sistema:

  • qual programa executar;

  • quais arquivos usar;

  • onde gravar resultados;

  • quais recursos são necessários.

Exemplo simplificado:

//JOB01    JOB ...
//STEP01   EXEC PGM=PGMCOBOL
//ENTRADA  DD DSN=EMPRESA.ARQUIVO.ENTRADA,DISP=SHR
//SAIDA    DD DSN=EMPRESA.ARQUIVO.SAIDA,
//            DISP=(NEW,CATLG,DELETE)
//SYSOUT    DD SYSOUT=*

Passo 5 — Acompanhar o job

O job é enviado ao JES.

Depois, o programador consulta:

  • retorno;

  • mensagens;

  • spool;

  • códigos de condição;

  • possíveis abends.

Passo 6 — Validar o resultado

Não basta o job terminar com código zero.

É necessário confirmar que o resultado está correto.

Essa é uma lição importante:

Execução técnica bem-sucedida
não significa necessariamente
resultado de negócio correto

Um programa pode terminar sem erro e ainda calcular valores errados.



15. Batch e online: duas missões diferentes

No processamento batch, o sistema executa um conjunto de tarefas sem interação contínua com o usuário.

Exemplos:

  • fechamento diário;

  • cálculo de juros;

  • geração de extratos;

  • processamento de folha;

  • consolidação contábil;

  • atualização de grandes arquivos.

No processamento online, a resposta precisa ser rápida.

Exemplos:

  • consulta de saldo;

  • autorização de pagamento;

  • reserva de passagem;

  • atualização cadastral;

  • emissão de pedido.

Em ambientes mainframe, o CICS tornou-se uma das plataformas mais importantes para processamento online.

Um fluxo moderno pode ser:

Usuário
   ↓
Aplicativo móvel
   ↓
API
   ↓
z/OS Connect
   ↓
CICS
   ↓
Programa COBOL
   ↓
Db2

Perceba algo importante.

O usuário pode estar usando um aplicativo moderno, mas a regra de negócio continua sendo executada por um programa COBOL.

O COBOL não precisa aparecer na tela para continuar sendo essencial.



16. O gigante invisível

Durante décadas, especialistas anunciaram a morte do mainframe.

Primeiro, disseram que seria substituído pelos minicomputadores.

Depois, pelos PCs.

Depois, pelos servidores Unix.

Depois, pela arquitetura cliente-servidor.

Depois, pela internet.

Depois, pela nuvem.

Agora, alguns dizem que será substituído pela inteligência artificial.

Essas previsões geralmente cometem o mesmo erro.

Elas imaginam a tecnologia como uma batalha em que apenas um participante pode sobreviver.

Na prática, novas plataformas não eliminam automaticamente as anteriores.

Elas passam a coexistir.

Um banco pode utilizar:

  • mainframe para transações centrais;

  • cloud para novos serviços digitais;

  • aplicações móveis para clientes;

  • APIs para integração;

  • inteligência artificial para análise;

  • containers para microsserviços.

A arquitetura moderna é híbrida.

O mainframe não precisa executar tudo.

Ele precisa executar muito bem aquilo que está sob sua responsabilidade.


17. Por que o mainframe desapareceu das fotografias?

Nas décadas passadas, o computador era fisicamente visível.

Grandes salas eram fotografadas.

Executivos apareciam ao lado das máquinas.

O equipamento simbolizava modernidade.

Hoje, o usuário vê apenas interfaces.

Aplicativos escondem a infraestrutura.

Quando uma pessoa faz uma transferência, ela enxerga:

  • um botão;

  • um valor;

  • uma confirmação.

Ela não vê:

  • filas de mensagens;

  • logs;

  • bancos de dados;

  • controle de concorrência;

  • criptografia;

  • recuperação;

  • monitoramento;

  • transações distribuídas.

O mainframe tornou-se invisível porque a computação tornou-se invisível.

E isso é um sinal de sucesso.

Uma infraestrutura realmente madura não exige que o usuário compreenda cada componente.

Ela apenas funciona.



18. Segurança: o campo de força da nave

Grandes organizações precisam controlar cuidadosamente quem pode acessar cada recurso.

Em um ambiente mainframe, segurança envolve diferentes níveis:

  • identificação do usuário;

  • autenticação;

  • autorização;

  • proteção de datasets;

  • controle de programas;

  • auditoria;

  • criptografia;

  • segregação de funções.

No z/OS, produtos como RACF ajudam a administrar identidades e permissões.

Um usuário pode ter acesso a determinado dataset, mas não a outro.

Pode executar um programa, mas não alterar sua biblioteca.

Pode visualizar uma transação, mas não aprová-la.

Isso representa o princípio do menor privilégio:

Cada pessoa deve possuir apenas os acessos necessários para realizar sua função.

Para o programador COBOL iniciante, isso significa que muitos erros de acesso não são falhas do programa.

Podem ser problemas de autorização.

Ao receber uma mensagem de acesso negado, não tente resolver copiando dados para qualquer lugar.

Investigue:

  1. Qual recurso está sendo acessado?

  2. Qual usuário executa o job?

  3. Qual permissão é necessária?

  4. O acesso está de acordo com a política?

  5. Quem deve autorizar a mudança?

Segurança não é obstáculo.

É parte do sistema.


19. Disponibilidade: quando parar não é opção

Mainframes são associados a alta disponibilidade porque foram projetados para ambientes onde interrupções podem gerar enormes prejuízos.

Isso envolve:

  • componentes redundantes;

  • manutenção planejada;

  • recuperação de falhas;

  • monitoramento;

  • isolamento de problemas;

  • gerenciamento de workload;

  • procedimentos operacionais.

Alta disponibilidade não significa que nada jamais falhará.

Significa que o sistema é preparado para:

  • detectar;

  • isolar;

  • recuperar;

  • continuar operando.

Essa é uma diferença importante.

A engenharia séria não pressupõe ausência de falhas.

Ela pressupõe que falhas acontecerão e cria mecanismos para reduzir seus efeitos.

Regra de ouro

Um sistema crítico não deve perguntar:

“E se algo falhar?”

Ele deve perguntar:

“Quando algo falhar, como continuaremos funcionando?”



20. WLM: o oficial de operações

Em um ambiente com muitas cargas de trabalho, alguém precisa decidir quais tarefas são mais importantes.

No z/OS, o Workload Manager, ou WLM, ajuda a administrar recursos conforme objetivos definidos.

Imagine:

  • transações bancárias online;

  • relatórios internos;

  • processamento de teste;

  • jobs de desenvolvimento;

  • fechamento contábil.

Todos competem por recursos.

Porém, nem todos possuem a mesma prioridade.

Uma transação de cliente pode precisar de resposta em segundos.

Um relatório interno talvez possa esperar alguns minutos.

O WLM trabalha com metas e importância.

É como um oficial de operações decidindo:

Missão crítica: prioridade máxima
Análise científica: prioridade média
Simulação de treinamento: prioridade menor

O objetivo não é simplesmente tornar tudo rápido.

É entregar o nível de serviço adequado para cada carga.



21. Mainframe e nuvem não são inimigos

A nuvem popularizou ideias como:

  • provisionamento sob demanda;

  • elasticidade;

  • automação;

  • serviços gerenciados;

  • pagamento conforme uso;

  • APIs;

  • infraestrutura programável.

O mainframe possui outra história, mas pode integrar-se a esse universo.

Empresas modernas constroem ambientes híbridos.

Um serviço na nuvem pode chamar uma API que acessa uma transação no mainframe.

Dados do mainframe podem alimentar análises externas.

Aplicações containerizadas podem interagir com programas COBOL.

Pipelines DevOps podem compilar, testar e implantar código mainframe.

A pergunta correta não é:

“Mainframe ou cloud?”

A pergunta correta é:

“Qual plataforma deve executar cada parte do sistema?”

Essa abordagem evita decisões baseadas em moda.



22. APIs: o tradutor universal

Durante muito tempo, sistemas mainframe eram acessados principalmente por terminais ou integrações específicas.

Hoje, APIs permitem expor funções de negócio de maneira padronizada.

Imagine um programa COBOL que consulta o limite de crédito de um cliente.

Essa função pode ser disponibilizada como uma API.

O aplicativo chama:

GET /clientes/123/limite

A camada de integração converte a solicitação.

O programa COBOL executa a regra.

O resultado retorna em JSON.

Exemplo:

{
  "cliente": 123,
  "limite": 7500.00,
  "disponivel": 3250.00
}

O programa COBOL não precisa “virar JavaScript”.

Ele continua executando sua lógica.

A API funciona como um tradutor universal entre diferentes mundos tecnológicos.

Dica para iniciantes

Ao estudar modernização, não pense apenas em reescrever.

Existem várias estratégias:

  • expor;

  • integrar;

  • encapsular;

  • refatorar;

  • substituir;

  • manter.

Reescrever tudo costuma ser a opção mais arriscada e cara.



23. DevOps chegou à sala de máquinas

Existe outro estereótipo comum:

“Mainframe não combina com DevOps.”

Isso também está errado.

Ambientes modernos podem utilizar:

  • Git;

  • integração contínua;

  • entrega contínua;

  • testes automatizados;

  • análise de código;

  • pipelines;

  • revisão por pull request;

  • automação de deployment;

  • infraestrutura como código.

Ferramentas tradicionais continuam existindo, mas podem ser integradas a fluxos modernos.

O programador pode trabalhar com editores contemporâneos, como extensões para VS Code, sem abandonar a robustez do ambiente central.

A cultura DevOps não depende de uma linguagem específica.

Ela depende de práticas:

  • colaboração;

  • automação;

  • feedback rápido;

  • rastreabilidade;

  • qualidade;

  • entrega segura.

COBOL também pode participar dessa jornada.


24. Inteligência artificial no universo mainframe

A inteligência artificial pode atuar em diferentes áreas do mainframe:

  • análise de logs;

  • detecção de anomalias;

  • previsão de capacidade;

  • identificação de fraudes;

  • apoio à modernização;

  • compreensão de código legado;

  • geração de testes;

  • documentação;

  • atendimento operacional.

Também existem processadores e recursos especializados para executar inferências próximas aos dados e às transações.

Isso pode ser importante porque mover grandes volumes de dados para fora do ambiente gera:

  • custo;

  • latência;

  • risco;

  • complexidade.

Executar determinadas análises perto da origem dos dados pode ser mais eficiente.

Entretanto, inteligência artificial não elimina a necessidade de conhecimento humano.

Ela pode ajudar a explicar um programa COBOL.

Mas alguém ainda precisa validar:

  • a regra de negócio;

  • os dados;

  • as exceções;

  • os impactos;

  • os requisitos regulatórios.

Uma resposta convincente não é automaticamente uma resposta correta.

Nem mesmo o computador mais inteligente da galáxia deve alterar a folha de pagamento sem testes.



25. Passo a passo para começar no mainframe

Agora chegamos ao roteiro prático para o novo cadete.

Etapa 1 — Aprenda a navegação

Antes de programar, entenda o ambiente.

Estude:

  • TSO;

  • ISPF;

  • datasets;

  • membros;

  • painéis;

  • comandos básicos.

Objetivo:

Ser capaz de localizar, abrir e editar informações.

Etapa 2 — Entenda datasets

Aprenda a diferença entre:

  • dataset sequencial;

  • PDS;

  • PDSE;

  • VSAM;

  • arquivos temporários;

  • gerações de GDG.

Observe atributos como:

  • RECFM;

  • LRECL;

  • BLKSIZE;

  • organização;

  • espaço.

Etapa 3 — Estude JCL

Comece por:

  • JOB;

  • EXEC;

  • DD;

  • DISP;

  • DSN;

  • SYSOUT;

  • parâmetros de execução.

Não tente decorar tudo.

Crie pequenos jobs e observe o resultado.

Etapa 4 — Aprenda COBOL básico

Domine:

  • IDENTIFICATION DIVISION;

  • ENVIRONMENT DIVISION;

  • DATA DIVISION;

  • PROCEDURE DIVISION;

  • PIC;

  • MOVE;

  • IF;

  • EVALUATE;

  • PERFORM;

  • READ;

  • WRITE;

  • COMPUTE.

Etapa 5 — Compile um programa

Acompanhe cada fase:

Fonte
↓
Compilação
↓
Objeto
↓
Link-edit
↓
Executável
↓
Execução

Etapa 6 — Aprenda a ler o spool

O spool conta a história do job.

Procure:

  • mensagens;

  • retorno;

  • passos executados;

  • datasets usados;

  • erros;

  • abends.

Etapa 7 — Trabalhe com arquivos

Crie programas que:

  • leiam entrada;

  • validem registros;

  • calculem resultados;

  • produzam saída;

  • gerem totais.

Etapa 8 — Estude Db2 ou VSAM

Depois da base, avance para persistência de dados.

No Db2, estude:

  • SELECT;

  • INSERT;

  • UPDATE;

  • DELETE;

  • cursor;

  • SQLCODE;

  • commit;

  • rollback.

Etapa 9 — Conheça o CICS

Aprenda o conceito de transação online.

Entenda:

  • mapa;

  • tela;

  • COMMAREA;

  • canais e containers;

  • LINK;

  • XCTL;

  • filas;

  • integração com Db2.

Etapa 10 — Entenda o negócio

Essa é a fase mais importante.

Pergunte:

  • O que o sistema faz?

  • Quem utiliza?

  • Qual dado é crítico?

  • Qual erro é aceitável?

  • Qual erro é desastroso?

  • Existe auditoria?

  • Existe recuperação?

O melhor programador não é quem conhece mais comandos.

É quem compreende o impacto daquilo que modifica.



26. Erros comuns do iniciante

Decorar sem compreender

Copiar JCL sem entender cada DD pode funcionar até o dia em que algo mudar.

Ignorar mensagens

O sistema frequentemente explica o problema.

Leia as mensagens antes de alterar o código aleatoriamente.

Testar apenas o caso feliz

Considere:

  • arquivo vazio;

  • campo inválido;

  • valor negativo;

  • registro duplicado;

  • fim inesperado;

  • acesso negado;

  • indisponibilidade de recurso.

Alterar produção diretamente

Ambientes críticos exigem controle.

Use:

  • desenvolvimento;

  • teste;

  • homologação;

  • aprovação;

  • implantação planejada.

Achar que código antigo é código ruim

Um programa antigo pode representar décadas de conhecimento de negócio.

Antes de criticá-lo, entenda por que foi construído daquela forma.

Reescrever por impulso

Código novo também contém bugs.

A modernização deve ser orientada por objetivos reais, não por vergonha da idade do sistema.



27. Curiosidades da ponte de comando

O COBOL foi pensado para negócios

Sua sintaxe mais verbal não é um acidente. A intenção era aproximar o código da linguagem empresarial.

O mainframe ajudou a popularizar virtualização

Décadas antes de a palavra “cloud” dominar apresentações corporativas, grandes sistemas já compartilhavam hardware entre ambientes isolados.

O batch não morreu

Processar milhões de registros em lote continua sendo uma solução eficiente.

Nem tudo precisa ser uma API síncrona.

Terminais não são o mainframe

O terminal é apenas uma interface.

Confundir tela verde com mainframe é como confundir o painel da nave com o motor de dobra.

COBOL moderno não é COBOL de 1960

Compiladores modernos possuem otimizações, integração com novas tecnologias e recursos que não existiam nas primeiras versões da linguagem.

O maior risco pode estar fora do código

Muitos incidentes são causados por:

  • configuração;

  • permissão;

  • dados;

  • processo;

  • comunicação;

  • implantação inadequada.

Nem todo problema termina em IDENTIFICATION DIVISION.


28. O verdadeiro segredo da longevidade

Por que o mainframe continua vivo?

Não existe uma única resposta.

Ele sobrevive porque combina vários fatores:

  • compatibilidade;

  • confiabilidade;

  • capacidade de processamento;

  • segurança;

  • investimento acumulado;

  • conhecimento de negócio;

  • integração;

  • evolução arquitetural.

Mas talvez exista uma resposta ainda mais profunda.

O mainframe sobreviveu porque nunca foi apenas uma máquina.

Ele se tornou parte das operações das empresas.

Um programa COBOL pode parecer um conjunto de comandos.

Na prática, ele pode representar:

  • regras tributárias;

  • contratos;

  • políticas de crédito;

  • cálculos atuariais;

  • processos contábeis;

  • obrigações regulatórias;

  • décadas de decisões empresariais.

Substituir o código não significa apenas trocar uma linguagem.

Significa reconstruir conhecimento.

E conhecimento perdido pode ser mais caro do que hardware.


29. O easter egg escondido no núcleo

Existe uma mensagem secreta em toda essa história.

Ela não está em hexadecimal.

Não está escondida em um registrador.

Não aparece em um dump.

A mensagem é esta:

O futuro da tecnologia não é construído apenas descartando o passado. Muitas vezes, ele é construído conectando o que funciona com aquilo que acaba de surgir.

Essa é uma lição importante para qualquer programador.

Tecnologia não é uma sequência de destruições completas.

É uma sequência de camadas.

O sistema moderno ainda carrega ideias antigas:

  • arquivos;

  • filas;

  • transações;

  • processos;

  • permissões;

  • logs;

  • escalonamento;

  • virtualização.

Mudam os nomes.

Mudam as interfaces.

Mudam as ferramentas.

Os problemas fundamentais frequentemente permanecem.



30. Conclusão — A fronteira final não é o espaço

Depois de atravessar décadas de história, chegamos ao presente.

O mainframe não é um monstro pré-histórico esperando a própria extinção.

Ele é uma plataforma que aprendeu a evoluir sem abandonar sua missão.

Começou em uma época de cartões perfurados, fitas magnéticas e grandes salões refrigerados.

Participou da transformação do computador em ferramenta empresarial.

Atravessou a guerra entre fabricantes.

Ajudou a amadurecer conceitos como multiprogramação, compartilhamento de tempo e virtualização.

Sustentou grandes centros de processamento.

Sobreviveu à ascensão dos PCs, dos servidores, da internet e da nuvem.

E agora integra-se a APIs, containers, DevOps e inteligência artificial.

Para o programador COBOL iniciante, compreender essa história é mais do que conhecer máquinas antigas.

É entender o motivo pelo qual determinadas práticas existem.

É perceber por que segurança, disponibilidade e integridade recebem tanta atenção.

É compreender que um programa não vive isolado.

Ele faz parte de uma arquitetura, de um processo e de uma organização.

Quando você escrever seu primeiro MOVE, executar seu primeiro job ou investigar seu primeiro abend, lembre-se de que está entrando em uma tradição construída por gerações de profissionais.

Alguns trabalharam com cartões.

Outros com terminais.

Outros com editores modernos.

Mas todos enfrentaram a mesma missão:

Receber dados
Aplicar regras
Produzir resultados corretos
Proteger o negócio
Manter o sistema funcionando

A fronteira final da computação não é uma linguagem, uma máquina ou uma nuvem.

É a capacidade de construir sistemas nos quais milhões de pessoas confiam sem sequer perceber que eles estão ali.

O mainframe tornou-se invisível.

Mas invisível não significa ausente.

Em algum lugar, enquanto você lê este artigo, uma transação está sendo executada, um registro está sendo atualizado e um programa COBOL está cumprindo silenciosamente sua missão.

Na ponte de comando, as luzes permanecem estáveis.

O sistema está operacional.

A viagem continua.

Vida longa ao COBOL.

Vida longa ao mainframe.

E que seus jobs terminem sempre com MAXCC=0000.

 

Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...