XRI

Un article de Wikipédia, l'encyclopédie libre.

eXtensible Resource Identifier (abrégé XRI) est un schéma et un protocole de résolution pour les identifiants abstraits compatibles avec les Uniform Resource Identifiers et les Internationalized Resource Identifiers, développé par le Comité Technique XRI[1] chez OASIS. L'objectif de XRI est de fournir un format universel pour des identifiants abstraits, structurés qui soient indépendants des domaines, lieux, applications transports, de façon qu'ils puissent être partagés à travers un grand nombre de domaines, répertoire et protocoles d'interactions.

Notez que la spécification XRI et son raisonnement sous-jacent est controversé. Par exemple, le W3C Technical Architecture Group travaille sur un document draft[2] qui tente de réfuter quelques-uns des arguments produits par les partisans de XRI.

Histoire et Motivations[modifier | modifier le code]

Les URI ont été des identifiants très réussis sur l'internet. Néanmoins la croissance du web a mené à de nouvelles exigences pour des ressources identifiants qui ne sont pas facilement servies par la syntaxe standard URI. Une des exigences-clé - l'internationalisation - fut en fin de compte servie par le W3C et l'IETF en développant une nouvelle forme d'URI appelée un Internationalized Resource Identifiers (IRI). Les spécifications IRI construites sur le standard URI en augmentant le jeu de caractère pour supporter la gamme complète de caractères Unicode.

Avec la croissance du XML, des Web services et d'autres moyens d'adapter le Web à des communications automatisées, de machine à machine, un autre ensemble d'exigence a émergé. Ce sont les exigences de pouvoir identifier une ressource indépendante d'un chemin spécifique de réseau physique, d'un lieu ou d'un protocole parce que vous avez besoin de :

  • Créer des identifiants structurés avec des « tags » auto-descriptifs qui puissent être compris à travers les domaines de la même manière que les documents XML fournissent un format de données auto-descriptif et indépendant des domaines
  • Maintenir un lien persistant vers la ressource en dépit du fait de savoir si le lieu du réseau change.
  • Déléguer la gestion de l'identifiant pas simplement dans le segment de l'autorité (le premier segment suivant le schéma de nommage " ...:// ") mais n'importe où dans le chemin identifiant.
  • Les identifiants carto utilisés pour identifier une ressource dans un domaine vers d'autres "synonymes" pour identifier la même ressource dans le même domaine ou dans d'autres domaines.

Au début 2003, ces exigences ont conduit à l'établissement d'un nouveau comité technique chez OASIS dont le but était de créer un nouveau type d'identifiant construit au sommet de la spécification IRI de la même manière que la spécification IRI est construite au sommet de la spécification URI. Le Comité Technique XRI a été aussi chargé de créer une résolution en créant un protocole de résolution optionnel basé sur HTTP et de simples documents XML appelés 'Extensible Resource Descriptors' (XRDs).

Fonctionnalités[modifier | modifier le code]

  • URI- et compatibilité IRI — Les XRIs peuvent être utilisés à chaque fois que des URIs ou des IRIs sont appelés.
  • Cross-references — Un XRI peut contenir un autre XRI (ou URI), à n'importe quel niveau d'imbrication. Ceci permet la construction d'identifiants structurés, "tagués" qui permettent à l'identifiant de partager à travers des domaines de la même manière qu'XML permet le partage de données entre domaines.
  • Symboles globaux de context - ce sont des symboles à caractère unique (=, @, +, $, ou !) qui fournissent un moyen simple et lisible par les humains d'indiquer le contexte global d'un i-name ou d'un i-number. Ils ne sont pas obligatoires, mais peuvent être utilisés dans les communautés d'intérêt qui s'entendent sur leur signification et comment ils sont résolus.
  • Adressage Peer-to-peer — La syntaxe XRI supporte la capacité pour n'importe quel ensemble de deux nœuds de réseau d'assigner à chacun d'eux des XRIs et de mettre en œuvre une cross-résolution. Ce qui veut dire, une autorité d'espace-nom du niveau le plus haut peut être en référence vers des noms assignés par d'autres parties. Ceci aide à fédérer les espaces-noms entre les organisations ou les communautés d'intérêt.
  • Décentralisation — les XRIs peuvent être enracinées soit dans des systèmes d'adressage centralisés (par ex., des adresses IP ou des noms de domaines DNS) ou par des autorités racines privées/décentralisées.
  • Délégation — Les espaces-noms peuvent être délégués vers d'autres autorités d'espaces-noms.
  • Fédération — Les espaces noms définis séparément à n'importe quel niveau peuvent être joints d'une manière hiérarchique ou polyarchique et rendus visibles et résolvables.
  • Persistance — La capacité d'exprimer les intentions que les sections (ou toutes) d'un XRI sont des identifiants permanents qui ne seroint jamais réassignés.
  • Des formats lisibles par des humains et par des machines - XRI fournit une syntaxe pour des identifiants qui peuvent être créés et compris facilement par des humains, et ceux qui sont optimisés pour la structuration/parsage machine.
  • Résolution simple et extensible — XRI offre un schéma de résolution léger en utilisant HTTP et de simples documents XML.
  • Résolution de confiance - le protocole de résolution XRI comprend une version de confiance qui utilise les assertions SAML.
  • Nombreuses options de résolution - la résolution XRI peut être indépendante des DNS.
  • Complètement internationalisable, utilisant Unicode et les spécifications IRI.
  • Indépendant du Transport — Les XRIs ne sont pas liés à quelque mécanisme ou protocole de transport.


