在《上篇》中,我们认识了从序列创建到终止过程中消息交换的大致流程。接下来,我们进一步将关注点聚焦到单个小消息上,看看在整个基于序列的上下文中,不同类型的消息具有怎样的结构。首先从序列的创建开始。
基于WS-RM的可靠消息传输从序列的创建开始。为了创建序列,RM源(RM Source)向RM目的地(RM Destination)发送一个主体包含CreateSequence元素的SOAP消息。CreateSequence元素携带序列相关的属性,比如确认消息被发送的目的终结点引用,序列过期时限以及序列相关的其它信息。成功接收到序列创建请求后,RM目的地成功创建序列,并将序列相关信息封装到CreateSequenceReponse元素中,并最终通过SOAP消息返回。
对于参与消息传输的某个结点来说,消息传输是具有方向的。通过上面的方式创建的序列为从RM源到目的地的消息可靠传输提供了一个执行上下文,对于源来说,这是出栈可靠消息传输(Outbound RM),创建出来的序列被称为出栈序列(Outbound Sequence)。但是,在非单向(One-way)消息交换模式下,我们同样需要保障消息传输目的地到消息传输源之间消息传输的可靠性,即入栈可靠消息传输。在这种情况下,消息传输源会在本地创建入栈序列(Inbound Sequence),并将序列的内容嵌入到序列创建请求的CreateSequence元素中。RM目的地会接收到包含有入栈序列(针对于RM源来说)的序列创建请求消息后,会选择接受或者拒绝源提供的序列。
>
>
> ?
>
>
>
> ?
>
9: wsrm:IncompleteSequenceBehaviorType
> ?
11: ...
> ?
13: ...
>