一、什么是UDDI
-
UDDI基于一组常见的行业标准,包括HTTP,XML,XML Schema和SOAP,为基于Web服务的软件环境提供了一个可互操作的基础基础结构,用于可公开使用的服务和仅在组织内部公开的服务。
-
仅当潜在用户发现足以允许其执行的信息时,Web服务才有意义。
-
UDDI的重点是定义支持描述和发现服务的一组服务。
-
商业,组织和其他Web服务提供商
-
他们提供的Web服务
-
用于访问这些服务的技术接口。
-
提供一种简单的机制来支持Web服务及其规范的发现。
-
不要尝试定义描述语言本身,也不要尝试直接存储支持的XML元素。
二、UDDI的工作机制
-
UDDI注册中心包括:
-
以编程方式可访问的业务及其所支持服务的描述。
-
引用特定于行业的规范,分类法定义和标识系统。
-
-
UDDI注册了两种信息
-
tModel技术模型:抽象服务协议 用于描述特定Web服务的行为
-
businessEntity服务实现者:引用多个tModel提供有关其行为和规范的描述
-
-
工作机制
-
步骤
-
软件公司和标准机构定义与业务相关的规范-tModels
-
公司注册其业务及其提供的服务的描述
-
UDDI注册中心为每个实体和tModel分配一个唯一通用标识符(UUID)密钥。
-
其他客户使用UDDI注册中心发现感兴趣的服务。
-
其他企业可能会调用这些服务,从而实现动态集成。
-
三、UDDI数据模型
-
三组注册表信息
-
白页:企业的基本信息 (名称,联系信息,企业描述)
-
黄页:使用多种分类系统支持分页
-
绿页:与服务关联的绑定信息,提供对那些服务实现的技术规范的引用,以及指向各种基于文件和URL的发现机制的指针
-
-
E-R图
-
相关名词
-
businessEntity商业实体:有关发布有关服务族的信息的一方的信息
-
businessService商业服务:有关特定服务的描述性信息
-
bindingTemplate绑定模板:有关服务入口点和施工规格的技术信息
-
publisherAssertion:由双方之一断言的有关双方关系的信息
-
tModel:服务或分类规范的描述。 技术指纹的基础
-
绑定模板数据包含对tModel的引用,这些tModel指定服务的接口规范
-
<businessEntity xmlns="urn:uddi-org:api" businessKey="BBBBBBBB-BBBB-BBBB-BBBB"><name>Contoso Finance Services</name><description xml:lang="en">Corporate Finance</description><businessServices><businessServicebusinessKey="BBBBBBBB-BBBB-BBBB-BBBB" serviceKey="CCCCCCCC-CCCC-CCCC-CCCC"><name>Credit Check</name><bindingTemplates><bindingTemplate serviceKey="CCCCCCCC-CCCC-CCCC-CCCC" bindingKey="DDDDDDDD-DDDD-DDDD-DDDD"><accessPoint URLType="https">https://contoso.com/credit.aspx</accessPoint><tModelInstanceDetails> ……</tModelInstanceDetails></bindingTemplate></bindingTemplates></businessService></businessServices><categoryBag>……</categoryBag>
</businessEntity>
四、UDDI数据模型细节
-
<businessEntity>包含有关服务提供商的一般信息以及服务的集合。 它还包括分类,在<categoryBag>中通过引用tModel来指示
-
businessEntity属性
-
<businessServices> 集合 包含相关Web服务的功能分组集。
-
businessServices属性
-
<bindingTemplate>包括将用于调用Web服务的URL,以及对描述所实现协议的tModel的引用。它包含<accessPoint>, <accessPoint>传达适用于调用特定Web服务的入口点地址。
-
<bindingTemplate>属性
五、抽象协议:tModels
-
tModel结构用于提供描述符合规范,概念甚至共享设计的能力,这是tModel结构所扮演的角色之一。
-
应用范围
-
定义技术指纹
-
定义抽象名称空间引用
-
-
tModel属性
-
定义技术指纹
-
可以将预先约定的规范建立为唯一的技术标识,而该技术标识又是tModel
-
注册的Web服务可以引用<bindingTemplate>中的tModel来表示符合tModel中定义的规范。
-
通过这种方法,可以搜索与特定规范兼容的注册Web服务。
-
tModelKey成为给定规范所独有的技术指纹,而无序引用的tModelKey集则成为<bindingTemplate>的技术指纹。
-
技术指纹的用法实例
-
<tModelInstanceDetails><tModelInstanceInfo tModelKey="uuid:da648ae7-6805-4fbe-9830-50f7ed73c2be"><instanceDetails> <instanceParms>ProductOWLURI</instanceParms></instanceDetails></tModelInstanceInfo><tModelInstanceInfo tModelKey="uuid:09c569de-945f-4674-b408-b38f45d567e8" /></tModelInstanceDetails>
-
定义抽象名称空间引用
-
在<identifierBag>和<categoryBag>的定义中,tModels被用作命名空间引用。
-
命名空间引用的用法样例
-
<categoryBag><keyedReference tModelKey="uuid:1ff729f2-1948-46cf-b660-31ec107f1663" keyName="Computer and Peripheral Equipment Manufacturing"keyValue="33411" /></categoryBag>
六、UDDI APIs
-
UDDI提供了一种编程模型和架构,用于定义与注册表进行通信的规则
-
UDDI本身就是Web服务,通过指定的一组SOAP接口与UDDI进行交互
-
UDDI规范中所有API均以XML定义,包装在SOAP信封中并通过HTTP发送
-
UDDI在客户机和注册中心之间的流动
-
SOAP API 允许执行查询和发布操作
<soap:Envelope><soap:Body><find_business xmlns="urn:uddi-org:api"><categoryBag><keyedReferencetModelKey="uuid:1ff729f2-1948-46cf-b660-31ec107f1663" keyName="Computer and Peripheral Equipment Manufacturing"keyValue="33411" /></categoryBag></find_business></soap:Body></soap:Envelope>
七、UDDI总结
-
UDDI是一种行业标准,为发布和定位Web服务提供元服务
-
UDDI规范记录了有关Web服务的多种类型的信息,这些信息可以帮助服务请求者确定问题的答案,例如“谁,什么,在哪里和如何”。
-
* who:关于企业的简单信息
-
* What:包括行业代码和产品分类的分类信息,以及有关已注册Web服务的描述性信息
-
* where:可以通过其访问每种服务的注册信息
-
* how:关于给定服务的接口和其他属性的注册参考。