Translate

sábado, 24 de fevereiro de 2007

O que é COBOL Bug Trap e Captura de ABEND?

Bellacosa Mainframe o que é Bug Trap em Cobol


O que é COBOL Bug Trap e Captura de ABEND?

Em ambientes Mainframe, especialmente em aplicações críticas, um dos maiores desafios é descobrir rapidamente:

Por que o programa falhou?
Onde ocorreu o erro?
Qual variável causou o problema?

Para isso existem mecanismos conhecidos como:

Bug Trap

e

Captura de ABEND


O que é um ABEND?

ABEND significa:

Abnormal End

Ou seja:

Finalização Anormal

O programa termina devido a um erro.


Exemplos de ABENDs comuns

ABENDCausa
S0C7Erro de dados numéricos
S0C4Violação de memória
S806Programa não encontrado
SB37Falta de espaço
U4038Erro definido pela aplicação
ASRAExceção em CICS

Exemplo de S0C7

MOVE 'ABC' TO WS-VALOR-NUM
ADD 1 TO WS-VALOR-NUM

Resultado:

S0C7

O Problema

Sem diagnóstico adequado você recebe apenas:

JOB ABENDED

e precisa descobrir:

Qual campo?
Qual linha?
Qual programa?

O que é Bug Trap?

Bug Trap é uma técnica ou ferramenta que captura informações detalhadas antes do programa terminar.

Objetivo:

Transformar um ABEND misterioso
em um erro fácil de analisar

O que o Bug Trap captura?

  • Nome do programa

  • Data e hora

  • Parágrafo COBOL

  • Variáveis

  • SQLCODE

  • CICS EIBRESP

  • Chave VSAM

  • Dados recebidos

  • Stack de chamadas


Fluxo Simplificado

Erro
 ↓
Bug Trap
 ↓
Captura informações
 ↓
Gera relatório
 ↓
ABEND

Exemplo

Sem Bug Trap:

S0C7

Com Bug Trap:

PROGRAMA = FIN001

PARAGRAFO = CALCULA-JUROS

CAMPO = WS-SALDO

VALOR = ABCDEF

ABEND = S0C7

Captura de ABEND no COBOL

Uma prática comum é criar rotinas padronizadas.


Exemplo

IF SQLCODE NOT = 0

   PERFORM TRATA-ERRO

END-IF

Rotina de Tratamento

TRATA-ERRO.

DISPLAY 'ERRO SQL'

DISPLAY SQLCODE

MOVE 16 TO RETURN-CODE

STOP RUN.

Capturando FILE STATUS

Muito comum em arquivos.


READ ARQCLIENTE

IF WS-FS NOT = '00'

   DISPLAY 'ERRO LEITURA'

   DISPLAY WS-FS

END-IF

Captura de SQLCODE

Programas DB2.


EXEC SQL

   SELECT ...

END-EXEC

IF SQLCODE NOT = 0

   DISPLAY SQLCODE

END-IF

Captura de CICS

Programas online.


EXEC CICS

   READ FILE(...)

   RESP(WS-RESP)

END-EXEC

IF WS-RESP NOT = DFHRESP(NORMAL)

   DISPLAY WS-RESP

END-IF

Uso de Declaratives

COBOL possui tratamento nativo.


DECLARATIVES.

ARQ-ERROR SECTION.

USE AFTER STANDARD ERROR PROCEDURE
ON ARQCLIENTE.

DISPLAY 'ERRO ARQUIVO'.

END DECLARATIVES.

LE Condition Handler

No ambiente IBM Language Environment (LE).


Pode interceptar:

S0C7
S0C4
Overflow
Underflow

Ferramentas modernas utilizam LE para coletar:

  • Call Stack

  • Variáveis

  • Offset

  • PSW


Ferramentas Comerciais


IBM Fault Analyzer

Uma das mais utilizadas.

Captura automaticamente:

  • ABEND

  • Variáveis

  • Fonte COBOL

  • Call Stack


IBM Application Performance Analyzer

Auxilia análise de execução.


Abend-AID

Muito popular em bancos.

Produz relatórios detalhados.


Xpediter

Debug e análise de falhas.


Exemplo Fault Analyzer

Após um S0C7:

ABEND S0C7

PROGRAMA:
FIN001

PARAGRAFO:
CALCULA-PARCELA

CAMPO:
WS-VALOR

CONTEUDO:
ABC123

Exemplo Abend-AID

Mostra:

Linha COBOL

Variáveis

Offsets

Call Stack

