On entend par profil multiple les cas où :

  • une personne a plusieurs statuts (par exemple enseignant et étudiant) ;
  • un personnel a plusieurs rôles (par exemple responsable d’UFR, responsable d’une maîtrise) ;
  • un étudiant prépare plusieurs diplômes ;
  • un étudiant suit une formation en relation avec plusieurs disciplines (par exemple en math et physique) ;
  • un personnel est affecté à plusieurs structures.

Problème : dès qu'une personne a plusieurs profils, il y a risque de perdre l'association entre des informations corrélées. Par exemple, le diplôme, et le niveau dans le diplôme, s'ils sont stockés dans des attributs distincts. Ce problème est lié à la nature non relationnelle d'un annuaire LDAP.

Plusieurs solutions techniques ont été envisagées par le groupe de travail SupAnn pour parer à cette perte d'information :

  1. attribut composite : regrouper les informations liées dans un seul attribut dont le contenu devient structuré. Par exemple : “<rôle>|<structure>” (ex. “directeur|UFR de maths”) ou “<rôle>|<DN>” (ex. “directeur|ou=12345,o=98765,dc=univ-truc,dc=fr”) ou “<diplôme>|<discipline>|<étape>”. Avantage : information accessible en une seule recherche. Inconvénient : les applications doivent savoir “décortiquer” cet attribut.
  2. pointer vers des objets (situés ailleurs dans l'annuaire) décrivant le “profil” correspondant. Exemple : un objet “formation” contenant au moins les trois informations diplôme, discipline et étape. Cet objet est instancié autant de fois qu'il y a d'instances de formations dans l'établissement. Avantage : cela peut rejoindre un autre besoin (description des formations dans l'annuaire). Inconvénient : recherches indirectes (pour rechercher les étudiants en biologie il faut repérer tous les objets formation dont la discipline est biologie puis rechercher les personnes ayant un pointeur sur ces objets).
  3. croiser plusieurs informations contenues dans l'annuaire. Exemple : croiser l'information “rôle” d'une personne avec le contenu de la branche des structures pour savoir de quelle entité elle est directeur par exemple.
  4. solution hybride : les informations figurent à la fois dans des attributs séparés et regroupées dans un attribut spécifique composite. Inconvénient : il faut veiller à la cohérence entre les attributs.
  5. utilisation de groupes : à chaque profil correspond un groupe auquel appartiennent les personnes ayant ce profil.
  6. utilisation d'alias remontant des structures vers les personnes : des objets alias dans les feuilles de la branche des structures, des inscriptions des étudiants, des inscriptions des personnes dans les applications de gestion, etc… pointent sur les entrées de personnes appartenant à l'entité avec des attributs associés à l'alias décrivant la fonction.
  7. pointeurs vers les entrées de personnes depuis une branche contenant la description des formations ou des fonctions.

Le groupe de travail a retenu la solution des attributs composites. Les attributs de ce type regroupent les valeurs de plusieurs attributs, dans un ordre défini, séparées par une séquence spécifique. Voir paragraphe ci-après.

Les attributs dits “composites” regroupent des valeurs d'attributs élémentaires, dont l'association a un sens (cf. Problématique des profils multiples ci-dessus), sous la forme d'une succession ordonnée de champs :

  • “[etiq1=valeur1][etiq2=valeur2][etiq3=valeur3]…”

Chaque champ est composé des éléments suivants :

  • des délimiteurs encadrant le champ : “[” en début de champ, “]” en fin de champ
  • une étiquette se rapportant à un attribut élémentaire, mais dont l'intitulé est différent (choix d'intitulés plus court),
  • un séparateur “=” entre l'étiquette et la valeur,
  • une valeur reprenant une des valeurs de l'attribut élémentaire correspondant.

Il n'y a pas d'espace entre les différents constituants.

Certains champs peuvent être facultatifs. Ils sont en principe à la fin de l'attribut composite.

Les attributs composites sont multivalués, une valeur représentant un “profil”:

Exemple : l'attribut composite supannEtuInscription qui regroupe plusieurs attributs définissant la ou les inscriptions d'un étudiant. Voir l'exemple détaillé en annexe 1.

Remarque : un attribut composite peut être valué sans que tous les attributs élémentaires correspondants soient instanciés (exemple : supannTypeEntite dans supannRoleEntite).

Les recherches sur ces attributs peuvent alors se faire de la façon générique suivante :

  • (attributComposite=*[etiq_x=valeur_x]*[etiq_y=valeur_y]*)

L'ordre etiqu-x … etiq_y dans l'écriture du filtre de recherche doit respecter l'ordre dans lequel ces attributs élémentaires sont ordonnés dans la définition de l'attribut composite.

Remarque : le format des attributs composites permet l'évolutivité de ces attributs : en cas de besoin il est possible de rajouter des champs sans perturber les applications (filtres) existantes.

  • documentation/supann/2008/attributscomposites.txt
  • Dernière modification : 2008/10/22 16:32
  • de olivier.lumineau@cru.fr