☕ 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

Mostrar mensagens com a etiqueta CICS Web Services. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta CICS Web Services. Mostrar todas as mensagens

sexta-feira, 17 de agosto de 2018

O Mistério da Porta Invisível : Quando um Programador COBOL Descobre que Seu Programa Conversa com um Celular sem Nunca Ter Saído do CICS

 

Bellacosa Mainframe e o misterio da porta invisivel

☕ Um Café no Bellacosa Mainframe

O Mistério da Porta Invisível

Quando um Programador COBOL Descobre que Seu Programa Conversa com um Celular sem Nunca Ter Saído do CICS

"Naquela noite chuvosa, os logs estavam silenciosos. Nenhum ABEND. Nenhuma mensagem DFHAC2001. Apenas um estranho pacote HTTP atravessando a rede em direção ao velho mainframe. Algo impossível estava prestes a acontecer..."


Prólogo

O Caso da Máquina que Nunca Aprendeu a Envelhecer

Existe uma velha lenda nos CPDs.

Ela diz que existe uma máquina construída antes da chegada da Internet que, décadas depois, continua respondendo milhões de requisições vindas de smartphones.

Ela nunca viu um navegador moderno.

Nunca executou Android.

Jamais instalou iOS.

Mesmo assim...

Responde diariamente a aplicativos bancários, sistemas de companhias aéreas, plataformas de saúde, seguradoras e bolsas de valores.

Essa máquina atende por um nome conhecido.

IBM Z.

E o grande investigador dessa história é um personagem chamado...

CICS.

Hoje vamos investigar como um programa COBOL escrito talvez antes do seu nascimento consegue conversar com aplicações em nuvem utilizando REST, SOAP, JSON, XML, HTTPS e APIs modernas.

Prepare seu café.

O mistério começa agora.


Capítulo 1

A Cidade Perdida chamada CICS

Imagine uma gigantesca cidade.

Nela existem milhares de edifícios.

Cada prédio possui uma função específica.

Uns recebem visitantes.

Outros executam trabalhos.

Alguns guardam documentos secretos.

Outros armazenam dinheiro.

Essa cidade é o CICS.

Cada prédio representa um programa COBOL.

Milhares deles.

Funcionando simultaneamente.

Sem acidentes.

Sem congestionamentos.

Sem parar.

Enquanto servidores modernos podem precisar ser reiniciados para atualizações, um ambiente CICS pode permanecer em operação por períodos extremamente longos, processando um fluxo contínuo de transações críticas.


O verdadeiro trabalho do CICS

Muitos iniciantes acreditam que o CICS é apenas um ambiente onde o COBOL roda.

Na realidade...

Ele é muito mais.

Ele administra:

  • milhares de usuários

  • memória

  • arquivos

  • filas

  • comunicação

  • segurança

  • recuperação

  • sincronização

  • transações

É praticamente um sistema operacional especializado em transações.


Capítulo 2

O nascimento do problema

Década de 1980.

Tudo era simples.

Terminal 3270

↓

CICS

↓

COBOL

↓

VSAM

Todo mundo falava a mesma língua.

Não existiam aplicativos.

Não existiam APIs.

Não existia JSON.

Tudo era verde.

Tudo era 3270.

Então veio a Internet.

Depois surgiram:

  • Java

  • .NET

  • Smartphones

  • Cloud

  • APIs

  • Microsserviços

De repente surgiu uma pergunta assustadora.

"Como um programa COBOL pode conversar com um celular?"


Capítulo 3

O idioma secreto chamado HTTP

Os aplicativos modernos falam uma língua.

HTTP.

Já o COBOL conversa utilizando estruturas internas como COMMAREA ou Channels.

São idiomas diferentes.

É como colocar Sherlock Holmes para conversar com um samurai do Japão Feudal.

Os dois são inteligentes.

Mas precisam de um tradutor.

Esse tradutor existe.

Ele mora dentro do CICS.


Capítulo 4

A Porta Invisível

Essa porta possui um nome elegante.

CICS Web Services.

Ela funciona como um diplomata.

Quando chega uma mensagem REST:

GET /saldo/12345

Ela traduz para algo que o COBOL entende.

Depois faz o caminho contrário.

Programa COBOL

↓

COMMAREA

↓

Resposta

↓

JSON

↓

