理解UDDI(3): bindingTemplate与Web服务调用(上)

理解 UDDI(3):

bindingTemplate 与 Web 服务调用

( 本文最初由 IBM developerWorks 中国网站发表,其网址是 http://www.ibm.com/developerWorks/cn/ )

( 本文是我在 developerWorks 专栏发表的 bindingTemplate与Web服务调用
,需要浏览未缩减版原文,请访问 http://www.ibm.com/developerWorks/cn/ )

Web 服务的技术描述是通过单独包含的 bindingTemplate 结构的实例来实现的。这些结构提供对决定技术入口点的支持,或者可选地支持远端主机宿主的服务,同时还提供一个轻量级的工具用于描述指定服务实现的唯一技术特征。技术和应用相关的参数和配置文件也同时被支持。

由于 UDDI 的主要作用是用来描述和发现 Web 服务信息,所以 bindingTemplate 被用来描述最令人感兴趣的技术信息。

每一个 bindingTemplate 结构都有一个单一的 businessService 逻辑父结构,并且该 businessService 也有一个单一的 businessEntity 逻辑父结构。

结构规范 :

|

 1<element name="bindingTemplate">
 2<complextype>
 3<sequence>
 4<element maxoccurs="unbounded" minoccurs="0" ref="description"></element>
 5<choice>
 6<element minoccurs="0" ref="accessPoint"></element>
 7<element minoccurs="0" ref="hostingRedirector"></element>
 8</choice>
 9<element ref="tModelInstanceDetails"></element>
10</sequence>
11<attribute ref="bindingKey" use="required"></attribute>
12<attribute ref="serviceKey"></attribute>
13</complextype>
14</element>

---|---

下层子结构说明 :

字段名

|

描述

|

数据类型

|

长度

---|---|---|---

** bindingKey **

|

给定的 bindingTemplate 的唯一的键值。当保存一个新的 bindingTemplate 结构时,应当传入一个值为空的 bindingKey 值。上述操作将促使 UDDI 注册中心生成一个新的 UUID 值。为更新一个已经存在的 bindingTemplate 结构,应当传入与该绑定信息相对应的 UUID 值。如果数据是通过一个查询操作得到, bindingKey 值可以不为空。

|

UUID

|

41

serviceKey

|

当 bindingTemplate 数据包含在一个已经完整表达信息的同时已经包含一个 serviceKey 值的 businessService 父结构时,这个属性是可选的。如果 bindingTemplate 数据被生成为 XML 文档,同时这个文档中没有包含一个具有 serviceKey 的 businessService 父结构,那么必须在 bindingTemplate 中提供父结构的 serviceKey 值。这种行为支持了以任何核心元素作为起点而进行浏览的行为,在这种情况下这样的数据描述能够轻松地处理核心元素给定的父 / 子关系。

|

UUID

|

41

description

|

可选的可重复元素。对技术服务入口点的具备国家语言代码修饰的零个或多个文本描述。

|

string

|

255

** accessPoint **

|

必要的由属性修饰的数据元素。本元素是用来描述为调用服务所需的合适入口点地址的文本字段。它可以是 URL 、 e-mail 地址,或者是一个电话号码。在对于该 Web 服务的技术要求有所了解之前,不应当对该文本栏中出现的信息有任何的理解假设。

|

string w/attributes

|

255

** hostingRedirector **

|

如果没有提供 accessPoint 元素,那么本元素是必须的。这个字段是一个可重定向到另一个 bindingTemplate 的引用。如果你查询一个 bindingTemplate 并且在其中找到一个 hostingRedirector 的值,你就应该获取这个重定向的 bindingTemplate ,并且将该 bindingTemplate 取代原先那个包含 hostingRedirector 的 bindingTemplate 。

|

empty w/attributes

|

** tModelInstanceDetails **

|

本结构是一个 tModelInstanceInfo 的列表。这些信息的全体形成了一个可区别的技术指纹,可用于标识兼容的服务 ( 具有相同技术指纹的可认为是兼容服务 ) 。

|

structure

|

accessPoint 和 hostingRedirector 子元素应当必须出现一种,并且仅能出现一种。

名为 tModelInstanceDetails 的结构的内容可以在 bindingTemplate 结构中被发现同时是作为技术指纹服务于服务描述的。这一技术指纹是一系列对可唯一标识的规范和 / 或概念的引用。为了实现一个与某个 tModel 兼容的新的服务,该 tModel 所对应的规范是必须被正确理解的。而为了注册一个服务并声明它是与某个规范相兼容的,那么应当在该服务下的 bindingTemplate 实例中的 tModelInstanceDetails 下包含一个对该规范的 tModel 的引用,引用的键值是 tModelKey 。

Published At
Categories with Web编程
Tagged with
comments powered by Disqus