分布式系统中保持多个数据副本一致性的方法

文档序号:7597793阅读:374来源:国知局
专利名称:分布式系统中保持多个数据副本一致性的方法
技术领域
本发明涉及分布式通讯系统,尤其涉及具有复杂的前后台分工的、前台必须依赖于后台的配置进行工作的分布式通讯系统。
背景技术
传送网络(包括网管系统)是一个复杂的大型分布式系统,其典型的网络结构模型如图1所示,分为网管侧和设备侧两大部分;网管侧包括GUI(图形用户接口)、MANAGER(管理者)两部分,设备侧包括AGENT(代理者)、MCU(微控制单元)两部分;其中MANAGER同AGENT之间是一对多的关系,AGENT同MCU之间也是一对多的关系。在该分布式系统中,GUI-MANAGER之间通过F口操作传递消息,MANAGER-AGENT之间通过Qx口操作传递消息,而AGENT同各个MCU(微控制单元)在同一背板上通过S口命令进行通讯。
传送网络根据网管系统的配置进行工作,同时为了能脱离网管系统而工作,网络在AGENT(代理者)和MCU(微控制单元)都保存有配置数据的副本,这样一来,系统中实际上有三份网络配置数据,分别保存在网管侧的MANAGER(管理者)、AGENT(代理者)和MCU(微控制单元)。保证这三份数据的一致性是整个传送网络稳定可靠工作的基本前提。
最初网管和设备侧的工作过程为图形用户接口将F口操作下发给管理者;管理者进行分析后将对应的一条或者多条Qx口操作下发给代理者并进行配置数据副本的保存;代理者收到Qx操作后进行分析,分别将对应的S口命令下发给微控制单元,并刷新自己的配置数据副本;微控制单元同样根据代理者下发的命令进行执行并刷新数据副本。这种方式我们称之为无应答工作方式。
无应答工作方式的特点是各个功能实体之间的操作消息传递不需要应答,只要命令发送了便认为是成功。优点是实现简单;最大的缺点是上游不知道下游的执行情况。由于在实际的网络配置过程中,导致的某个环节执行失败的异常情况不可能完全避免,因此往往会造成数据的不一致。为了改进这个缺点,现在网管和设备侧的工作过程一般为应答工作方式。
这种工作方式的特点是应答式的,即上游实体只有在收到正确的应答后才刷新命令对应的配置数据并下发下一条命令,而如果收到的是错误的应答,则停止进一步执行,并认为整个命令是失败的;只有当所有分解的命令都执行成功后才认为整个命令是成功的。应答的工作方式一定程度上保证了上下游信息的一致性。
仔细分析应答的工作方式,还是存在着设计上的先天不足当图形用户接口下发给管理者的一个F口操作同时对应管理者下发给代理者的多个Qx口操作时,如果代理者执行过程中其中的一条Qx操作失败,管理者则认为整个F口操作失败;但是我们可以发现失败前代理者执行的Qx操作和对应的微控制单元执行的S口命令实际上已经成功了,那么对应的数据副本也得到了刷新;而管理者由于认为F口操作失败所以未进行任何的数据副本更新,所以导致了管理者、代理者、微控制单元的数据副本之间产生了部分不一致的现象。这种部分成功部分失败而导致的数据不一致情况在工程实际中是一个很大的安全隐患,可能会造成严重的不良影响。

