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
Top comments (0)