用于冗余进程网络中的故障检测和角色选择的方法技术

技术编号:31996127 阅读:15 留言:0更新日期:2022-01-22 18:08
本发明专利技术总体涉及一种用于对冗余进程网络中的进程(302、304、306、308、309)进行故障检测和角色选择的方法,该冗余进程网络包括主进程,该主进程被配置为以预定的间隔向网络的进程传输心跳信号。程传输心跳信号。程传输心跳信号。

【技术实现步骤摘要】
用于冗余进程网络中的故障检测和角色选择的方法


[0001]本专利技术总体涉及一种用于对冗余进程网络中的进程进行故障检测和角色选择的方法、用于执行冗余进程网络中的进程的控制单元以及对应的计算机程序产品。

技术介绍

[0002]通常,在用于其中停机成本高昂的应用的自动化系统中实现分布式控制系统(DCS)。这样的应用例如可以在石油工业中、并且涉及石油产品的生产以及从油井中提取油,其中停机时间成本高昂。减少停机时间的一种常用方式是具有多个关键硬件,例如,控制器复制。常用方案是N中取M模式(M out of N pattern),其中N个节点准备接管M个操作节点。
[0003]这些冗余方案通常为二中取一,这意味着如果主节点发生故障,则备份节点准备接管。两个硬件单元之间的通信通常通过满足目的的专用冗余链路来实现。该链路允许使用专用的线进行故障检测,也就是说,如果主设备可能发生故障,则硬件支持可以确保备份检测到该故障。
[0004]然而,对于以网络为中心的下一代控制系统,期望最大限度地减少使用满足目的的专门硬件(诸如用于冗余通信的链路)来实现冗余目的。取而代之的是,要使用通用通信装置,诸如以太网。对于冗余,这允许在多种平台(诸如工业PC、云服务器或边缘设备)中部署和托管冗余控制应用。此外,它针对灵活冗余配置开放,在该灵活冗余配置中,主控制器可以具有N个备份,或计算能力强大的服务器可以充当多个主控制器的备份。
[0005]因而,为了最大限度地减少满足目的的使用,用于冗余目的的专门硬件需要一种故障检测方式并且以有效方式使得备份控制器能够使用这种通用通信装置接管。

技术实现思路

[0006]鉴于现有技术的上述缺点和其他缺点,本专利技术的一个目的是提供一种用于在冗余进程网络中进行故障检测和角色选择的基于消息的方法,其至少部分缓解了现有技术的缺点。
[0007]根据本专利技术的第一方面,提供了一种用于对冗余进程网络中的进程进行故障检测和角色选择的方法,该冗余进程网络包括主进程,该主进程被配置为以预定的间隔向网络的进程传输心跳信号,该方法包括:响应于网络中的监督进程没有在预定的时间间隔内从主进程接收到心跳,通过监督进程向网络中的其他进程传输带有揭示命令的心跳,该揭示命令提示优先级高于监督进程的优先级的进程传输心跳;从比监督进程具有更高优先级的进程接收心跳,其中优先级最高的进程担当主进程的角色;或者如果监督进程没有接收到心跳,则担当作为主进程的角色。
[0008]本专利技术至少部分基于利用心跳进行故障检测和角色选择两者的实现。因此,通常在进程网络中用于指示进程的正常操作的心跳被用于进行故障检测和角色选择,而无需任何其他消息传递。例如,无需专用的请求

