Translate

sábado, 24 de março de 2007

Como Funciona o FTP no Ambiente Mainframe (Modo Batch e Modo Online)

 

Bellacosa Mainframe tranferindo arquivos com FTP

Como Funciona o FTP no Ambiente Mainframe (Modo Batch e Modo Online)

O FTP (File Transfer Protocol) é uma das formas mais tradicionais de transferir arquivos entre Mainframes, servidores Linux, Windows, Unix e plataformas Cloud.

No z/OS, o FTP pode ser executado de duas formas:

Modo Online (TSO)

Modo Batch (JCL)


O que é FTP?

FTP significa:

File Transfer Protocol

É um protocolo utilizado para:

  • Enviar arquivos

  • Receber arquivos

  • Trocar datasets

  • Integrar sistemas


Arquitetura Básica

Mainframe
     ↓
FTP
     ↓
Servidor Linux

ou

Mainframe A
      ↓
FTP
      ↓
Mainframe B

Modos de Transferência

ASCII

Converte caracteres.

Utilizado para:

JCL
COBOL
TXT
PROC

BINARY

Não converte conteúdo.

Utilizado para:

LOADLIB
XMIT
ZIP
PDF
Executáveis

FTP Online (TSO)

Executado diretamente no terminal TSO.


Passo 1 – Entrar no FTP

No prompt TSO:

FTP 192.168.1.100

ou

FTP servidor.empresa.com

Passo 2 – Informar Usuário

Name:

Digite:

USER01

Passo 3 – Informar Senha

Password:

Digite:

*******

Conexão Estabelecida

Connected to server.

Comandos Básicos


Listar Diretório

LS

ou

DIR

Mudar Diretório

CD /home/arquivos

Ver Diretório Atual

PWD

Enviando Arquivos

Exemplo

Dataset:

USER.CLIENTES

Comando:

PUT 'USER.CLIENTES' clientes.txt

Fluxo:

Dataset Mainframe
      ↓
PUT
      ↓
Arquivo Linux

Recebendo Arquivos

GET clientes.txt 'USER.CLIENTES'

Fluxo:

Linux
 ↓
GET
 ↓
Dataset z/OS

Definindo Modo ASCII

ASCII

Definindo Modo BINARY

BINARY

Exemplo Completo Online

FTP servidor.empresa.com

USER user01
PASS senha

ASCII

PUT 'USER.COBOL.SOURCE(MEUCOBOL)' programa.cbl

QUIT

Resultado:

programa.cbl

enviado para o servidor.


FTP Batch (JCL)

Muito utilizado em produção.


Vantagens

✅ Automação

✅ Execução noturna

✅ Integração Batch

✅ Sem intervenção humana


Estrutura Básica

