Développement de l'arbre informationnel

Comme on l'a vu aux deux premiers chapitres, les données d'un annuaire sont organisées sous forme hiérarchique, en arbre. Concevoir l'arbre informationnel d'un annuaire c'est spécifier la forme de cet arbre, son organisation, comment les données vont y être nommées. L'objectif à cette étape est donc d'organiser les données pour leur

La structure de l'arbre informationnel

Un arbre est caractérisé par son branchage plus ou moins fort. Un arbre a un branchage faible lorsque les entrées feuilles (sans descendant) sont très regroupées, au lieu d'être dispersées sous d'autres entrées. On dit aussi qu'il est plat. Les figures Figure 9.1, « Arbre plat » et Figure 9.2, « Arbre à branchage fort » sont des exemples respectifs d'arbres plat et d'arbre à branchage fort.

Figure 9.1. Arbre plat

Arbre plat

Figure 9.2. Arbre à branchage fort

Arbre à branchage fort

Les arbres plats ont pour principal avantages que les recherches s'effectuent rapidement, parce que le serveur n'a pas à parcourir toutes les branches, et à faire une recherche par branche. Par ailleurs les arbres plats présentent beaucoup d'inconvénients:

  • Les collusions de RDN peuvent se produire fréquemment;
  • La mise en place de referral n'est pas possible[10]

Sur ces points les arbres à fort branchage sont bien plus efficace. Ils facilitent aussi la délégation. L'inconvénient des arbres à fort branchage apparaît essentiellement lorsque la structure de l'arbre reflète la structure de l'organisation, et que cette structure est amenée à être modifiée. Dans ce cas, les entrées de l'arbre vont elles aussi être amenées à changer de place et de DN, ce qui peut provoquer des problèmes de cohérences.

Il y a donc un certain équilibre à atteindre entre les deux types d'arbres. Les éléments à prendre en compte sont les suivants[11]:

  • Le nombre d'entrées prévu et son évolution ?
  • La nature (type d'objet) des entrées actuelles et futures ?
  • Vaut-il mieux centraliser les données ou les distribuer ?
  • Seront-elles administrées de manière centrale ou faudra-t-il déléguer une partie de la gestion ?
  • La duplication est-elle prévue ?
  • Quelles applications utiliseront l'annuaire et imposent-elles des contraintes particulières ?
  • Quelles permissions seront mises en place?

Le nommage des données

Choix du suffixe

Contrairement aux annuaires X500 les annuaires LDAP n'ont à vocation à s'insérer dans un annuaire universel. Dès lors, contrairement à leurs ancêtres, chaque annuaire peut avoir la racine qu'il veut. Il n'existe pas d'obligation à respecter. La norme X500 imposer aux annuaires d'entreprises parisienne d'avoir un suffixe de la forme l=paris,o=fr.

Dans la norme LDAP chaque annuaire fait ce qu'il lui plaît, et peut prendre comme racine, comme suffixe, ce qu'il veut. Le suffixe est devenu l'identifiant d'un annuaire.

Il existe néanmoins une RFC, la [rfc2377] qui apporte un peu de cohérence dans le choix des suffixes. Elle permet de construire un suffixe à partir d'un nom de domaine, et en utilisant l'attribut dc. Cette RFC propose tout simplement de transformer tous les éléments d'un nom de domaine en valeur de l'attribut dc. Ainsi l'annuaire l'entreprise dont le nom de domaine est easter-eggs.com sera dc=Easter-eggs, dc=com.

Nommage des entrées

Le nommage des entrées consiste à choisir un attribut, qui sera utilisé pour nommer les entrées. Il s'agit donc de choisir le RDN de chaque branche.

Cet attribut doit permettre de désigner sans ambiguïté une entrée. C'est à dire que sa valeur doit être unique dans chaque branche.

Le deuxième élément à prendre en compte est sa stabilité. Il est préférable en effet qu'une entrée ne change guère d'identité. Cela est d'autant plus vrai dans le cas des entrées possédant des descendants.

Exemples d'arbres

Espace de nommage à la X500

Espace de nommage plat

Basé sur l'organisation

Basé sur les objets



[10] Le mécanisme de referral peut alors être remplacé par la mise en place d'un meta annuaire. Néanmoins un meta annuaire est beaucoup plus lourd à mettre en place.

[11] L'essentiel de cette liste provient du tutorial de Laurent Mirtain, Christian Claveleira et Claude Gross.