Brevet FR2661997A1 — publié le 19911115

Système de traitement de données réparties et procédé de gestion de r#esSQurCes pour ce 's'y's:teme La présente invention concerne un procédé de gestion de ressources ( ressources au cours de l'execution drune transaction, telle qu'une table de gestion transactionnelle dans un système de gestion de données réparties, et plus particulièrement à un procédé de gestion de ressources adapté à des opérations bancaires, des réseaux d'informations et autres qui utilisent un système de gestion de données réparties pour réaliser un traitement parallèle de données d'une haute fiabilité et d'une performance élevée. La Figure 3 représente de façon succincte une structure de système de gestion de données réparties. Les systèmes respectifs de traitement de données 1, 2, comportent des unités de gestion de ressources 11, 21 respectivement, pour allouer une ressource utilisée par une transaction qui doit exécuter un traitement de données. On suppose, sur la Figure 3, qu'une ressource 22 existe dans le système 2 de traitement de données. De façon classique, afin d'exécuter un traitement de données par différentes transactions (sous-transactions) dérivées respectivement d'une transaction unique (transaction pilote) dans la même unité de gestion de ressources dans un système construit comme mentionné ci dessus, une ressource est protégée et libérée en identifiant ces sous-transactions dérivées, respectivement comme des transactions différentes. Incidemment, on peut citer à titre d'exemple de documents connus relatifs à la commande exclusive d'utilisation commune de ressources, le document JP-A-62263801. Lorsque, dans un système classique de gestion de ressources pour un système de gestion de données réparties, on exécute un traitement de données en utilisant une ressource identique avec différentes transactions dérivées respectivement par une transaction pilote unique, dans lequel la ressource est protégée par une transaction exécutée préalablement de telle sorte qu'une transaction suivante devant être exécutée ne puisse protéger la ressource (et demeure en condition d'attente de ressource), on ne tient pas compte d'un blocage pouvant se produire entre des sous-transactions.Pour cette raison, si un tel blocage se produit, il peut provoquer, au cours du traitement de la transaction pilote, une condition d'autoblocage où la ressource protégée n'est pas libérée en permanence, entraînant le brusque arrêt du système. Supposons que deux transactions (sous-transactions) prévues pour exécuter un traitement de transaction à distance qui est une espèce d'appel de procédure à distance (désignée par APD), sont dérivées respectivement d'une transaction unique (transaction pilote) produite par un programme (UPA) d'un système de traitement de données (désigné ci-après par "le site I") représenté sur la Figure 3, et que ces sous-transactions exécutent un traitement de données en utilisant une ressource identique 22 existant dans un système 2 de traitement de données (désigné ci-après par "le site Il"). Un déroulement d'un traitement classique pour ce cas sera expliqué en se référant aux Figures 4 et 5. La Figure 4 est un déroulement de traitement qui montre que la sous-transaction I et la sous-transaction 2 sont dérivées dans le site I d'une transaction pilote identique produite dans l'unité de programme automatique (UPA) comme sous-transaction, pour exécuter respectivement un traitement de transaction à distance, le traitement de données étant exécuté en utilisant la ressource 22 dans le site II. Tout d'abord, une unité de gestion de ressources 11 dans le site I demande au site Il d'exécuter le traitement de la sous-transaction 1 dérivée de la transaction pilote. Une unité de gestion de ressources 21 dans le site Il protège la ressource 22 (étape 4-1) puis ensuite la sous-transaction 1 exécute le traitement de données en utilisant la ressource 22 (étape 4-2).La transaction pilote, après que la sous-transaction 1 a complété le traitement de données, dérive la soustransaction 2 comme transaction suivante, puis ensuite l'unité de gestion de ressources 11 sur le site I demande à nouveau au site Il d'exécuter le traitement de la soustransaction 2. L'unité de gestion de ressources 21 dans le site Il tente de protéger la ressource 22 (étape 4-3) cependant, si la ressource 22 est en cours d'utilisation par une autre transaction, l'unité de gestion de ressources 21 ne peut la protéger, d'où il résulte que la transaction 2 demeure en position d'attente de libération de ressource et le traitement de données (étape 4-4) est retardé.La libération de la ressource 22 est effectuée en un point de synchronisation X (étape 4-5) où tous les traitements de données exécutés par les sous-transactions 1, 2 ont été complétés du fait de la nécessité d'assurer l'adaptation du traitement de la transaction. La Figure 5 représente un organigramme relatif à la protection de la ressource 22 par les sous-transactions 1 et 2. La sous-transaction 1 émet une demande de protection de la ressource 22 (étape 5-1). L'unité de gestion de ressources 21 sur le site Il examine si la ressource 22 est occupée ou pas (étape 5-5). Si la ressource 22 n'est pas occupée, l'unité de gestion de ressources 21 la protège (étape 5-6), d'où il résulte que la transaction 1 exécute le traitement de données en utilisant la ressource 22 (étape 5-2). La ressource 22 protégée par la soustransaction 1 n'est libérée qu a un point de synchronisation (étape 4-5 représentée sur la Figure 4). Par ailleurs, la sous-transaction 2 émet aussi une demande de protection de la ressource 22 (étape 5-3). L'unité de gestion de ressources 21 examine si la ressource 22 est occupée ou pas ; cependant étant donné que la ressource 22 est en cours d'utilisation, l'unité de gestion de ressources 21 ne peut pas la protéger, d'où il résulte que la sous-transaction 2 doit être en attente jusqu a ce que la ressource 22 soit libérée. La libération de la ressource 22 est effectuée par la suite au point de synchronisation où les transactions 1, 2 ont complété tout le traitement de données. En d'autres termes, lorsque toutes les transactions dérivées à partir d'une transaction pilote identique ont complété le traitement de données, la transaction pilote émet une demande de libération de ressources, d'où il résulte que la ressource est, par la suite, libérée. Cependant, le traitement de données exécuté par la sous-transaction 2 est maintenu en attente jusqu a ce que la ressource 22 soit libérée ; ensuite le point de synchronisation n'est pas atteint aussi longtemps que le traitement de données par la sous-transaction 2 n'est pas complété, d'où il résulte un auto-blocage qui provoque l'arrêt brusque du système. Un objet de la présente invention est de fournir un système de gestion de ressources qui est en mesure d'éviter que se produise un auto-blocage et d'exécuter avec efficacité un traitement de données lorsque différentes transactions (sous-transactions) dérivées respectivement à partir d'une transaction identique (transaction pilote) exécute un traitement de données en utilisant une ressource identique dans un système de gestion de données réparties. Pour réaliser l'objet ci-dessus, la présente invention, lorsque différentes transactions (sous-transactions) dérivées respectivement d'une transaction identique (une transaction pilote) exécutent un traitement de données en utilisant une ressource identique, est adaptée pour reconnaître ces sous-transactions ainsi que la transaction identique et pour permettre à une sous-transaction suivante dérivée de la transaction pilote identique d'utiliser la ressource même si celle-ci est en cours d'utilisation par une sous-transaction antérieure. Afin d'exécuter le traitement de données en utilisant une ressource identique entre différentes soustransactions, dérivées respectivement d'une transaction pilote identique, même si les sous-transactions respectives sont autorisées à utiliser la ressource, la cohérence du traitement de la transaction est assurée. Pour cette raison, il est possible d'éviter que se produise un blocage entre ces sous-transactions qui serait dû à une ressource en attente ainsi qu un arrêt brusque du système. La Figure 1 est un schéma représentant un exemple d'organigramme utilisé pour expliquer le traitement de protection de ressources, suivant la présente invention les Figures 2A et 2B sont des schémas représentant respectivement un exemple d'une table de gestion de ressources utilisée dans la présente invention La Figure 3 est un schéma représentant un exemple de la structure d'un système de gestion de données réparties La Figure 4 est un schéma représentant un exemple dans lequel une pluralité de sous-transactions dérivées d'une transaction pilote identique exécute un traitement de données en utilisant une ressource identique ; et La Figure 5 est un organigramme utilisé pour expliquer un traitement de protection de ressource d'un système suivant une technique antérieure. Un mode de réalisation de la présente invention sera décrit en détail ci-après, en se référant aux dessins annexés. On suppose aussi, dans le présent mode de réalisation, que la structure d'un système de gestion de données réparties objectif est construit comme représenté sur la Figure 3 et que les sous-transactions 1, 2, sont dérivées d'une transaction pilote identique produite par l'UPA dans un site I, comme sous-transactions pour exécuter respectivement un traitement de transactions réparties qui est une espèce de traitement de transactions à distance et que le traitement de données est exécuté en utilisant une ressource 22 dans un site Il comme représenté sur la Figure 4. La Figure 1 représente un organigramme d'un traitement de protection de ressources exécuté par une unité de gestion de ressources 21 dans le site Il dans lequel la présente invention est mise en oeuvre. Lorsqu'une unité de gestion de ressources il sur le site I, qui demande au site Il d'exécuter le traitement d'une sous-transaction dérivée d'une transaction pilote, elle émet une demande accompagnée d'informations supplémentaires sur la source d'où a été dérivée la soustransaction concernée (transaction pilote d'identification ID : ici la transaction pilote 0). Par ailleurs, l'unité de gestion de ressources 21 sur le site Il, comporte une table de gestion de ressources destinée à gérer l'utilisation des ressources par une paire constituée par une transaction pilote et une sous-transaction. Sur la Figure 1, la sous-transaction 1 émet une demande de protection de la ressource 22 (étape 1-1). L'information concernant la source de la sous-transaction 1 (c'est-à-dire la transaction pilote 0) est ajoutée à cette demande de protection de ressource. L'unité de gestion de ressources 21 sur le site Il, examine, en se référant à la table de gestion de ressources si la ressource 22 est occupée ou pas (étape 1-5). Si la ressource 22 n'est pas occupée, l'unité de gestion de ressources 21 la protège (étape 1-6) d'où il résulte que la sous-transaction 1 exécute un traitement de données en utilisant la ressource 22 (étape 1-2). La Figure 2A représente le contenu de la table de gestion de ressources lorsque la ressource 22 est protégée.La ressource 22 protégée par la sous-transaction 1 n'est libérée que lorsque le point de synchronisation est atteint (étape 4-5 représentée sur la Figure 4) où les soustransactions 1, 2 ont complété tout le traitement de données. Après la terminaison du traitement de données exécuté par la sous-transaction 1, la sous-transaction 2 est dérivée par la transaction pilote 0, et la sous-transaction 2 émet une demande pour protéger la ressource 22 (étape 1-3). L'information de source de dérivation ajoutée à la sous-transaction 2 désigne la transaction pilote 0 qui est la même que l'information ajoutée à la sous-transaction 1. L'unité de gestion de ressources 21 dans le site Il examine, en se référant à la table de gestion de ressources (étape 1-5) si la ressource 22 est occupée ou pas. Dans le présent mode de réalisation, étant donné que la ressource 22 demeure dans une condition d'utilisation (Figure 2A), l'unité de gestion de ressources 21 détermine ensuite si la sous-transaction qui est en cours d'utilisation de la ressource 22 et la sous-transaction qui a émis la demande de protection de ressource, ont été dérivées ou pas de la transaction pilote identique (étape 1-7). Si ces transactions sont dérivées de la transaction pilote identique, l'unité de gestion de ressources 21 autorise la sous-transaction qui a émis la demande de protection de ressources à utiliser la ressource 22 (étape 1-8).Dans le présent mode de réalisation, étant donné que la soustransaction 1 qui protège la ressource 22 et la soustransaction 2 qui a émis une demande de protection de la ressource 22, ont été l'une et l'autre dérivées de la transaction pilote 0, la sous-transaction 2 est autorisée à utiliser la ressource 22, d'où il résulte que la soustransaction 2 exécute un traitement de données en utilisant la ressource 22 (étape t-4). La Figure 2B représente le contenu de la table de gestion de ressources lorsque la sous-transaction 2 est autorisée à utiliser la ressource 22. Après cela, lorsque le traitement de données exécuté par les sous-transactions 1, 2 a été entièrement complété, la transaction pilote 0 émet une demande de libération de ressource, et conséquemment l'unité de gestion de ressources 11 dans le site I informe le site Il de la libération de la ressource 22. A la réception de cette information, l'unité de gestion de ressources 21 dans le site Il, remet à zéro la table de gestion de ressources indiquant une condition d'utilisation de la ressource 22. Dans le présent mode de réalisation, la condition représentée sur la Figure 2B indique une remise totale à zéro. Dans le mode de réalisation, les deux sous-transactions 1, 2 sont dérivées de la transaction pilote identique, et elles utilisent en commun la ressource 22, à titre d'exemple ; cependant, le même traitement que celui expliqué ci-dessus est exécuté s'il existe plus de trois sous-transactions dérivées d'une transaction pilote identique. De plus, on suppose dans le mode de réalisation que la ressource existe dans le site Il ; cependant, il va de soi que le même traitement est exécuté dans le cas où une ressource existe dans le site I ou que des ressources existent dans l'un et l'autre des sites I et Il. Comme expliqué ci-dessus, suivant la présente invention, lorsque différentes transactions (soustransactions) sont dérivées d'une transaction identique (transaction pilote) pour exécuter un traitement de données dans un système de gestion de données réparties. Meme si une ressource est utilisée en commun par ces transactions, le traitement de données peut être exécuté sans provoquer une condition d'attente de ressource, en reconnaissant les transactions respectives comme la transaction identique, d'où il résulte qu'il est possible d'éviter que se produise un auto-blocage ou un brusque arrêt du système. Il est aussi possible d'exécuter en parallèle les soustransactions respectives, ce qui conduit à réaliser un traitement parallèle de données de haute performance. REVENDICATIONS 1. Système de traitement de données réparties pour gérer de façon distributive une ressource (22) et exécuter un traitement de transaction par une pluralité de systèmes de traitement de données caractérisé en ce au'il comporte un premier moyen (21) pour identifier, lorsqu'un système de traitement de données exécute un traitement de données au moyen d'une pluralité de deuxièmes transactions (1, 2) dérivées d'une première transaction, si ladite pluralité de deuxièmes transactions sont la transaction identique ou pas ; et un deuxième moyen (21) pour effectuer une commande exclusive de la ressource sur la base du résultat reconnu par le premier moyen. 2. Système de traitement de données réparties selon la revendication 1, caractérisé en ce que lorsqu'une des deuxièmes transactions doit utiliser la ressource, ledit deuxième moyen autorise ladite deuxième transaction à utiliser ladite ressource si l'identification du résultat du premier moyen (11) montre que les deuxièmes transactions sont identiques même si la ressource est occupée. 3. Système de traitement de données réparties selon la revendication 2, caractérisé en ce que ledit deuxième mayen libère la ressource en un point de synchronisation (X) où tout le traitement de données exécuté par les deuxièmes transactions a été complété. 4. Procédé de gestion de ressources pour un système de traitement de données réparties pour gérer de façon distributive une ressource par une pluralité de systèmes de traitement de données et pour exécuter un traitement de transaction caractérisé en ce qu'il comporte les étapes suivantes une première étape (1-7) pour identifier, lorsqu'un système de traitement de données exécute un traitement de données au moyen d'une pluralité de deuxièmes transactions (1, 2) dérivées d'une première transaction, si ladite pluralité de deuxièmes transactions est la transaction identique ; et une deuxième étape (1-5 à 1-8) pour effectuer une commande exclusive de la ressource sur la base de la reconnaissance du résultat obtenu par la première étape. 5. Procédé de gestion de ressources selon la revendication 4, caractérisé en ce que lorsque l'une des deuxièmes transactions doit utiliser une ressource, ladite deuxième étape autorise ladite deuxième transaction à utiliser ladite ressource si le résultat de l'identification de la première étape montre que les deuxièmes transactions sont identiques même si la ressource est occupée. 6. Procédé de gestion de ressources selon la revendication 5, caractérisé en ce que ladite deuxième étape cohorte en outre l'étape qui consiste à libérer la ressource en un point de synchronisation où tout le traitement de données exécuté par les deuxièmes transactions a été complété.