HTTP

↓

Celular

O programa COBOL sequer percebe que está atendendo um smartphone.

Para ele...

É apenas mais uma solicitação.

Essa abstração é um dos maiores trunfos do CICS: preservar a lógica de negócio enquanto adapta a forma de comunicação.


Capítulo 5

Os dois detetives: REST e SOAP

Aqui encontramos dois investigadores rivais.

REST

Jovem.

Ágil.

Minimalista.

Prefere JSON.

Exemplo:

{
  "cliente": "Maria",
  "saldo": 18950.44
}

É o queridinho das APIs modernas.


SOAP

Mais velho.

Elegante.

Extremamente organizado.

Utiliza XML.

<Envelope>

<Body>

<GetBalance>

<Account>12345</Account>

</GetBalance>

</Body>

</Envelope>

Embora muitos o considerem "antigo", ele continua sendo amplamente utilizado em integrações corporativas que exigem contratos rígidos, segurança avançada e interoperabilidade.


Curiosidade Noir

REST é como um repórter investigativo.

Faz perguntas curtas.

Recebe respostas rápidas.

SOAP parece um advogado.

Toda conversa vem acompanhada de documentos, assinaturas e formalidades.

Nenhum é melhor.

Cada um resolve um tipo diferente de problema.


Capítulo 6

A viagem de um pacote

Vamos seguir uma requisição.

Cliente

↓

Aplicativo

↓

Internet

↓

HTTPS

↓

Firewall

↓

API Gateway

↓

CICS

↓

Programa COBOL

↓

DB2

↓

Resposta

Tudo isso pode ocorrer em poucos milissegundos.

Enquanto você pisca.

O dinheiro já foi consultado.


Capítulo 7

O tradutor invisível

O COBOL trabalha com registros.

01 CLIENTE.

   05 ID.

   05 NOME.

   05 SALDO.

O celular trabalha com JSON.

{
"id":100
}

Quem converte?

O CICS.

Ele transforma estruturas COBOL em mensagens compreensíveis para aplicações modernas e realiza o caminho inverso quando recebe uma requisição.


Capítulo 8

Onde entram Db2 e VSAM?

Muita gente acredita que a API consulta diretamente o banco.

Não.

Quem faz isso é o programa COBOL.

Fluxo:

REST

↓

CICS

↓

COBOL

↓

EXEC SQL

↓

DB2

Ou

REST

↓

CICS

↓

COBOL

↓

READ

↓

VSAM

O Web Service não substitui a lógica de negócio.

Ele apenas abre uma nova porta de entrada.


Capítulo 9

O Guardião chamado Pipeline

Nos bastidores existe outro personagem.

O Pipeline.

Ele verifica:

  • formato da mensagem

  • conversões

  • validações

  • transformações

  • roteamento

  • preparação da resposta

Imagine uma esteira de fábrica.

Cada estação executa uma tarefa antes que a mensagem chegue ao programa COBOL.


Capítulo 10

Segurança: o Castelo Nunca Dorme

Abrir uma API para a Internet não significa deixar a porta escancarada.

Um ambiente corporativo normalmente utiliza camadas como:

  • HTTPS/TLS para criptografia.

  • RACF para autenticação e autorização.

  • Certificados digitais.

  • API Gateways.

  • OAuth ou JWT, quando apropriado.

  • Auditoria via SMF.

  • Firewalls e balanceadores de carga.

A aplicação COBOL continua concentrada nas regras de negócio; a infraestrutura cuida da proteção da comunicação e do acesso.


Capítulo 11

Modernização sem Destruição

Durante muitos anos acreditou-se que seria necessário jogar fora milhões de linhas de COBOL.

Felizmente...

O mercado descobriu algo importante.

O problema não era o COBOL.

Era a forma de acessá-lo.

Hoje fazemos exatamente o contrário.

Mantemos:

  • COBOL

  • CICS

  • Db2

  • VSAM

E apenas trocamos a fachada.

A casa continua firme.

A porta ficou moderna.


Capítulo 12

O casamento com a Cloud

Uma API publicada pelo CICS pode ser consumida por:

  • Azure

  • AWS

  • Google Cloud

  • Kubernetes

  • OpenShift

  • Microsserviços

  • Aplicativos Android

  • Aplicativos iPhone

  • Inteligência Artificial

  • Agentes autônomos