Storage

Captura Manual (Estilo Bellacosa)

Uma prática comum é criar um copybook corporativo.


COPY LOGERRO.

Sempre que ocorrer erro:

PERFORM REGISTRA-ERRO

Grava:

Programa

Parágrafo

Usuário

Data

Hora

SQLCODE

File Status

Mensagem

Exemplo de Log

PROGRAMA=FIN001

PARAGRAFO=ATUALIZA-SALDO

SQLCODE=-911

USUARIO=BELLA01

DATA=20260801

HORA=14:35:21

Captura de Call Stack

Especialmente importante em:

CALL
CALL
CALL
CALL

Exemplo:

MAIN
 ↓
CALCULO
 ↓
JUROS
 ↓
VALIDA

Erro ocorreu em:

VALIDA

Captura de Dumps

Ferramentas analisam:

SYSUDUMP
SYSABEND
CEEDUMP

CEEDUMP

Muito usado com Language Environment.

Contém:

  • variáveis;

  • registradores;

  • call stack;

  • offsets.


Boas Práticas

✅ Sempre verificar FILE STATUS

✅ Sempre verificar SQLCODE

✅ Tratar RESP em CICS

✅ Gerar logs padronizados

✅ Produzir CEEDUMP

✅ Utilizar Fault Analyzer ou Abend-AID

✅ Registrar contexto do erro


Curiosidade

Em muitos bancos, mais de 90% dos incidentes COBOL são resolvidos sem abrir um dump completo porque as rotinas de Bug Trap já registram:

Programa
Parágrafo
Campo
Valor inválido
Usuário
Transação

permitindo localizar a causa raiz em poucos minutos.


Resumo Rápido

ConceitoFunção
ABENDFinalização anormal
S0C7Erro numérico
S0C4Violação memória
Bug TrapCaptura contexto do erro
CEEDUMPDump do LE
SYSUDUMPDump sistema
SQLCODEErro DB2
FILE STATUSErro arquivo
RESPErro CICS
Fault AnalyzerDiagnóstico IBM
Abend-AIDDiagnóstico avançado
XpediterDebug

Conclusão

Bug Trap é o conjunto de técnicas e ferramentas utilizadas para capturar informações detalhadas antes ou durante um ABEND. Em ambientes COBOL corporativos, ele é essencial para acelerar a análise de incidentes, identificar a causa raiz e reduzir drasticamente o tempo de diagnóstico de erros em aplicações Batch, CICS, IMS e DB2.


sexta-feira, 23 de fevereiro de 2007

Como se Usa JSON em COBOL?

 

Bellacosa Mainframe e o Json no COBOL

Como se Usa JSON em COBOL?

Nos últimos anos, o JSON (JavaScript Object Notation) tornou-se o formato mais utilizado para integração entre aplicações modernas, APIs REST, Mobile, Cloud e Mainframe.

Hoje é comum um programa COBOL:

  • receber JSON de uma API;

  • gerar JSON para sistemas externos;

  • integrar com z/OS Connect;

  • consumir serviços REST;

  • trocar informações com Java, .NET, Python e Node.js.


O que é JSON?

JSON significa:

JavaScript Object Notation

É um formato leve para troca de dados.

Exemplo:

{
   "id":1001,
   "nome":"JOAO SILVA",
   "saldo":5000.00
}

Por que JSON se tornou popular?

Comparado ao XML:

✅ Mais simples

✅ Menor tamanho

✅ Mais rápido

✅ Fácil leitura

✅ Ideal para APIs REST


JSON no Enterprise COBOL

As versões modernas do Enterprise COBOL possuem suporte nativo através dos comandos:

JSON GENERATE

Converte COBOL → JSON

JSON PARSE

Converte JSON → COBOL


JSON GENERATE

Transforma uma estrutura COBOL em JSON.


Estrutura 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 JSON

01 WS-JSON PIC X(5000).

JSON GENERATE WS-JSON
   FROM CLIENTE
END-JSON.

Resultado

{
   "ID-CLI":1001,
   "NOME-CLI":"JOAO SILVA",
   "SALDO-CLI":5000
}

JSON PARSE

Faz o processo inverso.

JSON → COBOL


JSON Recebido

{
   "id":1001,
   "nome":"JOAO SILVA"
}

Estrutura COBOL

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

Parsing

JSON PARSE WS-JSON
   INTO CLIENTE
END-JSON.

Resultado

ID-CLI    = 1001
NOME-CLI  = JOAO SILVA

Tratamento de Erros

