☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

Translate

Mostrar mensagens com a etiqueta Balanceamento de Carga. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Balanceamento de Carga. Mostrar todas as mensagens

sábado, 24 de maio de 2025

Kubernetes Services Muito Além do ClusterIP

 

Bellacosa Mainframe e os kubernetes

☕ Um Café no Bellacosa Mainframe

Kubernetes Services Muito Além do ClusterIP

O Que Todo Programador COBOL Padawan Precisa Saber Sobre ClusterIP, NodePort, LoadBalancer, ExternalName, DNS, Balanceamento, Alta Disponibilidade e Como os Grandes Bancos Mantêm Milhares de Microsserviços Funcionando Sem Que Ninguém Perceba

"Um bom programador conhece um endereço IP. Um excelente engenheiro cria sistemas onde ninguém precisa conhecer endereço algum."


Introdução

Durante décadas, nós, profissionais de Mainframe, aprendemos que estabilidade era uma virtude.

No IBM Z, dificilmente pensamos no endereço físico de uma aplicação.

Quando um operador acessa uma transação CICS, ele não precisa saber em qual LPAR ela está executando.

Quando um lote conversa com o DB2, ele não sabe onde está o buffer pool.

Quando um terminal 3270 executa uma transação, ele não precisa conhecer qual região AOR irá atendê-lo.

Existe uma camada de abstração.

Essa camada protege o usuário da complexidade.

Curiosamente, quase cinquenta anos depois, o Kubernetes resolveu exatamente o mesmo problema.

Só que agora para milhares de containers distribuídos em centenas de servidores Linux.

Se você é um Programador COBOL Padawan entrando no universo DevOps, Kubernetes pode parecer um mundo completamente diferente.

Mas não é.

Na verdade, muitos dos conceitos já existem no Mainframe há décadas.

Neste artigo vamos descobrir por que os Kubernetes Services talvez sejam um dos recursos mais importantes de toda a plataforma.


Antes de falar de Services...

Precisamos entender um conceito fundamental.

Tudo no Kubernetes é temporário.

Isso assusta quem vem do Mainframe.

No IBM Z pensamos assim:

"Meu programa está naquela máquina."

No Kubernetes pensamos diferente.

"Meu programa está em algum lugar do cluster."

Essa pequena mudança de mentalidade muda tudo.

Imagine uma aplicação simples.

Internet

↓

Frontend

↓

Backend

↓

Banco

Agora imagine que o Backend roda em três Pods.

Pod A

Pod B

Pod C

Cada Pod possui um endereço IP.

10.244.1.3

10.244.8.15

10.244.2.9

Até aqui parece simples.

O problema aparece quando um Pod morre.


Pods nascem e morrem o tempo todo

Ao contrário de um servidor tradicional, Pods são descartáveis.

Podem desaparecer por diversos motivos.

  • atualização

  • falha

  • manutenção

  • escalabilidade

  • reinício do Node

  • Rolling Update

  • Auto Scaling

Imagine:

Pod B

10.244.8.15

Foi destruído.

Kubernetes cria outro.

Pod D

10.244.19.44

Novo IP.

Novo identificador.

Nova localização.

Se todas as aplicações utilizassem o IP antigo, tudo quebraria.

É exatamente aqui que nasce o Kubernetes Service.


Afinal, o que é um Kubernetes Service?

A definição oficial diz:

Um Service fornece um endpoint de rede estável para acessar um conjunto de Pods.

Na prática podemos traduzir para:

Um Service é um endereço permanente que representa vários Pods temporários.

Observe.

Sem Service.

Cliente

↓

Pod A

10.244.1.7

Quando o Pod muda...

Tudo quebra.

Com Service.

Cliente

↓

backend-service

↓

Pod A

Pod B

Pod C

Agora o cliente nunca mais conversa diretamente com os Pods.

Essa é uma das ideias mais elegantes do Kubernetes.


A analogia perfeita para quem conhece Mainframe

Imagine um ambiente CICS.

Você possui:

  • TOR

  • AOR

  • FOR

  • WLM

  • Sysplex

  • VIPA

Quando um usuário acessa uma aplicação, ele normalmente não conhece qual AOR irá executar sua transação.

Existe uma infraestrutura inteligente fazendo esse trabalho.

No Kubernetes acontece exatamente a mesma coisa.

Cliente

↓

Service

↓

Pod 1

Pod 2

Pod 3

O Service é uma espécie de endereço lógico.

Assim como um VIPA.


Por que Services existem?

Existem cinco motivos principais.

1. Endereço permanente

Mesmo que todos os Pods sejam recriados.

O endereço continua igual.


2. DNS automático

Todo Service recebe automaticamente um nome DNS.

Exemplo.

backend-service

Ou

backend-service.default.svc.cluster.local

Isso elimina IPs fixos no código.


3. Balanceamento

Se existem quatro Pods...

Pod1

Pod2

Pod3

Pod4

O Service distribui as requisições.

Nenhum Pod fica sobrecarregado.


4. Descoberta de serviços

Imagine um cluster com:

  • PIX

  • Conta Corrente

  • Cartão

  • Investimentos

  • Fraude

  • Autenticação

Como um microsserviço encontra o outro?

Através do Service.


5. Desacoplamento

Aplicações deixam de depender da infraestrutura.

Mudamos Pods.

Mudamos Nodes.

Mudamos Cluster.

Nada muda para o cliente.


Como um Service funciona internamente?

Muita gente imagina que existe um processo rodando como um proxy.

Na maioria dos casos não.

O fluxo real é aproximadamente este.

Cliente

↓

DNS

↓

Service

↓

EndpointSlice

↓

kube-proxy

↓

iptables/IPVS/eBPF

↓

Pod

O kube-proxy cria regras dentro do próprio Kernel Linux.

O encaminhamento acontece praticamente sem intervenção de processos em espaço de usuário.


Endpoint e EndpointSlice

Quando criamos um Service, ele precisa descobrir quais Pods pertencem à aplicação.

Isso acontece através dos Labels.

Pod.

labels:
  app: backend

Service.

selector:
  app: backend

O Kubernetes encontra automaticamente todos os Pods.

Esses Pods são armazenados em objetos chamados EndpointSlices.

Nos clusters antigos existiam apenas Endpoints.

Hoje o EndpointSlice melhora muito a escalabilidade.


Os quatro tipos clássicos de Services

Agora chegamos ao coração do assunto.


ClusterIP

Este é o padrão.

Sempre que você cria um Service sem especificar o tipo, ele será ClusterIP.

type: ClusterIP

Ele cria um IP virtual acessível apenas dentro do cluster.

Arquitetura.

Frontend

↓

ClusterIP

↓

Backend

É o tipo mais utilizado.

Por quê?

Porque a maioria dos microsserviços nunca deve ficar pública.

Imagine um banco.

Você possui.

  • Serviço PIX

  • Serviço Cartão

  • Serviço Conta

  • Serviço Investimentos

  • Serviço Fraude

Nenhum deles precisa ser acessado pela Internet.

Todos usam ClusterIP.


Casos de uso

  • APIs internas

  • Banco de Dados

  • Redis

  • RabbitMQ

  • Kafka

  • Elasticsearch

  • MongoDB


NodePort

Agora a história muda.

NodePort abre uma porta fixa em todos os servidores do cluster.

Exemplo.

Node1

30080
Node2

30080
Node3

30080

Qualquer um responde.

Mesmo que o Pod esteja em outro servidor.

O acesso acontece assim.

192.168.1.50:30080

Muito útil para laboratório.

Pouco utilizado em produção.


Limitações

  • portas limitadas

  • pouca segurança

  • difícil gerenciamento

  • IP dos Nodes exposto

Por isso normalmente é utilizado apenas para desenvolvimento.


LoadBalancer

Quando trabalhamos em Cloud, LoadBalancer torna-se extremamente importante.

Criamos.

type: LoadBalancer

O Kubernetes conversa automaticamente com o provedor.

AWS cria um ELB.

Azure cria um Azure Load Balancer.

Google cria um Cloud Load Balancer.

IBM Cloud cria um IBM Cloud Load Balancer.

Tudo automaticamente.

Arquitetura.

Internet

↓

Cloud Load Balancer

↓

Service

↓

Pods

Essa automação impressiona quem vem do mundo tradicional.

Em poucos segundos uma infraestrutura completa aparece pronta.


ExternalName

Este tipo é diferente de todos os outros.

Ele não cria IP.

Não cria balanceamento.

Não cria Endpoint.

Não cria Proxy.

Ele apenas responde um nome DNS.

