H04L12/24
1.一种用于实现网络自愈的方法,其特征在于,包括:
在当前状态为非备份者状态时,判断是否能够接收到备份者声 明,其中备份者节点以预定周期发送备份者声明;
若未能在第一预定时间内接收到备份者声明,则向网络中各节点 广播申请消息,其中申请消息中包括自身节点标识和备份版本号;
在接收到的申请消息中,查询是否存在比自身备份版本号高的备 份版本号;
若未在第二预定时间内查询到比自身备份版本号高的备份版本 号,则将当前状态变更为备份者状态,以便成为备份者节点。
2.根据权利要求1所述的方法,其特征在于,
若未在第二预定时间内查询到比自身备份版本号高的备份版本 号,则将当前状态变更为备份者状态的步骤包括:
若未在第二预定时间内查询到比自身备份版本号高的备份版本 号,则将当前状态变更为候选状态;
判断是否接收到备份者声明;
若未能在第三预定时间内接收到备份者声明,则将当前状态变更 为备份者状态。
3.根据权利要求2所述的方法,其特征在于,
若在第三预定时间内收到备份者声明,则将当前状态变更为非备 份者状态。
4.根据权利要求1所述的方法,其特征在于,
若在第二预定时间内查询到比自身备份版本号高的备份版本号, 则将当前状态变更为等待状态;
在接收到备份者声明后,将当前状态变更为非备份者状态。
5.根据权利要求1~4任一所述的方法,其特征在于,还包括:
在接收到备份者声明后,比较自身当前的备份版本号和备份者声 明中的备份版本号;
若备份者声明中的备份版本号高于自身当前的备份版本号,则向 当前处于备份者状态的节点发送备份更新请求,以便更新自身的备份 信息。
6.根据权利要求1所述的方法,其特征在于,
若未能在第一预定时间内接收到备份者声明,则向网络中各节点 广播申请消息的步骤包括:
若未能在第一预定时间内接收到全部备份者节点发送的备份者 声明,则向网络中各节点广播申请消息。
7.根据权利要求6所述的方法,其特征在于,
若未在第二预定时间内查询到比自身备份版本号高的备份版本 号,则将当前状态变更为备份者状态的步骤包括:
若未在第二预定时间内查询到比自身备份版本号高的备份版本 号,则将当前状态变更为候选状态;
判断是否接收到新备份者节点发送的备份者声明,其中新备份者 节点是在指定时间范围内从非备份者状态变更到备份者状态的节点;
若未能在第三预定时间内接收到新备份者节点发送的备份者声 明,则将当前状态变更为备份者状态。
8.根据权利要求7所述的方法,其特征在于,
若在第三预定时间内收到新备份者节点发送的备份者声明,则将 当前状态变更为非备份者状态。
9.根据权利要求6所述的方法,其特征在于,
若在第二预定时间内查询到比自身备份版本号高的备份版本号, 则将当前状态变更为等待状态;
在接收到新备份者节点发送的备份者声明后,将当前状态变更为 非备份者状态。
10.一种用于实现网络自愈的节点,其特征在于,包括:
消息接收模块,用于在当前状态为非备份者状态时,接收备份者 声明和申请消息;
判断模块,用于判断在第一预定时间内是否接收到备份者声明;
版本号查询模块,用于在接收到的申请消息中,查询是否存在比 自身备份版本号高的备份版本号;
查询消息发送模块,用于当判断模块判断在第一预定时间内没有 接收到备份者声明时,向网络中各节点广播申请消息,其中申请消息 中包括自身节点标识和备份版本号;
状态变更模块,用于当版本号查询模块未在第二预定时间内查询 到比自身备份版本号高的备份版本号时,将当前状态变更为备份者状 态,以便成为备份者节点;
备份者声明发送模块,用于在成为备份者节点后,以预定周期发 送备份者声明。
11.根据权利要求10所述的节点,其特征在于,
状态变更模块,还用于当版本号查询模块在第二预定时间内没有 查询到比自身备份版本号高的备份版本号时,将当前状态变更为候选 状态;若在第三预定时间内消息接收模块没有接收到备份者声明,则 将当前状态变更为备份者状态;
判断模块,还用于在状态变更模块将当前状态变更为候选状态后 的第三预定时间内判断是否接收到备份者声明。
12.根据权利要求11所述的节点,其特征在于,
状态变更模块,还用于当判断模块确定在状态变更模块将当前状 态变更为候选状态后的第三预定时间内消息接收模块收到备份者声明 时,则将当前状态变更为非备份者状态。
13.根据权利要求10所述的节点,其特征在于,
状态变更模块,还用于当版本号查询模块在第二预定时间内查询 到比自身备份版本号高的备份版本号时,将当前状态变更为等待状态; 在消息接收模块接收到备份者声明后,将当前状态变更为非备份者状 态。
14.根据权利要求10~13任一所述的节点,其特征在于,
版本号查询模块,还用于在接收到备份者声明后比较自身当前的 备份版本号和备份者声明中的备份版本号,查询是否备份者声明中的 备份版本号比自身备份版本号高;
备份更新模块,用于当版本号查询模块确定备份者声明中的备份 版本号高于自身当前的备份版本号时,向当前处于备份者状态的节点 发送备份更新请求,以便更新自身的备份信息。
15.根据权利要求10所述的节点,其特征在于,
判断模块具体用于判断在第一预定时间内是否接收到全部备份 者节点发送的备份者声明;
状态变更模块,用于当判断模块确定消息接收模块在第一预定时 间内没有接收到全部备份者节点发送的备份者声明时,向网络中各节 点广播申请消息。
16.根据权利要求15所述的节点,其特征在于,
状态变更模块,还用于当版本号查询模块在第二预定时间内没有 查询到比自身备份版本号高的备份版本号时,将当前状态变更为候选 状态;当判断模块确定在状态变更为候选状态后的第三预定时间内消 息接收模块没有接收到新备份者节点发送的备份者声明时,将当前状 态变更为备份者状态,其中新备份者节点是在指定时间范围内从非备 份者状态变更到备份者状态的节点;
判断模块,还用于在状态变更模块将当前状态变更为候选状态后 的第三预定时间内判断是否接收到新备份者节点发送的备份者声明。
17.根据权利要求16所述的节点,其特征在于,
状态变更模块,还用于当判断模块确定在状态变更模块将当前状 态变更为候选状态后的第三预定时间内消息接收模块收到新备份者节 点发送的备份者声明时,则将当前状态变更为非备份者状态。
18.根据权利要求17所述的节点,其特征在于,
状态变更模块,还用于当版本号查询模块在第二预定时间内查询 到比自身备份版本号高的备份版本号时,将当前状态变更为等待状态; 当消息接收模块接收到新备份者节点发送的备份者声明后,将当前状 态变更为非备份者状态。
19.一种用于实现网络自愈的系统,其特征在于,包括权利要求 10~18任一所述用于实现网络自愈的节点。
本发明涉及智能网络领域,特别是一种用于实现网络自愈的方 法、节点和系统。
智能家居中,灯光系统、温控系统、影音系统与各种传感器组成 网络,按照用户的喜好彼此联动。例如,房门打开时,会激活摄像监 控,灯光和室温会自动调节,背景音乐会自动打开等等。
为降低系统对控制中心的依赖,可以将场景联动逻辑和接入设备 信息保存在备份者节点上。但是,智能家居网络是动态的,各个节点 可能随时离线,其中也包括备份者节点。当备份者节点离线时,会导 致无法查询到节点的联动信息,导致联动失败。
本发明的一个目的在于提出一种当备份者节点离线时保证智能 家居多节点联动网络自愈的方案。
根据本发明的一个方面,提出一种用于实现网络自愈的方法,包 括:在当前状态为非备份者状态时,判断是否能够接收到备份者声明, 其中备份者节点以预定周期发送备份者声明;若未能在第一预定时间 内接收到备份者声明,则向网络中各节点广播申请消息,其中申请消 息中包括自身节点标识和备份版本号;在接收到的申请消息中,查询 是否存在比自身备份版本号高的备份版本号;若未在第二预定时间内 查询到比自身备份版本号高的备份版本号,则将当前状态变更为备份 者状态,以便成为备份者节点。
进一步地,若未在第二预定时间内查询到比自身备份版本号高的 备份版本号,则将当前状态变更为备份者状态的步骤包括:若未在第 二预定时间内查询到比自身备份版本号高的备份版本号,则将当前状 态变更为候选状态;判断是否接收到备份者声明;若未能在第三预定 时间内接收到备份者声明,则将当前状态变更为备份者状态。
进一步地,若在第三预定时间内收到备份者声明,则将当前状态 变更为非备份者状态。
进一步地,若在第二预定时间内查询到比自身备份版本号高的备 份版本号,则将当前状态变更为等待状态;在接收到备份者声明后, 将当前状态变更为非备份者状态。
进一步地,还包括:在接收到备份者声明后,比较自身当前的备 份版本号和备份者声明中的备份版本号;若备份者声明中的备份版本 号高于自身当前的备份版本号,则向当前处于备份者状态的节点发送 备份更新请求,以便更新自身的备份信息。
进一步地,若未能在第一预定时间内接收到备份者声明,则向网 络中各节点广播申请消息的步骤包括:若未能在第一预定时间内接收 到全部备份者节点发送的备份者声明,则向网络中各节点广播申请消 息。
进一步地,若未在第二预定时间内查询到比自身备份版本号高的 备份版本号,则将当前状态变更为备份者状态的步骤包括:若未在第 二预定时间内查询到比自身备份版本号高的备份版本号,则将当前状 态变更为候选状态;判断是否接收到新备份者节点发送的备份者声明, 其中新备份者节点是在指定时间范围内从非备份者状态变更到备份者 状态的节点;若未能在第三预定时间内接收到新备份者节点发送的备 份者声明,则将当前状态变更为备份者状态。
进一步地,若在第三预定时间内收到新备份者节点发送的备份者 声明,则将当前状态变更为非备份者状态。
进一步地,若在第二预定时间内查询到比自身备份版本号高的备 份版本号,则将当前状态变更为等待状态;在接收到新备份者节点发 送的备份者声明后,将当前状态变更为非备份者状态。
通过这样的方法,当非备份者状态的节点未能收到备份者声明 时,判断备份者节点离线,申请成为备份者节点,从而能够维持网络 中存在备份者节点,实现系统的自愈,提高网络的稳定性。
根据本发明的另一个方面,提出一种用于实现网络自愈的节点, 包括:消息接收模块,用于在当前状态为非备份者状态时,接收备份 者声明和申请消息;判断模块,用于判断在第一预定时间内是否接收 到备份者声明;版本号查询模块,用于在接收到的申请消息中,查询 是否存在比自身备份版本号高的备份版本号;查询消息发送模块,用 于当判断模块判断在第一预定时间内没有接收到备份者声明时,向网 络中各节点广播申请消息,其中申请消息中包括自身节点标识和备份 版本号;状态变更模块,用于当版本号查询模块未在第二预定时间内 查询到比自身备份版本号高的备份版本号时,将当前状态变更为备份 者状态,以便成为备份者节点;备份者声明发送模块,用于在成为备 份者节点后,以预定周期发送备份者声明。
进一步地,状态变更模块,还用于当版本号查询模块在第二预定 时间内没有查询到比自身备份版本号高的备份版本号时,将当前状态 变更为候选状态;若在第三预定时间内消息接收模块没有接收到备份 者声明,则将当前状态变更为备份者状态;判断模块,还用于在状态 变更模块将当前状态变更为候选状态后的第三预定时间内判断是否接 收到备份者声明。
进一步地,状态变更模块,还用于当判断模块确定在状态变更模 块将当前状态变更为候选状态后的第三预定时间内消息接收模块收到 备份者声明时,则将当前状态变更为非备份者状态。
进一步地,状态变更模块,还用于当版本号查询模块在第二预定 时间内查询到比自身备份版本号高的备份版本号时,将当前状态变更 为等待状态;在消息接收模块接收到备份者声明后,将当前状态变更 为非备份者状态。
进一步地,版本号查询模块,还用于在接收到备份者声明后比较 自身当前的备份版本号和备份者声明中的备份版本号,查询是否备份 者声明中的备份版本号比自身备份版本号高;备份更新模块,用于当 版本号查询模块确定备份者声明中的备份版本号高于自身当前的备份 版本号时,向当前处于备份者状态的节点发送备份更新请求,以便更 新自身的备份信息。
进一步地,判断模块具体用于判断在第一预定时间内是否接收到 全部备份者节点发送的备份者声明;状态变更模块,用于当判断模块 确定消息接收模块在第一预定时间内没有接收到全部备份者节点发送 的备份者声明时,向网络中各节点广播申请消息。
进一步地,状态变更模块,还用于当版本号查询模块在第二预定 时间内没有查询到比自身备份版本号高的备份版本号时,将当前状态 变更为候选状态;当判断模块确定在状态变更为候选状态后的第三预 定时间内消息接收模块没有接收到新备份者节点发送的备份者声明 时,将当前状态变更为备份者状态,其中新备份者节点是在指定时间 范围内从非备份者状态变更到备份者状态的节点;判断模块,还用于 在状态变更模块将当前状态变更为候选状态后的第三预定时间内判断 是否接收到新备份者节点发送的备份者声明。
进一步地,状态变更模块,还用于当判断模块确定在状态变更模 块将当前状态变更为候选状态后的第三预定时间内消息接收模块收到 新备份者节点发送的备份者声明时,将当前状态变更为非备份者状态。
进一步地,状态变更模块,还用于当版本号查询模块在第二预定 时间内查询到比自身备份版本号高的备份版本号时,将当前状态变更 为等待状态;当消息接收模块接收到新备份者节点发送的备份者声明 后,将当前状态变更为非备份者状态。
这样的节点在处于非备份者状态时,若未能收到备份者声明时, 则判断备份者节点离线,申请成为备份者节点,从而能够维持网络中 存在备份者节点,实现系统的自愈,提高网络的稳定性。
根据本发明的又一个方面,提出一种用于实现网络自愈的系统, 包括上文中提到的任一种用于实现网络自愈的节点。
在这样的系统中,若处于非备份者状态的节点未能收到备份者声 明,则判断备份者节点离线,申请成为备份者节点,从而能够维持网 络中存在备份者节点,实现系统的自愈,提高网络的稳定性。
此处所说明的附图用来提供对本发明的进一步理解,构成本申请 的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构 成对本发明的不当限定。在附图中:
图1为本发明的用于实现网络自愈的方法的一个实施例的流程 图。
图2为本发明的用于实现网络自愈的方法的另一个实施例的流程 图。
图3为本发明的用于实现网络自愈的方法的又一个实施例的流程 图。
图4为本发明的用于实现网络自愈的方法的再一个实施例的状态 转移图。
图5为本发明的用于实现网络自愈的方法的其中一个实施例的流 程图。
图6为本发明的用于实现网络自愈的节点的一个实施例的示意 图。
图7为本发明的用于实现网络自愈的节点的另一个实施例的示意 图。
图8为本发明的用于实现网络自愈的系统的一个实施例的示意 图。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描 述。
本发明的用于实现网络自愈的方法的一个实施例的流程图如图1 所示。
在步骤101中,节点处于非备份者状态。处于备份状态的节点可 以称为备份者节点。备份者节点可以以预定时间间隔广播备份者声明。 处于非备份者状态的节点接收备份者声明。备份者声明中包括备份者 节点的备份版本号信息。
在步骤102中,由于备份者节点以预定时间间隔广播备份者声明, 非备份者状态的节点接收备份者声明。若非备份者状态的节点在收到 备份者声明后的第一预定时间内再次收到备份者声明,则循环执行步 骤102,持续监测第一预定时间内是否收到备份者声明;若非备份者 状态的节点在收到备份者声明后的第一预定时间内未能再次收到备份 者声明,则执行步骤103。
在步骤103中,非备份者节点向网络中各个节点广播申请消息, 请求成为备份者。其中,申请消息中包括自身节点标识和备份版本号。
在步骤104中,非备份者节点判断在第二预定时间内是否收到来 自其他非备份者节点的申请消息,且判断收到的申请消息中的备份版 本号是否高于自身的备份版本号。若收到的申请消息中的备份版本号 高于自身的备份版本号,则执行步骤101,保持非备份者状态;若未 能收到申请消息,或收到的申请消息中备份版本号均不大于本节点的 备份版本号,则执行步骤105。
在步骤105中,节点变更自身状态为备份者状态,成为备份者节 点,并以预定时间间隔广播备份者声明。
通过这样的方法,当非备份者状态的节点未能收到备份者声明 时,则判断备份者节点离线,申请成为备份者节点,从而能够维持网 络中存在备份者节点,实现系统的自愈,提高网络的稳定性。
本发明的用于实现网络自愈的方法的另一个实施例的流程图如 图2所示。
在步骤201中,备份者节点以预定时间间隔广播备份者声明。用 于实现网络自愈的节点处于非备份者状态,持续监听备份者声明。
在步骤202中,若非备份者状态的节点在收到备份者声明后的第 一预定时间内再次收到备份者声明,则循环执行步骤102,持续监测 第一预定时间内是否收到备份者声明;若非备份者状态的节点在收到 备份者声明后的第一预定时间内未能再次收到备份者声明,则执行步 骤203。
在步骤203中,非备份者节点向网络中各个节点广播申请消息, 请求成为备份者。
在步骤204中,非备份者节点判断在第二预定时间内是否收到来 自其他非备份者节点的申请消息,且判断收到的申请消息中的备份版 本号是否高于自身的备份版本号。若收到的申请消息中的备份版本号 高于自身的备份版本号,则执行步骤201,保持非备份者状态;若未 能收到申请消息,或收到的申请消息中备份版本号均不大于本节点的 备份版本号,则执行步骤205。
在步骤205中,节点变更自身状态为候选状态,该节点成为备份 者节点的候选节点。候选状态的节点需要等待第三预定时间。
在步骤206中,候选状态的节点在等待的第三预定时间内若未能 收到备份者声明,则执行步骤207;若在第三预定时间内收到备份者 声明,则执行步骤208。
在步骤207中,候选状态的节点变更自身状态为备份者状态,成 为备份者节点,并以预定时间间隔广播备份者消息。
在步骤208中,候选状态的节点变更自身状态为非备份者状态。
通过这样的方法,当非备份者状态的节点判断自身备份版本号不 低于其他非备份者状态的节点后,还需等待第三预定时间,以保证只 有一个非备份者状态的节点成为备份者节点,从而防止系统混乱,提 高系统的健壮性。
本发明的用于实现网络自愈的方法的又一个实施例的流程图如 图3所示。
在步骤301中,备份者节点以预定时间间隔广播备份者声明,处 于非备份者状态的节点持续监听备份者声明。
在步骤302中,若非备份者状态的节点在收到备份者声明后的第 一预定时间内再次收到备份者声明,则循环执行步骤302,持续监测 第一预定时间内是否收到备份者声明;若非备份者状态的节点在收到 备份者声明后的第一预定时间内未能再次收到备份者声明,则执行步 骤303。
在步骤303中,非备份者节点向网络中各个节点广播申请消息, 请求成为备份者。
在步骤304中,非备份者节点判断在第二预定时间内是否收到来 自其他非备份者节点的申请消息,且判断收到的申请消息中的备份版 本号是否高于自身的备份版本号。若未能收到申请消息,或收到的申 请消息中备份版本号均不大于本节点的备份版本号,则执行步骤305。 若收到的申请消息中的备份版本号高于自身的备份版本号,则执行步 骤306。
在步骤305中,节点变更自身状态为备份者状态,成为备份者节 点,并以预定时间间隔广播备份者声明。在另一个实施例中,可以按 照图2实施例中步骤305~308的方式执行,判断是否成为备份者节点。
在步骤306中,节点变更自身状态为等待状态。等待状态的节点 在收到备份者声明之前,一直维持等待状态。
在步骤307中,若等待状态的节点未收到备份者声明,则循环执 行步骤307,等待备份者声明;若等待状态的节点收到备份者声明, 则执行步骤308。
在步骤308中,节点变更自身状态为非备份者状态。
通过这样的方法,自身备份版本号较低的节点能够等待出现新的 备份者节点后再确认回到非备份者状态,逻辑更加完整。
在一个实施例中,本发明的节点状态变更的状态转移图如图4所 示。节点初始处于非备份者状态。
在401中,非备份者状态的节点接收来自备份者节点的备份者声 明。若在收到一次备份者声明后的第一预定时间内未能收到备份者声 明,则判断备份者节点故障或离线,申请成为新的备份者。非备份者 状态的节点广播申请消息,并等待第二预定时间。
在402中,若非备份者状态的节点在第二预定时间内未收到更高 备份版本号的申请消息,则变更状态为候选状态。
在403中,若非备份者状态的节点在第二预定时间内收到更高备 份版本号的申请消息,则变更状态为等待状态。
在404中,若候选状态的节点在第三预定时间内未能收到备份者 声明,则变更状态为备份者状态,节点成为备份者节点。
在405中,若候选状态的节点在第三预定时间内收到备份者声明, 则说明已有其他节点申请成功,成为备份者节点,因此,候选状态的 节点变更状态为非备份者状态。
在步骤406中,若等待状态的节点收到备份者声明,则变更状态 为非备份者状态。
通过这样的逻辑,在备份者节点离线或故障的情况下,非备份者 状态的节点能够申请成为备份者节点,且保证效率最高的节点优先成 为备份者节点,在提高系统健壮性,降低对备份者节点依赖的同时, 提高系统的运行效率。
在一个实施例中,网络中可以有多个备份者节点。可以在所有备 份者节点均离线或故障的情况下,由非备份者状态的节点中生成一个 备份者节点。例如,网络中有3个备份者节点,当三个备份者节点均 故障或离线时,非备份者状态的节点会在第一预定时间内无法收到备 份者声明,从而发送申请消息,在非备份者节点中产生一个备份者节 点,称为新备份者节点。这样的方式能够保证网络中至少包括一个备 份者节点,从而维持系统的正常运行。
在另一个实施例中,可以当网络中备份者节点的数量减少时,在 非备份者节点中产生一个备份者节点,以保证网络中备份者节点的数 量。例如,网络中有3个备份者节点,3个非备份者状态的节点,当3 个备份者节点中有一个节点离线或故障时,3个非备份者状态的节点 中会有一个成为备份者节点,从而保持系统中的备份者节点数量为3 个。这样的方式能够进一步提高系统的性能和稳定性,降低对单个备 份者节点性能的要求。
本发明的用于实现网络自愈的方法的再一个实施例的流程图如 图5所示。
在步骤501中,节点处于非备份者状态,网络中所有备份者节点 均以预定时间间隔广播备份者声明。在一个实施例中,备份者声明中 除了备份者节点存储的备份版本号信息,还包括备份者节点的节点标 识。
在步骤502中,若非备份者状态的节点在收到来自任一备份者节 点的备份者声明后的第一预定时间内能够再次收到来自该备份者节点 的备份者声明,则说明所有备份者节点均在线,循环执行步骤502; 若在收到备份者声明的第一预定时间内未能再次收到来自该备份者节 点的备份者声明,则说明该节点离线,执行步骤503。在一个实施例 中,非备份者节点可以通过节点标识识别备份者声明的源节点。
在步骤503中,非备份者节点向网络中各个节点广播申请消息, 请求成为备份者。
在步骤504中,非备份者节点判断在第二预定时间内是否收到来 自其他非备份者节点的申请消息,且判断收到的申请消息中的备份版 本号是否高于自身的备份版本号。若未能收到申请消息,或收到的申 请消息中备份版本号均不大于本节点的备份版本号,则执行步骤505。 若收到的申请消息中的备份版本号高于自身的备份版本号,则执行步 骤508。
在步骤505中,节点变更自身状态为候选状态,该节点成为备份 者节点的候选节点。候选状态的节点需要等待第三预定时间。
在步骤506中,候选状态的节点在等待的第三预定时间内若未能 收到来自新备份者节点的备份者声明,则执行步骤507,新备份者节 点为在指定时间范围内从非备份者状态变更到备份者状态的节点,如 在步骤502中确定存在备份者节点离线或故障后新申请成为备份者节 点的节点;若在第三预定时间内收到来自新备份者节点的备份者声明, 则执行步骤510。
在步骤507中,候选状态的节点变更自身状态为备份者状态,成 为备份者节点,并以预定时间间隔广播备份者消息。
在步骤508中,节点变更自身状态为等待状态。等待状态的节点 在收到来自新备份者节点的备份者声明之前,一直维持等待状态。
在步骤509中,若等待状态的节点未收到来自新备份者节点的备 份者声明,则循环执行步骤509,等待备份者声明;若等待状态的节 点收到备份者声明,则执行步骤510。
在步骤510中,节点变更自身状态为非备份者状态。
通过这样的方法,可以在网络中备份者节点的数量减少时,在非 备份者节点中产生一个备份者节点,以保证网络中备份者节点的数量。 这样的方式能够进一步提高系统的性能和稳定性,降低对单个备份者 节点性能的要求。
在一个实施例中,备份者节点广播备份者声明,备份者声明中包 括备份版本号信息。当备份者节点或非备份者状态的节点收到备份者 声明后,获得备份版本号信息,比较备份者声明中的备份版本号和自 身的备份版本号。若备份者声明中的备份版本号高于自身的备份版本 号,则向该备份者声明的源备份者节点发送备份更新请求,以便更新 自身的备份信息。在一个实施例中,备份者声明中还可以包括本节点 表示、所有备份者表示和备份版本号。
通过这样的方法,能够以预定周期进行各节点的备份数据同步, 从而尽量使备份者节点离线或故障时,新产生的备份者节点的备份版 本为最新版本,提高用户体验。
本发明的用于实现网络自愈的节点的一个实施例的示意图如图6 所示。其中,消息接收模块601能够在当前状态为非备份者状态时, 接收备份者声明和申请消息。若判断模块602判断在第一预定时间内 未接收到备份者声明,则激活查询消息发送模块603。查询消息发送 模块603能够在判断模块602判断在第一预定时间内没有接收到备份 者声明时,向网络中各节点广播申请消息,申请消息中包括自身节点 标识和备份版本号。版本号查询模块604能够在消息接收模块601接 收到的申请消息中查询是否存在比自身备份版本号高的备份版本号。 状态变更模块605能够在版本号查询模块604未在第二预定时间内查 询到比自身备份版本号高的备份版本号时,将当前状态变更为备份者 状态,以便成为备份者节点。备份者声明发送模块606用于在节点成 为备份者节点后,以预定周期发送备份者声明。
这样的节点在处于非备份者状态时,若未能收到备份者声明,则 判断备份者节点离线,申请成为备份者节点,从而能够维持网络中存 在备份者节点,实现系统的自愈,提高网络的稳定性。
在一个实施例中,状态变更模块605还用于当版本号查询模块 604未在第二预定时间内查询到比自身备份版本号高的备份版本号 时,将当前状态变更为候选状态。判断模块602在节点成为候选状态 后的第三预定时间内判断消息接收模块601是否收到备份者声明。若 判断模块602确定消息接收模块601收到备份者声明,则状态变更模 块605将当前状态变更为非备份者状态;若判断模块602确定消息接 收模块601未收到备份者声明,则状态变更模块605将当前状态变更 为备份者状态,节点成为备份者节点。
这样的非备份者状态的节点判断自身备份版本号不低于其他非 备份者状态的节点后,还需等待第三预定时间,以保证只有一个非备 份者状态的节点成为备份者节点,从而防止系统混乱,提高系统的健 壮性。
在一个实施例中,当版本号查询模块604在第二预定时间内查询 到消息接收模块601接收的申请消息中存在比自身备份版本号高的备 份版本号时,状态变更模块605将当前状态变更为等待状态。当消息 接收模块601接收备份者声明时,状态变更模块605将等待状态的节 点变更为非备份者状态。
这样的节点能够在自身备份版本号较低时能够等待出现新的备 份者节点后再确认回到非备份者状态,逻辑更加完整,系统更加稳定。
在一个实施例中,网络中可以有多个备份者节点。可以在所有备 份者节点均离线或故障的情况下,由非备份者节点中生成一个备份者 节点。在另一个实施例中,可以在网络中备份者节点的数量减少时, 在非备份者节点中产生一个备份者节点,以保证网络中备份者节点的 数量。判断模块602具体用于在收到来自任一备份者节点的备份者声 明后的第一预定时间内判断是否能够再次收到来自该备份者节点的备 份者声明;状态变更模块604用于当判断模块602确定消息接收模块 在第一预定时间内没有接收到全部备份者节点发送的备份者声明时, 向网络中各节点广播申请消息;当版本号查询模块在第二预定时间内 没有查询到比自身备份版本号高的备份版本号时,将当前状态变更为 候选状态;当判断模块602确定在状态变更为候选状态后的第三预定 时间内消息接收模块601没有接收到新备份者节点发送的备份者声明 时,则将当前状态变更为备份者状态,其中新备份者节点是在指定时 间范围内从非备份者状态变更到备份者状态的节点;当版本号查询模 块在第二预定时间内查询到比自身备份版本号高的备份版本号时,将 当前状态变更为等待状态;当消息接收模块接收到新备份者节点发送 的备份者声明后,将当前状态变更为非备份者状态。
这样的节点能够在网络中备份者节点的数量减少时,在非备份者 节点中产生一个备份者节点,以保证网络中备份者节点的数量,从而 进一步提高系统的性能和稳定性,降低对单个备份者节点性能的要求。
本发明的用于实现网络自愈的节点的另一个实施例的示意图如 图7所示。其中,消息接收模块701、判断模块702、查询消息发送模 块703、状态变更模块705和备份者声明发送模块706的结构和功能 与图6的实施例中相似。版本号查询模块704还用于在接收到备份者 声明后比较自身当前的备份版本号和备份者声明中的备份版本号,查 询是否备份者声明中的备份版本号比自身备份版本号高。节点还包括 备份更新模块707,能够在版本号查询模块704确定备份者声明中的 备份版本号高于自身当前的备份版本号时,向当前处于备份者状态的 节点发送备份更新请求,以便更新自身的备份信息。
这样的节点能够以预定周期进行各节点的备份数据同步,从而尽 量使备份者节点离线或故障时,新产生的备份者节点的备份版本为最 新版本,提高用户体验。
本发明的用于实现网络自愈的系统的一个实施例的示意图如图8 所示。该网络可以用于智能家居系统中,能够实现智能家居网络联动, 例如,房门打开时,会激活摄像监控,灯光和室温会自动调节,背景 音乐会自动打开等。
在一个实施例中,网络中包括控制节点801,多个功能性节点804, 以及用于实现网络自愈的节点,其中,用于实现网络自愈的节点包括 备份者节点802,以及非备份者状态的节点803。控制节点801能够在 接收到来自节点804的激活信息后,向备份者节点发送联动请求,从 备份者节点802获得联动逻辑信息,从而控制各个节点804实现联动。
备份者节点802以预定周期广播备份者声明,备份者声明中包括 备份版本号信息。当备份者节点离线或故障时,非备份者状态的节点 803不能在第一预定时间内收到备份者声明,则可以采用上文中提到 的任一种用于实现网络自愈的方法申请成为新备份者节点,从而实现 网络自愈。
在这样的系统中,若处于非备份者状态的节点未能收到备份者声 明,则判断备份者节点离线,申请成为备份者节点,从而能够维持网 络中存在备份者节点,实现系统的自愈,提高网络的稳定性。
在一个实施例中,本发明用于实现网络自愈的系统中用于实现网 络自愈的节点可以是上文中提到的任一种,系统中可以有多个用于实 现网络自愈的节点,可以有多个节点处于备份者状态,也可以有多个 节点处于非备份者状态。
这样的系统更加灵活稳定,在提高系统性能的同时,提高了系统 的健壮性。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而 非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属 领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进 行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案 的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
本文发布于:2023-04-14 06:49:46,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/3/86470.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |