UDDI - With WSDL
The UDDI data model defines a generic structure for storing information about a business and the web services it publishes. The UDDI data model is completely extensible, including several repeating sequence structures of information.
However, WSDL is used to describe the interface of a web service. WSDL is fairly straightforward to use with UDDI.
WSDL is represented in UDDI using a combination of businessService, bindingTemplate, and tModel information.
As with any service registered in UDDI, generic information about the service is stored in the businessService data structure, and information specific to how and where the service is accessed is stored in one or more associated bindingTemplate structures. Each bindingTemplate structure includes an element that contains the network address of the service and has associated with it one or more tModel structures that describe and uniquely identify the service.
When UDDI is used to store WSDL information, or pointers to WSDL files, the tModel should be referred to by convention as type wsdlSpec, meaning that the overviewDoc element is clearly identified as pointing to a WSDL service interface definition.
For UDDI, WSDL contents are split into two major elements the interface file and the implementation file.
The Hertz reservation system web service provides a concrete example of how UDDI and WSDL works together. Here is the <tModel> for this web service:
<tModel authorizedName="..." operator="..." tModelKey="..."> <name>HertzReserveService</name> <description xml:lang="en"> WSDL description of the Hertz reservation service interface </description> <overviewDoc> <description xml:lang="en"> WSDL source document. </description> <overviewURL> http://mach3.ebphost.net/wsdl/hertz_reserve.wsdl </overviewURL> </overviewDoc> <categoryBag> <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="uddi-org:types" keyValue="wsdlSpec"/> </categoryBag> </tModel>
The key points are:
The overviewURL element gives the URL to where the service interface definition WSDL file can be found. This allows humans and UDDI/WSDL aware tools to locate the service interface definition.
The purpose of the keyedReference element in the categoryBag is to make sure that this tModel is categorized as a WSDL specification document.