Após JSON GENERATE ou JSON PARSE:

IF JSON-CODE NOT = 0
   DISPLAY 'ERRO JSON'
END-IF

JSON-CODE

Variável especial do COBOL.

0 = Sucesso
≠0 = Erro

Exemplo Completo

WORKING-STORAGE SECTION.

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

01 WS-JSON PIC X(500).

PROCEDURE DIVISION.

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

JSON GENERATE WS-JSON
   FROM CLIENTE
END-JSON.

DISPLAY WS-JSON.

STOP RUN.

JSON e APIs REST

Arquitetura típica:

Mobile App
      ↓
REST API
      ↓
JSON
      ↓
z/OS Connect
      ↓
COBOL
      ↓
DB2

JSON e z/OS Connect

O z/OS Connect permite expor programas COBOL como APIs REST.

Fluxo:

JSON
  ↓
REST
  ↓
z/OS Connect
  ↓
Copybook COBOL
  ↓
Programa COBOL

Exemplo API

Requisição:

{
   "conta":"12345"
}

Resposta:

{
   "saldo":1500.75
}

JSON e CICS

CICS pode consumir APIs REST utilizando:

  • CICS Web Services

  • CICS TG

  • URIMAP

  • PIPELINE

  • z/OS Connect


JSON e DB2

Dados do DB2 podem ser convertidos para JSON.

Exemplo:

SELECT NOME,
       SALDO
FROM CLIENTES

{
   "nome":"JOAO",
   "saldo":5000
}

JSON x XML

XML

<nome>JOAO</nome>

JSON

{
  "nome":"JOAO"
}

Comparação

CaracterísticaJSONXML
TamanhoMenorMaior
LeituraSimplesMais complexa
APIs RESTExcelentePouco usado
SOAPNãoSim
PerformanceMelhorMenor

Copybook e JSON

Muito comum:

COPY CLIENTE.

JSON PARSE
JSON GENERATE

API REST

Casos de Uso Reais

Bancos

  • PIX

  • Open Finance

  • Mobile Banking


Seguradoras

  • Cotações

  • Apólices


Governo

  • APIs fiscais

  • Integrações


E-commerce

  • Pedidos

  • Pagamentos


Benefícios

✅ Integração moderna

✅ APIs REST

✅ Cloud

✅ Mobile

✅ Menor volume de dados

✅ Suporte nativo COBOL


Cuidados

❌ Nomes JSON devem coincidir com estruturas COBOL

❌ Tratar JSON-CODE

❌ Validar campos obrigatórios

❌ Considerar conversão de formatos numéricos


Resumo Rápido

ComandoFunção
JSON GENERATECOBOL → JSON
JSON PARSEJSON → COBOL
JSON-CODECódigo retorno
z/OS ConnectREST para COBOL
API RESTComunicação moderna
CopybookEstrutura dados
DB2Fonte dos dados

Dica para Mainframe Moderno

Hoje, o caminho mais comum em grandes bancos é:

Aplicativo Mobile
        ↓
API REST
        ↓
JSON
        ↓
z/OS Connect
        ↓
COBOL
        ↓
DB2

Dominar JSON GENERATE, JSON PARSE, Copybooks, z/OS Connect e APIs REST é uma das habilidades mais valiosas para o programador COBOL moderno que deseja integrar aplicações Mainframe ao mundo digital atual.


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.

quarta-feira, 21 de fevereiro de 2007

Introdução à Segurança no z/OS

 

Bellacosa Mainframe introdução a segurança no Z/os

Introdução à Segurança no z/OS

A segurança é um dos pilares fundamentais do ambiente IBM Z e z/OS. Todos os dias, bancos, seguradoras, governos e grandes corporações processam bilhões de transações que dependem de mecanismos robustos de autenticação, autorização, auditoria e proteção de dados.

Sem segurança adequada, qualquer usuário poderia acessar informações sigilosas, executar comandos críticos ou alterar dados corporativos.

Por isso, o z/OS foi projetado com segurança integrada desde sua concepção.


O que é Segurança no z/OS?

Segurança no z/OS é o conjunto de mecanismos que garante:

✅ Confidencialidade dos dados

✅ Integridade das informações

✅ Disponibilidade dos serviços

✅ Auditoria das operações

✅ Controle de acesso aos recursos


Os Três Pilares da Segurança

Confidencialidade

Somente pessoas autorizadas acessam informações.

Exemplo:

Folha salarial
Dados bancários
Informações médicas

Integridade

