CV
Datacenter

Mon initiation au mainframe z/OS.

Jamais je n'aurais cru toucher un jour à l'une de ces antiques mais vénérables bestioles. Et pourtant mon activité professionnelle va m'obliger à quelque peu manipuler un émulateur de terminal 3270 pour se connecter sur ma session z/OS du mainframe MVS IBM.  Il s'agit en fait pour moi d'appréhender un langage d'interrogation de données "FOCUS" le bien nommé, logiciel de chez Information Builder. Je suis un peu ému ca lorsqu'on commence à se connecter sur ce genre d'infrastructure, on accéde à l'historique d'une société. En effet il s'agit très souvent des premières couches d'IT apparue en entreprise (bien avant le monde Micro-Informatique et le monde Serveur Linux/Windows tel qu'on le connait).

Non, le MVS IBM ne fait pas tourner Minecraft :

Pour ceux qui ne connaissent pas cette vénérable relique, les premières versions sont apparues en 1960. L'infrastructure rencontrée pour l'occasion doit quant à elle datée du milieu des années 80, fin des années 70. Première technologie "informatique" implantée en entreprise, le mainframe est un système informatique de type monolithique très lourd implanté dans les grands groupes qui avaient nécessité d'informatiser le traitement de leur stocks, flux et dossiers. A la différence des technologies "classiques" Intel/x86 client/servers qui font tourner "l'Internet" et le web plus moderne proposant souvent beaucoup plus de puissance de calcul. Le mainframe IBM est conçu pour répondre à un fort "throughput" quelle que soit les circonstances.

Il se montre en revanche performant et est conçu par design pour répondre rapidement à des milliers de micros transactions "simples" comme des ajouts dans des bases de données. Référencement/déréférencement dans un stock,  transactions bancaires etc ..

L'une des autres de ces caractéristiques notable est son gros taux de "SLA" avec une disponibilité probablement proche des 6 ou 7 neufs.

Je suis sur que vous avez déjà vue chez Conforama le vendeur tapoter dans un terminal vert qui donnait des inscription, le vendeur appuyé sur deux trois touches sur un terminal changé d'écran, coché "c" + crtl. Hop le meuble était commandé dans la seconde, et je parle de cela dès la fin des années 1980. Pas d'ordinateur à redémarrer ou de logiciel qui rame.

Le vendeur pianotait dans un programme tournant sur un système mainframe.

Le système z/OS IBM permet de faire tourner des langages ultra moderne comme le COBOL, le FORTRAN ou également effectuer des requêtes avec des "programmes" comme Focus. Programmes capable de lire des bases DB2 (technologie de SGBD IBM ...). Non ici pas de bash, de Python, de PHP de Perl ...

Quelques images de la bête en question, pour information tout ceci se lance dans un terminal fenêtre, qu'on ne peut pas agrandir la résolution max reste fixe. Tout se réalise évidemment au clavier. La touche permettant de valider une action n'est pas la touche "Entrée/Enter" usuelle mais la touche "Ctrl" , c'est intéressant car la touche "Entrée" se retrouve uniquement utilisée pour aller à la ligne - en réalité l'émulateur permet de tweaker un peu ce genre de chose -

Fenetre avec résolution fixe :

zOs_Capture

Pour se déplacer entre les différentes index il faut utiliser la touche "Tabulation".

Revenir à la page précédente se fait avec "F3" qui permet également de sortir d'un fichier et de le sauvegarder.  Déplacer le texte à droite ou à gauche se fait avec F11 et F12

Focus :

Une fois les quelques commandes du système appréhendé j'en viens au vif du sujet, à savoir Focus. Ce dernier est un logiciel de requête des données initialement développés pour systèmes mainframe type IBM permettant de requêter des éléments DB2 et des ""fichier"" z/OS.

Ce dernier se présente à l'image d'un mixe entre le langage BASIC et le SQL ... et permet d'extraire des rapports soit par défaut à l'écran ou encore en les exportant via CVS dans un fichier.

Exemple de requête réalisée dans Focus :

Une fois appuyé sur la touche Ctrl , cela exécutera la requête et vous affichera sur le terminal le résultat. Oui sur le terminal, pas moyen de lui dire envoie moi un mail ... enfin pas par défaut, pour ça il faut utiliser des fonctions developpées spécialement pour l'occasion.

Oui c'est super contraignant.

Voici la liste de nos voitures, le résultat de notre requête.

Il est également possible de batcher les requêtes en les executant depuis un fichier.

Seulement pour ça hors de question d'utiliser Vim ou Notepad++ il faut se coltiner l'éditeur interne, une merde ergonomique à faire palir n'importe quel UI/UX designer ... Ici les commandes ressemblent à un simili-vim mais en castré. Toujours pas moyen d'agrandir la fenêtre il faut descendre avec les touches F7 et F8, ajouter une ligne se fait avec la touche "i" comme sous vim, pour le reste c'est d'un lourdingue ...

Évidemment cette requête est minimaliste, il faut imaginer que certaines personnes bossent sur des programmes de plusieurs milliers de ligne ... dans ce putain de terminal !

Bref cette relique DOIT mourir.