📅  最后修改于: 2023-12-03 15:05:42.132000             🧑  作者: Mango
UDDI 全称 Universal Description, Discovery and Integration,即通用描述、发现和集成,是一个由多个公司共同开发的、基于 XML 的标准。
UDDI 接口是一种服务注册表,提供了一种机制,使企业能够发布其网络服务并使其可被发现。该接口是一种分布式、分层的体系结构,用于描述、发现和集成 Web 服务。通过 UDDI 接口,您可以按照自己的需求发现并重新使用现有的 Web 服务。
UDDI 接口具有以下优点:
UDDI 接口主要有以下三个组成部分:
UDDI 注册表 - 注册表用于存储 Web 服务的信息,可以通过 UDDI API 进行访问。注册表通常由一个或多个 Web 服务提供商(WSRP)维护。
UDDI 发现API - UDDI API 用于访问注册表,并查找 Web 服务。
UDDI 发布API - 发布 API 用于将 Web 服务信息发布到 UDDI 注册表中。
UDDI 架构由以下三个主要组件组成:
UDDI 注册服务器 - 注册服务器是存储 Web 服务元数据和商业注册信息的 Web 服务。
UDDI 报告器 - 报告器是一组 Web 服务,负责定期从注册服务器获取信息,以便构建 Web 目录。
UDDI 客户端库 - 客户端库是 UDDI 程序所需的 Web 服务客户端程序。
以下是使用 UDDI API 访问注册表并查询 Web 服务的示例代码:
import org.uddi.api_v3.*;
import org.uddi.v3_service.*;
import javax.xml.ws.BindingProvider;
import java.net.URL;
import java.util.List;
public class UDDIClient {
public static void main(String[] args) throws Exception {
// UDDI 服务的 URL
URL url = new URL("http://localhost:8080/uddi/inquiry");
// 创建 UDDI 客户端
UDDIInquiryPortType uddiClient = new UDDIInquiryService(url).getUDDIInquiryPort();
// 设置认证信息
((BindingProvider) uddiClient).getRequestContext()
.put(BindingProvider.USERNAME_PROPERTY, "username");
((BindingProvider) uddiClient).getRequestContext()
.put(BindingProvider.PASSWORD_PROPERTY, "password");
// 创建查找请求
FindService findService = new FindService();
FindQualifiers findQualifiers = new FindQualifiers();
findQualifiers.getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
findService.setFindQualifiers(findQualifiers);
Name searchName = new Name();
searchName.setValue("%weather%");
findService.getName().add(searchName);
// 发送查找请求
ServiceList foundServices = uddiClient.findService(findService);
if (foundServices == null) {
System.out.println("No services found");
return;
}
// 输出查找到的服务
List<ServiceInfo> serviceInfos = foundServices.getServiceInfos().getServiceInfo();
for (ServiceInfo serviceInfo : serviceInfos) {
System.out.println("Service name: " + serviceInfo.getName().getValue());
System.out.println("Service URL: " + serviceInfo.getServiceDetail().get(0).getWSDLBinding().get(0).getAccessPoint().getValue());
}
}
}
UDDI 接口是一种服务注册表,提供了一种机制,使企业能够发布其网络服务并使其可被发现。通过 UDDI 接口,您可以按照自己的需求发现并重新使用现有的 Web 服务,从而为企业提供了更加广泛的业务和更强的市场竞争力。