O mainframe deixa de ser uma "ilha" e passa a integrar um ecossistema distribuído.


Capítulo 13

O Papel do z/OS Connect EE

Em muitas empresas, existe um aliado do CICS chamado z/OS Connect Enterprise Edition.

Ele facilita a publicação de APIs REST, realiza transformações entre JSON e estruturas do CICS, gera documentação OpenAPI e simplifica a integração com plataformas de gerenciamento de APIs.

Pense nele como um elegante recepcionista de um hotel cinco estrelas: ele recebe os visitantes, organiza a documentação e encaminha cada um ao departamento correto — que continua sendo o programa COBOL no CICS.


Passo a passo

Como nasce uma API CICS

  1. Identificar o programa COBOL que já executa a regra de negócio.

  2. Definir quais dados serão recebidos e devolvidos.

  3. Criar ou configurar o Web Service/REST endpoint.

  4. Mapear JSON ou XML para COMMAREA ou Channels.

  5. Configurar Pipeline e recursos do CICS.

  6. Publicar a API.

  7. Testar com ferramentas como Postman ou aplicações cliente.

  8. Monitorar desempenho, segurança e auditoria.

O grande diferencial é que, em muitos casos, a lógica COBOL permanece praticamente inalterada.


Curiosidades do Arquivo Bellacosa 🕵️

🗂 Arquivo Nº 3270

O primeiro navegador do bancário foi um terminal 3270. Ele não exibia imagens nem animações, mas oferecia respostas extremamente rápidas e confiáveis.

🗂 Arquivo Nº DFH

Grande parte dos módulos internos do CICS começa com o prefixo DFH, uma tradição histórica da IBM que aparece em mensagens, componentes e utilitários.

🗂 Arquivo Nº COMMAREA

Antes dos Channels e Containers, a COMMAREA era o principal meio de troca de dados entre programas CICS. Ela ainda é amplamente utilizada em aplicações legadas.

🗂 Arquivo Nº REST

Uma API REST pode estar chamando um programa COBOL escrito há décadas, e o desenvolvedor do aplicativo móvel talvez nunca saiba disso.


Dicas para quem está começando

✔ Aprenda primeiro como funciona uma transação CICS.

✔ Entenda bem COMMAREA e, em seguida, estude Channels e Containers.

✔ Domine JSON e XML; você os verá com frequência em integrações.

✔ Conheça o básico de HTTP: métodos GET, POST, PUT e DELETE, além de códigos de status.

✔ Estude Db2 e VSAM, pois são as principais fontes de dados das aplicações CICS.

✔ Familiarize-se com conceitos de segurança, como TLS, certificados e RACF.

✔ Aprenda a usar ferramentas de teste de APIs, como Postman ou curl.

✔ Entenda que modernização não significa abandonar o legado, mas conectá-lo ao mundo atual.


Perguntas clássicas de entrevista

Por que utilizar CICS Web Services?

Porque eles permitem reutilizar aplicações COBOL consolidadas, expondo-as como APIs modernas sem a necessidade de reescrever toda a lógica de negócio.

REST substitui SOAP?

Não. REST e SOAP atendem necessidades diferentes e convivem em muitas organizações.

O programa COBOL precisa saber que está sendo chamado por um celular?

Normalmente, não. O CICS e sua infraestrutura de integração fazem a tradução entre o protocolo Web e a interface esperada pela aplicação.

O CICS acessa diretamente o Db2?

Quem executa a lógica de acesso normalmente é o programa COBOL, utilizando SQL para Db2 ou comandos CICS para VSAM e outros recursos.


O Easter Egg ☕

Se você observou toda a nossa jornada da série Mainframe Learning with AI, percebeu que existe uma sequência quase detectivesca:

  • TOR foi o porteiro que recebeu os visitantes.

  • AOR era o investigador que resolvia os casos.

  • FOR guardava os arquivos secretos.

  • MRO construiu as estradas entre regiões.

  • ISC atravessou fronteiras entre sistemas.

  • TCP/IP abriu a comunicação com o mundo exterior.

  • Web Services finalmente abriu a porta principal para a Internet.

Cada capítulo parecia isolado. Mas, reunidos, formam um único grande mapa da arquitetura CICS moderna.

