83
Chapter 13
Directory-Based Discovery
Example
With a large number of Web services deployed within and across enterprises, the ability to
locate endpoints or get more information about them is a key need. One approach to meet this
need is to use a set of known directories. For Web services, a UDDI directory can be used. An
alternate approach using dynamic discovery is described in Chapter 15, “Dynamic Discovery
Example.”
UDDI
UDDI is a specification for interacting with a Web services registry. This registry can be the
public implementation hosted on the Internet or any private registry hosted on the Internet,
an extranet, or internally to an organization. While the UDDI nomenclature is developed
around the notion of businesses, services, and behaviors (tModels), it can be applied more
generally as a registry of any Web service. UDDI also makes heavy use of metadata associated
with each registry entry.
In our example scenario, the protocol for interacting with the Order service described earlier
in the WSDL section in Chapter 11, “Metadata Example,” is registered as a behavior (tModel).
Once this behavior is registered, the order management service, as an implementation of this
behavior, can be added to the registry as well. Information about the order management ser-
vice can then be retrieved through a series of search and retrieval operations.
In our example scenario, Microsoft Press hosts an extranet UDDI registry to help partners and
customers locate the appropriate Web services to support their applications.
UDDI tModels
UDDI tModels are used to register specific behaviors. For our example scenario, a single
tModel is registered for the order management service. A tModel entry consists of descriptive
information, a unique identifier, metadata, and administrative details.
UDDI tModels
(01) <tModel
(02) tModelKey="uuid:984765-2222-3333-4444-123456129874"
(03) operator="mspress.microsoft.com"
(04) authorizedName="admin@mspress.microsoft.com">
(05) <name>MSPress Purchase Order</name>
(06) <description xml:lang="en">PO service behavior</description>
84 Part II: Example Scenarios
(07) <overviewDoc>http://ex.mspress.microsoft.com/po/po.wsdl</overviewDoc>
(08) <identifierBag>...</identifierBag>
(09) <categoryBag>...</categoryBag>
(10) </tModel>
Line 02 Each tModel is assigned a universally unique identifier, UUID, when it is registered.
This UUID serves as a key for retrieving more information about the entry.
Line 03 The operator attribute is used primarily when UDDI registries are federated to indi-
cate which instance originally stored the entry.
Line 04 The authorizedName attribute specifies which UDDI registry account is used to cre-
ate and maintain the entry.
Lines 05–06 A human-readable name is provided for convenience, along with descriptions of
the tModel in multiple languages.
Line 07 The overviewDoc element can be used to reference documentation or other
resources for the behavior. In our example, it directly references the WSDL description
for the Purchase Order Web service.
Lines 08–09 Additional metadata can be associated with each entry to help with searching
and discovery. The identifierBag element can contain a list of unique identifiers that are
associated with the entry, and the categoryBag element can be used to specify a list of
taxonomy values.
Once the tModel is registered in UDDI, implementations of that tModel follow. In UDDI
nomenclature, the organization hosting the Web service is registered as a BusinessEntity, with
multiple BusinessService(s). A bindingTemplate associates a BusinessService with its imple-
mentation. Examples of this nested structure are shown below.
UDDI Business Entities
(01) <businessEntity
(02) businessKey="uuid:11111111-2222-3333-4444-555555554444"
(03) operator="mspress.microsoft.com"
(04) authorizedName="admin@mspress.microsoft.com">
(05) <discoveryURLs>
(06) <discoveryURL useType="businessEntity">
ws.mspress.microsoft.com?be=11111111-2222-3333-4444-555555554444
(07) <discoveryURL>
(08) </discoveryURLs>
(09) <name>Order Management Service</name>
(10) <description xml:lang="en">
Services related to customer service and order management.
(11) </description>
(12) <contacts>
(13) <contact useType="Sales">
(14) <personName>Chris Kurt</personName>
(15) <email>mailto:christopher_kurt@hotmail.com</email>

Get Web Services Architecture and Its Specifications: Essentials for Understanding WS-* now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.