使用 WSDL 的 UDDI
UDDI 数据模型定义了一个通用结构,用于存储有关业务及其发布的 Web 服务的信息。 UDDI数据模型是完全可扩展的,包括多个重复的信息序列结构。
但是,WSDL 用于描述 Web 服务的接口。 WSDL 与 UDDI 一起使用相当简单。
WSDL 使用businessService、bindingTemplate 和tModel 信息的组合在UDDI 中表示。
与在 UDDI 中注册的任何服务一样,有关服务的一般信息存储在 businessService 数据结构中,而有关服务访问方式和位置的特定信息则存储在一个或多个数据结构中。 更多关联的 bindingTemplate 结构。 每个 bindingTemplate 结构都包含一个元素,该元素包含服务的网络地址,并具有与其关联的一个或多个描述和唯一标识服务的 tModel 结构。
当 UDDI 用于存储 WSDL 信息或指向 WSDL 文件的指针时,按照惯例,tModel 应称为类型 wsdlSpec, 这意味着 overviewDoc 元素被明确标识为指向 WSDL 服务接口定义。
对于 UDDI,WSDL 内容分为两个主要元素:接口文件和实现文件。
Hertz 预订系统 Web 服务提供了 UDDI 和 WSDL 如何协同工作的具体示例。 这是此 Web 服务的 <tModel> −
<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>
重点是 −
overviewURL 元素给出了可以找到服务接口定义 WSDL 文件的 URL。 这使得人类和 UDDI/WSDL 感知工具能够定位服务接口定义。
categoryBag 中 keyedReference 元素的用途是确保此 tModel 被分类为 WSDL 规范文档。