Registre UDDI Version 3 - Clés d'entité

La spécification UDDI version 3 permet de disposer de plus d'espace pour les clés. Les clés d'entité peuvent correspondre à tout URI (Universal Resource Identifier) conforme au schéma UDDI recommandé. Par ailleurs, selon la règle du registre, les clés peuvent être attribuées par le registre UDDI comme par le diffuseur de l'entité.

Les clés d'entité permettent d'identifier les entités dans un registre UDDI. Chaque entité, par exemple businessEntity, businessService, bindingTemplate ou tModel, possède un identificateur unique généré ou attribué lorsque cette entité est publiée pour la première fois dans le registre UDDI. Une clé doit être unique dans un registre donné. Pour UDDI Version 1 et Version 2, l'espace est limité à un UUID (identificateur unique universel). Pour la spécification UDDI Version 3, les clés d'entité peuvent être tout identificateur URI conforme au schéma UDDI recommandé.

Dans cette même spécification, selon la règle du registre, les clés peuvent être attribuées par le registre UDDI mais également par le diffuseur de l'entité UDDI. Ces différences soulèvent un certain nombre de questions quant au maintien de l'unicité des clés et à la gestion de l'espace affecté aux clés.

Schéma UDDI

Le registre UDDI Version 3 implémente le schéma UDDI conseillé, conformément à la section 4.4 de la spécification UDDI Version 3. (http://uddi.org/pubs/uddi_v3.htm). Ce schéma définit le format des clés, les caractères valides et le concept d'espace de clés.

Dans le registre UDDI Version 3, une clé peut être un quelconque URI et sa longueur est limitée à 255 caractères. Le diagramme ci-après récapitule les différents types de clé selon le schéma de clé UDDI :

La clé d'UUID est indiquée par uddi:<UUID>, la clé de domaine est indiquée par uddi:<domain> et la clé dérivée est indiquée par <subkey>:<kss>
Toutes les clés se composent d'un ensemble de jetons séparés par le caractère ":" (deux points). Le premier jeton de toutes les clés respectant le schéma UDDI est uddi. Il existe trois types de clés :
  • Les clés uuidKey comportent deux jetons : le jeton obligatoire uddi et un jeton <UUID>. Le caractère unique de ces clés est assuré par l'algorithme UUID.
  • Les clés de domaine comportent deux jetons : le jeton obligatoire uddi et un nom de domaine. Ces clés permettent de créer des espaces de clés mutuellement exclusifs supplémentaires.
  • Les clés dérivées (derivedKey) sont des clés composites basées sur une sous-clé correspondant à toute clé uddiKey et sur un jeton supplémentaire, kss, correspondant à une chaîne spécifique de clé. Le jeton kss peut être affecté par un diffuseur de publications ou être calculé avec un algorithme (UUID).
Le générateur de clés est un autre concept du schéma de clé UDDI. Un générateur de clés représente un clé de clés. Un diffuseur peut enregistrer des entités en utilisant des clés d'un espace de clés uniquement s'il est propriétaire du générateur de clé qui représente l'espace de clés. Cette fonction contribue à préserver l'unicité des clés. Le générateur de clés est une entité tModel dont la clé se présente sous la forme <subkey>:keygenerator. En étant propriétaire de cette entité tModel, un diffuseur peut affecter des clés dans le format <subkey>:<kss>. Le diffuseur peut également publier de nouvelles entités tModel générateurs de clés sous la forme <subkey>:<kss>:keygenerator.

Unicité des clés et espace de clés racine du registre

Vous pouvez configurer des instances du registre UDDI en tant que registre racine ou en tant que registre affilié.

Un registre racine définit son propre espace de clés racine en définissant son propre générateur de clés racine, ce qui détermine l'espace de clés total géré par le registre. Toutes les clés que le registre génère se trouvent dans cet espace. Si la règle l'autorise, les diffuseurs peuvent créer sous-diviser l'espace de clés en publiant de nouvelles entités tModel générateurs de clés dans le format <rootkeygenerator>:<subdivisionIdentifier>:keygenerator. Ensuite, les diffuseurs peuvent inclure dans les demandes de publication suivantes les clés qu'ils fournissent et qui se trouvent dans leur sous-division d'espace de clés allouée <rootkeygenerator>:<subdivisionIdentifier>:<kss>.

Afin d'éviter les conflits de clés, les registres affiliés doivent définir leur propre générateur de clés racine en soumettant tout d'abord une demande tModel:keygenerator au registre racine auquel ils veulent être affiliés, puis en utilisant cette sous-division de l'espace de clés du registre racine comme générateur de clés racine. Ce processus permet d'éviter les conflits entre les clés qui sont générées ou acceptées par un registre affilié et d'autres clés de l'espace de clés du registre racine.

Des règles simples permettent de préserver l'unicité des clés. Le registre génère de nouvelles clés uniquement dans l'espace de clés défini par son propre générateur de clés racine. Le registre accepte uniquement les clés définies par un diffuseur de publications et qui se trouvent dans les sous-divisions de l'espace de clés détenu par le diffuseur (suite à l'aboutissement d'une précédente demande de publication tModel tModel:keygenerator).

Un exemple simple de registre racine privé

avec un générateur de clé racine :

uddi:aPrivateRegistryKeySpaceIdentifier:keygenerator  

génère des clés d'entité dont le format est :

uddi:aPrivateRegistryKeySpaceIdentifier:<uuid>

selon la règle, accepte des requêtes tModel:keygenerator provenant de diffuseurs pour 
les sous-divisions de ‘niveau supérieur’ de format :

uddi:aPrivateRegistryKeySpaceIdentifier:aPublisherSubdivisionIdentifier:
keygenerator

Publication de demandes tModel:keygenerator pour les sous-divisions d'un espace de clés

Selon la règle, un diffuseur de publication peut soumettre une demande de sous-division de niveau supérieur de l'espace de clés du registre racine pour son usage personnel. La règle peut indiquer si le registre prend en charge les clés fournies par les diffuseurs de publication et si les autorisations utilisateur d'un diffuseur particulier lui permettent de soumettre des demandes d'espace de clés.

Tout comme il peut créer des sous-divisions de niveau supérieur dans l'espace de clés du registre racine, un diffuseur de publication peut également créer des sous-divisions supplémentaires dans cet espace de clés.

L'exemple simple qui suit prolonge l'exemple précédent. L'utilisateur demande ici la subdivision a :
uddi:aPrivateRegistryKeySpaceIdentifier:aPublisherSubdivisionIdentifier:
a:keygenerator

Pour qu'une demande de sous-division aboutisse, elle doit être soumise par le diffuseur de publication qui a précédemment demandé et qui possède l'entité tModel correspondant à la sous-division précédente. Dans l'exemple précédent, ce diffuseur de publications est uddi:aPrivateRegistryKeySpaceIdentifier:aPublisherSubdivisionIdentifier:keygenerator).

Publication avec une clé fournie par le diffuseur de publication

Après avoir demandé et obtenu une sous-division de l'espace de clés d'un registre racine, le diffuseur de publication doit établir et gérer son propre schéma pour garantir l'unicité, au sein de la sous-division, des clés qui ont été générées pour utilisation en tant que clés fournies par le diffuseur dans les demandes de publication à venir.

Un schéma est valide lorsqu'il génère des clés dérivées uniques dans la sous-division d'espace de clés attribuée, avec inclusion, par exemple, d'un indice numérique (incrémenté) unique.

L'exemple suivant prolonge l'exemple précédent. Pour une sous-division d'espace de clés créée suite à la demande tModel:keygenerator suivante :
uddi:aPrivateRegistryKeySpaceIdentifier:aPublisherSubdivisionIdentifier:
a:keygenerator

les clés valides sont :

uddi:aPrivateRegistryKeySpaceIdentifier:aPublisherSubdivisionIdentifier:a:1

uddi:aPrivateRegistryKeySpaceIdentifier:aPublisherSubdivisionIdentifier:a:2 

Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwsu_entity_keys
Nom du fichier : cwsu_entity_keys.html