☕ 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

domingo, 3 de fevereiro de 2019

🏛️ ARQUIMEDES E A ALAVANCA QUE MOVEU O MAINFRAME

 

Bellacosa Mainframe e a evolução do cobol mainframe para os proximos anos

☕ Um Café no Bellacosa Mainframe

🏛️ ARQUIMEDES E A ALAVANCA QUE MOVEU O MAINFRAME

COBOL, CICS, Db2, VSAM, APIs, MQ, Kafka, Git, CI/CD, cloud, observabilidade, segurança, IA — e o dia em que Arquimedes descobriu que não precisava levantar o mainframe: bastava encontrar o ponto de apoio correto.



🎬 PRÓLOGO — DÊ-ME UMA ALAVANCA E EU MOVEREI O MAINFRAME

Imagine a cena.

Você acaba de entrar em uma grande empresa como programador COBOL.

Na sua frente existe um terminal.

Na tela:

------------------------ ISPF PRIMARY OPTION MENU -----------------------

0  Settings
1  View
2  Edit
3  Utilities
4  Foreground
5  Batch
6  Command

Você aprendeu COBOL.

Aprendeu um pouco de JCL.

Descobriu que PIC X(20) não é uma fotografia de vinte pixels.

Já ouviu falar em CICS, Db2 e VSAM.

Então chega alguém da arquitetura e anuncia:

— Precisamos modernizar o mainframe.

Seu coração dispara.

Você pensa:

“Pronto. Passei seis meses estudando COBOL e agora vão jogar tudo fora.”

Nesse instante, uma figura de barba entra na sala carregando pergaminhos, compassos e uma estranha alavanca.

É Arquimedes de Siracusa.

Ele observa o IBM Z, olha para você e pergunta:

— Jovem programador, quem disse que modernizar significa destruir?

Você aponta para uma apresentação corporativa onde aparecem:

CLOUD
KUBERNETES
MICROSERVICES
APIs
KAFKA
DEVOPS
AI

Arquimedes sorri.

— Dê-me um ponto de apoio suficientemente bom e moverei o mundo.

Ele olha novamente para o mainframe.

— Para este aqui talvez precisemos também de MQ.

E começa nossa aventura.



🏛️ CAPÍTULO 1 — O MAINFRAME NÃO É UMA ILHA

O primeiro conceito que precisamos compreender é simples:

Mainframe Integration & Modernization não significa simplesmente substituir COBOL.

Uma aplicação empresarial tradicional pode possuir:

COBOL
  │
  ├── CICS
  ├── IMS
  ├── Db2
  ├── VSAM
  ├── MQ
  └── Batch/JCL

Durante décadas, grande parte do processamento corporativo podia acontecer nesse ecossistema.

Mas a empresa de 2026 também possui:

Mobile
Web
APIs
Cloud
SaaS
Containers
OpenShift
Kafka
Analytics
Data Lake
AI
CRM
Fraud Detection
Observability

A pergunta interessante, portanto, não é:

“Como tiramos o COBOL daqui?”

A pergunta é:

“Como fazemos todos esses mundos trabalharem juntos?”

Arquimedes provavelmente reconheceria imediatamente o problema.

Você não precisa carregar uma pedra gigantesca nas costas se puder construir uma máquina capaz de movimentá-la.

Modernização funciona de maneira semelhante.



⚖️ CAPÍTULO 2 — O PONTO DE APOIO

Imagine uma aplicação COBOL executando perfeitamente há vinte anos.

Ela calcula alguma regra extremamente importante.

Talvez limite de crédito.

Talvez impostos.

Talvez liquidação financeira.

Talvez autorização de pagamento.

Por que reescrever imediatamente essa lógica apenas porque um aplicativo mobile precisa utilizá-la?

Considere:

3270
 │
 ▼
CICS
 │
 ▼
COBOL
 │
 ▼
Db2

Essa aplicação pode funcionar muito bem.

O problema é que agora alguém deseja acessar aquela função através de:

Smartphone

Uma possibilidade seria:

Smartphone
    │
    ▼
REST API
    │
    ▼
z/OS Connect
    │
    ▼
CICS
    │
    ▼
COBOL
    │
    ▼
Db2

Observe a genialidade.

O programa COBOL pode continuar executando a regra empresarial.

