WCF4.0新特性体验(5):路由服务Routing Service(上)

Posted on 2010-03-17 21:29 Frank Xu Lei 阅读(153) 评论(1)   编辑 收藏 所属分类: SOA and EAI, WCF4.0新特性体验

     继上一节Rest in WCF4.0之后,今天我们继续学习WCF4.0新特性体验(5):路由服务Routing Service(上)。消息路由功能的支持也是WCF4.0的一个新特性。今天我们同样会对消息路由做一个完整,详细的介绍。文章首先会对消息路由的历史知识做个总结,然后介绍WS-Routing(WS-路由)和WS-Addressing(WS-寻址)规范,之后我们会介绍WCF4.0如何实现消息路由。最后给出WCF4.0 消息路由的例子。供大家参考。

  这里提到的“路由服务”其实并不是一个新的技术概念。因为在WCF框架出来以前,已经由很多框架支持消息路由,也就是消息转发机制,WSE 1.0 与 WSE 2.0都提供了消息路由的功能。

  另外在很多系统里,我们都能看到路由系统的例子,一些程序,在后台从事转发消息的工作。比如我们电子邮件里的 邮件服务器。当然也有我们自己开发的一些类似邮件服务程序的应用系统。

     路由,这个词在很多计算机网络教程里可以看到,我们使用了一个网络互连设备就是路由器。这个物理网络中,从事转发数据报工作的设备。

     同样在虚拟的消息传输网络中,逻辑上,也有一部分程序,在各个网络节点之间转发消息。这个也称为“消息中介者”,它们也会把消息转发到消息应该到达的目标。这些也就是最简单的路由服务程序。

    在面向服务的应用系统中,最重要的概念就是消息,消息的传输是一个非常重要的问题。而在大多数情况下,消息要经历多个网络节点,这里会涉及到消息路由问题。WS规范很早就制定了对于消息路由问题的解决办法,这里最早的就是WS-Routing 。当然后来逐渐为更完善的规范WS-Addressing取代。当然这里,许多消息框架也对于消息路由提供了支持。

【1】历史回顾:

     这里首先提到的就是WSE,WSE是微软对于Web Service的一个扩展版本,在这里已经提供了对于消息路由的支持。

  WSE 1.0 与 WSE 2.0 之间的区别之一是对 WS-Addressing 的支持。WS-Addressing 替换了 WSE 1.0 中支持的 WS-Routing 规范的大部分功能。从功能方面来说,WS-Addressing 不是将重点放在路由路径上,而是提供一种机制将 To 和 From 标头添加到 SOAP 信封中。WS-Addressing 也支持 Action、ReplyTo 和 FaultTo 标头。Action 标头类似于通过 HTTP 发送 SOAP 消息时通常使用的 SOAPAction HTTP 标头。

    支持对于消息路由,WCF4.0之前的框架没有提供支持,在WCF4.0里又重新加入对于消息路由机制的支持。当然这里我们学习消息路由,首先还是来了解一下与消息路由相关的一些规范,下面我们就来依次看一下WS-Routing和WS-Addressing。

【2】WS-Routing(WS-路由):

  早期的SOAP消息因为存在路径依赖问题,因此不能实现在多个协议之间转发,而WS-Routing 是解决路径依赖问题的第一个规范。WS-Routing 使您能够以传输中立的方式指定消息路由和调度信息。

    Web服务路由规范(WS-Routing)定义了路由SOAP消息的机制。SOAP是一个轻量级的有线传输协议,定义了一系列传输交换机制,用来传输在应用层协议上使用的方法调用。SOAP实际上没有定义从一点发送消息到另一点的机制,即使在它的规范中它引用了一个虚拟的消息路径机制。WS-Routing(以前被称作SOAP路由协议)是一个无状态协议,他扩展了SOAP协议,WS-Routing通过定义一个方法来说明一个预先设计好的路由或传输路径,这个路径将从消息源,经过若干中介,最后到达消息的最终接受者。

  WS-Routing 定义了要在 SOAP 标头块中使用的新元素(名为 <r:path>)。这个路径元素有几个子元素,它们可以用来指定路由和调度信息,包括 <r:to><r:action>。这些元素可以用来相关的路由信息,但不依赖传输协议。当然为了支持更复杂的路由情况,WS-Routing也定义了一些其它可选元素。例子如下:

< SOAP-ENV:Envelope  xmlns:SOAP-ENV ="http://www.w3.org/2001/06/soap-envelope" >
   
< SOAP-ENV:Header >
      
< wsrp:path  xmlns:wsrp ="http://schemas.xmlsoap.org/rp/" >
    
< wsrp:action > http://www.xml.org/chat </ wsrp:action >
         
< wsrp:to > soap://frank.com/some/endpoint </ wsrp:to >
         
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值