Exemplo.

externalName:
   api.bcb.gov.br

Agora qualquer aplicação utiliza.

banco-central

Mesmo que o endereço verdadeiro mude.

Isso facilita migrações.


O quinto tipo que poucos lembram

Embora muitos materiais apresentem apenas quatro tipos, existe outro extremamente importante.

Headless Service.

clusterIP: None

Nesse caso não existe IP virtual.

O DNS devolve diretamente todos os Pods.

Muito utilizado em StatefulSets.

Exemplo.

  • Kafka

  • Cassandra

  • MongoDB

  • Elasticsearch

  • ZooKeeper


O papel do DNS

Uma das maiores mágicas do Kubernetes.

Criamos.

name: backend-service

Automaticamente nasce.

backend-service.default.svc.cluster.local

Nenhuma configuração adicional.

Isso é fornecido pelo CoreDNS.

Assim os desenvolvedores nunca precisam decorar IPs.


Como acontece o balanceamento?

Imagine.

Pod1

Pod2

Pod3

Chegam 900 requisições.

O Service distribui.

300

300

300

Na prática depende do mecanismo utilizado.

  • iptables

  • IPVS

  • eBPF

Mas a ideia continua sendo a mesma.

Distribuir carga.


O que acontece quando um Pod morre?

Suponha.

Pod2

Falhou.

Kubernetes percebe.

Remove o Pod do EndpointSlice.

O Service deixa imediatamente de enviar tráfego para ele.

O usuário nem percebe.

Depois um novo Pod nasce.

Automaticamente entra no balanceamento.

Tudo sem intervenção humana.


O papel das Readiness Probes

Outro conceito fundamental.

Um Pod pode estar vivo.

Mas ainda não pronto.

Imagine um sistema Java iniciando.

O processo já está executando.

Mas ainda carregando centenas de classes.

O Kubernetes espera a Readiness Probe informar.

"Agora estou pronto."

Só então o Service começa a enviar requisições.


Ingress não substitui Service

Esse erro aparece frequentemente em entrevistas.

Ingress faz uma função diferente.

Arquitetura correta.

Internet

↓

Load Balancer

↓

Ingress Controller

↓

ClusterIP

↓

Pods

Ingress trabalha na camada HTTP/HTTPS.

Service trabalha na camada de rede interna.

São tecnologias complementares.


Session Affinity

Por padrão.

Cada requisição pode ir para qualquer Pod.

Mas algumas aplicações antigas dependem de sessão.

Nesse caso.

sessionAffinity:
   ClientIP

O mesmo cliente tende a conversar sempre com o mesmo Pod.

É semelhante ao conceito de Sticky Session.


Erros clássicos

Selector errado

Service.

selector:
   app: api

Pods.

labels:
   app: backend

Resultado.

Zero Endpoints.


TargetPort incorreto

Service.

targetPort: 8080

Container.

9090

Nada funciona.


Pod não Ready

Existe.

Está executando.

Mas ainda não recebe requisições.


NetworkPolicy

O Service funciona.

Mas a política de rede bloqueia o acesso.


O paralelo com o IBM Mainframe

Chegamos à parte mais interessante.

Veja esta comparação.

IBM MainframeKubernetes
Região CICSPod
SysplexCluster
VIPAClusterIP
Sysplex DistributorService
WLMBalanceamento
VTAMRede do Cluster
DNS CorporativoCoreDNS
Health CheckReadiness Probe
Região AORRéplica do Deployment
Balanceador F5LoadBalancer

Perceba que o Kubernetes não inventou todos esses conceitos.

Ele apenas os adaptou para um mundo distribuído baseado em Linux e containers.


Como um banco utiliza tudo isso?

Imagine um Internet Banking.

Internet

↓

Load Balancer

↓

Ingress

↓

Gateway

↓

Conta Corrente

↓

PIX

↓

Cartão

↓

Investimentos

↓

DB2

Cada caixa dessa arquitetura possui seu próprio ClusterIP.

Cada aplicação possui diversas réplicas.

Cada réplica pode estar em um servidor diferente.

Se um Node inteiro falhar.

O Kubernetes recria os Pods em outro Node.

Os Services continuam exatamente iguais.

Os clientes continuam utilizando os mesmos nomes DNS.

Nenhum código precisa ser alterado.

Esse é o verdadeiro poder da abstração.


Conclusão

Quando começamos a estudar Kubernetes, é comum dedicar muita atenção aos Pods, Deployments e Containers. Eles são importantes, mas representam apenas parte da história.

O componente que realmente transforma um conjunto de processos efêmeros em uma plataforma corporativa é o Service.

Ele fornece identidade estável para aplicações que mudam constantemente, esconde a complexidade da infraestrutura, distribui carga, integra-se ao DNS do cluster e permite que atualizações, escalabilidade e recuperação de falhas ocorram de forma transparente.

Para quem vem do universo IBM Mainframe, a ideia não é totalmente nova. Há décadas, tecnologias como VIPA, Sysplex Distributor, WLM e CICS já abstraem a localização física das aplicações e distribuem trabalho entre múltiplas instâncias. O Kubernetes segue a mesma filosofia, adaptando-a ao mundo dos containers, dos microsserviços e da computação em nuvem.

O grande aprendizado para o Programador COBOL Padawan é que o endereço de uma aplicação nunca deve depender da máquina onde ela está executando. Assim como um usuário de um sistema bancário não precisa saber qual região CICS processará sua transação, um consumidor de um microsserviço não deve conhecer o IP de um Pod. Ele deve conhecer apenas um nome lógico — o Service.

No fim das contas, Kubernetes Services representam muito mais do que um recurso de rede. Eles materializam princípios clássicos de engenharia de software: abstração, desacoplamento, alta disponibilidade, balanceamento de carga, resiliência e escalabilidade. São esses princípios que permitem que grandes bancos, seguradoras e empresas globais executem milhões de transações por dia, mantendo seus sistemas disponíveis mesmo quando containers são criados, destruídos e recriados continuamente. Entender esse mecanismo é um passo fundamental para qualquer desenvolvedor COBOL que deseje evoluir do mundo do processamento tradicional para a moderna engenharia de software baseada em DevOps, Cloud Native e IBM Z integrado ao ecossistema Kubernetes.

quarta-feira, 21 de novembro de 2018

CICS TOR sem Mistérios para Programadores COBOL

 

Bellacosa Mainframe apresenta cics tor 

☕ Um Café no Bellacosa Mainframe

CICS TOR sem Mistérios para Programadores COBOL

Quando um Programador Descobre que Nem Todo Programa COBOL Conversa Diretamente com o Usuário... Existe uma Recepção Inteligente que Organiza Todo o Data Center Antes Mesmo do Primeiro EXEC CICS

"Não entre em pânico." — O Guia do Mochileiro das Galáxias

Se Douglas Adams tivesse trabalhado na IBM durante os anos 80, provavelmente escreveria um capítulo chamado "A Vida, o Universo e as Regiões CICS". Afinal, poucas arquiteturas conseguem parecer tão misteriosas à primeira vista e, ao mesmo tempo, tão elegantemente organizadas quanto um CICSplex.

Para quem está iniciando em COBOL Mainframe, é muito comum imaginar que o usuário digita uma transação, o programa COBOL é executado, consulta o DB2 e devolve a resposta.

Na prática...

...isso raramente acontece dessa forma.

Existe uma verdadeira cidade funcionando por trás das cortinas.

E um dos personagens mais importantes dessa cidade chama-se TOR (Terminal-Owning Region).

Hoje vamos abrir a porta do Data Center, colocar uma toalha no ombro (você entendeu a referência...) e descobrir como funciona esse universo.


Antes de tudo: o que é uma Região CICS?

Imagine que o CICS seja um enorme shopping center.

Dentro dele existem dezenas de lojas.

Cada loja possui funcionários, estoque, computadores e clientes.

No Mainframe acontece algo parecido.

Cada CICS Region é um ambiente independente executando dentro do z/OS.

Ela possui memória própria.

Recursos próprios.

Filas.

Programas.

Transações.

Arquivos.

Conexões.

E tudo isso funciona de maneira totalmente isolada das demais regiões.

Uma região pode executar centenas de milhares de transações diariamente.

Grandes bancos chegam facilmente à casa dos milhões.


O primeiro erro de todo iniciante

Quase todo programador COBOL pensa assim:

Usuário

↓

Programa COBOL

↓

DB2

↓

Resposta

É simples.

Faz sentido.

Mas...

...não é assim que um ambiente corporativo funciona.

