在通用Web服务环境中,SOAP作为一种最广泛使用的XML消息协议标准,对各种Web服务操作消息进行封装。SOAP提供了在松散的分布式环境中交换结构化信息的简单轻量级机制,虽然SOAP多用于同步请求/响应模式中,但SOAP也是最广泛使用的异步消息交换基础。例如,SOAP可以和各种底层传输协议进行绑定,各种异步消息传递协议如WS-Addressin (W3C,2008)、WS-Callback等也是基于SOAP结构的消息。SOAP消息可以实现长期的业务流程、服务提供者和服务消费者的松散耦合 (从服务可用性和组件边界点的分离的角度看)、增强的服务可伸缩性使异步模型执行路径的长度缩短等。因而SOAP受到多方面重视。有多种设计方法可以为基于异步传输的SOAP应用模式提供解决方案 (Narayanan和Srivathsa2003)。
第一种方法是使用WSDL的可扩展性。即把WSDL与本地传输协议进行绑定,使之成为WSDL默认的传输协议。例如,绑定Web Sphere MQ或JMS等。虽然目前没有工业标准方式来扩展WSDL绑定,但不同的厂商正在通过把本地传输协议绑定到传输协议中来实现WSDL扩展。
第二种方法是使用异步框架,它可以将传输处理器插入服务消费者和服务生产者的路径。例如Apache的Axis框架 (Chinthaka,2007),它允许在客户端和服务器端连接处理器。Axis框架是最新SOAP规范 (SOAP1.2) 基于Java的开放源代码实现,而带有附加规范的SOAP来自Apache社团。(www.xing528.com)
第三种方法是使用自定义适配器,它可以将SOAP消息在两个不同类型的传输协议之间进行转换。目前最常用的转换是在同步的HTTP协议和异步的JMS传输协议之间进行的转换。这种方法具有极大的灵活性和设计自由度,能任意在不同协议之间转换,但方法实现难度较大,维护难度大。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。