Tous les articles par Mr COBOL

Architecture et Fonctionnalité des Mainframes

Les mainframes sont des ordinateurs centraux conçus pour offrir des capacités de traitement de données inégalées, une fiabilité exceptionnelle et une évolutivité hors pair. Les mainframes ont été utilisés pendant des décennies dans les grandes entreprises, les gouvernements et les institutions financières pour des tâches critiques telles que la gestion des transactions financières, la gestion des bases de données et la production en temps réel.

Architecture des mainframes

L’architecture des mainframes est basée sur un modèle de traitement centralisé, dans lequel un seul processeur principal gère toutes les tâches de traitement de données. Les mainframes sont souvent équipés de plusieurs processeurs, mais ils fonctionnent tous de manière coordonnée sous la supervision du processeur principal.

Les mainframes sont également conçus pour offrir une évolutivité exceptionnelle, avec la possibilité d’ajouter des processeurs supplémentaires, de la mémoire et d’autres composants pour répondre aux besoins en constante évolution des entreprises.

Les différentes parties des mainframes

Les mainframes se composent de plusieurs parties clés, chacune remplissant une fonction spécifique. Voici les parties les plus importantes des mainframes :

  • Le processeur central : le processeur principal gère toutes les tâches de traitement de données et coordonne les activités des autres processeurs.
  • Les unités de stockage : les mainframes utilisent plusieurs types d’unités de stockage, y compris les disques durs, les bandes magnétiques et les supports de stockage optiques. Les mainframes sont souvent équipés de plusieurs unités de stockage pour offrir une redondance de données et une fiabilité accrue.
  • Les canaux de communication : les canaux de communication sont utilisés pour transmettre des données entre les différentes parties des mainframes, y compris les processeurs, les unités de stockage et les périphériques.
  • Les périphériques : les mainframes sont souvent équipés de plusieurs périphériques, tels que des imprimantes, des scanners et des lecteurs de codes-barres. Ces périphériques sont utilisés pour interagir avec les utilisateurs et les autres systèmes informatiques.

Systèmes d’exploitation des mainframes

Les mainframes utilisent différents systèmes d’exploitation pour gérer les ressources informatiques et exécuter les programmes. Voici quelques-uns des systèmes d’exploitation les plus courants utilisés sur les mainframes :

  • z/OS : développé par IBM, z/OS est le système d’exploitation le plus courant utilisé sur les mainframes. z/OS offre une grande fiabilité, une sécurité de pointe et une évolutivité hors pair. Il est conçu pour gérer les tâches de traitement de données critiques à grande échelle, telles que les transactions financières.
  • z/VM : z/VM est un système d’exploitation de virtualisation qui permet aux utilisateurs de créer des machines virtuelles pour exécuter plusieurs instances de systèmes d’exploitation simultanément. z/VM est souvent utilisé pour les environnements de développement et de test.
  • z/VSE : z/VSE est un système d’exploitation de traitement de transactions qui est utilisé pour les transactions financières à grande échelle. Il offre une grande fiabilité et une sécurité de pointe pour les applications de traitement de données transactionnelles.
  • Linux sur z : Linux sur z est un système d’exploitation open source qui est exécuté sur les mainframes IBM. Linux sur z offre une grande évolutivité et une grande flexibilité pour les applications d’entreprise.

Langages de programmation des mainframes

Les mainframes prennent en charge plusieurs langages de programmation pour le développement d’applications, notamment :

  • COBOL : COBOL est l’un des langages de programmation les plus anciens utilisés sur les mainframes. Il est conçu pour les applications commerciales et les transactions financières à grande échelle.
  • Assembleur : Assembleur est un langage de programmation bas niveau qui est souvent utilisé pour le développement de programmes système et de pilotes de périphériques.
  • PL/I : PL/I est un langage de programmation multi-paradigme qui prend en charge la programmation impérative, orientée objet et fonctionnelle. Il est souvent utilisé pour les applications d’entreprise complexes.
  • Java : Java est un langage de programmation orienté objet qui est souvent utilisé pour les applications web et mobiles.
  • Python : Python est un langage de programmation haut niveau qui est souvent utilisé pour l’analyse de données et les applications de machine learning.