O que mudou foi a maneira de chegar até ele.

Arquimedes apontaria para o desenho:

— Eis sua alavanca.



🔌 CAPÍTULO 3 — API ENABLEMENT

Vamos imaginar um programa que trabalha com algo parecido com:

01 CUSTOMER-REQUEST.
   05 CUSTOMER-ID PIC 9(10).

01 CUSTOMER-RESPONSE.
   05 CUSTOMER-NAME  PIC X(40).
   05 CUSTOMER-LIMIT PIC 9(9)V99.

Para um programador COBOL, isso é perfeitamente compreensível.

Mas um desenvolvedor web provavelmente espera algo como:

{
  "customerId": 123456
}

e deseja receber:

{
  "customerName": "JOAO SILVA",
  "customerLimit": 15000.00
}

Existe uma tradução entre mundos.

JSON
 ↓
estrutura de dados
 ↓
COBOL
 ↓
regra de negócio
 ↓
estrutura de resposta
 ↓
JSON

Isso permite que uma aplicação criada décadas atrás participe de arquiteturas contemporâneas.

Mas cuidado.

Arquimedes levanta um dedo.

— Uma alavanca mal posicionada também derruba paredes.

Transformar cada programa COBOL em uma API não significa automaticamente criar uma boa arquitetura.



🚪 CAPÍTULO 4 — NEM TODO PROGRAMA PRECISA VIRAR API

Imagine 700 programas COBOL.

Alguém tem a brilhante ideia:

“Vamos criar 700 APIs!”

Temos agora:

API001
API002
API003
...
API700

Parabéns.

Transformamos um problema organizado em 700 problemas distribuídos.

APIs precisam de arquitetura.

Precisamos pensar em:

  • contratos;

  • versionamento;

  • granularidade;

  • autenticação;

  • autorização;

  • timeout;

  • rate limiting;

  • tratamento de erros;

  • idempotência;

  • disponibilidade;

  • documentação;

  • observabilidade;

  • governança.

Uma API deveria representar uma capacidade útil ao consumidor, e não simplesmente revelar cada detalhe interno do legado.

Essa diferença parece pequena.

Arquiteturalmente é gigantesca.


📬 CAPÍTULO 5 — ARQUIMEDES DESCOBRE O MQ

Arquimedes encontra uma fila.

Não uma fila de cidadãos esperando pão em Siracusa.

Uma queue.

Ele pergunta:

— Para que serve?

Explicamos:

PRODUTOR
   │
  PUT
   ▼
┌─────────────┐
│    QUEUE    │
└─────────────┘
   │
  GET
   ▼
CONSUMIDOR

O produtor coloca uma mensagem.

O consumidor pode processá-la.

Isso possibilita desacoplamento.

Compare com uma comunicação síncrona:

A ─────► B
A ◄───── B

A chama B e fica esperando.

Agora:

A ─────► QUEUE ─────► B

A e B não precisam necessariamente executar no mesmo instante ou compartilhar exatamente o mesmo ciclo de disponibilidade.

Para ambientes empresariais, isso pode ser extremamente valioso.


⏳ CAPÍTULO 6 — SÍNCRONO OU ASSÍNCRONO?

Essa decisão precisa ser compreendida pelo iniciante.

Imagine:

“Quero consultar meu saldo.”

Você provavelmente deseja resposta imediatamente.

GET /saldo
     │
     ▼
processamento
     │
     ▼
R$ 1.234,56

É um excelente candidato a comunicação síncrona.

Agora imagine:

“Compra aprovada.”

Vários sistemas podem querer saber disso:

COMPRA APROVADA
       │
       ├── Fraude
       ├── Analytics
       ├── CRM
       ├── Pontos
       ├── Notificação
       └── Data Lake

Obrigar o programa responsável pela compra a chamar todos esses sistemas diretamente pode criar um emaranhado terrível.

Melhor considerar uma mensagem ou evento.


🌊 CAPÍTULO 7 — EVENT-DRIVEN ARCHITECTURE

Aqui Arquimedes fica particularmente interessado.

Suponha:

CICS
 │
 ▼
COBOL
 │
 ▼
PAYMENT APPROVED

Em vez de o programa conhecer todos os interessados:

COBOL
 ├── chama FRAUDE
 ├── chama CRM
 ├── chama ANALYTICS
 ├── chama LOYALTY
 └── chama NOTIFICATION

