首页> 中国专利> 一种实现SOAP消息分级路由的方法

一种实现SOAP消息分级路由的方法

摘要

本发明公开了一种实现SOAP消息分级路由的方法,它包括以下步骤:A.对网络中的每一个节点地址进行定义;B.给每个节点分配定义好的节点地址;C.给每个节点配置路由表,该路由表由本节点、上行节点和下行节点地址构成;D.部署路由模块:将路由表放置在路由模块的默认地址,并加载路由算法;E.由引擎模块调用路由模块,由路由模块根据SOAP报文中的路由上下文信息、路由表以及路由算法计算出路由路径,并按照计算出来的路由路径分发SOAP消息。由于本发明采用分级路由技术,所以可以通过节点的标识符自动进行分级路由,不需要SOAP消息的发送者指出消息传输的中间节点及其路径,只需要标明目的地址标识符即可。路由的时间复杂度为O(logn)。

著录项

  • 公开/公告号CN1905533A

    专利类型发明专利

  • 公开/公告日2007-01-31

    原文格式PDF

  • 申请/专利权人 北京航空航天大学;

    申请/专利号CN200510087252.3

  • 申请日2005-07-28

  • 分类号H04L12/58(20060101);H04L29/06(20060101);

  • 代理机构11100 北京北新智诚知识产权代理有限公司;

  • 代理人赵郁军

  • 地址 100083 北京市海淀区学院路37号北京航空航天大学

  • 入库时间 2023-12-17 18:08:16

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-09-18

    未缴年费专利权终止 IPC(主分类):H04L12/58 授权公告日:20091118 终止日期:20120728 申请日:20050728

    专利权的终止

  • 2009-11-18

    授权

    授权

  • 2008-02-06

    实质审查的生效

    实质审查的生效

  • 2007-01-31

    公开

    公开

说明书

技术领域

本发明涉及一种在因特网内分发SOAP信息的方法,具体地说,本发明涉及一种在因特网内实现SOAP消息分级路由的方法。

背景技术

在分布式信息交换网络中,可能会有许多信息交换节点,因此消息路由成为信息交换的关键问题。消息路由技术主要解决信息交换网络中到达某个节点的SOAP消息如何被转发到最优的输出路径上,以及如何提高网络中消息分发的效率。SOAP协议和WSDL规范只是提供了异构环境间基本的通讯功能,但是并没有定义标准的SOAP消息路由协议。

Web服务路由规范(WS-Routing)是解决SOAP消息路由问题的一个规范,它定义了路由SOAP消息的机制。通常,WS-Routing被称作SOAP路由协议,是一个无状态协议,它扩展了SOAP协议。

WS-Routing通过定义预先设计好的路由或传输路径,使SOAP消息按照这个预先设计好的路由或传输路径进行分发。为了使SOAP消息能够按照这个预先设计好的路由或传输路径进行分发,在SOAP消息的报文头中必须写出SOAP消息源地址、途径的所有路径节点的地址、最后到达的消息最终接收者地址,非常繁琐。WS-Routing定义了一个称做path(路径)的元素来指定URI地址。尽管这种方法提供了消息内路由功能,但它也带来一些严重的安全问题。为了保证分发的SOAP消息安全,路由器必须修改SOAP消息头,使消息签名复杂化。因为路由器需要在再次发送消息之前读取、修改SOAP消息头,然后重新加密消息和消息头,为了使传递继续,中间节点将需要得到读取、签名和重新加密消息所必需的安全令牌;这样,就使得分发SOAP消息的整个过程变得更为复杂、繁琐。

作为WS-Routing的改进,Web服务寻址规范(WS-Addressing)为Web服务寻址提供了与底层传输协议无关的传输中立的机制。WS-Addressing是WS-Routing的简化形式。WS-Addressing正式放弃了与消息路径相关的WS-Routing元素(如<r:path>、<r:fwd>和<r:rev>),并且假定用户将依靠“下一跳”方式来解决路由问题,所以,根据WS-Addressing规范,SOAP消息的报文头中只定义SOAP消息源地址和下一节点地址,由下一节点地址决定SOAP消息路由的方向。

目前国内外的各种基于SOAP的路由技术和方法普遍采用上述两种方法,但是,这两种方法都不能在广域网络中实现SOAP消息分级路由,路由效率比较低。而,随着因特网的飞速发展,它就需要在因特网范围内部署和进行数据交换,需要一种新的路由技术解决SOAP消息在因特网范围内的分发问题。

发明内容

鉴于上述原因,本发明的目的是提供一种在因特网范围内能够有效地实现SOAP消息分级路由的方法。

