Translate

quinta-feira, 23 de novembro de 2023

APIs sem Mistérios : O Guia Definitivo do Programador COBOL Padawan para Entender Como o IBM Z Conversa com o Mundo Moderno

 

Bellacosa Mainframe em apis sem misterios

☕ Um Café no Bellacosa Mainframe

APIs sem Mistérios

O Guia Definitivo do Programador COBOL Padawan para Entender Como o IBM Z Conversa com o Mundo Moderno

"A comunicação é a essência da cooperação. Uma tecnologia isolada possui pouco valor. Sistemas que conversam mudam o mundo."

— Dr. Spock (adaptado ao universo Bellacosa Mainframe)


Introdução – Quando o Padawan Descobre que o Mundo Não Vive Apenas de Arquivos Sequenciais

Existe um momento curioso na vida de praticamente todo programador COBOL.

Durante meses ele aprende:

  • JCL

  • VSAM

  • Db2

  • CICS

  • IMS

  • SORT

  • IDCAMS

  • MQ

  • TSO

  • ISPF

Tudo parece fazer sentido.

Até que um dia alguém chega perto de sua mesa e diz:

"Precisamos expor esse programa COBOL como uma API REST."

Logo em seguida aparece outra pessoa:

"O aplicativo mobile quer consumir via GraphQL."

Cinco minutos depois:

"O pessoal da IoT vai mandar dados usando MQTT."

Mais tarde:

"O pessoal da arquitetura decidiu migrar tudo para Event Driven Architecture."

Nesse momento, o Padawan olha para sua tela 3270, respira fundo e pensa:

"Será que entrei na nave errada?"

A resposta é simples.

Não.

Na verdade, você acabou de descobrir que o IBM Z nunca deixou de evoluir.

O COBOL continua processando bilhões de transações diariamente.

O que mudou foi a maneira como o restante do mundo conversa com ele.

Hoje não basta apenas executar um programa.

É preciso fazê-lo conversar com:

  • aplicativos móveis;

  • sistemas web;

  • microsserviços;

  • inteligência artificial;

  • sensores industriais;

  • plataformas em nuvem;

  • robôs;

  • bancos;

  • marketplaces;

  • parceiros comerciais.

E tudo isso acontece através das famosas APIs e protocolos de integração.

Pegue sua caneca de café.

Hoje faremos uma viagem digna da USS Enterprise para descobrir como todos esses mundos se conectam.


Antes de tudo…

API não é protocolo.

Essa é uma das maiores confusões da computação.

Muitas pessoas dizem:

"Qual protocolo de API você usa?"

Na realidade, misturam três conceitos diferentes.

Protocolos

São as regras de comunicação.

Exemplos:

  • HTTP

  • MQTT

  • AMQP

  • CoAP

  • XMPP

  • OPC-UA


Arquiteturas

Definem como organizar os sistemas.

Exemplos:

  • REST

  • Event Driven Architecture (EDA)


Linguagens

Definem como fazer consultas.

Exemplo:

  • GraphQL


Frameworks RPC

Automatizam chamadas remotas.

Exemplos:

  • gRPC

  • Apache Thrift


Padrões

Definem maneiras de integração.

Exemplos:

  • Webhooks

  • EDI

Essa distinção é extremamente importante.

Um arquiteto de software sabe exatamente qual dessas ferramentas resolve determinado problema.


A História da Comunicação Entre Sistemas

Vamos voltar algumas décadas.

Imagine um grande CPD IBM.

Tudo era assim.

Programa COBOL

↓

Arquivo Sequencial

↓

Outro programa COBOL

↓

Relatório

Não existia internet.

Não existia JSON.

Não existia XML.

Muito menos APIs.

Os sistemas trocavam informações através de:

  • fitas magnéticas;

  • cartões perfurados;

  • arquivos VSAM;

  • arquivos QSAM;

  • EDI;

  • filas MQ (mais tarde).

Era extremamente eficiente.

Até hoje muitos bancos funcionam exatamente assim.


A Primeira Grande Revolução

Com o surgimento da Internet nasceu uma nova necessidade.

