It's a common misconception that a UDDI (Universal Description Discovery and Integration) registry provides a repository for WSDL documents, but in fact the UDDI spec has no direct knowledge of WSDL.
UDDI defines a relatively simple data model for capturing information about:
- Service providers (businessEntity)
- Services (businessService)
- Service bindings (bindingTemplate)
- Technical models and specifications (tModel)
UDDI also provides the means to categorize any information captured in the registry using name/value pairs (keyedReference).
This model is a general-purpose model that can capture information about any type of service, legacy application, specification or software asset. For example, you can register namespaces, schemas, element structures, XSLT stylesheets, UML models, components, even COBOL CopyBooks.
The OASIS UDDI-spec Technical Committee has published a technical note that defines a standard way to map information from a WSDL definition to this UDDI data model.
WSDL portTypes and bindings are registered as tModels. WSDL services are registered as businessServices, and WSDL ports are registered as bindingTemplates. The actual WSDL documents are not stored in the registry. The bindingTemplate points to the service access point, and you can usually find the service WSDL by appending ?wsdl to the endpoint URL. The tModels that represent the various WSDL artifacts will also point to their associated WSDL documents. Keep in mind that if you are on the true path to SOA, then WSDL portTypes and bindings are reusable components and don't necessarily represent a single service.
The UDDI-spec TC has also defined standard mappings for BPEL4WS and ebXML. The TC is working on additional standard mappings.
About the author:
Anne Thomas Manes, Research Director at Burton Group, is a renowned technologist in the Web services space. Manes is also SearchWebServices.com's SOAP and WSDL expert. Be sure to read her past expert responses or pose a question of your own.
This tip originally appeared in a SOA Yahoo Groups posting.