Pour un exemple spécifique, disons qu'un système de bibliothèque utilise des URNs dans l'espace-nom ISBN pour identifier des livres et des sous-domaines DNS pour identifier ses branches de bibliothèque. La syntaxe HTTP URI ne fournit pas un standard pour exprimer l'URN pour le titre d'un livre dans le contexte du nom de DNS pour la branche de librairie. La syntaxe inter-référence XRI résout ce problème en permettant à la bibliothèque (et même à des programmes automatisés tournant dans la bibliothèque) de construire par programmation les XRIs nécessaire pour adresser n'importe quel livre dans n'importe quelle branche. Exemples :

  xri://broadview.library.example.com/(urn:isbn:0-395-36341-1)
  xri://shoreline.library.example.com/(urn:isbn:0-395-36341-1)
  xri://northgate.library.example.com/(urn:isbn:0-395-36341-1)

Cette capacité de créer des identifiants structurés, auto-décrits peut être étendue à bien d'autres usages. Par exemple, disons que la bibliothèque voulait indique le type de chaque livre disponible. En établissant un simple dictionnaire XRI de types de livres, elle peut maintenant par programmation construire les XRIs qui incluent cette métadonnée,

  xri://broadview.library.example.com/(urn:isbn:0-395-36341-1)/(+hardcover)
  xri://broadview.library.example.com/(urn:isbn:0-395-36341-1)/(+softcover)
  xri://broadview.library.example.com/(urn:isbn:0-395-36341-1)/(+reference)

Applications[modifier | modifier le code]

Des exemples d'applications en cours de développement et utilisant l'infrastructure XRI sont :

  • Les services d'adressage I-name et I-number.
  • I-tags[3] pour un tagging structuré.
  • Le protocole de partage de données de confiance XDI développement par le Comité Technique XDI[4] d'OASIS.

Exemples[modifier | modifier le code]

(Remarquez qu'aucun d'entre eux n'utilise le préfixe "xri://", qui est optionnel dans les XRIs quand ils ne sont pas sous la forme normale d'URI, par ex, ils n'ont pas passé la transformation spécifiée entre le format XRI et le format URI.)

Des Exemples de XRI composés entièrement de segments réassignables :

 =Mary.Jones
 @Jones.and.Company
 +phone.number
 +phone.number/(+area.code)
 =Mary.Jones/(+phone.number)
 @Jones.and.Company/(+phone.number)
 @Jones.and.Company/((+phone.number)/(+area.code))

Des Exemples de XRI composés entièrement de segments persistants :

 !!1002!A7C5
 !!1002!A7C5/!D90F.88

Exemple de XRIs avec des mélanges de segments persistants et réassignables (XRI permet une combinaison des deux) :

 !!1002!A745/(+phone.number)
 @Jones.and.Company/!D90F.88/(+area.code)

Licence[modifier | modifier le code]

OASIS, qui est l'organisation supervisant le développement de ce nouveau standard a été critiquée par la Free Software Foundation pour sa politique de licence[5]. La FSF argue du fait que sa politique de licence peut ne pas permettre la conformité du logiciel l'implémentant pour la définition de Open Source. Néanmoins, le comité responsable du développement des standards XRI et XDI ont expressément déclaré leur intention de s'assurer que les standards soient sans histoire et complètement compatibles Open Source. Le texte pertinent extrait de leurs pages de chartes[6],[7] annonce :

In no event shall this Technical Committee finalize or approve any technical specification if it believes that the use, distribution, or implementation of such specification would necessarily require the unauthorized infringement of any third party rights known to the Technical Committee, and such third party has not agreed to provide necessary license rights on perpetual, royalty-free, non-discriminatory terms.

En outre, XDI.org[8], une organisation publique à but non lucratif qui détient une licence exclusive des brevets originaux sur lesquels reposent les technologies XRI et XDI, tout comme leur prédécesseur XNS, a contribué ces droits aux comités techniques OASIS XRI et XDI.

Voir aussi[modifier | modifier le code]

Références[modifier | modifier le code]

  1. http://www.oasis-open.org/committees/xri
  2. http://www.w3.org/2001/tag/doc/URNsAndRegistries-50.xml
  3. http://www.itags.net
  4. http://www.oasis-open.org/committees/xdi
  5. (en) « A Call to Action in OASIS », sur fsf.org (consulté le ).
  6. « OASIS Extensible Resource Identifier TC », sur oasis-open.org (consulté le ).
  7. « Oasis xri data interchange (xdi) tc », sur oasis-open.org (consulté le ).
  8. (en) « XDIORG - Infrastructure for accountable networks », sur xdi.org via Wikiwix (consulté le ).

Liens externes[modifier | modifier le code]