带有 WSDL 的 UDDI


UDDI 数据模型定义了用于存储有关业务及其发布的 Web 服务的信息的通用结构。UDDI数据模型是完全可扩展的,包括多个重复的信息序列结构。

然而,WSDL 用于描述 Web 服务的接口。WSDL 与 UDDI 一起使用相当简单。

  • WSDL 使用businessService、bindingTemplatetModel信息的组合在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 规范文档。