分享

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

 苏格拉底的智慧 2010-11-03

理解 UDDI 注册中心的 WSDL(1)

http://tech.51cto.com  2006-12-19 14:10  Peter Brittenham等  developerWorks 中国  我要评论(0)

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 数据类型

图 1. UDDI 数据类型

businessEntity 提供关于商家的信息,可以包含一个或多个 businessService。 这个商家是服务提供者。Web 服务的技术和业务描述在 businessService 和其 bindingTemplate 中被定义。每个 bindingTemplate 包含一个对一个或多个 tModel 的引用。tModel 被用于定义服务的技术规范。

WSDL 文档类型

为帮助在 UDDI 注册中心发布和查找 WSDL 服务描述,WSDL 文档被分为两种类型: 服务接口(service interface )和 服务实现(service implementations)。

图 2. WSDL 文档类型
图 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 的映射概览

图 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 服务接口定义。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多