Os dados não podem ser alterados indevidamente.

Exemplo:

Saldo bancário
Contratos
Registros fiscais

Disponibilidade

Os sistemas devem estar acessíveis quando necessários.

Exemplo:

Internet Banking
PIX
Cartões
Caixas eletrônicos

Arquitetura de Segurança

Usuário
    ↓
Logon
    ↓
RACF
    ↓
Validação
    ↓
Autorização
    ↓
Recurso

Componentes de Segurança

RACF

Resource Access Control Facility

Principal software de segurança da IBM.

Controla:

  • usuários;

  • grupos;

  • permissões;

  • datasets;

  • CICS;

  • DB2;

  • JES2;

  • recursos do sistema.


ACF2

Solução alternativa de segurança da Broadcom.


Top Secret

Outra solução de segurança da Broadcom.


Autenticação

Processo de verificar:

Quem é você?

Normalmente usando:

  • usuário;

  • senha;

  • certificado digital;

  • token MFA.


Autorização

Processo de verificar:

O que você pode fazer?

Exemplo:

Usuário JOAO
↓
Pode ler dataset
↓
Não pode alterar

Auditoria

Processo de registrar eventos de segurança.

Exemplos:

  • Logon

  • Logoff

  • Alteração de perfil

  • Tentativas de acesso

  • Falhas de autenticação


SMF

System Management Facility

Responsável pelo armazenamento de registros de auditoria.


Proteção de Datasets

Um dos recursos mais protegidos do z/OS.

Exemplo:

BANCO.CLIENTES
BANCO.SALARIOS
BANCO.CARTOES

O RACF controla quem pode:

  • Ler

  • Atualizar

  • Excluir

  • Administrar


Níveis de Acesso

PermissãoDescrição
NONESem acesso
READLeitura
UPDATEAlteração
CONTROLControle avançado
ALTERControle total

Segurança no TSO/ISPF

Ao executar:

LOGON

o RACF valida:

  • usuário;

  • senha;

  • grupo;

  • privilégios.


Segurança no CICS

Controla:

  • transações;

  • menus;

  • telas;

  • programas.

Exemplo:

SALD
PIX1
PAGT

Nem todos os usuários podem executar todas as transações.


Segurança no DB2

Controla:

  • tabelas;

  • views;

  • packages;

  • plans;

  • comandos administrativos.


Segurança no JES2

Controla:

  • SUBMIT de Jobs;

  • CANCEL;

  • HOLD;

  • OUTPUT;

  • acesso ao spool.


Criptografia no IBM Z

O IBM Z possui recursos avançados de criptografia em hardware.


Dados em Repouso

Proteção de datasets armazenados.


Dados em Trânsito

Proteção de comunicações:

TLS
SSL
AT-TLS

Criptografia Pervasiva

Recurso moderno do IBM Z que permite criptografar grandes volumes de dados com baixo impacto de desempenho.


Multifactor Authentication (MFA)

Além da senha:

Usuário
+
Token
+
Aplicativo
+
Certificado

Single Sign-On (SSO)

Permite autenticação única para múltiplas aplicações.


Segurança de Rede

Ferramentas comuns:

  • TCP/IP Security

  • AT-TLS

  • IPSec

  • Firewalls


Segurança Operacional

Proteção de comandos como:

START
STOP
CANCEL
VARY

Apenas operadores autorizados podem executá-los.


Conceito de Menor Privilégio

Boa prática fundamental:

Dar apenas o acesso necessário

Nem mais, nem menos.


Segregação de Funções

Exemplo:

PerfilFunção
OperadorOperação
SysprogSistema
DBABanco
SegurançaRACF
DesenvolvedorAplicações

Principais Ameaças

  • Senhas fracas

  • Acessos indevidos

  • Engenharia social

  • Privilégios excessivos

  • Falta de auditoria

  • Configurações incorretas


Boas Práticas

✅ Usar MFA

✅ Revisar acessos periodicamente

✅ Auditar eventos críticos

✅ Aplicar princípio do menor privilégio

✅ Segregar funções

✅ Proteger datasets sensíveis

✅ Monitorar logs SMF


Curiosidades

1. O RACF existe desde 1976

2. O IBM Z é considerado uma das plataformas mais seguras do mundo

3. Bancos globais processam trilhões de dólares utilizando z/OS

4. Recursos modernos incluem MFA, TLS 1.3 e criptografia pervasiva

5. Grande parte das transações financeiras mundiais passa por sistemas protegidos por RACF


Resumo Rápido

