FR 2799290 A1 20010406 FR 9912364 A 19991004 Procédé de recherche d'un noeud dans un arbre de contenance d'un système de gestion de machines. Domaine technique: La solution concerne un procédé de recherche d'au moins un noeud dans un arbre de contenance d'un système de gestion de machines d'un système informatique. La solution s'applique à toute recherche de noeuds dans une structure aroorescente comprenant des noeuds comportant des propriétés (attributs, ) Le système informatique comprend au moins un système de gestion et au moins une machine connectée à ce système de gestion. Un système de gestion de machines de type OpenMaster (marque déposée par la société BULL SA), connu de l'homme du métier, est particulièrement bien adapté pour la mise en #uvre de la présente solution. Le terme gestion est utilisé pour être conforme à la traduction de Management de l'Agence Française de Normalisation (Afnor). Ce système de gestion peut être assimilé à un ensemble de services qui interagissent entre eux pour donner une représentation virtuelle du monde réel qui est le système informatique. C'est une représentation virtuelle qu'un administrateur manipule (surveillance, action) pour gérer le monde réel. La représentation virtuelle porte sur des objets du monde réel et constitue un modele objet Cette représentation virtuelle est matérialisée par # intermédiaire d'un arbre de contenance. Le terme arbre de contenance est utilisé pour être conforme à la traduction de MIB (Management Information Base) Par définition, l'arbre de contenance est orienté objet. L'arbre de contenance utilisé dans un système de gestion de type OpenMaster est un logiciel conforme au protocole CMIP. Cet arbre comprend en ses noeuds 1 ensemble des objets gérés par le système de gestion Par définition, un objet géré est une vue abstraite, définie pour les besoins de gestion, d'une ressource logique ou physique d'un système. Les noeuds de l'arbre reliés entre eux par l'intermédiaire de branches entretiennent entre eux des relations supérieur-subordonné. De manière générale et connue de l'homme du métier, pour créer un oojet dans cet arbre, il faut choisir sa classe, le nommer conformément aux liens de nommage relatifs à la classe, et donner une valeur à ses attributs Par définition, un arbre de contenance est un arbre constitué d'instances Une classe d'objets gérés est un ensemble nommé d'objets gérés partageant les mêmes propriétés Une propriété d'un objet inclut des attributs Un attribut est une caractéristique d'un objet géré qui a un type nommé et une valeur La valeur d'un attribut d'un objet peut être consultée ou modifiée par une requête adressée à l'objet. Nommer un objet d'une classe donnée, c'est choisir, conformément aux liens de nommage possibles, ce que l'homme du métier appelle le plus souvent son Full Distinguished Name FDN, c'est-à-dire le chemin d'accès à ce noeud à partir de la racine de l'arbre de contenance et choisir son Distinguished Name DN, c'est-à-dire son nom dans l'arbre Le nommage des objets fait appel à un arbre de nommage Chaque objet se situe dans 1 arbre de nommage par rapport à un supérieur dont il est le subordonné Cette relation subordonnée-supérieure est spécifiée au niveau des classes par un lien de nommage (NAME BINDING en anglais). Lors de la création d'un objet, il faut choisir un lien de nommage parmi les liens de nommage possibles pour les objets de cette classe. Plusieurs liens de nommage peuvent être défini pour une même classe, mais un objet ne peut avoir qu'un seul supérieur immédiat La solution a aussi pour objet une interface graphique pour la mise en #uvre du procédé de recherche L'art antérieur: Par définition, le niveau d'un noeud de l'arbre est le nombre de branches qu il faut parcourir de la racine jusqu'à ce noeud Les noeuds terminaux sont appelés feuilles. L arbre de contenance est un programme que l'on peut représenter de façon hiérarchisée à l'aide d'un outil de navigation L'outil de navigation comprend une interface graphique qui décrit les moyens mis en oeuvre par ce programme pour entrer en contact avec un utilisateur Cet outil représente graphiquement la structure arborescente et hiérarchisée de l'arbre de contenance Par définition, une interface graphique a pour fonction de décrire # arbre de contenance pour entrer en contact avec un utilisateur Un écran d ordinateur de type PC (Personal Computer), connu de l'homme du métier, aonne une visualisation de l'arbre de contenance Un outil de navigation donne également la possibilité à un utilisateur d obtenir des informations sur les objets qu'il souhaite manipuler Il existe un outil de navigation généralement utilisé pour visualiser de façon interactive les objets situés dans l'arbre de contenance Cet outil de navigation peut être celui utilisé sur les ordinateurs de type PC (Personal Computer) qui représente graphiquement la structure arborescente et hiérarchisée de l'arbre de contenance Cet outil de navigation donne la possibilité de rechercher d'objets dans un arbre Un premier mécanisme consiste à naviguer dans l'arbre à partir d'un noeud de départ ND1 quelconque, en général la racine de l'arbre, et à rechercher le premier noeud de l'arbre correspondant au noeud cherché La recnerche débute par le noeud de départ ND1de l'arbre et se poursuit par un noeud subordonné et ainsi de suite jusqu'à ce que la recherche aboutisse à un noeud terminai ou feuille de l'arbre NF1 Ensuite, à partir de cette feuille, le procédé de l'art antérieur consiste à remonter dans l'arbre vers la racine, et à analyser toutes les branches non encore analysées Cette dernière analyse consiste a commencer la recherche à partir de la feuille analysée NF1 et à remonter dans l'arbre vers le noeud supérieur cette feuille NF1 A partir de ce noeud supérieur, le mécanisme détecte si d'autres branches qui lui sont subordonnées n'ont pas été analysées Dans l'affirmative, le noeud père constitue un nouveau noeud de départ ND2 et le mécanisme effectue le même traitement que celui expliqué précédemment la recherche débute par le noeud ND2 et se poursuit par un noeud subordonné et ainsi de suite jusqu'à ce que larecherhce aboutisse à une nouvelle feuille NF2 de l'arbre Si le noeud à rechercher n'est pas identifié, le mécanisme se poursuit en remontant l'arbre de la même façon qu'expliqué précédemment. Dans la négative, le mécanisme remonte dans l'arbre d'un niveau supérieur ND3, ce noeud constituant un noeud de départ pour la recherche Le gros problème rencontré avec cette solution est que la recherche devient lourde et laborieuse. La recherche analyse des niveaux de l'arbre .nutiles entraînant un coût en temps de recherche important. Un deuxième procédé connu de l'état de la technique consiste à stocker en mémoire tous les objets d'un niveau n , et à stocker à partir des objets de niveau n les objets de niveau n+1 subordonnés Le gros problème est que # arbre de contenance contient un nombre considérable de noeuds. L utilisateur est donc contraint constamment de gérer lui-même l'espace mémoire c'est-à-dire de stocker les noms des objets de l'arbre d'autant plus que la gestion de la mémoire par l'utilisateur s'effectue sur deux niveaux de l'arbre de contenance. En conséquence, à un instant donné de la recherche, la mémoire doit stocker les noeuds de niveau n dont on a pas encore mémorisé les noeuds subordonnés et les noeuds subordonnés aux noeuds de niveau n Par exemple, si on considère qu'un arbre peut contenir 50000 noms d'objets de 10 caractères et que un caractère équivaut à un octet, 1 utilisateur doit stocker en mémoire et pour un seul niveau 500000 octet Dans la suite de la description, le terme domaine utilisé signifie un ensemble d'objets de même niveau La solution Un premier but de la solution est de réduire considérablement la perte de temps d'acquisition des noeuds (qui peuvent être des milliers) non nécessaires à la recherche et ainsi d'accéder à un objet quelconque de l'arbre de contenance en un temps très réduit Un deuxième but visé de la solution est aussi de décharger l'utilisateur de la gestion de la mémoire Un troisième but de l'invention est d'en réduire le coût. A cet effet, la solution a pour objet un procédé de recherche d'au moins un oojet inclus dans un arbre de contenance inclus dans un système informatique comprenant des ressources physiques et/ou logicielles, ledit système informatique comprenant au moins une mémoire de stockage d'informations, ledit arbre étant un programme représenté par # intermédiaire d'une structure organisée de manière hiérarchique avec une racine (ROOT) et des noeuds nommés appelés objets associés à des ressources respectives du système et relies par l'intermédiaire de branches, caractérisé en qu'il consiste # à inclure dans un niveau un type de ressource respectif, # à regrouper lesdits objets en au moins un domaine, un domaine étant un ensemble d'objets de même niveau, le niveau d'un noeud définissant le nombre de branches qu'il faut parcourir de la racine jusqu'à ce noeud, # à élire tout ou partie d'un nom d'un noeud inclus dans un domaine, et caractérisé en ce qu'il consiste, successivement, jusqu'à ce que le nom du noeud élu soit identifié # a analyser les objets d'un niveau de l'arbre récursivement # le passage d'un niveau (n) à un autre niveau (n+1 ) s'effectuant uniquement si tous les objets du niveau (n) ont été analysés La solution a également pour objet une interface graphique caractérisée en ce qu'elle comprend un arbre et des noms de domaines associés à des niveaux respectifs de j'arbre.pour la mise en oeuvre du procédé de recherche La solution sera mieux comprise à la lecture de la description qui suit, uonnee a titre d'exemple et faite en référence aux dessins annexés. Dans les dessins: - la figure 1 est une vue synoptique d'un système informatique conforme a la solution. - la figure 2 est une vue conceptuelle de la composition d'un arbre de contenance, - la figure 3a est un algorithme illustrant un mode de réalisation de la presente solution, - la figure 3b est un algorithme illustrant un mode de réalisation d'une fonction propre à analyser les objets d'un niveau de l'arbre récursivement. - la figure 4 est un exemple de réalisation décrivant les différents traitements effectués pendant le déroulement du programme principal, - la figure 5 est une vue d'une fenêtre visible sur un écran d'ordinateur illustrant un mode de réalisation de l'interface graphique Description d'un exemple de réalisation Pour simplifier la description, les mêmes éléments illustrés dans les dessins portent les mêmes références Sur la figure 1, on a représenté un système informatique SYS distribué illustrant un exemple de réalisation préféré de la solution Dans l'exemple illustre ce système SYS inclut un système de gestion SG et au moins une machine distante M1. Le système de gestion est de préférence de type OpenMaster Le système de gestion au moins un système d'exploitation, au moins une mémoire de stockage d'informations et au moins un processeur contrôlant le processus du traitement de l'information La machine M1 comprend des ressources physiques (disques, processeur, mémoire, etc.) et/ou logiques (fichiers, processus, sémaphores, etc ) Le système de gestion et la machine M1 sont associés à un protocole de gestion respectif. Le protocole de gestion du système de gestion SG et de la machine M1 peut-être indifféremment un protocole de type SNMP (Simple Network Management Protocol), CMIP (Common Management Information Protocol) ou DSAC/AEP, ou un autre protocole Afin de masquer l'hétérogénéité du système informatique, le système de gestion SG et la machine M1 comprennent au moins un agent respectif associé a un protocole de gestion. Un agent assure, entre autres, une conversion de protocole Le système de gestion est relié à la une machine M1 par l'intermédiaire d un réseau de type quelconque. Le réseau peut être de type LAN (Local Area Network) ou WAN (Wide Area Network) Un ensemble de couches logicielles s interpose entre le système de gestion SG et le réseau RES et entre le réseau et la machine M1 Dans l'exemple illustré, cet ensemble de couches logicielle repose sur le modèle OSI (Open System Interconnection) d'architecture en couche de l'ISO (international Organization for Standardization). connu de l'homme du métier. Pour des raisons de simplification de la description, cet ensemble de couches logicielles n'est pas représenté sur la figure 1 La machine M1 comprend un arbre de contenance MIB associé à l'agent intégrateur Une vue de cet arbre de contenance MIB est représentée sur la figure 2 Par définition, l'arbre de contenance MIB est hiérarchisé et est orienté oojet Cet arbre est constitué de noeuds appelés objets associés à des ressources physiques et/ou logiques respectives du système et reliés par # intermédiaire de branches. Cet arbre comprend en ses noeuds l'ensemble des oojets gérés par la machine M1, et de ce fait par le système de gestion SG Dans notre exemple, l'arbre de contenance comprend huit noeuds (ou objets) Un premier noeud est la racine ROOT Trois noeuds N1, N2, et N3 sont subordonnés à la racine ROOT. Deux noeuds N11 et N12 sont subordonnés au noeud N1 et un noeud N21 est subordonné au noeud N2 Par l'intermédiaire d'une requête, l'arbre de contenance peut être importé sur le système de gestion. Les objets peuvent ainsi être manipulé par exemple par l'intermédiaire d'un opérateur Plusieurs opérations ou manipulations peuvent s'appliquer sur les objets à condition que celles-ci aient ete autorisée lors de la spécification de la classe dans l'arbre de contenance MIB Les opérations incluent les commandes get attnbute value ou encore replace attnbute value De même, des opérations peuvent s'appliquer sur des objets Les opérations peuvent être du type - Create pour la création d'un objet d'une classe - Delete pour demander à un objet géré de se détruire - Action pour demander à un objet d'exécuter une action spécifiée dans la définition de la classe. Le gros problème est qu'il est difficile pour un utilisateur de rechercher un objet dans l'arbre de contenance Les solutions proposées ont pour conséquences des recherches de noeud avec un coût en temps important. On décrira maintenant, en référence aux figures 3a et 3b, un mode de réalisation du procédé de recherche conforme à la présente solution. La présente solution consiste, # à inclure dans un niveau un type de ressource respectif, # à regrouper lesdits objets en au moins un domaine, un domaine étant un ensemble d'objets de même niveau, le niveau d'un noeud définissant le nombre de branches qu'il faut parcourir de la racine jusqu'à ce noeud, # à élire tout ou partie d'un nom d'un noeud inclus dans un domaine, et caractérisé en ce qu'il consiste, successivement, jusqu'à ce que le nom du noeud élu soit identifié # à analyser les objets d'un niveau de l'arbre récursivement # le passage d'un niveau (n) à un autre niveau (n+1 ) s'effectuant uniquement si tous les objets du niveau (n) ont été analysés Dans l'exemple illustré, la recherche s'effectue par niveau descendant et ie passage d'un niveau (n) à un niveau inférieur (n+1 ) s effectue uniquement si tous les objets du niveau (n) ont été analysés. Naturellement, la recherche peut être effectuée par niveau ascendant. Dans l'exemple illustré, un domaine comprend un ensemble d'objets de même nature Par exemple, un domaine peut rassembler les systèmes d exploitation (par exemple UNIX, NT, etc.) présents dans le système informatique, un domaine subordonné au domaine systèmes d'exploitation peut correspondre aux serveurs comprenant un système d'exploitation, et un autre domaine subordonné peut être le domaine regroupant les stations associées au groupe de travail du serveur. Dans un autre exemple, un domaine subordonné à la racine peut correspondre à un ensemble de régions d'un pays et un domaine subordonné a ce domaine région peut être un domaine rassemblant des départements, etc Dans l'exemple illustré et en référence à la figure 1, les noeuds N1 à N3 sont associés à des systèmes d'exploitation et appartiennent donc au domaine système d'exploitation SE. Les noeuds N11, N12, N21 sont associés à des serveurs et appartiennent donc au domaine Serveur SERV Naturellement, l'arbre de contenance peut contenir d'autres domaine Un outil de navigation donne la possibilité à un utilisateur d'obtenir des informations sur les objets qu'il souhaite manipuler L'outil de navigation permet à un utilisateur de visualiser de façon interactive les objets situés dans # arbre de contenance La figure 3a est un algorithme illustrant un mode de réalisation de la orésente solution Le programme principal associé est donné comme exemple en annexe L'algorithme comprend trois étapes. 1ere étape: La première étape consiste à spécifier deux paramètres. Un premier paramètre NR désigne tout ou partie du noeud à rechercher dans 1 arbre de contenance. Le nom du noeud à fournir par l'utilisateur est le nom réel DN de l'objet à rechercher à la différence du nom complet FDN Le noeud recherché est une chaîne de caractères indiquant le début du nom du noeud ou tout le nom du noeud à rechercher Un second paramètre LDN désigne le noeud à partir duquel la recherche sera effectuée dans l'arbre Dans l'exemple illustré, le second paramètre correspond à la racine de l'arbre Selon un autre exemple, # utilisateur peut donner une liste de noeud de départ ou le nom du domaine dans lequel la recherche sera effectuée (voir figure 5). Ainsi, la solution donne la possibilité d'une recherche de noeuds de l'arbre à partir de la racine, mais aussi à partir d'un niveau n de l'arbre. La solution donne aussi la possibilité de limiter une recherche à un niveau de l'arbre Par définition, une liste de noeuds est une suite ordonnée d'éléments Le second paramètre LDN constitue le (ou les) noeud(s) de départ de la recherche dans l'arbre de contenance. Le nom du noeud à fournir par l'utilisateur est le nom complet FDN. Dans # exemple illustré, le noeud de départ LDN est la racine ROOT et le noeud recherché est par exemple le noeud N11 inclus dans le domaine Serveur En d'autres mots, l'utilisateur recherche un serveur et le noeud choisi pour débuter la recherche est la racine ROOT de l'arbre de contenance Le second paramètre LDN peut être une liste de noeud inclus dans un domaine La représentation d'une liste est fonction du langage de programmation utilisé, par exemple, une liste de noeuds peut être représenté par un vecteur en langage de programmation JAVA connu de l'homme du métier L'utilisateur a connaissance uniquement des domaines inclus dans # arbre de contenance. 2ieme étape Une fois que les deux paramètres sont définis, le mécanisme de recherche effectue une deuxième étape qui consiste à déterminer la longueur de la liste LDN Par définition la longueur d'une liste de noeuds est égale au nombre de noeuds inclus dans cette liste Par exemple, si le second paramètre LDN comprend deux noeuds, la longueur de cette liste est égale à deux Le second paramètre LDN est choisi, par exemple par un utilisateur, en fonction du domaine auquel appartient le noeud à identifier - Si la longueur de cette liste est nulle, le mécanisme de recherche émet un message signalant que le noeud n'existe pas dans l'arbre de contenance ou que l'utilisateur n'a pas spécifié de noeud de départ LDN - Si la longueur n'est pas nulle, le mécanisme de recherche appelle une fonction primitive RECHENF récursive propre à rechercher les noeuds subordonnés à la liste LDN prédéfinie et à identifier le noeud recherché NR. 3ieme étape Dans l'exemple illustré, la longueur de la liste LDN n'étant pas nulle, le mécanisme effectue donc une troisième étape qui consiste à appeler un sousprogramme du programme principal avec les paramètres d'appel LDN et NR. Ce sous-programme correspond à une fonction récursive RECHENF Cette primitive comprend deux paramètres Le premier paramètre correspond à nouveau à la liste LDN et le second paramètre correspond au noeud à rechercher NR La figure 3b illustre les différentes sous-étapes de traitement par la fonction récursive RECHENF appelée par le programme principal. Lors d une première sous-étape 3a, la fonction Recherche RECHENF détermine la longueur la liste LDN. Si cette longueur est nulle, le noeud recherché n'a pas été identifié La recherche est finie et le programme principal est appelé à nouveau avec une nouvelle liste LDN d'un autre niveau. Si cette longueur n'est pas nulle, la recherche se poursuit et la fonction RECHENF vérifie si le premier élément de la liste correspond au noeud recherché Dans l'affirmative, le mécanisme de recherche émet de préférence un message à l'utilisateur lui indiquant que le noeud recherché est identifié L utilisateur peut visualiser l'objet identifié et peut le manipuler A ce stade, le mécanisme donne également la possibilité à l'utilisateur de continuer la recherche en spécifiant un autre noeud à rechercher ou de mettre fin à la recnerche Avantageusement, le nouveau noeud de départ LDN peut être le noeud résultat que le mécanisme vient d'identifier Dans le cas contraire, si le premier élément de la liste ne correspond pas au noeud à rechercher, le mécanisme se poursuit et la fonction RECHENF effectue une autre analyse La fonction récursive RECHENF passe en revue tous les autres objets de la liste LDN un par un (sous-étape 3d) Les sousetapes 3,3a et 3b sont de nouveau réalisées Pour ce faire, il y a un appel récursif de la fonction RECHENF avec de nouveaux paramètres La fonction récursive effectue un passage en revue de tous les objets de la liste LDN sur un niveau Le mécanisme consiste, successivement à chaque appel récursif de la fonction RECHENF, à prendre la liste courante LDN et à extraire de cette liste ie premier noeud. Cette nouvelle liste est appliquée à nouveau à la fonction récursive RECHENF. Si le premier noeud de cette liste L2 ne correspond pas au noeud recherché NR, on extrait à nouveau le premier noeud de cette liste, et ainsi de suite jusqu'à ce que la longueur de la liste soit nulle Lorsque la dernière liste analysée a une longueur nulle, l'appel récursif de la fonction RECHENF est terminé et le mécanisme a pour but d'analyser le niveau inférieur au niveau étudié. Pour ce faire, le mécanisme comprend une autre fonction DONENF (sous-étape 3e) permettant de chercher les enfants des noeuds d'une liste. Cette fonction donne les enfants de tous les noeuds appartenant à la liste courante LDN. De préférence, cette fonction donne les enfants du dernier noeud étudié de la liste courante LDN analysé par la fonction RECHENF Ensuite, l'appel de cette fonction recherche les enfants de l'avant-dernier noeud de la liste courante LDN et ainsi de suite jusqu'au premier noeud de la liste courante LDN. Pour ce faire, le sous-programme RECHENF a une structure particulière Le langage de programmation utilisé est à structure de blocs, comme PASCAL ou SML, et est mis en #uvre de telle façon qu'à l'issue du traitement de la fonction récursive, l'espace mémoire alloué pour stocker temporairement les variables locales est rendu au système Une façon simple et efficace de réaliser ce mécanisme consiste à utiliser une structure de données particulière dite pile (stack en anglais) également appelée LIFO (Last In First Out) connue de l'homme du métier. Ainsi, lorsque la fonction RECHENF passe en revue successivement les noeuds d un même niveau, les paramètres LDN et NR, ainsi que des variables locales à la fonction récursive sont empilés c'est-à-dire rangés dans la pile de raçon contigue L'utilisation de variables locales est expliqué dans la suite de la description En l'espèce , la liste LDN(N1,N2,N3) est stockée dans la pile pour analyse Ensuite, lorsque l'analyse de ces noeuds est terminée. successivement les listes LDN (N2, N3), LDN (N3) et LDN(vide) sont stockées de façon contiguë dans la même mémoire L'ajout d'un élément dans une pile peut être effectué par l'intermédiaire d'une opération nommée PUSH connue de l'homme du métier. Si le noeud à rechercher n'est pas identifié dans cette liste, la fonction DONENF est appelée et le mécanisme dépile les paramètres LDN et des variables locales en mémoire. Ainsi, dès que la fonction DONENF à trouvé les noeuds enfants d'un noeud, un retour est réalisé dans la pile Dans une pile, un retour peut être effectué par l'intermédiaire d'adresse de retour Une fois que l'ensemble des enfants a été identifié et mémorisé, la solution consiste à appliquer cet ensemble de noeuds au programme principal Des ce moment, le mécanisme effectue les mêmes étapes et sous-étapes En l'espèce, et en référence à la figure 4, la fonction RECHENF est appelée (AP1) par le programme principal avec la liste de noeuds (N1 N2 et N3) Rappelons que le noeud recherché est le noeud N11 La fonction RECHENF est appelée (AP2) de façon récursive avec la liste (N2,N3), ensuite un appel (AP3) avec la liste (N3) et enfin un appel (AP4) avec une liste vide Lorsque la longueur de la liste est nulle, on appelle la fonction DONENF définie précédemment qui, par l'intermédiaire du principe de dépilement et de variables locales LE et LEA, donne les enfants, c'est-à-dire les noeuds subordonnés dans l'arbre de contenance de la liste LDN (N1, N2, N3) qui vient d être analysée Sur la figure 4 figure, le sens des flèches correspond au sens de déroulement des différents traitements réalisés par le programme principal et le sous-programme RECHENF. A chaque appel correspond des variables locales A cet effet, le sous programme RECHENF comprend deux variables locales La valeur de ces variables locales diffèrent selon les appels de la fonction RECHENF Une première variable locale LEA correspondant à la liste des noeuds enfants trouves De manière générale, un appel de la fonction RECHENF avec de nouveau paramètre d'entrée peut être noté AP(n), n étant n~ième appel de la fonction RECHENF sur un niveau de l'arbre. Sur le domaine SE, notons k le nombre d'appels total de la fonction RECHENF Dans notre exemple de réalisation, il y a quatre appels (k=4) de la fonction RECHENF (AP1, AP2, AP3, AP4) avec comme paramètre d'entrée LDN (N1, N2, N3) Avec cette notation, la variable locale LEA associée à un appel AP (n) est LEA (AP(n)) = LE(AP(n+1)) + LEA(AP(n+1), sachant que lorsque LDN = vide, LE + LEA= vide avec LE(AP(n)) deuxième variable locale correspondant à la liste des noeuds enfants du noeud avec la n-ième position de la liste LDN initiale (N1 N2,N3) retourné par la fonction DONENF et associé au n-ième appel AP (n). LE (AP(n) = DONENF( n-ième noeud de la liste initiale et associé au n- ieme appel AP(n)) sauf si la liste LDN courante à une longueur nulle et LEA(AP(n+1))= #(LE(AP(n + 2)) + LEA(AP(n + 2))) (VL), n + 1 # @ LEA(AP(n+1)) étant la valeur de retour de l'appel AP (n+2) versl'appel AP(n+1 ) En d'autres mots, la valeur de la variable LEA correspondant à un appel AP (n) dela fonction RECHENF est égale à la valeur de la variable LE et de LEA de l'appel AP(n+1 ), la valeur de la variable LEA de l'appel AP(n+1 ) etant égal à la valeur de toutes les variables LE et LEA des appels analysés par la fonction DONENF En l'espèce, lorsque la fonction DONENF est appelée, les variables locales LE et LEA sont initialisée avec la valeur vide comme suit . Le retour du dernier appel de RECHENF donne LDN= vide LEA (AP4) = vide LE (AP4) = vide Comme expliqué précédemment, la fonction DONENF donne les enfants du dernier noeud étudié N3 de la liste courante LDN analysé par la fonction RECHENF LDN = (N3) LEA (AP3) = vide LE (AP3) = DONENF (N3) = vide donc le retour de l'appel AP (3) est LEA(AP3) LE(AP3)=vide Ensuite, l'appel de cette fonction donne les enfants de l'avant-dernier noeud de la liste courante LDN et ainsi de suite jusqu'au premier noeud de la liste courante LDN Pour ce faire, on dépile la mémoire et le noeud N2 est appliqué à la fonction DONENF. Le résultat est constitué du noeud N21 LDN = (N2, N3) LEA(AP2) = (LE(AP3) +LEA(AP3) + (LE(AP4) +LEA(AP4) = vide LE (AP2) = OONENF(N2) = (N21) donc le retour de l'appel AP (2) est LEA (AP2)+LE(AP2) N21 et LDN(N1, N2, N3) LEA(AP1) (LE(AP2) +LEA(AP2) + (LE(AP3) +LEA(AP3) + (LE(AP4) +LEA(AP4) = vide + (N21) LE(AP1) = DONENF(N1) = (N11, N12) Le retour de l'appel AP(1) est la liste (N21, N11, N12) Comme le noeud N1 est le dernier noeud de la liste LDN, une adresse de retour PP pointe vers le programme principal et le résultat précédent est appliqué au programme principal et constitue une nouvelle liste LDN= N21, N11 N12 Et ainsi de suite, le programme principal appelle la fonction récursive RECHENF avec les nouveaux paramètres LDN, jusqu'à ce que le noeud à rechercher N 11soit identifié dans l'arbre Ainsi, la gestion du paramètre LDN et des variables locales LE et LEA est faite dans la pile La figure 5 est une vue d'une fenêtre illustrant un exemple de réalisation ae la solution Cette fenêtre comprend l'arbre de contenance et les noms de domaine associés aux niveaux respectifs de l'arbre Un utilisateur peut interagir avec cette fenêtre par l'intermédiaire d'une souris (mouse en anglais). L utilisateur sélectionne le domaine dans lequel il souhaite effectuer une recnerche Par exemple, si l'utilisateur cherche le noeud correspondant à un serveur et dont le nom est N12, celui-ci sélectionne le champ serveur sur la renêtre De préférence, la sélection d'un domaine entraîne l'apparition d'une autre fenêtre incluant une zone à compléter par l'utilisateur correspondant au mot à rechercher NR La.recherche se réalise ensuite conformément au procede de la solution. A partir du nom de domaine, le mécanisme identifie automatiquement la liste des noeuds LDN du domaine objets de la recherche Cette interface graphique affiche également le résultat c est-à-dire le noeud trouvé, en surbnllance. Selon une variante, le mécanisme de recherche peut appeler une fonction primitive RECHPAR en lieu et place de la fonction primitive RECHENF Cette fonction RECHPAR récursive est propre à rechercher les noeuds supérieurs à la liste prédéfinie LDN et à identifier le noeud recherché NR Les étapes explicitées précédemment restent identiques De manière générale, le procédé de recherche consiste # à inclure dans un niveau un type de ressource respectif, # à regrouper lesdits objets en au moins un domaine, un domaine étant un ensemble d'objets de même niveau, le niveau d'un noeud définissant le nombre de branches qu il faut parcourir de la racine jusqu'à ce noeud, # a élire tout ou partie d'un nom d'un noeud inclus dans un domaine, et caractérisé en ce qu'il consiste, successivement, jusqu'à ce que le nom du noeud elu soit identifié # a analyser les objets d'un niveau de l'arbre récursivement # le passage d'un niveau (n) à un autre niveau (n+1 ) s'effectuant uniquement si tous les objets du niveau (n) ont été analysés. Préalablement à une recherche, le procédé consiste par exemple à indiquer une liste d'objets LDN d'un domaine sur laquelle portera la recherche, cette liste comprenant au moins un nom d'objets, et le nom de l'objet à rechercher NR De cette façon, la recherche s'effectue sur un nomre quelconque de sous-arbre de l'arbre de contenance, les objets de la liste LDN constituant les racines des ces différents sous-arbre La solution peut consister à effectuer la recherche dans un sous arbre dont la racine est choisie arbitrairement par un utilisateur Dans notre exemple de réalisation, la liste LDN correspond à la racine de l'arbre de contenance, et la recherche peut s'effectuer sur la totalité des noeuds de l'arbre de contenance On a vu également que la solution peut consister, selon une variante avantageuse, une fois que le noeud élu est identifié, à continuer la recherche à partir du noeud identifié ou à partir d'un autre noeud de l'arbre de contenance ou à mettre fin à la recherche. Le passage d'un niveau (n) à un niveau inférieur (n) peut consister à utiliser une mémoire de type pile LIFO (Last Inpout First Output) pour stocker les informations relatives à chaque niveau au cours d'une recherche, et en ce qu il consiste à vider la pile lors du passage à un niveau inférieur pour la recherche des noeuds enfants de la liste LDN étudiée Dans l'exemple de réalisation, on a vu que, si la longueur de la liste LDN1 n'est pas nulle, le procédé de recherche peut consister - à vérifier si le premier élément de la liste correspond au noeud recherché, - et successivement, tant que le noeud à recherché n'est pas identifié, à constituer une nouvelle liste LDN2, la constitution de cette nouvelle liste consistant à extraire de la précédente liste LDN1 le premier noeud, et à vérifier que le premier noeud de cette nouvelle liste correspond au noeud recherché et ainsi de suite jusqu'à ce que la longueur de la liste soit nulle Egalement, dans notre exemple de réalisation, on a vu que, lorsque tous les noeuds de la liste LDN ont été étudiés, le procédé de recherche consiste à rechercher les noeuds enfants de cette liste, la recherche des noeuds enfants consistant a dépiler la mémoire, et à rechercher les noeuds enfants du premier noeud de chaque liste créée lors de la recherche du noeud à rechercher NR, 1 ensemble des noeuds enfants trouvés constituant une nouvelle liste d'objets LDN sur la quelle portera la recherche. Le procédé de recherche donne la possibilité de limiter la recherche d un noeud de l'arbre de contenance à un seul niveau de l'arbre de contenance Dans notre exemple de réalisation, le procédé consiste à visualiser 1 arbre par l'intermédiaire d'une interface graphique, et à afficher sur cette interface graphique sous forme d'icône, que l'utilisateur peut manipuler, les nom des différents domaines incluent dans l'arbre de contenance Ainsi, il consiste à sélectionner le nom d'un domaine de recherche sur l'interface graphique et le nom d'un noeud à rechercher, et la recherche s effectue uniquement dans ce domaine On a vu aussi que la présente solution a pour objet une interface graphique de visualisation sur un écran d'ordinateur d'un arbre de contenance, ieait arbre étant un programme représenté par 1 intermédiaire d'une structure organisée de manière hiérarchique avec une racine (ROOT) et des objets reliés par l'intermédiaire de branches, caractérisée en qu'elle comprend un arbre et des noms de domaines associés à des niveaux respectifs de l'arbre pour la mise en oeuvre du procédé de recherche De préférence, cette interface comprend un champ incluant une zone à compléter correspondant au nom du noeud à rechercher, ce champ étant activé suite à la sélection d'un domaine Il ressort de ce qui précède que la présente solution offre de nombreux avantages En effet, la répartition de l'arbre en domaines optimise la recherche d un noeud dans l'arbre en ce sens que le mécanisme donne la possibilité de ne traiter uniquement que les noeuds du niveau incluant le noeud à rechercher Le coût en temps de recherche est donc considérablement réduit De plus l'utilisation d'une pile libère l'utilisateur de la gestion mémoire Le système prend en charge la gestion de la mémoire ANNEXE Programme principal LDN = ROOT TANT QUE (longueur (LDN) PAS EGAL à 0) LDN = RECHENF (LDN, NR) FIN TANT QUE fonction RECHENF RECHENF(LDN, NR) Si L=0 sortie vide SI (premier élément de LDN = NR) Action FINSI LEA = vide LEA = RECHENF (LDN parents MOINS premier élément de LDN, NR) LE=DONENF (premier élément LDN parents) RETOUR (LE + LEA) REVENDICATIONS 1. Procédé de recherche d'au moins un objet inclus dans un arbre de contenance inclus dans un système informatique comprenant des ressources physiques et/ou logicielles, ledit système informatique comprenant au moins un système d'exploitation, au moins une mémoire de stockage d'informations, et au moins un processeur, ledit arbre étant un programme représenté par l'intermédiaire d'une structure organisée de manière hiérarchique avec une racine (ROOT) et des noeuds nommés appelés objets associés à des ressources respectives du système et reliés par l'intermédiaire de branches, caractérisé en qu'il consiste # à inclure dans un niveau un type de ressource respectif, # à regrouper lesdits objets en au moins un domaine, un domaine étant un ensemble d'objets de même niveau, le niveau d'un noeud définissant le nombre de branches qu'il faut parcourir de la racine jusqu'à ce noeud, # à élire tout ou partie d'un nom d'un noeud inclus dans un domaine, et caractérisé en ce qu'il consiste, successivement, jusqu'à ce que le nom du noeud élu soit identifié # à analyser, par l'intermédiaire de ressources physiques, les objets d'un niveau de l'arbre récursivement # le passage d'un niveau (n) à un autre niveau (n+1) s'effectuant uniquement si tous les objets du niveau (n) ont été analysés 2 Procédé selon la revendication 1, caractérisé en ce qu'il consiste, préalablement à une recherche, à indiquer une liste d'objets LDN d'un domaine sur laquelle portera la recherche, cette liste comprenant au moins un nom d'objets, et le nom de l'objet à rechercher NR. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce qu'il consiste à effectuer la recherche dans un sous arbre dont la racine est choisie arbitrairement par un utilisateur. 4 Procédé selon l'une des revendications 1 à 3, caractérisé en ce qu'il consiste, une fois que le noeud élu est identifié, à continuer la recherche à partir du noeud identifié ou à partir d'un autre noeud de l'arbre de contenance ou à mettre fin à la recherche 5 Procédé selon l'une des revendications 1 à 4, caractérisé en ce qu'il consiste à utiliser une mémoire de type pile LIFO (Last Inpout First Output) pour stocker les informations relatives à chaque niveau au cours d'une recherche, et en ce qu'il consiste à vider la pile lors du passage à un niveau inférieur 6 Procédé selon la revendication 2, caractérisé en ce qu'il consiste, Si la longueur de la liste LDN1 n'est pas nulle, - à verifier si le premier élément de la liste correspond au noeud recherché, - et successivement, tant que le noeud à recherché n'est pas identifié, à constituer une nouvelle liste LDN2, la constitution de cette nouvelle liste consistant a extraire de la précédente liste LDN1 le premier noeud, et à vérifier que le premier noeud de cette nouvelle liste correspond au noeud recherché et ainsi de suite jusqu'à ce que la longueur de la liste soit nulle 7 Procédé selon les revendications 2 et 6, caractérisé en ce qu'il consiste, lorsque tous les noeuds de la liste LDN ont été étudié, à rechercher les noeuds enfants de cette liste, et en ce que la recherche des noeuds enfants consiste à dépiler la mémoire, et a rechercher les noeuds enfants du premier noeud de chaque liste créée lors de la recherche du noeud à rechercher NR, et en ce que l'ensemble des noeuds enfants trouvés constituent une nouvelle liste d'objets LDN sur la quelle portera la recherche 8 Procédé selon l'une des revendications 1 à 7, caractérisé en ce qu'il consiste à limiter la recherche d'un noeud de l'arbre de contenance à un seul niveau de l'arbre de contenance 9 Prccédé selon l'une des revendications 1 a 8, caractérisé en ce qu'il consiste à visualiser l'arbre par l'intermédiaire d'une interface graphique, et en ce qu il consiste à afficher sur cette interface graphique sous forme d'icône, que l'utilisateur peut manipuler, les nom des différents domaines incluent dans # arbre de contenance. 10 Procédé selon la revendication 9, caractérisé en ce qu'il consiste à sélectionner le nom d'un domaine de recherche sur l'interface graphique et le nom d'un noeud à rechercher, et en ce que la recherche s'effectue uniquement dans ce domaine 11 Interface graphique de visualisation sur un écran d'ordinateur d'un arbre de contenance inclus dans un système informatique comprenant des ressources pnysiques et/ou logicielles, ledit système informatique comprenant au moins un système d'exploitation et au moins une mémoire de stockage d'informations, ledit arbre étant un programme représenté par l'intermédiaire d'une structure organisée de manière hiérarchique avec une racine (ROOT) et des objets reliés par 1 intermédiaire de branches, caractérisée en qu'elle comprend un arbre et des noms de domaines associés à des niveaux respectifs de l'arbre pour la mise en oeuvre du procédé de recherche défini par les revendications 1à 6 12 Interface graphique selon la revendication 11, caractérisée en ce qu'elle comprend un champ incluant une zone à compléter correspondant au nom du noeud à rechercher, ce champ étant activé suite à la sélection d'un domaine