Ao invés de trocar arquivos uma vez por dia…

…os sistemas precisavam conversar em segundos.

Assim nasceu o modelo Request/Response.

Cliente

↓

Servidor

↓

Resposta

Esse paradigma mudou completamente a computação.


REST — O Idioma Universal das APIs

REST significa:

Representational State Transfer.

Criado por Roy Fielding em sua tese de doutorado em 2000.

Curiosamente…

REST não é um protocolo.

Ele apenas utiliza HTTP.

Imagine um restaurante.

Você faz um pedido.

Cliente

↓

Garçom

↓

Cozinha

↓

Resposta

É exatamente isso que acontece.

GET /clientes/100

Resposta

{
 "id":100,
 "nome":"Maria"
}

Tudo extremamente simples.


Métodos HTTP

O Padawan precisa decorar apenas cinco verbos.

GET

Buscar.

POST

Criar.

PUT

Atualizar tudo.

PATCH

Atualizar parcialmente.

DELETE

Excluir.


No mundo Mainframe

Hoje um programa COBOL pode virar uma API REST utilizando:

  • z/OS Connect EE

  • CICS

  • IMS

  • Java

  • Liberty

Sem alterar praticamente nada da lógica de negócio.

Essa talvez seja uma das maiores revoluções do IBM Z.


SOAP — O Cavaleiro Jedi Corporativo

Antes do REST dominar o planeta…

SOAP reinava absoluto.

Tudo era XML.

Exemplo.

<Envelope>

<Body>

<GetCustomer/>

</Body>

</Envelope>

Parece enorme.

E realmente é.

Mas SOAP possui poderes que REST não possui naturalmente.

Entre eles:

  • assinatura digital;

  • segurança WS-Security;

  • transações;

  • confiabilidade;

  • contratos extremamente rígidos.

Por isso bancos ainda utilizam SOAP em larga escala.


GraphQL — O Cliente Decide

Imagine pedir uma pizza.

REST entrega:

  • pizza

  • refrigerante

  • sobremesa

  • talheres

  • guardanapos

Mesmo que você só queira uma pizza.

GraphQL muda completamente isso.

Você pede exatamente aquilo que deseja.

{
 cliente{

nome

telefone

}
}

Recebe apenas isso.

Nada mais.

Muito eficiente para aplicações móveis.


WebSockets — A Conversa Nunca Termina

HTTP tradicional funciona assim.

Pergunta

↓

Resposta

↓

Fim.

WebSocket funciona assim.

Cliente

⇅

Servidor

⇅

Cliente

A conexão permanece aberta.

Excelente para:

  • bolsa de valores;

  • chats;

  • videogames;

  • monitoramento;

  • dashboards.


Server Sent Events (SSE)

Muito parecido.

Mas existe uma diferença importante.

Apenas o servidor fala.

Servidor

↓↓↓↓↓↓↓↓

Cliente

Ideal para notificações.

Exemplo.

Seu dashboard do z/OS mostra:

CPU.

Fila JES.

Espaço em disco.

Tudo atualizado automaticamente.


gRPC — A Fórmula 1 das APIs

Criado pelo Google.

Enquanto REST utiliza texto…

gRPC utiliza Protocol Buffers.

Muito menores.

Muito mais rápidos.

Imagine enviar um livro.

REST envia tudo em papel.

gRPC envia tudo compactado.

É por isso que grandes empresas utilizam gRPC entre microsserviços.


Apache Thrift

Criado pelo Facebook.

Possui a mesma filosofia.

Você descreve uma interface.

O framework gera automaticamente clientes para diversas linguagens.

Java.

Python.

Go.

C#.

C++.

COBOL?

Ainda não…

Mas pode conversar através de gateways.


MQTT — O Mestre da IoT

Imagine um sensor de temperatura.

Ele possui:

  • pouca memória;

  • bateria;

  • internet lenta.

Não faz sentido transmitir XML gigantesco.

MQTT resolve isso.

Publica mensagens extremamente pequenas.

temperatura

↓

25°C

Pronto.

Perfeito.


Publicador e Assinante

MQTT funciona como um jornal.