Na realidade existe uma arquitetura muito mais sofisticada.

Usuário

↓

TOR

↓

AOR

↓

FOR

↓

DB2

↓

FOR

↓

AOR

↓

TOR

↓

Usuário

De repente apareceu um monte de siglas.

Vamos decifrá-las.


Por que dividir tudo?

Imagine um restaurante.

Você chega.

A primeira pessoa que encontra é a recepcionista.

Ela pergunta:

— Quantas pessoas?

— Mesa para fumantes?

— Possui reserva?

Ela não cozinha.

Não prepara sobremesa.

Não faz pizza.

Ela apenas organiza o fluxo.

Agora imagine se o chef precisasse abandonar o fogão toda vez que alguém chegasse à porta.

O restaurante entraria em colapso.

O mesmo acontece no CICS.


Bem-vindo ao TOR

TOR significa

Terminal-Owning Region

O nome parece complicado.

Na prática significa:

a região dona dos terminais.

Ela controla toda a comunicação com o mundo externo.

É ela quem recebe:

  • terminais 3270

  • sessões TCP/IP

  • conexões IPIC

  • usuários

  • requisições

  • logons

  • transações

Ela é literalmente a recepção do Data Center.


A analogia do aeroporto

Imagine um aeroporto.

Você entra.

Vai ao check-in.

Despacha bagagem.

Recebe seu cartão de embarque.

Somente depois segue para o portão correto.

O check-in nunca pilota o avião.

Da mesma forma...

O TOR nunca executa a lógica do programa COBOL.

Ele apenas encaminha.


O verdadeiro trabalho do TOR

Quando um usuário digita:

BANK

Ou

CUST

Ou

MENU

O TOR faz várias coisas quase instantaneamente.

Ele verifica:

  • quem é o usuário

  • de qual terminal veio

  • qual transação foi digitada

  • qual AOR está disponível

  • qual AOR possui menos carga

  • qual política de roteamento deve ser utilizada

Somente depois encaminha a requisição.

Tudo isso acontece em poucos milissegundos.


O grande maestro invisível

Imagine uma orquestra.

O maestro não toca violino.

Não toca trompete.

Não toca piano.

Mesmo assim...

Sem ele...

...a música vira caos.

O TOR é exatamente isso.

Ele coordena.

Distribui.

Organiza.

Sincroniza.


Então quem executa o COBOL?

Entra em cena outro personagem.

O famoso:

AOR

Application-Owning Region.

Agora sim.

Aqui vivem:

  • programas COBOL

  • programas PL/I

  • programas C

  • Java

  • BMS

  • MAPSETs

  • lógica de negócio

O AOR é onde realmente acontece o processamento.

Quando você escreve:

EXEC SQL

ou

EXEC CICS LINK

provavelmente será um AOR quem executará esse código.


O FOR entra na história

Existe ainda outra região.

FOR.

File-Owning Region.

Ela concentra:

VSAM

BDAM

arquivos compartilhados

alguns recursos de acesso

Embora muitas arquiteturas modernas permitam que o AOR acesse diretamente o DB2, em ambientes clássicos era comum utilizar FOR para centralizar determinados recursos físicos.

É uma forma elegante de separar responsabilidades.


O caminho completo de uma transação

Vamos acompanhar uma consulta de saldo.

Imagine João acessando o Internet Banking.

Ele solicita:

SALDO

O que acontece?

Primeiro:

João

↓

TOR

O TOR identifica a transação.

Depois:

↓

AOR-03

O programa COBOL inicia.

EXEC SQL

SELECT SALDO

FROM CONTAS

O DB2 responde.

O COBOL monta a tela.

A resposta retorna.

DB2

↓

AOR

↓

TOR

↓

João

João acredita que falou diretamente com o banco.

Na verdade...

Conversou apenas com o TOR.


O TOR conhece todos os usuários

Ele administra:

  • sessões

  • conexões

  • terminais

  • usuários ativos

  • estado das conexões

Pense nele como um gigantesco porteiro.

Ele sabe exatamente quem entrou no prédio.


O TOR conhece os programas?

Não.

Quem conhece programas é o AOR.

O TOR conhece caminhos.

Não conhece regras de negócio.


A mágica do balanceamento

Agora imagine:

100 mil pessoas consultando saldo.

Sem TOR:

Usuários

↓

AOR

Resultado?

Sobrecarga.

Com TOR:

Usuários

↓

TOR

↓

AOR1

AOR2

AOR3

AOR4

AOR5

Agora a carga fica distribuída.

Esse conceito hoje é chamado de:

Load Balancing.

Mas o CICS fazia isso quando a internet ainda engatinhava.


O CICS inventou a Cloud antes da Cloud?

Curiosamente...

Em vários aspectos...

Sim.

Observe.

Cloud moderna:

Gateway

Load Balancer

Microservices

Database

CICS:

TOR

AOR

FOR

DB2

A semelhança impressiona.

Muitas ideias que hoje parecem revolucionárias já existiam nos grandes mainframes há décadas.


O papel do CICSPlex

Até agora vimos várias regiões.

Mas quem coordena tudo?

Entra em cena o:

CICSPlex SM.

Ele funciona como um cérebro.

Conhece todas as regiões.

Monitora carga.

Falhas.

Disponibilidade.

Prioridades.

Com essas informações o TOR consegue decidir:

"AOR-2 está sobrecarregado."

"Envie para AOR-4."

Tudo automaticamente.


Quando um AOR morre

Imagine que o AOR-3 sofreu um ABEND.

O que acontece?

Sem TOR:

Todos os usuários falham.

Com TOR:

As novas transações passam automaticamente para outro AOR disponível.

Na maioria das vezes o usuário nem percebe.

Esse é um dos grandes segredos da disponibilidade do IBM Z.


O problema chamado Affinity

Nem toda transação pode mudar livremente de AOR.

Imagine um programa antigo.

Ele grava informações temporárias na memória.

Na próxima tela...

Ele espera encontrar aquelas informações.

Se o usuário cair em outro AOR...

Elas desapareceram.

Isso chama-se:

Transaction Affinity.

É um dos grandes desafios na modernização de aplicações CICS.


O que os arquitetos modernos fazem?

Evitam afinidade.

Preferem guardar contexto em:

  • TSQ compartilhada

  • Temporary Storage compartilhada

  • Channels e Containers

  • DB2

  • MQ

  • recursos compartilhados

Assim qualquer AOR pode continuar o processamento.


Curiosidade histórica

Nos anos 70 e 80 era comum existir apenas uma região CICS.

Tudo ficava nela.

Com o crescimento dos bancos isso tornou-se inviável.

Foi então que a IBM começou a incentivar arquiteturas distribuídas dentro do próprio Mainframe.

Nascia a divisão entre:

TOR

AOR

FOR

Mais tarde veio o CICSPlex.

Hoje essa arquitetura é praticamente padrão em ambientes corporativos.


Onde entram os terminais 3270?

Eles normalmente se conectam ao TOR.

Nunca diretamente ao AOR.

Isso simplifica administração.

Caso um AOR precise ser reiniciado...

Os terminais continuam conectados ao TOR.


O que acontece durante uma manutenção?

Imagine que o AOR-2 será atualizado.

O administrador simplesmente retira aquele AOR do roteamento.

O TOR passa a enviar novas transações para:

AOR-1

AOR-3

AOR-4

Quando o AOR-2 retorna...

Ele volta automaticamente ao balanceamento.

Nenhum usuário percebe.

Isso é engenharia de disponibilidade.


O TOR é um Firewall?

Não.

Mas ele funciona como um ponto central de entrada.

Por isso muitas políticas de segurança começam justamente nele.

É muito mais fácil controlar milhares de conexões em poucos TORs do que em dezenas de AORs espalhados.


Como isso aparece para o programador COBOL?

Na maioria das vezes...

Não aparece.

Você escreve:

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

EXEC SQL
SELECT NOME
INTO :WS-NOME
FROM CLIENTE
END-EXEC.

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

Você nem imagina que por trás disso existe uma infraestrutura inteira tomando decisões sobre roteamento, disponibilidade e balanceamento.

Esse é justamente o objetivo da arquitetura: esconder a complexidade da infraestrutura para que o desenvolvedor possa focar na regra de negócio.


Dicas para quem quer trabalhar com CICS

Se você está começando agora, aprenda nesta ordem:

  1. Conceitos básicos do CICS.

  2. Estrutura de uma Region.

  3. PCT, PPT, FCT e TCT.

  4. BMS e Mapsets.

  5. COMMAREA.

  6. Channels e Containers.

  7. Temporary Storage (TSQ) e Transient Data (TDQ).

  8. Syncpoint e recuperação.

  9. TOR, AOR, FOR e CICSPlex SM.

  10. CICS Explorer e ferramentas modernas de administração.

