理解 UDDI 注册中心的 WSDL(1) - 51CTO.COM

来源:百度文库 编辑:神马文学网 时间:2024/04/27 16:29:46
理解 UDDI 注册中心的 WSDL(1)
http://tech.51cto.com  2006-12-19 14:10  Peter Brittenham等  developerWorks 中国  我要评论(0)
摘要:Web 服务描述语言(WSDL)有多种用法。特别是,根据应用程序的需要,WSDL 在 UDDI 注册中心有好几种使用方法。在这篇文章中,我们将介绍一下在 UDDI 注册中心使用 WSDL 的几种不同的方法。
标签:UDDI  WSDL
限时报名参加“甲骨文全球大会·2010·北京”及“JavaOne和甲骨文开发者大会2010”
Web 服务描述语言(WSDL)是用于描述 Web 服务的一种 XML 语言,它将 Web 服务描述为一组对消息进行操作的网络端点。一个 WSDL 服务描述包含对一组操作和消息的一个抽象定义,绑定到这些操作和消息的一个具体协议,和这个绑定的一个网络端点规范。
统一描述发现和集成(UDDI)提供一种发布和查找服务描述的方法。UDDI 数据实体提供对定义业务和服务信息的支持。WSDL 中定义的服务描述信息是 UDDI 注册中心信息的补充。UDDI 提供对许多不同类型的服务描述的支持。因此,UDDI 没有对 WSDL 的直接支持, 也没有对任何其它服务描述机制的直接支持。
UDDI 组织,即 UDDI.org,已经发布了一个优化方法文档,标题为 在 UDDI 注册中心 1.05 中使用 WSDL。这个优化方法文档描述了关于如何在 UDDI 注册中心发布 WSDL 服务描述的一些元素。本文的目的就是增加这种信息。主要的焦点问题是如何将一个完整的 WSDL 服务描述映射到 UDDI 注册中心,现有的 WSDL 工具和运行时环境要求必须做到这一点。本文中的信息遵守那个优化方法文档中列出的大致过程, 且与 WSDL 1.1、UDDI 1.0 和 UDDI 2.0 规范一致。
UDDI 和 WSDL 概述
在描述将 WSDL 服务描述映射到 UDDI 注册中心的过程之前,很重要的一点是要理解 UDDI 数据类型和主要的 WSDL 文档类型。
UDDI 数据类型
在 UDDI 注册中心有 4 种主要的数据类型: businessEntity、 businessService、 bindingTemplate和 tModel。图 1展示了所有这些数据类型之间的关系。
图 1. UDDI 数据类型

businessEntity 提供关于商家的信息,可以包含一个或多个 businessService。 这个商家是服务提供者。Web 服务的技术和业务描述在 businessService 和其 bindingTemplate 中被定义。每个 bindingTemplate 包含一个对一个或多个 tModel 的引用。tModel 被用于定义服务的技术规范。
WSDL 文档类型
为帮助在 UDDI 注册中心发布和查找 WSDL 服务描述,WSDL 文档被分为两种类型: 服务接口(service interface )和 服务实现(service implementations)。
图 2. WSDL 文档类型

服务接口由 WSDL 文档来描述,这种文档包含服务接口的 types、 import、 message、 portType和 binding等元素。服务接口包含将用于实现一个或多个服务的 WSDL 服务定义。它是 Web 服务的抽象定义,并被用于描述某种特定类型的服务。
通过使用一个 import 元素,一个服务接口文档可以引用另一个服务接口文档。 例如,一个仅包含 message 和 portType 元素的服务接口可以被另一个仅包含此 portType 的绑定的服务接口引用。
WSDL 服务实现文档将包含 import和 service元素。服务实现文档包含实现一个服务接口的服务的描述。import 元素中至少会有一个将包含对 WSDL 服务接口文档的引用。一个服务实现文档可以包含对多个服务接口文档的引用。
WSDL 服务实现文档中的 import 元素包含两个属性。 namespace的属性值是一个与服务接口文档中的 targetNamespace相匹配的 URL。 location属性是一个用于引用包含完整的服务接口定义的 WSDL 文档的 URL。port 元素的 binding属性包含对服务接口文档中的某个特定绑定的引用。
服务接口文档由 服务接口提供者开发和发布。服务实现文档由 服务提供者创建和发布。服务接口提供者与服务提供者这两个角色在逻辑上是分离的,但他们可以是同一个商业实体。
发布和查找 WSDL 描述
这一部分描述发布和查找一个完整的 WSDL 服务描述的过程。一个完整的 WSDL 服务描述是由一个服务接口和一个服务实现文档组成的。
由于服务接口表示服务的可重用定义,它在 UDDI 注册中心被作为 tModel 发布。 服务实现描述服务的实例。每个实例都是使用一个 WSDL service 元素定义的。服务实现文档中的每个 service 元素都被用于发布 UDDI businessService。
当发布一个 WSDL 服务描述时,在服务实现被作为 businessService 发布之前,必须将一个服务接口作为一个 tModel 发布。
图 3包含从 WSDL 到 UDDI 的映射概览。我将在下面的部分中对这个映射加以描述。
图 3. 从 WSDL 到 UDDI 的映射概览

发布服务接口
在 UDDI 注册中心,服务接口被作为 tModel 发布。tModel 由服务接口提供者发布。tModel 中的一些元素是使用来自 WSDL 服务接口描述中的信息构建的。
UDDI tModel
表 1定义创建 tModel 步骤。一个有效的对 WSDL 服务接口定义的 tModel 引用应该是使用 targetNamespace 命名,并且必须包含 overviewURL 和 categoryBag 设置。
表 1: 创建 tModel 的步骤
UDDI tModel WSDL 服务接口 描述 必需
1 name definitions 元素的 targetNamespace 属性 tModel 名称使用服务接口文档的目标名称空间设置。名称需要一致以确保只使用服务实现文档中的信息就可以定位 tModel。 是
2 description definitions 元素中的 documentation 元素 tModel description 元素被限制为只能使用 256 个字符。这个元素的英文值可根据 definitions 元素的前 256 个字符设置(documentation 元素与服务接口文档中的 definitions 元素相关联)。如果 documentation 元素不存在,那么应该使用 definitions 元素中的 name 属性。 否
3 overviewURL [服务接口文档 URL 和绑定规范] 服务接口文档的位置必须在 overviewURL 元素中设置。如果服务接口文档中有多个绑定,那么必须在 URL 中对绑定进行编码。 是
4 categoryBag [不可用] tModel 的 categoryBag 必须至少包含一个键控的引用。这个键控的引用必须包含一个对 uddi-org:typestModel 的引用,而且键名必须是 wsdlSpec。这个条目把 tModel 当作一个 WSDL 服务接口定义。