发明内容
本发明的所要解决的问题就是现有技术中分布式系统命令执行过程中部分成功部分失败而导致的各个数据副本数据不一致的问题,提出一种分布式系统中保持多个数据副本一致性的方法。
分布式系统中保持多个数据副本一致性的方法,包括下列处理过程管理者的处理过程步骤一、图形用户接口下发F口操作给管理者;
步骤二、管理者接收后进行分析,将该操作分拆成一条或多条到代理者的Qx口操作;步骤三、管理者将带有序列号的Qx口操作依次下发给代理者;步骤四、代理者依次接收并执行Qx口操作,每执行完毕一条Qx口操作后均向管理者反馈操作应答信息;步骤五、如果管理者接收到代理者的操作失败应答,则返回错误的报文给图形用户接口,并结束本次F口操作;步骤六、否则在收到本次F口操作的全部操作成功应答后更新本次F口操作在管理者处对应的数据副本,并返回执行成功的应答给图形用户接口,结束本次F口操作;代理者的处理过程步骤A、代理者接收管理者下发的Qx口操作;步骤B、代理者缓存本次Qx口操作在代理者处所对应的前一次操作所产生的数据副本;步骤C、代理者分析该Qx口操作,并拆分成相应的一条或者多条S口命令;步骤D、代理者将S口命令依次下发给微控制单元;步骤E、微控制单元依次接收并执行S口命令,每执行完毕一条S口命令后均向代理者反馈执行应答信息;步骤F、如果代理者接收到本次Qx口操作所第对应的全部S口命令执行成功应答,则更新本次Qx口操作在代理者处对应的数据副本,向管理者返回本次Qx口操作成功应答;步骤G、如果本次F口操作所对应的全部Qx口操作均在代理者处操作成功,则删除代理者缓存的数据副本;步骤H、如果代理者接收到微控制单元的执行失败应答,则H1代理者向管理者返回本次Qx口操作失败应答;H2根据本次Qx口操作的序列号,确定本次F口操作在代理者所对应的所有Qx口操作,并确定代理者在本次F口操作过程中所缓存的所有数据副本;H3代理者恢复缓存的所有Qx口操作数据副本为实际的数据副本;H4代理者根据缓存的数据副本,构造对应的S口命令,并下发给微控制单元,恢复微控制单元的数据副本为本次F口操作之前的状态;H5代理者删除缓存的数据副本;微控制单元的处理过程步骤I微控制单元接收代理者下发的S口命令;步骤II微控制单元对接收到的S口命令进行分析,根据分析结果对设备执行相应的操作;步骤III如果执行成功,则更新命令所对应数据副本,向代理者返回执行成功的应答,结束本次S口命令执行;步骤IV如果执行失败,则向代理者返回执行失败的应答,结束本次S口命令执行。
上述的序列号在Qx口操作的报文头中进行标识。
本发明所述的方法,从原理上完善了现有技术中一对多命令消息应答机制中存在的不足,避免了网管系统与设备侧存在的数据副本不一致问题,从而避免了设备由于分布式系统命令传递机制不完善而造成的网络运行安全隐患,保证了设备稳定可靠运行。显然本发明也不局限于传送网络领域,本发明所述的方法还可应用于具有类似性质的其他分布式系统中。


图1是分布式传送网络的系统结构示意图;图2是本发明提出方法中管理者的处理流程图;图3是本发明提出方法中代理者的处理流程图;图4是本发明中代理者在S口命令执行异常时的工作流程图;图5是本发明提出方法中微控制单元的处理流程图。
具体实施例方式
下面结合附图和实施例对本发明作进一步的详细说明。
图1是分布式传送网络的系统结构示意图。如图1所示,分布式传送网络系统包括图形用户接口、管理者、代理者、微控制单元四部分;其中管理者同代理者之间是一对多关系,代理者同微控制单元之间也是一对多的关系。一般地,称图形用户接口、管理者两部分为后台网管系统,代理者、微控制单元两部分则是通讯设备的主体,数据副本分别保存在管理者、代理者和微控制单元三个部分。
图2是本发明提出方法中管理者的处理流程图。如图2所示,管理者的处理过程包括1、图形用户接口下发一F口操作给管理者;2、管理者进行分析,将该命令分拆成一条或者多条到代理者的Qx口操作;3、管理者将Qx口操作依次下发给代理者,并在Qx操作报文中标明该操作的序列号,对最后一条命令,序列号为0xfefe;4、首先判断是否所有的Qx口操作都发送结束?5、如果没有结束,则将下一条Qx操作发送给代理者;6、如果全部结束,则更新本F口操作在管理者处对应的数据副本,并返回执行成功的应答给图形用户接口,结束本次F口操作。7、管理者收到代理者的应答;1)如果是成功的应答,则到步骤4;2)如果是失败的应答,则直接返回错误的报文给图形用户接口,并结束本次F口操作。其中,序列号可以在Qx口操作的报文头中进行标识,现有技术中Qx接口命令描述格式为

本发明中标识了序列号后的Qx接口命令描述格式为