Com essa base, você entenderá não apenas como escrever programas, mas como eles realmente funcionam dentro de um ambiente corporativo.


Easter Egg Bellacosa Mainframe ☕

Imagine que o Data Center seja a Estrela da Morte.

O usuário pilota uma pequena nave e solicita permissão para atracar.

O TOR é o controlador de tráfego do hangar. Ele verifica a identidade da nave, consulta quais docas estão livres e direciona o piloto para o setor correto.

Os AORs são os departamentos especializados: engenharia, armamentos, navegação, inteligência e manutenção dos TIE Fighters.

O FOR é o gigantesco arquivo imperial, onde ficam armazenados todos os planos secretos, documentos e registros.

O DB2 é o Holocron de dados do Império, contendo milhões de informações críticas.

Enquanto isso, o CICSPlex SM é o Grande Almirante Thrawn observando toda a frota em um enorme mapa holográfico, redistribuindo recursos e garantindo que nenhuma região fique sobrecarregada.

O piloto acredita que falou apenas com uma porta automática. Na realidade, dezenas de sistemas trabalharam em perfeita sincronia antes que o hangar sequer abrisse.


Conclusão: a genialidade invisível do CICS

O Terminal-Owning Region (TOR) é uma das peças mais elegantes da arquitetura CICS. Embora raramente execute uma única linha de código COBOL, ele é responsável por tornar possível o funcionamento de ambientes que atendem milhões de usuários diariamente.

Ao separar a recepção das conexões (TOR) do processamento da lógica (AOR) e, quando necessário, da administração dos recursos de dados (FOR), o CICS alcança um nível de escalabilidade, disponibilidade e organização que continua impressionando mesmo quando comparado às arquiteturas modernas de microsserviços.

Para o programador COBOL iniciante, entender essa divisão muda completamente a forma de enxergar o Mainframe. Você deixa de ver apenas um programa executando comandos EXEC CICS e passa a compreender que existe uma verdadeira metrópole digital funcionando nos bastidores, onde cada região tem uma missão específica e todas cooperam para entregar respostas em frações de segundo.

No fim das contas, o TOR é como a recepção de um hotel cinco estrelas: ninguém vai ao hotel para conversar com a recepcionista, mas sem ela a experiência inteira deixaria de funcionar. E essa é uma das maiores lições da arquitetura IBM Z: os sistemas mais robustos não dependem de um componente fazer tudo, mas de muitos componentes fazendo exatamente aquilo em que são especialistas.


terça-feira, 13 de novembro de 2018

O Mistério da Rota Invisível : Quando um Jovem Programador COBOL Descobriu que Seu Programa Nunca Escolhia Sozinho Onde Ser Executado

 

Bellacosa Mainframe e o misterio da rota invisivel

☕ Um Café no Bellacosa Mainframe

O Mistério da Rota Invisível

Quando um Jovem Programador COBOL Descobriu que Seu Programa Nunca Escolhia Sozinho Onde Ser Executado

"Alguns acreditam que uma transação CICS entra em um computador e simplesmente é executada. Os veteranos sabem que, antes de qualquer linha de COBOL ganhar vida, existe um juiz invisível decidindo seu destino."

Naquela manhã chuvosa, o velho relógio marcava 6h17 quando Arthur Bellacosa empurrou a pesada porta metálica do CPD.

As luzes ainda estavam apagadas.

O ar tinha aquele cheiro inconfundível de equipamentos eletrônicos funcionando há décadas.

No fundo da sala, enormes gabinetes IBM piscavam silenciosamente.

Era como entrar em uma biblioteca onde os livros respiravam.

O operador noturno apenas levantou os olhos.

— Você veio cedo...

— Recebi um chamado estranho.

— Algum ABEND?

— Não...

— Muito pior.

— As transações começaram a aparecer em regiões diferentes... sem que ninguém mudasse uma única linha de configuração.

O operador sorriu.

— Então finalmente chegou a hora...

— Hora de conhecer o maior segredo do CICSPlex.

Na parede havia apenas um pequeno papel.

Escrito à máquina.

DTR

Nada mais.

E assim começava um dos maiores mistérios do universo CICS.


O Mistério da Região Fantasma

Todo programador COBOL iniciante imagina algo parecido com isto:

Usuário

↓

Programa COBOL

↓

Resposta

Parece lógico.

Parece simples.

Mas está completamente errado.

Na realidade existe uma verdadeira cidade funcionando atrás daquela tela verde.

Imagine um shopping gigantesco.

Existem dezenas de lojas.

Centenas de funcionários.

Elevadores.

Corredores.

Segurança.

Central de monitoramento.

Agora substitua tudo isso por regiões CICS.

Você começa a entender a dimensão do problema.

Quando um cliente consulta seu saldo bancário...

Quem decide qual computador executará aquele COBOL?

Não é o usuário.

Não é o terminal.

Nem o próprio programa.

Existe um personagem escondido.

Um mordomo.

Um maestro.

Um controlador de tráfego.

Seu nome:

Dynamic Transaction Routing.


A Primeira Grande Mentira

Durante décadas muitos iniciantes acreditaram:

"Minha transação sempre executa na mesma região."

Essa afirmação era verdadeira...

Em 1985.

Hoje?

Quase nunca.

Nos grandes bancos existem:

  • dezenas de TOR

  • dezenas de AOR

  • múltiplas FOR

  • regiões WUI

  • regiões CMAS

  • milhares de usuários simultâneos

Se todos fossem enviados para uma única AOR...

O resultado seria um desastre.


Imagine um Restaurante

Imagine um restaurante famoso.

Chegam 3.000 clientes.

Existe apenas um garçom.

Caos absoluto.

Agora imagine:

20 garçons.

O gerente observa continuamente:

Quem está livre?

Quem acabou de servir?

Quem possui menos mesas?

Quem está sobrecarregado?

É exatamente isso que o DTR faz.

Ele não envia clientes.

Ele distribui trabalho.


O Cérebro Invisível

Muitos imaginam que o DTR seja apenas um "Load Balancer".

Não.

Essa comparação é injusta.

Um balanceador tradicional enxerga servidores.

O DTR enxerga o universo CICS.

Ele conhece:

  • Tasks

  • Storage

  • CPU

  • AOR

  • TOR

  • Recursos

  • Saúde da região

  • Disponibilidade

  • Workload

  • Afinidade de transações

  • Estado operacional

É quase como se tivesse consciência do ambiente.

Quem fornece essa inteligência?

O famoso:

CICSPlex SM

Pense nele como o cérebro.

O DTR é uma das decisões tomadas por esse cérebro.


O Julgamento Invisível

Toda vez que uma transação nasce...

Existe um julgamento.

A cena lembra um tribunal noir.

O juiz pergunta:

— Região AOR-1...

Como anda sua CPU?

— 91%.

— Próxima.

— AOR-2?

— Apenas 44%.

— Memória?

— Excelente.

— Storage?

— Livre.

— Recursos?

— Todos disponíveis.

— Banco?

— Conectado.

O martelo bate.

"A próxima transação irá para AOR-2."

Tudo isso acontece em frações de segundo.

Sem intervenção humana.


A Cidade Secreta

Imagine uma cidade.

          TOR

      /    |    \

   AOR1 AOR2 AOR3

        |

      DB2

O usuário vê apenas a porta da cidade.

Mas dentro dela existe uma logística gigantesca.

TOR recebe visitantes.

AOR trabalha.

FOR protege arquivos.

Db2 guarda informações.

VSAM armazena registros.

MQ transporta mensagens.

E alguém coordena tudo.


O Segredo dos 35%

No infográfico vimos um exemplo interessante.

35%

35%

30%

Muitos acreditam que isso seja um algoritmo fixo.

Não é.

Foi apenas um exemplo didático.

Na prática talvez tenhamos:

42%

27%

31%

Ou

18%

51%

31%

Tudo depende da situação daquele instante.

O DTR não trabalha com igualdade.

Ele trabalha com eficiência.


O Maior Poder do DTR

Imagine:

AOR-2 sofreu um problema.

Sem DTR:

Usuários

↓

Erro

Com DTR:

AOR-2

OFFLINE

O CICSPlex praticamente diz:

— Ignorem essa região.

Novas transações?

↓

AOR-1

↓

AOR-3

Os usuários nem percebem.

