UDDI是一种基于XML的Web服务发现规范,通过白页(企业身份)、黄页(行业分类)、绿页(技术绑定)三层模型,结合businessEntity等六类XML数据对象,与WSDL协同实现服务注册、查找与调用。

UDDI 是一种为 Web 服务提供描述、发现和集成能力的 XML 规范,核心目标是让企业能像查黄页一样,在互联网上发布、查找并调用彼此的服务。
它不直接定义服务怎么运行,而是专注解决“怎么被找到”和“怎么被理解”这两个关键问题。整套机制基于标准 XML 结构,通过统一的数据模型和 SOAP 接口实现跨平台互操作。
UDDI 的三层信息模型(白页、黄页、绿页)
UDDI 把服务相关信息分成三类,每类对应一种 XML 描述方式:
白页(White Pages)
存储企业基本身份信息:名称、地址、联系方式、D-U-N-S 编号等。这些字段都按 XML Schema 严格定义,确保全球注册时格式一致。黄页(Yellow Pages)
使用标准分类法(如 NAICS、UNSPSC、ISO)对业务类型和服务领域打标签。比如一家物流公司可标记为“运输服务→陆路货运→跨境物流”,便于按行业或功能筛选。绿页(Green Pages)
描述技术细节:服务接口地址、绑定方式(SOAP/HTTP)、WSDL 文档 URL、安全要求等。这部分常包含指向外部 WSDL 或 XML Schema 文件的引用链接,本身不嵌入完整协议定义。
UDDI 注册表的 XML 数据结构
UDDI v3 定义了六类核心数据对象,全部用 XML Schema 建模:
-
businessEntity:代表一个注册企业,含白页+黄页信息 -
businessService:该企业提供的某项具体服务,关联到某个businessEntity -
bindingTemplate:说明如何调用这项服务,包括访问端点和协议细节 -
tModel:技术模型模板,用于标准化描述常见接口规范(如 WSDL、ebXML) -
publisherAssertion:声明两个企业之间的关系(如合作、代理) -
subscription:支持主动通知机制,当注册信息变更时推送给订阅方
所有这些对象都通过 和 类 SOAP 请求在 UDDI 注册中心间交换,请求与响应体均为标准 XML。
UDDI 如何与 WSDL 配合工作
UDDI 不替代 WSDL,而是与之分工协作:
- WSDL 负责精确描述服务接口语法(输入/输出参数、消息格式、操作名)
- UDDI 负责组织服务元数据并支持语义化发现(谁提供?在哪?属于哪类?是否可信?)
典型流程是:客户端先用 UDDI 查到某服务的 bindingTemplate,从中提取 WSDL 地址;再下载并解析该 WSDL,生成本地调用代码。整个链路中,UDDI 提供的是“索引”,WSDL 提供的是“说明书”。
不复杂但容易忽略