Como toda boa revista noir dos anos 1950, o maior mistério nunca esteve escondido na última página.

Ele sempre esteve diante dos nossos olhos.

O velho programa COBOL que muitos julgavam ultrapassado jamais esteve preso ao passado. Ele apenas aguardava que alguém encontrasse a porta certa para conversar com o futuro. E essa porta atende pelo nome de CICS Web Services.

quarta-feira, 11 de julho de 2018

O Caso da Porta Invisível : Quando um Programador COBOL Descobre que Seu Sistema de 40 Anos Está Conversando com Aplicativos de Celular

 

Bellacosa Mainframe e o caso da porta invisivel 

☕ Um Café no Bellacosa Mainframe

O Caso da Porta Invisível

Quando um Programador COBOL Descobre que Seu Sistema de 40 Anos Está Conversando com Aplicativos de Celular

"Naquela madrugada chuvosa, enquanto a luz verde do terminal 3270 iluminava fracamente a sala do CPD, uma pergunta ecoava entre os corredores silenciosos do datacenter: como um programa COBOL escrito quando a Internet sequer existia consegue responder, em poucos milissegundos, à consulta de saldo feita por um smartphone do outro lado do planeta?"

Peguei minha xícara de café, observei as luzes do IBM Z piscando como estrelas artificiais e sorri. O mistério estava apenas começando.

Hoje investigaremos uma das maiores mágicas da computação moderna.

Ou melhor...

Uma das maiores ilusões.

Porque nada ali é magia.

É engenharia.

E ela atende pelo nome de CICS Web Services.


Capítulo 1 — O Fantasma que Nunca Saiu do Mainframe

Existe um boato que circula pela Internet há quase vinte anos.

Dizem que o COBOL morreu.

Curiosamente...

Toda vez que alguém consulta o saldo bancário, compra uma passagem aérea, paga um boleto, faz um PIX, reserva um hotel ou utiliza um cartão de crédito...

Lá está ele.

Respirando.

Processando.

Calculando.

Respondendo.

A verdade é que o COBOL nunca precisou aparecer.

Ele apenas trabalha.

Enquanto linguagens modernas brigam por popularidade, frameworks entram e saem de moda e novas arquiteturas surgem a cada ano, milhões de linhas de COBOL continuam executando regras de negócio escritas décadas atrás.

O problema nunca foi o COBOL.

O problema sempre foi a porta de entrada.


Capítulo 2 — O Antigo Castelo

Imagine um enorme castelo medieval.

Dentro dele vivem milhares de escribas.

Eles conhecem absolutamente todas as regras do reino.

Quem pode receber dinheiro.

Quem pode sacar.

Quem está inadimplente.

Quem pode fazer um empréstimo.

Quem possui limite.

Esses escribas representam os programas COBOL.

Durante muitos anos, quem desejava conversar com eles precisava entrar pela porta principal.

Essa porta chamava-se:

Terminal 3270.

Mais tarde surgiram outras entradas.

MQ.

APPC.

Sockets.

CTG.

LU6.2.

Cada uma exigia uma chave diferente.

Era como um castelo cheio de entradas secretas.

Até que alguém teve uma ideia genial.

"E se fizermos uma porta universal?"

Nasciam os Web Services.


Capítulo 3 — A Porta Invisível

A beleza dos CICS Web Services está justamente no fato de que eles quase não alteram o castelo.

Eles não reescrevem o COBOL.

Não mudam o Db2.

Não substituem o VSAM.

Eles apenas constroem uma nova entrada.

Uma entrada que fala a língua do mundo moderno.

Enquanto o aplicativo do banco acredita estar conversando com uma API sofisticada...

Na realidade existe um programa COBOL executando:

EXEC SQL
SELECT SALDO
INTO :WS-SALDO
FROM CONTAS
WHERE NUMERO = :WS-CONTA
END-EXEC.

Nada mudou.

Mudou apenas quem bate à porta.


Capítulo 4 — O Tradutor Universal

Imagine dois diplomatas.

Um fala apenas português.

Outro apenas japonês.

Sem intérprete, ambos passam horas sorrindo sem entender absolutamente nada.

O CICS Web Service funciona exatamente como esse intérprete.

Ele recebe:

JSON

↓

XML

↓

HTTP

↓

REST

↓

SOAP