É quase mágica.

Mas é engenharia.


A Diferença Entre Inteligência e Teimosia

Static Routing é teimoso.

Ele pensa:

Sempre foi AOR-1.

Sempre será AOR-1.

Mesmo que ela esteja sufocando.

Já o Dynamic Routing pergunta:

"Quem consegue responder mais rápido AGORA?"

É uma filosofia completamente diferente.


O Que o DTR Observa?

Aqui mora um dos maiores segredos.

Não basta verificar se a região está ligada.

Ela precisa estar saudável.

Imagine um hospital.

Está aberto.

Mas não possui médicos.

Vale a pena mandar pacientes?

Claro que não.

O mesmo ocorre no CICS.

Ele observa muito mais do que "ON" ou "OFF".

Entre diversos fatores estão:

  • disponibilidade

  • carga atual

  • quantidade de tasks

  • utilização de CPU

  • uso de armazenamento

  • estado dos recursos

  • tempo de resposta

  • saúde operacional

É um diagnóstico constante.


O Detetive Nunca Dorme

Uma curiosidade pouco comentada.

O DTR nunca "memoriza" para sempre.

Ele está constantemente reavaliando.

A próxima transação pode seguir um caminho completamente diferente da anterior.

Mesmo sendo exatamente a mesma transação.

Isso surpreende muitos iniciantes.


Um Banco de Verdade

Imagine um PIX.

Outro cliente faz TED.

Outro consulta saldo.

Outro paga boleto.

Outro desbloqueia cartão.

Mais outro faz um empréstimo.

Tudo praticamente ao mesmo tempo.

Cada operação pode seguir para regiões diferentes.

Mas o cliente acredita que tudo aconteceu em um único computador.

Essa ilusão é um dos grandes sucessos da arquitetura CICS.


O COBOL Não Faz Ideia

Outro detalhe fascinante.

O programa COBOL normalmente não sabe em qual região está.

Ele simplesmente executa.

Quem escolheu aquela região?

O DTR.

É como entrar em um táxi de olhos vendados.

Você apenas chega ao destino.


Existe Magia?

Não.

Existe arquitetura.

Décadas de arquitetura.

A IBM começou a desenvolver mecanismos sofisticados de balanceamento e alta disponibilidade muito antes da popularização da computação em nuvem.

Conceitos que hoje vemos em Kubernetes, service mesh e orquestração distribuída já eram tratados em ambientes corporativos IBM Z com foco em disponibilidade, isolamento de falhas e continuidade do serviço.


Um Easter Egg para os Veteranos

Existe uma brincadeira antiga entre operadores de CPD.

"Quando tudo funciona ninguém lembra que o CICSPlex existe.

Quando ele para...

Todo mundo aprende rapidamente o que ele fazia."

Poucas frases resumem tão bem a importância dessa camada invisível.


Outro Easter Egg

Nos romances policiais sempre existe um personagem que nunca chama atenção.

O mordomo.

No final...

Descobre-se que ele esteve presente em todas as cenas.

O DTR é exatamente esse mordomo.

Você raramente pensa nele.

Mas praticamente toda transação moderna passa por suas decisões.


Sherlock Holmes no CPD

Sherlock observava o painel.

Watson perguntou:

— Como sabe que a transação foi para AOR-3?

Holmes respondeu:

— Elementar.

— A CPU da AOR-1 estava elevada.

— A AOR-2 perdeu conectividade.

— Restava apenas uma escolha racional.

Watson sorriu.

— Então foi dedução?

Holmes respondeu:

— Não.

Foi exatamente o que o DTR faria.


Curiosidades que Pouca Gente Conhece

O DTR não nasceu para distribuir igualmente.

Ele nasceu para manter o ambiente funcionando.

São objetivos diferentes.


Alta disponibilidade não significa ausência de falhas.

Significa continuar operando apesar delas.

Essa é uma das maiores lições da engenharia de sistemas críticos.


Adicionar novas AORs pode aumentar a capacidade sem alterar o código COBOL.

Em muitos cenários, a lógica de negócio permanece a mesma; o ganho vem da infraestrutura, que passa a distribuir melhor as requisições.


O usuário nunca percebe.

Para ele:

Enter

↓

Resposta

Nos bastidores aconteceram dezenas de decisões.


Dicas para quem está começando

Se você pretende trabalhar com CICS profissionalmente, siga uma sequência de estudos que faz toda a diferença:

  1. Aprenda primeiro o ciclo de vida de uma transação CICS.

  2. Entenda a diferença entre TOR, AOR e FOR.

  3. Estude o papel do CICSPlex SM como gerenciador do ambiente.

  4. Depois mergulhe em Dynamic Transaction Routing (DTR) e compare-o com o roteamento estático.

  5. Familiarize-se com ferramentas de monitoramento, como SMF, RMF e os recursos do próprio CICS, para compreender como desempenho e disponibilidade são acompanhados na prática.

  6. Por fim, explore conceitos de afinidade de transações (transaction affinity), fundamentais para entender por que algumas cargas podem ou não ser distribuídas livremente entre diferentes AORs.


O Verdadeiro Mistério

No fim daquela manhã, Arthur Bellacosa desligou a lanterna.

Olhou novamente para os enormes gabinetes IBM.

Agora compreendia.

As transações nunca haviam escolhido sozinhas onde seriam executadas.

Sempre existira alguém tomando aquela decisão.

Silenciosamente.

Sem receber aplausos.

Sem aparecer nas telas dos usuários.

Sem sequer ser lembrado pelos programadores iniciantes.

Um maestro invisível.

Um juiz imparcial.

Um detetive que investigava milhares de cenas por segundo antes de decidir qual caminho cada transação deveria seguir.

Enquanto milhões de pessoas consultavam saldos, faziam PIX, compravam passagens aéreas, autorizavam pagamentos e movimentavam a economia mundial, aquele guardião permanecia nas sombras, avaliando carga, disponibilidade e saúde das regiões CICS para manter tudo funcionando como um único organismo.

Talvez esse seja o maior segredo do IBM Z.

Os usuários enxergam apenas uma aplicação.

Os programadores enxergam um programa COBOL.

Os operadores enxergam algumas regiões CICS.

Mas, nas profundezas do CPD, existe uma inteligência silenciosa conectando todas essas peças e garantindo que cada transação encontre o melhor destino possível.

E se um dia você entrar em uma sala de computadores antes do amanhecer, ouvir apenas o zumbido constante dos equipamentos e encontrar, preso ao painel de controle, um pequeno papel com três letras datilografadas...

DTR.

Não o ignore.

Porque, naquele instante, você terá encontrado um dos maiores detetives invisíveis da história da computação corporativa.


quarta-feira, 17 de outubro de 2018

IBM Mainframe Discovery : Capítulo X — A Consciência Coletiva da Galáxia

 

Bellacosa Mainframe apresenta ibm mainframe parte x

☕ Um Café no Bellacosa Mainframe

Capítulo X — A Consciência Coletiva da Galáxia

Parallel Sysplex e Coupling Facility: Quando Várias Naves Pensam Como Uma Só 


SÉTIMA REGRA DAS GRANDES FEDERAÇÕES

Se uma única nave consegue salvar uma colônia...

...imagine o que uma frota inteira pode fazer.

Mas existe um detalhe importante.

Se cada nave tomar decisões sozinha...

mais cedo ou mais tarde acontecerá um desastre.

Uma decide pousar.

Outra decide decolar.

Outra resolve desligar o escudo.

Outra acredita que o combustível ainda está cheio.

Resultado?

Caos.

Então surge uma pergunta extraordinária.

Como fazer dezenas de computadores trabalharem como se fossem apenas um?

Durante décadas essa pergunta parecia impossível.

Até que a IBM respondeu.

Seu nome é:

Parallel Sysplex.


O Sonho de Toda Civilização

Imagine um planeta inteiro.

Existem milhares de cidades.

Cada uma possui:

  • hospitais;

  • bancos;

  • universidades;

  • aeroportos;

  • centros de pesquisa.

Agora imagine que todas compartilham:

o mesmo mapa.

o mesmo relógio.

as mesmas informações.

os mesmos registros.

Sem atrasos.

Sem conflitos.

Sem duplicidade.

É exatamente isso que o Parallel Sysplex procura construir.


Antes do Sysplex

Voltemos alguns anos.

Imagine um banco com dois computadores.

Se um falha...

o outro assume.

Parece ótimo.

Até surgir a pergunta:

"Como ambos saberão exatamente qual foi a última transação realizada?"

Se um acreditar que o saldo é:

