| Bellacosa Mainframe e um laboratorio java para mainframers |
☕ Um Café no Bellacosa Mainframe
Laboratório Prático de Java para IBM Mainframe
Metodologia do Laboratório
Este laboratório foi desenvolvido para programadores COBOL iniciantes no ecossistema IBM Z, utilizando uma metodologia prática baseada no conceito learning by doing (aprender fazendo). Em vez de ensinar Java de forma isolada, cada conceito é apresentado em paralelo com tecnologias já conhecidas pelo desenvolvedor Mainframe, como COBOL, JCL, CICS, DB2, VSAM e z/OS. Dessa forma, o aluno estabelece uma associação natural entre os dois ambientes, reduzindo a curva de aprendizado e compreendendo como ambas as linguagens coexistem na arquitetura corporativa moderna.
Os vinte laboratórios evoluem gradualmente, começando pelos fundamentos da linguagem Java, passando por orientação a objetos, tratamento de exceções, coleções, acesso ao DB2 via JDBC, processamento Batch, APIs REST, WebSphere Liberty, IBM MQ, z/OS Connect, automação com Ansible, DevOps, LinuxONE e containers. Cada exercício apresenta objetivos claros, arquitetura, código comentado, desafios práticos e solução completa.
Ao final do treinamento, espera-se que o desenvolvedor compreenda o papel estratégico do Java no IBM Z e no LinuxONE, saiba como a JVM é executada nessas plataformas, desenvolva aplicações Batch e Online, integre serviços Java com programas COBOL e DB2, automatize processos utilizando ferramentas modernas e participe de projetos de modernização sem abandonar os sólidos fundamentos do Mainframe. O objetivo não é substituir o COBOL, mas formar profissionais capazes de transitar com segurança por todo o ecossistema IBM Z.
20 Labs para Transformar um Programador COBOL em um Desenvolvedor Java para IBM Z
Objetivo: Capacitar um programador COBOL Junior a compreender como o Java funciona dentro do ecossistema IBM Z, sempre relacionando os novos conceitos com aquilo que ele já conhece em COBOL, JCL, CICS e DB2.
Filosofia do Laboratório
Este não é um curso tradicional de Java.
É um curso pensado para quem já conhece Mainframe.
Durante todos os exercícios faremos comparações entre:
COBOL × Java
JCL × JVM
CICS × Liberty
SQL Embutido × JDBC
VSAM × Collections
Batch × Java Batch
Online CICS × REST APIs
O objetivo é diminuir o choque entre os dois mundos.
Ambiente sugerido
Desenvolvimento
VS Code
IBM Z Open Editor
Java 21 LTS
Maven
Git
Zowe CLI
Mainframe
IBM z/OS
USS (Unix System Services)
Enterprise COBOL
DB2
CICS TS
z/OS Connect
IBM MQ
WebSphere Liberty
Opcional
LinuxONE
Docker
OpenShift
Ansible
LAB 01 — Primeiro Programa Java
Objetivo
Criar o famoso Hello World.
O que aprender
Classe
Método main()
JVM
Compilação
Exercício
Criar
HelloMainframe.java
Executar
javac HelloMainframe.java
java HelloMainframe
Solução
Exibir
Olá IBM Z
LAB 02 — Comparando COBOL e Java
Objetivo
Criar um programa que recebe nome e idade.
Comparar com
WORKING-STORAGE
DISPLAY
ACCEPT
Aprender
Scanner
Variáveis
String
int
Solução
Programa imprime
Olá João
Você possui 30 anos
LAB 03 — Estruturas de Decisão
Comparar
COBOL
IF
ELSE
END-IF
com
Java
if
else
Exercício
Calcular maioridade.
LAB 04 — Estruturas de Repetição
Comparar
PERFORM UNTIL
com
for
while
Exercício
Exibir números de 1 a 100.
LAB 05 — Métodos
Comparar
SECTION
PARAGRAPH
com
Métodos Java
Criar método
calcularIR()
LAB 06 — Orientação a Objetos
Primeiro contato.
Criar
Cliente
Conta
Banco
Aprender
classe
objeto
atributos
métodos
LAB 07 — Collections
Comparar
Tabela OCCURS
com
ArrayList
Exercício
Cadastrar clientes.
LAB 08 — Tratamento de Exceções
Comparar
IF SQLCODE
IF FILE STATUS
com
try
catch
Gerar erro proposital.
Capturar erro.
LAB 09 — Leitura de Arquivos
Comparar
Sequential File
com
BufferedReader
Ler arquivo
CLIENTES.TXT
LAB 10 — Escrevendo Arquivos
Criar
RELATORIO.TXT
Comparar
WRITE
com
FileWriter.
LAB 11 — JDBC + DB2
Objetivo
Primeira conexão com DB2.
Aprender
Driver JDBC
Connection
Statement
ResultSet
Consulta
SELECT *
CLIENTE
Solução
Exibir registros na tela.
LAB 12 — PreparedStatement
Comparar
EXEC SQL
com
PreparedStatement
Inserir cliente.
Depois atualizar.
Depois excluir.
LAB 13 — Java Batch
Criar um processamento Batch.
Fluxo
Ler Arquivo
↓
Validar
↓
Atualizar DB2
↓
Gerar Relatório
Executar usando JCL.
LAB 14 — Java no USS
Entrar no Unix System Services.
Executar
java
javac
jar
Aprender
PATH
JAVA_HOME
CLASSPATH
LAB 15 — WebSphere Liberty
Criar primeira aplicação.
Executar
localhost:9080
Primeira API REST.
LAB 16 — Java + MQ
Criar
Produtor
Consumidor
Enviar mensagens.
Comparar com Batch desacoplado.
LAB 17 — Java + CICS
Criar aplicação Java.
Consumir programa COBOL.
Fluxo
Java
↓
CICS
↓
COBOL
Entender integração.
LAB 18 — Java + z/OS Connect
Criar API REST.
Consumir programa COBOL.
Resultado
GET
/clientes
Retorna
JSON.
LAB 19 — Deploy Automatizado
Criar Pipeline.
Ferramentas
Git
Maven
Jenkins
Zowe
Ansible
Deploy automático.
LAB 20 — Projeto Final
Sistema Bancário Completo
Arquitetura
Cliente
↓
REST API
↓
Spring Boot
↓
Liberty
↓
MQ
↓
CICS
↓
COBOL
↓
DB2
O Projeto
Cadastrar clientes.
Consultar clientes.
Atualizar clientes.
Excluir clientes.
Gerar relatório Batch.
Consultar API REST.
Executar deploy automático.
Estrutura sugerida
MainframeJavaLabs
│
├── Lab01_HelloJava
├── Lab02_Variaveis
├── Lab03_IF
├── Lab04_FOR
├── Lab05_Metodos
├── Lab06_OO
├── Lab07_Collections
├── Lab08_Exceptions
├── Lab09_Arquivos
├── Lab10_FileWriter
├── Lab11_JDBC
├── Lab12_PreparedStatement
├── Lab13_JavaBatch
├── Lab14_USS
├── Lab15_Liberty
├── Lab16_MQ
├── Lab17_CICS
├── Lab18_zOSConnect
├── Lab19_Ansible
└── Lab20_ProjetoFinal
O que cada laboratório deve conter
Para que o aprendizado seja realmente prático, todos os 20 laboratórios devem seguir a mesma estrutura:
Objetivo: o que será aprendido e por que isso é importante no IBM Z.
Conceitos COBOL equivalentes: comparação direta entre os conceitos de COBOL e Java.
Arquitetura: diagrama do fluxo da aplicação.
Pré-requisitos: softwares, datasets, tabelas DB2 ou configurações necessárias.
Passo a passo: instruções detalhadas de implementação.
Código comentado: explicando cada linha e sua função.
Compilação e execução: tanto no ambiente local quanto no z/OS, quando aplicável.
Análise dos resultados: como validar se tudo funcionou corretamente.
Desafios extras: exercícios para expandir o laboratório.
Solução completa: código-fonte, JCL, scripts Maven/Gradle, SQL e arquivos de configuração.
Competências desenvolvidas
Ao concluir os 20 laboratórios, o programador COBOL Junior terá desenvolvido competências para:
Escrever aplicações Java orientadas a objetos.
Compreender a execução da JVM no IBM Z.
Criar programas Batch em Java executados por JCL.
Desenvolver APIs REST com Spring Boot e WebSphere Liberty.
Integrar aplicações Java com programas COBOL via CICS e z/OS Connect.
Acessar tabelas DB2 utilizando JDBC e PreparedStatement.
Utilizar IBM MQ para comunicação assíncrona.
Trabalhar com USS (Unix System Services).
Automatizar builds e deploys com Maven, Git, Jenkins, Zowe e Ansible.
Entender o papel do LinuxONE, Docker e OpenShift na modernização do ecossistema IBM Z.
Resultado esperado
Ao final desse laboratório, o aluno deixará de enxergar Java como uma tecnologia "concorrente" do COBOL. Em vez disso, compreenderá como ambas as linguagens coexistem no IBM Z, cada uma exercendo um papel específico na arquitetura corporativa moderna. Esse conhecimento amplia significativamente as oportunidades profissionais e prepara o desenvolvedor para atuar em projetos de modernização, integração por APIs e DevOps, mantendo o COBOL como o coração das regras de negócio e o Java como a ponte entre o Mainframe e o restante do mundo.
Sem comentários:
Enviar um comentário