ConceitoFunção
RACFControle de acesso
AutenticaçãoQuem é você
AutorizaçãoO que pode fazer
AuditoriaRegistro de eventos
SMFLogs de segurança
MFAMúltiplos fatores
CriptografiaProteção dos dados
Dataset SecurityProteção de arquivos
CICS SecurityProteção transacional
DB2 SecurityProteção de dados

Conclusão

A segurança no z/OS é um conjunto abrangente de tecnologias, processos e controles que protegem usuários, aplicações, bancos de dados e datasets corporativos. Utilizando ferramentas como RACF, criptografia avançada, MFA e auditoria SMF, o IBM Z mantém um dos ambientes computacionais mais seguros, confiáveis e resilientes do mundo.


terça-feira, 20 de fevereiro de 2007

O que é RACF?

 

Bellacosa Mainframe o que é RACF


O que é RACF?

RACF significa:

Resource Access Control Facility

É o principal sistema de segurança do ambiente IBM Mainframe desenvolvido pela IBM.

O RACF controla:

  • usuários;

  • senhas;

  • grupos;

  • datasets;

  • transações CICS;

  • recursos do sistema;

  • comandos operacionais;

  • aplicações.

Em resumo:

RACF é o "porteiro" do Mainframe.


Definição Simples

Sempre que alguém tenta acessar:

TSO
CICS
IMS
DB2
Dataset
JES2
Console

o RACF verifica:

Quem é você?
O que pode fazer?
Você tem autorização?

Se a resposta for não:

ACESSO NEGADO

Analogia Simples

Imagine um prédio corporativo.

O RACF seria:

  • recepção;

  • crachá;

  • catraca;

  • segurança.

Sem autorização ninguém entra.


Arquitetura Simplificada

Usuário
    ↓
Login
    ↓
RACF
    ↓
Validação
    ↓
Sistema

O que o RACF protege?

Usuários

USERID

Datasets

BANCO.CLIENTES

Transações CICS

SALD
PAGT
PIX1

Planos DB2

PLAN
PACKAGE

Comandos Operacionais

CANCEL
START
STOP

Conceitos Fundamentais

USER

Usuário do sistema.

Exemplo:

VBELLA01

GROUP

Grupo de usuários.

Exemplo:

DESENV
OPERACAO
SEGURANCA

RESOURCE

Recurso protegido.

Exemplo:

DATASET
CICS
DB2
JES

Estrutura RACF

GROUP
   ↓
USER
   ↓
PERMISSÕES

Exemplo

GRUPO: DESENV

USUÁRIO:
JOAO
MARIA
CARLOS

Classe de Recursos

O RACF organiza recursos em classes.


DATASET

Protege arquivos.

DATASET

CICS

Protege transações.

TCICSTRN

JES

Protege Jobs.

JESSPOOL

OPERCMDS

Protege comandos.

OPERCMDS

Como Funciona?

Usuário tenta acessar:

BANCO.CLIENTES

RACF verifica:

Existe usuário?
      ↓
Possui permissão?
      ↓
Liberar ou negar

Níveis de Permissão

NONE

Sem acesso.


READ

Somente leitura.


UPDATE

Alteração.


CONTROL

Controle avançado.


ALTER

Controle total.


Exemplo

DATASET

BANCO.CLIENTES

READ

Pode apenas consultar.


Comandos RACF Mais Conhecidos

ADDUSER

Criar usuário.

ADDUSER JOAO

ALTUSER

Alterar usuário.

ALTUSER JOAO

DELUSER

Excluir usuário.

DELUSER JOAO

ADDGROUP

Criar grupo.

ADDGROUP DESENV

CONNECT

Associar usuário ao grupo.

CONNECT JOAO
GROUP(DESENV)

LISTUSER

Consultar usuário.

LISTUSER JOAO

Perfil de Dataset

Exemplo:

BANCO.**

Protege todos os datasets:

BANCO.CLIENTES
BANCO.CONTAS
BANCO.EXTRATOS

Máscaras RACF

*

Um nível.

BANCO.*

**

Todos os níveis.

BANCO.**

Exemplo

BANCO.CLIENTES
BANCO.CLIENTES.TESTE
BANCO.CLIENTES.HIST

RACF e TSO

Ao entrar no TSO:

LOGON

o RACF valida:

  • usuário;

  • senha;

  • grupo;

  • privilégios.


RACF e CICS

Quando uma transação é executada:

SALD

RACF verifica:

Usuário autorizado?

RACF e DB2