R$ 500,00

e o outro acreditar que é:

R$ 800,00

temos um pequeno problema.

Na verdade...

um gigantesco problema.


O Grande Equívoco

Muita gente acredita que basta conectar computadores usando uma rede.

Infelizmente...

não funciona assim.

Conectar computadores é relativamente fácil.

Fazer com que todos pensem exatamente da mesma maneira...

é extremamente difícil.


Imagine Uma Frota Estelar

Agora visualize dez enormes naves.

Cada uma possui:

  • capitão;

  • tripulação;

  • computadores;

  • laboratórios;

  • hangares.

Durante uma missão...

todas precisam compartilhar:

cartas estelares.

posição.

combustível.

ordens.

alvos.

Sem divergências.

Sem atrasos.

Sem confusão.

Essa frota representa um Parallel Sysplex.


O Conselho Galáctico

Toda federação possui um conselho.

No IBM Z esse conselho chama-se:

Coupling Facility.

Imagine um gigantesco centro diplomático.

Nenhuma nave manda nele.

Ele apenas coordena.

Armazena informações compartilhadas.

Resolve disputas.

Mantém todos sincronizados.

Segundo Wilhelm G. Spruth, a Coupling Facility é um elemento especializado responsável pelo compartilhamento de dados, sincronização e coordenação entre múltiplos sistemas integrantes de um Parallel Sysplex.


O Grande Livro da Federação

Imagine um enorme livro.

Sempre que uma nave faz alguma alteração importante...

ela registra nesse livro.

As demais consultam imediatamente.

Resultado?

Todos passam a enxergar exatamente a mesma realidade.

A Coupling Facility funciona de forma semelhante.

Ela mantém estruturas compartilhadas utilizadas por diferentes sistemas.


O Bibliotecário Cósmico

Imagine uma biblioteca universal.

Milhares de pesquisadores desejam consultar o mesmo livro.

Ao mesmo tempo.

Sem organização...

seria impossível.

A Coupling Facility atua como um bibliotecário extremamente disciplinado.

Ela controla quem pode:

ler.

escrever.

atualizar.

liberar.

Tudo acontece em microssegundos.


Cache Compartilhado

Agora imagine que cada nave possui sua própria biblioteca.

Mas existe também uma biblioteca central.

Quando alguém altera um livro...

todas as demais são avisadas imediatamente.

Esse conceito é conhecido como:

Cache Coherency.

No Parallel Sysplex, mecanismos de cache compartilhado evitam que diferentes sistemas trabalhem com informações inconsistentes, especialmente em ambientes Db2 e outros subsistemas críticos.


Lock Structure — O Semáforo da Galáxia

Imagine um único banheiro.

Mil pessoas desejam entrar.

Se não existir uma fila...

o resultado será desastroso.

A Coupling Facility possui estruturas chamadas:

Lock Structures.

Elas controlam acesso concorrente.

Quem entra.

Quem espera.

Quem libera.

Tudo cuidadosamente organizado.


List Structure — O Quadro de Avisos

Agora imagine um enorme mural.

Ali ficam:

mensagens.

eventos.

listas.

notificações.

Qualquer nave pode consultar.

Ou registrar novas informações.

Esse papel é desempenhado pelas:

List Structures.


Cache Structure — A Biblioteca Compartilhada

Outra estrutura fascinante.

Imagine que dez cidades consultam continuamente o mesmo mapa.

Seria absurdo manter dez cópias independentes.

A Cache Structure resolve justamente esse problema.

Ela reduz acessos desnecessários ao armazenamento permanente.

Mais velocidade.

Menos espera.


Quem É o Capitão?

Curiosamente...

não existe um comandante supremo.

Cada sistema continua executando suas próprias aplicações.

Mas todos cooperam.

É uma federação.

Não um império.


Se Uma Nave Explodir?

Chegamos à pergunta mais importante.

Imagine que uma nave desapareça.

O restante da frota faz o quê?

Entra em pânico?

Não.

Continua a missão.

Essa é uma das maiores forças do Parallel Sysplex.

Quando um sistema falha...

outros podem continuar atendendo usuários.

Com impacto mínimo.

Spruth destaca justamente a capacidade do Sysplex de oferecer alta disponibilidade e continuidade de serviço através da cooperação entre múltiplos sistemas.


O Cliente Nem Percebe

Imagine comprar uma passagem aérea.

Durante sua operação...

um computador inteiro sofre pane.

Mesmo assim...

a tela continua funcionando normalmente.

Isso parece impossível.

Mas é exatamente esse tipo de experiência que o Parallel Sysplex procura oferecer.


Sysplex Timer

Agora imagine uma federação inteira.

Cada planeta utiliza um relógio diferente.

Seria impossível coordenar missões.

Durante muitos anos existiu o:

Sysplex Timer.

Sua missão era garantir que todos os sistemas compartilhassem uma noção consistente de tempo.

Hoje essa função evoluiu para mecanismos modernos de sincronização de tempo baseados na arquitetura IBM Z, mas o princípio permanece: todos precisam concordar sobre "agora".


XCF — A Rede Diplomática

Como as naves conversam?

Existe um serviço chamado:

XCF

(Cross-system Coupling Facility).

Imagine um gigantesco sistema de comunicações diplomáticas.

Mensagens viajam continuamente entre sistemas.

Rapidamente.

Com segurança.

Sem depender de protocolos convencionais de rede.


Balanceamento de Missões

Imagine um aeroporto.

Uma pista ficou congestionada.

Imediatamente os aviões são direcionados para outra.

No Sysplex ocorre algo semelhante.

Novas conexões podem ser distribuídas automaticamente para sistemas menos ocupados.

O usuário raramente percebe.


O Banco Nunca Fecha

Durante décadas existia um enorme problema.

Atualizar software significava parar tudo.

No universo Sysplex surgiu outra ideia.

Atualize uma nave.

As outras continuam trabalhando.

Depois atualize a próxima.

E assim sucessivamente.

Isso reduz significativamente indisponibilidades planejadas.


Compartilhando Discos

Imagine cinco bibliotecas utilizando exatamente os mesmos livros.

Parece perigoso.

Só funciona porque existe organização.

O Parallel Sysplex permite compartilhamento de armazenamento entre sistemas mantendo integridade e coordenação de acesso.

Sem isso...

o desastre seria inevitável.


O Que Diz Spruth?

Wilhelm G. Spruth apresenta o Parallel Sysplex como uma das maiores diferenciações da arquitetura IBM Z.

Não se trata apenas de conectar computadores.

Trata-se de construir um ambiente onde múltiplos sistemas cooperam como uma única plataforma lógica, aumentando disponibilidade, capacidade de processamento e continuidade operacional.


O Que Mudou Desde 2010?

Desde a publicação do relatório, o universo Sysplex continuou evoluindo.

Hoje encontramos:

  • Coupling Facilities muito mais rápidas;

  • links de baixíssima latência;

  • GDPS ainda mais sofisticado;

  • integração profunda com Db2 Data Sharing;

  • IMS Shared Queues;

  • CICSplex SM;

  • Workload Manager mais inteligente;

  • automação baseada em IA;

  • recuperação ainda mais rápida.

Mas a filosofia permanece rigorosamente igual.

Uma frota é mais resistente do que uma única nave.


Uma Lição Para Além da Tecnologia

Talvez este seja um dos capítulos mais humanos de todo o livro.

Nenhuma grande civilização prospera porque todos trabalham isoladamente.

Ela prospera porque aprende a compartilhar.

Conhecimento.

Recursos.

Responsabilidades.

Confiança.

O Parallel Sysplex nos lembra que cooperação bem organizada supera competição desorganizada.

Vale para computadores.

Vale para empresas.

Vale para equipes.

E talvez...

valha até para civilizações inteiras.


Curiosidades do Diário de Bordo

🌌 O Parallel Sysplex permite que diversos sistemas IBM Z atuem como uma única plataforma lógica para muitas cargas de trabalho.

🚀 A Coupling Facility não executa aplicações de negócio; sua especialidade é coordenar, sincronizar e compartilhar informações entre os sistemas.

📚 Estruturas como Lock, List e Cache funcionam como mecanismos especializados de cooperação, garantindo consistência e desempenho.

🛰️ Muitas arquiteturas modernas de sistemas distribuídos perseguem objetivos semelhantes — consistência, escalabilidade e alta disponibilidade — utilizando técnicas diferentes para enfrentar os mesmos desafios fundamentais.


Diário de Bordo do Padawan COBOL

