Generating Keys Publisher-Assigned Keys

second key generator, the user is permitted to save structures with keys of the uddi:systinet.com:uddiRegistry:demo:businessService domain, such as uddi:systinet.com:uddiRegistry:demo:businessService:exchangeRate . Important To generate keys for a domain, the user must own the domains key generator tModel. Only the administrator can save structures with assigned keys without having the key generator tModel. To enable this process for other users, the administrator must save the domains tModel and then change its ownership to the user via custody transfer. For more information, please see Section Publish Custody Transfer .

5.2.2. Affiliations of Registries

The rules above ensure that two users can not create structures with the same key. A complicated situation arises when one user wants to copy UDDI structures from one registry to another while preserving the keys of those structures. There are two problems: 1. The key of the copied structure must not exist on the second registry. The key must be unique - this is required by the UDDI specification. 2. The user must be allowed to save a structure with a specified key on the second registry. The Affiliated registries mechanism solves both problems. An affiliation is a relationship between two registries. The first registry gives up generation of keys for a certain domain and transfers this privilege to the second registry. This ensures that keys from both registries are unique. Note In the examples below we name the two registries master and slave. Moreover there are three people: • The person 1 is an administrator of the master registry, this account is called master-admin. • The person 2 is an administrator of the slave registry account slave-admin and a common user on the master registry account master-user2. • The person 3 is a common user on slave registry account slave-user3 and a common user on master registry account master-user3. Affiliation Setup To set up an affiliation: 1. The administrator of the slave registry slave-admin registers a user account on the master registry master-user2. 2. Master-user2 requests a key generator tModel from the administrator of the Master registry. 3. This administrator, master-admin, creates the key generator tModel and transfers it to the master-user2 account using custody transfer. 4. Person 2 manually copies the key generator tModel to the slave registry his slave-admin account has permission to assign any key and sets up the slave registry to generate all keys based on this key generator. For more information, please see Section 2.7, Node in the Administrators Guide. All keys generated by the slave registry or its users will be from the domain or some subdomain defined by the key generator. Page 210 Affiliation Setup Copying Structures with Key Preservation Given key should refer to the same structure no matter which registry the structure is in. Suppose that slave-admin creates a key generator tModel for slave-user3 and this user uses the key generator to generate a key for a structure in the slave registry. To copy the structure to the master registry, this key generator tModel must exist on both registries. To copy a structure from the slave to the master registry: 1. The slave-user3 must ask person 2 slave-admin to copy the second key generator, because only the holder of the account master-user2, as owner of the first key generator, can do this on the master registry. 2. Then master-user2 transfers ownership of the second key generator in the master registry to master-user3. Now master-user3 can copy the structure while preserving the generated keys.

5.3. Range Queries

Oracle Service Registrys range queries functionality allows you to search UDDI entities with the ability to use comparative operators , for matching keyValues in keyedReferences. There must be a defined type of keyValues in the taxonomy which defines the ordering. The following ordering types are supported: string, numeric, and custom. KeyedReferences in find_XXX queries are extended by a list of find qualifiers. Do not mix with find qualifiers of the whole query. Find Qualifiers are used for specifying comparison operators. See Section Find Business by Categories how to search UDDI data structures using range queries with Registry Control. Note The Oracle Service Registry implementation of range queries goes beyond the current UDDI v3 specification since the specification does not define this functionality. The following findQualifiers are supported: • equal - the default find qualifier. If no one from the group of equal, greaterThan, lesserThan qualifiers is specified. This is done due to the backward compatibility with a standard UDDI. When used, the keyedReference from the request matches to the all keyedReferences from the database with the same tModelKey and the same keyValue. • greaterThan - When used, the keyedReference from the request match to the all keyedReferences from the database with the same tModelKey and a greater keyValue. • lesserThan - When used, the keyedReference from the request match to the all keyedReferences from the database with the same tModelKey and a lesser keyValue. • notExists - This findQualifier has validity for the whole keyedReference not just for keyValues. An entity matches the find request with notExists findQualifier if and only if the specific keyedReference does not exist in its categoryBag. This findQualifier can be arbitrarily combined with greaterThan, lesserThan and equal findQualifiers. If the notExists findQualifier is used alone, then the equal findQualifier is considered automatically. Comparators can be combined: • greaterThan and equal find qualifiers can be used together with the keyedReference match to the all keyedReferences with the same tModelKey and a greater or equal keyValue =. • lesserThan and equal find qualifiers can be used together with the keyedReference match to the all keyedReferences with the same tModelKey and a lesser or equal keyValue =. Page 211

5.3. Range Queries