响应处置来选择新主进程。
[0009]心跳本身为本领域技术人员所已知,并且经常用于同步计算机系统中的不同部分或用于指示进程的正常操作。心跳是进程之间传输的周期性信号。
[0010]进程之间的通信(即,用于传输心跳的通信)可以使用硬连线通信(诸如以太网)或无线解决方案(诸如Wifi、蓝牙、3G

5G等)来执行。进一步地,进程可以在同一控制单元上操作,即,在同一处理器上操作,其中软件装置和协议用于允许进程相互通信。应当理解,软件模块之间的心跳传输本身已知,并且本领域技术人员可以预见实现这种传输的各种方式。
[0011]故障检测基于以特定间隔从受监督进程(即,主进程)传输的心跳。监督进程假设应当在某个间隔内观察到心跳。如果在该间隔内未接收到心跳消息,则假设受监督进程已经发生故障。
[0012]角色选择基于故障检测所交换的心跳,即,无需附加消息。因此,专利技术人认识到用于进行故障检测的心跳还可以借助于心跳中的消息字段用于进行角色选择。
[0013]本文中的角色是某个进程在网络中所具有的角色,其中作为主进程就是一个这种角色。依据例如给定进程的优先级水平,主进程是负责给定任务的进程,并且其他进程是冗余进程,这些冗余进程可以接替主进程。
[0014]所传输的心跳可以是多播心跳。换言之,心跳以一对多的方式发送到网络中的所有进程。
[0015]冗余进程网络可以是以网络为中心的进程控制系统。
[0016]“进程”应当以广义方式进行解释,并且通常包括计算机程序和该计算机程序所提供的活动或服务。因此,进程可以是指计算机程序产品的实例化和执行。因此,进程需要CPU时间和存储器来执行计算机程序产品。
[0017]进程可以托管在控制器、计算机设备(例如,PC)或所谓的边缘设备上。通常,进程可以由任何设备或模块驱动,该设备或模块能够驱动对计算机程序产品的执行。
[0018]例如,每个进程可以被认为是网络中的节点。每个节点可以包括处理器和计算机程序产品,该计算机程序产品存储指令,这些指令当由处理器执行时,使得节点运行指令以提供活动或服务。
[0019]在可能的实现方式中,几个进程由同一控制器或处理器执行。因此,控制器/处理器托管几个节点,每个节点包括计算机程序产品,该计算机程序产品存储指令,这些指令当由处理器执行时使得节点运行指令以提供活动或服务。
[0020]在实施例中,该方法可以包括:通过网络中的至少一个其他进程,基于至少一个其他进程的优先级次序来担当次要角色。因此,由于所有进程都获知进程的优先级水平,所以网络中除主进程之外的其他进程可以基于它们的优先级次序担当其他角色。这提供了在选择主进程的同时对附加角色进行分配。
[0021]例如,次要角色可以是备份角色,该备份角色指示进程有望担当主进程的角色。一个或多个进程可以担当备份进程的角色。进程维持备份角色并且继续利用来自主进程的状态进行更新,即,它从主进程接收心跳,以使作为备份进程的进程准备接替主进程。
[0022]在实施例中,响应于揭示命令而传输的心跳可以至少通过进程子集中的进程中的每个进程而被接收,由此向接收到响应心跳的所有进程通知新主进程。因而,由于多播心跳,所以新主进程的信息有效传输到所有进程。心跳消息可以例如包括消息字段,消息字段具有指示多播心跳的进程的优先级的信息。因而,由于连续地多播心跳,所以连续地向网络
中的进程通知网络中的进程的优先级水平。
[0023]在实施例中,进程可传输的心跳可以包括消息字段,该消息字段至少包括指示进程的优先级的字段、揭示命令字段和平局打破指示符。平局打破指示符可以是区分开进程与其他进程的值或串。如果两个进程具有相同的优先级,则规则或算法对平局打破指示符进行评估,以使进程中的一个进程优先于另一进程。
[0024]因此,如果两个进程被认为具有相同的最高优先级,则主进程基于与这两个进程相关联的平局打破指示符来确定。
[0025]优选地,子集中的进程至少可以能够由单独物理控制单元执行。
[0026]还应当设想,进程中的至少两个进程可以能够在同一物理控制单元上执行。
[0027]优选地,传输心跳包括:多播心跳,使得所有进程都接收心跳。
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于对冗余进程网络中的进程(302、304、306、308、309)进行故障检测和角色选择的方法,所述冗余进程网络包括主进程(304),所述主进程(304)被配置为以预定的间隔至少向所述网络的进程的子集传输心跳信号(310),所述方法包括:响应于所述网络中的监督进程(302)没有在预定的时间间隔内从所述主进程(304)接收到心跳,通过所述监督进程至少向所述网络中的进程的所述子集传输(S102)带有揭示命令的心跳(310),所述揭示命令提示优先级高于所述监督进程的优先级的进程传输心跳;通过所述监督进程从比所述监督进程具有更高优先级的进程接收(S104)心跳,其中优先级最高的进程担当(S108)主进程的角色,或如果所述监督进程没有接收到心跳,则通过所述监督过程担当(S110)作为主进程的角色。2.根据权利要求1所述的方法,包括:通过所述网络中的至少一个其他进程,基于所述至少一个其他进程的优先级次序来担当次要角色。3.根据权利要求2所述的方法,其中所述次要角色是备份角色,所述备份角色指示进程有望担当主进程的角色。4.根据前述权利要求中任一项所述的方法,其中响应于所述揭示命令而传输的所述心跳至少通过所述子集中的所述进程中的每个进程而被接收,由此向接收到响应心跳的所有进程通知新主进程。5.根据前述权利要求中任一项所述的方法,其中通过所述进程可传输的所述心跳包括消息字段,所述消息字段至少包括指示所述进程的所述优先级的字段、揭示命令字段和平局打破指示符。6.根据前述权利要求中任一项所述的方法,其中如果两个进程被认为具有相同的最高优先级,则基于与所述两个进程相关联的平局打破指示符来确定所述主进程。7.根据前述权利要求中任一项所述的方法,其中所述子集中的所述进程至少能够由单独物理控制单元执行。8.根据前述权利要求中任一项所述的方法,其中所述子集中的所述进程中的至少两个进程能够由同一物理控制单元执行。9.根据前述权利要求中任一项所述的方法,其中传输所述心跳包括:多播所述心跳,使得所有进程都接收所述心跳。10.一种控制单元(302a),被配置为执行监督进程,所述监督进程包括计算机程序产品,所述计算机程序产品存储用于提供活动的指令,所述监督进程是冗余进程网络的一部分,所述冗余进程网络包括主进程,所述主进程被配置为以预定的间隔至少向所述网络中的进程的子集传输心跳信号,所述控制单元包括装置,所述装置用于:响应于所述监督进程没有在预定的时间间隔内从所述主进程接收到心跳,控制所述监督进程以至少向所述网络中的进程的所述子集传输带有揭示命令的心跳,所述揭示命令提示优先级高于所述监督进程的优先级的进程传输心跳;以及从比所述监督进程具有更高优先级的所述进程接收心跳,其中优先级最高的进程担当主进程的角色,或如果所述监督进程没有接收到心跳,则担当作为主进程的角色。
11.一种用于对冗余进程网络中的第一进程进行角色选择的方法,所述冗余进程网络包括主进程,所述主进程被配置为以预定的间隔至少向所述网络的进程的子集传输心跳信号,所述方法包括:响应于通过所述第一进程从所述网络的监...

【专利技术属性】
技术研发人员:比贾内
申请(专利权)人:ABB瑞士股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1