Antes de deixar a Federação Galáctica do Parallel Sysplex, registre estas coordenadas no seu Holocron Técnico:

✅ Um cluster eficiente depende tanto da comunicação quanto do processamento.

✅ A Coupling Facility atua como um centro especializado de coordenação, mantendo os sistemas sincronizados.

✅ O Parallel Sysplex transforma vários computadores físicos em uma plataforma lógica altamente disponível e escalável.

✅ A verdadeira força de uma federação não está no tamanho de cada nave, mas na capacidade de todas cooperarem como se compartilhassem uma única consciência.


Missão Seguinte

No próximo capítulo seguiremos para um dos setores mais estratégicos da nave: o Workload Manager (WLM).

Descobriremos por que, no IBM Z, não é o programa que decide quando executará. Existe um verdadeiro Almirante da Frota, capaz de observar milhares de aplicações, prever congestionamentos e redistribuir recursos em tempo real para que as missões mais importantes sempre cheguem primeiro ao seu destino. Esse é o momento em que a arquitetura deixa de apenas reagir aos acontecimentos e passa a governar inteligentemente toda a galáxia computacional.

☕ Um Café no Bellacosa Mainframe

O Guia Galáctico do IBM Z

Dezoito capítulos e uma conclusão reunidos em um painel interativo. Escolha uma missão, abra no visor e continue explorando diretamente no artigo original.

Não entre em pânico: se o Blogger impedir a exibição dentro do iframe, use “Abrir artigo”. Os links diretos continuam visíveis para leitores e motores de busca.
01

Capítulo I — Não Entre em Pânico!

Leia no visor ou abra a publicação original.

Abrir artigo
02

Capítulo II — A Planta da Nave Mais Duradoura da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
03

Capítulo III — A Nave Que Se Recusa a Explodir

Leia no visor ou abra a publicação original.

Abrir artigo
04

Capítulo IV — A Sala dos Cofres Cósmicos

Leia no visor ou abra a publicação original.

Abrir artigo
05

Capítulo V — A Frota Invisível do Transporte Interestelar

Leia no visor ou abra a publicação original.

Abrir artigo
06

Capítulo VI — O Grande Maestro Invisível

Leia no visor ou abra a publicação original.

Abrir artigo
07

Capítulo VII — O Grande Terminal de Embarque da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
08

Capítulo VIII — A Metrópole das Transações Infinitas

Leia no visor ou abra a publicação original.

Abrir artigo
09

Capítulo IX — A Federação das Naves Invisíveis

Leia no visor ou abra a publicação original.

Abrir artigo
10

Capítulo X — A Consciência Coletiva da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
11

Capítulo XI — O Almirante Invisível da Frota

Leia no visor ou abra a publicação original.

Abrir artigo
12

Capítulo XII — A Biblioteca Infinita da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
13

Capítulo XIII — O Serviço Postal Mais Confiável da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
14

Capítulo XIV — O Jardim Secreto da Nave

Leia no visor ou abra a publicação original.

Abrir artigo
15

Capítulo XV — O Tradutor Universal da Federação

Leia no visor ou abra a publicação original.

Abrir artigo
16

Capítulo XVI — A Fábrica Automática da Federação

Leia no visor ou abra a publicação original.

Abrir artigo
17

Capítulo XVII — A Última Fronteira Nunca Foi o Espaço

Leia no visor ou abra a publicação original.

Abrir artigo
18

Capítulo XVIII — O Guia Nunca Terminou

Leia no visor ou abra a publicação original.

Abrir artigo
19

Conclusão — Não Entre em Pânico... A Jornada Está Apenas Começando

Leia no visor ou abra a publicação original.

Abrir artigo

sábado, 13 de janeiro de 2018

O Portal das Mil Regiões : Atravesse o Stargate e Descobre que o Verdadeiro Guardião da Galáxia Atende pelo Nome de TOR

 

Bellacosa Mainframe CICS TOR o portal das mil regioes

☕ Um Café no Bellacosa Mainframe

O Portal das Mil Regiões

Quando um Programador COBOL Atravessa o Stargate e Descobre que o Verdadeiro Guardião da Galáxia Atende pelo Nome de TOR

"Há milhares de anos, uma antiga tecnologia foi construída para conectar mundos distantes. Não transportava pessoas... transportava transações."

Na série Stargate SG-1, uma equipe atravessa um gigantesco portal para visitar outros planetas. O Stargate não decide o que acontecerá do outro lado. Ele não derrota inimigos. Não constrói cidades. Não realiza experimentos científicos.

Ele apenas abre o caminho.

Agora imagine que, em vez de planetas, cada destino seja uma região CICS.

Em vez de uma equipe SG-1...

Temos um terminal 3270.

Em vez do Comando Stargate...

Temos um CICSplex.

E em vez do anel de endereçamento...

Temos um TOR (Terminal-Owning Region).

Hoje vamos investigar uma das arquiteturas mais elegantes já criadas na história da computação corporativa.

Prepare sua IDC (Identification Card), ajuste seu terminal 3270 e digite a transação.

O portal acaba de ser ativado.


Capítulo 1 — O Mistério da Porta que Nunca Executa Nada

Todo iniciante em CICS costuma imaginar uma arquitetura muito simples.

Terminal

    │

    ▼

Programa COBOL

    │

    ▼

DB2

Parece lógico.

O usuário digita uma transação.

O programa executa.

O banco responde.

Fim.

Mas um banco internacional não atende cinquenta clientes.

Ele atende milhões.

Uma companhia aérea não possui cem reservas.

Ela possui centenas de milhares acontecendo simultaneamente.

Uma seguradora pode manter milhares de operadores conectados durante todo o expediente.

Será que um único CICS suportaria tudo isso?

Claro que não.

Foi exatamente aí que nasceu uma das maiores ideias da engenharia de software corporativa.

Separar responsabilidades.


Capítulo 2 — O Programa Nunca Conhece o Cliente

Essa afirmação parece absurda.

Mas pense cuidadosamente.

O programa COBOL realmente conhece o usuário?

Na maioria dos grandes ambientes...

Não.

Quem conversa com o terminal é o TOR.

O COBOL apenas recebe uma requisição pronta para processamento.

Isso é parecido com um hospital.

Você conversa primeiro com a recepção.

Não diretamente com o cirurgião.

O recepcionista pergunta:

— Nome?

— Documento?

— Convênio?

— Qual o problema?

Somente depois você é encaminhado ao especialista.

O TOR faz exatamente isso.

Ele recebe.

Identifica.

Controla.

Encaminha.

Mas nunca faz a cirurgia.


Capítulo 3 — O Stargate da IBM

Na série Stargate existe um equipamento gigantesco.

Quando o endereço é discado...

O portal abre.

Terra

↓

Stargate

↓

Abydos

Observe algo interessante.

O Stargate nunca constrói uma pirâmide.

Nunca derrota Goa'ulds.

Nunca realiza pesquisas.

Ele apenas conecta dois pontos.

O TOR possui exatamente esse papel.

Usuário

↓

TOR

↓

AOR

Ele abre o caminho.

Nada mais.

Nada menos.

Essa simplicidade esconde uma engenharia monumental.


Capítulo 4 — O CICSplex é uma Galáxia

O erro mais comum dos iniciantes é imaginar que existe apenas um CICS.

Na realidade...

Os grandes bancos possuem dezenas.

Às vezes centenas.

Imagine algo assim:

               TOR-1

                  │

      ┌───────────┼──────────┐

      ▼           ▼          ▼

    AOR1       AOR2       AOR3

      │           │          │

      └──────┬────┴──────────┘

             ▼

         DB2 / MQ / VSAM

Agora imagine multiplicar isso por vinte.

Ou cinquenta.

Ou cem regiões.

Esse conjunto recebe o nome de CICSplex.

É literalmente uma galáxia de CICS trabalhando em conjunto.


Capítulo 5 — Quem é o Dono do Terminal?

O nome TOR já entrega sua missão.

Terminal-Owning Region.

Owning.

Proprietário.

Quem possui o terminal?

O TOR.

Quem controla sessões?

O TOR.

Quem mantém conexões?

O TOR.

Quem administra comunicação?

O TOR.

Quem executa COBOL?

Não.

Esse trabalho pertence ao AOR.


Capítulo 6 — O AOR é o SG-1

Na série Stargate existe a equipe de exploração.

Ela entra pelo portal.

Resolve problemas.

Enfrenta inimigos.

Retorna para casa.

No CICS...

Essa equipe é o AOR.

Application-Owning Region.

Ele realmente trabalha.