Stockage des mainframes

Les mainframes prennent en charge plusieurs types de stockage, notamment :

  • Disques durs : les disques durs sont utilisés pour stocker des données en temps réel et offrir une lecture et une écriture rapides. Les mainframes sont souvent équipés de plusieurs disques durs pour offrir une redondance de données.
  • Bandes magnétiques : les bandes magnétiques sont souvent utilisées pour la sauvegarde de données à grande échelle. Les mainframes sont souvent équipés de plusieurs lecteurs de bandes magnétiques pour offrir une redondance de données.
  • Supports de stockage optiques : les supports de stockage optiques sont utilisés pour stocker des données à long terme et offrent une grande durabilité et une grande fiabilité.

Récapitulons

Les mainframes sont des ordinateurs centraux conçus pour offrir des capacités de traitement de données à grande échelle, une grande fiabilité et une sécurité de pointe. Ils ont joué un rôle important dans l’histoire de l’informatique et continuent de jouer un rôle essentiel dans de nombreux secteurs, tels que la finance, les assurances et les gouvernements.

L’architecture et les fonctionnalités des mainframes ont évolué au fil du temps pour répondre aux besoins changeants des entreprises et des gouvernements. Les mainframes modernes sont dotés de capacités de virtualisation et de cloud computing, ainsi que de fonctions avancées de sécurité et de gestion des ressources.

Les mainframes sont compatibles avec une variété de langages de programmation, notamment COBOL, Assembleur, PL/I, Java et Python. Les développeurs peuvent utiliser ces langages pour créer des applications destinées aux mainframes ou pour moderniser des applications existantes.

En termes de stockage, les mainframes prennent en charge plusieurs types de stockage, notamment les disques durs, les bandes magnétiques et les supports de stockage optiques. Les mainframes sont souvent équipés de plusieurs unités de stockage pour offrir une redondance de données et assurer la disponibilité des données en cas de défaillance d’un composant.

En somme, les mainframes ont une architecture et des fonctionnalités complexes qui ont été développées pour répondre aux besoins de traitement de données à grande échelle des entreprises et des gouvernements. Les mainframes continuent d’évoluer pour répondre aux besoins changeants du marché et sont un élément essentiel de l’infrastructure informatique de nombreuses organisations à travers le monde.

Histoire du Mainframe

Le commencement

Le Mainframe est né dans les années 1950 lorsque les grandes entreprises ont commencé à utiliser des ordinateurs centraux pour gérer leurs opérations. À cette époque, les ordinateurs étaient volumineux et coûteux, mais ils offraient une capacité de traitement des données supérieure à celle des ordinateurs personnels. Les entreprises utilisaient le Mainframe pour gérer des opérations critiques telles que la comptabilité, la facturation, la gestion des stocks et la paie.

Les premiers mainframes

Les premiers mainframes ont été développés dans les années 1950 et étaient des machines massives qui occupaient des pièces entières. Ces ordinateurs centraux étaient conçus pour effectuer des calculs complexes pour des applications scientifiques et militaires.

IBM 701 – Electronic analytical control unit (color view) – IBM

Le premier mainframe a été introduit par IBM en 1952 sous le nom de l’IBM 701. Il utilisait des tubes à vide pour le traitement des données et avait une mémoire vive de 2048 mots. Bien que l’IBM 701 ait été conçu pour des applications scientifiques, il a également été utilisé pour des applications commerciales telles que la prévision des ventes et l’analyse de marché.

702 Data Processing System – IBM

L’IBM 702 a été introduit peu de temps après l’IBM 701, également en 1952. Il était similaire en conception, mais était utilisé principalement pour des applications militaires, telles que la simulation de trajectoires de missiles.

En 1955, IBM a introduit le modèle IBM 704, qui utilisait des transistors plutôt que des tubes à vide pour le traitement des données. Il était plus petit que l’IBM 701 et avait une vitesse de traitement plus rapide, ce qui en faisait une machine plus efficace pour les applications scientifiques et commerciales.

