Première rédaction de cet article le 18 juillet 2008
Le 14 juillet, l'IANA a annoncé que les registres qu'elle maintenait seraient désormais en XML et a produit les premiers registres convertis au nouveau format. L'annonce met fin à une étonnante tradition de l'Internet, le fait que les registres des numéros affectés aux différents protocoles étaient simplement maintenus sous forme de fichiers texte.
On connait surtout le rôle politicien que joue l'IANA, un service de l'ICANN, dans la maintenance du fichier de zone de la racine DNS. Mais ce rôle ne doit pas faire oublier que l'IANA est également chargée, pour le compte de l'IETF, de la maintenance d'un grand nombre de registres plus techniques, pour stocker les informations sur les nombres qui doivent être unique pour que l'Internet fonctionne. Par exemple, les numéros de ports TCP ou UDP (80 pour HTTP, 25 pour SMTP, etc) sont stockés dans un tel registre à l'IANA. Ce rôle est formalisé dans le RFC 2860 et la partie IETF du travail dans le RFC 5226.
Pendant presque toute son existence, l'IANA a géré ses registres d'une manière très simple. Chaque registre était un fichier texte édité à la main par Jon Postel. Cela marchait mais, aujourd'hui, un tel système semble bien dépassé. Il ne permet notamment pas d'analyser facilement les registres (qui sont, à quelques exceptions près, non structurés) et il ne permet pas de présenter ces registres sous d'autres formats, par exemple HTML. L'IANA était consciente du problème depuis longtemps mais n'a bougé qu'avec beaucoup de précautions. En effet, son rôle est d'être conservatrice. Les registres doivent rester accessibles pendant des dizaines d'années et les convertir dans le dernier format à la mode, uniquement pour devoir en changer six mois plus tard, ne serait pas une bonne façon de les gérer. En outre, il fallait évidemment que ces registres soient décrits dans un format ouvert. Le processus a donc été long (et, contrairement à ce qu'on lit parfois sur le fonctionnement ouvert de l'Internet, très secret et conduit uniquement par un petit groupe non public). XML était le candidat évident pour le format des données.
Désormais, le train du changement est sur les rails et les premiers registres ont été convertis et officiellement annoncés.
Prenons un exemple, le registre des paramètres
d'AAA, utilisé par exemple par le RFC 3588. Le registre texte traditionnel est https://www.iana.org/assignments/aaa-parameters
(qui existe
toujours, jusqu'au basculement prévu cette année vers une version
texte produite automatiquement à partir de la version XML). La
nouvelle version faisant autorité est https://www.iana.org/assignments/aaa-parameters/aaa-parameters.xml
. À
partir de cette version, on peut produire automatiquement, par
exemple, une version HTML.
Outre les données, on trouve à l'IANA les outils de conversion, par
exemple le script XSLT de conversion en
XHTML, https://www.iana.org/assignments/aaa-parameters/aaa-parameters.xsl
.
Le maintien de données cohérentes dans les registres nécessitait
évidemment la définition d'un schéma de données XML. Il est écrit en
RelaxNG (je recommande le livre d'Eric ven der Vlist sur ce langage). Le
schéma du registre AAA est en https://www.iana.org/assignments/aaa-parameters/aaa-parameters.rng
. Convertie
en syntaxe « compacte », voici ce
schéma. On note qu'il inclus un schéma plus général, applicable
à tous les registres, https://www.iana.org/assignments/_support/iana-registry.rng
(dont voici la version en syntaxe
compacte).
Armé de ces schémas, on peut vérifier que le registre est bien correct :
% rnv aaa-parameters.rnc aaa-parameters.xml aaa-parameters.xml
ou bien, avec xmllint :
% xmllint --noout --relaxng aaa-parameters.rng aaa-parameters.xml aaa-parameters.xml validates
L'IANA va désormais travailler à convertir tous les registres et à développer de nouveaux services que permet ce format, par exemple des mécanismes permettant de suivre les changements dans un registre, sans doute grâce à un système de syndication, où les flux de syndication pourront être produits automatiquement.
On notera que certains registres, ayant déjà un format structuré, ne seront pas convertis en XML. C'est le cas par exemple du registre des langues du RFC 4646.
Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)
Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)