关于UDDI
这部分文字,主要是强调UDDI在SOA架构中的作用.
2005年2月3号这天,OASIS国际标准联盟宣布它的成员已经批准UDDI V3.0.2成为OASIS标准,UDDI通常被看作是Web服务的基石,它定义了一个标准的方法来在一个面向服务架构(SOA)中发布和发现基于网络的软件组件.
UDDI注册模型是一个可互操作的框架中心元素,它确保SOA中的服务有效的交互.通过使能基于分布式的策略和企业级Web服务的管理,UDDI注册能传递重要的商业价值.它帮助确保为开发者带来方便,满足企业架构师的需求以及底层的商业策略不会相违,事实上,它带来了他们所需要的所有协作通过增加软件的灵活性,可重用,集中控制,允许有效的管理.
UDDI OASIS标准规范指定了为Web服务创建注册的协议,控制对注册进行访问的方法以及一个发布或代理记录到其它注册上的机制.这个版本添加了合并同SOA强调的支持各种低层变体的能力,还提供了在各种UDDI注册中定义关系的方法.尽管在当初,本规范包括了诸如代理和服务器对等中的分布式等概念,早期的UDDI定义依赖交互的专有方法,相比之下,UDDI v3.0.2提供了一个开放的标准化的方式来确保广泛的可交互通信.
v3.0.2 OASIS标准代表了UDDI演化进程中的另一个重要的里程碑,它带来了关键的企业级发布能力,提供的不同响应依赖于安全,传输或者是由商业规则或分类法定义的服务质量.它最重要的增强就是允许称为标识符的服务描述能被创建,方便了在注册中服务描述的重用,这使开发者和架构师更容易通信.v3.0.2的其它特征包括对数字签名的支持,允许UDDI发送高度完整性和真实性的数据.扩展的发现特征能合并以前的多步查询成单步查询,杂合查询.还提供了在单个查询中嵌套子查询的能力,让客户更有效的缩小搜索范围.
在UDDI 3.0.2中,同时还发布了两个技术说明.第一个是关于使用UDDI和WSBPEL的建议,第二个是解释使用JAX-RPC作为UDDI客户端的过程.这些技术说明是UDDI技术委员会正在继续努力的一部分,为了方便和促进UDDI在更广泛的上下文中使用.
OASIS UDDI规范技术委员会的参与仍对所有组织和个人开放.供应商,最终用户,系统集成商都被邀请参与UDDI持续开发和采用工作中.OASIS有两个邮件列表:一个针对公开议论,一个针对开发用户.
来自UDDI v3.0.2标准的工业支持:
计算机协会
随着Web服务在世界范围内采用的持续增长,有效的提供可靠性和基于标准的发现这些服务变得越来越重要.在Web服务管理和安全方面,最近的UDDI增强将帮助企业迎接挑战并将也因此促进了Web服务的更广泛采用并驱动利用多个Web服务之间互操作能力的商业解决方案的开发.
DataPower
UDDI正在作服务器到服务器的通信,正象Internet中的DNS一样,通过让它更容易和廉价的连接并保持到服务的连接.DataPower客户将看到拥有网络意识的应用和作为SOA基石的UDDI的合并.
IBM
UDDI在SOA的开发中一直扮演着重要角色,IBM将在WebSphere Application Server中扩展对UDDI V3的支持.对于使用UDDI改善重用性和简化跨IT基础设施的Web服务的发现上,UDDI中的安全增强合并到业界领先的WebSphere中的企业级能力将特别重要.
还有不少其它著名公司的言论,包括如SAP等在内的.
目前对UDDI的支持
UDDI4J是IBM的开源项目,作为对开源代码的进一步承诺,UDDI4J 的包名称已被从 com.ibm.uddi 改为 org.uddi4j。并建立了一个支持站点http://www.uddi4j.org,目前这个站点已经改到了http://sourceforge.net/projects/uddi4j。从这个源码熔炉中获得的新版本(March 22, 2005)中来看,还没有看到对UDDI3的支持.
UDDI在SOA中应用范例,日后抽取一个代表性的再放出来.
UDDI和WSDL的关系
一般情况下,开发完Web服务,在公司内部,测试和发布是简单的,只需要知道WSDL文档的URL并在一些类库的帮助下就可以调用它所描述的服务.从创建Web服务的初衷出发,我们就需要一个公共场所发布服务,让需要该服务功能的客户找到它,并能在客户的环境中轻松方便的调用.大体上来说,UDDI提供发布场所,WSDL用来描述服务功能,基本上和早期的分布式计算架构在形式上是一样的,不管是RMI还是CORBA的.
下面看看UDDI和WSDL之间的具体联系,从UDDI的类型开始.
UDDI中的数据类型,主要是四个类型和WSDL的两种类型的文挡
UDDI中有四种主要类型
businessEntity,businessService,bindingTemplate,tModel,他们之间的关系如下图解:
图 1. UDDI 数据类型
在UDDI看来,WSDL文档有两类:服务接口(service interface )和服务实现(service implementations),分别由两个逻辑角色借口提供者和实现提供者提供,实际中这个两个角色可能是同一个实体扮演,图解如下:
图 2. WSDL 文档类型
发布一个完整的 WSDL 服务描述
一个完整的 WSDL 服务描述是由一个服务接口和一个服务实现文档组成。
图 3. 从 WSDL 到 UDDI 的映射概览
一般,服务由组织提供,所以不管在何种情况下,UDDI要求首先创建组织,然后让服务依附在这个组织上,但对于tModel则可以在任何时间建立,只要在引用该tModel的服务创建之前保证它存在.从上图中可以看出:
WSDL文档中的Service Interface对应到了UDDI的tModel,
WSDL文档中的service元素对应到UDDI的BusinessService元素,
WSDL中的port元素对应到了BindingTemplate元素
在WSDL中通过import元素,在服务实现描述部分导入了服务定义部分,
在UDDI中BindingTemplate元素引用了tModel元素的内容.
这里只是简单强调说明UDDI和WSDL的关系,具体描述可参考
http://www-128.ibm.com/developerworks/webservices/library/ws-wsdl/index.html