为实现上述目的,本发明采用以下技术方案:一种实现SOAP消息分级路由的方法,它包括以下步骤:

A、对网络中的每一个节点地址进行定义;

具体定义方法:

1)、将节点地址分为四段:第1段为根节点中心编码,第2段为根节点下的一级单位编码,第3段为根节点下的二级单位编码,第4段为根节点下的三级单位编码;

2)、第1段编码为“1”;第2段、第3段、第4段的编码范围是001~999;其中,根节点的编码为“1.000.000.000”;

B、给每个节点分配定义好的节点地址;

C、给每个节点配置路由表,该路由表由本节点地址、上行节点地址和下行节点地址构成;

D、部署路由模块:将路由表放置在路由模块的默认地址,并加载路由算法;

E、由引擎模块调用路由模块,由路由模块根据SOAP报文中的路由上下文信息即目的节点地址、路由表以及路由算法计算出路由路径,并按照计算出来的路由路径分发SOAP消息。

由于本发明采用分级路由技术,可以通过节点的标识符自动进行分级路由。与传统的WS-Addressing和WS-Rouging方法相比在提高路由效率的同时,不需要SOAP消息的发送者指出消息传输的中间节点及其路径,只需要标明目的地址标识符即可实现SOAP消息的路由。路由的时间复杂度为O(logn)。更重要的是,本发明提供的SOAP消息分级路由的方法与传统的WS-Addressing和WS-Rouging方法相比能够实现在广域网络范围内部署和进行数据的交换。

附图说明

图1为ACTIIP平台的逻辑结构示意图

图2为本发明节点地址编码结构图

图3为本发明SOAP消息分级路由的流程图

具体实施方式

本发明提出的SOAP消息分级路由的方法是由图1所示的电子政务信息交换平台(简称ACTIIP平台)中的路由模块实现的。ACTIIP平台是一个基于SOAP消息中间件的信息交换中间件平台。

如图1所示,它主要由报文模块、引擎模块、路由模块和适配器模块构成。报文模块负责解析通过传输接口接收到的SOAP报文,并将解析的结果传递给引擎模块;引擎模块负责调用路由模块对报文解析结果中的路由信息进行处理;路由模块根据引擎模块传递的路由信息进行路由决策,并将决策的结果返回给引擎模块;如果SOAP报文的目的地址是本地地址,引擎模块则将报文通过适配器模块传递给上层的应用系统,如果SOAP报文的目的地址不是本地地址,引擎模块则修改SOAP报文路由信息中的下一跳地址,调用报文模块构造新的SOAP报文,调用传输接口发送SOAP报文。

为了实现SOAP消息的分级路由,需要对ACTIIP平台中的每一个节点进行地址编码。由于ACTIIP平台是一个有着严格隶属关系的电子政务信息交换平台,所以,本发明按照ACTIIP平台中的每一个节点的隶属关系,对ACTIIP平台中的每一个节点进行地址编码。如图2所示,本发明将每一个节点的地址分为四段:A段为根节点中心编码,B段为根节点下的一级单位编码,C段为根节点下的二级单位编码,D段为根节点下的三级单位编码。

节点地址编码规则为:

1)、每个节点的地址长度为10位;

由于ACTIIP平台系统内部规定,节点的地址编码用10位阿拉伯数字表示,所以,本发明定义的由四段编码构成的节点地址长度为10位,由10位阿拉伯数字表示。

2)、A段编码为“1”;

3)、一、二、三级单位相应的码段即B段、C段、D段编码由上级中心分配,每一级单位的编码范围是001~~999;

4)、后续码段全“0”是中心保留地址,例如根节点的编码是1.000.000.000;

5)、广播地址是全零:0.000.000.000。

下面举例说明,如何对某省电子政务系统平台内的、省政府下属的各个政府职能部门节点进行编码。

a)按照上述编码原则,代表省中心的节点地址应该是1.000.000.000,省中心分配其下属的市中心的地址码段。

b)市中心由省中心分配的B段地址应该是001~999范围内,假设是032,那么,省内的某个市的节点地址就是:1.032.000.000,并且,这个市中心拥有对其下属的地区单位分配地址码段的权利,其范围应该是:1.032.001~~1.032.999

c)假如该市中心对其下属的市民政局分配C段地址是1.032.017,则该市民政局的节点地址是:1.032.017.000。

d)同时,该市民政局拥有对其下属的单位分配地址码段的权利,其地址码段范围是:1.032.017.001~~1.032.017.999。