Controla:

  • tabelas;

  • packages;

  • plans;

  • comandos administrativos.


RACF e JES2

Controla:

  • SUBMIT;

  • CANCEL;

  • HOLD;

  • OUTPUT.


Auditoria

O RACF registra eventos.


Exemplos

Login
Logoff
Falha senha
Tentativa acesso
Alteração perfil

SMF

As auditorias normalmente são gravadas em:

SMF

(System Management Facility)


Multifactor Authentication

Versões modernas suportam:

  • Token

  • Certificado Digital

  • MFA

  • OTP


Comandos de Consulta

LISTUSER

LISTUSER JOAO

SEARCH

SEARCH CLASS(DATASET)

RLIST

RLIST DATASET

Curiosidades

1. O RACF existe desde 1976

2. É um dos sistemas de segurança mais confiáveis do mundo

3. Protege bilhões de transações diariamente

4. Continua evoluindo com suporte a MFA e certificados digitais

5. É amplamente utilizado por bancos e governos


RACF x ACF2 x Top Secret

ProdutoFabricante
RACFIBM
ACF2Broadcom
Top SecretBroadcom

Todos possuem funções semelhantes.


Resumo Rápido

ConceitoFunção
RACFSegurança Mainframe
USERUsuário
GROUPGrupo
RESOURCERecurso protegido
DATASETArquivo
READLeitura
UPDATEAlteração
ALTERControle total
ADDUSERCria usuário
LISTUSERConsulta usuário
SMFAuditoria
MFAAutenticação forte

Conclusão

O RACF (Resource Access Control Facility) é o principal sistema de segurança do Mainframe IBM Z. Ele controla autenticação, autorização e auditoria de usuários, protegendo datasets, aplicações CICS, bancos DB2, jobs JES2 e recursos críticos do sistema, garantindo que apenas pessoas autorizadas tenham acesso aos dados corporativos.


 


segunda-feira, 19 de fevereiro de 2007

O que é Database IMS em Mainframe?

 

Bellacosa Mainframe o que é database IMS

O que é IMS em Mainframe?

IMS significa:

Information Management System

É um dos softwares mais importantes da história da IBM e um dos pilares do ambiente Mainframe.

Criado em 1968 para apoiar o programa Apollo da NASA, o IMS continua em produção em milhares de empresas ao redor do mundo.


Definição Simples

O IMS é uma plataforma que fornece:

✅ Banco de Dados (IMS DB)

✅ Processamento de Transações (IMS TM)

Em outras palavras:

IMS = Banco de Dados + Monitor Transacional

História Curiosa

A IBM desenvolveu o IMS para ajudar a NASA a controlar milhões de componentes do foguete Saturno V usado nas missões Apollo.

Por isso, o IMS é frequentemente chamado de:

O banco de dados que ajudou a levar o homem à Lua


Componentes Principais

IMS DB

Banco de dados hierárquico.


IMS TM

Transaction Manager.

Responsável pelo processamento online.


Arquitetura Simplificada

Usuário
    ↓
IMS TM
    ↓
Programa COBOL
    ↓
IMS DB
    ↓
Resposta

O que é IMS DB?

É um banco de dados hierárquico.

Diferente do DB2, que é relacional.


Exemplo DB2

Tabela CLIENTES

IDNOME
1JOÃO
2MARIA

Exemplo IMS

EMPRESA
   │
   ├── CLIENTE
   │      │
   │      ├── CONTA
   │      │      │
   │      │      ├── MOVIMENTO
   │      │      ├── MOVIMENTO
   │
   └── CLIENTE

Conceito de Segmento

No IMS os registros são chamados de:

Segmentos


Exemplo

CLIENTE

Segmento Pai


CONTA

Segmento Filho


MOVIMENTO

Segmento Neto


Estrutura Hierárquica

CLIENTE
   ↓
CONTA
   ↓
MOVIMENTO

O que é DL/I?

Data Language I.

É a linguagem utilizada para acessar bancos IMS.

Equivale ao SQL do DB2.


Comandos DL/I

GU

Get Unique

Busca um segmento específico.


GN

Get Next

Busca próximo segmento.


GNP

Get Next Within Parent

Busca próximo filho.


ISRT

Insert

Inclui segmento.


REPL

Replace

Atualiza segmento.


DLET

Delete

Remove segmento.


Exemplo DL/I

CALL 'CBLTDLI'

USING
      GU
      PCB
      AREA
      SSA.

O que é PCB?

Program Communication Block.

Define como o programa acessa o banco.


