| Bellacosa Mainframe introducao a modernizacao do cics mainframe seculo xxi |
☕💣🚀 PADAWAN, MODERNIZAR O CICS NÃO É JOGAR COBOL FORA. É ENSINAR UMA LENDA DE 50 ANOS A FALAR REST, JAVA E CLOUD!
Durante décadas, muita gente repetiu a mesma profecia:
"O Mainframe vai acabar."
Enquanto isso, silenciosamente, o CICS continuou processando bilhões de transações por dia.
E aqui está a grande ironia tecnológica da nossa época:
As empresas que tentaram substituir completamente seus sistemas CICS descobriram que recriar 40 anos de regras de negócio é muito mais difícil do que parece.
Foi então que surgiu uma pergunta mais inteligente:
E se, em vez de substituir, nós modernizarmos?
É exatamente isso que o CICS moderno faz.
O PRIMEIRO ERRO: CONFUNDIR MODERNIZAÇÃO COM REESCRITA
Quando alguém fala em modernização, muitos imaginam:
COBOL -> Java
Mainframe -> Cloud
3270 -> Browser
Mas o CICS moderno propõe algo diferente:
COBOL + Java
Mainframe + Cloud
3270 + REST
VSAM + APIs
A IBM chama isso de:
Hybrid Cloud
Ou seja:
O sistema continua executando onde sempre funcionou, mas agora conversa com aplicações modernas.
PASSO 1 – ENTENDER O QUE VOCÊ POSSUI
Antes de modernizar qualquer aplicação CICS, faça um inventário.
Identifique:
Transações
Programas COBOL
Arquivos VSAM
DB2
COMMAREAs
Web Services existentes
Dependências
Perguntas importantes:
O sistema ainda usa 3270?
Existem APIs?
Existe documentação?
Existe código-fonte?
Acredite:
Nem sempre existe.
E sim...
Existem sistemas produtivos em que o fonte original desapareceu há décadas.
PASSO 2 – SEPARAR APRESENTAÇÃO E NEGÓCIO
A arquitetura clássica ensinada pela IBM possui:
Presentation Layer
Business Logic Layer
Data Services Layer
Exemplo clássico:
PAYPGM
|
v
PAYBUS
|
v
VSAM
O PAYPGM fala com o usuário.
O PAYBUS contém as regras de negócio.
Quando isso já existe, a modernização fica muito mais simples.
PASSO 3 – TRANSFORMAR O NEGÓCIO EM SERVIÇO
O erro mais comum é tentar modernizar a tela.
A tela não tem valor.
O valor está na regra de negócio.
Por isso o melhor caminho normalmente é:
Browser
|
REST API
|
PAYBUS
|
VSAM
Observe:
O COBOL continua vivo.
Apenas ganhou uma nova interface.
PASSO 4 – APOSENTAR A COMMAREA
A COMMAREA foi uma revolução.
Mas ela possui um limite:
32767 bytes
Isso era enorme em 1975.
Hoje não é.
A solução moderna:
Channels
Containers
Antes:
EXEC CICS LINK
COMMAREA(...)
END-EXEC
Depois:
EXEC CICS LINK
CHANNEL('PAYROLL')
END-EXEC
Benefícios:
Sem limite prático
Dados organizados
Menos copybooks gigantes
Melhor integração
PASSO 5 – INTRODUZIR JAVA SEM TRAUMA
Aqui surge a pergunta que assombra muitos programadores COBOL:
"Precisamos reescrever tudo em Java?"
Não.
E provavelmente você não deveria.
O CICS permite executar Java dentro do próprio ambiente.
Arquitetura:
CICS
|
JVM Server
|
Liberty
|
Java
Agora o cenário fica interessante:
COBOL
|
LINK
|
Java
e também:
Java
|
LINK
|
COBOL
Os dois mundos coexistem.
PASSO 6 – DESCOBRIR O PODER DO LINK TO LIBERTY
Este é um dos recursos mais elegantes do CICS moderno.
Um programa COBOL pode chamar um método Java.
Exemplo:
@CICSProgram("CUSTGET")
Agora o COBOL pode executar:
EXEC CICS LINK
PROGRAM('CUSTGET')
END-EXEC
Sem HTTP.
Sem REST.
Sem MQ.
Sem gambiarra.
Tudo dentro do próprio CICS.
PASSO 7 – ADOTAR APIs REST
Uma das formas mais comuns de modernização é expor programas COBOL como APIs REST.
Arquitetura:
Mobile App
|
REST
|
Java
|
PAYBUS
|
VSAM
O usuário nem imagina que existe COBOL por trás.
E isso é perfeitamente aceitável.
Aliás...
É exatamente o objetivo.
PASSO 8 – IMPLEMENTAR EVENT PROCESSING
Aqui está um superpoder pouco conhecido.
Imagine um sistema de apostas.
Toda vez que alguém aposta mais de R$ 50.000:
Evento
Mas você perdeu o fonte.
Como alterar o programa?
Você não altera.
O CICS observa eventos.
Exemplo:
EXEC CICS LINK
Ao detectar o comando:
Evento gerado
Sem modificar uma linha de COBOL.
Isso é Event Processing.
PASSO 9 – PROGRAMAÇÃO ASSÍNCRONA
Outro recurso poderoso.
Tradicional:
Programa A
espera B
espera C
espera D
Moderno:
Programa A
+---- B
|
+---- C
|
+---- D
Tudo executando simultaneamente.
Novas APIs:
RUN TRANSID
FETCH CHILD
FETCH ANY
FREE CHILD
Menos espera.
Mais throughput.
Mais escalabilidade.
PASSO 10 – ENTRAR NO MUNDO DEVOPS
Aqui muitos profissionais acreditam que existe:
DevOps Linux
DevOps Mainframe
Mas a IBM foi direta:
Existe apenas:
DevOps
Ferramentas modernas:
Git
VS Code
Zowe
Jenkins
DBB
Ansible
UrbanCode
O fluxo torna-se:
Git
|
Build
|
Test
|
Deploy
|
CICS
ERROS MAIS COMUNS
Erro 1
Tentar reescrever tudo.
Resultado:
Projeto de 5 anos.
Orçamento explode.
Sistema antigo continua rodando.
Erro 2
Modernizar a interface e esquecer a regra de negócio.
A regra é o patrimônio.
A tela é apenas um detalhe.
Erro 3
Ignorar testes.
Use:
ZUnit
JUnit
Mockito
Galasa
Erro 4
Não envolver o System Programmer.
Lembre-se:
Arquivos.
Recovery.
Resources.
Bundles.
JVM Servers.
Tudo isso depende dele.
SOLUÇÃO DE PROBLEMAS
EIBCALEN = 0
Primeira entrada da transação.
Programa novo não atualiza
Execute:
NEWCOPY
ou
REFRESH PROGRAM
COMMAREA truncada
Provavelmente ultrapassou:
32K
Migre para Containers.
LINK retornando erro
Verifique:
RESP
RESP2
Sempre.
CURIOSIDADE
Pouca gente sabe, mas o CICS nasceu em uma época em que muitos computadores ainda trabalhavam com cartões perfurados.
Hoje ele executa:
APIs REST
Java
JSON
Liberty
Cloud
DevOps
Sem abandonar sua essência transacional.
Isso talvez explique sua longevidade.
EASTER EGG MAINFRAME
Existe uma frase que quase todo profissional experiente de CICS aprende depois de alguns anos:
"O problema nunca está no CICS."
Primeiro você culpa:
CICS
VSAM
RACF
DB2
MQ
Depois de algumas horas investigando...
Descobre que esqueceu de fazer:
EXEC CICS RETURN
END-EXEC
ou
EXEC CICS HANDLE CONDITION
END-EXEC
ou simplesmente compilou o programa errado.
Acontece mais do que deveria.
CONCLUSÃO
☕💣🚀 PADAWAN, O MAIOR SEGREDO DA MODERNIZAÇÃO NÃO É TROCAR COBOL POR JAVA.
É entender que o verdadeiro valor está nas regras de negócio acumuladas durante décadas.
O CICS moderno permite adicionar:
REST
Java
Liberty
Eventos
APIs
DevOps
Cloud
sem destruir aquilo que já funciona.
E essa talvez seja a definição mais elegante de modernização:
Evoluir sem perder a confiança conquistada por milhões de transações executadas corretamente ao longo de décadas.