podemos publicar um evento:

           PAYMENT_APPROVED
                  │
       ┌──────────┼──────────┐
       │          │          │
       ▼          ▼          ▼
    Fraud      Loyalty    Analytics
       │
       ▼
 Notification

O produtor diz:

“Isto aconteceu.”

Os consumidores decidem o que fazer.

Esse conceito é fundamental para compreender arquiteturas orientadas a eventos e tecnologias de streaming.

É também onde Kafka costuma aparecer nas conversas modernas.


☁️ CAPÍTULO 8 — CLOUD NÃO É UM BURACO NEGRO QUE ENGOLIRÁ O MAINFRAME

Outro mito precisa desaparecer.

MODERNO = CLOUD

ANTIGO = MAINFRAME

Não.

Arquitetura empresarial não deveria funcionar como campeonato de futebol entre plataformas.

Podemos ter:

              ENTERPRISE
                  │
      ┌───────────┼───────────┐
      │           │           │
    Cloud      IBM Z        SaaS
      │           │           │
Containers       CICS         CRM
      │           │
 APIs            MQ
      │           │
 Kafka           Db2
      └───────────┼───────────┘
                  │
                 DATA

Isso é arquitetura híbrida.

Cada workload pode permanecer onde faz mais sentido considerando:

performance, segurança, custo, disponibilidade, latência, governança, proximidade dos dados e requisitos empresariais.

Arquimedes resume:

Não mova a pedra apenas porque você possui uma alavanca.


🧩 CAPÍTULO 9 — MICROSERVICES NÃO SÃO PÓ MÁGICO

Outra tentação moderna:

“Vamos transformar tudo em microservices.”

Calma.

Imagine um sistema COBOL gigantesco:

CUSTOMER SYSTEM

Ele contém:

Customer
Address
Credit
Payment
History
Fraud
Notification

Talvez faça sentido extrair algumas capacidades gradualmente.

Por exemplo:

        MAINFRAME
   ┌────────────────┐
   │ Customer       │
   │ Credit         │
   │ Payment        │
   └───────┬────────┘
           │
         APIs
           │
     ┌─────┴──────┐
     │            │
Notification   Analytics
 Service        Service

Não precisamos transformar todo COBOL em Java durante um fim de semana.

Aliás, se alguém propuser isso numa sexta-feira às 17h, Arquimedes recomenda correr.


🪴 CAPÍTULO 10 — STRANGLER PATTERN

Uma abordagem extremamente interessante consiste em substituir capacidades gradualmente.

Começamos:

LEGADO
████████████████████

Depois:

LEGADO
████████████████

NOVO
████

Depois:

LEGADO
██████████

NOVO
██████████

E talvez finalmente:

LEGADO
██

NOVO
██████████████████

Ou talvez não.

Talvez aquela pequena parte antiga continue sendo excelente.

Essa é uma lição importante:

Modernização não precisa terminar com zero COBOL.


🧬 CAPÍTULO 11 — AS MUITAS FORMAS DE MODERNIZAR

Arquimedes abre seu pergaminho.

Existem várias estratégias.

RETAIN

Mantemos a aplicação.

REHOST

Mudamos onde ela executa com poucas mudanças funcionais.

REPLATFORM

Alteramos a plataforma ou componentes sem reconstruir tudo.

REFACTOR

Reestruturamos partes da aplicação.

REARCHITECT

Mudamos profundamente sua arquitetura.

REWRITE

Reescrevemos.

REPLACE

Substituímos por outro sistema ou produto.

RETIRE

Descobrimos que ninguém precisava mais daquilo.

Esse último caso produz uma das grandes ironias da arqueologia de software.

Às vezes uma empresa passa meses estudando como modernizar um programa que poderia simplesmente ser aposentado.


🔎 CAPÍTULO 12 — ARQUEOLOGIA DE SOFTWARE

Antes de mexer precisamos saber o que existe.

Imagine:

PROG001
   │
   ├── CALL PROG002
   │       │
   │       └── Db2 TABLE01
   │
   ├── CALL PROG003
   │       │
   │       └── VSAM01
   │
   └── MQ QUEUE01

Agora imagine isso multiplicado por milhares.

Temos:

