📜  带有WSDL的UDDI(1)

📅  最后修改于: 2023-12-03 15:39:24.426000             🧑  作者: Mango

带有WSDL的UDDI

什么是UDDI

UDDI(Universal Description, Discovery, and Integration)是一种用于Web服务的标准,由IBM、微软和SAP等公司在2000年联合推出。它提供了一个基于XML的、分布式的服务注册与查找机制,可以帮助用户在不同的组织和系统之间寻找并使用所需要的Web服务。

UDDI的基本结构

UDDI的基本结构由三个部分组成:

  1. 发布者:用于发布Web服务信息的组织或个人,如企业、开发者等。

  2. UDDI注册服务器:存储Web服务信息的服务器,为Web服务提供查找服务的中介。

  3. 查找者:根据自己的需求在UDDI注册服务器上查找对应的Web服务信息,并与之进行交互。

带有WSDL的UDDI

WSDL(Web Services Description Language)是一种用于描述Web服务的语言,它定义了Web服务的接口、参数、返回值等信息。带有WSDL的UDDI是在原有的UDDI基础上增加了WSDL的支持,可以让用户更方便地了解Web服务的详细信息,以便更好地使用和集成Web服务。

在带有WSDL的UDDI中,发布者可以在注册Web服务时,同时提供与之相关的WSDL文件,以便让查找者可以更加清晰地了解Web服务的功能、参数、返回值等信息。同时,在查找Web服务时,查找者也可以通过WSDL文件来筛选和过滤符合自己需求的Web服务,以便定位最适合的Web服务。

实现带有WSDL的UDDI

实现带有WSDL的UDDI,需要分为两个部分:

  1. Web服务的发布者

Web服务的发布者需要将Web服务的信息和WSDL文件发布到UDDI注册服务器上。在实际操作中,可以使用类似于Apache JUDDI这样的开源UDDI实现来快速实现Web服务的注册和发布,具体步骤如下:

1.1 安装JUDDI

在官网https://juddi.apache.org/download.html上下载最新的Apache JUDDI包,并解压到本地。

1.2 启动JUDDI

在命令行下进入到JUDDI包所在的目录,执行以下命令启动JUDDI注册服务器:

./bin/juddi-tomcat-startup.sh

1.3 注册Web服务

在浏览器中访问以下地址,进入到UDDI发布者管理页面:

http://localhost:8080/juddi/console

在页面中可以输入Web服务的基本信息和WSDL文件信息,然后点击“Save”按钮进行发布。

  1. Web服务的查找者

Web服务的查找者需要使用UDDI注册服务器提供的查找服务来定位符合自己需求的Web服务。在实际操作中,可以使用类似于Apache JUDDI提供的Java API来访问UDDI注册服务器,具体步骤如下:

2.1 添加JUDDI的Maven依赖

在项目的pom.xml文件中添加以下依赖:

<dependency>
  <groupId>org.apache.juddi</groupId>
  <artifactId>juddi-client</artifactId>
  <version>3.2.0</version>
</dependency>

2.2 编写Java代码

使用JUDDI的Java API访问UDDI注册服务器,并查找符合自己需求的Web服务,具体代码如下:

// 创建UDDI客户端连接
UDDIClient uddiClient = new UDDIClient("META-INF/uddi.xml");

// 获取UDDI注册服务
UDDIRegistry registry = uddiClient.getRegistry("default");

// 创建ServiceQuery对象
ServiceQuery query = new ServiceQuery();
query.setServiceName("MyService");
query.setNamespace("http://example.org");

// 查询UDDI注册服务器
List<ServiceDetail> services = registry.findServices(query);

// 解析WSDL文件并获取Web服务的接口信息
WebRowSet webRowSet = registry.getWSDL(services.get(0).getServiceKey());
总结

带有WSDL的UDDI是一种强大的Web服务注册和查找机制,通过增加WSDL的支持可以让用户更加清晰地了解Web服务的详细信息,以便更好地使用和集成Web服务。在实际操作中,可以使用类似于Apache JUDDI这样的开源UDDI实现来快速实现Web服务的注册和查找。