阐述SOAP的几种应用模式
请求-响应模式:
请求/响应模式的SOAP服务,即服务请求者将请求发送给服务接收者,服务接收者接收到发送者的请求后,再获取并处理其中的数据,最后将处理结果信息以SOAP消息方式回送给服务请求者。如果请求消息没有被接收到,或没有被期望的业务应用所处理,那么保障通信的传输层会产生相应的状态信息,并报告给SOAP发送者。
fire-and-forget模式:
这种模式在SOAP中使用时,表示消息一旦发出,便不用发送者关心,SOAP消息会自动寻找相应的接收者。这种模式分为两种:面向单个接收者;面向多个接收者的。不要求予以回复发送报告,例如是否发送完成;是否已被接收等报告。
高级消息模式:
高级消息包括会话消息模式、异步消息模式、事件通知模式。 会话消息模式:会话双方会长时间维持一个会话进程;其中包括双方多次的消息交互。异步消息模式:允许接收者在一定时间段内给予回复。 事件通知模式:此种模式类似于“订阅”。当事件发生时,事件源便按照订阅者的要求将通知发送者给原订阅者,或者指定的用户。
增量解析和处理模式:
按照一定的机制将冗长的 SOAP 消息分割后,由多个 SOAP 消息来发送,待接收者收到这些分片的消息后,在对分片进行重组和处理。
缓存模式:
将一些常用的消息存储在缓存中,供相关应用或 SOAP 结点使用,可以缩短响应时延,占用更小带宽,提高系统的处理效率。
关于SOAP
SOAP是一种用于访问Web服务的协议,其核心是采用XML格式封装数据和基于HTTP协议传输数据。
SOAP是一种基于XML的,轻量级的,跨平台的数据交换协议。
SOAP不仅描述了数据类型的消息格式及一整套串行化规则,包括结构化类型和数组,而且描述了如何使用HTTP来传输消息。
SOAP提供了应用程序之间的交互能力,这些应用程序可以在异构的平台上运行,而且可以使用不同程序设计语言和不同的技术来实现。
SOAP是基于XML的消息式数据交换协议,为了准确地实现应用于服务间的数据的互操作,SOAP消息的提供者不请求者都必须访问相同的XML模式。 这些模式在互联网上已经进行了公告,信息交换等任何一方都可以从网上下载这些模式。实际上,一个SOAP消息就是一个XML文档。
SOAP是一个含有Envelope,Header,Body等元素的XML模式。
Envelop元素是SAOP规范中专用的,用于封装整个SOAP消息的数据,是必须要有的,子元素Header是可选的,主要用于传输那些不是有效载荷的控制信息或上下文信息,如路由与传送设置,认证或授权声明,事务上下文等。Body元素是必须有的,它是SOAP消息的有效载荷信息。
SOAP消息交换