Translate

terça-feira, 21 de maio de 2013

💾 VSAM para Programadores Júnior — O Guia Essencial


Bellacosa Mainframe introdução ao VSAM


 

💾 VSAM para Programadores Júnior — O Guia Essencial

Se você está entrando no universo do mainframe, vai ouvir falar de VSAM o tempo todo. Ele não é apenas um tipo de arquivo — é um dos pilares de armazenamento de dados no z/OS.


📌 O que é VSAM?

VSAM (Virtual Storage Access Method) é um método de acesso a dados criado pela IBM para organizar, armazenar e recuperar dados de forma eficiente.

Diferente dos arquivos sequenciais tradicionais, o VSAM permite:

  • Acesso rápido (direto e sequencial)
  • Organização estruturada
  • Controle mais refinado de dados

👉 Pense nele como um “mini banco de dados estruturado”, porém mais próximo do sistema operacional.


🎯 Para que serve o VSAM?

O VSAM é amplamente usado em:

  • Sistemas bancários 💳
  • Sistemas de seguros 📄
  • Aplicações críticas em tempo real (CICS) ⚡
  • Processamentos batch de alto volume

💡 Em resumo:
Ele é usado quando você precisa de alta performance + confiabilidade + acesso estruturado aos dados.


⚙️ Funcionalidades principais

O VSAM oferece várias capacidades importantes:

  • 🔎 Acesso direto (random) — buscar um registro específico
  • 🔁 Acesso sequencial — ler dados em ordem
  • 🔐 Integridade de dados
  • Alta performance em grandes volumes
  • 📊 Indexação (em alguns tipos)

🧰 IDCAMS — O canivete suíço do VSAM

O VSAM é gerenciado principalmente pelo utilitário:

👉 IDCAMS

Com o IDCAMS você pode:

  • Criar datasets VSAM (DEFINE)
  • Deletar (DELETE)
  • Listar informações (LISTCAT)
  • Reorganizar dados
  • Copiar datasets

🧪 Exemplo simples

