UDDI 레지스트리 버전 3 엔티티 키
UDDI 버전 3 스펙은 키에 사용 가능한 영역을 확장합니다. 엔티티 키는 권장 UDDI 체계를 따르는 임의의 유니버셜 자원 ID(URI)일 수 있습니다. 레지스트리 정책에 따라서, UDDI 레지스트리와 엔티티의 공개자가 모두 키를 지정할 수 있습니다.
엔티티 키는 UDDI 레지스트리에 있는 엔티티의 주소를 지정하는 데 사용되는 ID입니다. 각 businessEntity, businessService, bindingTemplate 또는 tModel 엔티티에는 UDDI 레지스트리에 처음 공개될 때 생성되거나 지정되는 고유 ID가 있습니다. 특정 레지스트리에서 키는 고유해야 합니다. UDDI 버전 1 및 버전 2의 경우 이 영역은 UUID(Universal Unique Identifier)로 제한됩니다. UDDI 버전 3의 경우 엔티티 키는 권장되는 UDDI 체계를 따르는 모든 URI일 수 있습니다.
UDDI 버전 3의 경우 레지스트리 정책에 따라 UDDI 레지스트리는 키를 지정하고 엔티티의 공개자도 지정할 수 있습니다. 이러한 차이점은 키 고유성을 유지보수하고 키 영역을 관리하는 데 문제점을 일으킵니다.
UDDI 체계
UDDI 버전 3 레지스트리는 UDDI 버전 3 스펙의 섹션 4.4에서 설명한 대로 권장되는 UDDI 체계를 구현합니다(http://uddi.org/pubs/uddi_v3.htm). 이 체계는 키 형식, 유효한 문자 및 키 영역의 개념을 정의합니다.
UDDI 버전 3 레지스트리에서 키는 임의의 URI이고 최대 길이는 255자입니다. 다음 다이어그램에서는 UDDI 키 체계에 있는 다른 유형의 키를 보여줍니다.

- uuidKey 키에는 두 개의 토큰(필수 uddi 및 <UUID>)이 있습니다. 이러한 키는 UUID 알고리즘을 통해 고유성을 보증합니다.
- domainKey 키에는 두 개의 토큰(필수 uddi 및 도메인 이름)이 있습니다. 이러한 키는 상호 배타적인 추가 키 영역을 작성하기 위한 것입니다.
- derivedKey 키는 임의의 uddiKey인 하위 키와 추가 토큰인 kss(키를 구별하는 키 특정 문자열)를 기반으로 하는 복합 키입니다. 공개자가 kss 토큰을 지정하거나 kss 토큰을 알고리즘 방식으로 계산할 수 있습니다(UUID).
키 고유성 및 레지스트리 루트 키 영역
UDDI 레지스트리의 인스턴스를 루트 레지스트리 또는 가입 레지스트리로 구성할 수 있습니다.
루트 레지스트리는 자신의 루트 키 생성기를 정의하여 루트 키 영역을 정의합니다. 이 조치는 레지스트리가 관리하는 전체 키 영역을 정의합니다. 레지스트리가 생성하는 모든 키는 이 키 영역에 있습니다. 정책에서 허용하는 경우 공개자는 <rootkeygenerator>:<subdivisionIdentifier>:keygenerator 양식으로 새 키 생성기 tModel 엔티티를 공개하여 이 키 영역의 하위 디비전을 요청할 수 있습니다. 그런 다음 공개자는 할당된 키 영역 하위 디비전 <rootkeygenerator>:<subdivisionIdentifier>:<kss>에 있는 후속 공개 요청에 공개자 제공 키를 포함시킬 수 있습니다.
키 충돌을 방지하려면 가입 레지스트리는 먼저 가입할 루트 레지스트리에 tModel:keygenerator 요청을 제출한 다음 루트 레지스트리의 키 영역에 대한 이 하위 디비전을 자신의 루트 키 생성기로 사용하여 해당 루트 키 생성기를 확립해야 합니다. 이 프로세스를 실행하면 루트 레지스트리 키 영역에서 가입 레지스트리 및 기타 키에 의해 생성되거나 승인된 키 사이의 충돌이 없습니다.
키 고유성을 유지보수하기 위해 단순한 규칙이 적용됩니다. 레지스트리는 자신의 루트 키 생성기가 정의한 키 영역에서만 새 키를 생성하고, 공개자가 소유한 키 영역의 하위 디비전에 있는 공개자 제공 키를 승인하기만 합니다(이전 tModel tModel:keygenerator 공개 요청이 성공한 결과).
개인용 루트 레지스트리에 대한 간단한 예제:
with a Root keygenerator:
uddi:aPrivateRegistryKeySpaceIdentifier:keygenerator
generates Entity Keys of format:
uddi:aPrivateRegistryKeySpaceIdentifier:<uuid>
depending on Policy, accepts tModel:keygenerator requests from Publishers for
‘top-level' subdivisions of format:
uddi:aPrivateRegistryKeySpaceIdentifier:aPublisherSubdivisionIdentifier:
keygenerator
키 영역의 하위 디비전을 위한 tModel:keygenerator 요청 공개
정책에 따라 공개자는 자체적으로 사용하기 위해 루트 레지스트리에서 키 영역의 최상위 레벨 하위 디비전에 대한 요청을 제출할 수 있습니다. 정책은 레지스트리가 공개자 제공 키를 지원하는지 여부와 공개자가 특정 공개자의 사용자 자격을 사용하여 키 영역에 대한 요청을 제출할 수 있는지 여부를 지정할 수 있습니다.
루트 레지스트리에서 키 영역의 최상위 레벨 하위 디비전뿐만 아니라 공개자는 키 영역의 추가 하위 디비전도 작성할 수 있습니다.
uddi:aPrivateRegistryKeySpaceIdentifier:aPublisherSubdivisionIdentifier:
a:keygenerator
추가 하위 디비전 요청이 성공하려면 이전 하위 디비전에 대한 tModel 엔티티를 요청했으며 소유한 공개자가 요청을 작성해야 합니다. 이전 예제에서 이 공개자는 uddi:aPrivateRegistryKeySpaceIdentifier:aPublisherSubdivisionIdentifier:keygenerator입니다.
공개자가 제공한 키를 사용하여 공개
공개자가 루트 레지스트리에서 키 영역의 하위 디비전을 올바로 요청한 후 공개자는 후속 공개 요청에서 공개자 제공 키로 사용하려고 생성한 키가 하위 디비전에서 고유한지 확인하기 위해 자체 설계를 확립하고 유지보수해야 합니다.
유효한 체계는 할당된 키 영역 하위 디비전 내에서 도출된 고유한 키를 생성해야 합니다(예: 고유한(증가된) 숫자 색인 포함).
uddi:aPrivateRegistryKeySpaceIdentifier:aPublisherSubdivisionIdentifier:
a:keygenerator
valid keys are:
uddi:aPrivateRegistryKeySpaceIdentifier:aPublisherSubdivisionIdentifier:a:1
uddi:aPrivateRegistryKeySpaceIdentifier:aPublisherSubdivisionIdentifier:a:2