Au cours des années 1950, d’autres fabricants tels que Univac, Control Data Corporation et Honeywell ont également commencé à développer des mainframes. L’Univac 1103, par exemple, était une machine de traitement de données massive qui a été utilisée pour des applications scientifiques et commerciales.

Univac 1103  – General Electric – pinterest

Dans les années 1960, IBM a introduit la série System/360, qui a révolutionné l’industrie de l’informatique. Cette série de mainframes a permis l’interchangeabilité des logiciels et des périphériques, ce qui a permis aux entreprises de développer des systèmes informatiques plus personnalisés et de traiter des volumes de données plus importants. Le System/360 était également compatible avec les anciens ordinateurs IBM, ce qui a permis aux entreprises de conserver leurs investissements existants dans les systèmes informatiques.

Les évolutions

Au fil des décennies, les mainframes ont connu une évolution constante et ont été adaptés aux besoins changeants des entreprises. Voici quelques-unes des étapes importantes de leur évolution :

Années 1960-1970 : Les mainframes deviennent plus petits et plus accessibles

Au début des années 1960, les mainframes étaient encore des machines massives qui occupaient des pièces entières et étaient réservées aux grandes entreprises et aux institutions gouvernementales. Cependant, au fil de la décennie, les mainframes ont commencé à devenir plus petits et plus accessibles, grâce à des avancées technologiques telles que l’utilisation de transistors à la place des tubes à vide et la miniaturisation des composants électroniques.

Model 145 de 1970 – IBM

Ces progrès ont permis à des entreprises de taille moyenne d’investir dans des mainframes, ce qui a ouvert de nouvelles perspectives en termes de traitement des données et de gestion de l’information.

Années 1980-1990 : Les mainframes s’adaptent aux nouveaux besoins informatiques

Au cours des années 1980 et 1990, les mainframes ont continué à évoluer pour répondre aux besoins changeants des entreprises. Les ordinateurs centraux ont commencé à être utilisés pour des tâches plus complexes, telles que la gestion des transactions financières et la production en temps réel.

IBM S/390 Architecture de 1998 – IBM

Les mainframes ont également commencé à intégrer des technologies de pointe telles que la virtualisation, qui permettait de partager efficacement les ressources informatiques entre plusieurs systèmes.

Années 2000-2010 : Les mainframes restent pertinents dans un monde en évolution rapide

Au cours des années 2000 et 2010, les mainframes ont continué à être un pilier de l’infrastructure informatique des entreprises du monde entier. Les mainframes modernes sont conçus pour une disponibilité maximale et sont souvent utilisés pour des tâches critiques telles que le traitement des transactions financières et la gestion des bases de données.

zSeries 990 de 2003 – IBM

Les mainframes ont également intégré des technologies telles que le Cloud computing, ce qui permet de tirer parti de la flexibilité et de la scalabilité offertes par cette technologie tout en conservant les avantages de la sécurité, de la fiabilité et de la gestion centralisée des données offerts par les mainframes.

Années 2020 et au-delà : Les mainframes continuent d’évoluer pour répondre aux nouveaux défis

Les mainframes continuent d’être un élément crucial de l’infrastructure informatique des entreprises du monde entier, et ils continuent d’évoluer pour répondre aux nouveaux défis posés par l’évolution de l’environnement informatique.

IBM Z16 de 2022 – IBM

Les mainframes modernes intègrent des technologies telles que l’IA et l’apprentissage automatique pour offrir une meilleure analyse des données et une automatisation accrue des processus. Ils sont également conçus pour une connectivité accrue, ce qui leur permet de s’intégrer plus facilement aux autres systèmes informatiques.

Ses concurrents

Au fil des années, les mainframes ont été confrontés à une concurrence croissante de la part d’autres technologies informatiques. Bien que les mainframes aient toujours été considérés comme des systèmes informatiques puissants et fiables, d’autres technologies, telles que les micro-ordinateurs, les serveurs et les clusters, ont commencé à émerger et à prendre de l’importance.

