1

Mainframe, conheça um pouco sobre Sistemas Centrais

#Boas práticas #Arquitetura de Sistemas
Vagner Bellacosa
Vagner Bellacosa

Mainframe


Grande computadores predominantemente oriundos da IBM com grande poder computacional, que esta por traz de todos os processos governamentais, grandes bancos, seguradoras e complexos militares. Trabalha através de processo online via transações assíncronas CICS, síncronas CICS, chamadas JAVA ao DB2 e processamento Batch em janelas de horário.


Hora da naftalina, conversa com o Tiozão: Mainframe


Provavelmente jovem padawan em sua jornada pela Força, mais dia menos dia, ira ouvir menção a Sistemas Legados e outras palavras obscuras que parecem ter saído de um livro de alquimia medieval ou livro de Cabala do Zohar,


Não entre em pânico, este pequeno e despretensioso artigo vamos fazer uma pequena introdução ao mundo do Mainframe, mas prepare-se as vezes me empolgo e solto os dedos no teclado. Tome um bom café mergulhe na história.


História das calculadoras


Os números estão em todas as partes. Contar sem sombra de duvida, uma das primeiras coisas que o homem aprendeu, mesmo antes de escrever, foi contar. Afinal a necessidade faz o ladrão, então imagine o Brutucu com seu belo rebanho de ovelhas la longe na idade das cavernas.


Como saber se algum amigo do alheio ou animal selvagem deu cabo de sua riqueza geradora de leite, carne e lã. Usando os dedos surgiu o sistema digital e para calcular surgiu os risquinhos. Todo os dias o Brutucu contava as ovelhas e confirmava nos risquinhos de carvão. 


Mas nem todo sistema é perfeito, um dia veio uma tempestade e apagou a base de dados do pobre Brucutu, que na época não tinha backup e perdeu todo o controle, frustrado começou a pensar num sistema mais perene.


Um amigo compadecido com o problema de Brucutu sugeriu o uso de pedrinhas num vaso. Assim foi o deploy do Sistema de Ovicalculo versão 2.00, que durou vários milênios até o advento do ábaco.


Curiosidade a palavra cálculo advém de calcullus ou pedrinha em latim. Passado mais alguns milênios surgiram as calculadoras mecânicas. Um dia irei falar do primeiro computador mecânico grego o Antikythera, uma espécie da calculadora, relógio e gps com mais de 3000 anos.


Um salto e tanto.


Babbage e Holleryth no século XIX deram um novo salto criando calculadoras mecânicas avançadas e poderia perder um artigo inteiro falando sobre isso, mas vamos avançar um pouco e chegamos a 1946, que foi a data acordada para o surgimento do computador,


