UDDI registration information has the ability to mark entities with identifiers. The primary purpose for using identifiers in the UDDI registry is to uniquely identify a business based on known schemes. Usually, identifiers are attached to either business entities and/or tModels (Table 6.1). Businesses may be registered and located based upon formal identifiers, such as their D-U-N-S number, government-issued tax number, or, if they are a public company, their stock-exchange symbol.

Table 6.1: Business Entity Identifiers




The hostname of the network proxy server.


The port number used by the network proxy server. This defaults to port 80.


The hostname of the network proxy server that supports SSL. This is usually the same server as HTTP.


The port number used by the network proxy server for SSL. This defaults to port 443.


The hostname of the network proxy server that supports Socks based proxies.


The port number used by the network proxy server.

Private UDDI registries may also support this feature and use private identifiers. If the private UDDI registry is used in a private exchange, supplier identifiers known only to the private exchange community may be used to uniquely identify a business. Many identifiers are not immediately recognizable as such. One example might be "00-910-2001." However, once it is determined that this identifier is really a D-U-N-S number, it becomes obvious that the identifier represents a business. UDDI groups all identifiers in the registry with the identifier system, so they appear as follows: D-U-N-S Number, 00-910-2001." UDDI allows identifiers to be attached to businessEntity and tModel structures. UDDI provides a placeholder that will allow an arbitrary number of identifiers to be attached to an entry. Listing 6.5, the businessEntity entry for Flute Bank, specifies three identifiers in its identifierBag. Any of the three identifiers can be used in a find_business API call to locate the businessEntity in the registry. For clients who want to figure out the types of services a business offers, it is practical to search using a business identifier. Let us look at an example of Flute Bank's businessEntity, its identifierBag, and how it supports identities:

<businessEntity businessKey="uddi:flutebank.example">
 keyName="D-U-N-S:Flute Bank Corporation"

The identifierBag is established using three attributes of keyedReference. The tModelKey uniquely identifies the tModel that represents the identifier system. The keyName is the human-readable form of the identifier system. The keyValue is the unique identifier assigned to the business entity by the specified identifier system. As previously mentioned, identifier systems can be discovered using the find_tModel API that looks like this:

<?xml version="1.0"?>
<find_tModel generic="1.0" xmlns="urn:uddi-org:api">
 <keyedReference tModelKey="UUID:C1BBA22D-2321-2221-94D1-23B5AA42AA4"
 keyName="uddi-org:types" keyVale="wsdlSpec"/>