Brevet FR3006480A1 — publié le 20141205

PROCEDE DE CONTROLE DE VERSIONS DE LOGICIELS INSTALLES SUR DES MACHINES INTERCONNECTEES DOMAINE TECHNIQUE DE L'INVENTION La présente invention se rapporte au domaine logiciel, et plus particulièrement à la mise à jour de versions de logiciels installés sur des machines. Plus précisément, l'invention concerne un procédé de contrôle de versions de logiciels installés sur des machines interconnectées. ARRIERE PLAN TECHNOLOGIQUE DE L'INVENTION Pour faire face à l'accroissement considérable de la quantité d'informations numériques et de la complexité des traitements de ces informations, le calcul haute performance (appelé « High Performance Computing » en anglais, abrégé HPC) a été développé. Le HPC désigne l'utilisation d'une grappe (appelée « cluster » en anglais) de calculateurs puissants pour des applications scientifiques ou techniques. Ces calculateurs, qu'on appellera plus génériquement « machines » par la suite, sont interconnectés pour atteindre une puissance de calcul conséquente. Cette puissance permet par exemple de traiter des algorithmes de modélisation de l'univers ou de prévisions météorologiques. Au sein d'une grappe de machines sont définis des profils, chaque profil correspondant à une combinaison de logiciels à installer (ou installés) sur une machine. Ainsi, il est par exemple possible d'assigner un profil administrateur ou encore un profil calculateur à une machine, et des logiciels différents seront installés sur ladite machine suivant son profil. Pour éviter d'installer et mettre à jour manuellement les logiciels, machine par machine, cette tâche est classiquement centralisée au niveau d'un appareil dédié, qui est l'une des machines ayant un profil administrateur. Ledit appareil dédié héberge dans une mémoire tous les fichiers d'installation des logiciels nécessaires, ce qui permet leur installation 1 dans toute la grappe à partir de cet emplacement. De plus, de façon régulière ou sporadique, des corrections (appelées « fix » en anglais) concernant de nouvelles versions de logiciels, qu'on appellera versions disponibles, viennent enrichir cette mémoire. Un administrateur de l'appareil dédié est alors libre de mettre à jour les logiciels installés sur les machines de la grappe (et ses propres logiciels également) en fonction des versions disponibles. Cependant, lorsqu'une correction est envoyée à l'appareil dédié, l'administrateur est incapable de savoir quelles sont les machines de la grappe dont les logiciels installés devraient être mis à jour. De plus, une correction peut concerner des versions disponibles de plusieurs logiciels. Le problème est rapidement complexe puisqu'il est nécessaire d'identifier, pour une correction donnée, les versions disponibles et savoir sur quelles machines sont installés ces logiciels et quelles sont les versions installées. DESCRIPTION GENERALE DE L'INVENTION L'objet de l'invention offre une solution au problème évoqué précédemment, en proposant un procédé, mis en oeuvre par l'appareil dédié, permettant d'identifier de manière centralisée, pour une correction donnée reçue, les machines et les logiciels nécessitant une mise à jour. L'invention concerne donc essentiellement un procédé de contrôle, par un appareil dédié, de versions de logiciels installés sur des machines interconnectées, chaque machine étant associée à une première liste d'identifiants de logiciels installés sur ladite machine, chaque identifiant de logiciel installé étant associé à un numéro de version installée dudit logiciel installé, le procédé comportant les étapes suivantes : - Produire au moins une deuxième liste d'identifiants de logiciels disponibles, chaque identifiant de logiciel disponible étant associé à un numéro de version disponible dudit logiciel disponible - Pour chaque machine, pour chaque identifiant de logiciel disponible de la deuxième liste : 2 o Effectuer un premier test, dont le résultat est : - Positif si l'identifiant de logiciel disponible est identique à un identifiant de logiciel installé de la première liste de ladite machine - Négatif sinon o Si le premier test est positif, effectuer un deuxième test, dont le résultat est : - Positif si le numéro de version disponible associé à l'identifiant de logiciel disponible est supérieur au numéro de version installée associé à l'identifiant de logiciel installé - Négatif sinon o Si le deuxième test est positif, ajouter à une troisième liste un code d'identification de ladite machine associé à l'identifiant de logiciel disponible. Le procédé selon l'invention peut présenter une ou plusieurs caractéristiques complémentaires parmi les suivantes, considérées individuellement ou selon toutes les combinaisons techniquement possibles. Dans un mode de réalisation non limitatif, les étapes de premier test et deuxième test comportent les sous-étapes suivantes : - Envoyer une requête de première liste à ladite machine - Recevoir ladite première liste. Dans un mode de réalisation non limitatif, les étapes de premier test et deuxième test comportent les sous-étapes suivantes : - Envoyer une requête de première liste à une base de données, ladite base de données collectant périodiquement les premières listes des machines. - Recevoir ladite première liste. 30 3 Dans un mode de réalisation non limitatif, la deuxième liste produite est déterminée à partir d'une liste de corrections reçue par l'appareil dédié, chaque correction concernant au moins une version disponible d'un logiciel. Dans un mode de réalisation non limitatif, le procédé comporte une étape de détermination d'une liste de mises à jour à réaliser, par croisement de la liste de corrections reçue et de la troisième liste. Dans un mode de réalisation non limitatif, le procédé comporte une étape d'affichage de la liste de mises à jour à réaliser. Dans un mode de réalisation non limitatif, le procédé comporte une étape de réalisation de mises à jour sur au moins une machine, à l'aide de la liste de mises à jour à réaliser. Dans un mode de réalisation non limitatif, l'appareil dédié est une des machines. L'invention et ses différentes applications seront mieux comprises à la lecture de la description qui suit et à l'examen des figures qui l'accompagnent. BREVE DESCRIPTION DES FIGURES Les figures ne sont présentées qu'a titre indicatif et nullement limitatif de l'invention. Les figures montrent : - A la figure 1, une représentation schématique d'un exemple de grappe de machines interconnectées sur lesquelles sont installées des versions de logiciels ; - A la figure 2, un diagramme représentatif des étapes du procédé selon un mode de réalisation non limitatif de l'invention. DESCRIPTION DETAILLEE D'AU MOINS UN MODE DE REALISATION DE L'INVENTION Sauf précision contraire, un même élément apparaissant sur des figures différentes présente une référence unique. 4 L'invention concerne un procédé METH permettant de tester des versions installées Vx_n de logiciels installés LOGn sur des machines Ck d'une grappe GP (appelée « cluster » en anglais) de machines interconnectées. Le test est réalisé de manière centralisée au niveau d'une des machines CO de la grappe GP, qu'on appellera appareil dédié dans la suite de la description. Le test consiste en la comparaison des versions installées Vx_n des logiciels installés LOGn sur les différentes machines Ck, avec des versions disponibles Vy_m de logiciels LOGm, reçues par l'appareil dédié CO. Le procédé METH permet de déterminer les logiciels installés LOGn et les machines Ck sur lesquels ils sont installés, qui peuvent ou doivent être mis à jour grâce aux versions disponibles Vy_m reçues. A titre d'exemple, et en référence à la figure 1, une grappe GP de machines Ck interconnectées est considérée : la grappe GP comporte une machine d'administration CO, une première machine de calcul Cl, une deuxième machine de calcul C2, et une machine de connexion C3. Des profils ont été assignés à ces différentes machines Ck, un profil définissant une combinaison de logiciels installés LOGn sur lesdites machines Ck. Dans l'exemple considéré, trois logiciels LOGn sont utilisés au sein de la grappe GP : un premier logiciel LOGI, un deuxième logiciel LOG2 et un troisième logiciel LOG3. Trois profils alors définis au sein du groupement : un profil « administration » correspondant à l'installation du premier logiciel LOGI, un profil « calcul » correspondant à l'installation du premier logiciel LOGI et du deuxième logiciel LOG2, et un profil « connexion » correspondant à l'installation du deuxième logiciel LOG2 et du troisième logiciel LOG3. Ainsi, le premier logiciel LOGI est installé sur la machine d'administration CO, à laquelle le profil « administration » est assigné ; le premier logiciel LOGI et le deuxième logiciel LOG2 sont installées sur la première machine de calcul Cl et la deuxième machine de calcul C2, auxquelles le profil « calcul » est assigné ; et le deuxième logiciel LOG2 et le troisième logiciel LOG3 sont installés sur la machine de connexion C3, à laquelle le profil « connexion » est assigné. 5 Dans l'exemple considéré, les versions installées Vx_n sur les machines Ck de la grappe GP sont les suivantes : une - pour la machine d'administration CO, le premier logiciel LOGI est installé sous version Vii _ - pour la première machine de calcul Cl : o le premier logiciel LOGI est installé sous la version V1_1 o le deuxième logiciel LOG2 est installé sous une version V1_2 - pour la deuxième machine de calcul C2: o le premier logiciel LOGI est installé sous la version V1_1 o le deuxième logiciel LOG2 est installé sous une version V2_2 - pour la machine de connexion C3 : o le deuxième logiciel LOG2 est installé sous la version V1_2 o le troisième logiciel LOG3 est installé sous une version V1_3. Ces informations sont regroupées dans des premières listes Lil_Ck : chaque machine Ck est associée à une première liste Lil_Ck d'identifiants de logiciels installés LOGn sur ladite machine Ck, chaque logiciel installé LOGn étant associé à un numéro de version installée Vx_n dudit logiciel installé LOGn. Selon des intervalles de temps réguliers ou non, l'appareil dédié CO reçoit des corrections Fz (appelées « fix » en anglais), concernant une ou plusieurs versions disponibles. Plusieurs corrections Fz peuvent être reçues en même temps par l'appareil dédié CO. Plus précisément, une correction Fz comporte au moins un fichier d'installation d'une version disponible Vy_m d'un logiciel LOGm sous la forme de paquets d'installation, et un fichier FICHz décrivant le contenu de la correction Fz (la liste des fichiers d'installation, des informations liées à la mise à jour, etc). Dans l'exemple considéré, deux corrections Fz sont reçues par la machine d'administration CO, qui est ici l'appareil dédié. Une première correction Fi concerne une deuxième version V2 _i du premier logiciel LOGI et une troisième version V3 2 du _ _ 6 deuxième logiciel LOG2, tandis qu'une deuxième correction F2 concerne une deuxième version V2_3 du troisième logiciel LOG3. La première correction Fi comporte donc un fichier FICH1 indiquant que les fichiers d'installation concernent la deuxième version V2 _i du premier logiciel LOGI et la troisième version V3 2 du deuxième logiciel LOG2. _ _ De même, la deuxième correction F2 comporte un fichier FICH2 indiquant que les fichiers d'installation concernant la deuxième version V2_3 du troisième logiciel LOG3. Dans l'exemple considéré, le procédé METH selon l'invention permet de déterminer que : - le premier logiciel LOGI de la machine d'administration CO est éligible à une mise à jour de la version V1_1 vers la version V2_1 - le premier logiciel LOGI de la première machine de calcul Cl est éligible à une mise à jour de la version V1_1 vers la version V2_1 - le deuxième logiciel LOG2 de la première machine de calcul Cl est éligible à une mise à jour de la version V1_2 vers la version V3_1 - le premier logiciel LOGI de la deuxième machine de calcul C2 est éligible à une mise à jour de la version V1_1 vers la version V2_1 - le deuxième logiciel LOG2 de la deuxième machine de calcul C2 est éligible à une mise à jour de la version V2_2 vers la version V3_2 - le deuxième logiciel LOG2 de la machine de connexion C3 est éligible à une mise à jour de la version V1_2 vers la version V3_2 - le troisième logiciel LOG3 de la machine de connexion C3 est éligible à une mise à jour de la version V1_3 vers la version V2_3. Pour ce faire, en référence à la figure 2, le procédé METH selon l'invention comporte, à réception d'une liste de corrections Li_Fz par l'appareil dédié CD: - Une production Et_PROD d'une deuxième liste Li2 d'identifiants de logiciels LOGm disponibles, chaque identifiant de logiciel disponible LOGm étant associé à un numéro de version disponible Vy_m dudit logiciel disponible LOGm. On note qu'on entend par « produire » l'action de mettre à jour une mémoire à partir de résultat d'un traitement effectué par un microprocesseur. La deuxième liste Li2 7 est déterminée à partir de la liste de corrections Li_Fz. En effet, comme expliqué précédemment, chaque correction Fz comporte un fichier FICHz décrivant le contenu de ladite correction Fz. Dans l'exemple considéré, la deuxième liste Li2 produite comporte : o l'identifiant du premier logiciel LOGI associé à la deuxième version V2_1 du premier logiciel LOGI (cet élément est déterminé à partir du fichier FICH1 de la première correction F1) o l'identifiant du deuxième logiciel LOG2 associé à la troisième version V3_2 du deuxième logiciel LOG2 (cet élément est déterminé à partir du fichier FICH1 de la première correction F1) o l'identifiant du troisième logiciel LOG3 associé à deuxième version V2_3 du troisième logiciel LOG3 (cet élément est déterminé à partir du fichier FICH2 de la deuxième correction F2). - Pour chaque machine Ck, pour chaque logiciel LOGm disponible (représenté par son identifiant) de la deuxième liste Li2 : o Effectuer un premier test Ti, dont le résultat est : - Positif si l'identifiant de logiciel disponible LOGm est identique à un identifiant de logiciel installé LOGn de la première liste Li1_Ck de ladite machine Ck - Négatif sinon. Le premier test Ti permet de déterminer si le logiciel disponible LOGm est installé sur la machine Ck (ce qui correspond à un premier test Ti positif). o Si le premier test Ti est positif, effectuer un deuxième test T2, dont le résultat est : - Positif si le numéro de version disponible Vy_m associé à l'identifiant de logiciel disponible LOGm est supérieur au numéro de version installée Vx_n associé à l'identifiant de logiciel installé LOGn - Négatif sinon 8 Le deuxième test T2 permet de déterminer si une mise à jour du logiciel installé LOGn est possible grâce aux corrections Fz reçues (ce qui correspond à un deuxième test T2 positif). On note que le premier test Ti et le deuxième test T2 nécessitent un accès aux premières listes Lil_Ck des machines Ck. Pour cela, deux modes de réalisation sont possibles : - Dans un premier mode de réalisation, qui est le mode de réalisation préféré, l'appareil dédié CO obtient la première liste Lil_Ck d'une machine Ck par accès direct à ladite machine Ck. La communication entre l'appareil dédié CO et la machine Ck est réalisée via un protocole de communication sécurisé, par exemple le protocole Secure Shell (SSH). L'appareil dédié CO envoie une requête de première liste Lil_Ck à la machine Ck, par exemple via une commande RPM, ce qui lui permet de recevoir ladite première liste Lil_Ck. - Dans un deuxième mode de réalisation, les premières listes Lil_Ck des machines Ck sont stockées dans une base de données BdD, ladite base de données BdD étant mise à jour selon des intervalles de temps réguliers ou non. Les mises à jour permettent de s'assurer que la base de données BdD contient des informations pertinentes et intègres. Cela nécessite une récupération, selon des intervalles de temps réguliers ou non, des premières listes Lil_Ck des machines Ck auprès des machines Ck, puis un stockage desdites premières listes Lil_Ck dans la base de données BdD. L'appareil dédié CO obtient alors les premières listes Lil_Ck par interrogation de la base de données BdD, ce qui permet de meilleures performances. Si le deuxième test T2 est positif, le procédé METH comporte alors une étape d'ajout Et_AJT à une troisième liste Li3 du code d'identification de ladite machine Ck, associé à l'identifiant de logiciel disponible LOGm. La troisième liste Li3 est initialement vide, et est remplie progressivement, à chaque deuxième test T2 positif. Lorsque le premier test Ti, et potentiellement le deuxième test T2, ont été appliqués à chaque machine Ck et chaque logiciel disponible LOGm, la troisième liste Li3 comporte tous les codes 9 d'identification des machines Ck dont un logiciel pourrait être mis à jour grâce aux corrections Fz reçues. Dans l'exemple considéré, la troisième liste Li3 comporte donc finalement : - le code d'identification de la machine d'administration CO associée à l'identifiant du premier logiciel LOGI - le code d'identification de la première machine de calcul Cl associée à l'identifiant du premier logiciel LOGI - le code d'identification de la première machine de calcul Cl associée à l'identifiant du deuxième logiciel LOG2 - le code d'identification de la deuxième machine de calcul C2 associée à l'identifiant du premier logiciel LOGI - le code d'identification de la deuxième machine de calcul C2 associée à l'identifiant du deuxième logiciel LOG2 - le code d'identification de la machine de connexion C3 associée à l'identifiant du deuxième logiciel LOG2 - le code d'identification de la machine de connexion C3 associée à l'identifiant du troisième logiciel LOG3. Le procédé METH comporte ensuite une étape de détermination Et_DET d'une liste de mises à jour Li_MAJ à réaliser, par croisement de la liste de corrections Li_Fz reçue et de la troisième liste Li3. Plus précisément, à chaque identifiant de logiciel disponible LOGm associé à un code d'identification d'une machine Ck de la troisième liste Li3, est associé la correction Fz concernée. Dans l'exemple considéré, la liste de mises à jour Li_MAJ comporte : - le code d'identification de la machine d'administration CO associée à l'identifiant du premier logiciel LOGI associé à la première correction Fi - le code d'identification de la première machine de calcul Cl associée à l'identifiant du premier logiciel LOGI associé à la première correction Fi 10 - le code d'identification de la première machine de calcul Cl associée à l'identifiant du deuxième logiciel LOG2 associé à la première correction Fi - le code d'identification de la deuxième machine de calcul C2 associée à l'identifiant du premier logiciel LOGI associé à la première correction Fi - le code d'identification de la deuxième machine de calcul C2 associée à l'identifiant du deuxième logiciel LOG2 associé à la première correction Fi - le code d'identification de la machine de connexion C3 associée à l'identifiant du deuxième logiciel LOG2 associé à la première correction Fi - le code d'identification de la machine de connexion C3 associée à l'identifiant du troisième logiciel LOG3 associé à la deuxième correction F2. Dans un mode de réalisation, le procédé comporte un affichage Et_AFF de la liste de mises à jour Li_MAJ sur un moniteur de l'appareil dédié CO. Un opérateur sait alors précisément quels logiciels LOGn sur quelles machines Ck sont à mettre à jour, et grâce à quelles corrections Fz. Enfin, dans un mode de réalisation du procédé, le procédé comporte une mise à jour Et_MAJ des logiciels concernés par les corrections Fz, à l'aide de la liste de mises à jour Li_MAJ. 11 REVENDICATIONS1. Procédé de contrôle (METH), par un appareil dédié (CO), de versions de logiciels installés sur des machines (Ck) interconnectées, chaque machine (Ck) étant associée à une première liste (Li1_Ck) d'identifiants de logiciels installés (LOGn) sur ladite machine (Ck), chaque identifiant de logiciel installé (LOGn) étant associé à un numéro de version installée (Vx_n) dudit logiciel installé (LOGn), le procédé (METH) comportant les étapes suivantes : Produire (Et_PROD) au moins une deuxième liste (Li2) d'identifiants de logiciels disponibles (LOGm), chaque identifiant de logiciel disponible (LOGm) étant associé à un numéro de version disponible (Vy_m) dudit logiciel disponible (LOGm) Pour chaque machine (Ck), pour chaque identifiant de logiciel disponible (LOGm) de la deuxième liste (Li2) : o Effectuer un premier test (Ti), dont le résultat est : - Positif si l'identifiant de logiciel disponible (LOGm) est identique à un identifiant de logiciel installé (LOGn) de la première liste (Li1_Ck) de ladite machine (Ck) - Négatif sinon o Si le premier test (Ti) est positif, effectuer un deuxième test (T2), dont le résultat est : - Positif si le numéro de version disponible (Vy_m) associé à l'identifiant de logiciel disponible (LOGm) est supérieur au numéro de version installée (Vx_n) associé à l'identifiant de logiciel installé (LOGn) - Négatif sinon o Si le deuxième test (T2) est positif, ajouter (Et_AJT) à une troisième liste (Li3) un code d'identification de ladite machine (Ck) associé à l'identifiant de logiciel disponible (LOGm). 12. Procédé (METH) selon la revendication précédente, caractérisé en ce que les étapes de premier test (Ti) et deuxième test (T2) comportent les sous-étapes suivantes : - Envoyer une requête de première liste (Li1_Ck) à ladite machine (Ck) - Recevoir ladite première liste (Li1_Ck). 3. Procédé (METH) selon la revendication 1, caractérisé en ce que les étapes de premier test (Ti) et deuxième test (T2) comportent les sous-étapes suivantes : - Envoyer une requête de première liste (Li1_Ck) à une base de données (BdD), ladite base de données (BdD) collectant périodiquement les premières listes (Li1_Ck) des machines (Ck). - Recevoir ladite première liste (Li1_Ck). 4. Procédé (METH) selon l'une des revendications précédentes, caractérisé en ce que la deuxième liste (Li2) produite est déterminée à partir d'une liste de corrections (Li_Fz) reçue par l'appareil dédié (CO), chaque correction (Fz) concernant au moins une version disponible (Vy_m) d'un logiciel (LOGm). 5. Procédé (METH) selon la revendication précédente, caractérisé en ce qu'il comporte une étape de détermination (Et_DET) d'une liste de mises à jour (Li_MAJ) à réaliser, par croisement de la liste de corrections (Li_Fz) reçue et de la troisième liste (Li3). 6. Procédé (METH) selon la revendication précédente, caractérisé en ce qu'il comporte une étape d'affichage (Et_AFF) de la liste de mises à jour (Li_MAJ) à réaliser. 7. Procédé (METH) selon l'une des revendications 5 ou 6, caractérisé en ce qu'il comporte une étape de réalisation de mises à jour (Et_MAJ) sur au moins une machine (Ck), à l'aide de la liste de mises à jour (Li_MAJ) à réaliser. 13. Procédé (METH) selon l'une des revendications précédentes, caractérisé en ce que l'appareil dédié (CO) est l'une des machines (Ck). 14