☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

Translate

sábado, 24 de junho de 2023

IEBPTPCH: Como um Padawan COBOL Pode Enxergar os Segredos dos Data Sets do IBM Z Sem Invocar IDCAMS, ISPF ou Magia Negra

 

Bellacosa Mainframe e o iebptpch para analise de copybooks

☕ O Holocron do IEBPTPCH

Como um Padawan COBOL Pode Enxergar os Segredos dos Data Sets do IBM Z Sem Invocar IDCAMS, ISPF ou Magia Negra

"O Mainframe nunca escondeu seus segredos. Apenas esperava que alguém tivesse paciência suficiente para imprimir seus antigos holocrons."

— Bellacosa Mainframe

Introdução – O dia em que o Padawan encontrou um artefato esquecido

Todo programador COBOL passa por algumas iniciações obrigatórias.

Primeiro aprende a editar no ISPF.

Depois descobre o SDSF.

Em seguida entende que JCL não é exatamente uma linguagem, mas uma espécie de contrato legal escrito por advogados intergalácticos.

E então chega um dia estranho.

Seu Tech Lead aparece.

Pergunta:

— Bellacosa Jr., consegue verificar o conteúdo do copybook ACCOUNT-COMMON sem abrir o ISPF?

Você responde:

— Posso fazer um Browse...

Ele sorri.

— Não.

— Quero um spool.

— Quero evidência.

— Quero auditoria.

— Quero algo que funcione igual em 1985, 2005 e 2026.

Nesse momento surge um pequeno utilitário.

Pequeno.

Discreto.

Quase esquecido.

Chamado IEBPTPCH.

E ele provavelmente estava instalado no seu sistema antes mesmo de você nascer.


Afinal, o que é o IEBPTPCH?

IEBPTPCH é um dos utilitários clássicos do z/OS.

Seu nome vem de uma época em que desenvolvedores utilizavam cartões perfurados.

IBM Extended Basic Punch Utility

O nome ficou.

Os cartões morreram.

Mas o utilitário continua vivo.

Sua missão é extremamente simples:

Visualizar dados sem alterá-los.

Ele funciona como um scanner arqueológico.

Abre.

Lê.

Imprime.

Exporta.

Documenta.

Mas não modifica.

É quase um modo READ ONLY elevado ao estado zen.


Por que ele ainda existe?

Porque empresas grandes amam evidências.

Bancos.

Seguradoras.

Governo.

Bolsa de Valores.

Data Centers.

Auditores não gostam de ouvir:

"Confia em mim."

Eles gostam de receber:

PDF

Spool

Relatórios

Listagens

Evidências históricas

IEBPTPCH nasceu para isso.


O grande poder do utilitário

Ele consegue trabalhar com:

Dataset sequencial

PS


Biblioteca particionada

PDS

PDSE


Vários datasets concatenados

ARQ1

ARQ2

ARQ3

Tudo junto.


Membros específicos

COPYBOOKS

COBOL

JCL

PROC


Anatomia do Job

Passo 1

EXEC

//STEP01 EXEC PGM=IEBPTPCH

Nada de parâmetros.

Nada complicado.


Passo 2

SYSUT1

Entrada.

É o Holocron.

Dataset origem.

//SYSUT1 DD DSN=BANK.COPYLIB,
// DISP=SHR

Passo 3

SYSUT2

Destino.

Geralmente spool.

//SYSUT2 DD SYSOUT=*

Pode ser arquivo também.


Passo 4

SYSPRINT

Mensagens.

Diagnóstico.

//SYSPRINT DD SYSOUT=*

Passo 5

SYSIN

Comandos.