COBOL
JCL
Copybooks
PROCs
Db2
VSAM
CICS
IMS
MQ
Assembler
REXX

Precisamos responder:

Quem chama este programa?

Qual programa altera esta tabela?

Quem utiliza este copybook?

Qual job executa isto?

Qual transação CICS inicia essa cadeia?

Se eu mudar este campo, quem quebra?

Esse trabalho é chamado frequentemente de Application Discovery e Dependency Analysis.


💥 CAPÍTULO 13 — BLAST RADIUS

O termo é maravilhoso.

Qual será o raio da explosão se alterarmos alguma coisa?

Imagine modificar:

COPY CUSTOMER

Talvez seja usado por:

        CUSTOMER COPYBOOK
              │
     ┌────────┼────────┐
     │        │        │
   PGMA     PGMB     PGMC
     │        │
   CICS     BATCH

Alterar um campo aparentemente inocente pode afetar dezenas ou centenas de componentes.

O programador iniciante aprende rapidamente uma regra:

Em sistemas empresariais, compreender dependências antes de alterar código é tão importante quanto saber programar.


💻 CAPÍTULO 14 — COBOL TAMBÉM PODE TER UMA OFICINA MODERNA

Modernização também acontece no processo de desenvolvimento.

O modelo tradicional poderia ser:

ISPF
 ↓
EDIT
 ↓
COMPILE
 ↓
LINK
 ↓
TEST
 ↓
PROMOTE

Mas podemos incorporar:

IDE
 │
 ▼
Git
 │
 ▼
Pull Request
 │
 ▼
CI Pipeline
 │
 ├── Build
 ├── Static Analysis
 ├── Unit Test
 ├── Security
 ├── Integration Test
 └── Deployment

Observe novamente:

COBOL continua COBOL.

Modernizamos a oficina.


🌳 CAPÍTULO 15 — GIT ENCONTRA O MAINFRAME

Para o novo profissional, Git é particularmente importante.

Conceitos como:

repository
commit
branch
merge
pull request
code review
pipeline

aproximam desenvolvimento mainframe das práticas existentes no restante da engenharia de software.

O grande ganho não é poder dizer:

“Temos Git!”

É conseguir construir rastreabilidade.

Requirement
   ↓
Change
   ↓
Commit
   ↓
Build
   ↓
Test
   ↓
Approval
   ↓
Deploy

Isso é muito mais interessante.


📊 CAPÍTULO 16 — O DETETIVE DA LATÊNCIA

Agora nossa aplicação ficou moderna:

Mobile
 ↓
API Gateway
 ↓
Cloud
 ↓
API
 ↓
MQ
 ↓
CICS
 ↓
COBOL
 ↓
Db2

Então o usuário reclama:

“Está lento.”

Fantástico.

Onde?

Precisamos descobrir.

Talvez:

Mobile          100 ms
Network         250 ms
Gateway          30 ms
Cloud Service   100 ms
Integration      50 ms
CICS             60 ms
COBOL            10 ms
Db2            6300 ms

Sem observabilidade, todos começam a apontar para os outros.

Cloud culpa mainframe.

Mainframe culpa rede.

Rede culpa aplicação.

Aplicação culpa banco.

Banco culpa Mercúrio retrógrado.

É por isso que arquiteturas distribuídas precisam de:

METRICS
LOGS
TRACES
EVENTS
CORRELATION IDs
SLIs
SLOs
ALERTS
DASHBOARDS

Modernização sem observabilidade cria sistemas que conversam muito e explicam pouco.


🔐 CAPÍTULO 17 — QUEM É VOCÊ?

Antes:

USER
 ↓
3270
 ↓
RACF
 ↓
CICS

Agora:

Mobile
 ↓
OAuth / OIDC
 ↓
API Gateway
 ↓
Service
 ↓
API
 ↓
Mainframe
 ↓
RACF

A pergunta fica muito mais interessante:

Quem realmente está executando a transação?

É o usuário?

É uma service account?

É o API Gateway?

É uma aplicação?

O sistema precisa lidar com identidade, autorização, credenciais, tokens, auditoria e propagação de contexto.

Isso é essencial.

Não adianta modernizar a porta e esquecer a fechadura.


🤖 CAPÍTULO 18 — ARQUIMEDES CONHECE A INTELIGÊNCIA ARTIFICIAL