E traduz tudo para algo que o programa COBOL compreende.

Da mesma forma, quando o COBOL responde usando uma COMMAREA ou um CHANNEL, o CICS converte a resposta novamente para JSON ou XML.

É como se houvesse um tradutor simultâneo trabalhando o tempo inteiro.


Capítulo 5 — O Caminho Percorrido por uma Consulta de Saldo

Vamos acompanhar uma simples consulta de saldo.

Você abre o aplicativo.

Digita sua senha.

Pressiona "Consultar Saldo".

A partir desse instante começa uma viagem fascinante.

Celular

↓

Internet

↓

HTTPS

↓

Firewall

↓

API Gateway

↓

Load Balancer

↓

Servidor HTTP

↓

CICS

↓

Programa COBOL

↓

Db2

↓

Resposta

↓

Celular

Tudo isso costuma acontecer em menos de um segundo.

Na maioria das vezes, em poucos milissegundos.

O usuário nunca imagina que seu smartphone acabou de conversar com um computador cuja arquitetura tem raízes na década de 1960.


Capítulo 6 — REST e SOAP: Dois Detetives, Dois Métodos

Se este fosse um romance policial, REST e SOAP seriam investigadores completamente diferentes.

Inspetor REST

Chega de camisa dobrada.

Pouca burocracia.

Fala pouco.

Resolve rápido.

Transporta informações em JSON.

Adorado por desenvolvedores Web.

Exemplo:

GET /api/clientes/12345

Resposta:

{
 "saldo":2450.75
}

Simples.

Elegante.

Rápido.


Detetive SOAP

Sempre de terno.

Gravata impecável.

Maleta cheia de documentos.

Tudo precisa estar assinado.

Validado.

Carimbado.

Registrado.

Utiliza XML.

Possui contratos (WSDL).

É extremamente rigoroso.

Por isso continua muito presente em bancos, seguradoras, governos e grandes empresas.


Curiosidade Bellacosa nº 1

SOAP costuma ser criticado por ser "pesado".

Entretanto, em ambientes financeiros, sua estrutura rígida é justamente uma vantagem.

A previsibilidade reduz erros de integração.


Capítulo 7 — Os Personagens Secretos do CICS

Quando alguém fala apenas "CICS Web Services", parece algo simples.

Mas existe uma verdadeira equipe trabalhando nos bastidores.

Entre eles:

PIPELINE

Imagine uma esteira industrial.

Cada estação faz uma tarefa.

Validação.

Conversão.

Segurança.

Encaminhamento.

Resposta.

Tudo organizado.


URIMAP

É o GPS.

Quando chega uma URL:

/api/saldo

Ele sabe exatamente qual programa deve ser chamado.


WEBSERVICE

É a ficha técnica.

Define como funciona o serviço.

Quais dados entram.

Quais dados saem.


TCPIPSERVICE

É quem abre a porta da rede.

Sem ele...

Ninguém entra.


WSBIND

Aqui mora um dos maiores segredos.

Ele conhece o idioma dos dois lados.

XML.

JSON.

COMMAREA.

CHANNEL.

CONTAINERS.

Ele sabe exatamente como converter cada campo.


Easter Egg nº 1 🥚

Os nomes DFHLS2WS e DFHWS2LS parecem códigos secretos encontrados em um filme de espionagem.

Na verdade, escondem uma lógica elegante:

LS → Language Structure

WS → Web Service

Logo:

Language Structure → Web Service

e

Web Service → Language Structure

Depois que você percebe isso, nunca mais esquece.


Capítulo 8 — DFHLS2WS: O Alquimista

Imagine entregar um copybook COBOL.

01 CLIENTE.

   05 NOME.

   05 SALDO.

Poucos instantes depois aparecem:

  • WSDL

  • WSBIND

Quase como um passe de mágica.

Na realidade é o utilitário DFHLS2WS trabalhando.

Ele pega uma estrutura COBOL e cria toda a descrição necessária para transformá-la em Web Service.


Capítulo 9 — DFHWS2LS: O Caminho Inverso

Agora imagine que outra equipe desenvolveu um Web Service.

Você recebe apenas o WSDL.

Como escrever o copybook?

Simples.

O DFHWS2LS faz isso automaticamente.

É como um tradutor que trabalha nos dois sentidos.


Curiosidade Bellacosa nº 2

