UDDI v2新特性:
第三方分类法和标识系统
(本文最初由 IBM developerWorks 中国网站发表,其网址是http://www.ibm.com/developerWorks/cn/)
(本文是我在developerWorks专栏发表的UDDI v2新特性: 第三方分类法和标识系统的缩减版,需要浏览未缩减版原文,请访问http://www.ibm.com/developerWorks/cn/)
UDDI的全球化提出的挑战
如果大家自己研究过UDDI 1.0规范的话,应该知道在UDDI 1.0规范中,用户可以使用诸如save_business、save_service和save_tModel等的API消息来注册和更新注册中心中的businessEntity、businessService以及tModel等实体信息。这些实体信息可选的会附加了类别信息(属于某个分类法下的某个类别)以及标识信息(在某个标识系统中拥有一个标识)等信息。类别信息是使用categoryBag元素来指定的,其中包含了具备命名空间修饰的对分类法键值和描述的引用。标识信息是使用identifierBag元素来指定的,其中包含了具备命名空间修饰的对标识符和描述的引用。
我们知道在UDDI规范1.0版中内置了这样三个分类法:
tModel Description: Business Taxonomy: NAICS (1997 Release)
tModel UUID: uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2
Categorization: categorization
Checked: Yes
这个tModel定义了NAICS工业分类法。
tModel Description: Product Taxonomy: UNSPSC (Version 3.1)
tModel UUID: uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384
Categorization: categorization
Checked: Yes
这个tModel定义了UN/SPSC产品分类法。
tModel Description: UDDI GeographicTaxonomy
tModel UUID: uuid:61668105-B6B6-425C-914B-409FB252C36D
Categorization: categorization
Checked: Yes
这个tModel定义了ISO 3166地理分类法命名空间。
以及这样两个标识系统:
tModel Description: Dun & Bradstreet D-U-N-S® Number
tModel UUID: uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823
Categorization: identifier
Checked: No
这个tModel被用于表示Dun & Bradstreet D-U-N-S® Number标识符。这个tModel 最初被注册成为UDDI 核心 tModel的一部分。一旦注册中心开始运行,这个tModel就将期望被传送到Dun & Bradstreet信息发布者那里进行管理。更多信息请参考 http://www.dnb.com。
tModel Description: Thomas Registry Suppliers
tModel UUID: uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039
Categorization: identifier
Checked: No
这个tModel是用于表示Thomas注册中心的供应商标识符编码。这个tModel 最初被注册成为UDDI 核心 tModel的一部分。一旦注册中心开始运行,这个tModel的监管权将被期望移交给Thomas 注册中心的信息发布者。更多信息请参考http://www.thomasregister.com。
然而UDDI注册中心的创立是为了全球商业注册的使用,全球的不同文化社会背景的商业实体自然不可能都采用美国的商业惯例,都使用这些分类法和标识系统。同时让UDDI注册中心去内置全球各地的分类法和标识体系也是一个不切实际的想法,作为一个面向技术运作的系统,不应该也不可能去内置如此多的带有地区商业特征和使用习惯的商业机制。因此如果即能提供种类繁多的分类法和标识系统,又无需太多地增加UDDI注册中心的运作代价,以满足全球用户的需要,这就是UDDI规范2.0需要面对的一个重要的问题。
UDDI 2.0的新特性
UDDI规范2.0版引入了已校验(checked)的外部命名空间的概念。这一机制使得第三方的分类系统或标识系统的提供者能够扩展UDDI操作入口站点的能力,使得UDDI操作入口站点能够支持新的类别模式和标识模式,同时将其集成到UDDI注册中心的数据表示中去。这一新的功能为UDDI注册中心中的数据表达提供了全新的支持,使得UDDI注册中心得以包含新的类别和标识符系统,同时将这些类别和标识附属一个或多个商业实体。
上图描述了这个外部命名空间所描述的外部分类法(获标识系统)的工作模式,工作流程一般为:
1. 分类法(或标识系统,两者可以统归为命名空间,因为可以把KeyName/KeyValue值对看成是命名空间中的取值)提供商首先将其自身提供的分类法的技术信息注册到UDDI注册中心中去,然后在UDDI注册中心中注册了对应于该分类法的分类校验服务(Taxonomy Validation Service)。
2. 商业实体将自身信息注册进入UDDI注册中心,同时采用了外部的分类法提供商提供的分类法类别对其信息加以分类。
3. UDDI注册中心发现了这个外部分类,因此调用外部的对应该分类法的分类校验服务(Taxonomy Validation Service)来实施校验,如果校验成功则实体包含的相关分类信息被标志为已校验,否则就被标注为未通过校验。
第三方的机会
对于那些希望为UDDI操作入口站点提供作为核心服务的附加行为的增值服务的第三方实体,将存在很多机会。这些机会包括:提供外部分类法和命名空间校验认证服务,在基础的UDDI API之上提供更丰富的搜索机制等。无论是何种情况,第三方实体都被鼓励直接与UDDI操作入口站点个体进行磋商以建立合适的合约化的商务关系。
如何检查第三方提供的分类法和标识系统
无论是何时调用save_business,save_service 或 save_tModel,任何在参数集中包含的categoryBag或identifierBag信息的所有内容都将被检查,检验其中包含的代码值是否是合法的值。这样的检验将会作用与任何被分类为”已校验”的分类法或标识符模式。UDDI规范2.0版中提供了一种机制,使得第三方实体能够注册新的分类法或标识符模式,而对于校验流程也是完全由这样的第三方控制,UDDI注册中心将会使用第三方提供的机制来处理对内容的检查。
对于那些希望提供如上所述机制的第三方实体,必须实现一个与UDDI有着同样风格(比如,使用在HTTP之上的SOAP 1.1作为消息传输机制)的Web服务,同时发布一个简单的名为validate_values的方法。