消息编号,用于在SequenceAcknowledgement头中识别消息。以下是SequenceAcknowledgement头信息例子:
<soap:header> <wsrm:sequenceacknowledgement> <wsrm:identifier>http://Business456.com/RM/ABC</wsrm:identifier> <wsrm:acknowledgementrange lower="1" upper="1" /> <wsrm:acknowledgementrange lower="3" upper="3" /> </wsrm:sequenceacknowledgement></soap:header>
单向可靠传输实例
我们先看个例子,为求简洁仅要求单向可靠,也就是说在这个例子里,客户端仅有一个RMS,服务端仅有一个RMD。
客户端需发送一个应用级消息时,RMS首先向指定URL发送CreateSequence消息。
RMD截获消息,并通过CreateSequenceResponse予以响应。其中包括序列的识别符SequenceID。
现在,RMS将在原始消息增加Sequence信息头,其中包括SequenceID和消息编号(在本例中是1)。
RMS继续为其他消息增加递增后的序列头信息。
RMD将这些消息转送给服务端应用,并提供唯一性、有序性等基本保障。
根据预定的定时策略,RMD会在某个时候向RMS反馈SequenceAcknowledgement消息。RMS创建序列时,会向RMD传送一个确认地址(即AcksTo地址)。在本例中,我们假设AcksTo地址是一个WS-A匿名URI——也就是说你使用的是一个透明的通道。RMD将以HTTP方式响应确认信息。因为本例模拟的是单向可靠传输环境,因此在这之后就不会有完整的SOAP封包回馈给客户端,所以RMD会产生一个空SOAP封包,写入头信息后,通过HTTP返回。回馈到达客户端应用后,将由RMS接收。
注意,这种确认并不是与消息一一对应的,而是代表对所有由RMD成功接收的消息的确认。
假如有任何消息丢失,RMS将重发。
一旦RMS成功发送完所有消息,它就可以终结序列了,为此只需向RMD发送一个TerminateSequence消息。
RMD向RMS反馈TerminateSequenceResponse。
大功告成!
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
SAP收购CallidusCloud 与Salesforce竞争
一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]
-
API设计如龙生九子 各不相同
IT咨询管理公司CA Technologies对API产业做了个问卷调查,问卷内容涉及API设计风格以及管理部署的新动向。调查结果表明,JSON与XML可谓两分天下。
-
从头开始实现领域驱动设计
领域描述业务;它是驱动企业的概念和逻辑的集合。如果遵循领域驱动设计(DDD)这一本质,那么领域就是应用程序中最重要的组成部分。
-
走出思维定式 数据库/大型机现代化不再是问题
升级和改变组织的主要利益驱动应用的前景,正处于一个压倒性的位置,所以组织将要面临一系列的改变。