一种系统功能重构过程中保证系统一致性的方法

文档序号:7775721阅读:327来源:国知局
一种系统功能重构过程中保证系统一致性的方法
【专利摘要】本发明公开了一种系统功能重构过程中保证系统一致性的方法。本发明具体步骤如下:1.系统接收重构请求,获得需重构的功能模块a的输入端口集合A;2.系统获得其他功能模块的输出端口集合B;3.驱动输出端口集合B进入存储转发状态,数据被转发到存储模块m;4.待接受端口集口A全部进入静止状态,记录功能模块a为可重构状态;5.将功能模块a重构为功能模块c;6.驱动输入端口集合C进入接收状态,记录功能模块c为工作状态;7.将存储功能模块m中的数据转发到功能模块c进行处理,并驱动输出端口集合B进入正常转发状态。本发明降低因为功能模块重构带来的系统丢包率和延时,保证功能模块重构过程中数据传输的完整性和及时性。
【专利说明】一种系统功能重构过程中保证系统一致性的方法
【技术领域】
[0001]本发明属于网络通信领域,具体涉及一种系统功能重构过程中保证系统一致性的方法。
【背景技术】
[0002]在可重构网络方面,在国内的网络可重构相关研究方面,解放军信息工程大学研究了以“构件一组件一平台”为体系结构的开放式可重构路由交换节点平台,并且以网络承载服务为核心,以可重构路由交换平台为关键支撑技术,设计出一种面向服务提供的网络体系架构:一体化承载网络(UCN)模型。清华大学提出一种可重构的、面向服务的网络模型。国防科技大学提出了一种基于虚拟化技术的可重构路由器控制软件模型,通过操作系统的内核虚拟化技术实现可重构路由器对避免性动态配置方法不同构件提供相同的运行环境,从而提高了整个可重构路由器控制软件系统的开放性和安全性。浙江工商大学研究了可重构路由节点中的服务映射问题,提出了一个通用的服务模型ForCES,该模型包含角色、协议、质量和控制四类元素。2009年中兴通讯推出一款“组件模块化、软件可重构”的路由器 ZXRlO M6000。
[0003]在研究系统一致性方面,伦敦帝国理工学院Jeff.Kramer和Jeff.Magee。认为在对目标构件实施动态配置时,目标构件必须与其它构件间没有任何交互关系。构件与其它构件间的一次完整交互过程被定义为事务。构件不能启动事务而只能被动参与事务的状态被定义为被动状态。如果构件可以启动需要目标构件参与的事务,则在对目标构件实施动态配置前,这些构件以及目标构件自身都将被驱动进入被动状态,从而使目标构件进入现在和将来都不参与任何事务且不启动任何事务的静止状态,此为Jeff方法的动态配置安全状态。
[0004]应用系统可能存在系统断言,对一组构件的状态进行了约束。例如,在基于令牌环结构实现的系统中,所有构件只能拥有一个令牌的要求即为此类断言。动态配置不能破坏这种全局的状态约束,这被伦敦帝国理工学院的Goudarzi命名为应用状态一致性。JefT方法在构件加入和离开系统时,通过调用要求构件实现的link和unlink方法,由构件自身通过与其它构件交互,设置自己以及其它构件的状态,从而保证应用状态一致性。
[0005]伦敦帝国理工学院的K.M.Goudarzi等人提出了相互一致性、结构完整性和应用状态一致性。所谓相互一致性,即要求动态配置必须保证:在构件间的交互过程结束后,参与此次交互过程的各构件都迁移到一致性的状态。所谓结构完整性,即要求动态配置不能破坏系统对结构的约束。例如,基于令牌环结构实现的系统要求所有构件组成环形结构。结构完整性依赖予动态配置意图的合法性验证。Goudarzi方法在假设动态配置意图合法的前提下,没有对结构完整性进行研究。
[0006]Goudarzi方法认为只要在对构件实施动态配置时,构件当前没有参与任何事务,就可以保证相互一致性。因而在对构件进行动态配置时,Goudarzi方法首先向构件发送阻塞(block)命令。构件接收到阻塞命令后,不再自行启动新的事务,同时阻塞来自其他构件的事务,并在等待所有当前参与的事务完成后,宣布进入阻塞状态,此为Goudarzi方法中的动态配置安全状态。围绕哪些构件需要进入阻塞状态,Goudarzi方法定义了构件创建、删除和连接建立、删除四个基本动态配置操作执行的前提条件。通过将动态配置要求分解成基本动态配置操作,并驱动相应构件进入阻塞状态,然后实施动态配置,Goudarzi方法保证了相互一致性。
[0007]为保证应用状态一致性,Goudarzi方法要求构件向外提供状态读写方法,在需要时被调用以设置状态,从而满足系统对构件状态的全局约束。
[0008]WebFrame是中科院软件所自主研制的J2EE服务器,实现了 EJB构件的动态迁移,并在此过程中保证了引用一致性、状态一致性和消息一致性。所谓引用一致性,即指必须解决动态配置过程中的引用完整性问题。所谓消息一致性,则指在删除构件时,构件没有正在处理及等待其处理的请求。消息一致性保证了来自客户的请求不会由于构件的迁移而丢失。状态一致性则强调了构件状态在迁移过程中的正确传递。
[0009]不妨将迁移前后的构件分别称为旧目标构件和新目标构件。迁移构件时,WebFrame首先创建新目标构件,在等待旧目标构件完成正在处理的来自其他构件的请求后,然后将等待其处理的请求转发到新目标构件,进而删除旧目标构件,完成迁移,由此保证了消息一致性。在此过程中,还将进行JNDI名的重绑定、构件状态传递等操作,以保证引用一致性和状态一致性。