Les micro-ordinateurs

Les micro-ordinateurs sont apparus dans les années 1970 et 1980, et ont rapidement connu un succès considérable auprès des particuliers et des petites entreprises. Les micro-ordinateurs étaient beaucoup moins chers que les mainframes, et offraient des capacités de traitement de données suffisantes pour de nombreuses tâches courantes.

Un mini-ordinateur PDP-7 – Wikipédia

Les micro-ordinateurs ont également commencé à offrir des fonctionnalités telles que la connectivité réseau, ce qui leur a permis de rivaliser avec les mainframes dans de nombreux cas d’utilisation.

Les serveurs

Les serveurs sont apparus dans les années 1990, et ont rapidement connu un succès considérable dans le domaine de l’entreprise. Les serveurs étaient moins chers que les mainframes, mais offraient une capacité de traitement similaire.

Image d’un serveur – Shutterstock

Les serveurs ont également été conçus pour être plus flexibles et plus faciles à utiliser que les mainframes, avec une architecture basée sur des systèmes d’exploitation standard et des logiciels de gestion faciles à utiliser.

Les clusters

Les clusters sont apparus dans les années 2000, et sont devenus une alternative de plus en plus populaire aux mainframes pour certaines applications. Les clusters sont des groupes de serveurs qui travaillent ensemble pour fournir des capacités de traitement de données supérieures.

cluster de serveurs 

Les clusters sont souvent utilisés pour des applications telles que la modélisation de simulations, la recherche et l’analyse de données à grande échelle.

Malgré cette concurrence croissante, les mainframes ont réussi à maintenir leur place dans le monde de l’entreprise. Les mainframes continuent d’être utilisés pour des tâches critiques telles que la gestion des transactions financières, la production en temps réel et la gestion des bases de données.

Les mainframes ont également évolué pour s’adapter aux nouveaux défis posés par la concurrence, en intégrant des technologies telles que la virtualisation, le Cloud computing et l’intelligence artificielle.

En fin de compte, bien que les mainframes aient connu une concurrence croissante de la part d’autres technologies informatiques, ils restent une partie vitale de l’infrastructure informatique des entreprises du monde entier, offrant des capacités de traitement de données inégalées et une fiabilité inégalée.

Actualité

Aujourd’hui, les entreprises continuent d’utiliser des Mainframes pour les applications critiques telles que les transactions financières, la gestion de la chaîne d’approvisionnement et les systèmes de billetterie. Les Mainframes sont également utilisés pour les applications de haute disponibilité et les applications à grande échelle où les performances, la sécurité et la fiabilité sont primordiales. Bien que le Mainframe soit souvent considéré comme une technologie plus ancienne, il reste l’une des plateformes informatiques les plus fiables et les plus sécurisées sur le marché, et son utilisation est toujours pertinente pour les entreprises qui ont besoin de performances et de sécurité élevées.

CODE RETOUR -992

PACKAGE package-name CANNOT BE EXECUTED OR DEPLOYED ON LOCATION location-name

Explication du code retour -992 :
Une non-concordance dans les niveaux de code Db2 empêche l’exécution ou le déploiement du package.

package-name
Le nom du paquet.

location-name
Le système Db2 sur lequel le déploiement ou l’exécution a été tenté.

L’une des conditions suivantes s’est produite :

  • Le package ne peut pas être exécuté ou déployé en raison d’une non-concordance au niveau du code Db2 entre le système identifié par location-name  et le serveur actuel. Le serveur actuel et le système identifié par location-name  peuvent être le même système.
  • La représentation d’une routine SQL ne peut pas être exécutée sur le système. Le package a été lié à une version ou à un niveau de maintenance différent de celui que le système peut prendre en charge.

Le déploiement est le processus d’établissement d’une routine SQL à un emplacement distant sans régénérer la représentation de cette routine. Le déploiement nécessite que le serveur distant soit capable de comprendre les structures générées par le serveur actuel pour le package identifié. La différence de niveau de code entre le serveur actuel et l’emplacement distant rend cela impossible. La différence peut être dans les niveaux de version ou les niveaux de maintenance, mais elle est suffisamment importante pour que le package ne puisse pas être déployé du serveur actuel vers l’emplacement distant.