Esses utilitários economizam centenas de horas de desenvolvimento manual.

Antes deles, muitos mapeamentos XML eram escritos praticamente "na mão".

Hoje isso é automatizado.


Capítulo 10 — COMMAREA ou CHANNEL?

Aqui está uma dúvida clássica de entrevistas.

COMMAREA foi durante décadas a forma padrão de troca de dados.

Ela funciona.

Muito bem.

Mas possui um limite famoso.

32 KB.

Quando as integrações começaram a crescer, surgiu uma necessidade.

Mais espaço.

Mais flexibilidade.

Nasciam:

CHANNEL

+

CONTAINERS

Cada Container funciona como uma pequena caixa.

Você pode possuir dezenas delas.

Cada uma armazenando informações diferentes.

Muito mais elegante.


Capítulo 11 — Segurança: O Porteiro Nunca Dorme

Outro mito bastante comum.

"Se o CICS virou Web Service, qualquer pessoa consegue acessá-lo."

Errado.

Na verdade, normalmente o caminho possui diversas camadas.

HTTPS

↓

TLS

↓

Firewall

↓

API Gateway

↓

RACF

↓

SAF

↓

CICS

↓

Programa

Ou seja...

Mesmo que alguém encontre a URL correta...

Ainda terá de atravessar diversos mecanismos de autenticação e autorização.


Easter Egg nº 2 🥚

Observe os filmes noir dos anos 1950.

Quase sempre existe um porteiro discreto.

Poucos prestam atenção nele.

Mas absolutamente ninguém entra sem passar por ele.

No IBM Z esse porteiro atende por vários nomes:

RACF.

SAF.

TLS.

API Gateway.

Todos silenciosos.

Todos eficientes.


Capítulo 12 — O Grande Equívoco da Modernização

Muitas pessoas acreditam que modernizar significa apagar tudo.

Nada poderia estar mais distante da realidade.

Imagine um prédio histórico.

Você troca:

  • elevadores

  • iluminação

  • rede elétrica

  • ar-condicionado

Mas preserva sua estrutura.

É exatamente isso que acontece no CICS.

O COBOL permanece.

As regras continuam.

O que muda é a forma de acesso.


Capítulo 13 — O Aplicativo Nunca Saberá

Quando um aplicativo Android faz uma chamada REST:

GET /saldo

Ele imagina estar conversando com uma API escrita em Java.

Talvez Node.js.

Quem sabe Python.

Na verdade...

Existe uma enorme possibilidade de existir um programa COBOL executando no final da cadeia.

Essa é uma das maiores demonstrações da longevidade da engenharia de software.


Capítulo 14 — O Verdadeiro Valor Está nas Regras de Negócio

Código pode ser reescrito.

Interfaces podem ser substituídas.

Protocolos evoluem.

Mas regras de negócio acumuladas durante quarenta anos representam um patrimônio imenso.

Ali estão milhares de decisões tomadas por especialistas do mercado financeiro, seguros, saúde, governo e logística.

Os CICS Web Services preservam esse conhecimento.

Eles não reinventam a lógica.

Eles a tornam acessível ao mundo moderno.


Dicas para o Programador COBOL Iniciante

✔ Aprenda primeiro o fluxo tradicional do CICS antes de estudar Web Services.

✔ Domine COMMAREA e depois CHANNEL/CONTAINER.

✔ Entenda HTTP, HTTPS e métodos REST.

✔ Saiba a diferença entre JSON e XML.

✔ Estude o papel de WSDL e WSBIND.

✔ Pratique a leitura de copybooks e compreenda como eles representam contratos de dados.

✔ Familiarize-se com utilitários como DFHLS2WS e DFHWS2LS.

✔ Conheça conceitos de segurança como TLS, RACF, autenticação e autorização.

✔ Entenda que a performance de uma API raramente depende apenas do protocolo; consultas Db2, acesso a VSAM e regras de negócio geralmente têm impacto muito maior.

✔ Nunca pense no COBOL como uma tecnologia isolada. Hoje ele faz parte de arquiteturas distribuídas, APIs, microsserviços e soluções em nuvem.