//FTPJOB JOB ...
//STEP01 EXEC PGM=FTP
//SYSPRINT DD SYSOUT=*
//INPUT DD *
...
/*

Exemplo 1 – Enviar Arquivo

//FTPJOB JOB CLASS=A,MSGCLASS=X

//FTPSTEP EXEC PGM=FTP
//SYSPRINT DD SYSOUT=*
//OUTPUT   DD SYSOUT=*
//INPUT DD *

192.168.1.100

USER01
SENHA

ASCII

PUT 'USER.CLIENTES' clientes.txt

QUIT

/*

Fluxo

JCL
 ↓
FTP
 ↓
Servidor
 ↓
clientes.txt

Exemplo 2 – Receber Arquivo

//FTPJOB JOB CLASS=A

//FTPSTEP EXEC PGM=FTP
//SYSPRINT DD SYSOUT=*
//INPUT DD *

192.168.1.100

USER01
SENHA

ASCII

GET clientes.txt 'USER.CLIENTES'

QUIT

/*

Exemplo 3 – Transferindo XMIT

Arquivo:

USER.COBOL.XMIT

Sempre usar:

BINARY

JCL:

//FTPSTEP EXEC PGM=FTP
//INPUT DD *

192.168.1.100

USER01
SENHA

BINARY

PUT 'USER.COBOL.XMIT' COBOL.XMIT

QUIT

/*

Recebendo Arquivo XMIT

GET COBOL.XMIT 'USER.COBOL.XMIT'

Depois:

RECEIVE INDSN('USER.COBOL.XMIT')

FTP Entre Mainframes

Muito comum.


Mainframe A:

BANCO A

PUT 'PROD.CLIENTES'

BANCO B

Criando Dataset Remoto

Muitos servidores FTP do z/OS aceitam:

SITE

Exemplo:

SITE RECFM(F B) LRECL(80) BLKSIZE(8000)

Depois:

PUT CLIENTES.TXT 'USER.CLIENTES'

SITE Command

Muito importante.

Permite definir:

  • LRECL

  • BLKSIZE

  • RECFM

  • SPACE


Exemplo

SITE

RECFM(FB)
LRECL(80)
CYLINDERS
PRIMARY=5
SECONDARY=2

FTP Seguro

Atualmente utiliza-se:

FTPS

FTP com TLS.


SFTP

Via SSH.


Fluxo:

Mainframe
 ↓
SFTP
 ↓
Linux

Exemplos de Uso Real


Banco

PIX
 ↓
FTP
 ↓
Arquivo BACEN

Seguradora

Batch Noturno
 ↓
FTP
 ↓
Parceiro

Governo

Arrecadação
 ↓
FTP
 ↓
Receita

Erros Mais Comuns

Login Inválido

530 Login Incorrect

Dataset Não Encontrado

550 File Not Found

Permissão Negada

550 Access Denied

ASCII x BINARY

Erro clássico.

Enviar XMIT em ASCII:

Arquivo Corrompido

Correto:

BINARY

Boas Práticas

✅ XMIT → BINARY

✅ LOADLIB → BINARY

✅ Texto COBOL → ASCII

✅ Usar FTPS/SFTP

✅ Automatizar via JCL

✅ Validar retorno FTP


Resumo Rápido

ComandoFunção
FTP hostConectar
PUTEnviar
GETReceber
ASCIIModo texto
BINARYModo binário
DIRListar
CDTrocar diretório
QUITEncerrar
SITEDefinir atributos
RECEIVERestaurar XMIT

Exemplo Clássico de Produção

JOB Batch
      ↓
FTP
      ↓
Arquivo Remessa
      ↓
Banco Parceiro
      ↓
Processamento
      ↓
Arquivo Retorno
      ↓
FTP GET
      ↓
Mainframe

Esse é um dos cenários mais comuns em bancos, seguradoras, telecomunicações e órgãos governamentais que utilizam Mainframe para integração de arquivos em larga escala.


sexta-feira, 23 de março de 2007

O que é XMIT em Mainframe?

 

Bellacosa Mainframe explica o XMIT

O que é XMIT em Mainframe?

O comando XMIT (Transmit) é um utilitário do TSO/E utilizado para empacotar e transmitir datasets entre usuários, sistemas z/OS ou ambientes Mainframe.

Ele funciona como uma espécie de:

ZIP do Mainframe
+
Envio de Arquivos

O resultado é um arquivo especial conhecido como:

XMIT File
ou
Transmitted Dataset

Muito utilizado para:

✅ Compartilhar JCLs

✅ Enviar fontes COBOL

✅ Transferir PDSs completos

✅ Distribuir ferramentas

✅ Migrar objetos entre ambientes


Como Funciona?

Imagine que você possui uma biblioteca:

USER.COBOL.SOURCE

Com dezenas de programas COBOL.

O XMIT transforma tudo em um único arquivo:

USER.COBOL.XMIT

que pode ser enviado para outro usuário.


Fluxo Simplificado

PDS
 ↓
XMIT
 ↓
Arquivo XMIT
 ↓
FTP / E-mail / Connect:Direct
 ↓
RECEIVE
 ↓
PDS Restaurada

Comando Básico XMIT

No TSO:

XMIT USERID -
DSNAME('USER.COBOL.SOURCE')

Onde:

USERID = Destinatário

DSNAME = Dataset enviado

Exemplo 1 – Enviar um PDS

Suponha:

USER.JCL

contendo:

JOB1
JOB2
JOB3

Execute:

XMIT BELLACOSA -
DSNAME('USER.JCL')

Resultado:

Arquivo Transmitido

na fila do usuário destino.


Exemplo 2 – Criar Arquivo XMIT

Muito comum para download.

XMIT BELLACOSA -
DSNAME('USER.JCL') -
OUTDSN('USER.JCL.XMIT')

Resultado:

USER.JCL.XMIT

Agora você pode:

FTP
IND$FILE
Download
Connect:Direct

Estrutura

Antes:

USER.JCL
   ├── JOB001
   ├── JOB002
   └── JOB003

Depois:

USER.JCL.XMIT

Como Receber?

Utilizando RECEIVE.


Comando RECEIVE

RECEIVE INDSN('USER.JCL.XMIT')

Sistema pergunta:

Restore dataset?

Resposta:

YES

Dataset restaurado.


Exemplo Completo

Passo 1

Criar arquivo transmitido.

XMIT BELLACOSA -
DSNAME('USER.COBOL.SOURCE') -
OUTDSN('USER.COBOL.XMIT')

Passo 2

Transferir.

FTP
IND$FILE
SFTP
Connect:Direct

Passo 3

Receber.

RECEIVE INDSN('USER.COBOL.XMIT')

Passo 4

Confirmar restauração.

Restore?
YES

Passo 5

Dataset recriado.

USER.COBOL.SOURCE

Enviando PDS Completa

XMIT preserva:

✅ Membros

✅ Estatísticas

✅ Estrutura

✅ Atributos


Exemplo:

USER.COBOL

contendo:

PROG001
PROG002
PROG003

Após RECEIVE:

PROG001
PROG002
PROG003

continuam intactos.


XMIT via Batch

Também pode ser executado por JCL.


Exemplo:

//STEP01 EXEC PGM=IKJEFT01
//SYSTSPRT DD SYSOUT=*
//SYSTSIN  DD *
 XMIT USERID
  DSNAME('USER.JCL')
/*

RECEIVE via Batch

//STEP01 EXEC PGM=IKJEFT01
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
 RECEIVE INDSN('USER.JCL.XMIT')
/*

O que Pode Ser Transmitido?

PDS

USER.JCL

PDS/E

USER.COBOL

Sequential

USER.ARQUIVO

Load Library

USER.LOADLIB

O que NÃO É Recomendado?

Arquivos muito grandes.

Exemplo:

DB2 Tablespace
VSAM Gigantesco

Normalmente usa-se:

DFDSS
ADRDSSU
FTP

XMIT e FTP

Fluxo muito comum:

Mainframe A
      ↓
XMIT
      ↓
Arquivo .XMIT
      ↓
FTP
      ↓
Mainframe B
      ↓
RECEIVE

XMIT e IND$FILE

Muito usado para baixar exemplos da internet.


Passo típico:

Site Mainframe
      ↓
Arquivo.XMIT
      ↓
Download PC
      ↓
Upload Mainframe
      ↓
RECEIVE

Erros Comuns

Dataset Não Existe

DATA SET NOT FOUND

Espaço Insuficiente

INSUFFICIENT SPACE

RECEIVE em Dataset Inválido

INVALID TRANSMISSION DATASET

Vantagens

✅ Fácil utilização

✅ Preserva atributos

✅ Mantém membros

✅ Funciona em qualquer z/OS

✅ Muito usado na comunidade Mainframe


Curiosidade

Durante décadas, a comunidade Mainframe distribuiu ferramentas, utilitários, macros, exits e exemplos COBOL através de arquivos .XMIT. Muitos pacotes clássicos disponíveis em fóruns, grupos SHARE e CBT Tape eram distribuídos exatamente nesse formato.


Resumo Rápido

ComandoFunção
XMITTransmitir dataset
RECEIVERestaurar dataset
OUTDSNCriar arquivo XMIT
DSNAMEDataset origem
IKJEFT01Executar via Batch
PDS/PDSETotalmente suportados

Exemplo Clássico

XMIT BELLACOSA -
DSNAME('USER.COBOL.SOURCE') -
OUTDSN('USER.COBOL.XMIT')

Depois:

RECEIVE INDSN('USER.COBOL.XMIT')

Resultado:

PDS original restaurada
com todos os membros.

Essa é a forma mais tradicional de empacotar e transportar bibliotecas COBOL, JCL, PROC e utilitários entre ambientes Mainframe z/OS.


quinta-feira, 22 de março de 2007

O que é DSN em JCL?

 

Bellacosa Mainframe explicando dsn em jcl

O que é DSN em JCL?

No ambiente Mainframe, DSN significa:

Data Set Name

Ou seja:

Nome de um Dataset

O parâmetro DSN= é um dos mais utilizados em JCL e serve para informar qual arquivo (dataset) será utilizado por um programa, utility ou procedimento.


Definição Simples

Pense no DSN como o caminho de um arquivo no Windows.

Windows:

C:\ARQUIVOS\CLIENTES.TXT

Mainframe:

USER.PROJETO.CLIENTES

Esse nome é o DSN.


Exemplo Básico

//ARQENT DD DSN=USER.PROJETO.CLIENTES,
//       DISP=SHR

Onde:

DSN=USER.PROJETO.CLIENTES

é o dataset utilizado.


Significado da Sigla

SiglaSignificado
DSData Set
NName
DSNData Set Name

Estrutura de um DSN

Um dataset é composto por qualificadores.

Exemplo:

EMPRESA.FINANCEIRO.CLIENTES

Cada parte possui significado.

EMPRESA
   ↓
FINANCEIRO
   ↓
CLIENTES

Exemplo Corporativo

BANCO.PRODUCAO.COBOL
BANCO.TESTE.COBOL
BANCO.CLIENTES.VSAM
BANCO.JCL.PROC

Uso em DD Statements

O uso mais comum.

//ENTRADA DD DSN=USER.ARQ.ENTRADA,
//            DISP=SHR

Dataset Sequencial

//SAIDA DD DSN=USER.ARQ.SAIDA,
//          DISP=OLD

Dataset VSAM

//CLIENTE DD DSN=BANCO.CLIENTE.KSDS,
//            DISP=SHR

Dataset GDG

//RELAT DD DSN=USER.RELATORIO.GDG(+1),
//          DISP=(NEW,CATLG)

Dataset Temporário

//SORTWK DD DSN=&&TEMP,
//           DISP=(NEW,PASS)

O dataset existe apenas durante o Job.


DSN e DISP

Normalmente aparecem juntos.

//ARQ DD DSN=USER.CLIENTES,
//        DISP=SHR

Onde:

DSN = Nome do Dataset

DISP = Como será utilizado

DSN em Criação de Arquivos

//SAIDA DD DSN=USER.NOVO.ARQUIVO,
//          DISP=(NEW,CATLG,DELETE),

O dataset será criado.


DSN em SYSUT1 e SYSUT2

Muito comum em utilities.

//SYSUT1 DD DSN=USER.ARQ.ORIGEM,
//            DISP=SHR
//SYSUT2 DD DSN=USER.ARQ.DESTINO,
//            DISP=(NEW,CATLG)

DSN em IDCAMS

//ARQVSAM DD DSN=EMPRESA.CLIENTE.KSDS

DSN em SORT

//SORTIN DD DSN=USER.CLIENTES,
//           DISP=SHR

//SORTOUT DD DSN=USER.CLIENTES.ORD,
//            DISP=(NEW,CATLG)

DSN e Catálogo

O catálogo do z/OS mantém informações sobre o dataset.

Quando informamos:

DSN=USER.CLIENTES

o sistema consulta o catálogo para localizar o arquivo.


Regras para Nomes

Um DSN:

✅ Pode ter até 44 caracteres

✅ Pode possuir vários qualificadores

✅ Usa ponto (.) como separador


Exemplo:

EMPRESA.FINANCEIRO.ARQUIVOS.CLIENTES

Qualificadores

Cada qualificador pode ter:

1 a 8 caracteres

Exemplo:

EMPRESA
FINANCE
CLIENTES

Caracteres Permitidos

Normalmente:

A-Z
0-9
@
#
$

Exemplo Real

//STEP01 EXEC PGM=COBOLPGM

//ENTRADA DD DSN=BANCO.PROD.CLIENTES,
 //          DISP=SHR

//SAIDA DD DSN=BANCO.PROD.RELATORIO,
 //         DISP=(NEW,CATLG,DELETE)

Erros Comuns

Dataset Não Existe

IEC141I
DATA SET NOT FOUND

Nome Incorreto

JCL ERROR

Dataset Em Uso

DATA SET IN USE

Boas Práticas

✅ Utilizar nomenclatura padronizada

✅ Separar Produção e Teste

✅ Usar qualificadores significativos

✅ Evitar nomes genéricos


Curiosidade

O conceito de DSN existe desde os primeiros sistemas OS/360 da IBM nos anos 1960. Mesmo após décadas de evolução tecnológica, ele continua sendo uma das estruturas fundamentais do z/OS, organizando bilhões de datasets utilizados diariamente por bancos, seguradoras e governos.


Resumo Rápido

ComandoFunção
DSN=USER.ARQDataset existente
DSN=ARQ(+1)Nova geração GDG
DSN=&&TEMPDataset temporário
DSN=ARQ.VSAMArquivo VSAM
DSN=ARQ.SEQArquivo sequencial

Conclusão

O DSN (Data Set Name) é o nome lógico de um dataset no Mainframe. Utilizado principalmente em instruções DD do JCL, ele identifica arquivos sequenciais, VSAM, GDGs, bibliotecas, datasets temporários e diversos outros recursos do z/OS. Dominar o uso de DSN é um dos primeiros passos para compreender JCL, Batch e administração de arquivos em ambientes Mainframe.


quarta-feira, 21 de março de 2007

O que é a Norma ISO 1989?

 

Bellacosa Mainframe e a norma iso 1989 a certidao de nascimento do cobol

O que é a Norma ISO 1989?

A ISO 1989 é a norma internacional que define oficialmente a linguagem COBOL (Common Business-Oriented Language).

Ela estabelece as regras, sintaxe, recursos e padrões que os compiladores COBOL devem seguir para garantir compatibilidade e portabilidade entre diferentes fabricantes e plataformas.

Em resumo:

ISO 1989 = Padrão Oficial do COBOL

O que é ISO?

ISO significa:

International Organization for Standardization

É a organização responsável pela criação de padrões internacionais utilizados em praticamente todos os setores da tecnologia e da indústria.


Objetivo da ISO 1989

O principal objetivo é garantir que um programa COBOL escrito em um ambiente possa ser compreendido e executado em outros ambientes compatíveis.

Exemplo:

IBM COBOL
     ↓
COBOL Padrão ISO
     ↓
Micro Focus COBOL

História da Norma

O COBOL nasceu em:

1959

através do comitê CODASYL.

Posteriormente surgiu a necessidade de padronização internacional.


Evolução da ISO 1989

ISO 1989:1978

Primeira padronização internacional.


ISO 1989:1985

Conhecida como:

COBOL-85

Foi a versão mais popular da história.

Introduziu:

  • END-IF

  • Escopo explícito

  • Melhor legibilidade


Exemplo:

IF SALDO > 0

   DISPLAY 'OK'

END-IF

ISO 1989:2002

Grande modernização da linguagem.

Introduziu:

  • Programação Orientada a Objetos

  • XML

  • Tipos de dados modernos

  • Métodos


ISO 1989:2014

Atualização importante.

Incluiu:

  • JSON

  • Melhorias OO

  • Novos recursos de interoperabilidade


ISO 1989:2023

Versão mais recente da norma.

Incorpora diversas melhorias acumuladas ao longo dos anos para manter o COBOL alinhado às necessidades modernas de integração e desenvolvimento corporativo.


O que a Norma Define?


Estrutura do Programa

IDENTIFICATION DIVISION.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.

Regras de Sintaxe

Exemplo:

MOVE A TO B

Tipos de Dados

PIC X
PIC 9
COMP
COMP-3

Comandos

  • IF

  • PERFORM

  • CALL

  • READ

  • WRITE

  • OPEN

  • CLOSE


Arquivos

QSAM

VSAM

Sequential

Indexed

Relative


Funções

FUNCTION CURRENT-DATE

Manipulação de Strings

STRING
UNSTRING
INSPECT

Benefícios da Padronização

Portabilidade

Permite mover aplicações entre compiladores.


Compatibilidade

Reduz dependência de fornecedor.


Evolução Controlada

Novos recursos seguem um padrão global.


Treinamento

Facilita formação de profissionais.


COBOL IBM e a ISO 1989

O Enterprise COBOL da IBM segue a norma ISO, mas também possui extensões próprias.

Exemplos:

CICS
DB2
JSON
XML
LE

Padrão ISO x Extensões Proprietárias

Padrão ISO

IF A = B

Extensão do Fabricante

EXEC CICS
END-EXEC

Áreas Cobertas pela Norma

ÁreaCoberta
Sintaxe COBOLSim
Tipos de DadosSim
ArquivosSim
FunçõesSim
OO COBOLSim
XMLSim
JSONSim
CICSNão
DB2Não
IMSNão

Relação com Mainframe

Grande parte dos programas COBOL executados hoje em:

  • IBM Z

  • z/OS

  • CICS

  • Batch

  • DB2

segue conceitos definidos pela ISO 1989.


Exemplo Clássico ISO COBOL

IDENTIFICATION DIVISION.
PROGRAM-ID. EXEMPLO.

DATA DIVISION.

WORKING-STORAGE SECTION.

01 WS-NOME PIC X(20).

PROCEDURE DIVISION.

MOVE 'BELLACOSA' TO WS-NOME

DISPLAY WS-NOME

GOBACK.

Curiosidades

1. COBOL é uma das poucas linguagens com padrão ISO formal há décadas.

2. A versão COBOL-85 (ISO 1989:1985) ainda influencia milhares de sistemas em produção.

3. Muitas funcionalidades modernas de JSON e XML foram incorporadas às versões recentes da norma.

4. A IBM participa ativamente dos grupos internacionais que evoluem o padrão COBOL.

5. Milhões de linhas de código executadas diariamente em bancos e governos seguem regras definidas pela ISO 1989.


Resumo Rápido

NormaMarco
ISO 1989:1978Primeiro padrão
ISO 1989:1985COBOL-85
ISO 1989:2002Orientação a Objetos
ISO 1989:2014JSON e melhorias
ISO 1989:2023Atualização moderna

Conclusão

A ISO 1989 é a norma internacional que define oficialmente a linguagem COBOL. Ela garante padronização, compatibilidade e evolução controlada da linguagem desde os anos 1970, permitindo que aplicações COBOL continuem sendo desenvolvidas e mantidas em ambientes modernos como IBM Z, LinuxONE, Cloud, APIs REST, XML e JSON, preservando décadas de investimento tecnológico das organizações.


terça-feira, 20 de março de 2007

O que é CODASYL?

 

Bellacosa Mainframe apresenta o Codasyl

O que é CODASYL?

O CODASYL (Conference on Data Systems Languages) foi um consórcio criado em 1959 por fabricantes de computadores, empresas e órgãos governamentais com o objetivo de desenvolver padrões para linguagens e sistemas de informação.

O CODASYL ficou mundialmente famoso por dois grandes legados:

✅ A criação da linguagem COBOL

✅ O modelo de banco de dados em rede (Network Database Model)


Significado da Sigla

CODASYL
Conference on Data Systems Languages

Em português:

Conferência sobre Linguagens para Sistemas de Dados

Como Surgiu?

No final da década de 1950 existiam diversos fabricantes:

  • IBM

  • UNIVAC

  • Burroughs

  • Honeywell

  • RCA

Cada um possuía sua própria linguagem.

O problema era:

Programa IBM
      ≠
Programa UNIVAC

Não havia portabilidade.


A Missão do CODASYL

Criar padrões que permitissem:

  • Compartilhamento de conhecimento

  • Portabilidade

  • Padronização

  • Integração entre fabricantes


O Nascimento do COBOL

Em 1959 o CODASYL criou um comitê para desenvolver uma linguagem de negócios.

O resultado foi:

COBOL

Common Business Oriented Language

Curiosidade Histórica

Grace Hopper participou ativamente das discussões que influenciaram a criação do COBOL.


O Modelo CODASYL de Banco de Dados

Na década de 1960 o grupo criou outro marco importante:

Banco de Dados em Rede

(Network Database Model)


Como Funciona?

Os registros são ligados por relacionamentos.

Exemplo:

CLIENTE
    │
    ├── CONTA
    │
    ├── CARTÃO
    │
    └── EMPRÉSTIMO

Conceitos Básicos

Record

Equivalente a um registro.

CLIENTE

Set

Relacionamento entre registros.

CLIENTE
      ↓
   CONTA

Owner

Registro proprietário.

CLIENTE

Member

Registro associado.

CONTA

Exemplo Visual

CLIENTE (Owner)
      │
      ├──── CONTA 1
      │
      ├──── CONTA 2
      │
      └──── CONTA 3

Comparação com Modelo Hierárquico

Hierárquico (IMS)

CLIENTE
    ↓
CONTA
    ↓
MOVIMENTO

Um único caminho.


CODASYL

CLIENTE
   ↔
CONTA
   ↔
CARTÃO
   ↔
EMPRÉSTIMO

Múltiplos caminhos.


Vantagem do CODASYL

Maior flexibilidade.


Exemplo Bancário

CLIENTE
     │
     ├── CONTA
     │
     ├── CARTÃO
     │
     ├── INVESTIMENTO
     │
     └── SEGURO

Linguagem de Acesso

Os programas navegavam diretamente pelos relacionamentos.

Exemplo:

FIND CLIENTE
↓
FIND CONTA
↓
FIND MOVIMENTO

Navegação

O programador precisava conhecer:

Caminhos
Relacionamentos
Estruturas

do banco.


Produtos Baseados em CODASYL

Os mais conhecidos foram:

IDMS

(Integrated Database Management System)

Muito utilizado em Mainframe.


IDS

Integrated Data Store.


TOTAL

Outro banco de dados famoso da época.


CODASYL x Banco Relacional

Década de 1970:

Edgar F. Codd propõe:

Modelo Relacional


CODASYL:

Navegação

Relacional:

SELECT *
FROM CLIENTES

Exemplo

CODASYL:

CLIENTE
 ↓
CONTA
 ↓
MOVIMENTO

Relacional:

SELECT *
FROM MOVIMENTO
WHERE CONTA = 123

Diferenças

CODASYLRelacional
NavegacionalDeclarativo
RecordTabela
SetRelacionamento
OwnerPai
MemberFilho
Acesso físicoSQL

CODASYL e Mainframe

Durante décadas foi extremamente utilizado em:

  • Bancos

  • Seguradoras

  • Governo

  • Telecom


Muitos sistemas críticos ainda utilizam:

IDMS

baseado no modelo CODASYL.


Influência Atual

Embora o modelo relacional tenha se tornado dominante, várias ideias do CODASYL influenciaram:

  • Bancos orientados a grafos

  • Bancos NoSQL

  • Neo4j

  • Modelagem de relacionamentos complexos


CODASYL x Grafos

Curiosamente:

CODASYL (1969)
       ↓
Relacionamentos
       ↓
Grafos Modernos

Existe certa semelhança conceitual.


Curiosidades

1. O CODASYL ajudou a criar o COBOL

2. O modelo de banco em rede surgiu antes do DB2

3. O IDMS ainda existe em alguns ambientes Mainframe

4. Foi um dos modelos de banco mais importantes da história

5. Influenciou conceitos utilizados em bancos de grafos modernos


Resumo Rápido

ConceitoDescrição
CODASYLOrganização de padronização
COBOLCriado sob o CODASYL
Modelo RedeBanco de dados em rede
RecordRegistro
SetRelacionamento
OwnerRegistro pai
MemberRegistro filho
IDMSBanco baseado em CODASYL
IMSModelo hierárquico
DB2Modelo relacional

Conclusão

O CODASYL foi uma das organizações mais importantes da história da computação. Além de participar da criação do COBOL, desenvolveu o modelo de banco de dados em rede, que dominou muitos ambientes corporativos antes da popularização dos bancos relacionais. Seu legado permanece vivo em sistemas Mainframe, especialmente em ambientes IDMS, e influenciou conceitos modernos de modelagem de dados e bancos orientados a relacionamentos.


segunda-feira, 19 de março de 2007

O que é Performance Aplicada em Mainframe?

 

Bellacosa Mainframe avaliando a performance no Mainframe

O que é Performance Aplicada em Mainframe?

A Performance em Mainframe é a disciplina responsável por medir, analisar, otimizar e garantir que os recursos do ambiente IBM Z estejam sendo utilizados da forma mais eficiente possível.

Seu objetivo é garantir que aplicações, bancos de dados, transações online, jobs batch e infraestrutura operem com:

✅ Alta velocidade

✅ Baixo consumo de recursos

✅ Maior capacidade de processamento

✅ Menor tempo de resposta

✅ Melhor custo operacional


Definição Simples

Performance pode ser resumida como:

Fazer mais
com menos recursos
e no menor tempo possível

Por que Performance é Importante?

Imagine um banco processando:

PIX
TED
Cartões
Internet Banking
Open Finance

Se uma transação levar muito tempo:

Cliente espera
↓
Sistema fica lento
↓
Perda financeira

Por isso a performance é crítica.


O que é Medido?

Os especialistas analisam diversos indicadores.


CPU

Quanto processamento está sendo utilizado.

Exemplo:

CPU = 95%

Indica possível gargalo.


Tempo de Resposta

Tempo entre solicitação e resposta.

Exemplo:

Cliente
 ↓
Consulta Saldo
 ↓
0,2 segundos

Throughput

Quantidade de trabalho processado.

Exemplo:

100.000 transações por segundo

Consumo de Memória

Avalia uso da RAM.

Storage Virtual
Frames
Paging

I/O

Avalia acesso a:

  • Discos

  • Storage

  • Bancos de dados


Exemplo:

COBOL
 ↓
DB2
 ↓
Storage

Principais Áreas de Performance

Performance de CPU

Analisa:

  • Consumo

  • Picos

  • Esperas


Performance de Memória

Analisa:

  • Paging

  • Real Storage

  • Cache


Performance de Storage

Analisa:

  • FICON

  • DS8000

  • Cache

  • Latência


Performance de Rede

Analisa:

  • TCP/IP

  • OSA

  • HiperSockets


Performance de Aplicações

Analisa:

  • COBOL

  • CICS

  • IMS

  • Java


Performance em Batch

Exemplo:

JOB = 4 horas

Após otimização:

JOB = 1 hora

Ganho:

75%

Performance em CICS

Mede:

  • Tempo de resposta

  • Esperas

  • Transações por segundo


Exemplo:

Transação
 ↓
50 ms

Excelente resultado.


Performance em DB2

Avalia:

  • SQL

  • Índices

  • Buffer Pools


Exemplo ruim:

SELECT *
FROM CLIENTES

Exemplo melhor:

SELECT NOME
FROM CLIENTES
WHERE CPF = ?

Performance em COBOL

Otimizações comuns:


Evitar Leitura Desnecessária

Ruim:

READ ARQ

milhões de vezes.


Melhor:

Carregar tabela em memória

Usar SEARCH ALL

Mais rápido.

SEARCH ALL

Evitar SORTs Desnecessários

Sort é caro.


Reduzir Acessos ao DB2

Menos SQL = mais performance.


Gargalos Mais Comuns

CPU

Uso excessivo

Storage

Disco lento

SQL

SELECT ineficiente

Rede

Latência

Programação

Loops desnecessários

Ferramentas de Performance


RMF

Resource Measurement Facility

Ferramenta principal do z/OS.


Mede:

  • CPU

  • Memória

  • I/O

  • Rede


SMF

System Management Facility

Coleta estatísticas.


Gera:

SMF Records

OMEGAMON

Monitoramento em tempo real.


Monitora:

  • CICS

  • DB2

  • z/OS


MainView

Ferramenta Broadcom.


IntelliMagic

Análise avançada.


IBM Z Performance and Capacity Analytics

Analytics para capacidade.


Capacity Planning

Planejamento de capacidade.


Pergunta:

O Mainframe suportará
o crescimento do próximo ano?

Avalia:

  • CPU

  • Memória

  • Storage

  • Rede


MIPS e MSU

Métricas tradicionais.


MIPS

Million Instructions Per Second

MSU

Million Service Units

Mais utilizada atualmente.


zIIP e Performance

Grande aliado.

Executa:

  • Java

  • XML

  • JSON

  • DB2


Resultado:

Menos carga nos CPs

Cache

Melhora drasticamente:

CPU
Memória
Storage
DB2

Performance em Cloud Híbrida

Hoje também envolve:

API
Cloud
OpenShift
Containers
z/OS Connect

Exemplo Prático

Fluxo de PIX:

Aplicativo
      ↓
API
      ↓
z/OS Connect
      ↓
CICS
      ↓
COBOL
      ↓
DB2
      ↓
Storage

A equipe de performance mede cada etapa.


Objetivos da Equipe de Performance

✅ Reduzir tempo de resposta

✅ Reduzir consumo de CPU

✅ Melhorar throughput

✅ Evitar gargalos

✅ Planejar crescimento

✅ Reduzir custos de licenciamento


Perfil do Analista de Performance

Conhece:

  • z/OS

  • JES2

  • RMF

  • SMF

  • CICS

  • DB2

  • Storage

  • Redes

  • Workload Manager


Curiosidade

Em muitos bancos, uma redução de apenas 1% no consumo de CPU pode representar uma economia anual de centenas de milhares ou até milhões de dólares em licenciamento e infraestrutura. Por isso, performance é uma das áreas mais valorizadas do universo Mainframe.


Resumo Rápido

ÁreaO que Analisa
CPUProcessamento
MemóriaUso de RAM
StorageI/O e latência
RedeComunicação
CICSTempo de resposta
DB2SQL e Buffer Pools
BatchTempo de execução
RMFMétricas do sistema
SMFEstatísticas
OMEGAMONMonitoramento

Conclusão

Performance aplicada em Mainframe é a prática de monitorar, medir e otimizar todos os recursos do ambiente IBM Z, incluindo CPU, memória, storage, rede, CICS, DB2 e aplicações COBOL. Seu objetivo é garantir que o sistema entregue o máximo desempenho possível, com segurança, estabilidade e o menor custo operacional, suportando milhões de transações críticas diariamente.


domingo, 18 de março de 2007

O que é Storage em Mainframe?

 

Bellacosa Mainframe mergulhando no Storage Mainframe

O que é Storage em Mainframe?

No mundo Mainframe, Storage é o subsistema responsável por armazenar permanentemente todos os dados utilizados pelas aplicações, bancos de dados, arquivos, logs, backups e sistemas operacionais.

Em outras palavras:

Storage = O "cofre" de dados do Mainframe

É nele que ficam armazenados:

  • Datasets

  • VSAM

  • DB2

  • Logs

  • Backups

  • JCLs

  • Fontes COBOL

  • Bibliotecas Load

  • Arquivos de usuários


Diferença Entre Memória e Storage

Muitos iniciantes confundem os dois conceitos.

Memória (RAM)

Armazenamento temporário.

Programa Executando
         ↓
      Memória

Quando o sistema é desligado:

Dados Perdidos

Storage

Armazenamento permanente.

Programa
     ↓
Storage

Os dados permanecem gravados.


Evolução Histórica

Década de 1960

Cartões perfurados.

80 colunas

Década de 1970

Discos magnéticos.


Década de 1980

DASD de grande capacidade.


Atualmente

SSD
Flash
NVMe
Storage Corporativo

O que é DASD?

Significa:

Direct Access Storage Device

É o termo tradicional utilizado em Mainframe para dispositivos de armazenamento.


Exemplo:

3390
3380

eram modelos clássicos.


Storage Moderno

Hoje os Mainframes normalmente utilizam:

IBM DS8000

A principal família de storage corporativo da IBM.


Exemplo

IBM Z
   ↓
FICON
   ↓
DS8000
   ↓
Discos SSD

O que o Storage Guarda?


Datasets

Arquivos do z/OS.

Exemplo:

USER.COBOL.SOURCE

Load Libraries

Programas compilados.

Exemplo:

USER.LOADLIB

DB2

Tabelas e índices.


VSAM

Arquivos indexados.


Logs

Registros operacionais.


Backups

Cópias de segurança.


Estrutura Simplificada

Aplicação
     ↓
z/OS
     ↓
Canal FICON
     ↓
Storage

Comunicação com o Storage

O Mainframe utiliza:

FICON

Fiber Connection


Função:

Mainframe
      ↔
Storage

Velocidades atuais:

16 Gbps
32 Gbps
64 Gbps

e superiores.


Controladoras

Dentro do Storage existem controladoras especializadas.

Responsáveis por:

  • Cache

  • Replicação

  • Compressão

  • Segurança


Cache do Storage

Antes de acessar o disco:

Storage Cache
       ↓
Disco

Benefícios:

✅ Mais velocidade

✅ Menor latência


RAID

Proteção contra falhas.

Exemplo:

Disco A
Disco B
Disco C

Se um falhar:

Dados continuam disponíveis

Replicação

Storage corporativo normalmente mantém cópias.


Exemplo:

São Paulo
      ↓
Rio de Janeiro

Ou:

Data Center A
      ↓
Data Center B

PPRC

Peer-to-Peer Remote Copy

Tecnologia IBM de replicação.


Metro Mirror

Replicação síncrona.


Global Mirror

Replicação assíncrona.


Snapshots

Fotografias instantâneas dos dados.


Utilizados para:

  • Backup

  • Recuperação

  • Testes


Compressão

Reduz espaço consumido.


Exemplo:

100 TB
 ↓
60 TB

Criptografia

Storages modernos possuem:

Encryption at Rest

Protegem dados armazenados.


Storage e DB2

Fluxo típico:

DB2
 ↓
Dataset
 ↓
Storage

Storage e VSAM

VSAM
 ↓
Dataset KSDS
 ↓
Storage

Storage e Batch

Durante um JOB:

Programa COBOL
        ↓
Leitura Dataset
        ↓
Storage

Storage e CICS

CICS
 ↓
VSAM
 ↓
Storage

Disponibilidade

Storages corporativos oferecem:

✅ Redundância

✅ Failover

✅ Hot Swap

✅ Replicação


Hot Swap

Troca de componentes sem desligamento.


Exemplo:

SSD defeituoso
      ↓
Troca Online

Capacidade

Storages modernos podem armazenar:

Petabytes

de dados.


Exemplo Real

Banco:

PIX
TED
DOC
Cartões
Internet Banking

Tudo armazenado em Storages corporativos.


Principais Componentes

ComponenteFunção
DASDArmazenamento
DS8000Storage IBM
FICONComunicação
CacheAceleração
RAIDProteção
PPRCReplicação
Metro MirrorEspelhamento síncrono
Global MirrorEspelhamento assíncrono
SnapshotBackup instantâneo
CriptografiaSegurança

Curiosidade

Um único sistema IBM DS8000 pode armazenar petabytes de dados e atender simultaneamente milhares de aplicações executando em IBM Z, LinuxONE, AIX, IBM i e ambientes distribuídos. Em grandes bancos, é comum que dezenas de storages corporativos trabalhem em conjunto para garantir disponibilidade contínua dos dados.


Resumo Rápido

COBOL
  ↓
Dataset
  ↓
z/OS
  ↓
FICON
  ↓
DS8000
  ↓
SSD / Flash

Conclusão

O Storage em Mainframe é a infraestrutura responsável pelo armazenamento permanente dos dados corporativos. Utilizando tecnologias como DASD, DS8000, FICON, RAID, Replicação, Snapshots e Criptografia, ele garante desempenho, disponibilidade e segurança para aplicações críticas que processam milhões de transações diariamente em bancos, seguradoras, governos e grandes empresas.