O que é PSB?

Program Specification Block.

Define:

  • bancos acessados;

  • permissões;

  • PCBs.


O que é DBD?

Database Description.

Descreve:

  • segmentos;

  • relacionamentos;

  • estrutura física.


Estrutura IMS DB

DBD
 ↓
PSB
 ↓
PCB
 ↓
Programa COBOL

O que é IMS TM?

Transaction Manager.

Funciona de forma semelhante ao CICS.


Responsabilidades

  • receber transações;

  • controlar usuários;

  • chamar programas;

  • gerenciar filas;

  • garantir integridade.


Fluxo Online

Terminal
   ↓
IMS TM
   ↓
Programa COBOL
   ↓
IMS DB
   ↓
Resposta

Exemplo de Transação

Usuário digita:

CONS

IMS executa:

CONS
  ↓
Programa COBOL
  ↓
Consulta IMS
  ↓
Resposta

IMS x CICS

IMS TMCICS
IBMIBM
TransacionalTransacional
Muito usado em bancosMuito usado em bancos
Integração IMS DBIntegração DB2
Altíssimo desempenhoAltíssimo desempenho

IMS x DB2

IMS

Hierárquico

CLIENTE
 ↓
CONTA
 ↓
MOVIMENTO

DB2

Relacional

CLIENTES
CONTAS
MOVIMENTOS

Relacionadas por chaves.


Linguagens Utilizadas

  • COBOL

  • PL/I

  • Assembler

  • Java


IMS e COBOL

Combinação clássica.


Exemplo

CALL 'CBLTDLI'

Praticamente todo programa IMS utiliza esse comando.


Vantagens do IMS

✅ Altíssima performance

✅ Excelente escalabilidade

✅ Segurança

✅ Baixo consumo de recursos

✅ Confiabilidade extrema


Onde é Utilizado?

  • Bancos

  • Cartões

  • Seguradoras

  • Governo

  • Telecomunicações

  • Companhias aéreas


Curiosidades

1. O IMS foi criado para o Projeto Apollo

2. Continua sendo utilizado mais de 50 anos depois

3. Alguns dos maiores bancos do mundo usam IMS

4. Processa bilhões de transações diariamente

5. É considerado um dos sistemas mais confiáveis já criados


Principais Objetos IMS

ObjetoFunção
DBDDescrição do Banco
PSBEspecificação Programa
PCBComunicação Programa
SegmentoRegistro IMS
SSACritério Pesquisa
DL/ILinguagem de acesso
IMS DBBanco Hierárquico
IMS TMGerenciador Transacional

Resumo Rápido

IMS
 │
 ├── IMS DB
 │      ↓
 │ Banco Hierárquico
 │
 └── IMS TM
        ↓
     Transações Online

Conclusão

O IMS (Information Management System) é uma plataforma da IBM composta por um poderoso banco de dados hierárquico (IMS DB) e um monitor transacional (IMS TM). Presente em grandes bancos, seguradoras e órgãos governamentais, ele continua sendo uma das tecnologias mais robustas e confiáveis do ecossistema Mainframe IBM Z, processando milhões de transações críticas todos os dias.


domingo, 18 de fevereiro de 2007

O que é CICS?

 

Bellacosa Mainframe e o que é CICS

O que é CICS?

CICS significa:

Customer Information Control System

É o principal monitor transacional do ambiente Mainframe IBM Z e um dos softwares mais importantes da história da computação corporativa.

Criado pela IBM em 1968, o CICS é responsável por executar milhões de transações online em bancos, seguradoras, governos, companhias aéreas e grandes empresas.


Definição Simples

O CICS é:

um gerenciador de transações online.

Ele permite que milhares de usuários acessem simultaneamente aplicações COBOL, PL/I, C e Java executadas no Mainframe.


Analogia Simples

Imagine um restaurante.

  • O cliente faz o pedido.

  • O garçom recebe.

  • A cozinha prepara.

  • O prato é entregue.

No Mainframe:

Usuário
   ↓
CICS
   ↓
Programa COBOL
   ↓
DB2 / VSAM
   ↓
Resposta

O CICS é o "garçom" que coordena tudo.


Por que o CICS existe?

Sem o CICS, cada usuário precisaria executar diretamente um programa no sistema operacional.

Isso consumiria muitos recursos.

O CICS resolve esse problema:

✅ Compartilhando recursos

✅ Controlando usuários

✅ Gerenciando transações

✅ Controlando memória

✅ Gerenciando comunicação