图3是本发明提出方法中代理者的处理流程图。如图3所示,代理者的处理过程包括1、代理者接收到管理者下发的Qx口操作;2、代理者首先缓存该Qx操作在代理者所对应的前一次操作所产生的数据副本;3、代理者分析该Qx口操作,并拆分成相应的一条或者多条S口命令;4、代理者将S口命令依次发送给微控制单元;5、首先判断是否所有的S口操作都发送结束?6、如果没有结束,则将下一条S口命令发送给微控制单元;7、如果全部结束,则更新本Qx口操作在代理者处对应的数据副本,然后返回执行成功的应答给管理者;8、如果F口操作对应的全部Qx口操作都结束,则删除代理者缓存的Qx操作对应的数据。9、如果代理者接收到微控制单元的执行失败应答,则执行如图4所示的S口命令执行异常时的工作流程1、首先返回管理者执行本Qx口操作失败的应答;2、根据Qx操作报文中的操作序列号,确定本次F口操作在代理者所对应的所有Qx操作,并确定代理者在本次F口操作过程中所缓存的所有数据副本;3、代理者恢复缓存的所有Qx口操作数据副本为系统实际的数据副本;4、代理者根据缓存的数据副本,构造对应的S口命令,并下发给微控制单元,以恢复微控制单元的数据副本为本次F口操作之前的状态;5、代理者删除缓存的数据。
图5是本发明提出方法中微控制单元的处理流程图。如图5所示,微控制单元的处理过程包括1、微控制单元接收到代理者下发的S口命令;2、微控制单元对S口命令进行分析,根据分析结果对设备进行相应的操作;3、如果执行成功,则更新命令对应数据副本,并返回成功的应答给代理者,结束本次S口明执行。4、如果执行失败,则返回失败的应答给代理者,并结束本次S口命令执行。
下面结合一个具体的实施例来说明本发明所述方法的详细实现。
结合图1所示的传送网络系统,以一条图形用户接口下发的F口操作对应于三条管理者下发给代理者的Qx口操作,每一Qx口操作又对应于三条S口命令为假设,为了保证在异常发生时前后台数据副本的一致性,本发明的主要工作过程如下1、图形用户接口下发一F口配置操作到管理者,管理者进行分析,拆分、转换成三条到代理者的Qx操作;2、管理者将操作的序列号在报文头中进行标识,并下发第一条Qx操作给代理者;3、代理者收到管理者下发的Qx操作,(假设该Qx操作对应的数据副本为A,本次操作执行之前该数据副本为A1),首先缓存A1;4、对该Qx操作进行分析,拆分、转换成三条到微控制单元的S口命令;
5、代理者按照顺序将第一条S口命令下发给对应的微控制单元;6、对应的微控制单元收到代理者下发的S口命令进行执行,成功后更改自己的数据副本并返回给代理者成功的应答;7、代理者收到微控制单元返回的成功应答,继续第二条S口命令的下发;8、微控制单元收到第二条S口命令执行成功更新数据副本并返回成功;9、代理者收到微控制单元返回的成功应答,继续第三条S口命令的下发;10、微控制单元收到第三条S口命令执行成功更新数据副本并返回成功;11、代理者收到微控制单元返回的成功应答,判断本次Qx操作对应的三条S口命令都执行成功,刷新自己的数据副本,则数据副本由A1更新为A2;然后上报管理者成功的应答,并结束本次Qx操作;12、管理者收到代理者的第一条Qx操作成功应答,则继续下发第二条Qx口操作给代理者;13、代理者收到管理者下发的第二条Qx操作,(假设该Qx操作对应的代理者处数据副本为B,本次操作执行之前该数据副本为B1),首先缓存B1;14、第二条Qx操作同样对应三条S口命令;代理者发送第一条S口命令给微控制单元,微控制单元执行成功,更新数据副本并返回成功应答;15、代理者收到成功的应答,发送第二条S口命令给对应的微控制单元;16、微控制单元执行S口命令,由于设备的故障,该命令执行失败,于是返回错误的应答给代理者;17、代理者收到微控制单元执行错误的应答,返回第二条Qx操作执行失败的应答给管理者;同时进行保证数据副本一致性的回滚处理1)代理者将第一条Qx口操作对应的数据由副本A2回滚为执行之前的A1;2)以数据A1为基础,构造第一条Qx口操作对应的三条S口命令,并全部下发给微控制单元,以便恢复微控制单元上的数据副本为本次F口操作之前的状态;3)以第二条Qx口对应的数据副本B1为基础,构造对应的S口命令,并将第一条下发给对应的微控制单元,恢复微控制单元上的数据副本;18、管理者收到代理者的执行错误的应答信息,则不做任何数据的更新,直接将F口操作视为执行失败,返回给图形用户接口。
权利要求
1.分布式系统中保持多个数据副本一致性的方法,其特征在于包括下列处理过程管理者的处理过程步骤一、图形用户接口下发F口操作给管理者;步骤二、管理者接收后进行分析,将该操作分拆成一条或多条到代理者的Qx口操作;步骤三、管理者将带有序列号的Qx口操作依次下发给代理者;步骤四、代理者依次接收并执行Qx口操作,每执行完毕一条Qx口操作后均向管理者反馈操作应答信息;步骤五、如果管理者接收到代理者的操作失败应答,则返回错误的报文给图形用户接口,并结束本次F口操作;步骤六、否则在收到本次F口操作的全部操作成功应答后更新本次F口操作在管理者处对应的数据副本,并返回执行成功的应答给图形用户接口,结束本次F口操作;代理者的处理过程步骤A、代理者接收管理者下发的Qx口操作;步骤B、代理者缓存本次Qx口操作在代理者处所对应的前一次操作所产生的数据副本;步骤C、代理者分析该Qx口操作,并拆分成相应的一条或者多条S口命令;步骤D、代理者将S口命令依次下发给微控制单元;步骤E、微控制单元依次接收并执行S口命令,每执行完毕一条S口命令后均向代理者反馈执行应答信息;步骤F、如果代理者接收到本次Qx口操作所第对应的全部S口命令执行成功应答,则更新本次Qx口操作在代理者处对应的数据副本,向管理者返回本次Qx口操作成功应答;步骤G、如果本次F口操作所对应的全部Qx口操作均在代理者处操作成功,则删除代理者缓存的数据副本;步骤H、如果代理者接收到微控制单元的执行失败应答,则H1代理者向管理者返回本次Qx口操作失败应答;H2根据本次Qx口操作的序列号,确定本次F口操作在代理者所对应的所有Qx口操作,并确定代理者在本次F口操作过程中所缓存的所有数据副本;H3代理者恢复缓存的所有Qx口操作数据副本为实际的数据副本;H4代理者根据缓存的数据副本,构造对应的S口命令,并下发给微控制单元,恢复微控制单元的数据副本为本次F口操作之前的状态;H5代理者删除缓存的数据副本;微控制单元的处理过程步骤I微控制单元接收代理者下发的S口命令;步骤II微控制单元对接收到的S口命令进行分析,根据分析结果对设备执行相应的操作;步骤III如果执行成功,则更新命令所对应数据副本,向代理者返回执行成功的应答,结束本次S口命令执行;步骤IV如果执行失败,则向代理者返回执行失败的应答,结束本次S口命令执行。
2.根据权利要求1所述的方法,其特征在于所述的序列号在Qx口操作的报文头中进行标识。
全文摘要
本发明公开了一种分布式系统中保持多个数据副本一致性的方法,通过扩充定义管理者与代理者之间的Qx接口和规定代理者的运行机制,实现后台管理者和位于设备侧的代理者、微控制单元之间的信息交流、协调,进而保证整个信息交互过程中、尤其在执行过程中有失败存在时的数据副本的一致性。本发明的核心在于代理者先缓存历史数据副本,待执行成功后再删除缓存的副本,如果执行失败,则根据缓存的数据副本进行一致性回滚处理。本发明所述的方法,从原理上完善了现有技术中一对多命令消息应答机制中存在的不足,避免了网管系统与设备侧存在的数据副本不一致问题,从而避免了设备由于分布式系统命令传递机制不完善而造成的网络运行安全隐患,保证了设备稳定可靠运行。
文档编号H04L12/24GK1758604SQ200410080469
公开日2006年4月12日 申请日期2004年10月10日 优先权日2004年10月10日
发明者段磊令, 李海龙 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1