UDDI 【Universal Description, Discovery and Integration】
- 概览
- UDDI的商业注册与UDDI商业注册中心
- 使用UDDI
- 背景
- 协议的层次关系
- UDDI - 技术发现层
- 技术概述
- UDDI调用模型
- WSDL 到UDDI 的映射
- 进一步的工作
概览
- 统一描述、发现和集成协议(UDDI, Universal Description, Discovery and Integration)标准定义了Web服务的发布与发现的方法
- UDDI 提供了一种基于分布式的商业注册中心的方法,该商业注册中心维护了一个企业和企业提供的Web 服务的全球目录,而且其中的信息描述格式是基于通用的XML 格式的
UDDI的商业注册与UDDI商业注册中心
- UDDI 计划的核心组件是UDDI商业注册,它使用一个XML文档来描述企业及其提供的Web服务。从概念上来说,UDDI商业注册所提供的信息包含三个部分:
- “白页(White Page)” 包括了地址,联系方法和已知的企业标识
- “黄页(Yellow page)”包括了基于标准分类法的行业类别
- “绿页(Green Page)”则包括了关于该企业所提供的Web服务的技术信息,其形式可能是一些指向文件或是URL的指针,而这些文件或URL是为服务发现机制服务的
- 所有的UDDI商业注册信息存储在UDDI商业注册中心中
使用UDDI
- UDDI规范包含了对基于Web的UDDI商业注册中心可以实施的整套共享操作
- UDDI商业注册中心可以被用于核查某个合作伙伴是否拥有特定的Web服务的调用界面,或是去找出在某一个行业中能提供某种类型服务的公司,并确定某一个合作伙伴或是潜在的合作伙伴的Web服务的技术描述以了解要与该Web服务进行交互所必须的技术细节
背景
- 借助XML 和SOAP ,集成和交互的问题将从层次上被简化。XML 提供了跨平台的数据编码和组织方法,而SOAP 建立在XML 之上,定义了一种跨系统平台的信息交换的简单包装方法。绑定于HTTP之上的SOAP协议, 可以跨语言、跨操作系统进行远程过程调用(RPC),实现了编程语言和系统平台的无关性
- 但如果仅仅是XML和SOAP的话,对于公司间的交流仍存在着巨大的鸿沟
- UDDI 规范在XML 和SOAP 的基础之上定义了新的一层, 在这一层次,不同企业可以用相同的方法描述自己所能提供的,并能查询对方所能提供的服务
协议的层次关系
UDDI - 技术发现层
- 统一描述、发现和集成协议(UDDI)规范一个由Web服务所构成的逻辑上的服务,同时也定义了一种编程接口,这种编程接口提供了描述Web服务的简单框架。规范包括几份相关的文档和一份XML Schema , 用来定义基于SOAP 的注册和发现Web 服务的协议
- UDDI 规范、XML Schema 和UDDI 商业注册中心集群之间的关系
技术概述
- 统一描述、发现和集成协议(UDDI)标准包括了SOAP消息的XML Schema和UDDI规范API的描述。它们两者一起建立了基础的信息模型和交互框架,具有发布各种Web 服务描述信息的能力
- UDDI XML Schema 定义了四种主要信息类型,它们是技术人员在需要使用合作伙伴所提供的Web 服务时必须了解的技术信息。它们是:
- 商业实体信息
- 服务信息
- 绑定信息
- 服务调用规范的说明信息
- UDDI信息模型
- 商业实体信息:businessEntity 元素
- 许多合作伙伴希望能准确地定位到企业所提供的服务的相关信息,并把这些信息作为了解企业的开始。技术人员、程序员或应用程序希望知道企业名称和一些关键性的 标识,以及那些可选的分类信息和联络方法等。支持对UDDI 商业注册的商业信息发布和发现的核心XML 元素被包含在“businessEntity” 结构中。这个结构是商业机构专属信息集的最高管理者,位于整个信息结构的最上层
- 服务信息:businessService元素和bindingTemplate元素
- "绿页"数据是Web 服务的技术和商业描述,是businessEntiry 的子结构。在这一层次,定义了两个结构:businessService 和bindingTemplate 。businessService 结构是一个描述性的容器,它将一系列有关商业流程或分类目录的Web 服务的描述组合到一起。其中,一个可能的商业流程的 例子是一组相关的Web 服务信息,包括采购服务、运输服务和其它的高层商业流程
- 规范描述的指针和技术标识
- 调用一个服务所需要的信息是在bindingTemplate 的结构中定义的。不过一般来说,仅知道Web服务所在的地址是不够的。每一个bindingTemplate 元素都包含一个特殊的元素,该元素包含了一个列表,列表的每个子元素分别是一个调用规范的引用。这些引用作为一个标识符的 集合,组成了类似指纹的技术标识,用来查找、识别实现了给定行为或编程接口的Web 服务。bindingTemplate信息条目包含了服务的URL 和一个tModel引用
- "tModel "的数据项是关于调用规范的元数据,它包括服务名称,发布服务的组织以及指向这些规范本身的URL指针等。
- 程序员API
- API分为两个逻辑部分:查询API和发布API查询API 又分为两个部分:一部分被用来构造搜索和浏览UDDI 注册信息的程序, 另一部分在Web服务出现错误时使用
UDDI调用模型
- 编写调用远程Web 服务的程序时,程序员使用UDDI 商业注册中心(通过使用Web界面或其它基于查询API 的工具)来定位businessEntity 信息,这些信息是由(或为) 提供该Web 服务的企业注册的
- 程序员可以进一步获得更详细的businessService信息, 或是得到一个完整的businessEntity结构。因为businessEntity结构包含了有关已发布的Web服务的所有信息,因此程序员只需简单地选择一个bindingTemplate并保存留待以后使用
- 基于Web服务在bindingTemplate的tModel中提供的调用规范的相关信息,程序员可以按照该Web服务的调用规范编写程序
- 在运行时,程序可以按需要使用已保存下来的bindingTemplate的信息来调用Web服务
WSDL 到UDDI 的映射
进一步的工作
- UDDI 工作小组正在计划对规范草案进行扩展,加入技术发现以外的内容。将来的特性将包括:对产品或服务进行定位的能力; 定义Web服务的实现模式;提供对商业组织、团体和贸易集团的分层结构进行管理的能力。所希望的目标是,针对B2B(商家到商家)和M2M(市场到市场),为Web服务的互操作能力提供的一个公共规范