Onde o CICS é usado?

Praticamente em:

  • Bancos

  • PIX

  • TED

  • Cartões de crédito

  • Internet Banking

  • Seguradoras

  • Governo

  • Telecomunicações

  • Companhias aéreas


Arquitetura Simplificada

Terminal
    ↓
CICS
    ↓
Programa COBOL
    ↓
DB2
    ↓
Resposta

Exemplo Real

Cliente consulta saldo:

ATM
 ↓
CICS
 ↓
COBOL
 ↓
DB2
 ↓
Saldo exibido

Tudo acontece em poucos milissegundos.


O que é uma Transação CICS?

É uma operação identificada por um código de 4 caracteres.


Exemplos

CUST
SALD
PIX1
PAGT

Fluxo

Usuário digita:

SALD

O CICS:

Localiza programa
       ↓
Executa COBOL
       ↓
Retorna resultado

Programas CICS

Normalmente escritos em:

  • COBOL

  • PL/I

  • C

  • Java


Exemplo COBOL CICS

Recebendo dados:

EXEC CICS RECEIVE
     MAP('TELA1')
END-EXEC.

Enviando dados

EXEC CICS SEND
     MAP('TELA2')
END-EXEC.

O que é uma MAP?

Tela utilizada pelo usuário.


Exemplo

+----------------------+
| CONSULTA CLIENTE     |
| CONTA: ________      |
| SALDO: ________      |
+----------------------+

BMS

Basic Mapping Support.

Ferramenta usada para criar telas CICS.


COMMAREA

Área usada para passar dados entre programas.


Exemplo

Programa A:

EXEC CICS LINK
     PROGRAM('PROG2')
     COMMAREA(WS-AREA)
END-EXEC.

Programa B

Recebe os dados pela COMMAREA.


Principais Comandos CICS

LINK

Chama outro programa.

EXEC CICS LINK
END-EXEC

XCTL

Transfere controle sem retorno.

EXEC CICS XCTL
END-EXEC

RETURN

Finaliza transação.

EXEC CICS RETURN
END-EXEC

SEND

Envia tela.

EXEC CICS SEND
END-EXEC

RECEIVE

Recebe dados.

EXEC CICS RECEIVE
END-EXEC

CICS e DB2

Integração extremamente comum.


Exemplo

EXEC SQL

   SELECT SALDO
   INTO :WS-SALDO

   FROM CLIENTES

END-EXEC.

CICS e VSAM

Também muito utilizado.


Exemplo

READ ARQCLI

CICS e Segurança

Normalmente integrado ao:

  • RACF

  • ACF2

  • Top Secret


Regiões CICS

O CICS executa dentro de uma região.


Exemplos

CICSA
CICSPRD
CICSTST

O que é uma Região?

Ambiente onde as transações executam.


Monitoramento

Comandos comuns:

CEMT
CEDA
CEDF
CECI

CEMT

Monitor operacional.


Exemplo

CEMT I TASK

Mostra tarefas ativas.


CEDA

Administração de recursos.


CEDF

Debug interativo.


CECI

Executa comandos CICS manualmente.


Erros Comuns (ABENDs CICS)

AICA

Timeout.


AEI0

Programa não encontrado.


AEIV

Erro COMMAREA.


ASRA

Exceção de programa.

Equivalente a:

S0C7
S0C4

Conceito de Transação

Uma transação deve obedecer:

ACID


Atomicidade

Tudo ou nada.


Consistência

Dados válidos.


Isolamento

Transações independentes.


Durabilidade

Dados persistem após COMMIT.


Curiosidades

1. O CICS existe desde 1968

2. Processa bilhões de transações diariamente

3. É considerado o maior monitor transacional do mundo

4. Grande parte dos sistemas bancários utiliza CICS

5. Muitas transações PIX passam por aplicações COBOL/CICS


Resumo Rápido

ConceitoFunção
CICSMonitor transacional
TransaçãoOperação online
MAPTela usuário
BMSCriação de telas
COMMAREAPassagem de dados
LINKChama programa
XCTLTransfere controle
SENDEnvia tela
RECEIVERecebe dados
CEMTAdministração
CEDADefinição recursos
CEDFDebug
CECITestes

Conclusão

O CICS (Customer Information Control System) é o principal monitor de processamento online do Mainframe IBM Z. Ele gerencia transações, usuários, programas COBOL, acesso a DB2 e VSAM, permitindo que milhões de operações críticas sejam executadas com segurança, desempenho e alta disponibilidade em tempo real.