//STEP01 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINE CLUSTER(NAME(MEU.KSDS)
INDEXED
KEYS(10 0)
RECORDSIZE(80 80)
TRACKS(1 1))
/*

📦 Tipos de VSAM

Agora vem a parte mais importante: entender os tipos.


🔹 ESDS — Entry Sequenced Data Set

  • Dados gravados em sequência
  • Não possui chave
  • Acesso por posição (RBA)

👉 Uso típico:

  • Logs
  • Arquivos históricos

🔹 KSDS — Key Sequenced Data Set

  • Possui chave primária
  • Usa índice para acesso rápido
  • Permite acesso direto e sequencial

👉 Uso típico:

  • Sistemas bancários
  • Cadastros de clientes

💡 É o tipo mais usado!


🔹 RRDS — Relative Record Data Set

  • Registros organizados por número relativo (RRN)
  • Acesso direto pelo número do registro
  • Estrutura fixa

👉 Uso típico:

  • Tabelas com posições fixas
  • Sistemas que dependem de índice numérico

🔹 LDS — Linear Data Set

  • Não possui estrutura de registros
  • Apenas um bloco contínuo de bytes

👉 Uso típico:

  • DB2
  • Armazenamento interno de bancos

💡 É mais “baixo nível”.


⚖️ Diferenças entre ESDS, KSDS, RRDS e LDS

TipoChaveAcessoEstruturaUso comum
ESDSSequencial / RBASimplesLogs
KSDSDireto + SequencialIndexadoCadastros
RRDS❌ (usa RRN)DiretoFixoTabelas
LDSByte offsetSem registroDB2

🤝 Semelhanças entre eles

Apesar das diferenças, todos compartilham:

  • São datasets VSAM
  • Gerenciados via IDCAMS
  • Altamente performáticos
  • Usados no z/OS
  • Suportam grandes volumes de dados

🚀 VSAM NoSQL? O que é isso?

O termo “VSAM NoSQL” não é oficial da IBM, mas é usado informalmente para descrever:

👉 Uso do VSAM como armazenamento chave-valor

Exemplo:

  • KSDS funcionando como um “NoSQL”
  • A chave = identificador
  • O registro = documento

💡 Isso aparece muito em:

  • APIs expostas via CICS
  • Integrações modernas (JSON + COBOL)

🧠 Resumo estilo Bellacosa

  • VSAM é o motor de dados raiz do mainframe
  • KSDS é o “rei” 👑
  • IDCAMS é seu melhor amigo 🧰
  • LDS é o “lado obscuro” (baixo nível)
  • VSAM ainda vive — e MUITO — em sistemas críticos

segunda-feira, 20 de maio de 2013

Uma tarde no zoo de Lisboa

Aventuras com o Barbinha no Zoologico


Nao sou o melhor pai do mundo, a bem da verdade queria ter aprendido a ser melhor pai, mas de todos os meus conhecimentos essa parte sou medíocre.

Depois do meu divorcio é ida para Italia, de tempos em tempos voltava a Portugal para visitar meu filho. E nosso programa principal é a ida ao jardim Zoológico de Lisboa.

Pena que as restrições de audio tiraram toda a graça do show com os leões marinhos.



Para aqueles que não conhecem o Zoológico de Lisboa é pequenino, porém muito rico em atraçoes, possui uma área de shows com golfinhos e leoes marinhos (acredito que as primeiras memorias divertidas do meu filho, foram feitas aqui ganhando beijos do leão marinho).

Outras atraçoes existentes são o teleférico que circula todo o perímetro, o show de aves exóticas, demonstração de animais e diversos cativeiros construídos da forma mais humana possível, tentando reproduzir o habitat natural.

A principal vantagem deste zoológico é sua posição estratégica ao lado de uma estação conjugada de Trem/Metro/Ónibus e estar próximo ao centro da cidade. Evitando com isso grandes deslocações e perda de tempo em transportes.

Na área externa existe uma grande praça de alimentação com diversos restaurantes, fliperamas e brinquedos para os miúdos, com muita sombra para repousar



quarta-feira, 15 de maio de 2013

🧠⚙️ O Sistema Operacional Z — O que é z/OS?

 


🧠⚙️ O Sistema Operacional Z — O que é z/OS?

O sistema operacional que sustenta o mundo (e ninguém vê)

“Enquanto o mundo discute frameworks da moda,
o z/OS continua garantindo que o dinheiro chegue certo, no horário certo.”

Se você acha que z/OS é apenas “mais um sistema operacional”,
prepare-se para um choque de realidade.


🧱 O que é z/OS, afinal?

z/OS é o sistema operacional dos mainframes IBM Z.

Assim como:

  • Windows roda em desktops

  • Linux roda em servidores

👉 z/OS roda em computadores feitos para nunca parar.

Ele é responsável por coordenar, com precisão cirúrgica:

  • Hardware

  • Software

  • Aplicações

  • Usuários

  • Dados

  • Segurança

  • Performance

Tudo isso ao mesmo tempo, 24x7, 365 dias por ano.


🌍 Escala: onde o z/OS humilha qualquer comparação

Um sistema comum foi feito para:

  • Dezenas ou centenas de usuários

  • Alguns milhares de transações

O z/OS foi feito para:

👥 Milhares de usuários simultâneos
💳 Milhões de transações por segundo
📊 Volumes absurdos de dados sensíveis

E tudo isso:

  • Com isolamento

  • Com segurança

  • Com previsibilidade

  • Sem reboot de madrugada


⚖️ Gerenciamento de carga: o cérebro do sistema

Um dos maiores diferenciais do z/OS é o Workload Management (WLM).

Tradução Bellacosa:

O sistema decide quem merece CPU, quando e quanto.

O z/OS:

  • Prioriza aplicações críticas

  • Garante SLA

  • Evita que um JOB mal escrito derrube o sistema

  • Distribui recursos de forma justa e inteligente

No mundo distribuído, isso é “best effort”.
No z/OS, é engenharia de missão crítica.


🔐 Segurança: não é opcional, é DNA

z/OS nasceu em ambientes onde:

  • Um erro custa milhões

  • Um vazamento é inadmissível

  • Auditoria é rotina, não exceção

Ele integra nativamente:

  • RACF / ACF2 / Top Secret

  • Controle fino de acesso

  • Rastreabilidade completa

  • Separação real de ambientes

Aqui não existe:

“Depois a gente coloca segurança.”


🔄 Disponibilidade e recuperação: parar não é opção

Outro mantra do z/OS:

Falha acontece. Parada não.

O sistema foi projetado para:

  • Detectar falhas

  • Isolar problemas

  • Recuperar automaticamente

  • Continuar processando

É por isso que bancos confiam no z/OS para:

  • Compensação

  • Liquidação

  • Pagamentos

  • Crédito

  • Débito

  • Transferências globais


🗂️ Batch e ⚡ Online: dois mundos, um sistema

O z/OS domina dois universos ao mesmo tempo:

🗂️ Batch Processing

  • Grandes volumes

  • Processamento pesado

  • Horários controlados

  • Eficiência máxima

⚡ Online Transaction Processing (OLTP)

  • Respostas em tempo real

  • Usuários simultâneos

  • Latência mínima

  • Alta disponibilidade

Ambos coexistem no mesmo sistema, sem briga, sem gambiarra.


🚀 Múltiplas aplicações, isolamento total

No z/OS:

  • Uma aplicação não derruba a outra

  • Um usuário não vê o que não deve

  • Um erro não vira efeito dominó

Isso não é mágica.
É arquitetura madura, construída ao longo de décadas.


🏦 Quem confia no z/OS (e por quê)

z/OS é a espinha dorsal de:

🏦 Bancos e instituições financeiras
🏛️ Sistemas governamentais
✈️ Companhias aéreas
🚆 Transporte e logística
🏢 Grandes corporações globais

Onde existe:

  • Dinheiro

  • Dados críticos

  • Responsabilidade legal

👉 Existe z/OS.


🥚 Easter-eggs do mundo z/OS

  • z/OS já era “cloud-like” antes da nuvem existir

  • Virtualização sempre foi nativa

  • Segurança sempre foi requisito, não feature

  • Alta disponibilidade nunca foi marketing


🎓 Recado final do El Jefe ao padawan

Aprender z/OS não é aprender o passado.
É aprender como o mundo realmente funciona.

Enquanto modas vão e vêm,
o z/OS continua lá:

  • Silencioso

  • Estável

  • Processando trilhões

  • Sustentando a economia global

terça-feira, 14 de maio de 2013

🧾 COBOL 4.00 no IBM Mainframe

 


🧾 COBOL 4.00 no IBM Mainframe

Guia para Iniciantes: Código Limpo, Seguro e Econômico

“COBOL 4 não perdoa código ruim.
Ele executa… e te cobra por isso.”


🕰️ Um Pouco de Contexto (Por que COBOL 4 importa)

O Enterprise COBOL 4.00 marcou uma virada de chave no mainframe:

  • Introduziu um novo compilador

  • Passou a gerar código mais próximo da arquitetura moderna

  • Começou a penalizar código antigo e relaxado

👉 Muitos programas antigos funcionam, mas:

  • Gastam mais CPU

  • Usam mais memória

  • Sofrem em batch pesado


🧱 Estrutura Básica de um Programa COBOL (Visão Rápida)

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

Para iniciantes:

  • DATA DIVISION mal feita = desastre

  • PROCEDURE DIVISION confusa = CPU jogada fora



⚠️ Grandes Perigos para Iniciantes no COBOL 4

☠️ 1. Código que “funciona” mas custa caro

Exemplo perigoso:

PERFORM UNTIL EOF READ ARQ MOVE CAMPO-A TO CAMPO-B END-PERFORM

❌ MOVE desnecessário dentro do loop
❌ Loop sem controle de volume

✅ Melhor prática:

READ ARQ AT END SET EOF TO TRUE END-READ

E só mover o que for necessário.


☠️ 2. PERFORM Excessivo (Modular demais mata CPU)

Iniciantes adoram:

PERFORM TRATA-REGISTRO

dentro de loop com milhões de registros.

⚠️ Cada PERFORM é custo.

✔️ Dica:

  • Inline lógica crítica

  • Use PERFORM para controle, não para micro-rotinas


☠️ 3. Variáveis mal definidas (memória desperdiçada)

Erro clássico:

01 WS-VALOR PIC X(1000).

Quando só precisa de 10 bytes 😱

✔️ Regra de ouro:

  • PIC do tamanho exato

  • Evite campos genéricos “pra garantir”

📉 Menos memória = menos cache miss = menos CPU.


☠️ 4. Repetir cálculos desnecessários

Erro comum:

COMPUTE WS-TOTAL = WS-QTD * WS-VALOR

feito várias vezes no loop com os mesmos valores.

✔️ Dica:

  • Calcule uma vez

  • Armazene

  • Reutilize


🧼 Como Escrever Código Mais Limpo no COBOL 4

✅ Use nomes claros

WS-VALOR-TOTAL WS-FIM-ARQUIVO

❌ Evite:

WS-A WS-X1

✅ Evite lógica escondida

Código perigoso:

IF A = B MOVE X TO Y ELSE IF C = D MOVE Z TO Y END-IF END-IF

✔️ Melhor:

  • Clareza > esperteza

  • COBOL foi feito para ser legível


🚀 Performance no COBOL 4: Dicas Práticas

⚙️ 1. Tire código de dentro de loops

Cada instrução dentro de loop custa N vezes.


⚙️ 2. Use corretamente os níveis da DATA DIVISION

  • Campos agrupados bem definidos

  • Evite REDEFINES desnecessário

REDEFINES mal usado = bugs silenciosos.


⚙️ 3. Cuidado com STRING e UNSTRING

Eles são poderosos… e caros.

✔️ Use apenas quando necessário
✔️ Evite em loops grandes


⚙️ 4. Arquivos: leia com cuidado

  • READ sequencial é barato

  • READ aleatório é caro

  • Releitura custa CPU e I/O


🧠 Pontos de Atenção que Geram Bugs em Produção

ArmadilhaProblema
Campo não inicializadoResultado imprevisível
EOF mal tratadoLoop infinito
IF aninhado demaisErro lógico
REDEFINES confusoDados corrompidos
Índices fora do limiteABEND

🧙 Curiosidades & Easter Eggs COBOL 4

  • COBOL 4 foi o primeiro passo real rumo ao COBOL 5

  • Programas antigos compilam, mas podem custar o dobro de CPU

  • O compilador já “entende” melhor a arquitetura do zSeries


🧭 Primeiros Passos Recomendados para Padawans

  1. Aprenda estrutura limpa

  2. Evite copiar código velho sem entender

  3. Sempre pense:

    “Isso vai rodar quantas vezes?”

  4. Meça CPU quando possível

  5. Menos código = menos custo


🏁 Conclusão

COBOL 4.00 é:

  • Estável

  • Poderoso

  • Implacável com código mal escrito

“No mainframe, não existe código inocente.
Só código caro ou econômico.”

 

segunda-feira, 13 de maio de 2013

O Canal de Corinto, obra de engenharia fantastica.

Obras de arte na engenharia : Canal de Corinto

No passado um barco levava quase 3 dias para sair do Golfo de Corinto e contornar todo a península do Peloponeso.

Construído no século XIX em uma época em que não existiam as modernas maquinas de escavação, abriu-se um canal de mais de 6 quilometros com 21 de largura, permitindo a passagem de barcos de um lado a outro.



Os amantes de esportes radicais usam as pontes existente no Canal para fazerem bump jump e outras maluquices.

Outra curiosidade é q existe um semáforo nas entradas do canal que coordena o fluxo das embarcações.

sábado, 11 de maio de 2013

Navegação pelo Mar Adriático, viagem a Grécia.

O barco de ligação entre Bari (Italia) e Patras (Grécia)


Decidido retornar ao Brasil, após 11 anos vivendo fora resolvi fazer uma ultima grande aventura, para poder fechar este ciclo com chave de ouro.

Após perambular pelo sul da Itália, resolvi mover-me a leste até a cidade dos meus antepassados Bari, de la apanhei um barco com destino a Grécia.


Este navio é enorme funciona como uma balsa, fazendo ligação entre estes 2 países. Vejam pelo filme o tamanho do porão onde sao estacionados os carros e caminhoes, em cima alguns camarotes e outros luxos.

A viagem dura a noite toda, partindo as 5 da tarde e chegando por volta das 6 da manha. Recomendo chegarem cedo, pois podem escolher um bom lugar para montar seu acampamento.


quinta-feira, 11 de abril de 2013

☕🔥O Dia em que o Mainframe Aprendeu Big Data — e o Mundo Percebeu que Sempre Foi Assim


 

☕🔥 “O Dia em que o Mainframe Aprendeu Big Data — e o Mundo Percebeu que Sempre Foi Assim”

Apache Spark no z/OS: quando a inteligência vai até o cofre

Durante anos venderam a ideia de que Big Data nasceu fora do mainframe.

Hadoop. Cloud. Clusters baratos. Data Lakes infinitos.

Enquanto isso, silenciosamente, o IBM Z continuava processando:

  • Transações globais

  • Sistemas bancários

  • Seguros

  • Cartões

  • Governos inteiros

Então veio um momento histórico:

E se o motor de analytics moderno rodasse dentro do mainframe?

Nascia o Spark no z/OS.


🧠 O que é o Apache Spark (de verdade)

Ele revolucionou o processamento distribuído porque:

  • Trabalha em memória (in-memory computing)

  • Executa pipelines complexos via DAG

  • Suporta SQL, streaming e machine learning

  • Escala horizontalmente

Hoje é um dos pilares da engenharia de dados moderna.

Mas sua verdadeira transformação começou quando encontrou o mainframe.


🏛 Quando Spark encontrou o z/OS

O z/OS é o sistema operacional que roda nos computadores mais resilientes já construídos.

No mundo real, os dados mais valiosos vivem aqui:

  • Db2 for z/OS

  • IMS

  • CICS

  • VSAM

  • SMF

  • Logstreams

Mover esses dados para fora sempre foi caro, lento e arriscado.

Spark no z/OS muda o paradigma:

Não leve o dado ao analytics.
Leve o analytics ao dado.


📅 História e Release

A plataforma IBM z/OS Platform for Apache Spark foi anunciada oficialmente em 2016.

Foi um movimento estratégico da IBM para:

  • Modernizar analytics no mainframe

  • Integrar IA ao core transacional

  • Evitar exfiltração massiva de dados

  • Preparar o Z para a era Data-Driven

Foi também um reconhecimento implícito:

O mainframe nunca deixou de ser o maior data platform do mundo.


⚙️ Como o Spark roda no z/OS

Spark executa no z/OS via:

  • USS (Unix System Services)

  • JVM (Java é obrigatório)

  • Deployment Standalone

  • Processos distribuídos entre LPARs (Sysplex)

Arquitetura típica:

Master daemon → Cluster Manager
Slave daemon → Worker Node
Executors → Processamento paralelo
MDSS → Ponte para dados MVS

O MDSS (Mainframe Data Service for Apache Spark) é a peça secreta.

Sem ele, Spark só vê dados “tipo Linux”.
Com ele, enxerga o coração do z/OS.


🔐 A arma secreta: processar dados sem movê-los

Em ambientes distribuídos tradicionais:

  1. Extrai dados do mainframe

  2. Copia para Data Lake

  3. Processa

  4. Reimporta resultados

Cada passo aumenta:

  • Latência

  • Custos

  • Risco de vazamento

  • Complexidade operacional

Com Spark no z/OS:

O processamento acontece no mesmo ambiente seguro.

RACF, criptografia e auditoria continuam protegendo tudo.


🧩 O papel do MDSS

O Mainframe Data Service for Apache Spark permite acessar dados clássicos como:

  • VSAM

  • Sequential datasets

  • IMS

  • SMF

  • Logstream

Ele roda como started task, controlado por ISPF ou Data Service Studio.

Sem ele, Spark não entende formatos MVS.

Com ele, Spark enxerga décadas de história corporativa.


🚀 Funcionalidades herdadas do Spark padrão

z/OS Spark mantém praticamente todas as capacidades modernas:

✔ Spark SQL
✔ Machine Learning (MLlib)
✔ Graph processing (GraphX)
✔ Streaming
✔ Integração JDBC
✔ APIs REST
✔ Execução distribuída

A principal exceção histórica:

👉 Não suporta desenvolvimento em R.


🤝 Integração com programas tradicionais

Uma das features mais impressionantes:

Spark pode conversar com aplicações escritas em:

  • COBOL

  • PL/I

  • Assembler

  • Natural

Inclusive acessar dados e programas via CICS.

Isso cria um cenário único:

Machine Learning moderno dialogando com sistemas escritos há 40 anos — em produção global.


🧠 Curiosidades que pouca gente conta

🟡 O mainframe sempre foi Big Data

Antes de “Big Data” existir como buzzword, o Z já processava volumes gigantes.

🟡 zIIP pode reduzir custo do analytics

Workloads Java e analytics podem ser offloadados.

🟡 Parallel Sysplex = cluster de verdade

Sem SPOF, com disponibilidade absurda.

🟡 Segurança nativa imbatível

Copiar dados para fora frequentemente reduz segurança.


🥚 Easter Eggs arquiteturais

👉 Spark foi criado para clusters baratos distribuídos
👉 O IBM Z é o oposto: um supercomputador vertical

Quando os dois se encontram, surge algo raro:

Escala horizontal + potência vertical

É como colocar um motor de foguete num trem blindado.


🧠 Casos reais de uso

  • Fraud detection em tempo real

  • Análise de comportamento transacional

  • Capacity planning via SMF

  • Detecção de anomalias operacionais

  • Analytics regulatório

  • Scoring de crédito instantâneo


☕ Comentário Bellacosa

Durante anos disseram:

“Para inovar, saia do mainframe.”

Hoje a mensagem é outra:

“Se você quer inovar sem quebrar o core do negócio, traga a inovação para o mainframe.”

Spark no z/OS não é nostalgia.

É pragmatismo.


🎯 Conclusão

Apache Spark no z/OS representa algo maior do que tecnologia.

Representa uma mudança de mentalidade:

✔ O mainframe não é legado — é fundação
✔ Big Data não substitui o Z — complementa
✔ Segurança e analytics podem coexistir
✔ O futuro não é cloud ou mainframe — é híbrido


☕ Frase final de boteco mainframe

O mundo tentou levar os dados para a nuvem.

O IBM Z respondeu:

“Tragam a nuvem até mim.”