Finalmente mostramos IA generativa para Arquimedes.

Ele observa um programa COBOL com 4.000 linhas.

A IA consegue auxiliar na geração de:

Resumo
 │
 ├── entradas
 ├── saídas
 ├── tabelas
 ├── arquivos
 ├── chamadas
 ├── regras
 └── possíveis dependências

Excelente.

Também pode ajudar com:

  • documentação;

  • explicação de COBOL;

  • compreensão de JCL;

  • criação de testes;

  • geração de exemplos;

  • explicação de SQL;

  • identificação preliminar de dependências;

  • apoio à modernização.

Mas Arquimedes percebe rapidamente a limitação.

IA pode dizer:

“Esta condição aparentemente é redundante.”

E você encontra:

* VBR 1998
* NAO REMOVER.
* PROCESSAMENTO ESPECIAL NO ULTIMO DIA UTIL.

A IA não estava na reunião de 1998.

Nem você.

Esse comentário talvez seja a única lápide arqueológica de uma regra empresarial esquecida.

Portanto:

IA é ferramenta de investigação, não autoridade histórica absoluta sobre o legado.


💣 CAPÍTULO 19 — O MONSTRO DISTRIBUÍDO

Agora chegamos ao maior easter egg arquitetural.

Alguém modernizou tudo:

☁ CLOUD

Microservice A
Microservice B
Microservice C
Microservice D
Microservice E
      │
      ▼
 Kubernetes
      │
      ▼
    APIs
      │
      ▼
   COBOL-X

Todos os microservices dependem do mesmo programa.

Se COBOL-X parar:

💥💥💥

Tudo para.

Criamos um:

Distributed Monolith.

Só que agora ele possui:

containers
network latency
service discovery
APIs
JSON
Kubernetes
cloud

e continua dependendo da mesma função central.

Arquimedes olha para nós.

— Vocês inventaram cinco alavancas para levantar a mesma pedra.

Exatamente.


🧭 CAPÍTULO 20 — PASSO A PASSO PARA MODERNIZAR COM INTELIGÊNCIA

Se você é iniciante, memorize esta sequência.

PASSO 1 — Descubra

Mapeie:

Aplicações
Programas
Dados
JCL
Transações
Interfaces
Dependências

PASSO 2 — Entenda o negócio

Descubra por que aquilo existe.

Código sem contexto empresarial é apenas arqueologia incompleta.

PASSO 3 — Classifique

Para cada componente pergunte:

Retain?
Rehost?
Replatform?
Refactor?
Rewrite?
Replace?
Retire?

PASSO 4 — Identifique interfaces

Procure oportunidades para:

API
MQ
Events
Files
Streaming

PASSO 5 — Desacople cuidadosamente

Não transforme dependências locais em centenas de dependências de rede sem necessidade.

PASSO 6 — Automatize

Introduza:

Git
CI/CD
Tests
Quality Gates
Security

PASSO 7 — Observe

Instrumente:

Logs
Metrics
Traces
Correlation IDs

PASSO 8 — Proteja

Pense em:

Identity
Authentication
Authorization
Encryption
Audit
Secrets

PASSO 9 — Modernize gradualmente

Evite Big Bang quando uma migração incremental puder reduzir risco.

PASSO 10 — Meça

Pergunte se realmente melhoramos:

Time-to-market?
Disponibilidade?
MTTR?
Performance?
Custo?
Segurança?
Experiência do desenvolvedor?
Risco operacional?

Se nenhuma métrica melhorou, talvez tenhamos apenas comprado tecnologia nova.


🥚 EASTER EGG — 03:17

Às 03:17 da madrugada, o telefone toca.

Produção está com problema.

Um arquiteto pergunta:

— Quem mexeu no mainframe?

Ninguém.

O COBOL está executando normalmente.

CICS está saudável.

Db2 está saudável.

Depois de quarenta minutos descobrem:

API Gateway
     │
     ▼
timeout = 2 segundos

Uma nova configuração havia sido implantada naquela noite.

O mainframe levava:

2,08 segundos

para determinada consulta de fechamento.

Durante quinze anos isso nunca foi problema.

A modernização introduziu um timeout de dois segundos.

Moral do easter egg:

Quando modernizamos uma arquitetura, herdamos os problemas antigos e também ganhamos novas categorias de problemas.

