Mainframe e Distribuída - parte 1 - Ambiente
rogeriosug
Posted on January 1, 2022
Desenvolvedores que trabalham exclusivamente com mainframe podem sentir alguns impactos quando começam a explorar o universo da computação distribuída.
Este post é o primeiro de uma série para auxiliar os devs nesta transição e perceberem que muitos dos conceitos conhecidos no mainframe estão presentes na distribuída: mudam-se a panela e o fogão, mas o sabor da comida continua o mesmo.
Sobre esta série de posts
O objetivo final destes posts é tentar ajudar quem já conhece o ambiente mainframe e quer explorar o ambiente distribuído, também conhecido como baixa plataforma.
Este texto não tem a intenção de ser um guia exaustivo, ele tem o objetivo de dar algumas noções iniciais e incentivar nos estudos. Nos comentários abaixo, fiquem à vontade para sugerir correções e complementar com mais informações.
No final existe um glossário e também um índice com os tópicos da série. Esta série está em evolução e novos tópicos surgirão.
Ambiente
Sistema Operacional
Todo hardware precisa de um sistema operacional que possa gerir os recursos disponíveis. No mainframe são conhecidos o MVS, OS/390 e atualmente um dos mais predominante é o z/OS.
Na distribuída, atualmente, os mais conhecidos são o Windows, Linux e macOS.
A grande diferença é a arquitetura: no mainframe os usuários interagem com o sistema operacional em sessões virtuais
através de terminais como os emuladores de terminais 3270. Já na distribuída os usuários interagem diretamente com o sistema operacional.
Existem funcionalidades comuns entre os sistemas operacionais, por exemplo da mesma maneira que o z/OS possui o RACF que gerencia permissões de autenticação e acesso, os sistemas operacionais da distribuída também possuem a implementação desta funcionalidade. Este mesmo conceito de segurança também existe nas plataformas de cloud, como o IAM da AWS.
Interface gráfica e não tão gráfica
No mainframe, assim que o desenvolvedor faz login no TSO
, ele pode invocar linhas de comando como CLIST
e REXX
ou então pode chamar uma interface como o ISPF
(ou PDF
). Outra interface conhecida no mainframe é o ROSCOE
.
Menu Utilities Compilers Options Status Help
------------------------------------------------------------------------------
ISPF Primary Option Menu
Option ===>
0 Settings Terminal and user parameters User ID .: USER
1 View Display source data or listings Time. . .: 00:00
2 Edit Create or change source data Terminal.: 3278
3 Utilities Perform utility functions Screen. .: 1
4 Foreground Interactive language processing Language.: ENGLISH
5 Batch Submit job for language processing Appl ID .: PDF
6 Command Enter TSO or Workstation commands TSO logon: ACCT
7 Dialog Test Perform dialog testing TSOprefix: USER
8 LM Facility Library administrator functions System ID: SC04
9 IBM Products IBM program development products MVS acct.: ACCNT#
10 SCLM SW Configuration Library Manager Release .: ISPF 5.2
11 Workplace ISPF Object/Action Workplace
M More Additional IBM Products
Enter X to Terminate using log/list defaults
F1=Help F2=Split F3=Exit F7=Backward F8=Forward F9=Swap F10=Actions F12=Cancel
Ao fazer um paralelo com a distribuída, existem as interfaces conhecidas por terminais
que permitem interagir por linha de comando da mesma maneira que o TSO
faz
E paralelo ao ISPF existem as interfaces gráficas, também conhecidas como GUI (Graphical User Interface), que são as telas em "janelas" que estamos acostumados a utilizar no dia-a-dia no Windows, Mac ou Linux.
Exemplos de terminais
de linha de comando são: bash, sh, powershell, entre outros.
Existem outras funcionalidades semelhantes entre os dois mundos. Tanto o sistema operacional do mainframe quanto os da distribuída possuem gerenciadores de arquivos ou, no caso do mainframe, datasets. No ISPF
os datasets podem ser visualizados na opção 1 (View) ou então na opção 3.4 (Utilities > DSLIST)
-------------------------- UTILITY SELECTION MENU ----------------------------
OPTION ===> 4
1 LIBRARY - Compress or print data set. Print index listing.
Print, rename, delete, or browse members
2 DATASET - Allocate, rename, delete, catalog, uncatalog, or
display information of an entire data set
3 MOVE/COPY - Move, copy, or promote members or data sets
4 DSLIST - Print or display (to process) list of data set names
Print or display VTOC information
5 RESET - Reset statistics for members of ISPF library
6 HARDCOPY - Initiate hardcopy output
8 OUTLIST - Display, delete or print held job output
9 COMMANDS - Create/change an application command table
10 CONVERT - Convert old format messages/menu panels to new format
11 FORMAT - Format definition for formatted data Edit/Browse
12 SUPERC - Compare data sets (Standard dialog)
13 SUPERCE - Compare data sets (Extended dialog)
14 SEARCH-FOR - Search data sets for strings of data
----------------------------- DATA SET LIST UTILITY --------------------------
OPTION ===>
blank - Display data set list * P - Print data set list
V - Display VTOC information only PV - Print VTOC information only
Enter one or both of the parameters below:
DSNAME LEVEL ===> PREFIX
VOLUME ===>
INITIAL DISPLAY VIEW ===> VOLUME (VOLUME,SPACE,ATTRIB,TOTAL)
CONFIRM DELETE REQUEST ===> YES (YES or NO)
* The following line commands will be available when the list is displayed
B - Browse data set C - Catalog data set F - Free unused space
E - Edit data set U - Uncatalog data set = - Repeat last command
D - Delete data set P - Print entire data set
R - Rename data set X - Print index listing
I - Data set information M - Display member list
S - Information (short) Z - Compress data set TSO command or CLIST
DSLIST - DATA SETS BEGINNING WITH PREFIX --------------------------- ROW 1 OF 9
COMMAND ===> SCROLL ===> PAGE
COMMAND NAME MESSAGE VOLUME
-------------------------------------------------------------------------------
PREFIX.$10$09$5 MAR87B
PREFIX.$15$38$5 OCT87A
PREFIX.ABDRVR7.ISPPLIB FEB87B
PREFIX.CURRENT.BILLS TSO007
PREFIX.MEMO.TEXT NOV87C
PREFIX.MY.CLIST TSO005
PREFIX.SAMPLE.TEXT MIGRAT
PREFIX.TEST.COBOL MIGRAT
PREFIX.TEST.DATA NOV87C
*************************** END OF DATA SET LIST *******************************
De forma semelhante podemos visualizar os arquivos na distribuída tanto pela linha de comando (bash) ...
... quanto pela interface gráfica
Spoiler: não se preocupe com os comandos do terminal por enquanto, voltaremos nele futuramente
Aqui vale destacar a diferença estrutural entre datasets (mainframe) e arquivos (distribuída):
datasets: são formado por qualificadores de no máximo 8 caracteres e separados por "." (ponto) e o tamanho máximo do nome não pode exceder 44 caracteres. Exemplo:
USERZOS.ARQUIVO.TESTE.EXEMPLO
. Os datasets ainda podem serPARTITIONED
e permitem terMEMBERS
dentro deles, na distribuída, é como se fossem arquivos dentro de uma pasta
arquivos: são estruturados em pastas e sub-pastas. Os nomes dos arquivos geralmente são compostos por um prefixo e um sufixo (extensão), onde este sufixo indica o tipo de arquivo (.exe, .txt, .sh, .jpeg, .mp3).
Não é obrigatório que um arquivo tenha prefixo ou um sufixo, mas precisa pelo menos ter um deles. Exemplo:
/pasta/sub-pasta/arquivo.txt
,/pasta/sub-pasta/.gitignore
,/pasta/sub-pasta/config
Como podemos ver, existem muitas similaridades entre as plataformas alta e baixa. Explore e faça este exercício.
Esta primeira parte da série é apenas para quebrar o gelo e abrir caminho para conhecermos outros conceitos em comum.
Nos próximos posts veremos que ferramentas de terceiros ou built-in do mainframe também possuem um similar na distribuída. Exemplos destas ferramentas são o CHANGEMAN
, ENDEVOR
, TSO EDITOR
, DFSORT
, FILE-AID
, IEFBR14
, ICEGENER
, EASYTRIEVE
, entre outras.
Mudam-se a panela e o fogão, mas o sabor da comida continua o mesmo.
Glossário
baixa plataforma: computação distribuída
alta plataforma: mainframe
Posted on January 1, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.