Curiosidades que Impressionam em Entrevistas

  • Muitos aplicativos bancários utilizam APIs REST que terminam em programas COBOL executando em CICS.

  • O mesmo programa COBOL pode atender simultaneamente terminais 3270, filas MQ e Web Services.

  • SOAP continua sendo amplamente utilizado em integrações corporativas críticas devido aos seus contratos formais e padrões de segurança.

  • O uso de APIs permitiu que aplicações escritas há décadas participassem de iniciativas como Open Banking, Open Finance e ecossistemas digitais sem a necessidade de reescrita completa.

  • Em muitos ambientes, um único IBM Z processa milhares de requisições simultâneas com tempos de resposta medidos em milissegundos.


O Arquivo Confidencial Bellacosa 📁

Os velhos investigadores das revistas pulp dos anos 1950 costumavam encerrar seus casos dizendo que "o verdadeiro culpado nunca era quem parecia ser".

Neste caso, o culpado também não é.

Durante anos, disseram que o COBOL era o obstáculo para a inovação. No entanto, a investigação revela outro cenário: o COBOL nunca impediu a transformação digital. O verdadeiro desafio sempre foi criar uma ponte segura entre um patrimônio tecnológico consolidado e as novas formas de consumo de serviços.

Essa ponte recebeu muitos nomes ao longo da história, mas no universo do CICS ela se materializa nos Web Services. Eles permitem que um programa escrito há décadas continue executando exatamente a mesma lógica de negócio, enquanto atende aplicativos móveis, portais Web, plataformas em nuvem e arquiteturas baseadas em APIs.

Da próxima vez que você consultar o saldo pelo celular, comprar uma passagem aérea ou realizar uma transferência bancária, lembre-se deste caso. Em algum lugar, atrás de uma API elegante, de um JSON aparentemente simples e de uma interface moderna, talvez exista um veterano programa COBOL respondendo com a precisão de sempre.

E, se você escutar atentamente o suave zumbido do datacenter em uma madrugada silenciosa, talvez perceba que o maior mistério nunca foi descobrir como o mainframe conversa com o mundo moderno.

O verdadeiro mistério é que ele faz isso tão bem que quase ninguém percebe que ele continua lá, trabalhando incansavelmente, como um detetive das sombras que resolve milhões de casos por dia sem jamais assinar o próprio nome.

quinta-feira, 22 de fevereiro de 2007

Como se Usa XML em COBOL?

 

Bellacosa Mainframe e o XML no COBOL

Como se Usa XML em COBOL?

O XML tornou-se muito importante no mundo Mainframe quando bancos, seguradoras e governos passaram a integrar aplicações COBOL com sistemas Web, Java, .NET, APIs e serviços externos.

Hoje é comum um programa COBOL:

  • receber XML;

  • gerar XML;

  • consumir Web Services;

  • integrar com CICS Web Services;

  • integrar com z/OS Connect;

  • trocar mensagens SOAP.


O que é XML?

XML significa:

eXtensible Markup Language

É um formato textual para troca de informações.

Exemplo:

<cliente>
   <id>1001</id>
   <nome>JOAO SILVA</nome>
   <saldo>5000.00</saldo>
</cliente>

Por que XML foi importante no Mainframe?

Antes do XML, a troca de dados era normalmente feita através de:

Arquivos Flat
QSAM
VSAM
Copybooks

O XML permitiu integração entre plataformas diferentes.


XML no COBOL Moderno

O Enterprise COBOL possui dois comandos especiais:

XML GENERATE

Gera XML.

XML PARSE

Lê XML.


XML GENERATE

Transforma uma estrutura COBOL em XML.


Exemplo COBOL

01 CLIENTE.
   05 ID-CLI      PIC 9(5).
   05 NOME-CLI    PIC X(30).
   05 SALDO-CLI   PIC 9(7)V99.

Dados

MOVE 1001 TO ID-CLI
MOVE 'JOAO SILVA' TO NOME-CLI
MOVE 5000 TO SALDO-CLI

Geração XML

XML GENERATE XML-SAIDA
   FROM CLIENTE
END-XML

Resultado

<CLIENTE>
   <ID-CLI>1001</ID-CLI>
   <NOME-CLI>JOAO SILVA</NOME-CLI>
   <SALDO-CLI>5000</SALDO-CLI>
</CLIENTE>

Estrutura Completa

01 XML-SAIDA PIC X(5000).

XML GENERATE XML-SAIDA
   FROM CLIENTE