Por isso observabilidade e conhecimento ponta a ponta são fundamentais.


🧠 CURIOSIDADE — O VALOR NÃO ESTÁ APENAS NO CÓDIGO

Um sistema COBOL antigo pode representar décadas de decisões empresariais.

Imagine:

IF CUSTOMER-TYPE = '07'
   AND COUNTRY = 'BR'
   AND TRANSACTION-CODE = '83'
   AND AMOUNT > ZERO

Para um desenvolvedor recém-chegado isso parece apenas uma condição.

Mas talvez ela represente:

Lei
Regulação
Contrato
Fraude ocorrida em 2003
Regra tributária
Exceção operacional
Decisão judicial
Comportamento de cliente

É por isso que substituir código não significa automaticamente substituir conhecimento.


🏛️ EPÍLOGO — A ALAVANCA DE ARQUIMEDES

Arquimedes finalmente volta para Siracusa.

Antes de partir, escreve no quadro:

              MAINFRAME
                  │
        ┌─────────┼─────────┐
        │         │         │
       API       MQ       EVENTS
        │         │         │
        └─────────┼─────────┘
                  │
           HYBRID CLOUD
                  │
      ┌───────────┼───────────┐
      │           │           │
 Containers    Analytics      AI
      │
    DevOps

Ele olha para o jovem programador COBOL.

— Agora compreendeu?

O jovem responde:

— Acho que sim. Modernização não significa substituir COBOL.

Arquimedes sorri.

— Continue.

— Significa descobrir onde está o valor, entender as dependências e construir maneiras modernas, seguras e observáveis de utilizar esse patrimônio.

Arquimedes pega sua alavanca.

— Muito melhor.

E antes de desaparecer pela porta, deixa sua última equação:

MODERNIZAÇÃO
      =
VALOR EXISTENTE
      +
INTEGRAÇÃO
      +
AUTOMAÇÃO
      +
OBSERVABILIDADE
      +
SEGURANÇA
      +
EVOLUÇÃO GRADUAL

Talvez essa seja a maior lição de Mainframe Integration & Modernization.

Não precisamos demolir a catedral para instalar eletricidade.

Não precisamos destruir a biblioteca porque inventamos a Internet.

E não precisamos reescrever quarenta anos de regras empresariais simplesmente porque alguém descobriu Kubernetes na semana passada.

O profissional mainframe moderno precisa conhecer COBOL, CICS, IMS, Db2, VSAM e JCL.

Mas seu horizonte não termina ali.

Ele precisa olhar também para:

REST
JSON
OpenAPI
MQ
Events
Kafka
Git
CI/CD
Containers
Cloud
Observability
Security
AI

Porque o verdadeiro profissional de modernização não pergunta:

“Como eu tiro essa aplicação do mainframe?”

Ele pergunta:

“Qual é o melhor lugar para cada capacidade e como faço todas elas trabalharem juntas?”

Arquimedes dizia que precisava apenas de um ponto de apoio para mover o mundo.

No Mainframe Integration & Modernization, o segredo é semelhante.

O IBM Z pode continuar sendo a pedra gigantesca, sólida e confiável no centro da empresa.

APIs podem ser as alavancas.

MQ e eventos podem ser as engrenagens.

Git e CI/CD podem modernizar a oficina.

Observabilidade pode fornecer os instrumentos de medição.

Segurança pode controlar quem toca na máquina.

IA pode ajudar a interpretar os antigos pergaminhos COBOL.

E o programador que começou olhando assustado para uma tela verde finalmente percebe algo importante:

ele não está estudando uma tecnologia do passado.

Está aprendendo a construir pontes entre décadas diferentes da computação.

E talvez seja exatamente aí que esteja o verdadeiro significado de modernizar o mainframe.

Bellacosa Mainframe — porque às vezes, para chegar ao futuro, não precisamos destruir o passado. Precisamos apenas encontrar a alavanca certa.

☕ Gostou deste café?
Siga o Bellacosa Mainframe e acompanhe os próximos artigos.
SEGUIR O BLOG

Sem comentários:

Enviar um comentário

De Fã para Fã. Conteúdo não oficial produzido como homenagem, comentário, análise ou paródia. Personagens, marcas e obras eventualmente mencionados pertencem aos seus respectivos titulares.
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...