| Bellacosa Mainframe e uma breve comparação entre Natural e CICS BMS |
☕ Um Café no Bellacosa Mainframe
Natural x CICS BMS para Desenvolvedores COBOL
Entendendo duas filosofias diferentes de construir aplicações Online no Mainframe
Salve jovem Padawan.
Uma das dúvidas mais comuns de quem começa no mundo Mainframe é:
Se eu sei desenvolver online em Natural, já sei desenvolver em CICS?
A resposta curta é:
Não.
A resposta longa é:
Você conhece o objetivo, mas não conhece o mecanismo.
Natural e CICS possuem filosofias completamente diferentes para construir aplicações online.
A grande diferença
Natural é uma plataforma completa.
CICS é um monitor transacional.
Podemos pensar da seguinte maneira:
| Natural | CICS |
|---|---|
| Framework | Monitor Transacional |
| IDE integrada | Ferramentas separadas |
| Tela automática | BMS |
| Segurança integrada | RACF/CICS |
| Navegação nativa | Programada |
| Dicionário Predict | Copybooks |
| Estado mantido pelo Natural | COMMAREA |
| Desenvolvimento RAD | Desenvolvimento explícito |
Arquitetura Natural
Em Natural normalmente temos:
Usuário
↓
Terminal 3270
↓
Natural Runtime
↓
Programa Natural
↓
Predict
↓
Adabas
Natural faz praticamente tudo.
O desenvolvedor apenas escreve:
INPUT
'CPF' CPF
'Nome' NOME
END-INPUT
Pronto.
Tela criada.
Arquitetura CICS
No CICS:
Usuário
↓
3270
↓
BMS
↓
MAPSET
↓
COBOL
↓
COMMAREA
↓
DB2
Tudo é responsabilidade do desenvolvedor.
Natural é quase um framework
Natural lembra.
Django
Rails
PowerBuilder
Oracle Forms
Exemplo Natural
INPUT USING MAP 'CLI001'
END-INPUT
Natural já sabe.
Mapa.
Campos.
Validação.
Cursor.
Ajuda.
PF Keys.
Tudo praticamente pronto.
CICS é uma caixa de ferramentas
CICS fornece:
SEND
RECEIVE
LINK
RETURN
HANDLE
Mas você constrói.
Exemplo
SEND MAP
RECEIVE MAP
VALIDA
CONSULTA DB2
SEND
RETURN
Predict
Aqui está uma grande diferença.
Natural usa Predict.
Predict é um catálogo.
Um dicionário corporativo.
Armazena.
Campos
Programas
Mapas
Arquivos
Views
Documentação
Relacionamentos
Exemplo
CLIENTE
CPF
NOME
ENDERECO
LIMITE
Natural gera automaticamente.
Campos.
Mapas.
Views.
Documentação.
Exemplo
1 CPF
1 NOME
1 CIDADE
Tudo centralizado.
CICS não possui Predict
No CICS.
Criamos.
Copybooks.
Layouts.
BMS.
Manualmente.
Exemplo
COPY CLIENTE.
COPY CLIMAP.
Construção de Menus
Natural
Muito simples.
MENU
1 Consulta
2 Inclusao
3 Alteracao
CICS
Criamos.
MAPSET.
COBOL.
Fluxo.
PF Keys.
Exemplo
MENU01
1 Consultar
2 Incluir
3 Alterar
PF3
Hierarquia de programas
Natural
Quase sempre.
Programa chama programa.
MENU
↓
CLIENTE
↓
CONSULTA
↓
ALTERA
Natural controla.
No CICS.
Mais cuidado.
Podemos usar.
LINK
XCTL
START
LINK
Retorna.
EXEC CICS LINK
PROGRAM('CLI002')
END-EXEC
XCTL
Não retorna.
EXEC CICS XCTL
PROGRAM('MENU')
END-EXEC
Como segregar funções
Boa prática.
MENU
Só navegação.
CLIENTE
Negócio.
DBCLI
DB2.
TELA
BMS.
UTIL
Rotinas.
Exemplo
MENU0001
CLI0001
DBCLI01
UTILCPF
MSGERRO
Segurança
Natural
Muito integrada.
Natural Security.
NSC.
Predict.
Menus.
Perfis.
Exemplo
Usuário João.
Pode.
Consultar.
Não alterar.
Natural faz.
No CICS.
Usamos.
RACF.
Transação.
Programa.
Arquivo.
Fila.
TSQ.
TDQ.
Exemplo
CLI1
CONS
ALT1
ADM1
RACF controla.
Navegação
Natural
Automática.
ENTER.
PF3.
PF12.
Tudo tratado.
CICS.
Manual.
Precisamos verificar.
COPY DFHAID
EVALUATE EIBAID
WHEN DFHPF3
PERFORM SAIR
WHEN DFHPF5
PERFORM REFRESH
END-EVALUATE
BMS
Natural
Mapas do Natural.
CICS
BMS.
MAP
Tela.
MAPSET
Conjunto de telas.
Exemplo
LOGIN
MENU
CLIENTE
CONSULTA
HELP
Mapset.
DFHMSD
Tela.
DFHMDI
Campo.
DFHMDF
PF Keys
Muito importante.
PF1
Ajuda
PF3
Sair
PF5
Atualizar
PF7
Anterior
PF8
Próximo
PF12
Cancelar
No terminal 3270
Emuladores modernos.
PCOMM.
Rocket.
Vista.
x3270.
Teclas mapeadas.
Exemplo.
F3
PF3
F7
PF7
Shift+F12
PF24
Clear
PA1
Attention
PA2
SYSREQ
PA3
Comportamento curioso
No 3270.
ENTER.
Não é.
Carriage Return.
É um.
AID.
Attention Identifier.
CICS recebe.
EIBAID
Natural trata.
Automaticamente.
Uma analogia moderna
Natural é parecido com:
Oracle Forms
PowerBuilder
GeneXus
CICS é parecido com.
HTML
CSS
Javascript
Backend Java
Natural oferece produtividade.
CICS oferece controle.
O que é melhor?
Depende.
Natural é excelente para:
Desenvolvimento rápido.
CRUD.
Adabas.
CICS é excelente para:
Grandes volumes.
Flexibilidade.
Integração.
APIs.
DB2.
MQ.
Minha recomendação para um COBOL Júnior
Aprenda primeiro:
BMS
SEND/RECEIVE
DFHAID
COMMAREA
Pseudo-conversação
LINK/XCTL
TSQ
CEDF
Depois estude:
Natural
Predict
Adabas
Natural Security
Quando você conhecer os dois mundos, perceberá algo interessante:
Natural tenta esconder a complexidade do CICS.
CICS mostra explicitamente como as engrenagens funcionam.
E, para quem deseja realmente entender os bastidores das aplicações bancárias e seguradoras do IBM Z, estudar CICS/BMS costuma ser uma excelente forma de aprender como um sistema transacional corporativo é construído desde a fundação.
Sem comentários:
Enviar um comentário