END-XML.

XML PARSE

Faz o caminho inverso.

Transforma XML em dados COBOL.


XML Recebido

<CLIENTE>
   <ID>1001</ID>
   <NOME>JOAO</NOME>
</CLIENTE>

Comando

XML PARSE XML-ENTRADA

   PROCESSING PROCEDURE IS PROC-XML

END-XML

Processing Procedure

A cada tag encontrada o COBOL chama um parágrafo.


Exemplo

PROC-XML.

DISPLAY XML-EVENT
DISPLAY XML-TEXT.

Variáveis Automáticas

Durante o PARSE:

XML-CODE
XML-EVENT
XML-TEXT

são preenchidas automaticamente.


XML-CODE

Retorno da operação.

0 = OK

XML-EVENT

Evento encontrado.

Exemplo:

START-OF-ELEMENT
END-OF-ELEMENT
CONTENT-CHARACTERS

XML-TEXT

Conteúdo da tag.


Exemplo Prático

XML:

<NOME>JOAO</NOME>

Durante o PARSE:

EVENT = CONTENT-CHARACTERS
TEXT  = JOAO

XML e CICS

Muito utilizado em Web Services.

Fluxo:

Cliente
   ↓
SOAP XML
   ↓
CICS
   ↓
Programa COBOL

Exemplo SOAP

<soap:Envelope>
   <soap:Body>

      <ConsultaSaldo>

         <Conta>12345</Conta>

      </ConsultaSaldo>

   </soap:Body>
</soap:Envelope>

CICS Web Services

O CICS pode:

✅ Receber XML

✅ Converter XML para COBOL

✅ Converter COBOL para XML

automaticamente.


DFHWS2LS

Ferramenta CICS.

Converte:

XML
 ↓
COBOL Copybook

DFHLS2WS

Faz o inverso.

Copybook
 ↓
XML

XML e z/OS Connect

Hoje muitas empresas utilizam:

REST API
       ↓
JSON
       ↓
z/OS Connect
       ↓
COBOL

Mas internamente ainda existem muitos serviços XML.


XML e DB2

Dados DB2 podem ser transformados em XML.


Exemplo

SELECT *
FROM CLIENTES

<CLIENTE>
...
</CLIENTE>

XML Schema (XSD)

Define regras para XML.


Exemplo

<xs:element name="CLIENTE"/>

Benefícios do XML

✅ Padronização

✅ Interoperabilidade

✅ Legibilidade

✅ Integração entre plataformas

✅ Suporte nativo no COBOL


Desvantagens

❌ Verboso

❌ Arquivos grandes

❌ Parsing mais lento que JSON


XML x JSON

XML:

<NOME>JOAO</NOME>

JSON:

{
  "nome":"JOAO"
}

Hoje JSON é mais comum em APIs REST.

Mas XML continua muito presente em:

  • SOAP

  • Bancos

  • Governo

  • Seguros

  • Mainframe legado


Exemplo Completo XML GENERATE

WORKING-STORAGE SECTION.

01 CLIENTE.
   05 ID-CLI     PIC 9(5).
   05 NOME-CLI   PIC X(30).

01 XML-SAIDA PIC X(1000).

PROCEDURE DIVISION.

MOVE 1001 TO ID-CLI
MOVE 'JOAO SILVA' TO NOME-CLI

XML GENERATE XML-SAIDA
   FROM CLIENTE
END-XML

DISPLAY XML-SAIDA

STOP RUN.

Resumo Rápido

ComandoFunção
XML GENERATECOBOL → XML
XML PARSEXML → COBOL
XML-CODECódigo retorno
XML-EVENTEvento XML
XML-TEXTConteúdo XML
DFHWS2LSXML → Copybook
DFHLS2WSCopybook → XML
SOAPWeb Service XML
XSDSchema XML

Dica para quem estuda Mainframe

Como você já tem interesse em CICS Web Services e z/OS Connect, o próximo passo natural é montar um laboratório com:

COBOL
   ↓
COPYBOOK
   ↓
DFHLS2WS
   ↓
WSDL
   ↓
SOAP XML
   ↓
CICS Web Services

Esse é exatamente o caminho utilizado em muitos bancos para expor programas COBOL como serviços consumidos por aplicações Java, .NET, Mobile e APIs corporativas.

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