São 8h17. Um programa COBOL precisa de uma pequena correção, mas o desenvolvedor está fora do ambiente tradicional de TSO/ISPF. A primeira reação costuma ser imaginar o terminal verde, uma sequência de comandos e várias telas pouco familiares. Esse cenário ainda existe — e continua importante —, mas não é a única forma de trabalhar com z/OS.
Com um servidor IBM z/OS Management Facility (z/OSMF) configurado, um navegador ou um cliente HTTP pode acessar funções de gestão do sistema. No desktop, ferramentas como Visual Studio Code e Zowe Explorer tornam possível editar um membro COBOL, enviar o arquivo, submeter um JCL, acompanhar o job e baixar a listagem. Isso não elimina o mainframe nem transforma o desenvolvimento em uma operação genérica de nuvem. Apenas oferece outra camada de interação.
O que é o z/OSMF?
O z/OSMF é uma facilidade de gerenciamento do z/OS orientada a tarefas. Sua interface web reúne funções para administrar operações do dia a dia, políticas, software, desempenho, problemas e outros recursos do sistema . Não é um aplicativo instalado em um notebook: é um conjunto de aplicações web executadas no próprio ambiente z/OS, com o WebSphere Liberty fornecido pelo sistema.
O navegador é apenas o cliente. O processamento, a autenticação e o acesso aos datasets, jobs, consoles e demais recursos continuam no host. O servidor pode operar em monoplex, em parallel sysplex ou em XCF local mode, conforme a arquitetura da instalação. O z/OSMF é distribuído com o z/OS, mas isso não significa que esteja automaticamente configurado ou em execução .
A outra face do produto são as APIs REST. Elas aceitam requisições HTTP de aplicações locais ou remotas e são independentes de linguagem e plataforma. Uma chamada pode retornar JSON, texto ou dados binários, dependendo do serviço . Assim, um programa Python, Java ou JavaScript pode conversar com o z/OSMF sem precisar reproduzir a interface web.
É importante separar os papéis. z/OS é o sistema operacional IBM Z, onde rodam JES, TSO/E, UNIX System Services (USS), CICS e outros subsistemas. z/OSMF é a camada IBM de gestão e administração. Zowe é um ecossistema de componentes cliente e servidor que expõe funções do ambiente Z para ferramentas modernas; pode consumir APIs do z/OSMF. O API Mediation Layer do Zowe pode atuar como ponto de entrada, gateway, catálogo, descoberta e mediação de APIs de infraestrutura .
Um fluxo COBOL no VS Code — apenas ilustrativo
Considere o fluxo didático abaixo. Ele demonstra as primitivas disponíveis, não um pipeline COBOL pronto para qualquer instalação.
Primeiro, o desenvolvedor abre no VS Code um membro COBOL de um dataset MVS, como um PDS ou PDSE, ou um arquivo armazenado no USS. Com o Zowe Explorer, é possível navegar, editar e salvar arquivos COBOL em MVS e USS, executar JCL e consultar o spool de jobs . O IBM Z Open Editor fornece recursos de edição para COBOL, mas o Explorer é quem faz a interação com os recursos remotos.
Ao salvar um arquivo local como membro existente, a operação REST correspondente pode ser um PUT; para criar um dataset, a API usa POST. A interface de datasets e arquivos também permite listar datasets, listar membros, ler conteúdo e trabalhar com diretórios e arquivos USS. Em uma atualização concorrente, o cliente pode usar o ETag devolvido na leitura e enviá-lo em If-Match; se o conteúdo mudou no servidor, a API pode responder com HTTP 412 .
Em seguida, o desenvolvedor mantém um JCL de compilação e execução em outro membro ou arquivo USS. Pelo Explorer, pelo Zowe CLI ou diretamente pela API, esse JCL é submetido ao serviço de jobs. A chamada representativa é PUT /zosmf/restjobs/jobs. O retorno fornece informações para acompanhar a execução, como nome e identificador do job.
A consulta é assíncrona: o cliente verifica o status com uma chamada semelhante a GET /zosmf/restjobs/jobs/<jobname>/<jobid>. Uma consulta feita imediatamente após o envio pode ocorrer antes de o JES registrar o job; a documentação alerta para a possibilidade de uma resposta equivalente a “No job found for reference”. Por isso, clientes normalmente fazem polling com um pequeno intervalo .
Depois, o programa lista os arquivos de spool do job e recupera os registros de um arquivo específico. As rotas representativas são /files e /files/<nnn>/records. O JCL submetido também pode ser recuperado pela rota de registros do arquivo JCL. No VS Code, o usuário pode expandir o job, abrir a saída, baixar um spool ou baixar todos os spools, dependendo da configuração do cliente . A “listagem” pode ser a saída do compilador, mensagens do JES ou o resultado da execução.
O ponto decisivo é o que esse exemplo não afirma. O z/OSMF não escolhe automaticamente o compilador Enterprise COBOL, não sabe quais copybooks usar e não inventa DDs, bibliotecas, classes JES ou parâmetros de execução. O JCL e a cadeia de build pertencem ao ambiente do cliente. O Enterprise COBOL é o compilador que traduz o programa para código objeto e produz informações de diagnóstico; o Language Environment fornece suporte de execução, enquanto CICS ou outro subsistema participa quando a aplicação exige esse runtime .
Da operação de jobs à administração do ambiente
Os datasets e jobs são apenas a porta de entrada. A API REST de console permite emitir comandos de forma síncrona ou assíncrona e recuperar a resposta posteriormente. Esse recurso é administrativo e, justamente por isso, não deve ser liberado como se fosse uma função comum de edição. A emissão de comandos depende das permissões de console e das políticas de segurança da instalação .
Workflows permitem descrever etapas automatizadas e executá-las de maneira controlada. A API documenta operações para criar, listar, iniciar, cancelar e excluir workflows. Para iniciar um fluxo, é necessário que exista ao menos uma etapa automatizada, além das autorizações SAF e EJBROLE correspondentes . Na prática, isso pode organizar uma sequência de preparação, validação e execução sem esconder as responsabilidades de cada etapa.
O z/OSMF também possui tarefas de escopo mais amplo:
- Software Management mantém inventário, informações de produtos SMP/E, datasets, implantação e atualizações. Excluir um cadastro no z/OSMF não significa necessariamente apagar os datasets físicos associados.
- Cloud Provisioning and Management usa templates de software service e workflows para criar ou remover ambientes de z/OS e middleware. Um domínio pode envolver mais de um sysplex, com papéis separados para administradores, aprovadores e consumidores.
- Workload Management (WLM) permite trabalhar com service definitions, instalar definições no couple data set do WLM, ativar policies e analisar dados de desempenho. É administração efetiva do sysplex, não apenas uma consulta REST.
- Sysplex Management trata políticas CFRM e a visualização de sistemas, CPCs, LPARs, coupling facilities e estruturas. Não é uma abstração universal de toda a topologia: é uma função específica de administração de políticas de sysplex.
- Incident Log consolida incidentes, dumps e informações de logs. Depende de facilities como CEA, SDUMP, IPCS, System Logger, DAE e LOGREC; portanto, não é apenas uma coleta HTTP.
- Storage Management consulta storage groups, volumes, data classes e storage classes e pode validar ou ativar SCDS. A disponibilidade de constructs e funções varia entre releases.
API administrativa não é API de negócio
Essa distinção evita muita confusão. Uma chamada do z/OSMF para submeter JCL, ler um dataset ou consultar um job administra o ambiente de execução. Ela não representa, por si só, uma operação do negócio de uma empresa.
CICS Transaction Server é o runtime de transações que hospeda programas e recursos da aplicação. Uma transação CICS pode executar um ou mais programas COBOL e controlar unidades de trabalho. Já o z/OS Connect, como API provider, pode expor aplicações e dados hospedados em CICS, IMS, MQ ou Db2 por APIs REST. Nesse caso, endpoints como consultar um produto ou criar um registro podem representar operações de negócio, conforme o contrato OpenAPI e a aplicação subjacente.
Como API requester, o z/OS Connect também permite que aplicações z/OS consumam serviços REST externos. Ele não substitui o z/OSMF, assim como Zowe não substitui CICS e o compilador COBOL não é um gateway de APIs. Cada componente resolve um problema diferente.
Segurança: HTTPS é parte do desenho
As APIs do z/OSMF exigem autenticação. A documentação descreve autenticação Basic, por certificado e por web token; o serviço de login usa HTTPS, cabeçalhos apropriados e proteção contra CSRF. O endereço, a porta, o certificado, o realm e os nomes de perfis são específicos de cada instalação. https://<host>:<port>/zosmf é apenas uma forma de representar um endereço, não uma URL pública universal.
Autenticação não é autorização. O login identifica o usuário, mas o acesso efetivo a datasets, USS, jobs, spool, TSO, JES e console depende do SAF e do gerenciador de segurança instalado — frequentemente o RACF. Perfis de aplicação, EJBROLE, APPL, JESSPOOL, OPERCMDS, TSOAUTH e outras classes podem entrar em cena conforme os serviços habilitados. Um usuário autenticado não ganha automaticamente permissão para ler um dataset ou emitir um comando.
HTTPS/TLS deve ser preservado. Certificados, key rings, truststores, AT-TLS e System SSL precisam ser planejados pelo administrador. No Zowe, a validação estrita de certificados é a recomendação para produção; opções que desabilitam a validação ou ignoram o hostname podem servir a testes controlados, mas não são uma orientação para ambiente real. Também é preciso proteger tokens e credenciais: perfis do Zowe podem usar um cofre de credenciais, enquanto configurações inadequadas podem deixar segredos em texto claro.
Python, Java e JavaScript na automação
A mesma operação pode ser transformada em script ou serviço. O Zowe Client Python SDK oferece acesso programático a jobs, datasets, console, TSO e workflows. O cliente pode carregar um perfil zosmf ou receber host, porta e credenciais explicitamente .
Em Java, o Zowe Java SDK pode ser incorporado a projetos Maven ou Gradle para criar automações de arquivos, jobs e workflows. Em JavaScript/Node.js, o Zowe Node Client SDK oferece pacotes para REST, arquivos, jobs e z/OSMF. Esses SDKs reduzem o trabalho de montar requisições, mas não removem as autorizações SAF nem transformam uma API administrativa em uma API de negócio.
Um navegador chamando diretamente o host merece atenção especial: CORS e CSRF podem bloquear a requisição. O exemplo público IBM de cliente REST mostra essa limitação e recomenda hospedagem e configuração compatíveis, em vez de presumir que qualquer página web poderá chamar o z/OSMF.
Vantagens, limites e como estudar
A vantagem principal é combinar uma superfície web, APIs padronizadas e automação reproduzível. Operações de arquivos e jobs podem entrar em scripts, pipelines e ferramentas de desenvolvimento sem abandonar controles do z/OS. Workflows ajudam a encadear tarefas, enquanto Zowe Explorer oferece uma experiência familiar para quem trabalha no VS Code.
Os limites são igualmente importantes: a instalação exige planejamento, Liberty, segurança e started tasks; as APIs variam por release, APAR e configuração; encoding, EBCDIC, atributos de dataset, JCL e permissões não desaparecem; e tarefas como console, WLM, provisioning e diagnóstico continuam sendo administrativas. Zowe Explorer também não compila COBOL sozinho.
Para estudar, IBM Z Xplore oferece desafios práticos sobre datasets, JCL, USS, Python, COBOL e segurança. O catálogo IBM Z Software Trials anuncia ambientes virtuais z/OS sem custo, mas disponibilidade, duração e produtos devem ser confirmadas no fluxo atual. O antigo anúncio do Zowe Trial é útil como registro histórico, não como garantia de oferta vigente.
GnuCOBOL é uma boa opção local para aprender sintaxe, compilar e testar lógica COBOL, mas não fornece z/OS, JES, SAF/RACF, datasets catalogados, CICS ou z/OSMF. Hercules pode emular arquiteturas IBM, porém o sistema operacional é fornecido separadamente. TK5 reúne um MVS 3.8J histórico; ensina conceitos de IPL, JES, TSO e batch, mas não equivale a um z/OS atual com z/OSMF, Liberty e suas APIs. Para validar o fluxo real, é preciso um z/OS suportado, com z/OSMF configurado, TLS e autorizações efetivas.
Assim, o terminal verde não precisa ser rejeitado nem idolatrado. O z/OSMF acrescenta uma camada web e programável sobre operações reais do z/OS. Compreender essa divisão — sistema, gestão, cliente, runtime, API de negócio e compilador — é o que permite usar a modernização sem perder a precisão operacional do mainframe.
