Histoire du Transactionnel
en construction
Retour histoire de l'informatique
©2002 Jean Bellec
version provisoire 13 déc. 2003
| La révolution transactionnelle dans les
entreprises. La révolution transactionnelle n'a comme équivalent en informatique que la naissance de la mécanographie au moment où Hermann Hollerith a mécanisé le recensement américain de 1890. Le traitement mécanographique des informations s'est fait par lots depuis cette date. Il faut noter que cette méthode d'opération correspondait à presque toutes les opérations manuelles de traitement d'information telles que les statistiques dont le recensement, la comptabilité, les bilans des entreprises, la paye des employés, les taxes qui sont par nature ou par habitude des opérations "batch" et qui le restent encore aujourd'hui. La réalité est échantillonnée sur une base annuelle, trimestrielle, mensuelle ou quotidienne. On ne sait pas encore bien à l'heure actuelle l' influence de la fréquence d'échantillonnage sur le système économique, mais il est probable qu'une partie du bruit remarqué dans le système boursier a quelque chose à voir avec la fréquence des indicateurs. Cependant, comme il y a des bénéficiaires institutionnels de ce bruit, comme il y a toujours des réticences aux changements, nombre de processus desservis maintenant par les ordinateurs restent soumis aux règles de batch processing. Cela durera aussi longtemps qu'on n'aura pas su repenser les systèmes de régulation micro-économiques. Par contre, certains problèmes de traitement d'informations de gestion sont par nature peu conformes au traitement par lots. Certes, on a pensé dans les années 1950 repenser l'entreprise autour de l'ordinateur, mais cette approche s'est heurté à la reconnaissance de l'importance économique de facteurs comme le volume des stocks ou bien la durée de l'interaction avec un client. C'est ainsi qu'est née à la fin des années 1950 des réflexions à la fois dans les entreprises et chez les constructeurs sur un usage différent de l'informatique naissante. La gestion en temps réel des stocks ne pouvait que rarement se satisfaire d'informations sur un support d'accès séquentiel (cartes perforées ou bandes magnétiques) ayant un temps d'accès dépassant la minute et donc peu susceptible de remplacer la recherche par un humain dans un support papier aidé ou non d'outils comme les fiches Rolodex® ou de ses concurrents. La réflexion menée en ce sens au laboratoire IBM de San José conduisit au développement du disque magnétique RAMAC puis de différents essais de supports qui ne parvinrent pas d'ailleurs à supplanter les disques. Un ordinateur de recherche dans un dispositif de stockage "à accès aléatoire" ne représentait pas toutefois qu'un aspect de la solution du problème. Le temps d'accès pour inférieur qu'il soit devant les solutions "humaines" était non négligeable et les performances d'un système tel que le RAMAC 305 ne suffisaient pas aux besoins des entreprises devant mobiliser plusieurs employés à la gestion d'une catégorie de stocks. Il est inutile de préciser que le prix d'un RAMAC pour inférieur qu'il fut à un IBM 705 ou un Gamma 60 de l'époque était bien supérieur à celui d'un PC et au salaire mensuel de l'employé qui le servait. Pour pouvoir gérer en temps réel les stocks par plusieurs employés
simultanément, soit pour des raisons d'emplacements de postes de travail, soit parce que
l'opération de mise à jour s'accompagnait d'un dialogue avec le client, il était
nécessaire de supporter plusieurs terminaux connectés à ordinateur gérant le stock.
Deux solutions divisèrent la communauté informatique des années 1960, la première
comportait un ordinateur frontal regroupant les messages et préparant le traitement dans
un ordinateur de gestion de la base d e données, l'autre donnait à un seul ordinateur la
gestion de toute la transaction. En pratique, la première solution fut aussi utilisée
sous couvert d'un ordinateur unique (dans IMS de IBM par exemple), le mise en queue des
messages étant faite par un processus spécialisé. En fait, la mise en place dans les entreprises d'un système
transactionnel s'effectua en plusieurs phases. La première étant souvent l'utilisation
de terminaux pour la saisie interactive d'informations traitées en batch la nuit. Cette
saisie permettait de faire l'économie de la phase vérification d'un traitement
mécanographique traditionnel. Dans d'autres cas, la priorité était donnée à
l'instauration d'un système de consultation (sans mise à jour) d'informations permettant
l'accès à certaines bases de données de l'entreprise mises à jour sur une base
quotidienne, économisant ainsi l'impression et la diffusion de gros volumes de papier de
valeur fugitive. De tels systèmes survivront encore longtemps, le besoin de lire étant
supérieur à celui de créer. Caractéristiques des transactions Atomicité Consistance Isolation Durabilité Conséquences sur les systèmes d'exploitation des ordinateurs. Protection
|
Multithreading Le temps de traitement d'une transaction ne dépend pas que du temps pris par l'ordinateur et la transmission des données. Il dépend aussi du temps de dialogue entre l'opérateur et son client à l'occasion des interactions. En effet, si certaines transactions ne comportent qu'une question et une réponse, ce n'est pas le cas le plus général et des choix sont souvent soumis au client en fonction de la disponibilité des stocks d'objets concernés. Il existe même des super-transactions qui comportent des processus asynchrones comme la déconnexion du client et sa reconnexion depuis un autre terminal. Ces super-transactions restaient actuellement gérées selon des protocoles spécifiques à l'application si bien que le rôle du système d'exploitation restait limité à la gestion d'une transaction multi-échanges depuis un même terminal ou du moins depuis la même adresse. Il est évident qu'il est nécessaire de ne monopoliser que le minimum de ressources pour des transactions en attente de la réflexion du client ou celles qui étaient en cours de transmission avant la généralisation des affichages rapides. Mais le temps d'accès aux fichiers sur mémoire de masse représentait tout de même une part importante du temps-ordinateur et très tôt, les concepteurs ont éprouvé le besoin de traiter en parallèle plusieurs transactions. Une première approche -sur IMS- a été de paralléliser les divers types de transactions en leur affectant à chaque type un serveur et de multiplexer ces serveurs à la manière du multitraitement en batch. Cette approche convient à certaines applications très variées, mais est peu efficace dans le cas des transactions très variées et pour une utilisation en multiprocesseurs. Le programme du serveur doit être réutilisable, mais non nécessairement réentrant. Une autre approche a été développée à l'origine pour le système SABRE et les successeurs spécialisés APARS de IBM, puis utilisé par CICS et les différents systèmes de Bull et Honeywell (TDS, DM-IV TP...) et de Microsoft (MTS), c' est l'exécution des transactions en multi-threading avec du code partagé (donc complètement réentrant). Il peut s'avérer coûteux d'affecter une thread à chaque transaction en cours (ce nombre peut se monter à plusieurs centaines), si bien que l'on distingue les transactions actives des transactions dormantes, les premières constituant un cache de l'ensemble de toutes les transactions. Le nombre de transactions actives maximum est au moins égal à celui du rapport entre le temps d'attente des accès à la base de données au temps consommé par le processeur dans une transaction. Intégrité Pour cela un mécanisme de contrôle de la concurrence entre threads doit être créé et il doit couvrir tous les accès aux bases de données y compris ceux du batch processing. En cas d'étreinte fatale, le mécanisme doit tuer la thread la moins coûteuse à recommencer. Bien entendu, il est nécessaire d'annuler toutes les modifications faites sur les bases de données avec un journal des modifications. Commitment Évolution des systèmes transactionnels. Entre 1980 et 1985, alors qu'on pouvait penser que les systèmes
transactionnels avaient atteint leur maturité avec CICS/VS et TDS, la généralisation du
remplacement de terminaux traditionnels (3270 et VIP) par des micro-ordinateurs causa une
certaine remise en cause des acquis. Les mainframers avaient d'abord pensé à utiliser
les capacités de traitement des PC pour décharger ordinateur central des fonctions de
saisie et de mise en page de l'édition, voire de l'impression de documents et d'utiliser
pour cela un émulateur de terminaux sans utiliser la mémoire du ordinateur par
l'application. Le retard à la disponibilité d'outils de création d'applications
distribuées provoqua la vogue d'une remise en question du modèle transactionnel. Les
applications de l'avenir seraient client-serveur et les mainframes seraient
remplacés par de simples serveurs de bases de données à qui les ordinateurs individuels
transmettraient des requêtes SQL. La mémoire de la transaction encours serait conservée
dans le PC et pourrait, si besoin était, être accédée par le central. L'avantage de ce
modèle était essentiellement l'abaissement du coût du matériel nécessaire et
l'utilisation de logiciel standard, même de logiciel libre. Il est certain que beaucoup de problèmes transactionnels sont plus économiquement gérés par des systèmes distribués à base de PC, à condition que leur système d'exploitation soit doté de fonctions mises au point pour les mainframes, ce qui ne s'est répandu qu'à la fin du XXe siècle et que le traitement de la transaction n'implique pas d'autres ordinateurs autres que le seul client et leurs serveurs.
|