SOAP 节点用于实现常见的 Web 服务场景,并且一般是使用 Web 服务的新消息流的最佳选择。使用 WSDL 1.1 来配置的 SOAP 节点支持基于 SOAP 的 Web 服务,并发送和接收消息,这些消息可以是纯 SOAP(1.1 或 1.2 版)、SwA 或 MTOM(有关本文中使用的术语的定义,请参阅术语列表)。SOAP 节点组合了消息传输和 SOAP 语义,以支持一致的 SOAP 域逻辑树格式和下一代 Web 服务标准 WS-Security 和 WS-Addressing。
特定于传输的节点(例如 HTTPInput 和 HTTPReply)在某些情况下仍然有用。例如,如果您有使用特定于传输的节点的现有流,并且预期不需要任何 WS-Addressing 或 WS-Security 支持,或者您没有 WSDL 定义,并且不打算创建这样的定义——也许是因为您在使用诸如 XML 远程过程调用(XML Remote Procedure Call,XML-RPC)或代表性状态传输(Representational State Transfer,REST)等非基于 SOAP 的 Web 服务技术——那么您就可以使用特定于传输的节点。但是,如果您在创建新的消息流并使用 WSDL,则 SOAP 节点可以提供更完整的解决方案。
SOAP 节点使用新的 SOAP 解析器和 SOAP 逻辑树格式。新节点包括:
- SOAPInput 和 SOAPReply:结合用于提供(即实现)Web 服务。
- SOAPRequest:用于调用 Web 服务。
- SOAPAsyncRequest 和 SOAPAsyncResponse:结合用于异步地(这只是意味着消息流在等待响应时不会被阻塞在 SOAPAsyncRequest 上)调用 Web 服务。
存在两种基本的 Web 服务场景,下面几个部分将对此进行介绍:提供者和使用者。
|
消息流提供或实现 Web 服务。当然,您完全可以在消息流中实现简单的 Web 服务。然而,在更典型的提供者场景中,消息流将部分工作委托给一个或多个外部代理。例如,消息流可以完成以下任务之一:
- 查询或更新数据库。
- 将某些业务处理委托给某个现有的应用程序。
在某些情况下,可以认为这样的消息流为现有的应用程序提供了新的 Web 服务接口。然而请注意,消息流还可以增强、限制或以其他方式调整现有应用程序的功能,或者组合多个应用程序和其他数据存储库的功能。
在图 1 和 2 中,您可以看到两种风格的 Web 服务提供者,其中调用了一个现有的应用程序。这些示例表明现有的应用程序是通过 IBM® WebSphere® MQ 调用的,但是您可以使用其他传输(事实上,现有的应用程序可以是另一个 Web 服务,这将在使用者场景部分进行介绍)。
图 1. 使用同步实现(通过 WebSphere MQ)的提供者
图 2. 使用异步实现(通过 WebSphere MQ)的提供者
在这些示例中。。。
本文转自IBM Developerworks中国