Primeiro Mainframe surgiu em 1946, o famoso Electronic Numerical Integrator And Computer, para os íntimos ENIAC, segundo as mas línguas ele já existia e estava em operações desde 1940, ajudando no esforço de guerra, a seguir veio o Mark I, que já fez sua aparição em nosso artigo em homenagem a Incrível Grace (https://digitalinnovation.one/artigos/dia-9-homenagem-a-incrivel-grace).


IBM Mainframe


Do Mark I para diante entramos na velocidade da luz, ou quase, a velocidade que surgiam novos computadores com processadores hiper velozes, a miniaturização dos componentes e a popularização das linguagens de programação dominaram o mundo, chegando até nossos dias em que existem dezenas de dialetos originados da Linguagem de Maquina original.


Mas afinal o que é Mainframe.


São computadores super poderosos usados para fins militares, governamentais e comerciais com capacidades assombrosas para processar e durante décadas monopolizaram o serviço de processamento de dados. Podemos dizer que IBM foi durante décadas sinônimo de Mainframe, que para os curiosos foi a evolução da empresa criada por Holleryth para calcular o senso americano do século XIX.


A International Business Machines Corporation (IBM) é a empresa que criou quase tudo o que conhecemos de hardware, seus engenheiros trabalham duro para inovar, baseada em quatro pilares : Segurança, Escalabilidade, Resiliência, Portabilidade.


Acessando o mainframe CICS


O CICS (Customer Information Control System) é um sistema de processamento de transações designado tanto para atividade Online como processamento Batch. Ele é um X Tudo no ambiene mainframe, pois tudo roda nele, sendo um SO dentro do SO, gerenciando transações, fazendo chamadas diretamente a CPU, escutando periféricos e gerenciando memória.


No Banco era responsável pela parte online dos processos, onde o usuário através de terminais 3270, inputavam as informações ao sistema central, quando visitar as Casas Bahia ou algum órgão público, verá uma tela preta com letras verdes isso 


Nos tempos atuais o CICS continua coordenando as comunicações entre os servidores WEB e o Sistema Central, fazendo trocas de áreas cada vez mais gigantescas de memoria. Lembro-me nos primórdios que tinham poucos megas para troca de dados, hoje chegamos a gigas trocadas entre as interfaces.


No princípio não havia Banco de Dados


Todo o trabalho era feito em arquivos de inputs e outputs gravados em GDGs, que era uma espécie de controle de versão primordial. Onde a ultima versão era a mais recente e em caso de problemas, solicitávamos o processamento de versões anteriores. Tudo manualmente solicitado ao operador.


Arquivos sequenciais


Por incrível que possa parecer o conceito de banco de dados é uma ideia moderna, na pré-história o trabalho era realizado em arquivos sequenciais, lidos inteiramente e processados sequencialmente. Imagine a trabalheira que era achar alguém no meio de tanta informação. 


Arquivos sequenciais indexados (VSAM)


A evolução seguinte foi um pulo do gato, os arquivos sequenciais ganharam um poder extra, em cada registro foram reservados alguns bytes, para armazenar a chave e foi criado um algoritmo para indexar essas informações de modo há um programa conseguir ler o registro de maneira mais rápido.


Arquivos de listas invertidas 


O próximo passo foi o sistema de listas invertidas, parecidas com as chaves indexadas, mas com mais facilidade de uso, sendo user-friendly para os programadores, dele surgiu o ADABAS, um banco de dados não relacional ou segundo os entendidos quase relacional.


Software AG Adabas


Eu tive o prazer de trabalhar na maior base de dados em Adabas do mundo, segundo os próprios engenheiros da Software AG, que vez por outra visitavam o Banco REAL para acompanhar a performance e funcionamento deste poderoso software gerenciador de Banco de Dados, curiosamente cheguei a trabalhar com macros, pois a princípio o ADABAS não tinha acesso via padrão SQL. Era horrível, muito difícil mesmo arcaico, todos os controles ficavam do lado cliente da solução.


IBM DB2


Com maquinas mais poderosas e a experiência de décadas com o VSAM, o próximo passo foi a criação de um Banco de Dados relacional com acesso proprietário, posteriormente adaptado ao padrão SQL e o resto é história, foi o Banco de Dados mais utilizado no mundo. Curiosamente internamente o DB2 é uma mega estrutura de arquivos VSAM. Um avião supersônico para querys.


Processo Batch


Lembra do que falei sobre os arquivos sequenciais? Nos primórdios os operadores alimentavam as informações em arquivos que ao final do dia era processados e geravam-se novas informações dentro de janelas de horários, que prendiam analistas e programadores caso abendassem, pois a cadeia de processos partidos paravam tudo. Gerando o caos ate o processo ser recuperado, corrigido e liberado a fila de processos.


JCL


JOB Control Languagem é o shell script do mainframe, aqui definimos a ordem de execução, os recursos necessários tais como memoria, prioridade, controle de custos e acesso ao RACF. Nas configurações usamos o nome do programa, o tipo de aplicativo e o acesso a VSAM ou base de dados.


JOB ou cadeia


E um script de script, aqui criamos um caminho critico com as dependências de JCL e a execução em ordem correta dentro de um processo BATCH gerenciado pelo Control-M entre outros schudels 


CONTROL-M


Ferramenta que gera o agendamento e o fluxo de trabalhos do Jobs e ou jcls em um processo batch mainframe. Responsável pela orquestração  e controle das dependências, curiosamente até mesmo as rotinas online, nada são, do que processos batchs auto recursivos que nunc param.


Em minha carreira em mainframe, tive o prazer de fazer um cadeia autorecursivo, que tinha como entrada o arquivo sequencial com todos os fontes de Natural e seu processo extraia um programa e enfileirava um jcl para formatar o arquivo de saída com o nome do programa e sua estrutura.


ABEND


O termo técnico para Bug, significa Abnormal END, terminal anormal, onde os engenhosos programadores gastavam horas tentando solucionar, normalmente envolviam estouros de memorias, invasões de áreas, troca de arquivos de processo e etc.


RACF


O sistema policial que guara e protege o sistema de acessos não autorizados, permitindo a leitura de arquivos em desenvolvimento, qualidade e produção, de acordo com o perfil de cada usuário. Libera acesso ao CICS e as ferramentas de produtividade.


Terminal 3270


O primeiro acesso aos computadores de muita gente, na década de 80 tive o prazer em trabalhar diretamente neste monstrinho, que eu carinhosamente chamava de sonar de submarino, me sentia em filmes de ficção cientifica ao operar essa engenhoca. Tinha um pequeno buffer, que acumulava informações até a próxima chamada ao controlador, passando esses dados e recebendo a página seguinte, numa transação assíncrona.


Além disso existem inúmeras siglas e sopas de letrinhas com mais informações sobre processos e funcionamento dos terminais, qualquer duvida perguntem, as vezes a memoria do tiozão falha e meto a pata na poça.


ROSCOE


Uma ferramenta de front-end para edição de arquivos sequenciais, programas e jcls com funcionalidades semelhantes ao TSO.


TSO


Terminal system operation é o Windows do IBM, todas as funcionalidades e acessos podem ser utilizadas a partir deste aplicativo, compõem acesso aos cics, editores de arquivos e programas, troca de mensagens, controle de versão etc. Atualmente usa-se um emulador e sendo acessado via local o web.

Para um primeiro artigo sobre sistema Mainframe acabei falando demais, espero não ter deixado meu jovem padawan atrapalhado com tanta informação. Visite este artigo sempre, pois trata-se de um trabalho em curso com melhorias continuas.


Linguagens de programação


Esta são apenas algumas das linguagens utilizadas em sistemas centrais

PLI, COBOL, REXX, Easytreave e JAVA 


Sendo que em processos batch são chamadas via JCL e nas transações online CICS carregadas no menu CICS.


Por curiosidade no Brasil o programa mais antigo que trabalhei foi no Banco Real no sistemas de empréstimo compilado em 1983, em Portugal na DIGITA ligada ao Ministério das Finanças a guarda foi em 1974.


Performance


Devido as grandes quantidades de dados, a programação em mainframe usa o paradigma procedural e modelos otimizados de acesso, para evitar gargalos e estouros de memória por uso excessivo de recursos.


Espero ter ajudado, lembre-se que é um trabalho continuo.


 https://www.linkedin.com/in/vagnerbellacosa/


 https://github.com/VagnerBellacosa/


Pode me dar uma ajudinha no YouTube?


 https://www.youtube.com/user/vagnerbellacosa



#Desafio21DiasNaDIO 

0
7

Comentários (2)

1
Vagner Bellacosa

Vagner Bellacosa

15/07/2021 00:26

Obrigada Bruna, se gostou do JAVA, tem tratamento XML em Cobol e rodam Linux.... fiz alguns projetos em XML Cobol, mas era ruim demais... qto ao Linux so ouvir falar nunca vi. :)

2
Bruna Gonçalves

Bruna Gonçalves

15/07/2021 00:17

Uau! Que artigo impressionante! Realmente vou precisar reler algumas vezes para processar tantas informações novas, mas gostei muito, principalmente das curiosidades que apareceram ao longo do texto. E ainda acho incrível como a linguagem Java pode ser usada de tanta formas diferentes.

Seus textos são sempre maravilhosos. Já estou esperando os próximos.


Analista Programador dinossauro IBM Mainframe

Brasil