Entitätsschlüssel der UDDI-Registry der Version 3
Die Spezifikation UDDI Version 3 erweitert den für Schlüssel verfügbaren Bereich. Entitätsschlüssel können beliebige URIs (Universal Resource Identifier) nach dem empfohlenen UDDI-Schema sein. Je nach Registry-Richtlinie kann sowohl die UDDI-Registry als auch der Publisher der Entität Schlüssel zuordnen.
Entitätsschlüssel sind Bezeichner für die Adressierung von Entitäten in einer UDDI-Registry. Für jede Entität, wie z. B. businessEntity, businessService, bindingTemplate oder tModel-Entität, die zum ersten Mal in der UDDI-Registry publiziert wird, wird ein eindeutiger Bezeichner generiert und der Entität zugeordnet. Ein Schlüssel muss innerhalb einer Registry eindeutig sein. For UDDI Version 1 und Version 2 ist der Bereich auf eine universelle eindeutige Kennung (UUDI, Universal Unique Identifier) beschränkt. Für UDDI Version 3 können Entitätsschlüssel beliebige URIs sein, die dem empfohlenen UDDI-Schema entsprechen.
Für UDDI Version 3 kann je nach Registry-Richtlinie nicht nur die UDDI-Registry Schlüssel zuordnen, sondern auch der Publisher der Entität. Dieser Unterschied hat Folgen für die Bewahrung der Eindeutigkeit von Schlüsseln und für die Verwaltung des Schlüsselbereichs.
UDDI-Schema
UDDI Version 3 Registry implementiert das empfohlene UDDI-Schema, wie es im Abschnitt 4.4 der Spezifikation UDDI Version 3 beschrieben ist (http://uddi.org/pubs/uddi_v3.htm). Dieses Schema definiert das Format der Schlüssel, die gültigen Zeichen und das Konzept des Schlüsselbereichs.
In der Registry der UDDI Version 3 ist ein Schlüssel ein beliebiger URI und auf 255 Zeichen beschränkt. Die folgende Abbildung zeigt die verschiedenen Schlüsseltypen innerhalb des UDDI-Schlüsselschemas:

- Die uuidKey-Schlüssel enthalten zwei Token, das obligatorische "uddi" und eine <UUID>. Diese Schlüssel gewährleisten die Eindeutigkeit innerhalb des UUID-Algorithmus.
- Die domainKey-Schlüssel enthalten zwei Token, das verbindliche "uddi" und einen Domänennamen. Diese Schlüssel werden für das Erstellen weiterer exklusiver Schlüsselbereiche verwendet.
- Die derivedKey-Schlüssel sind zusammengesetzte Schlüssel, die auf einem Unterschlüssel (beliebiger uddiKey) basieren, der mit einem zusätzlichen Token (kss) versehen wird. Dieses Token ist eine schlüsselspezifische Zeichenfolge, anhand derer die Schlüssel unterschieden werden. Ein Publisher kann kss-token zuordnen, oder das kss-Token kann über einen Algorithmus (UUID) berechnet werden.
Eindeutigkeit von Schlüsseln und Stammschlüsselbereiche der Registry
Instanzen der UDDI-Registry können als Stammregistry oder angegliederte Registry konfiguriert werden.
Stammregistrys definieren ihren eigenen Stammschlüsselbereich, indem sie ihren eigenen Stammschlüsselgenerator festlegen. Diese Aktion definiert den gesamten von der Registry verwalteten Schlüsselbereich. Alle Schlüssel, die von der Registry generiert werden, sind in diesem Schlüsselbereich enthalten. Sofern es die Richtlinie zulässt, können Publisher Teile dieses Schlüsselbereichs anfordern, indem sie neue tModel-Entitäten für Schlüsselgeneratoren im Format "<Stammschlüsselgenerator>:<Teilbereichs-ID>:keygenerator" veröffentlichen. Anschließend können die vom Publisher bereitgestellten Schlüssel in nachfolgenden Veröffentlichungsanforderungen verwendet werden, die sich zugeordneten Teilbereich des Schlüsselbereichs (<Stammschlüsselgenerator>:<Teilbereichs-ID>:<kss>) befinden.
Um Schlüsselkollisionen zu vermeiden, müssen angegliederte Registrys ihren Stammschlüsselgenerator einrichten, indem Sie zunächst eine Anforderung tModel:keygenerator an die Stammregistry übergeben, der sie angegliedert werden möchten. Anschließend verwenden die angegliederten Registrys diesen Teilbereich des Schlüsselbereichs der Stammregistry als ihren eigenen Stammschlüsselgenerator. Auf diese Weise wird sichergestellt, dass die generierten oder von einer angegliederten Registry akzeptierten Schlüssel nicht in Kollision mit anderen Schlüsseln im Schlüsselbereich der Stammregistry kommt.
Zur Bewahrung der Eindeutigkeit der Schlüssel werden einfache Regeln angewendet. Die Registry generiert nur innerhalb des Schlüsselbereichs neue Schlüssel, der von ihrem eigenen Stammschlüsselgenerator definiert wurde. Die Registry akzeptiert nur Schlüssel von Publishern, die in dem Teilbereich des Schlüsselbereichs enthalten sind, der dem jeweiligen Publisher im Ergebnis einer erfolgreichen tModel-Publish-Anforderung "tModel:keygenerator" zugewiesen wurde.
Einfaches Beispiel für private Stammregistry
Mit einem Stammschlüsselgenerator:
uddi:aPrivateRegistryKeySpaceIdentifier:keygenerator
werden Entitätsschlüssel im folgenden Format generiert:
uddi:aPrivateRegistryKeySpaceIdentifier:<uuid>
Je nach Richtlinie werden tModel:keygenerator-Anforderungen
von Publishern für Teilbereiche der Ausgangsebene im folgenden
Format akzeptiert:
uddi:aPrivateRegistryKeySpaceIdentifier:aPublisherSubdivisionIdentifier:
keygenerator
tModel:keygenerator-Anforderungen für Teilbereiche des Schlüsselbereichs veröffentlichen
Je nach Richtlinie kann ein Publisher eine Anforderung für einen übergeordneten Teilbereich im Schlüsselbereich der Stammregistry zur eigenen Verwendung übergeben. Die Richtlinie definiert, ob die Registry von Publishern angegebene Schlüssel unterstützt und ob die Benutzerberechtigungen eines bestimmten Publishers die Übergabe von Schlüsselbereichsanforderungen ermöglichen.
Ein Publisher kann nicht nur übergeordnete Teilbereiche im Schlüsselbereich der Stammregistry, sondern auch weitere Teilbereiche im Schlüsselbereich erstellen.
uddi:aPrivateRegistryKeySpaceIdentifier:aPublisherSubdivisionIdentifier:
a:keygenerator
Damit eine Anforderung eines weiteren Teilbereichs erfolgreich ist, muss der Publisher, der die tModel-Entität für den vorherigen Teilbereich angefordert hat und besitzt, die Anforderung absetzen. Im vorherigen zurück ist dieser Publisher "is uddi:aSchlüsselbereichsIDderPrivatenRegistry:aPublisherTeilbereichsID:keygenerator".
Veröffentlichung mit einem vom Publisher bereitgestellten Schlüssel
Nachdem ein Publisher einen Teilbereich im Schlüsselbereich einer Stammregistry erfolgreich angefordert hat, muss dieser Publisher ein eigenes Schema konfigurieren und verwalten, um sicherzustellen, dass die Schlüssel, die als vom Publisher bereitgestellte Schlüssel für nachfolgenden Veröffentlichungsanforderungen generiert werden, im Teilbereich eindeutig sind.
Ein gültiges Schema generiert Schlüssel, die innerhalb des zugeordneten Teilbereichs des Schlüsselbereichs eindeutige abgeleitete Schlüssel sind. Dies könnte beispielsweise durch Aufnahme eines eindeutigen numerischen Index (der erhöht wird) geschehen.
uddi:aPrivateRegistryKeySpaceIdentifier:aPublisherSubdivisionIdentifier:
a:keygenerator
sind folgende Schlüssel gültig:
uddi:aSchlüsselbereichsIDderPrivatenRegistry:aPublisherTeilbereichsID:a:1
uddi:aSchlüsselbereichsIDderPrivatenRegistry:aPublisherTeilbereichsID:a:2