DEV Community

Cover image for Mainframe e Distribuída - parte 1 - Ambiente
rogeriosug
rogeriosug

Posted on • Edited on

Mainframe e Distribuída - parte 1 - Ambiente

 

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 
Enter fullscreen mode Exit fullscreen mode

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.
bash example

Exemplo de interface gráfica:
macOS graphical interface example

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 
Enter fullscreen mode Exit fullscreen mode
----------------------------- 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 
Enter fullscreen mode Exit fullscreen mode
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 ******************************* 
Enter fullscreen mode Exit fullscreen mode

De forma semelhante podemos visualizar os arquivos na distribuída tanto pela linha de comando (bash) ...
Image description

... quanto pela interface gráfica

Image description

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 ser PARTITIONED e permitem ter MEMBERS 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)