Translate

Mostrar mensagens com a etiqueta Channels and Containers. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Channels and Containers. Mostrar todas as mensagens

quinta-feira, 1 de maio de 2025

☕💣🚀 PADAWAN, MODERNIZAR O CICS NÃO É JOGAR COBOL FORA. É ENSINAR UMA LENDA DE 50 ANOS A FALAR REST, JAVA E CLOUD!

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.