【发明内容】

[0010]本发明的目的是针对现有技术条件下尚未解决的问题,解决在系统重构过程中保证系统一致性的问题。
[0011]一种系统功能重构过程中保证系统一致性的方法,其步骤如下:
步骤1.系统在收到第η个网络中的某个功能模块a发出的重构请求后,将该功能模块a作为目标功能模块,同时调用第η个网络中目标功能模块a的模块信息;
所述的网络中的功能模块的模块信息形式相同,且均表示如下:由一个四元组〈S,I,R, IC>记录,S(Send Packet Port Set)是功能模块的有限输出端口集合;I (InitiateRequest Port Set)是头功能模块的有限输入端口集合,且当功能模块不是头功能模块
时,I= Φ:R(Receive Packet Port Set)是功能模块的有限输入端口集合;IC(Implicit
Connection)是功能模块内部输出端口和输入端口之间存在的连接关系。
[0012]系统通过目标功能模块a中四元组记录的R找到目标功能模块a的输入端口集合A0
[0013]步骤2.系统通过第η个网络中的二元组〈N,EC>的记录,获得与目标功能模块a的输入端口集合A中的所有端口相连的对应功能模块的输出端口集合B ;
所述的二元组〈N,EC>记录该网络的拓扑连接情况,N是有限功能模块的集合,EC (Explicit Connection)是不同功能模块的输出端口和输入端口之间存在的连接关系。
[0014]步骤3.通过系统命令驱动输出端口集合B中的所有端口进入存储转发状态,此时输出端口集合B发向目标功能模块a的数据包将转存到用于存储数据包的存储功能模块m中;
步骤4.待目标功能模块a处理完当前数据包,并经过一个网络拓扑处理时间T后仍未收到数据包,则目标功能模块a的输入端口集合A全部进入静止状态,此时系统记录该目标功能模块a为可重构状态;
所述的一个网络拓扑处理时间T具体指代如下:一个数据包通过整个网络拓扑所需的平均处理时间。
[0015] 步骤5.系统将目标功能模块a加载替换为目标功能模块c ;
步骤6.系统驱动重构后的目标功能模块c的输入端口集合C进入接收状态,然后系统记录目标功能模块c为工作状态;
步骤7.系统将存储功能模块m中存储的数据转发到目标功能模块c进行处理,并驱动输出端口集合B中的端口进入正常转发状态。
[0016]所述的目标功能模块a、存储功能模块m和重构后的目标功能模块c是多个功能模块经连接后的组合功能模块。
[0017]所述的功能模块,其信息包括功能模块的可重构状态和工作状态,输入端口的静止状态和接收状态,输出端口的正常转发状态、存储转发状态;
所述的功能模块输入端口静止状态,指提出重构请求的功能模块的输入端口在经过一个网络拓扑处理时间都未接收到数据包时,该输入端口将进入静止状态。
[0018]所述的功能模块输出端口的存储转发状态,指系统驱动端口将数据转发到存储功能模块的转发状态。
[0019]本发明有益效果如下:
采用本发明方法来进行目标功能模块的重构优势在于当目标功能模块发生重构时,系统的部分功能仍能被使用,只有与目标ATC有关的那些功能暂停了使用。由于对模块及其端口有特殊定义,系统能准确知道可重构网络中模块状态并将它们反馈给同网络的其他模块,确保了系统一致性。由于有存储功能模块的存在,在重构发生时,系统会将发送给目标给目标功能模块数据转存到存储功能模块中,避免了因为模块重构产生的大量数据丢失,降低了系统丢包率。
【专利附图】

