| Bellacosa Mainframe e uma visão do servidor LinuxOne no Mainframe |
☕💣 O DIA EM QUE O MAINFRAME GANHOU UM "SERVIDOR DE APLICAÇÕES GIGANTE": COMO WEB SERVICES CONECTAM z/OS E LINUXONE AO MUNDO MODERNO
Introdução
Durante décadas, o Mainframe foi visto como uma fortaleza isolada. Enquanto servidores Unix, Windows e Linux dominavam o mundo da internet, o z/OS continuava processando milhões de transações bancárias, governamentais e corporativas sem precisar aparecer para o usuário final.
Mas o mundo mudou.
Aplicativos móveis precisavam consultar saldos bancários.
Sites de e-commerce precisavam verificar estoques.
APIs precisavam conversar com programas COBOL.
Microsserviços precisavam acessar dados armazenados em DB2.
Foi nesse momento que surgiu uma das arquiteturas mais interessantes da computação corporativa moderna:
LinuxONE executando aplicações web e APIs enquanto o z/OS continua processando o negócio.
Na prática, o LinuxONE tornou-se uma espécie de "porta de entrada" para o Mainframe.
Hoje vamos entender como tudo isso funciona.
A Origem do Problema
Imagine um programa COBOL criado em 1985.
Ele processa contas correntes.
Funciona perfeitamente.
Executa milhares de transações por segundo.
Mas existe um problema:
Ele não fala HTTP.
Não entende JSON.
Não sabe o que é REST.
Não conhece APIs.
O programa espera receber informações através de:
CICS
MQ
Arquivos VSAM
DB2
Transações 3270
Enquanto isso, um aplicativo Android espera algo como:
{
"conta":"12345",
"saldo":2500.50
}
Era necessário criar uma ponte.
Surge o LinuxONE
LinuxONE é uma plataforma Linux executando diretamente sobre hardware IBM Z.
Fisicamente ele utiliza o mesmo equipamento do Mainframe.
Porém logicamente é outro ambiente.
Podemos ter:
IBM Z
├── LPAR z/OS
│ ├── CICS
│ ├── DB2
│ ├── IMS
│ └── COBOL
│
└── LPAR LinuxONE
├── Apache
├── NGINX
├── Java
├── Spring Boot
├── Node.js
└── Python
Os dois ambientes compartilham o mesmo hardware.
A comunicação ocorre internamente.
Sem sair do datacenter.
Sem atravessar a internet.
Com latência extremamente baixa.
Arquitetura Moderna
Visualmente temos:
Internet
│
▼
Load Balancer
│
▼
NGINX / Apache
(LinuxONE)
│
▼
API REST
(Spring Boot)
│
▼
IBM MQ
│
▼
CICS
(z/OS)
│
▼
COBOL
│
▼
DB2
Observe que:
O usuário nunca acessa o COBOL diretamente.
Ele conversa com uma API.
A API conversa com o Mainframe.
O Mainframe responde.
A API devolve JSON.
O Papel do Servidor de Páginas
Normalmente utilizamos:
Apache HTTP Server
NGINX
IBM HTTP Server
Exemplo:
Cliente
│
▼
Apache
│
▼
Spring Boot
│
▼
MQ
│
▼
COBOL
O Apache recebe:
GET /clientes/123
E encaminha para a aplicação Java.
Criando uma API no LinuxONE
Suponha que queremos consultar saldo bancário.
Endpoint:
GET /saldo/12345
Aplicação Spring Boot:
@RestController
public class SaldoController {
@GetMapping("/saldo/{conta}")
public Saldo obterSaldo(
@PathVariable String conta) {
return servico.consultar(conta);
}
}
Quando a chamada chega:
GET /saldo/12345
o Spring Boot inicia o fluxo.
Como o LinuxONE Conversa com o z/OS
Existem várias opções.
1. IBM MQ
Mais utilizada.
Fluxo:
API
│
▼
MQ REQUEST
│
▼
z/OS
│
▼
COBOL
│
▼
MQ RESPONSE
│
▼
API
O Java envia mensagem.
O COBOL processa.
A resposta retorna.
Exemplo de Mensagem MQ
JSON enviado:
{
"conta":"12345"
}
Fila:
REQ.SALDO
Resposta:
{
"saldo":2500.50
}
Fila:
RESP.SALDO
Exemplo COBOL Consumindo MQ
Pseudo código:
CALL 'MQGET'
MOVE CONTA TO WS-CONTA
EXEC SQL
SELECT SALDO
INTO :WS-SALDO
FROM CONTAS
WHERE NUMERO = :WS-CONTA
END-EXEC
CALL 'MQPUT'
Comunicação Via CICS Web Services
Outra possibilidade.
O CICS pode expor serviços diretamente.
Arquitetura:
LinuxONE
│
HTTP
│
CICS
│
COBOL
Nesse caso não usamos MQ.
A API chama o próprio CICS.
Exemplo de Chamada
Java:
RestTemplate rest =
new RestTemplate();
String resposta =
rest.getForObject(
url,
String.class
);
Chamando:
https://cics.banco.com/saldo
Comunicação Via z/OS Connect
Hoje é uma das soluções mais elegantes.
Arquitetura:
Aplicativo
│
▼
API REST
│
▼
z/OS Connect
│
▼
CICS
IMS
DB2
COBOL
O z/OS Connect converte:
JSON ↔ COBOL
automaticamente.
Exemplo
Cliente envia:
{
"conta":"12345"
}
z/OS Connect converte para:
01 REQUISICAO.
05 CONTA PIC X(10).
Sem programação manual.
Configurando Apache no LinuxONE
Instalação:
sudo yum install httpd
Iniciar:
systemctl start httpd
Habilitar:
systemctl enable httpd
Teste:
curl localhost
Configurando Proxy para API
Arquivo:
/etc/httpd/conf/httpd.conf
Exemplo:
ProxyPass /api http://localhost:8080
ProxyPassReverse /api
http://localhost:8080
Fluxo:
Apache
│
▼
Spring Boot
Configurando Spring Boot
Aplicação:
server.port=8080
Executar:
java -jar banco.jar
Teste:
curl http://localhost:8080/saldo/12345
Configurando IBM MQ
Criar Queue Manager:
crtmqm QM1
Iniciar:
strmqm QM1
Criar fila:
DEFINE QLOCAL(REQ.SALDO)
Criar fila resposta:
DEFINE QLOCAL(RESP.SALDO)
Fluxo Completo da Transação
Passo 1
Usuário abre aplicativo.
Android
Passo 2
Aplicativo envia:
GET /saldo/12345
Passo 3
Apache recebe.
Passo 4
Apache encaminha para Spring Boot.
Passo 5
Spring Boot envia mensagem MQ.
Passo 6
MQ entrega ao z/OS.
Passo 7
COBOL processa.
Passo 8
DB2 retorna saldo.
Passo 9
COBOL responde MQ.
Passo 10
Spring Boot recebe.
Passo 11
Spring Boot gera JSON.
Passo 12
Apache devolve ao cliente.
Resultado:
{
"conta":"12345",
"saldo":2500.50
}
Segurança da Arquitetura
Normalmente utilizamos:
RACF
Controla acesso no z/OS.
TLS
Criptografia HTTPS.
JWT
Autenticação moderna.
OAuth2
Integração com aplicações externas.
Fluxo:
Cliente
│
JWT
▼
API
│
MQ
▼
COBOL
Vantagens do LinuxONE
Não altera o COBOL
O sistema continua funcionando.
Escalabilidade
Mais APIs podem ser criadas.
Segurança
Tudo permanece dentro do IBM Z.
Menor latência
Comunicação interna.
Modernização gradual
Não exige reescrever aplicações.
Caso Real de Banco
Muitos bancos utilizam:
App Mobile
│
▼
Kubernetes
(LinuxONE)
│
▼
APIs Java
│
▼
MQ
│
▼
CICS
│
▼
COBOL
│
▼
DB2
O cliente acredita estar falando com uma aplicação moderna.
Mas no fundo uma rotina COBOL criada décadas atrás continua executando a lógica principal do negócio.
O Futuro
Hoje vemos LinuxONE executando:
Docker
Kubernetes
OpenShift
Python
Java
Node.js
IA Generativa
APIs REST
Microsserviços
Enquanto o z/OS continua executando:
COBOL
CICS
IMS
DB2
Batch
Os dois mundos coexistem.
Não existe substituição.
Existe integração.
Conclusão
O LinuxONE transformou a forma como o Mainframe conversa com o mundo moderno. Em vez de expor diretamente aplicações COBOL, as organizações passaram a utilizar APIs REST, servidores web, microsserviços e containers executando lado a lado com o z/OS no mesmo hardware IBM Z.
Na prática, o LinuxONE atua como uma camada de apresentação e integração, enquanto o z/OS continua sendo o coração do processamento transacional. O resultado é uma arquitetura capaz de unir décadas de investimento em aplicações COBOL com tecnologias modernas como Spring Boot, Kubernetes, OpenShift, APIs REST, JSON e autenticação OAuth.
É por isso que muitos especialistas afirmam que o futuro do Mainframe não está em substituir sistemas legados, mas em conectá-los ao ecossistema digital. E nessa missão, LinuxONE e z/OS formam uma das parcerias mais poderosas já criadas dentro da computação corporativa.
Sem comentários:
Enviar um comentário