Executa:

  • COBOL

  • PL/I

  • C

  • Java

  • EXEC CICS

  • EXEC SQL

  • MQ

  • VSAM

Enquanto isso...

O TOR continua recebendo novas solicitações.


Capítulo 7 — O Endereço Galáctico

No Stargate existe um endereço formado por símbolos.

No CICS existe algo parecido.

Quando o usuário digita:

SALD

ou

EXTR

ou

PAGT

O TOR consulta suas tabelas.

Descobre:

"Essa transação pertence ao AOR-2."

Pronto.

A viagem começa.


Capítulo 8 — A Viagem da Transação

Vamos acompanhar uma única consulta de saldo.

Cliente

↓

3270

↓

TOR

↓

AOR

↓

COBOL

↓

DB2

↓

COBOL

↓

TOR

↓

Cliente

Parece simples.

Mas internamente dezenas de componentes cooperam.

É uma verdadeira coreografia.


Capítulo 9 — O TOR Nunca Consulta o Banco

Outra dúvida clássica.

"O TOR faz SELECT?"

Não.

Quem executa:

EXEC SQL
SELECT

é o programa COBOL.

Executando dentro do AOR.

O TOR nem sabe qual tabela foi acessada.

Ele apenas entrega e devolve a mensagem.


Capítulo 10 — O Grande Diretor Invisível

Quem decide qual AOR receberá a transação?

Em muitos ambientes...

O CICSPlex System Manager (CPSM).

Ele observa tudo.

CPU.

Memória.

Disponibilidade.

Carga.

Afinidade.

Estado das regiões.

Ele funciona como o General George Hammond observando dezenas de missões simultaneamente.

Se um AOR estiver sobrecarregado...

Outra região será escolhida.

Automaticamente.


Capítulo 11 — O Segredo da Afinidade

Imagine um cliente preenchendo um financiamento.

Tela 1.

Tela 2.

Tela 3.

Tela 4.

Durante o preenchimento...

Os dados permanecem temporariamente em memória.

Se o usuário fosse enviado para outro AOR no meio da operação...

Toda a conversa poderia ser perdida.

Por isso existe um conceito chamado Transaction Affinity.

Ela garante que determinadas conversas permaneçam sempre na mesma região de aplicação.

É como atravessar o Stargate com toda a equipe SG-1. Você não quer que metade da equipe apareça em outro planeta.


Capítulo 12 — O Load Balancer Antes da Internet

Hoje ouvimos falar em:

  • Kubernetes

  • Ingress Controller

  • API Gateway

  • Reverse Proxy

  • Load Balancer

Curiosamente...

O CICS fazia algo semelhante muito antes da computação em nuvem.

Internet

↓

Load Balancer

↓

Servidor A

Servidor B

Servidor C

No CICS:

Usuário

↓

TOR

↓

AOR-1

AOR-2

AOR-3

A ideia é praticamente idêntica.


Capítulo 13 — O Banco Nunca Fecha

Imagine um banco mundial.

Enquanto o Brasil dorme...

A Ásia está trabalhando.

Depois vem a Europa.

Depois a América.

O processamento nunca para.

Por isso diversos TORs podem existir simultaneamente.

TOR-1

TOR-2

TOR-3

TOR-4

Todos atendendo usuários.

Todos distribuindo carga.

Todos protegendo o ambiente.


Capítulo 14 — Um Dia na Vida de uma Transação

08:01.

O cliente consulta saldo.

08:01:00.003.

O TOR recebe.

08:01:00.005.

O CPSM encontra o melhor AOR.

08:01:00.007.

O COBOL inicia.

08:01:00.010.

O Db2 responde.

08:01:00.014.

A tela volta ao terminal.

Tudo aconteceu em poucos milissegundos.

O usuário acredita que apenas "o computador respondeu".

Na realidade...

Uma pequena frota inteira trabalhou para produzir aquela resposta.


Capítulo 15 — Easter Egg nº 1

No universo Stargate existe um dispositivo chamado DHD (Dial Home Device).

Ele não transporta ninguém.

Apenas estabelece a conexão.

O TOR desempenha um papel semelhante.

Ele não processa a lógica.

Ele estabelece o caminho.


Capítulo 16 — Easter Egg nº 2

Os fãs de Stargate lembram que cada planeta possui um endereço único.

Em CICS...

Cada transação também possui sua identidade.

CESN

CEMT

CECI

CEDA

CEDF

Cada uma "abre um portal" para uma função diferente do ambiente.


Capítulo 17 — Easter Egg nº 3

Os Asgard possuíam computadores extremamente avançados.

Mesmo assim...

Sempre existia um sistema central coordenando tudo.

No CICSplex...

Esse papel lembra o CMAS (CICSPlex Management Address Space), que mantém a visão centralizada das regiões e coopera com o CPSM na administração do ambiente. Ele não executa programas de negócio, mas ajuda a organizar e monitorar todo o ecossistema.


Curiosidades que Impressionam

  • O conceito de separar comunicação da lógica de negócio existe no CICS há décadas, muito antes de termos API Gateways e microsserviços.

  • Um TOR costuma consumir bem menos CPU que um AOR, justamente porque sua função é receber, manter sessões e encaminhar requisições.

  • Grandes bancos podem operar com dezenas de TORs e centenas de AORs, distribuindo milhões de transações por dia.

  • O usuário final jamais percebe por quantas regiões sua solicitação passou. Para ele, existe apenas "o sistema do banco".


Dicas para Quem Está Aprendendo CICS

Se você está iniciando sua jornada, estude os componentes na seguinte ordem:

  1. Entenda como funciona uma região CICS isolada.

  2. Aprenda o ciclo de vida de uma transação (EXEC CICS LINK, RETURN, SYNCPOINT etc.).

  3. Conheça o papel do TOR e do AOR.

  4. Estude os demais tipos de regiões, como FOR (File-Owning Region) e CMAS.

  5. Aprofunde-se em CICSPlex SM, políticas de workload e roteamento dinâmico.

  6. Explore como CICS integra Db2, VSAM, MQ e APIs REST modernas.

Essa sequência ajuda a construir uma visão sólida antes de mergulhar em arquiteturas de alta disponibilidade.


Comparando com Tecnologias Modernas

Arquitetura ModernaMundo CICS
API GatewayTOR
Load BalancerTOR + CPSM
Application ServerAOR
Banco de DadosDb2
File StorageVSAM
Cluster ManagerCICSPlex SM
Control PlaneCMAS
MicrosserviçoPrograma CICS especializado

Essa comparação mostra que muitos conceitos considerados "novos" já existiam no mainframe, apenas com nomes diferentes e décadas de maturidade operacional.


A Mensagem Oculta de Stargate

Existe uma frase recorrente na série:

"Não é o portal que salva a missão. É a equipe que o atravessa."

No CICS acontece algo semelhante.

O TOR é indispensável, mas ele não calcula juros, não atualiza contas, não aprova empréstimos e não processa pagamentos. Seu papel é garantir que cada solicitação encontre a região correta, de forma rápida, segura e confiável.

Essa separação de responsabilidades é um dos pilares que permitiu ao CICS sustentar sistemas críticos por décadas.


Conclusão — O Portal Continua Aberto

Ao terminar este café, você provavelmente nunca mais olhará para um TOR da mesma forma.

Ele não é apenas uma "região de terminais". É o guardião silencioso da entrada do CICSplex, o responsável por manter milhares de conexões organizadas, distribuir a carga entre regiões de aplicação e garantir que cada transação siga pelo melhor caminho.

No universo de Stargate, atravessar o portal era apenas o começo da aventura.

No universo do IBM CICS, atravessar o TOR também é apenas o primeiro passo.

Do outro lado aguardam AORs, FORs, CMAS, Db2, VSAM, MQ, políticas de workload, afinidade de transações e uma arquitetura construída para suportar alguns dos sistemas mais críticos do planeta.

Talvez esse seja o maior segredo do mainframe: sua verdadeira força nunca esteve em uma única máquina ou em um único programa COBOL. Ela sempre esteve na capacidade de dividir responsabilidades entre componentes especializados, trabalhando em perfeita harmonia.

Assim como a equipe SG-1 confiava no Stargate para chegar ao destino certo, milhões de usuários, todos os dias, confiam sem perceber que um discreto TOR abrirá o portal correto para que suas transações cheguem ao lugar exato — e retornem em milissegundos, como se toda essa jornada tivesse acontecido por mágica. É justamente essa "mágica" invisível, fruto de décadas de engenharia refinada, que faz do CICS uma das maiores obras-primas da computação corporativa.

Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...