Cette condition peut être spécifique à ce package particulier. D’autres packages peuvent être exécutés avec succès sur ce système ou déployés à partir du serveur actuel vers l’emplacement distant.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :
Si cette condition se produit lors du déploiement d’une routine SQL, réessayez après la mise à jour de Db2 à location-name vers la version ou le niveau de maintenance pouvant prendre en charge le package en cours de déploiement.

Si cette condition se produit dans des contextes autres que le déploiement (par exemple, un package qui a été créé avant l’application d’une PTF n’est plus pris en charge par le niveau de Db2 après l’application de cette PTF), exécutez alors l’instruction ALTER PROCEDURE ou ALTER FUNCTION avec la clause REGENERATE pour cette version de la routine SQL sur le serveur actuel afin de régénérer le package à l’aide du niveau de maintenance actuel. L’instruction ALTER PROCEDURE ou ALTER FUNCTION avec la clause REGENERATE entraînera une nouvelle liaison du package sur le serveur local.

Si la routine SQL a requis la réplication du package sur différents serveurs, le processus doit être répété pour la routine SQL régénérée.

Si des variantes du package ont été créées localement avec différents ID de collection, ces packages supplémentaires doivent également être explicitement liés.

SQLSTATE :
51008

CODE RETOUR -991

CALL ATTACH WAS UNABLE TO ESTABLISH AN IMPLICIT CONNECT OR OPEN TO DB2. RC1= rc1 RC2= rc2

Explication :
Call attach a tenté d’effectuer une connexion et une ouverture implicites à la suite d’une instruction SQL. La connexion ou l’ouverture a échoué avec les valeurs renvoyées.

rc1
La valeur renvoyée dans FRBRC1 pour l’échec de la demande CONNECT ou OPEN.

rc2
La valeur renvoyée dans FRBRC2 pour l’échec de la demande CONNECT ou OPEN.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :
Vérifiez que l’application avait l’intention d’utiliser la fonction de rattachement d’appel (CAF) comme mécanisme pour se connecter à Db2. Pour les fonctions ou les procédures stockées s’exécutant dans l’espace d’adressage de procédure stockée établi par WLM, l’application doit être éditée par lien avec ou allouer dynamiquement le module d’interface de langage de pièce jointe RRS (DSNRLI), et non CAF.

SQLSTATE :
57015

CODE RETOUR -989

AFTER TRIGGER trigger-name ATTEMPTED TO MODIFY A ROW IN TABLE table-name THAT WAS MODIFIED BY AN SQL DATA CHANGE STATEMENT WITHIN A FROM CLAUSE

Explication :
Une instruction de modification de données SQL a été spécifiée dans la clause FROM où FINAL TABLE a été spécifié, mais la table de base cible sous-jacente de l’instruction de modification de données SQL a un déclencheur AFTER défini qui modifie la même table. Ceci est interdit.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :
Évitez d’utiliser l’instruction de modification de données SQL dans une clause FROM ou modifiez le déclencheur (trigger) afin qu’il ne modifie pas la table qui est la cible de l’instruction de modification de données SQL.

SQLSTATE :
560C3

CODE RETOUR -981

THE SQL STATEMENT FAILED BECAUSE THE RRSAF CONNECTION IS NOT IN A STATE THAT ALLOWS SQL OPERATIONS, REASON reason-code.

Explication :
L’application a tenté d’exécuter une opération SQL, mais la connexion RRSAF n’était pas dans un état permettant le traitement des instructions SQL.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :
Corrigez l’erreur dans l’application, REBIND, et relancez l’application.

SQLSTATE :
57015

CODE RETOUR -952

PROCESSING WAS INTERRUPTED BY A CANCEL REQUEST FROM A CLIENT PROGRAM

Explication :
Un programme client a émis une demande d’annulation qui a mis fin au traitement de l’instruction SQL.

