Web服务可靠消息传输简介(五)

日期: 2007-12-25 作者:Paul Fremantle翻译:罗小平 来源:TechTarget中国

  防火墙的穿越

  绝大多数互联网用户的机子上不光有HTTP服务器。问题的关键不是如何架设HTTP服务器,而是我如何将消息发到你的机子。比如,很多家庭用户都是通过带NAT(Network Address Translation)功能的路由器/防火墙上网。如果不作一些复杂配置,NAT将拒绝所有主动进入的数据包。同样,我在咖啡馆通过无线局域网上网,也有问题,因为我的自己没有公网IP地址。当然,如果我只需要单向可靠传输,还不是问题,直接回复HTTP请求即可。但如果要双向可靠,问题就来了。

  假如某回应消息丢失,服务端就需要向客户端重发消息。但客户端地址是未知的,这时又没有已经建立的连接可用,怎么办呢?

  救星来了:MakeConnection

  MakeConnection的基本原理,是客户端定时主动从服务端“拉”(poll)消息。换句话说,消息流向是从RMD到RMS。客户端的RMD主动向服务端的RMS询问是否有消息需要发送。整个流程可以简单概括如下:

  客户端同时创建两个序列,第二个备用。
  客户端发送请求,理想状态下可能直接收到回应。
  因为各种原因,接收某些返回时超时,或连接丢失。
  客户端初始化MakeConnection,并传送备用序列的序列标识。
  服务端返回丢失的消息和是否还有剩余消息需发送的标识。
  没有更多消息需发送时,客户端终止序列。

  安全

  RM可有多种方法、以插件方式在其他安全模型中工作。不过,安全问题,我们还得谨慎考虑。比如所谓“序列攻击”——两个合法的客户端,各有一个序列,都得到了服务级授权,但其中一个是攻击者。攻击者如果能猜测(或嗅探)到另一个序列标识,那么它就可以展开拒绝服务攻击(如请求结束这个序列)。因此,RM规范必须研究如何将序列与特定环境中的信用证书或Session相结合。也就是说,RM代理有应对这类攻击的能力。在MakeConnection中,具备这种能力尤其重要,否则,未授权用户可以轻松截获发往其他系统的消息。

  WSRM-Policy

  在发布核心规范的同时,技术委员会还发布了WSRM中用于的WS-Policy Framework模型的PAL(Policy Assertion Language)。在原来的1.0规范中,策略模型非常复杂,在WSRMP中有很多定时参数。对此,第一步,技术委员会删除了大量无用的、让用户无法动态调整的参赛;第二步,部分参数转移到CreateSequence。这就意味着,在没有WS-Policy的前提下,用户也能成功使用WSRM。那么我们不得不问:WSRM的可靠性到底是指的什么?

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