发明内容
本发明即是针对上述现有技术中存在的问题而提出的一种多种冗余方式并存的双机数据采集主从切换方法和装置,该方法能够实现计算机层、通道层以及设备层的多种冗余方式并存,满足特殊连接方式和复杂交叉故障方面的应用。
本发明是通过下述技术方案来实现的:
一种多种冗余方式并存的双机数据采集主从切换方法,应用于双机中实体层的主从状态切换,所述的实体层包括:计算机层、通道层和设备层,所述的切换方法包括下述步骤:
(a)确定系统要切换的实体层即确定切换层;
(b)调用切换层的冗余算法;
(c)根据切换层相关运行信息调用步骤(b)的算法计算切换层的主从状态,判断切换层的计算主从状态与当前实际主从状态是否相同,如果是,则切换层当前实际主从状态不变,如果否,执行步骤(d);
(d)将切换层的当前实际主从状态切换为计算主从状态。
进一步地,所述的切换层为计算机层。
进一步地,所述的切换层至少为通道层和设备层之一。
进一步地,所述的步骤(b)中调用切换层的冗余算法是这样实现的:收集切换层信息,根据收集到的切换层信息,通过配置管理获取切换层冗余算法,加载指定的所有算法,生成算法对象链表,然后从算法对象链表中调用指定的算法。
进一步地,所述的步骤(c)中,计算切换层的主从状态次数为1-3次,判断所有次数计算的主从状态与当前的实际主从状态是否均相同,如果是,则表明当前的实际主从状态与计算主从状态相同,如果否,则表明当前的实际主从状态与计算主从状态不同。
本发明还提供一种多种冗余方式并存的双机数据采集主从切换装置,包括均与主从切换单元连接的状态收集单元、配置管理单元、冗余算法库单元;
所述的状态收集单元,用于收集处理双机中实体层的状态信息,包括双机中各通道连通状态、设备在线离线状态、默认主从状态、当前实际主从状态;
所述的配置管理单元,用于读取配置文件,提供通道的配置信息和设备的配置信息,提供算法名称和使用各算法的通道名称;
所述的冗余算法库单元是多个冗余算法的集合,所述的状态收集单元采集的状态通过相应的冗余算法能够计算出切换层的主从状态;所有冗余算法以动态链接库的形式存在;
所述的主从切换单元,用于从状态收集模块和配置管理模块中获取实体层相关信息,根据获取信息加载指定的所有算法,生成算法对象链表,然后从算法对象链表中调用指定的算法,计算主从状态,根据计算结果判断出切换层的理想主从状态。
与现有技术相比,本发明能够适应双机数据采集过程中,计算机层、通道层以及设备层多种冗余方式的并存,满足特殊连接方式和复杂交叉故障方面的应用。
具体实施方式
在具体叙述之前,首先作出如下说明:在本发明所引用的双机数据采集系统中具有三种不同类型的冗余实体层:计算机层、通道层和设备层,其中:
(1)计算机层有如下状态信息:
默认主从:由配置设定;
计算主从:由冗余算法计算后设定;
理想主从:由主从切换单元判断后设定。
(2)通道层有如下状态信息:
默认主从:由配置设定;
通道好坏:在运行中根据通道的打开成功与否设定;
计算主从:由冗余算法计算后设定;
理想主从:由主从切换单元判断后设定。
(3)设备层有如下信息:
默认主从:由配置设定;
在线离线:在运行中根据设备与的通信情况设定;
计算主从:由冗余算法计算后设定;
理想主从:由主从切换单元判断后设定。
在系统启动时,设定各个层次的计算主从状态和理想主从状态与默认主从状态一致。
在本发明中所提出的多种冗余方式并存的双机数据采集主从切换方法,指的是该主从切换的方法可以用于计算机层、通道层和设备层的任何层次之一,但是在同一时间计算机层主从切换和通道层、设备层的主从切换不能同时加载进行。
在下述叙述过程中,计算机层双机始终保持正常通信状态。
下面结合附图和具体实施例对本发明作进一步的介绍,但不作为对本发明的限定。
一种多种冗余方式并存的双机数据采集主从切换方法的实现装置中,包括:状态收集单元、配置管理单元、主从切换单元、冗余算法库单元,如图1所示,其中:
状态收集单元,用于收集处理双机中实体层的状态信息,包括双机中各通道连通状态、设备在线离线状态、默认主从状态、当前实际主从状态;双机之间的信息通过心跳信号传递;
配置管理单元,用于读取配置文件或组态信息,提供各个通道、各个设备的配置信息,提供算法名称和使用各算法的通道名称;
冗余算法库单元是多个冗余算法的集合,状态收集单元采集的状态通过相应的冗余算法能够计算出切换层的主从状态;所有冗余算法以动态链接库的形式存在;
但是需要说明的是:不同层次的冗余可以对应不同的算法,同一层次的冗余也可以具有多种不同的算法,根据实际情况调用不同的算法即可。
主从切换单元,它从状态收集模块和配置管理模块中获取实体层相关信息,然后根据获取信息加载指定的所有算法,生成算法对象链表,然后从算法对象链表中调用指定的算法,计算主从状态,根据计算结果判断出切换层的理想主从状态。
本方法实现过程中,首先确定要进行切换的层,主从切换单元依据配置管理模块中指定的该层次的主从切换算法加载算法,并生成算法对象链表,通过状态收集模块收集到双机的实体层的实际状态,再从算法对象链表中取得各算法计算出计算主从状态。
参考图2所示的流程图,一种多种冗余方式并存的双机数据采集主从切换方法,具体为如下步骤:
步骤100:判断是否为计算机层冗余,如果是,执行步骤101,如果否,执行步骤201;
步骤101:通过配置管理单元获取计算机层冗余算法对应的名称;
步骤102:主从切换模块加载计算机层的冗余算法;
步骤103:连续三次计算计算机层主从状态:主从切换单元从状态收集单元和配置管理单元中获取计算机层的相关运行信息,然后根据获取的信息调用指定的算法,计算主从状态;判断三次计算的主从状态与计算机层的当前实际主从状态是否均相同,如果是,则计算机层理想主从状态仍为当前实际主从状态,继续执行步骤103,如果否,计算机层的理想主从状态为计算主从状态,执行下一步骤104;
步骤104:将计算机层的当前实际主从状态切换为计算主从状态,返回执行步骤103。
需要说明的是,在实现计算机层中从切换时,通道层和设备层的理想主从状态按照计算机层的当前实际主从状态设置,并进行切换。
步骤201:通过配置管理单元获取通道层和设备层冗余算法对应的名称;
步骤202:主从切换模块加载通道层和设备层的冗余算法;
步骤203:连续三次计算通道层主从状态:主从切换单元从状态收集单元和配置管理单元中获取通道层的相关运行信息,然后根据获取的信息从算法对象链表中调用指定的算法,计算主从状态;判断三次计算的主从状态与通道层的当前实际主从状态是否均相同,如果是,则通道层理想主从状态仍为当前实际主从状态,继续执行步骤205,如果否,通道层的理想主从状态为计算主从状态,执行下一步骤204;
步骤204:将通道层的当前实际主从状态切换为计算主从状态;
步骤205:连续三次计算设备层主从状态:主从切换单元从状态收集单元和配置管理单元中获取设备层的相关运行信息,然后根据获取的信息从算法对象链表中调用指定的算法,计算主从状态;判断三次计算的主从状态与设备层当前实际主从状态是否均相同,如果是,则设备层理想主从状态仍为当前主从状态,返回执行步骤203,如果否,设备层的理想主从状态为计算主从状态,执行下一步骤206;
步骤206:将设备层的当前实际主从状态切换为计算主从状态,返回执行步骤203。
在上述实施例中,计算机层、通道层和设备层的计算主从状态均计算三次,与当前实际主从状态比较三次,才切换理想主从状态为计算主从状态,这样可以有效避免状态不稳定导致的反复切换。
在另一个实施例中,可以指定只进行通道层的切换,但此时设备层的主从状态由通道层的当前实际主从状态确定。在另一实施例中,也可以指定只进行设备层的切换,其实现过程与上述实施例基本一致。
需要说明的是,上述步骤中,对于计算机层、通道层和设备层的主从状态的计算方法均为现有技术。