介绍
OASIS WS-RX技术委员会近期发布了Web服务可靠消息传输(WSRM,Web Services Reliable Messaging)1.1规范的公众预览版。作为该委员会的联值主席,我感觉有必要对WSRM及其规范做一个介绍。本文以WSRM 1.1草案四为准。
WSRM规范允许两个系统实现可靠传输消息。其目标是保证消息从发送者正确传输到接收者。可靠消息传输的定义是复杂的,但不妨用Java中的JMS系统实现XML消息可靠传输类比。二者的关键区别在于,JMS是一个标准API和编程模型,它具有不同的实现和连线协议(wire-protocol)。而WSRM恰恰相反,它是一个没有规定实现API和编程模型的连线协议,是由基于SOAP的系统构成的。
代理
在解释连线协议之前,我想先说说WSRM与SOAP交互的适配方式。和基于队列的系统不同,WSRM对于现有应用来说是透明的。在队列系统中,总会存在一个显式的第三方队列系统,发送者放入消息,接收者再从中取出。而在RM里,客户端和服务端的SOAP处理引擎就内置处理器/代理(Handler/Agent),它们负责消息的传输。在应用层级,这些代理是不可见的,它们保证在消息丢失或未到达时重新传输消息。比如你搭建一个SOAP/JMS系统用于实现可靠的SOAP消息传输时,必须定义队列并修改Web服务中的URL。而在WSRM中就不需要这样做,因为它能自适应现有的HTTP(或其他)命名规范和URL。
WSRM中逻辑上有两类代理:RMS(RM Source)和RMD(RM Destination)。在一个给定的SOAP协议栈中,二者都可以有一个或多个处理器。
RMS:
创建请求,终止可靠性契约。
为消息添加可靠性描述头信息。
若有必要,重发消息。
RMD:
创建响应,终止可靠性契约。
接收并识别消息。
(可选)丢弃重复的消息。
在丢失的消息到达前,拒收顺序错乱的消息。
需要强调的是,不应将RMS、RMD和客户端/请求者、服务端/响应者混为一谈。在两端可靠(请求和响应消息都能可靠传输)的环境中,无论是在客户端还是服务端,都同时存在RMS和RMD。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
SAP收购CallidusCloud 与Salesforce竞争
一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]
-
API设计如龙生九子 各不相同
IT咨询管理公司CA Technologies对API产业做了个问卷调查,问卷内容涉及API设计风格以及管理部署的新动向。调查结果表明,JSON与XML可谓两分天下。
-
从头开始实现领域驱动设计
领域描述业务;它是驱动企业的概念和逻辑的集合。如果遵循领域驱动设计(DDD)这一本质,那么领域就是应用程序中最重要的组成部分。
-
走出思维定式 数据库/大型机现代化不再是问题
升级和改变组织的主要利益驱动应用的前景,正处于一个压倒性的位置,所以组织将要面临一系列的改变。