WS-MetadataExchange 请求
您可以使用 Web 服务元数据交换 (WS-MetadataExchange) GetMetadata 请求来交换由 WS-Policy 信息注释的 Web Service 描述语言 (WSDL)。服务提供程序可以使用 WS-MetadataExchange 请求来分享它的策略,而服务客户机可以使用 WS-MetadataExchange 请求来应用供应商的策略。您可以使用传输级别或消息级安全性来确保 WS-MetadataExchange 请求的安全。
WS-MetadataExchange 规范定义了一种从端点检索元数据的机制。WebSphere® Application Server 支持 WS-MetadataExchange 1.1 GetMetadata 请求的用法,以返回响应中的元数据。服务提供程序可以使用此机制使由 WS-Policy 信息注释的 WSDL 可用,也就是说,服务提供程序可以分享它的策略。服务客户机可以使用此机制来获取由来自服务提供程序的 WS-Policy 信息注释的 WSDL,并应用这些策略。 策略配置必须使用 WS-PolicyAttachments 格式保存在服务提供程序的 WSDL 中。
您可以使用 WS-MetadataExchange 请求作为替换项来使用 HTTP GET 请求。
缺省情况下,服务提供程序或服务客户机不使用 WS-MetadataExchange 来分享或获取 WS-Policy 信息。您必须配置服务提供程序来分享它的策略,或者配置该服务客户机来应用服务提供程序的策略,同时对用于分享或获取该策略配置的 WS-MetadataExchange 请求进行指定。可以在应用程序或服务级别分享或获取 WS-Policy 信息。您可以通过使用管理控制台或者使用 wsadmin 命令对服务提供程序或者服务客户机进行配置。
当生成 Web Service 时,应用程序开发者可以使用 Rational® Application Developer 工具对服务提供程序或服务客户机进行配置。有关更多信息,请参阅 Rational Application Developer 文档。
当通过 WS-MetadataExchange 对服务提供程序进行配置以共享其策略时,该服务支持局限于 WSDL 方言的入站 WS-MetadataExchange GetMetadata 请求。当该服务接收这种请求时,该服务的 WSDL 将通过统一的 WS-MetadataExchange 响应返回到直接插入。该服务的 WSDL 包含表示当前策略配置的 WS-PolicyAttachments 注释。该策略配置必须按照 WS-PolicyAttachments 格式保存在 WSDL 中,以便它随后可供其他客户机、服务注册中心或支持 Web Service 策略 (WS-Policy) 规范的服务以及 WS-MetadataExchange GetMetadata 请求使用。
当配置服务客户机用以使用 WS-MetadataExchange 来获取服务提供程序的策略,该服务客户机发送指定 WSDL 方言的 WS-MetadataExchange GetMetadata 请求(无论何时需要获取或刷新服务提供程序的策略)。
WS-MetadataExchange 安全性
必须确定 GetMetadata 请求是安全的,以使该请求具有有效的认证、权限、完整性和机密性。端到端认证对于安全性元数据的交换 (SecurityPolicy) 来说特别重要,因为当某一被认证方访问本信息时,安全性凭证可能被发送至非信任端点。
GetMetadata 请求以同一端口作为应用程序端点,因此如果应用程序使用传输级安全性,那么 GetMetadata 请求也以安全端口为目标,并在缺省情况下,将使用同一传输级别应用程序的安全性配置。
另外,可以将消息级安全性 (WS-Security) 应用到元数据交换中。如果传输级安全性在应用程序端点上不可用,或如果传输级安全性无法满足您的需求,您可能想应用消息级安全性。消息级安全性的优点是,通过合并 SOAP 消息头中的安全性功能提供端到端安全性。
要提供消息级安全性,将系统策略集和常规(命名的)绑定附加到该端点(当配置服务提供程序或服务客户机来交换策略配置时)。
系统策略集适用于那些与业务无关的系统消息,而应用程序策略集指定与业务相关的消息的策略声明。例如,系统策略集用于哪些应用服务质量 (QoS) 的消息,包括 WS-MetadataExchange 协议中定义的消息。要提供 GetMetadata 请求的消息级安全性,您必须附加仅包含 Web Services Security (WS-Security) 或 Web Services Address (WS-Addressing) 策略系统策略集。可以对范围为全局域或范围为此服务的安全域的常规绑定进行指定。
当应用消息级安全性时,您将始终使用应用程序的任何传输策略。