Comparaison avec d'autres systèmes

Les caractéristiques propres d'un annuaire électronique

Nous avons défini un annuaire comme étant « «une base de données optimisée pour les opérations de lecture, et supportant des opérations de recherche et de navigation avancées» ». Un annuaire électronique possède cependant d'autres caractéristiques essentielles que nous allons citer.

Un annuaire électronique peut ainsi être caractérisé par le fait que l'information y est stockée de manière structurée et hiérarchisée. Il existe une hiérarchie aussi bien dans l'information stockée, que dans la modélisation des données. On trouve dans cette modélisation beaucoup des concepts de la programmation orientée objet, comme des notions de classes, d'objets, d'attributs, et d'héritage.

L'autre caractéristique des annuaires électroniques est l'existence d'un protocole de communication réseau. Les annuaires électroniques sont conçus pour pouvoir communiquer entre eux, et communiquer avec des clients.

Les annuaires électroniques sont aussi prévus pour être distribués et répliqués à grande échelle. Ceci explique la nécessité de ces protocoles de communication.

En revanche la spécification d'une manière de stockage n'intervient pas dans la définition d'un annuaire. Seul compte la modélisation des données et leur transport sur le réseau.

Comparaison avec les bases de données

Il est important de souligner les différences entre base de données relationnelles et annuaires. Un annuaire électronique n'a pas pour vocation de stocker uniquement des informations sur des personnes. Il peut être utilisé comme base dans de nombreux types d'applications. C'est donc en connaissant ces différences, qu'il sera possible de choisir le bon type de stockage pour chaque type d'application.

La première différence est qu'un annuaire électronique est conçu pour être consulté, bien plus que mis à jour. Le rapport lecture sur écriture est donc plus élevé dans les annuaires électroniques que dans les bases de données relationnelles.

L'autre différence est la grande facilité d'extension des annuaires. L'ajout d'attributs, l'équivalent des champs dans les bases de données relationnelles, est très aisé à réaliser. Il ne nécessite pas, par exemple, de reconstruction de la base. Un autre élément de flexibilité des annuaires par rapport aux bases de données, est l'héritage multiple. Une entrée d'un annuaire peut être deux objets différents, alors qu'un objet dans une base de données n'appartient qu'à une seule table.

La contrepartie de cette facilité est l'absence de transactions et de procédures stockées. Il faudra donc faire attention lors de l'exécution d'opérations complexes, et gérer du côté applicatif les erreurs. Comme autre type de restriction, il n'existe pas dans les annuaires de notions de cohérence. Ainsi la notion de clé étrangères n'existe pas. S'il est possible de modéliser un attribut en lui imposant d'être un lien vers une entrée de l'annuaire, il est impossible de contrôler si le noeud pointé appartient à une branche précise ou s'il appartient à une certaine classe d'objet[1].

Une différence plus mineure concerne le types de recherches que l'on peut effectuer sur des bases de données et des annuaires. Si les annuaires permettent dans un certain sens d'effectuer des recherches assez évoluées (recherches approximatives ou phonétiques), ils ne possèdent pas l'équivalent de l'instruction SQL joint pour fusionner des informations de plusieurs sources.

Mais les bases de données n'offrent pas les facilités de déploiement et de réplication que l'on a avec les annuaires. Il n'existe pas non plus de protocole universel permettant à un client quelconque de contacter un serveur quelconque, comme c'est le cas pour la norme LDAP ou la norme X500 avant elle. Chaque base de données relationnelle a son propre protocole réseau, qu'elle ne partage pas avec les autres bases.

Comparaison avec d'autres systèmes de stockage

Système de fichiers

Un système de fichiers est aussi un système d'informations hiérarchisées, les répertoires formant une hiérarchie, espace de nommage homogène. Néanmoins les systèmes de fichiers ne permettent pas une gestion fine des droits. De plus ils peuvent contenir des informations très volumineuses, alors qu'un annuaire ne contient majoritairement que des informations peu importantes en taille, de l'ordre du mot, cette information n'est pas du tout structurée.

Ainsi l'analogie entre un système de fichiers et un annuaire bute sur l'absence de modélisation de l'information en classe et en attribut.

Serveur Web

Les serveurs web sont optimisés eux aussi pour un rapport lecture sur écriture élevé, à l'instar des annuaires électroniques. De plus un serveur web est accédé depuis le réseau, via un protocole universel, partagé entre client et serveur. Néanmoins l'information d'un serveur web n'est elle non plus pas assez structurée pour pouvoir comparer ces serveurs à des serveurs annuaires.

Serveur DNS

Les serveurs DNS sont très similaires aux annuaires électroniques. Il s'agit en effet d'un système d'information hiérarchisé et répliquée, possédant des fonctionnalités de recherche avancée. La différence fondamentale avec les annuaires concerne l'information stockée qui est très figée, puisque normalisée dans des RFCs.

Contrairement aux annuaires il n'est pas possible de faire évoluer l'information contenue dans un serveur DNS.



[1] Openldap peut dans certains cas simuler ce type de contrôle grâce à des permissions.