按照上述规则,对网络中的每一节点地址进行编码后,在编写SOAP报文时,就可以直接在SOAP报文内加上该SOAP报文最后到达的消息最终接收者节点地址。当ACTIIP平台内的报文模块(如图1所示)解析SOAP报文、提取SOAP报文中的路由信息后,路由模块按照本发明提供的SOAP消息分级路由的方法对路由信息进行处理、按照SOAP报文内包含的SOAP报文最后到达的消息最终接收者节点地址,将SOAP报文逐级分发到最终接收者处。

如图3所示,本发明提供的SOAP消息分级路由的方法,具体包括如下步骤:

1、对网络中的每一个节点地址进行定义

具体定义方法:

1)、将节点地址分为四段:第1段为根节点中心编码,第2段为根节点下的一级单位编码,第3段为根节点下的二级单位编码,第4段为根节点下的三级单位编码;

2)、第1段编码为“1”;第2段、第3段、第4段的编码范围是001~999;其中,根节点的编码为“1.000.000.000”;

3)、第2段、第3段、第4段的编码即一、二、三级单位相应的编码由其上级中心分配。

2、给每个节点分配定义好的节点地址

3、给每个节点配置路由表,该路由表由本节点地址、上行节点地址和下行节点地址构成;

4、部署路由模块:将路由表放置在路由模块的默认地址,并加载路由算法;

5、由引擎模块调用路由模块,由路由模块根据SOAP报文中的路由上下文信息(目的节点地址)、路由表以及路由算法计算出路由路径,并按照计算出来的路由路径分发SOAP消息。

所述路由算法是指根据SOAP报文中的路由上下文信息计算路由路径的方法,它主要包括以下步骤:

1、路由模块获取SOAP报文中的路由上下文信息;

2、查路由表获得本地节点地址

3、判断是否是本地节点地址,是则返回true,否则继续下一步;

4、计算下一跳地址,并返回计算结果,具体方法:

1)、检查路由上下文信息中是否具有地址编码,如果没有,返回异常信息;如果具有地址编码,则执行下一步;

2)、比较该地址编码和本地地址,判断上行,还是下行;

(1)、如果是上行,从路由表中直接获得上行节点地址;

(2)、如果是下行,计算下行地址编码;

3)、返回下一跳节点地址。

判断是否上行的具体方法,包括以下步骤:

1、取出本地地址的A,B,C,D段编码;

2、取出SOAP报文中路由信息编码中的A,B,C,D段编码;

3、按照从左至右的顺序比较各段编码

4、相同则进入下一级的比较

5、相异则判断:

a)本地全零则下行,返回false

b)编码全零则上行,返回true

c)均非全零则上行,返回true。

获得下行节点地址编码的方法:

1、获得本地地址编码的分段字符串数组;

2、获得本地地址编码全零字段的起始位置j;

3、将本地地址编码的j+1段开始置为全零,获得下行地址编码;

4、返回下行地址编码。

例如:大庆市民政局办公室由的地址是1.032.017.021;大庆市中心的地址是1.032.000.000;当大庆市中心接收到地址1.032.017.021,由于其全零字段的起始位置是j=3,因此将接收到的地址1.032.017.021的第j+1=4段开始置位全零得到下行地址编码1.032.017.000。

本发明的优点是:

1、采用了分级消息路由之后,交换节点划分成不同的层级和区域,每个路由模块不需要了解其他层级和区域的拓扑结构就可以将消息路由到区域内的目标地址。并且这种分级结构可以在不影响自治区域路由的情况下实现不同区域的灵活互联。

2、算法效率高,实现简单,在不增加交换级数的情况下,增加交换中心或者应用系统时,只需要简单的增加和它相连的交换中心上的配置文件,不用路由表的同步更新,即当网络中的某个节点的路由表变化了,其它节点的路由表不需要改变。

3、在SOAP标头部分携带该信息更加独立、可重用以及安全。这会使SOAP基础结构有可能适应范围更广的传输手段,同时简化编程模型。

4、这种分段编址的方法可以通过地址结构映射数据交换网络结构,从而易于计算网络路由;

5、地址分配策略可以保持数据交换平台的松耦合以及可扩展性,具有地址编码的系统可以自主扩展本地的信息交换系统,不需要与其它节点交换路由信息。

6、路由决策系统不需要大量查表操作,只需要进行分段判断就可以进行路由决策,算法时间复杂度是O(1)。

7、具有省级之间的扩展性,A段地址的设计考虑了省级系统之间的互联互通扩展需求,以及中央级信息交换互联互通的扩展需求。

以上所述是本发明的具体实施例及所运用的技术原理,任何基于本发明技术方案基础上的等效变换,均属于本发明保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号