- CICS
-
Customer Information Control System
Le système appelé CICS (en anglais Customer Information Control System) est un système qui permet d'effectuer des opérations transactionnelles (en général consultation ou mise à jour de bases de données ou de fichiers) avec une très grande économie de moyens. À titre indicatif, un IBM 3033 équipé de 16 Mo de mémoire – qui correspondait à peu près en puissance de calcul à un Pentium 100 – pouvait gérer de front 17 500 terminaux CICS[1].
Sur un processeur actuel (2009) de la série Z, CICS peut servir sans difficulté des milliers de transactions par seconde[2], ce qui le rend en particulier tout à fait apte aux transactions de terminaux bancaires automatiques.
Sommaire
Principe de fonctionnement
L'économie de moyens de CICS utilise les principes suivants :
- Concept totalement démarqué du temps partagé : on n'interrompt pas une tâche (c'est le nom que CICS donne à une séquence de traitement), on la déroule toujours jusqu'au bout, et c'est à elle de rendre le contrôle. Il n'y a donc jamais de contexte complexe de programme à sauvegarder, ni d'appel coûteux au superviseur.
- Les tâches doivent être courtes tant en taille qu'en temps de traitement. La notion de "courte" est passé au fil du temps de 4 K en 1974 à 64 K et plus en 1985.
- Une seule tâche est utilisée à la fois.
- Une tâche peut enchaîner automatiquement une autre tâche sur action d'un événement.
- Les tâches, ne pouvant pas être interrompues (on peut tout au plus les tuer si elles posent problème en cours de mise au point) n'ont pas besoin d'être réentrantes, mais juste sériellement réutilisables. Il leur suffit de laisser le système dans l'état où elles souhaitent le trouver en arrivant.
- Une tâche reste en mémoire après utilisation, prête à servir sans appel disque si elle est à nouveau sollicitée.
- Les tâches utilisent la conception des terminaux 3270 qui ne sollicitent pas le système à chaque caractère frappé, mais uniquement lors de la transmission d'un écran entier en mode full-screen (ou plein écran). Ainsi 1000 terminaux actifs lançant une transaction complète toutes les 20 secondes n'engendrent que 50 modestes transactions par seconde.
Avantages et inconvénients
Avantages propres à CICS
- Une tâche peut être activée ou désactivée à la demande, voire remplacée au vol par une autre, sans arrêt du reste du système.
- CICS met à l'abri de tout risque de piratage : un terminal ne dispose jamais d'un shell, puisqu'il s'agit d'un terminal rattaché à l'application CICS et non au système qui se trouve au-dessus. Ce terminal ne peut s'échapper du contrôle de CICS (ce qui est parfois souhaitable) que si l'on crée en CICS une tâche de déconnexion... qui ne peut elle-même être codée depuis un terminal CICS !
- Gestion des possibilités « full-screen » des écrans de mainframes, y compris lors des changements de génération de ceux-ci (3277 vers 3278, 3278 vers 3278 PS, 3270 et 3270 PS, 3290, 3170 avec souris...), ces nouvelles technologies se traduisant simplement par des possibilités d'appels supplémentaires sans nécessité de modifier l'existant.
Inconvénient de CICS
La table des transactions était gardée en forme séquentielle et non hash-codée. Le parcours séquentiel de la table à chaque nouvel appel produisait de grosses inefficiences si un système avait plusieurs milliers de noms de tâches. Les statistiques fournies par CICS permettaient d'atténuer un peu cet inconvénient en mettant en tête de table (manuellement) les noms des transactions les plus utilisées.
Concurrent de CICS
Un sous-système non-IBM nommé ROSCOE utilisait un pseudo-conversationnel du même type, mais demandait en revanche une recompilation intégrale à chaque nouvelle transaction ajoutée au système.
Techniques conceptuellement cousines
Simulation du multitâches en DOS
Le principe permettant à CICS de travailler en transactionnel sur un système sans effectuer de multitâches au sens propre du terme inspira en France nombre de serveurs Minitel gérant 80 connexions en simultané apparent[3] sur un 386 travaillant sous DOS… qui était lui-même monotâche.
Modules Drupal
Le gestionnaire de contenu Drupal fait appel à des techniques transactionnelles assez proches de CICS bien qu'implémentées dans un contexte largement plus riche (langage interprété, accès par le web, environnements de développement intégrés, contenu multimédia).
Notes et références
- ↑ Source : carte SPL (Selected Product Line) d'IBM, aide-mémoire des ingénieurs commerciaux, vers 1980
- ↑ sous réserve de travailler en mémoire ou avec un nombre de bras disques adapté
- ↑ Des cartes X.25 intelligentes, en général équipées de processeurs 68000, géraient seules les couches 1, 2 et 3 à leur niveau
Voir aussi
Lien externe
(en) KICKS for .NET : CICS pour Microsoft .NET.
- Portail de l’informatique
Catégories : Grand Système IBM | Système d'exploitation
Wikimedia Foundation. 2010.