Alguém publica.

Publisher

Outro recebe.

Subscriber

No meio existe o Broker.

Sensor

↓

Broker

↓

Aplicativos

Muito elegante.


AMQP — O Carteiro Corporativo

Se MQTT é uma bicicleta…

AMQP é um caminhão blindado.

Possui:

  • filas;

  • persistência;

  • confirmação;

  • roteamento;

  • entrega garantida.

Ideal para:

  • bancos;

  • seguradoras;

  • ERP;

  • processamento financeiro.


Onde entra o IBM MQ?

Curiosamente…

O IBM MQ possui protocolo próprio (MQI).

Mas também suporta integrações usando AMQP em determinados cenários.

É uma das tecnologias mais importantes do mundo corporativo.


Event Driven Architecture (EDA)

Aqui acontece uma mudança de mentalidade.

Ao invés de perguntar:

Pedido foi pago?

O sistema anuncia.

Pagamento realizado.

Todos os interessados recebem.

Financeiro

Estoque

CRM

Analytics

IA

Data Lake

Tudo automaticamente.


Webhooks

Webhooks parecem mágicos.

Mas são extremamente simples.

Imagine o GitHub.

Você faz um Push.

Instantaneamente.

GitHub

↓

HTTP POST

↓

Jenkins

↓

Deploy

Ninguém ficou perguntando.

O GitHub avisou.


EDI — Muito Antes da Internet

Muitos acreditam que integração nasceu com REST.

Na verdade…

EDI existe desde os anos 60.

Ele padronizou documentos empresariais.

Como:

  • pedidos;

  • notas fiscais;

  • faturas;

  • ordens de compra.

Até hoje movimenta trilhões de dólares.


CoAP

Pense nele como:

"O HTTP para sensores."

Funciona sobre UDP.

Muito leve.

Ideal para dispositivos extremamente limitados.


XMPP

Muito famoso no começo da internet.

Utilizado por:

  • chats;

  • mensagens;

  • presença online.

Google Talk utilizava XMPP.


DDS

Aqui entramos no mundo militar.

DDS é utilizado em:

  • submarinos;

  • satélites;

  • aviões;

  • radares;

  • defesa.

Latência extremamente baixa.

Comunicação quase instantânea.


OPC-UA

Esse protocolo merece respeito.

É praticamente o idioma universal das fábricas.

Imagine uma linha de produção.

Robôs.

CLPs.

Esteiras.

Sensores.

Todos conversam usando OPC-UA.

Hoje ele é um dos pilares da Indústria 4.0.


Como Tudo Isso Conversa com o IBM Z?

Agora vem a pergunta que todo Padawan faz.

"O COBOL participa disso tudo?"

A resposta é:

Sim.

Muito mais do que imaginamos.

Exemplo.

Aplicativo Android

↓

REST

↓

API Gateway

↓

z/OS Connect

↓

CICS

↓

Programa COBOL

↓

Db2

↓

Resposta

Outro cenário.

Sensor MQTT

↓

Broker

↓

Kafka

↓

IBM MQ

↓

Programa COBOL

Outro.

Marketplace

↓

Webhook

↓

Microserviço

↓

MQ

↓

Batch COBOL

Perceba.

O COBOL não precisa conhecer MQTT.

Nem GraphQL.

Nem WebSocket.

Existe uma camada responsável por traduzir esses protocolos e entregar os dados ao programa de forma transparente.

Essa separação de responsabilidades é uma das razões pelas quais sistemas IBM Z conseguem evoluir durante décadas sem reescrever milhões de linhas de código.


Comparando Cada Tecnologia

TecnologiaMelhor para
RESTAPIs Web
SOAPIntegrações corporativas
GraphQLAplicações móveis
WebSocketTempo real
SSENotificações
gRPCMicrosserviços
MQTTIoT
AMQPFilas corporativas
EDIB2B
WebhooksIntegração instantânea
CoAPDispositivos restritos
OPC-UAAutomação industrial
DDSSistemas críticos
XMPPMensageria
ThriftRPC multiplataforma

Passo a Passo para o Padawan Aprender APIs