【附图说明】
[0020]图1本发明流程图;
图2本发明功能模块连接示意图;
图3本发明存储功能模块与功能模块端口连接示意图;
图4本发明中目标功能模块进入可重构状态流程图;
图5本发明重构后功能模块连接示意图。
【具体实施方式】
[0021]下面结合附图和实施例对本发明作进一步的说明。
[0022]如图1所示,一种系统功能重构过程中保证系统一致性的方法,其步骤如下:
步骤1.系统在收到第η个网络中的某个功能模块a发出的重构请求后,将该功能模块
a作为目标功能模块,同时调用第η个网络中目标功能模块a的模块信息;
所述的网络中的功能模块的模块信息形式相同,且均表示如下:由一个四元组〈S,I,R, IC>记录,S(Send Packet Port Set)是功能模块的有限输出端口集合;I (InitiateRequest Port Set)是头功能模块的有限输入端口集合,且当功能模块不是头功能模块时,I= φ ;R(Receive Packet Port Set)是功能模块的有限输入端口集合;IC(Implicit
Connection)是功能模块内部输出端口和输入端口之间存在的连接关系。
[0023]系统通过目标功能模块a中四元组记录的R找到目标功能模块a的输入端口集合A0
[0024]步骤2.系统通过第η个网络中的二元组〈N,EC>的记录,获得与目标功能模块a的输入端口集合A中的所有端口相连的对应功能模块的输出端口集合B ;
所述的二元组〈N,EC>记录该网络的拓扑连接情况,N是有限功能模块的集合,EC (Explicit Connection)是不同功能模块的输出端口和输入端口之间存在的连接关系。
[0025]步骤3.通过系统命令驱动输出端口集合B中的所有端口进入存储转发状态,此时输出端口集合B发向目标功能模块a的数据包将转存到用于存储数据包的存储功能模块m中;
步骤4.待目标功能模块a处理完当前数据包,并经过一个网络拓扑处理时间T后仍未收到数据包,则目标功能模块a的输入端口集合A全部进入静止状态,此时系统记录该目标功能模块a为可重构状态;
所述的一个网络拓扑处理时间T具体指代如下:一个数据包通过整个网络拓扑所需的平均处理时间。
[0026]步骤5.系统将目标功能模块a重构为目标功能模块c ;
步骤6.系统驱动重构后的目标功能模块c的输入端口集合C进入接收状态,然后系统记录目标功能模块c为工作状态;
步骤7.系统将存储功能模块m中存储的数据转发到目标功能模块c进行处理,并驱动输出端口集合B中的端口进入正常转发状态。自此,原网络恢复服务。
[0027]所述的目标功能模块a、存储功能模块m和重构后的目标功能模块c是多个功能模块经连接后的组合功能模块。
[0028]所述的功能模块,其信息包括功能模块的可重构状态和工作状态,输入端口的静止状态和接收状态,输出端口的正常转发状态、存储转发状态;
所述的功能模块输入端口静止状态,指提出重构请求的功能模块的输入端口在经过一个网络拓扑处理时间都未接收到数据包时,该输入端口将进入静止状态。
[0029]所述的功能模块输出端口的存储转发状态,指系统驱动端口将数据转发到存储功能模块的转发状态。
实施例
[0030]如图2所示,为一个可重构网络的部分功能模块的连接拓扑图。假设拓扑中功能模块4要进行重构,首先模块4会向系统发送一个重构请求,系统接收到模块4重构请求后,系统会查询该模块4所在的网络,设为第η个网络;则第η个网络中的模块4的
信息〈S,I, R, IC> 为 <{Send3, Send4, Send5 φ , {GetO, Getl, Get2},{〈GetO, Send3>,
<GetO, Send4>,〈GetO, Send5>,〈Getl, Send3>}>,得到模块 4 的输入端 口集合 A 是{GetO,Getl,Get2}。通过系统记录获得第η个网络拓扑连接的二元组信息〈N,EC>为<{ATC_A, ATC_B, ATC_C, ATC_D, ATC_E, ATC_F, ATC_G},{〈SendO, GetO>, <Send3, Get5>,〈Send
I,Get2>, <Send2, Getl>, <Send3, Get5>, <Send4, Get4>, <Send5, Get3>} >,找到与输入端 口集合A相对应的其他功能模块的输出端口集合B {SendO, Sendl, Send2}。接着,系统驱动输出端口集合B{SendO,Sendl, Send2}进入转发存储状态,从输出端口集合B出来的数据将被暂存到存储模块(所有功能模块的每个输入输出端口都会连接到存储功能模块,如图3所示)。因此,在输出端口集合B进入转发存储状态后,输入端口集合A将不会收到任何数据,待目标功能模块a处理完当前数据包,再经过一个网络拓扑处理时间T,输入端口集合A进入静止状态,此时系统记录模块4为可重构状态,系统对模块4开始重构。当重构结束后,模块41将取代原来模块4所处位置,如图5所示。然后,系统驱动模块41的接收端口集合C进入接受状态,系统记录新模块的状态为工作状态。存储模块会将存储的数据转发给模块41,并且系统驱动端口集合B进入正常转发状态,可重构网络恢复服务。
【权利要求】
1.一种系统功能重构过程中保证系统一致性的方法,其特征在于包括如下步骤: 步骤1.系统在收到第η个网络中的某个功能模块a发出的重构请求后,将该功能模块a作为目标功能模块,同时调用第η个网络中目标功能模块a的模块信息;系统通过目标功能模块a中四元组记录的R找到目标功能模块a的输入端口集合A; 所述的网络中的功能模块的模块信息形式相同,且均表示如下:由一个四元组〈S,I,R, IC>记录,S(Send Packet Port Set)是功能模块的有限输出端口集合;I (InitiateRequest Port Set)是头功能模块的有限输入端口集合,且当功能模块不是头功能模块时,I= φ ;R(Receive Packet Port Set)是功能模块的有限输入端口集合;IC(ImplicitConnection)是功能模块内部输出端口和输入端口之间存在的连接关系; 步骤2.系统通过第η个网络中的二元组〈N,EC>的记录,获得与目标功能模块a的输入端口集合A中的所有端口相连的对应功能模块的输出端口集合B ;所述的二元组〈N,EC>记录该网络的拓扑连接情况,N是有限功能模块的集合,EC (Explicit Connection)是不同功能模块的输出端口和输入端口之间存在的连接关系;步骤3.通过系统命令驱动输出端口集合B中的所有端口进入存储转发状态,此时输出端口集合B发向目标功能模块a的数据包将转存到用于存储数据包的存储功能模块m中; 步骤4.待目标功能模块a处理完当前数据包,并经过一个网络拓扑处理时间T后仍未收到数据包,则目标功能模块a的输入端口集合A全部进入静止状态,此时系统记录该目标功能模块a为可重构状态;
步骤5.系统将目标功能模块a加载替换为目标功能模块c ; 步骤6.系统驱动重构后的目标功能模块c的输入端口集合C进入接收状态,然后系统记录目标功能模块c为工作状态; 步骤7.系统将存储功能模块m中存储的数据转发到目标功能模块c进行处理,并驱动输出端口集合B中的端口进入正常转发状态。
2.如权利要求1所述的一种系统功能重构过程中保证系统一致性的方法,其特征在于所述的一个网络拓扑处理时间T具体指代如下:一个数据包通过整个网络拓扑所需的平均处理时间。
3.如权利要求1所述的一种系统功能重构过程中保证系统一致性的方法,其特征在于所述的目标功能模块a、存储功能模块m和重构后的目标功能模块c是多个功能模块经连接后的组合功能模块;且所述的功能模块,其信息包括功能模块的可重构状态和工作状态,输入端口的静止状态和接收状态,输出端口的正常转发状态、存储转发状态。
4.如权利要求3所述的一种系统功能重构过程中保证系统一致性的方法,其特征在于所述的功能模块输入端口静止状态,指提出重构请求的功能模块的输入端口在经过一个网络拓扑处理时间都未接收到数据包时,该输入端口将进入静止状态;所述的功能模块输出端口的存储转发状态,指系统驱动端口将数据转发到存储功能模块的转发状态。
【文档编号】H04L12/751GK103581026SQ201310547350
【公开日】2014年2月12日 申请日期:2013年11月6日 优先权日:2013年11月6日
【发明者】李传煌, 王伟明, 董黎刚, 李建青 申请人:浙江工商大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1