Action du système :
L’instruction SQL a été interrompue et toutes les modifications apportées par cette instruction ont été annulées. Si un curseur SQL est associé à l’instruction SQL interrompue, ce curseur est fermé.

SQLSTATE :
57014

CODE RETOUR -951

OBJECT object-name OBJECT TYPE object-type IS IN USE AND CANNOT BE THE TARGET OF THE SPECIFIED ALTER STATEMENT

Explication :
Les options de la routine SQL ne peuvent pas être modifiées si la version de la routine est actuellement active sous le même thread qui a émis l’instruction ALTER et qu’une ou plusieurs des options en cours de modification entraînent la reliaison ou la régénération du package pour le Routine SQL.

object-name
Le nom de l’objet.

object-type
Le type d’objet.

Si l’instruction défaillante était ALTER PROCEDURE ACTIVATE VERSION ou ALTER FUNCTION ACTIVATE VERSION, la version active d’une routine SQL actuellement active sous l’appel de routine imbriquée par le même thread ne peut pas être modifiée.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :
Passez en revue les informations sur les options de modification et les modifications qui entraînent la reliaison ou la régénération des packages associés.

Vérifiez que la logique d’appel de routines imbriquées impliquant des routines SQL et les instructions ALTER fonctionnent comme prévu. Portez une attention particulière aux instructions CALL :HV avec le réglage du registre spécial CURRENT ROUTINE VERSION, car la combinaison de ces instructions peut produire des flux logiques indésirables. S’il est nécessaire d’utiliser plusieurs versions de la même routine SQL dans la chaîne récursive imbriquée, envisagez d’utiliser CALL :HV et le registre spécial CURRENT ROUTINE VERSION pour contrôler la version utilisée, au lieu de la clause ALTER ACTIVATE VERSION.

SQLSTATE :
55007

CODE RETOUR -950

THE LOCATION NAME SPECIFIED IN THE CONNECT STATEMENT IS INVALID OR NOT LISTED IN THE COMMUNICATIONS DATABASE

Explication :

L’une des conditions suivantes s’applique :

  • Le nom de l’emplacement est vide.
  • Le type de données de la variable hôte n’est pas une chaîne de caractères.
  • L’attribut de longueur de la variable hôte est supérieur à 16.
  • Le nom d’emplacement n’apparaît pas dans la colonne LOCATIONS de la table SYSIBM.LOCATIONS, ni le nom du sous-système Db2 local.

Action du système :
La déclaration ne peut pas être traitée. Le processus d’application est placé dans l’état non connecté.

Réponse du programmeur :
Si le nom d’emplacement est spécifié comme valeur d’une variable hôte, assurez-vous que le nom est justifié à gauche dans la variable hôte et, si nécessaire, complété à droite par des blancs. Si ce n’est pas le problème, soit SYSIBM.LOCATIONS doit être mis à jour pour inclure le nom spécifié, soit le nom spécifié doit être modifié pour correspondre à un nom dans SYSIBM.LOCATIONS.

SQLSTATE :
42705

CODE RETOUR -948

DISTRIBUTED OPERATION IS INVALID

Explication :
L’unité d’oeuvre a été lancée avant le démarrage de DDF et l’application a tenté d’effectuer une opération distribuée. L’unité d’oeuvre doit se terminer par une opération de restauration.

Action du système :
Dans les environnements IMS et CICS, toutes les instructions SQL sont rejetées jusqu’à ce qu’une annulation se produise. Dans les autres environnements, toutes les instructions SQL autres qu’un ROLLBACK statique sont rejetées jusqu’à ce qu’un ROLLBACK statique soit exécuté.

Réponse du programmeur :
Une application qui effectue des mises à jour de base de données locales avant le démarrage de DDF ne peut pas effectuer d’opérations distribuées au sein de la même unité de travail. L’unité de travail actuelle doit être terminée par une opération de restauration et une nouvelle unité de travail doit être initiée avant que toute opération SQL puisse être effectuée.

Redémarrez l’unité de travail en cours.

SQLSTATE :
56062