Uma boa jornada de estudos pode seguir esta sequência:

  1. Domine HTTP (GET, POST, PUT, PATCH e DELETE) e compreenda códigos de status como 200, 201, 400, 401, 404 e 500.

  2. Aprenda JSON e XML, pois são os formatos de dados mais comuns em integrações.

  3. Estude REST e pratique com ferramentas como Postman ou Insomnia.

  4. Entenda autenticação com API Keys, OAuth 2.0 e JWT.

  5. Conheça SOAP e WSDL para compreender integrações corporativas legadas.

  6. Explore IBM MQ e conceitos de mensageria assíncrona.

  7. Aprenda os fundamentos de EDA e publicação/assinatura de eventos.

  8. Estude GraphQL e gRPC para arquiteturas modernas.

  9. Descubra como o z/OS Connect EE expõe programas COBOL como APIs REST sem alterar a lógica de negócio.

  10. Finalmente, aprofunde-se em observabilidade, segurança, governança e versionamento de APIs.


Erros Comuns dos Iniciantes

  • Achar que REST é um protocolo.

  • Imaginar que GraphQL substitui REST em todos os cenários.

  • Pensar que SOAP está "morto". Em ambientes corporativos críticos ele continua extremamente relevante.

  • Usar WebSockets quando uma API REST seria suficiente.

  • Escolher MQTT para aplicações que exigem garantias complexas de entrega, onde AMQP pode ser mais adequado.

  • Ignorar autenticação, autorização e criptografia nas APIs.

  • Expor diretamente programas COBOL sem uma camada de gerenciamento, segurança e monitoramento.


Easter Eggs do Bellacosa Mainframe

🔹 Star Trek: o computador da USS Enterprise conversa com sensores, consoles, replicadores e sistemas de navegação usando diferentes protocolos internos. Nenhum tripulante percebe essa complexidade porque existe uma arquitetura de integração por trás. O IBM Z faz exatamente isso nas empresas modernas.

🔹 A Torre de Babel da Computação: REST, SOAP, MQTT, AMQP e GraphQL parecem idiomas diferentes. O papel das plataformas de integração, gateways de API e barramentos de mensagens é funcionar como "tradutores universais", lembrando o Tradutor Universal de Star Trek.

🔹 O COBOL como o Capitão da Nave: enquanto novas tecnologias entram e saem de moda, o COBOL permanece tomando as decisões críticas do negócio. As APIs são os oficiais de comunicações que levam e trazem informações para o capitão.

🔹 Curiosidade Histórica: antes de JSON, XML e APIs, muitos bancos trocavam informações usando arquivos EBCDIC em fitas magnéticas e conexões SNA. Em muitos casos, esses processos ainda coexistem com APIs REST e microsserviços em arquiteturas híbridas.


Conclusão — O Verdadeiro Poder Está na Integração

Existe uma tendência no mercado de apresentar cada nova tecnologia como uma substituta definitiva da anterior. A história da computação mostra exatamente o contrário.

REST não eliminou SOAP.

GraphQL não eliminou REST.

MQTT não eliminou AMQP.

EDI continua movimentando cadeias globais de suprimentos.

IBM MQ permanece essencial para integração corporativa.

E o COBOL continua executando algumas das transações mais importantes do planeta.

O segredo não está em escolher um único protocolo, mas em compreender quando e por que utilizar cada um deles.

Para o programador COBOL Padawan, essa é uma lição valiosa: o IBM Z não vive isolado em uma sala com luzes piscando e terminais 3270. Ele é o coração de um ecossistema conectado por APIs, filas, eventos, microsserviços, sensores industriais, aplicações móveis, inteligência artificial e serviços em nuvem.

Como diria o Dr. Spock ao observar um datacenter moderno:

"A lógica indica que nenhuma tecnologia vence sozinha. As maiores realizações surgem quando sistemas diferentes aprendem a cooperar."

E talvez essa seja a maior lição desta jornada: o futuro da computação não pertence a uma linguagem, a um protocolo ou a uma plataforma. Ele pertence à integração inteligente entre todos eles.


Sem comentários:

Enviar um comentário