理解UDDI(4):元数据体系tModel
(本文最初由 IBM developerWorks 中国网站发表,其网址是http://www.ibm.com/developerWorks/cn/)
(本文是我在developerWorks专栏发表的tModel的用途及结构详解的缩减版,需要浏览未缩减版原文,请访问http://www.ibm.com/developerWorks/cn/)
tModel是UDDI数据模型中两个顶级数据实体(businessEntity和tModel)之一。tModel这个术语是多个概念的联合。按照UDDI规范中的描述,tModel被用于表示一个规范或一个概念的服务类型(Service Type)性概念。在目前的UDDI的实现中,有这样四种注册的服务类型:“分类系统(Classification System)”、“标识系统(Identification system)” 、“抽象接口组件(abstract interface component)”和“规范(specification)”。tModel是这些服务类型在UDDI注册数据的承载体和表现形式,是Web服务描述的元数据。一个Web服务所包含的tModel的全体构成了这个Web服务的技术指纹,通过对这个技术指纹的分析,我们就可以很方便地了解该Web服务是符合那些技术规范的,采用怎样的调用界面的,以及其分类和标识的信息等。
什么是tModel?
为了达到让两个或更多的软件可以互相兼容,也就是说,为达到我们期望的互相交换数据的目标,他们必须共享一些设计目标和通用的规范。所有UDDI站点都支持的注册信息模型就是基于这样的共享规范的理念。
以前,为了架构一个具备兼容能力的软件,两个公司唯一可以执行的方式是,就使用同样的规范达成协议,然后基于该协议架构软件并测试。然而,如果使用UDDI,公司就需要以某种方式组织那些用于设计他们所提供的服务的软件接口规范及相应版本信息,并将其发布。为了识别不同的公共规范(或者在特定合作者间共享的私有规范),规范本身的信息需要是可发现的。这种关于规范的信息,也就是传统上称作的元数据结构,我们在UDDI中称其为tModel。
对于企业商务软件的开发人员来说,tModel提供了一个通用方法,其作为一个通用引用点,使得兼容服务可以很简单地被识别。而对于使用该软件的企业来说,好处在于能够极大地缩短了识别特定服务是否与您的软件兼容的工作过程。最后,对于软件生产商和标准化组织来说,注册一个规范的相关信息,然后用该规范的的tModel来查找兼容的Web服务的实现,能帮助他们的客户真正获得使用被广泛应用的设计规范所带来的好处。
tModel结构
UDDI的一个重要目标是能够描述一个Web服务并且使得此描述在搜索的时候提供足够的语义支持。另一个目标则是提供一种机制使得这些描述足够有用:当你在不太了解一种服务的时候,可以通过这些描述来学习如何与此服务进行交互。为了做到这一点,必需有一种方法来给描述赋予足够的信息,这些信息包括服务的行为表现,服务遵循何种协议,或者是服务符合什么规范或标准。tModel 结构的任务之一就是提供对符合某种规范、概念甚至是某种共享设计的描述能力。
tModel 结构以由键标识的元数据的(关于数据的数据)形态存在。概括地理解,在UDDI注册中心里的tModel 结构的用途是提供一个基于抽象的引用系统。因而,tModel 结构所表示的数据类别是相当繁多的。换句话说,一条tModel 注册信息可以定义任何东西,但在目前的版本中,我们应用了两个约定,这两个约定分别将tModel 结构用作确定兼容性的来源以及由键标识的命名空间引用。
tModel 结构组成信息非常简单。它们包括一个键,一个名,一个可选的描述,以及一个指向某处的URL,可能好奇的人可以去那里找到tModel 结构中的元数据本身所代表的实际概念,也就是说这个URL可能指向的是一个规范文本或概念的文本。
两个主要用途
在businessEntity注册中,你会在两个地方发现tModel的引用。从这方面考虑,tModel是很特殊的。尽管businessEntity中的其他数据(例如businessService和bindingTemplate数据)都是作为唯一父businessEntity元素的一个唯一的由键标识的实例存在的,然而tModel却是以引用的形式被使用的。这意味着你可以在多个businessEntity数据集中,找到对某个tModel实例的多个引用。
定义技术指纹
tModel的主要角色是作为描述一种技术规范的机制存在。例如是一个概述有线协议的一种规范、交换格式的一种规范或是交换序列规则的一种规范。这样的一个规范可以在RosettaNet RNIF 1.0规范中被发现。其他例子可以在一些标准工作比如ebXML[1],ECO[2] 和各种电子文档交换(EDI)的工作中被找到。
通过通讯介质与其他软件通信的软件总是遵循某种预先议定的规范。在这样的情况下,规范的设计者可以通过使用tModel注册规范的信息,以达到在一个UDDI注册中心中建立一个唯一的技术标识的目的。
定义抽象的命名空间引用
其他用到tModel引用的地方是在定义组织身份标识和各种分类信息的identifierBag和categoryBag结构中。在这一上下文中,tModel引用表示了由键标识的名/值对与组织身份标识概念名之间的关联,或是表示了由键标识的名/值对与赋予这个名/值对具体语义的命名空间之间的关系。