//SYSIN DD *
PRINT TYPORG=PO
/*

Fim.

Literalmente.

Acabou.

O utilitário já está funcionando.


Entendendo o TYPORG

Esse parâmetro derruba muitos padawans.

TYPORG=PO

Partitioned Organization

PDS

PDSE

Exemplo:

PRINT TYPORG=PO

TYPORG=PS

Sequential

Arquivo sequencial.

Exemplo:

PRINT TYPORG=PS

Laboratório 1 — Imprimindo um programa COBOL

Suponha:

BELLA.COBOL.SOURCE

Possui:

PGMCLIENT

Nosso objetivo:

Visualizar.

Imprimir.

Documentar.

Sem editar.


JCL

//PRINT01 EXEC PGM=IEBPTPCH

//SYSUT1 DD DSN=BELLA.COBOL.SOURCE,
/// DISP=SHR

//SYSUT2 DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

PRINT MEMBER=PGMCLIENT,
      TYPORG=PO

/*

Resultado:

IDENTIFICATION DIVISION.

PROGRAM-ID. PGMCLIENT.

DATA DIVISION.

WORKING-STORAGE SECTION.

Tudo vai para spool.

Pode virar PDF.

Enviar email.

Arquivar.

Git.

Wiki.

Confluence.

RAG.

LLM.


Laboratório 2 — Copybook perdido

Situação real.

Padawan recebe erro:

IGYDS1089-E

Copybook não encontrado.

Ele suspeita.

Existe um copybook chamado:

CLIENTE

Mas não sabe.

Executa:

PRINT MEMBER=CLIENTE,
      TYPORG=PO

Descobre:

05 CPF PIC 9(11).

05 NOME PIC X(50).

Mistério resolvido.


Laboratório 3 — Dataset Sequencial

Arquivo:

BANK.CLIENT.FILE

Conteúdo:

000001JOSE
000002MARIA
000003ANA

JCL:

PRINT TYPORG=PS

Saída:

000001JOSE

000002MARIA

000003ANA

Simples.

Elegante.

Funciona desde o System/370.


Laboratório 4 — Concatenando datasets

Algo muito utilizado.

Exemplo:

//SYSUT1 DD DSN=FILE01,
// DISP=SHR

// DD DSN=FILE02,
// DISP=SHR

// DD DSN=FILE03,
// DISP=SHR

IEBPTPCH processa tudo.

Como se fosse um único arquivo.

Excelente para auditorias.


Easter Egg Nº 1

Pouca gente sabe.

O nome PUNCH não desapareceu.

Existe ainda.

PUNCH TYPORG=PO

Originalmente produzia cartões perfurados.

Hoje gera saída textual.

É um pequeno fóssil tecnológico preservado dentro do z/OS.


Easter Egg Nº 2

Em vários bancos brasileiros o IEBPTPCH ainda é usado por equipes SOX.

Motivo?

Auditores adoram spool.

Spool possui:

Timestamp

Classe

Owner

Jobname

Número do Job

Histórico

É praticamente uma cadeia de custódia digital.


Easter Egg Nº 3

Muitos pipelines modernos de IA podem usar IEBPTPCH.

Arquitetura:

PDS

↓

IEBPTPCH

↓

TXT

↓

Chunking

↓

Embedding

↓

Vector DB

↓

RAG

↓

Agente COBOL

Sim.

Um utilitário criado na década de 1960 pode alimentar agentes de IA em 2026.

Existe certa poesia nisso.


Comparação com outros utilitários

UtilitárioFaz o quê
IEBPTPCHVisualiza
IEBGENERCopia
IEBCOPYManipula PDS
IDCAMSVSAM
DFSORTOrdena
ISPF BrowseVisualiza
SDSFConsulta spool

Dicas de veterano Bellacosa Mainframe

Dica 1

Nunca faça EDIT apenas para olhar.

Use Browse.

Ou IEBPTPCH.


Dica 2

Quer documentação automática?

IEBPTPCH.

Spool.

PDF.

Git.

IA.


Dica 3

Quer descobrir rapidamente o que existe numa biblioteca antiga?

IEBPTPCH.


Dica 4

Em ambientes regulados, produzir evidência vale ouro.

IEBPTPCH é praticamente um gerador oficial de evidências.


O que um Padawan COBOL deve aprender com isso?

O erro comum dos iniciantes é imaginar que dominar Mainframe significa conhecer apenas COBOL, DB2 e CICS.

Não.

O verdadeiro Jedi do IBM Z entende que o ecossistema é formado por centenas de pequenos holocrons tecnológicos acumulados ao longo de mais de sessenta anos de engenharia.

IEBPTPCH é um deles.

Ele não possui interface web.

Não oferece API REST.

Não conversa diretamente com ChatGPT.

Não tem dashboard em React.

Mas continua fazendo algo extraordinariamente importante:

Permitir observar, compreender e preservar conhecimento corporativo armazenado em datasets do z/OS de forma simples, segura e praticamente imutável.

E talvez seja exatamente isso que diferencia um simples programador COBOL de um Mestre Bellacosa Mainframe: entender que, antes de modernizar sistemas, conectar APIs ou alimentar agentes de IA, é preciso primeiro abrir os antigos holocrons do datacenter e aprender a escutar o que eles ainda têm a ensinar.


sexta-feira, 23 de junho de 2023

🎮☕🔥 SHANGRI-LA FRONTIER: O MAINFRAME DOS MMORPGs — POR QUE O MELHOR ANIME DE JOGOS DA DÉCADA É SOBRE UM CARA VICIADO EM SISTEMAS QUEBRADOS?

 

Bellacosa Mainframe apresenta o doido passaro azul de Shangri-la Frontier essa mascara é froids

🎮☕🔥 SHANGRI-LA FRONTIER: O MAINFRAME DOS MMORPGs — POR QUE O MELHOR ANIME DE JOGOS DA DÉCADA É SOBRE UM CARA VICIADO EM SISTEMAS QUEBRADOS?

Quando um caçador de bugs entra no jogo perfeito... e descobre que o verdadeiro inimigo é o próprio sistema.

Se você trabalha com Mainframe, DevOps, Programação, Engenharia de Sistemas ou simplesmente gosta de entender como coisas complexas funcionam, existe uma grande chance de você se identificar mais com Shangri-La Frontier do que imagina.

À primeira vista parece apenas mais um anime sobre realidade virtual.

Mas por trás da ação existe algo muito mais interessante:

Uma história sobre exploração, aprendizado, engenharia reversa, adaptação e domínio de sistemas complexos.

Ou seja...

Praticamente a vida de um SYSprog.


📚 Ficha Técnica

Título Original

シャングリラ・フロンティア
(Shangri-La Frontier: Kusoge Hunter, Kamige ni Idoman to su)

Tradução aproximada:

"O Caçador de Jogos Ruins Desafia o Jogo Divino"

Só esse subtítulo já explica toda a proposta.


Autor

✍️ Katarina

Inicialmente publicada como Web Novel em 2017.


Mangá

🎨 Arte:

Ryosuke Fuji

Publicado pela Kodansha.


Anime

🎬 Estúdio:

C2C

Mesmo estúdio responsável por:

  • Tsukimichi

  • Wandering Witch

  • Harukana Receive


Estreia

📅 Outubro de 2023


Episódios

Temporada 1

25 episódios

Temporada 2

25 episódios

Total atual

✅ 50 episódios

Temporada 3

🔥 Confirmada


🎯 Classificação e Gênero

Gêneros

  • Ação

  • Aventura

  • Fantasia

  • VRMMORPG

  • Ficção Científica

  • Comédia


Faixa Etária

Normalmente classificado como:

Teen / 13+


🌎 O Que é Shangri-La Frontier?

Imagine uma mistura de:

  • Sword Art Online

  • Monster Hunter

  • Dark Souls

  • Final Fantasy XIV

Misture tudo.

Agora retire:

  • drama exagerado

  • romance excessivo

  • protagonista invencível

E coloque:

  • estratégia

  • exploração

  • descoberta

Resultado?

Shangri-La Frontier.


🧠 O Conceito Genial

O protagonista não é um herói.

Ele não é escolhido.

Não possui poder secreto.

Não recebeu bênção divina.

Não renasceu em outro mundo.

Ele apenas tem uma habilidade extremamente rara:

Jogar jogos horríveis.


☕ A Filosofia do Kusoge

"Kusoge" significa:

Jogo ruim.

Mas não apenas ruim.

Ruim de verdade.

Daqueles que:

  • possuem bugs absurdos

  • controles terríveis

  • balanceamento quebrado

  • interfaces horríveis

Rakuro passa anos jogando esse tipo de jogo.


💡 A Grande Mensagem Oculta

O anime faz uma crítica muito interessante:

A dificuldade gera competência.

Enquanto outros jogadores cresceram em ambientes perfeitos...

Sunraku cresceu no caos.


☕ Analogia Mainframe

Imagine dois profissionais.

O primeiro:

  • trabalhou somente em ambientes modernos

O segundo:

  • enfrentou COBOL antigo

  • dumps

  • loops infinitos

  • JES2 travado

  • CICS congelado

  • JCL sem documentação

Quem sobrevive melhor ao desastre?

Exatamente.

O segundo.

Esse é o Sunraku.


🐦 Sunraku

Nome real:

Rakuro Hizutome


Características

  • extremamente observador

  • aprende padrões rapidamente

  • especialista em adaptação


Curiosidade

A máscara de pássaro tornou-se um dos símbolos mais reconhecidos do anime.

Ela funciona quase como um avatar de anonimato digital.


⚔️ Arthur Pencilgon

Uma das personagens mais populares.


O que representa?

Caos controlado.

Ela é o tipo de jogador que:

  • explora sistemas

  • manipula eventos

  • encontra brechas


🔫 Oikatzo

Representa o jogador técnico.

Aquele que:

  • otimiza builds

  • analisa estatísticas

  • maximiza eficiência


🐺 Lycagon

Aqui encontramos um dos maiores símbolos do anime.


O que Lycagon realmente representa?

Na superfície:

Um boss lendário.

Mas em nível narrativo:

Representa o desconhecido.


☕ Analogia Bellacosa

Todo profissional possui um Lycagon.

Aquele problema que:

  • ninguém entende

  • ninguém resolveu

  • ninguém documentou

Mas que muda sua carreira para sempre.


🎮 O Diferencial Que Faz Shangri-La Frontier Brilhar

Muitos animes de MMORPG seguem a fórmula:

Entrar no jogo
↓
Ganhar poder
↓
Virar deus

Shangri-La Frontier segue outra:

Entrar no jogo
↓
Cometer erros
↓
Aprender
↓
Adaptar
↓
Sobreviver
↓
Evoluir

Essa diferença é enorme.


🌎 O Mundo do Jogo

O universo de Shangri-La Frontier parece um MMORPG real.

Possui:

  • lore consistente

  • ecossistema vivo

  • eventos raros

  • conteúdo oculto


🧩 Easter Eggs

O anime possui diversas inspirações.

Dark Souls

  • aprendizado por tentativa e erro

  • bosses brutais


Monster Hunter

  • observação de comportamento

  • estudo de padrões


MMORPGs clássicos

  • EverQuest

  • Final Fantasy XI

  • Ragnarok Online

  • Ultima Online


🧠 As Mensagens Ocultas

Muitos espectadores assistem apenas pela ação.

Mas existem mensagens interessantes.


1. O fracasso possui valor

O protagonista só se torna excepcional porque falhou milhares de vezes.


2. Conhecimento supera poder

Sunraku raramente é o mais forte.

Mas frequentemente é o mais preparado.


3. Curiosidade é uma arma

Ele avança porque explora.

Não porque segue o caminho padrão.


🎭 Houve Censura?

Não existe registro de censura significativa da obra.

O anime foi adaptado de forma bastante fiel.

As alterações observadas foram:

  • ajustes de ritmo

  • condensação de eventos

  • pequenas adaptações visuais

Nada que tenha gerado controvérsia relevante.


📈 Impacto Cultural

Shangri-La Frontier conseguiu algo raro:

Tornar MMORPG interessante novamente.

Após anos de saturação do gênero isekai, a obra mostrou que ainda era possível inovar.


Por que virou fenômeno?

Porque fala diretamente com:

  • gamers

  • programadores

  • engenheiros

  • pessoas apaixonadas por sistemas complexos


🔥 Veredito Bellacosa Mainframe

História

⭐⭐⭐⭐⭐

Personagens

⭐⭐⭐⭐⭐

Construção de Mundo

⭐⭐⭐⭐⭐

Combates

⭐⭐⭐⭐⭐

Originalidade

⭐⭐⭐⭐⭐

Reassistibilidade

⭐⭐⭐⭐⭐


☕ Conclusão Final

Shangri-La Frontier não é um anime sobre jogos.

É um anime sobre:

  • resolver problemas

  • explorar sistemas

  • aprender com falhas

  • crescer através da experiência

Por isso ele conversa tão bem com profissionais de tecnologia.

No fundo, Sunraku faz exatamente o que um bom SYSprog faz todos os dias:

Entrar em um ambiente complexo, enfrentar algo que ninguém entende, sobreviver ao caos e voltar com uma solução.

E talvez seja justamente por isso que tantos espectadores terminam o anime pensando:

"Esse cara não é um jogador..."

"...é um analista de produção disfarçado de aventureiro." ☕🔥🎮🖥️

quinta-feira, 22 de junho de 2023

🔥💣 “NO MAINFRAME EXISTE JES2… NO MUNDO FANTASY EXISTE RPG FUDOUSAN!” — O ANIME QUE TRANSFORMOU IMOBILIÁRIA EM OPERAÇÃO DE MISSÃO CRÍTICA ☕🏰🐉

 

Bellacosa Mainframe uma imobiliaria bem bacaninha RPG Fudousan

🔥💣 “NO MAINFRAME EXISTE JES2… NO MUNDO FANTASY EXISTE RPG FUDOUSAN!” — O ANIME QUE TRANSFORMOU IMOBILIÁRIA EM OPERAÇÃO DE MISSÃO CRÍTICA ☕🏰🐉

Tem anime que nasce para ser batalha.

Tem anime que nasce para ser romance.

E existe aquele tipo raríssimo de anime que pega uma ideia completamente absurda…
e faz funcionar de maneira GENIAL.

RPG Fudousan (RPG Real Estate) é exatamente isso.

Imagine um mundo pós-Rei Demônio.
A paz voltou.
Os heróis aposentaram suas espadas.
Os magos agora pagam aluguel.
Os aventureiros precisam financiar imóvel.
Os dragões procuram casas resistentes a incêndio.

E no meio desse caos burocrático medieval…
surge uma imobiliária.

Sim.

UMA IMOBILIÁRIA.

Só que ao invés de vender apartamento em Osasco…
ela vende casas para necromantes, demi-humanos, aventureiros, espíritos e criaturas mágicas.

É quase:

“TSO/ISPF encontra The Sims Fantasy Edition”.


📚 FICHA TÉCNICA — O “CADASTRO DO SISTEMA”

ItemInformação
NomeRPG Fudousan / RPG Real Estate
AutorChiyo Kenmotsu
Mangá2018 – 2023
AnimeAbril de 2022 – Junho de 2022
Episódios12
EstúdioDoga Kobo
GêneroFantasy, Slice of Life, Comedy, CGDCT
Distribuição internacionalCrunchyroll
Formato originalMangá yonkoma (4-koma)

☕ “PARECIA UM ANIME FOFO… MAS TINHA MAIS CAMADAS QUE UM JCL DE PRODUÇÃO”

Esse anime engana.

E MUITO.

Nos primeiros episódios parece apenas:

  • garotas fofinhas,

  • comédia relaxante,

  • situações absurdas,

  • fantasy slice-of-life.

Mas conforme a história avança…
o anime começa lentamente a revelar:

  • trauma,

  • medo,

  • isolamento,

  • responsabilidade,

  • e principalmente:

o peso da paz depois da guerra.

Isso é extremamente raro em animes “cute”.


🏰 A HISTÓRIA — “A ERA PÓS-REI DEMÔNIO”

O mundo venceu.

O Rei Demônio foi derrotado 15 anos antes.

Só que quase nenhum anime fala sobre:

“o que acontece DEPOIS que o herói salva o mundo?”

RPG Fudousan fala.

E isso é brilhante.

Agora existem:

  • cidades reconstruídas,

  • novos moradores,

  • migração entre reinos,

  • preconceitos raciais entre espécies,

  • e problemas imobiliários reais.

A protagonista:

✨ Kotone Kazairo

uma maga recém-formada,
entra na imobiliária RPG Fudousan procurando casa…
e descobre que na verdade aquele é seu novo emprego.

E aí começa o verdadeiro coração da obra:

ajudar pessoas a encontrarem um lugar ao qual possam chamar de lar.


💣 A GENIALIDADE ESCONDIDA DO ANIME

O anime parece simples.

Mas o conceito é MUITO mais inteligente do que parece.

Porque “procurar uma casa” no anime simboliza:

  • pertencimento,

  • aceitação,

  • identidade,

  • recomeço,

  • reconstrução pós-guerra.

Cada cliente representa um problema social disfarçado de fantasia.


🐉 OS PERSONAGENS — “OS OPERADORES DO DATA CENTER FANTASY”

✨ Kotone Kazairo

A protagonista.

Ingênua.
Gentil.
Caótica.
Curiosa.

Ela representa o “junior recém-chegado no plantão”.

Tudo é novo.
Tudo parece mágico.
Tudo parece assustador.

Kotone é literalmente o operador novo tentando entender um ambiente legado gigantesco.


🐉 Fa

O coração emocional da obra.

No começo:

  • mascote,

  • engraçada,

  • fofinha,

  • energética.

Depois:

  • tragédia,

  • solidão,

  • medo,

  • destruição.

Fa é o “sistema legado perigoso” escondido atrás de uma interface amigável.

Quando o anime revela quem ela realmente é…
o tom muda completamente.


⛪ Rufuria

A sacerdotisa elegante.

Parece apenas a “onee-san madura”.
Mas ela é a personagem mais estável emocionalmente do grupo.

Ela funciona como:

“o sysprog veterano que segura o ambiente enquanto os juniors entram em pânico”.


⚔️ Rakira

Energia pura.

Briguenta.
Impulsiva.
Barulhenta.

Mas extremamente leal.

Ela é literalmente:

“o operador que resolve incidente crítico na base do improviso”.


🎭 O GRANDE EASTER EGG DO ANIME

O anime inteiro gira em torno de:

“casas”.

Mas na verdade ele fala sobre:

pertencimento.

Quase todos os clientes:

  • estão deslocados,

  • são rejeitados,

  • têm medo,

  • não se encaixam na sociedade.

A imobiliária vira quase:

“um serviço de recuperação emocional”.

Isso é MUITO mais profundo do que parece.


☕ O ESTÚDIO DOGA KOBO — “OS MESTRES DO ANIME CONFORTÁVEL”

Doga Kobo

O estúdio é conhecido por:

  • New Game!

  • Gabriel DropOut

  • Plastic Memories

  • Oshi no Ko (temporada 1)

Eles dominam:

  • expressão facial,

  • timing cômico,

  • atmosfera aconchegante,

  • direção emocional silenciosa.

E em RPG Fudousan fizeram algo impressionante:

esconder drama pesado dentro de um anime ultrafelpudo.


🎵 A TRILHA SONORA — “PARECE CAFÉ COM AÇÚCAR… ATÉ VIR O SOCO EMOCIONAL”

A abertura:

“Make Up Life!”

é absurdamente energética e moe.

Mas o anime usa música de forma inteligente:

  • melodias leves no cotidiano,

  • silêncio em cenas emocionais,

  • trilhas melancólicas nos episódios finais.

A mudança tonal é gradual.

Quase invisível.


💣 CURIOSIDADES QUE MUITA GENTE NÃO PERCEBEU

🏰 1. O mundo é pós-trauma

O anime inteiro acontece depois de uma guerra gigantesca.
Mas a série raramente mostra isso diretamente.

Ela mostra CONSEQUÊNCIAS.

Isso é narrativa madura.


🐉 2. Fa simboliza arma nuclear viva

Sem spoilers extremos:
Fa representa medo do poder descontrolado.

Ela literalmente carrega destruição dentro dela.


☕ 3. A estética moe é propositalmente enganosa

O anime usa:

  • cores pastel,

  • personagens fofas,

  • humor leve,

para baixar sua guarda emocional.

Depois ataca.


🏘️ 4. O anime é quase uma sátira de JRPG

Os problemas imobiliários são absurdamente específicos:

  • casa resistente a magia,

  • imóvel anti-dragão,

  • aluguel para fantasmas,

  • moradia para aventureiros traumatizados.

É genial.


📀 MÍDIAS E EXPANSÃO

📚 Mangá

  • Serializado em Manga Time Kirara Carat

  • 6 volumes

  • formato 4-koma

📺 Anime

  • 12 episódios

  • produzido pela Doga Kobo

  • transmissão em 2022

🌎 Streaming



🔥 A VERDADE SOBRE RPG FUDOUSAN

Esse anime NÃO é sobre:

  • aluguel,

  • fantasia,

  • imobiliária.

É sobre:

  • encontrar lugar no mundo,

  • viver após trauma,

  • reconstrução,

  • amizade,

  • aceitação.

E faz isso escondido atrás de:

  • personagens fofinhas,

  • piadas bobas,

  • dragões,

  • e casas mágicas.

É quase como o mainframe:

por fora parece velho e simples…

por dentro sustenta o mundo inteiro.


☕ VEREDITO BELLACOSA MAINFRAME

RPG FUDOUSAN É:

  • moe inteligente,

  • fantasia confortável,

  • slice of life com profundidade,

  • worldbuilding escondido,

  • drama emocional disfarçado de comédia.

Um anime perigosamente subestimado.

Porque quem olha superficialmente vê:

“garotinhas alugando casas”.

Mas quem presta atenção percebe:

“um mundo inteiro tentando aprender a viver depois do apocalipse.” ☕🏰💣

quarta-feira, 21 de junho de 2023

🗺️ A História dos Yūkaku — O Japão do “Mundo Flutuante”

 

🗺️ A História dos Yūkaku — O Japão do “Mundo Flutuante”







🏮 Período Edo (1603–1868) — O nascimento do mundo flutuante (ukiyo)

Com o país unificado sob o xogunato Tokugawa, o Japão entra em um longo período de paz e isolamento.
A vida urbana floresce — especialmente em Edo (atual Tóquio), Kyoto e Osaka.
Mas, como toda sociedade controlada, surge a necessidade de um “escape” institucionalizado.

Assim nascem os Yūkaku (遊廓) — distritos murados e licenciados pelo governo, onde sexo, arte e espetáculo conviviam legalmente.


🎐 Os três grandes distritos licenciados

🏯 1. Yoshiwara (Edo / Tóquio)

  • Fundado em 1617.

  • O mais famoso e luxuoso de todos.

  • Tinha muros altos, portões de madeira e ruas organizadas — um “bairro dentro da cidade”.

  • As cortesãs mais famosas eram chamadas Oiran (花魁), verdadeiras celebridades.

    • Elas estudavam poesia, caligrafia, música e etiqueta.

    • Desfilavam em público com kimonos exuberantes e plataformas altíssimas (geta koma).

🪷 Curiosidades:

  • Visitá-las exigia três convites formais e altíssimo custo.

  • O bairro era descrito como “um sonho de seda e incenso”.

  • Artistas como Hokusai e Utamaro imortalizaram Yoshiwara em gravuras ukiyo-e, celebrando sua atmosfera sensual e efêmera.

🖼️ Estilo ukiyo-e: Lanternas pendendo nas ruas, o brilho do óleo nas roupas, mulheres com cabelos longos e olhos serenos — um retrato do prazer como arte.


🌸 2. Shimabara (Kyoto)

  • Fundado em 1640, próximo ao antigo palácio imperial.

  • Mais discreto, voltado à elite cultural da corte.

  • As cortesãs também eram chamadas Oiran, mas o foco era refinamento e arte, não ostentação.

  • Tornou-se o lar espiritual das geishas, que surgiram como artistas acompanhantes, não prostitutas.

🎎 Curiosidade:
O nome “Shimabara” vem de uma rebelião famosa — mas aqui significava “prazer controlado sob disciplina”.
As Oiran Dōchū (procissões de oiran) ainda são reencenadas em festivais até hoje.


🌆 3. Shinmachi (Osaka)

  • Fundado em 1640, o “bairro das flores noturnas”.

  • Famoso por misturar comércio, teatro e prazer.

  • Tinha uma vibração mais popular, voltada aos mercadores e artistas.

  • Inspirou inúmeras peças do teatro bunraku e kabuki, com tramas sobre amores trágicos entre cortesãs e clientes pobres.

🎭 Curiosidade:
As histórias de Shinmachi inspiraram a expressão “ninjō-bon” — romances sentimentais do Japão Edo.


🕯️ O Conceito de “Ukiyo” — O Mundo Flutuante

O termo ukiyo (浮世) significava originalmente “mundo de sofrimento”.
Mas durante o período Edo, ganhou novo sentido:
👉 “mundo flutuante”, o espaço efêmero onde se vive o prazer do momento — bebida, amor e arte — sem pensar no amanhã.

Os artistas ukiyo-e capturavam esse espírito em gravuras:

  • Utamaro Kitagawa — retratos femininos (bijin-ga) e cenas de Yoshiwara.

  • Hokusai — mostrou a mistura do erótico e do sagrado (shunga, arte sensual).

  • Hiroshige — retratou a vida urbana e o crepúsculo dos distritos de prazer.

🖼️ Curiosidade pictórica: Muitos ukiyo-e eram vendidos como souvenires em Yoshiwara, quase como cartões postais do “mundo dos sonhos”.


⚙️ Era Meiji (1868–1912) — O fim dos muros e o começo da modernidade

Com a abertura do Japão ao Ocidente, o governo Meiji aboliu os distritos murados em 1872, em nome da “moralidade moderna”.
Mas, na prática, as cortesãs apenas mudaram de endereço e nome.
O conceito de “geisha” ganhou força, substituindo as oiran como símbolo cultural.

⚖️ Em 1900, surgem leis de registro e controle das “mulheres de prazer” (jōrō).
A prostituição deixa de ser “institucionalizada”, mas continua socialmente aceita em áreas específicas.


💣 Pós-guerra (1945–1960) — As “panpan girls” e o renascimento do fūzoku

Durante a ocupação americana, o Japão devastado viu um boom de prostituição informal.
As chamadas “panpan girls” serviam soldados aliados — muitas por necessidade.
O governo então cria novas regras e em 1956 promulga a Lei Antiprostituição, proibindo o sexo pago direto.

Mas, novamente, o espírito ukiyo renasce — desta vez com outro nome:
👉 Fūzoku.

Soaplands, hostess clubs e delivery health são, em essência, os herdeiros diretos de Yoshiwara e Shimabara — adaptados à legalidade moderna.


🌃 Hoje — O Mundo Flutuante Digital

O ukiyo do século XXI vive online:

  • Sites e aplicativos de deriheru substituem os portões de Yoshiwara.

  • O glamour das oiran vive nas hostesses de Kabukichō.

  • Gravuras ukiyo-e renascem em forma de mangás eróticos e arte moderna.

Mesmo proibida “no papel”, a prostituição japonesa nunca desapareceu — apenas mudou de forma, mantendo o mesmo princípio do período Edo:
🩰 “O prazer como espetáculo e performance.”


🧭 Curiosidades extras

  • 🎨 O termo ukiyo-e inspirou o nome do movimento francês Japonisme, que influenciou artistas como Van Gogh e Toulouse-Lautrec.

  • 🔥 Em 1657, um incêndio destruiu o Yoshiwara original; o novo distrito foi reconstruído em uma ilha artificial — daí o nome “Shin-Yoshiwara” (“Novo Yoshiwara”).

  • 💄 A procissão das Oiran (Oiran Dōchū) ainda é recriada anualmente em Asakusa, atraindo turistas e fotógrafos de todo o mundo.

  • 🪷 A vida nas casas de prazer inspirou uma ética peculiar: “Ichigo ichie” — “um encontro, uma vida” — o prazer como momento irrepetível.

domingo, 18 de junho de 2023

☕ Um Café no Bellacosa Mainframe Edgar “Ted” Codd Toma Chá no Condado — O Dia em que os Dados Abandonaram o Labirinto, Aprenderam SQL e Descobriram que até uma Elegante Tabela Precisa de COMMIT

 

Bellacosa Mainframe apresenta Codd Db2 SQL e banco de dados relacional

☕ Um Café no Bellacosa Mainframe

Edgar “Ted” Codd Toma Chá no Condado — O Dia em que os Dados Abandonaram o Labirinto, Aprenderam SQL e Descobriram que até uma Elegante Tabela Precisa de COMMIT

Ou: como o modelo relacional libertou o programador dos ponteiros, por que o Db2 não inventou tudo sozinho, o que ACID realmente significa e por que um SELECT * continua sendo falta de educação até numa confortável poltrona inglesa



Prólogo — Chá, biscoitos e um arquivo sequencial com 40 milhões de registros

Chovia delicadamente sobre um condado inglês cujo nome ninguém no CPD conseguia pronunciar corretamente.

Dentro de uma antiga casa de campo, Edgar Frank “Ted” Codd estava acomodado numa confortável poltrona de couro, diante de uma lareira acesa. Sobre a pequena mesa repousavam um bule de chá, biscoitos amanteigados, algumas folhas cobertas por símbolos matemáticos e, por algum acidente temporal que jamais seria explicado, um terminal 3270 conectado a um mainframe IBM.

Do outro lado da sala, um jovem programador COBOL examinava uma solicitação enviada pela Diretoria:

“Precisamos saber quantos clientes de cada cidade realizaram compras superiores a dez mil moedas nos últimos seis meses.”

O iniciante respirou fundo.

Abriu o arquivo mestre de clientes.

Abriu o arquivo de transações.

Procurou o copybook.

Descobriu que existiam quatro versões do copybook.

Uma estava num PDS chamado OLD.

Outra estava num PDS chamado OLD.BKP.

A terceira terminava com .NEW.

A quarta se chamava DEFINITIVA, o que, em ambientes corporativos, normalmente significa que não é definitiva.

— Vou precisar escrever um programa, classificar os registros, fazer um MATCH, gerar um arquivo intermediário e depois produzir o relatório — explicou o programador. — Talvez fique pronto na próxima semana.

Codd mexeu calmamente o chá.

— E se você pudesse apenas declarar qual resultado deseja?

O jovem olhou para o terminal.

— Sem dizer ao computador como percorrer cada arquivo?

— Exatamente.

— Isso parece magia.

Codd colocou o pires sobre a mesa.

— Não é magia. É matemática com um bom otimizador.

Naquele instante, em algum lugar do tempo, um gerente enviou uma mensagem dizendo que a alteração era pequena.

A chuva ficou mais forte.



1. Antes do banco relacional, os dados não viviam em cavernas

Contar essa história dizendo que, antes do modelo relacional, as empresas administravam seus dados como se usassem fichas de papel é uma boa imagem literária, mas uma explicação histórica incompleta.

As décadas de 1960 e 1970 já possuíam sistemas sofisticados de gerenciamento de dados. Empresas processavam folhas de pagamento, reservas de passagens, contas bancárias, estoques e milhões de transações sem usar SQL.

Um dos exemplos mais importantes é o IMS, o Information Management System da IBM. Ele nasceu no contexto do programa Apollo e tornou-se um dos grandes bancos de dados corporativos do mainframe.

O IMS trabalha com uma estrutura hierárquica. Para um iniciante, podemos imaginá-la como uma árvore:

CLIENTE
├── CONTA
│   ├── SALDO
│   └── LANÇAMENTO
└── CARTÃO
    ├── FATURA
    └── COMPRA

Para encontrar uma compra, a aplicação normalmente navega por um caminho previamente conhecido:

CLIENTE → CARTÃO → FATURA → COMPRA

Esse modelo pode ser extremamente rápido. Se o caminho estiver bem definido e a aplicação souber exatamente aonde deseja chegar, a navegação é eficiente.

O problema aparece quando o negócio formula uma pergunta que não combina com os caminhos existentes.

Imagine que a empresa tenha organizado os dados para consultar todas as compras de determinado cliente. Depois, a Diretoria pergunta:

“Quais produtos foram comprados por clientes de três cidades diferentes durante uma promoção específica?”

Talvez essa navegação não tenha sido prevista.

Nesse caso, poderia ser necessário:

  • escrever um novo programa;

  • navegar por diferentes segmentos;

  • extrair informações para um arquivo;

  • ordenar os registros;

  • combinar arquivos;

  • criar índices adicionais;

  • executar um batch;

  • produzir um relatório;

  • esperar a janela de processamento.

O problema não era falta de inteligência dos programadores antigos. Muito pelo contrário: eles realizavam trabalhos extraordinários com memória, CPU e armazenamento limitados.

O problema era o acoplamento entre a pergunta, a estrutura lógica dos dados e o caminho físico utilizado para encontrá-los.

O programa precisava saber não apenas o que procurar, mas como chegar até lá.



2. Codd não queria apenas inventar uma tabela bonita

Edgar Frank Codd, conhecido como Ted Codd, era matemático e pesquisador da IBM. Em 1970, publicou o artigo:

A Relational Model of Data for Large Shared Data Banks.

Esse trabalho se tornou uma das bases mais importantes da computação moderna.

É comum resumir sua contribuição assim:

“Codd organizou os dados em tabelas com linhas e colunas.”

Não está errado, mas é semelhante a dizer que Alan Turing “trabalhava com fitas”. A descrição mostra a superfície e esconde a revolução.

Codd desejava criar uma fronteira clara entre:

  • a representação lógica dos dados;

  • a forma de consultá-los;

  • sua organização física dentro da máquina.

Em outras palavras, ele queria proteger o usuário e o programador da obrigação de conhecer todos os detalhes internos de armazenamento.

Antes, a aplicação podia precisar dizer:

“Comece pelo registro mestre, siga este ponteiro, abra aquele conjunto, leia o próximo segmento e continue até encontrar o código desejado.”

No modelo relacional, a aplicação poderia declarar:

SELECT NOME, SALDO
FROM CONTA
WHERE SALDO < 0;

A pergunta descreve o resultado. Ela não determina detalhadamente o caminho físico.

Essa é a grande virada:

Modelo navegacional:
“Explique por onde devo caminhar.”

Modelo relacional:
“Explique qual resultado deseja.”

O banco de dados recebe a responsabilidade de descobrir uma estratégia adequada.

Codd não estava apenas organizando registros. Ele estava propondo independência de dados.


3. Relação, tupla e atributo: a matemática entrou no CPD

Uma relação pode ser apresentada ao iniciante como uma tabela:

CONTACLIENTEAGÊNCIASALDO
1001Ana1205.500,00
1002Bruno120-320,00
1003Carla450810,00

Na linguagem formal:

  • a tabela corresponde aproximadamente a uma relação;

  • cada linha é uma tupla;

  • cada coluna é um atributo;

  • o conjunto de valores permitidos para um atributo é seu domínio;

  • uma chave identifica uma tupla;

  • as restrições protegem a integridade dos dados.

Por que usamos “aproximadamente”?

Porque uma relação matemática não é simplesmente uma planilha. Ela possui propriedades formais. Não depende visualmente da ordem das linhas, não deveria conter tuplas duplicadas e representa um conjunto de fatos.

Considere:

SELECT CLIENTE, SALDO
FROM CONTA
WHERE SALDO < 0;

Em linguagem humana, estamos pedindo:

“Forme uma relação contendo cliente e saldo para as tuplas nas quais o saldo seja negativo.”

Podemos combinar relações:

SELECT C.NOME,
       P.NUMERO_PEDIDO,
       P.VALOR
FROM CLIENTE C
JOIN PEDIDO P
  ON P.ID_CLIENTE = C.ID_CLIENTE
WHERE P.VALOR > 10000;

O JOIN não manda o computador seguir obrigatoriamente um ponteiro físico entre dois registros. Ele declara a condição lógica que relaciona as informações:

P.ID_CLIENTE = C.ID_CLIENTE

O sistema pode escolher diferentes estratégias para produzir o resultado.

O programador passou a pensar mais sobre conjuntos, predicados e resultados — e menos sobre o endereço físico do próximo registro.

Isso não eliminou a necessidade de compreender arquivos, páginas, índices ou buffers. Apenas mudou quem deve decidir cada detalhe e em qual momento.


4. System R: quando a teoria precisou funcionar fora da poltrona

Uma teoria pode ser elegante enquanto toma chá ao lado da lareira. O problema começa quando alguém pede que ela processe a folha de pagamento.

Após o trabalho de Codd, a IBM iniciou o projeto System R em seu laboratório de San Jose. O objetivo era descobrir se um sistema relacional poderia ser construído de forma prática e com desempenho aceitável.

A pergunta era séria.

Muitos especialistas acreditavam que a flexibilidade do modelo relacional teria um custo alto demais. Um sistema navegacional já conhecia seus caminhos. Um banco relacional teria de receber uma pergunta abstrata e descobrir como executá-la.

O System R demonstrou que isso era possível.

O projeto trabalhou com conceitos que se tornariam fundamentais:

  • linguagem declarativa;

  • catálogo de metadados;

  • índices;

  • transações;

  • controle de concorrência;

  • recuperação;

  • autorização;

  • views;

  • compilação de consultas;

  • otimização baseada em custo;

  • escolha automática de caminhos de acesso.

O System R não foi simplesmente “o primeiro Db2”. Era um projeto experimental, uma oficina na qual muitas ideias foram construídas, testadas, descartadas ou aperfeiçoadas.

Seu valor histórico está em provar que o modelo relacional não era apenas uma bela teoria matemática. Poderia sustentar trabalho comercial de verdade.

Codd desenhou o mapa.

O System R colocou botas, capa de chuva e saiu para verificar se a estrada existia.


5. SEQUEL: o dia em que a consulta tentou falar inglês

Donald Chamberlin e Raymond Boyce desenvolveram uma linguagem para trabalhar com o System R. Inicialmente, ela foi chamada SEQUEL, de Structured English Query Language.

Mais tarde, o nome foi reduzido para SQL, Structured Query Language.

Isso explica por que algumas pessoas pronunciam “és-quiú-él” e outras dizem “sequel”. As duas pronúncias carregam pedaços da história.

Veja esta consulta:

SELECT NOME
FROM FUNCIONARIO
WHERE DEPARTAMENTO = 'CONTABILIDADE';

Ela se aproxima de uma frase em inglês:

Selecione o nome do funcionário onde o departamento seja Contabilidade.

Não é linguagem natural. Não podemos conversar livremente com o banco como se ele fosse Jeeves, o mordomo da casa de campo. Porém, comparado às interfaces de baixo nível, era uma enorme aproximação da linguagem utilizada pelas pessoas.

O SQL é declarativo.

Você informa o que deseja, não necessariamente como executar.

Compare dois pensamentos.

Pensamento navegacional

  1. Abra o arquivo de funcionários.

  2. Leia o primeiro registro.

  3. Verifique o departamento.

  4. Se for Contabilidade, grave o nome.

  5. Leia o próximo registro.

  6. Repita até o fim.

Pensamento relacional

SELECT NOME
FROM FUNCIONARIO
WHERE DEPARTAMENTO = 'CONTABILIDADE';

Parece simples porque alguém colocou uma enorme quantidade de engenharia atrás dessa simplicidade.


6. O otimizador: o mordomo invisível da mansão

O SQL diz o que queremos. Mas alguém ainda precisa decidir como encontrar o resultado.

Esse alguém é o otimizador.

Imagine duas tabelas:

CLIENTE     20 milhões de linhas
TRANSACAO    4 bilhões de linhas

Agora execute:

SELECT C.NOME,
       SUM(T.VALOR)
FROM CLIENTE C
JOIN TRANSACAO T
  ON T.ID_CLIENTE = C.ID_CLIENTE
WHERE C.CIDADE = 'ITATIBA'
GROUP BY C.NOME;

Existem várias estratégias possíveis:

  • ler todos os clientes;

  • usar um índice sobre cidade;

  • começar pelas transações;

  • começar pelos clientes selecionados;

  • usar um nested-loop join;

  • classificar valores;

  • utilizar paralelismo;

  • ler antecipadamente páginas;

  • empregar um índice composto;

  • criar resultados intermediários.

O otimizador examina informações como:

  • número estimado de linhas;

  • quantidade de páginas;

  • distribuição dos valores;

  • seletividade;

  • índices disponíveis;

  • organização dos objetos;

  • custos estimados de CPU e entrada/saída;

  • possibilidade de paralelismo;

  • ordem das tabelas no JOIN.

Patricia Selinger e a equipe do System R tiveram papel decisivo na criação da otimização baseada em custo.

O otimizador é como um mordomo inglês eficiente. O visitante diz:

“Gostaria de chá.”

Ele não precisa explicar:

  1. em qual armário está o bule;

  2. qual torneira fornece água;

  3. quanto tempo a água deve ser aquecida;

  4. onde ficam as xícaras;

  5. qual bandeja deve ser usada.

O mordomo escolhe o caminho.

Mas, se as informações estiverem erradas, talvez ele procure o chá na biblioteca e encontre apenas uma instalação antiga do IMS.

No Db2, estatísticas desatualizadas podem levar o otimizador a tomar decisões inadequadas. É por isso que existem utilitários e atividades como:

  • RUNSTATS;

  • REORG;

  • EXPLAIN;

  • manutenção de índices;

  • análise do access path.

O SQL esconde detalhes. Ele não apaga as consequências físicas.


7. Db2: quando o modelo relacional entrou no MVS

Em 1983, a IBM lançou o Database 2, depois grafado Db2, para o ambiente MVS nos mainframes.

Às vezes se afirma que o Db2 foi o primeiro banco de dados relacional comercial. Isso não é correto.

Antes dele:

  • a IBM já havia lançado o SQL/DS;

  • a Oracle já comercializava um banco relacional;

  • o Ingres também participava dessa história.

O Db2 não precisa receber um troféu que pertence a uma história mais coletiva. Sua realização real já é gigantesca.

Ele levou a tecnologia relacional ao centro de ambientes MVS com exigências corporativas severas:

  • grande volume de dados;

  • muitas aplicações concorrentes;

  • processamento batch;

  • transações online;

  • recuperação;

  • segurança;

  • disponibilidade;

  • integridade;

  • auditoria;

  • compatibilidade;

  • administração centralizada.

O Db2 ajudou a demonstrar que uma base relacional podia cuidar de contas bancárias, reservas, pedidos, faturas e estoques sem desmaiar quando o laboratório se transformasse em produção.

Existe uma diferença enorme entre executar uma consulta numa demonstração e manter milhares de transações trabalhando enquanto o fechamento contábil, o CICS e o batch disputam recursos.

O mainframe foi a forja porque as ideias precisaram sobreviver ao mundo real.


8. ACID: não foi inventado pelo Db2, mas encontrou nele uma casa respeitável

Uma imprecisão comum é afirmar que o Db2 criou as propriedades ACID.

Os conceitos transacionais foram desenvolvidos durante vários anos e apareceram em sistemas anteriores. A formulação clássica do acrônimo ACID foi consolidada por Theo Härder e Andreas Reuter num importante artigo publicado também em 1983.

O Db2 não inventou sozinho o ACID. Entretanto, colocou essas propriedades em prática em um dos ambientes empresariais mais exigentes do mundo.

ACID significa:

  • Atomicidade;

  • Consistência;

  • Isolamento;

  • Durabilidade.

Vamos visitar cada cômodo da mansão.


8.1 Atomicidade — não existe meia transferência

Considere:

UPDATE CONTA
   SET SALDO = SALDO - 500
 WHERE NUMERO = 1001;

UPDATE CONTA
   SET SALDO = SALDO + 500
 WHERE NUMERO = 2002;

COMMIT;

A transação possui duas atualizações:

  1. retirar 500 da primeira conta;

  2. acrescentar 500 à segunda.

Se o sistema executar somente o débito, teremos uma transferência pela metade.

Atomicidade significa que a unidade lógica é indivisível:

  • tudo acontece;

  • ou nada permanece.

Se uma etapa falhar antes da confirmação, o sistema deve desfazer o trabalho incompleto com ROLLBACK.

Atomicidade não significa que a transação seja pequena ou instantânea. Significa que seus efeitos são considerados como uma unidade.


8.2 Consistência — o banco não pode sair pela janela usando pantufas

Uma transação deve conduzir o banco de um estado válido para outro estado válido.

Algumas regras podem ser expressas pelo próprio banco:

SALDO DECIMAL(15,2) NOT NULL

Uma chave estrangeira pode impedir a existência de uma conta associada a um cliente inexistente. Uma constraint pode impedir determinado valor proibido. Uma chave primária pode evitar duplicidade.

Mas o SGBD não conhece telepaticamente todas as regras do negócio.

A empresa precisa definir:

  • constraints;

  • validações;

  • regras na aplicação;

  • triggers, quando apropriadas;

  • políticas de integridade;

  • tratamento de erros.

Se o negócio determina que um cliente menor de idade não pode contratar certo produto, alguém precisa transformar essa regra numa proteção técnica.

O Db2 protege aquilo que foi corretamente especificado. Ele não possui bola de cristal, embora alguns planos de execução pareçam ter sido escritos por Nostradamus.


8.3 Isolamento — dois caixas e o último saldo disponível

Imagine uma conta com saldo de 500.

Dois terminais consultam o valor quase simultaneamente:

Terminal A lê: 500
Terminal B lê: 500

O Terminal A tenta sacar 500.

O Terminal B também tenta sacar 500.

Sem controle adequado, ambos poderiam acreditar que o dinheiro está disponível.

Isolamento controla a interferência entre transações concorrentes.

No Db2, o programador precisa conhecer conceitos como:

  • locks;

  • timeout;

  • deadlock;

  • cursor stability;

  • read stability;

  • repeatable read;

  • uncommitted read;

  • WITH UR;

  • unidade de trabalho.

Isolamento demais pode produzir contenção. Isolamento de menos pode permitir comportamentos indesejáveis.

A escolha correta depende do negócio.

Uma consulta estatística talvez tolere uma leitura ainda não confirmada. Uma movimentação financeira normalmente exige proteções muito mais rigorosas.

Colocar WITH UR em tudo porque “fica mais rápido” é como remover as fechaduras da casa para economizar tempo ao entrar.


8.4 Durabilidade — depois do COMMIT, acabou a poesia

Quando o sistema informa que uma transação foi confirmada, seu resultado precisa sobreviver a falhas.

Se o cliente concluiu um pagamento e recebeu a confirmação, o banco não pode reiniciar e responder:

“Pedimos desculpas. O seu pagamento era apenas uma experiência temporária em memória.”

Logs, checkpoints e mecanismos de recuperação ajudam a fornecer durabilidade.

O COMMIT representa uma fronteira importante. Antes dele, o trabalho pode ser desfeito. Depois dele, o resultado confirmado precisa permanecer.

Por isso a frase merece ser gravada no pires de todo programador iniciante:

COMMIT não é pontuação estética. É uma decisão de negócio.

Um COMMIT cedo demais pode quebrar a atomicidade de uma operação maior. Um COMMIT tarde demais pode manter recursos e locks durante muito tempo.


9. Quando o SQL encontra o COBOL

O SQL não substituiu automaticamente o COBOL. No mainframe, eles frequentemente trabalham juntos.

Um programa pode conter SQL embutido:

       EXEC SQL
           SELECT NOME,
                  SALDO
             INTO :WS-NOME,
                  :WS-SALDO
             FROM CONTA
            WHERE NUMERO_CONTA = :WS-NUMERO-CONTA
       END-EXEC.

Observe as variáveis precedidas por dois-pontos:

:WS-NOME
:WS-SALDO
:WS-NUMERO-CONTA

São host variables: campos do programa COBOL utilizados para trocar valores com o Db2.

O compilador COBOL, sozinho, não entende toda a instrução SQL. Existe um processo que pode envolver:

  1. preparação do fonte;

  2. precompilação das instruções SQL;

  3. criação do DBRM;

  4. compilação COBOL;

  5. link-edit;

  6. BIND do DBRM em um package;

  7. eventual ligação do package a uma collection ou plan;

  8. execução.

O programa também precisa tratar resultados:

       EVALUATE SQLCODE
           WHEN 0
               CONTINUE
           WHEN +100
               DISPLAY 'CONTA NAO ENCONTRADA'
           WHEN OTHER
               DISPLAY 'ERRO SQL: ' SQLCODE
       END-EVALUATE

Para o iniciante:

  • SQLCODE = 0 normalmente indica sucesso;

  • SQLCODE = +100 normalmente indica que nenhuma linha foi encontrada ou que o cursor chegou ao fim;

  • SQLCODE negativo indica erro;

  • SQLSTATE fornece uma representação padronizada da condição.

Ignorar o SQLCODE porque o programa compilou é como ignorar o alarme de incêndio porque a campainha possui uma melodia agradável.


10. Consulta única e cursor: chá para um ou banquete para muitos

Se uma consulta deve retornar apenas uma linha, podemos usar SELECT ... INTO.

Mas, quando várias linhas podem ser retornadas, normalmente utilizamos um cursor.

Exemplo conceitual:

       EXEC SQL
           DECLARE C1 CURSOR FOR
               SELECT NOME,
                      SALDO
                 FROM CONTA
                WHERE AGENCIA = :WS-AGENCIA
                ORDER BY NOME
       END-EXEC.

Depois:

       EXEC SQL
           OPEN C1
       END-EXEC.

A aplicação busca cada linha:

       EXEC SQL
           FETCH C1
            INTO :WS-NOME,
                 :WS-SALDO
       END-EXEC.

Ao final:

       EXEC SQL
           CLOSE C1
       END-EXEC.

O fluxo é:

DECLARE → OPEN → FETCH → FETCH → FETCH → CLOSE

O cursor é semelhante a uma lista preparada pelo mordomo. O programa não recebe necessariamente todos os convidados de uma vez; solicita o próximo nome conforme avança.

É preciso tratar corretamente o SQLCODE +100, pois ele indica o fim do conjunto de resultados.


11. SELECT *: a bandeja grande demais

O comando abaixo é conveniente:

SELECT *
FROM CLIENTE
WHERE CPF = :WS-CPF;

Entretanto, em aplicações, ele pode ser uma má escolha.

Problemas possíveis:

  • recupera colunas desnecessárias;

  • aumenta o tráfego interno;

  • cria dependência da estrutura da tabela;

  • reduz a clareza;

  • pode prejudicar estratégias envolvendo índices;

  • dificulta manutenção;

  • pode surpreender quando a tabela recebe novas colunas.

Prefira declarar o necessário:

SELECT NOME,
       DATA_NASCIMENTO,
       SITUACAO
FROM CLIENTE
WHERE CPF = :WS-CPF;

No chá inglês, ninguém pede:

“Traga tudo o que houver na cozinha.”

Pede-se chá, leite, açúcar e dois biscoitos.

O mesmo princípio vale para o Db2.


12. O catálogo: quando o banco aprendeu a falar sobre si próprio

Um banco relacional não armazena somente dados de clientes, contas e produtos. Ele também guarda metadados, ou seja, dados sobre os próprios dados.

O catálogo contém informações sobre:

  • tabelas;

  • colunas;

  • tipos;

  • índices;

  • views;

  • packages;

  • privilégios;

  • tablespaces;

  • dependências;

  • estatísticas.

Isso permite responder a perguntas administrativas:

  • Quais colunas existem?

  • Qual índice atende esta tabela?

  • Quem possui determinada autorização?

  • Quais packages dependem deste objeto?

  • Quando as estatísticas foram atualizadas?

  • Qual é a cardinalidade estimada?

  • Que objetos podem ser afetados por uma alteração?

O catálogo transformou o banco num sistema capaz de descrever a própria estrutura.

Ferramentas modernas de governança, geração de código, descoberta de dados e administração continuam explorando esse princípio.

O banco de dados ganhou um espelho — e, como todo sistema antigo, às vezes não gostou do que viu depois de quinze anos sem RUNSTATS.


13. Passo a passo para o iniciante pensar como Codd sem esquecer que trabalha no CPD

Passo 1 — Entenda a pergunta de negócio

Antes de escrever SQL, descubra:

  • o que precisa ser retornado;

  • qual é o período;

  • quais filtros se aplicam;

  • quantas linhas são esperadas;

  • se duplicidades são permitidas;

  • qual precisão é necessária;

  • se a consulta apenas lê ou também altera dados.

Uma consulta tecnicamente perfeita pode responder à pergunta errada.

Passo 2 — Identifique as relações necessárias

Pergunte:

  • Em qual tabela está o cliente?

  • Onde estão as contas?

  • Como as tabelas se relacionam?

  • Qual coluna representa a chave?

  • Existe histórico?

  • Uma conta pode ter mais de um titular?

Não invente relacionamentos observando nomes parecidos.

COD-CLI e ID-CLIENTE podem representar a mesma coisa — ou podem ser duas entidades distintas criadas depois de uma aquisição em 1997.

Passo 3 — Escreva o resultado mínimo

Evite buscar dados que não serão utilizados.

SELECT C.NOME,
       SUM(T.VALOR)
FROM CLIENTE C
JOIN TRANSACAO T
  ON T.ID_CLIENTE = C.ID_CLIENTE
WHERE T.DATA_TRANSACAO BETWEEN :WS-DATA-INICIAL
                           AND :WS-DATA-FINAL
GROUP BY C.NOME;

Passo 4 — Teste casos normais e extremos

Teste:

  • nenhuma linha;

  • uma linha;

  • várias linhas;

  • valores nulos;

  • duplicidades;

  • datas-limite;

  • valores máximos;

  • caracteres especiais;

  • condições de erro.

Passo 5 — Examine o caminho de acesso

Use EXPLAIN e ferramentas disponíveis no ambiente.

Descubra:

  • se o índice foi utilizado;

  • se houve tablespace scan;

  • qual foi a ordem do join;

  • qual cardinalidade foi estimada;

  • se as estatísticas estão atualizadas.

Passo 6 — Planeje a unidade de trabalho

Determine:

  • onde começa a transação;

  • onde ocorre o COMMIT;

  • quando executar ROLLBACK;

  • quais recursos permanecem bloqueados;

  • o que fazer em caso de deadlock ou timeout.

Passo 7 — Trate todos os retornos

Não trate apenas o caminho feliz.

Um programa de produção precisa saber responder a:

  • linha inexistente;

  • duplicidade inesperada;

  • violação de integridade;

  • indisponibilidade;

  • deadlock;

  • timeout;

  • erro de autorização;

  • falha no package;

  • dado incompatível com a host variable.

Passo 8 — Meça

Não declare que a consulta está rápida porque funcionou com dez linhas no ambiente de desenvolvimento.

Produção pode possuir:

  • bilhões de linhas;

  • concorrência;

  • cache diferente;

  • estatísticas diferentes;

  • índices diferentes;

  • distribuição desigual;

  • cargas batch simultâneas.

O laboratório é uma xícara. A produção é o oceano onde o bule caiu.


14. O que PostgreSQL, Oracle, SQL Server, MySQL e Snowflake herdaram

Quando usamos SQL nesses produtos, estamos trabalhando com ideias cuja genealogia passa por Codd, System R e SEQUEL.

A herança inclui:

  • relações;

  • tabelas;

  • linhas e colunas;

  • chaves;

  • joins;

  • constraints;

  • views;

  • consultas declarativas;

  • catálogos;

  • transações;

  • otimizadores.

Isso não significa que todos sejam cópias do Db2.

Cada produto possui sua história, arquitetura e implementação:

  • PostgreSQL descende do projeto POSTGRES;

  • Oracle criou sua própria linha comercial;

  • Microsoft SQL Server desenvolveu seu próprio ecossistema;

  • MySQL adotou motores e escolhas particulares;

  • Snowflake utiliza SQL sobre uma arquitetura distribuída orientada à nuvem.

A herança é conceitual e linguística. Não é necessariamente uma linhagem direta de código-fonte.

É semelhante ao latim: português, espanhol, italiano e francês compartilham raízes, mas não são o mesmo idioma nem funcionam de maneira idêntica.

Codd ajudou a criar a gramática intelectual. Diferentes empresas construíram suas próprias cidades sobre esse território.


15. O mainframe é realmente a fonte de todas as tecnologias?

A frase “The Fountain From Which All Other Technologies Flow” é uma excelente provocação, mas deve ser tratada como metáfora.

Nem tudo nasceu no mainframe.

A computação moderna também recebeu contribuições decisivas de:

  • universidades;

  • laboratórios governamentais;

  • empresas concorrentes;

  • sistemas Unix;

  • redes acadêmicas;

  • computadores pessoais;

  • projetos de código aberto;

  • telecomunicações;

  • centros de pesquisa internacionais.

Entretanto, o mainframe foi uma das grandes forjas da computação empresarial.

Foi nele que muitas ideias precisaram aprender a conviver com:

  • dinheiro real;

  • milhares de usuários;

  • auditoria;

  • falhas;

  • concorrência;

  • segurança;

  • processamento contínuo;

  • compatibilidade por décadas;

  • consequências jurídicas e financeiras.

No laboratório, uma falha produz um relatório.

Num banco, ela pode produzir um saldo incorreto.

Numa companhia aérea, pode vender o mesmo assento duas vezes.

No varejo, pode reduzir o estoque sem confirmar a venda.

O mainframe ensinou uma lição que retorna em todas as gerações tecnológicas:

Uma tecnologia não está madura apenas quando funciona. Ela está madura quando falha de maneira controlada, recupera-se corretamente e preserva aquilo que já havia confirmado.


Epílogo — O último COMMIT antes da chuva parar

O jovem programador COBOL terminou sua consulta:

SELECT C.CIDADE,
       COUNT(DISTINCT C.ID_CLIENTE) AS CLIENTES,
       SUM(P.VALOR) AS VALOR_TOTAL
FROM CLIENTE C
JOIN PEDIDO P
  ON P.ID_CLIENTE = C.ID_CLIENTE
WHERE P.DATA_PEDIDO >= :WS-DATA-LIMITE
  AND P.VALOR > 10000
GROUP BY C.CIDADE
ORDER BY VALOR_TOTAL DESC;

Codd observou a tela.

— Muito melhor — disse ele.

— Então não preciso mais conhecer arquivos, índices, buffers, locks ou caminhos de acesso?

Codd interrompeu a xícara antes que ela tocasse os lábios.

O silêncio tomou a sala.

Até o terminal 3270 pareceu escurecer.

— Meu jovem, eu lhe dei independência de dados. Não lhe dei licença para ignorar o computador.

O programador abriu o EXPLAIN.

Descobriu um tablespace scan sobre bilhões de linhas.

As estatísticas estavam desatualizadas.

O índice que todos juravam existir havia sido removido durante uma mudança emergencial três anos antes.

No catálogo, o responsável pela alteração aparecia como USER01.

Ninguém conhecia USER01.

Na lareira, uma chama assumiu por um instante a forma de uma mensagem:

DSNT408I SQLCODE = -911

Era o easter egg deixado pelo fantasma de uma transação vítima de deadlock.

Depois de corrigir a consulta, atualizar as estatísticas e testar a unidade de trabalho, o jovem executou novamente o programa.

O relatório apareceu.

Os saldos permaneceram corretos.

O COMMIT foi realizado no momento adequado.

Codd finalmente bebeu o chá.


Conclusão — Os dados não aprenderam apenas uma linguagem

Edgar F. Codd não inventou simplesmente uma maneira conveniente de desenhar tabelas. Ele ajudou a mudar a relação entre pessoas, programas e dados.

O modelo relacional ofereceu:

  • independência entre lógica e armazenamento;

  • uma base matemática;

  • operações sobre conjuntos;

  • consultas declarativas;

  • maior flexibilidade para formular novas perguntas;

  • um terreno comum para linguagens como SQL.

O System R demonstrou que a teoria poderia funcionar.

SEQUEL, depois SQL, deu aos dados uma linguagem declarativa.

O SQL/DS iniciou a transformação em produto dentro da IBM.

O Db2 levou essa herança ao coração do MVS e das cargas empresariais críticas.

O mainframe submeteu tudo à pressão de bancos, companhias aéreas, governos, seguradoras e varejistas que não poderiam aceitar um resultado “aproximadamente correto”.

O Db2 não inventou sozinho o banco relacional, não foi o primeiro produto comercial dessa categoria e não criou isoladamente o ACID. Reconhecer essas nuances não reduz sua importância. Ao contrário: permite enxergar sua verdadeira grandeza.

Codd forneceu o modelo.

Chamberlin e Boyce ajudaram a criar a linguagem.

Selinger e sua equipe ensinaram o sistema a escolher caminhos.

Härder e Reuter consolidaram o vocabulário do ACID.

Muitos engenheiros transformaram pesquisa em produto.

E o mainframe colocou tudo diante do teste definitivo:

Funciona em produção, sob concorrência, depois de uma falha, sem perder o dinheiro de ninguém?

Quando hoje escrevemos:

SELECT *
FROM HISTORIA
WHERE TECNOLOGIA = 'MODERNA';

encontramos cloud, PostgreSQL, Oracle, SQL Server, MySQL, data warehouses e plataformas distribuídas.

Mas, se acrescentarmos:

AND ORIGEM_CONCEITUAL = 'MODELO RELACIONAL';

Ted Codd ainda estará lá, tomando chá numa confortável poltrona inglesa, olhando discretamente para o otimizador e lembrando ao programador COBOL:

Diga ao banco o que você deseja. Depois verifique com muito cuidado o que ele decidiu fazer.

sábado, 17 de junho de 2023

IBM Z Resiliency Como um Padawan COBOL Pode Evoluir do "Meu Programa Funciona" para "Meu Sistema Nunca Para"

 

Bellacosa Mainframe expande as ideias em IBM Z Resiliency

☕ Um Café no Bellacosa Mainframe

O Holocron da IBM Z Resiliency

Como um Padawan COBOL Pode Evoluir do "Meu Programa Funciona" para "Meu Sistema Nunca Para"

"O melhor programa COBOL não é apenas aquele que produz o resultado correto. É aquele que continua produzindo o resultado correto mesmo quando discos falham, servidores reiniciam, links caem, operadores cometem erros e o datacenter enfrenta uma crise."


Introdução

Quando um desenvolvedor COBOL começa sua jornada no IBM Z, normalmente sua preocupação é bastante simples:

  • aprender PROCEDURE DIVISION;

  • entender WORKING-STORAGE;

  • fazer READ e WRITE em arquivos VSAM;

  • acessar Db2;

  • executar um programa via JCL;

  • tratar um SQLCODE.

Tudo isso é importante.

Mas existe uma realidade muito maior que normalmente só é descoberta anos depois.

Seu programa não vive sozinho.

Ele faz parte de um enorme ecossistema composto por:

  • IBM Z Hardware

  • z/OS

  • JES2

  • WLM

  • CICS

  • IMS

  • Db2

  • MQ

  • RACF

  • GDPS

  • Parallel Sysplex

  • Storage

  • Redes

  • Operação

  • Monitoramento

  • Backup

  • Disaster Recovery

Todo esse conjunto possui um único objetivo:

Nunca deixar o negócio parar.

É justamente isso que a IBM chama de Resiliency.


O maior equívoco do desenvolvedor iniciante

O Padawan COBOL costuma pensar:

"Meu programa compilou."

Depois:

"Funcionou no teste."

Depois:

"Funcionou em produção."

Fim da história.

Na realidade...

A história apenas começou.

Porque a pergunta correta nunca é:

"O programa funciona?"

A pergunta correta é:

"Ele continua funcionando quando alguma coisa dá errado?"

Essa mudança de mentalidade separa um programador júnior de um engenheiro de software para ambientes críticos.


O mundo perfeito não existe

Imagine um banco.

Às 10 horas da manhã.

Existem:

  • 8 milhões de clientes conectados.

  • milhares de caixas eletrônicos.

  • PIX.

  • cartões.

  • internet banking.

  • aplicativos móveis.

  • APIs REST.

  • Open Finance.

Nesse momento:

uma CPU apresenta defeito.

O que acontece?

Se você respondeu:

"O banco para."

Você ainda está pensando como quem programa um computador doméstico.

No IBM Z, o esperado é que ninguém perceba.

Esse é o verdadeiro significado da palavra Resiliency.


Resiliência não significa nunca falhar

Essa é outra confusão muito comum.

Nenhum computador é perfeito.

Discos quebram.

Memórias apresentam defeitos.

Cabos rompem.

Fontes queimam.

Operadores erram comandos.

Aplicações possuem bugs.

Até meteoros poderiam destruir um datacenter.

Resiliência significa:

Aceitar que falhas acontecerão e projetar o sistema para continuar operando apesar delas.


O conceito mais importante

A IBM define resiliência como:

Capacidade de fornecer os serviços necessários diante da adversidade sem impacto significativo.

Perceba um detalhe.

Ela não fala em hardware.

Ela não fala em COBOL.

Ela fala em:

Serviço.

O cliente quer sacar dinheiro.

Ele não quer saber quantas CPUs existem.


O iceberg invisível

Quando você executa:

EXEC SQL
SELECT SALDO
END-EXEC

Você enxerga apenas uma linha.

Por trás dela existem dezenas de componentes trabalhando juntos.

Seu programa depende de:

  • compilador COBOL;

  • runtime;

  • Db2;

  • buffer pools;

  • storage;

  • cache;

  • canais FICON;

  • discos;

  • processadores;

  • WLM;

  • z/OS;

  • JES;

  • rede;

  • segurança RACF.

A resiliência protege toda essa cadeia.


O verdadeiro custo de um downtime

Muitos iniciantes imaginam:

"Se o sistema parar por cinco minutos não faz diferença."

Na prática, cinco minutos podem significar:

  • milhões de transações não realizadas;

  • PIX rejeitados;

  • compras canceladas;

  • multas;

  • perda de reputação;

  • ações caindo na bolsa.

O Redbook mostra que o custo de uma interrupção vai muito além da infraestrutura. Há perdas diretas de receita, custos fixos durante a parada e impactos intangíveis, como perda de confiança dos clientes e danos à marca.


O famoso RAS

Quase todo Sysprog conhece esta sigla.

Reliability

Confiabilidade.

Quanto menor a chance de quebrar.

Availability

Disponibilidade.

Mesmo quebrando,

continua funcionando.

Serviceability

Facilidade para manutenção.

Trocar peças.

Atualizar firmware.

Fazer manutenção.

Sem parar o ambiente.


O COBOL participa da Resiliência?

Sim.

Muito mais do que parece.

Um programa COBOL mal escrito pode derrubar um ambiente inteiro.

Por exemplo:

  • LOOP infinito.

  • COMMIT inexistente.

  • Deadlock.

  • Consumo exagerado de CPU.

  • SQL sem índice.

  • Arquivos bloqueados.

  • Storage leak.

  • Falta de tratamento de exceção.

Resiliência também é responsabilidade do desenvolvedor.


O que um Padawan precisa aprender

Primeira fase.

Programar.

Segunda fase.

Programar corretamente.

Terceira fase.

Programar para recuperação.

Quarta fase.

Programar pensando na infraestrutura.

Quinta fase.

Programar pensando no negócio.

Essa evolução leva anos.


A importância do COMMIT

Imagine:

Você atualiza:

100.000 registros.

No registro 99.999 ocorre uma queda elétrica.

Sem COMMIT.

Tudo volta.

Com COMMIT periódico.

A perda é mínima.

O programa consegue reiniciar.

Esse pequeno detalhe pode economizar horas de processamento.


Checkpoints

Batchs gigantes normalmente possuem checkpoints.

Imagine um processamento de:

40 milhões de clientes.

No cliente 39 milhões ocorre uma falha.

Sem checkpoint.

Tudo recomeça.

Com checkpoint.

Continua do ponto salvo.

É resiliência aplicada ao desenvolvimento.


Idempotência

Uma palavra moderna.

Mas extremamente útil.

Se o mesmo programa executar novamente,

ele não deve:

duplicar pagamentos;

duplicar TED;

duplicar PIX;

duplicar lançamentos.

Grandes sistemas financeiros dependem disso.


Tratamento de exceções

Nunca escreva:

IF SQLCODE NOT = 0
    DISPLAY 'ERRO'
END-IF

Isso não resolve nada.

Um bom programa:

  • registra logs;

  • identifica contexto;

  • faz rollback quando necessário;

  • encerra de forma segura;

  • permite recuperação.


O papel do WLM

O Workload Manager decide quem recebe prioridade.

Imagine:

  • Folha de pagamento.

  • PIX.

  • Batch estatístico.

Quem deve receber CPU primeiro?

O WLM responde.

Seu programa faz parte dessa fila.


Parallel Sysplex

Talvez seja a tecnologia mais famosa do IBM Z.

Vários sistemas trabalham como se fossem um único computador.

Se um deles cair,

os demais continuam.

O usuário nem percebe.

Parece magia.

Na realidade,

é engenharia.


GDPS

Geographically Dispersed Parallel Sysplex.

Imagine:

São Paulo inteiro sem energia.

Outro datacenter assume.

Essa é a ideia.

Algumas empresas conseguem continuar operando mesmo após perder completamente um site.


Zero Data Loss

Um conceito impressionante.

Perder:

zero.

Nem um registro.

Nem um pagamento.

Nem um PIX.

Nem um centavo.

Nem um byte.

É um objetivo que depende de arquiteturas de replicação síncrona e soluções como GDPS e tecnologias de espelhamento de armazenamento.


Curiosidade

Muitos bancos realizam manutenção durante o horário comercial.

Você nem percebe.

Enquanto um sistema recebe manutenção,

outro assume.

Depois ocorre o inverso.

Esse processo chama-se:

Rolling Maintenance.


Easter Egg nº 1

O maior inimigo da disponibilidade nem sempre é o hardware.

É o operador.

Estudos da indústria mostram que erros humanos continuam entre as causas mais frequentes de indisponibilidade.

Por isso existem:

  • automação;

  • procedimentos;

  • scripts;

  • validações;

  • System Automation;

  • Runbooks.


Easter Egg nº 2

Os engenheiros IBM costumam perseguir um objetivo curioso.

Eliminar o que chamam de:

Single Point of Failure

Qualquer componente único que possa derrubar todo o ambiente.

Vale para:

  • CPU;

  • disco;

  • switch;

  • cabo;

  • storage;

  • operador;

  • documentação.

Até pessoas podem ser um "Single Point of Failure" quando apenas um especialista conhece um procedimento crítico.


Easter Egg nº 3

Um COBOL pode ser resiliente mesmo sendo escrito há 40 anos.

Se:

  • estiver bem estruturado;

  • tratar exceções;

  • possuir restart;

  • possuir checkpoints;

  • respeitar transações;

ele continua extremamente moderno.


O que estudar depois deste curso

Depois de entender Resiliency, o caminho natural é aprofundar-se na própria stack IBM Z.

Infraestrutura

  • IBM Z Hardware

  • CPC

  • LPAR

  • PR/SM

  • HMC

Sistema Operacional

  • z/OS

  • JES2

  • SDSF

  • WLM

  • SMF

  • RMF

Armazenamento

  • DFSMS

  • DFSMShsm

  • Copy Services

  • Metro Mirror

  • Global Mirror

Redes

  • VTAM

  • TCP/IP

  • DVIPA

  • Sysplex Distributor

Middleware

  • CICS

  • IMS

  • Db2

  • MQ

Alta Disponibilidade

  • Parallel Sysplex

  • Coupling Facility

  • Data Sharing

  • GDPS

Operação

  • IBM System Automation

  • OMEGAMON

  • IBM Z Operations Analytics


As habilidades modernas do desenvolvedor COBOL

O mercado mudou.

Hoje um desenvolvedor COBOL pode agregar muito mais valor quando conhece:

  • APIs REST com z/OS Connect;

  • JSON e XML;

  • Git;

  • GitHub;

  • DevOps;

  • CI/CD;

  • testes automatizados;

  • observabilidade;

  • OpenTelemetry;

  • containers para ferramentas de apoio;

  • Ansible;

  • Zowe;

  • VS Code;

  • automação operacional;

  • inteligência artificial aplicada ao desenvolvimento.


Os perigos de ignorar a resiliência

Quem pensa apenas em "fazer funcionar" costuma criar sistemas frágeis.

Os principais riscos são:

  • perda de dados;

  • duplicidade de transações;

  • indisponibilidade prolongada;

  • degradação de desempenho;

  • dificuldade de recuperação;

  • manutenção cara;

  • dependência de especialistas;

  • aumento do risco operacional.

Em ambientes financeiros, esses problemas podem gerar prejuízos milionários.


Como evoluir de Padawan para Mestre

Uma evolução sólida pode seguir esta trilha:

Nível 1 — Fundamentos

  • COBOL

  • JCL

  • VSAM

  • Db2

  • CICS

Nível 2 — Sistema

  • z/OS

  • SDSF

  • JES2

  • TSO/ISPF

  • WLM

Nível 3 — Arquitetura

  • Parallel Sysplex

  • Coupling Facility

  • Data Sharing

  • ARM

  • SFM

Nível 4 — Continuidade de Negócios

  • RAS

  • HA

  • DR

  • RTO

  • RPO

  • GDPS

Nível 5 — Modernização

  • APIs

  • z/OS Connect

  • DevOps

  • Observabilidade

  • IA

  • Automação


A maior lição do IBM Z Resiliency

Depois de estudar esse tema, muitos desenvolvedores descobrem que escrever código representa apenas uma pequena parte do trabalho. Um programa COBOL faz sentido somente quando está inserido em uma arquitetura capaz de sobreviver a falhas, manter dados íntegros e continuar entregando serviços ao negócio.

É por isso que os profissionais mais valorizados no ecossistema IBM Z não são apenas excelentes programadores. Eles entendem infraestrutura, operação, banco de dados, middleware, redes, automação e continuidade de negócios. Eles sabem que um COMMIT bem posicionado, um tratamento adequado de exceções ou um checkpoint inteligente podem ter tanto impacto quanto uma nova funcionalidade.

No fim da jornada, o verdadeiro Mestre do IBM Z não é aquele que escreve o código mais sofisticado. É aquele que projeta soluções que continuam funcionando quando o inesperado acontece. Essa é a essência da IBM Z Resiliency: construir sistemas preparados para enfrentar falhas sem interromper aquilo que realmente importa — o negócio de milhões de pessoas.


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...