具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
在IP监控系统中,告警接收终端往往都是一些具有高性能的终端,为了避免中心服务器由于复制、分发大量告警信息而带来的缺陷,本实施例对告警接收终端和EC的特点进行创造性分析,得出可以利用高性能的告警接收终端代替中心服务器参与告警信息的复制分发,具体可参见图1所示的流程。
参见图2,图2为本发明实施例提供的基本流程图。该方法应用于包含中心服务器、告警接收终端和编码器EC的视频监控系统中,如图2所示,该流程可包括以下步骤:
步骤201,将告警接收终端划分为至少一个告警组。
告警接收终端用于接收EC发送的告警消息,其中,告警消息是通过EC通道到达告警接收终端的,因此,本实施例中,步骤201可依据告警接收终端要接收的告警消息的类型和/或EC通道标识划分告警组,具体可参见步骤302至步骤306,这里不再详述。
步骤202,每一告警组的告警接收终端选举出该告警组中用于接收告警信息的指定告警接收终端。
步骤202中的选举可参见步骤311的描述。
步骤203,被选举出的指定告警接收终端接收到EC发送的告警消息时,将接收的告警消息复制分发给与自身处于同一告警组的其他告警接收终端。
至此,通过上述步骤,实现了本发明实施例提供的基本流程。
可以看出,本实施例中,并非现有技术中由中心服务器复制分发告警消息给告警接收终端,而是由选举出的指定告警接收终端完成复制分发告警消息的操作,即,告警消息不再经过中心服务器,相比于现有技术,大大减少中心服务器复制分发告警消息的压力。
以上对本发明实施例提供的方法进行了简单描述,下面结合具体实施例对本发明提供的方法进行详述。
参见图3,图3为本发明实施例提供的详细流程图。如图3所示,该流程可包括以下步骤:
步骤301,告警接收终端A在预设注册时间到达时,向中心服务器递交告警接收申请。
这里,本步骤301中告警接收终端A递交的告警接收申请携带了标识信息,其中,该标识信息包含告警接收终端A的IP地址、要接收的告警消息的类型、告警接收终端A感兴趣的EC(即告警接收终端A希望经由该EC发送自身要接收的告警消息)的地址和感兴趣的EC通道标识(即告警接收终端A希望经由该EC通道标识对应的EC通道传送自身要接收的告警消息)等。
步骤302,中心服务器记录接收的告警接收申请携带的标识信息,根据该标识信息判断当前是否存在该告警接收终端A所属的告警组,如果否,执行步骤303;否则,执行步骤304。
本发明实施例中可依据告警消息类型和EC通道标识中的至少一个作为划分告警组的依据,即告警接收终端A所属的告警组具体可与该告警接收终端A要接收的告警消息的类型和/或该告警接收终端感兴趣的EC通道标识对应。
这里,如果依据告警消息类型或EC通道标识划分告警组,则本步骤302中的判断具体为:判断当前是否存在与该接收的告警接收申请携带的告警消息类型或者EC通道标识对应的告警组;采用这种依据告警消息类型或EC通道标识划分告警组的方式,能够比较粗略地将各个告警接收终端分组。优选地,本发明实施例也可依据EC通道标识和告警消息类型两者结合划分告警组,如此,本步骤302中的判断具体为:判断当前是否存在与该接收的告警接收申请携带的EC通道标识和告警消息类型对应的告警组;这种依据EC通道标识和告警消息类型两者结合划分告警组的方式,能够比较精细地将各个告警接收终端分组。为便于描述,本发明实施例以依据EC通道标识划分告警组为例。
步骤303,创建一个告警组,并将新创建的告警组信息告知给告警组内的所有告警接收终端和该新创建的告警组对应的EC。之后,执行步骤307。
这里,该新创建的告警组对应的EC具体为用于发送告警消息给该新创建的告警组内的告警接收终端的EC。由于告警接收终端递交的告警接收申请中携带了该告警接收终端的IP地址和EC地址,其中,该EC地址为用于发送告警消息给该告警接收终端的EC的地址,因此,执行到本步骤303时,根据告警接收申请携带的IP地址和EC地址,很容易将新创建的告警组信息告知给该新创建的告警组内的告警接收终端和该新创建的告警组对应的EC。
需要说明的是,本步骤303中新创建的告警组信息具体可为该新创建的告警组中的告警接收终端递交的告警接收申请所携带的标识信息。
至此,执行完本步骤303时,该新创建的告警组内的告警接收终端和该新创建的告警组对应的EC都可获知该新创建的告警组中的告警接收终端递交的告警接收申请所携带的标识信息。
步骤304,将告警接收终端A加入到已存在的告警组(记为告警组A)中。
步骤305,将告警接收终端A递交的告警接收申请所携带的标识信息携带在第一告警组更新消息中发送给告警组A中除告警接收终端A之外的其他告警接收终端和对应的EC。
这里,本步骤305中对应的EC为用于发送告警消息给告警组A中除告警接收终端A之外的其他告警接收终端的EC。在步骤305之前,中心服务器已接收到告警组A中其他告警接收终端递交的告警接收申请,因此,执行到本步骤305时,中心服务器可根据之前已接收的告警组A中其他告警接收终端递交告警接收申请时携带的IP地址和EC地址很容易将告警接收终端A递交的告警接收申请所携带的标识信息携带在第一告警组更新消息中发送。
执行完本步骤305时,告警组A中的其他告警接收终端和对应的EC都能获知告警组A当前新增加了告警接收终端A。
步骤306,将已记录的告警组A中所有告警接收终端递交的告警接收申请所携带的标识信息携带在第二告警组更新消息中发送给告警接收终端A和用于发送告警消息给该告警接收终端A的EC。
执行完本步骤306时,告警接收终端A可以获知告警组A包含的所有告警接收终端递交告警接收申请时所携带的标识信息。
需要说明的是,步骤305和步骤306并无固定的时间先后顺序,其可同时进行,其中,步骤305和步骤306之所以发送告警组更新消息(第一告警组更新消息或者第二告警组更新消息)给EC,主要是为了便于后续EC选举指定告警接收终端,在发送告警消息时知道发送给谁,具体见下述步骤311至步骤312。
至此,通过上述步骤302至步骤306实现了本发明实施例提供的将告警接收终端划分为至少一个告警组的具体操作。通常,一个告警组中包含多个告警接收终端。如果本实施例依据EC通道标识划分告警组为例,则通过上述步骤302至步骤306,告警组中告警接收终端和该告警组对应的EC接收到的信息(记为告警组信息)如下表1所示:
表1
从表1可以看出,告警组信息中,EC地址、EC通道标识、告警消息类型、告警接收终端的IP地址之间具有一定的对应关系。
本领域技术人员知道,通常,一个告警接收终端会希望通过多个EC通道标识接收告警消息,即在递交告警接收申请时,会携带多个EC通道标识,如此,如果本实施例依据EC通道标识划分告警组为例,则就会存在一个告警接收终端同时属于多个告警组的情况,本发明实施例允许该情况发生,并且针对这种情况,具体按照一个单独的告警组来处理。
需要说明的是,通过上述步骤302至步骤306创建的告警组并非固定不变,优选地,若有一个以上的告警接收终端想退出其已加入的所有告警组,比如,表1中IP地址为100.100.100.12告警接收终端B想退出其已加入的所有告警组比如告警组1,则该告警接收终端B可发送退出告警组请求给中心服务器,中心服务器接收到退出告警组请求后,删除已记录的该告警接收终端B递交告警接收申请时所携带的标识信息,之后,公布告警接收终端B退出告警组1的通知给告警组1中除告警接收终端B之外的告警接收终端(比如表1中IP地址分别为100.100.100.11和100.100.100.13的告警接收终端)和对应的EC(比如表1中地址为20.20.20.20的EC),如此,告警组B中除告警接收终端B之外的告警接收终端和对应的EC接收到通知后,从已接收的告警组1的信息中删除告警接收终端B递交告警接收申请时携带的标识信息,即表1更新为下述表2:
表2
综上可以看出,本实施例中的告警组由中心服务器动态维护,本领域技术人员知道,告警组通常来说比较稳定,因此,中心服务器动态维护告警组的压力也不是很大。
步骤307,每一告警组中的告警接收终端(以告警接收终端D为例)判断当前负载是否超过预设阈值,如果是,执行步骤308;否则,执行步骤311。
这里,步骤307中的判断具体可为:判断当前CPU的利用率是否超过预设门限,如果是,则确定当前负载超过预设阈值;否则,确定当前负载不超过预设阈值。
步骤308;告警接收终端D发送过载消息给中心服务器。
这里,过载消息用于标识拒绝参与指定告警接收终端的选举。
本步骤308是在步骤307判断出当前负载超过预设阈值时执行的,考虑到本发明实施例的应用,优选地,本实施例也可不执行步骤307;而是直接在检测出由于网络原因自身无法向其他告警接收终端分发告警消息时执行步骤308,因此,可以看出,图3所示的只是一种举例,并非限定本发明实施例的应用。
步骤309,中心服务器接收到过载消息时,将告警接收终端D不参与指定告警接收终端选举的信息通知给告警接收终端D当前所处的所有告警组中的告警接收终端和对应的EC。
这里,步骤309中对应的EC具体为针对告警接收终端D当前所处的每一告警组,用于发送告警消息给该告警组中告警接收终端的EC;
步骤310,告警接收终端和EC接收到告警接收终端D不参与指定告警接收终端选举的信息时,在已接收的告警接收终端D所处的告警组信息中标识告警接收终端D为过载。
如此,执行到步骤310时,上述表1可更新为下述表3:
表3
步骤311,在预设的第一时间到达时,针对每一告警组,该告警组中告警接收终端按照预设的选举方式选举出该告警组中用于接收告警信息的指定告警接收终端。
这里,预设的第一时间具体可为用于接收告警消息的各个告警接收终端都已递交了告警接收申请的时间,或者为本发明实施例根据实际情况设置的选举时间,这里不再限定。
至于告警接收终端如何按照预设的选举方式选举指定告警接收终端,具体在步骤312中描述。
步骤312,在预设的第二时间到达时,针对每一告警组,接收到该告警组的信息的EC按照所述预设的选举方式选举出该告警组中用于接收告警信息的指定告警接收终端。
这里,预设的第二时间可与第一时间相同,也可不同。
本步骤312中,EC选举指定告警接收终端的方式与步骤311相同。需要说明的是,本实施例之所以使告警组中的告警接收终端和EC按照相同的选举方式选举出指定告警接收终端,主要是为了使EC选举出的一告警组的指定告警接收终端和该告警组的告警接收终端选举出的该告警组的指定告警接收终端相同,以避免告警接收终端和EC之间由于需要交互选举出的指定告警接收终端的消息而导致压力增加,进而大大提高告警接收终端和EC的效率。
其中,预设的选举方式具体实现时可为哈希算法或者其他预先根据实际情况设定的规则等,以哈希算法为例,则步骤311或者步骤312中的选举操作具体为:将该告警组中除具有过载标识的告警接收终端的IP地址之外的每一告警接收终端的IP地址分别输入到哈希算法中,得到哈希值,确定能够使哈希值取值最小或者最大的IP地址对应的告警接收终端为指定告警接收终端。比如,以上述表3为例,在告警组1中,由于IP地址为100.100.100.11的告警接收终端具有过载标识,IP地址为100.100.100.12的告警接收终端和IP地址为100.100.100.13的告警接收终端不具有过载标识,因此,这里,将IP地址100.100.100.12和100.100.100.13分别输入到哈希算法中,分别得到哈希值1和哈希值2,选择使哈希值最小或者最大的IP地址,以最小为例,比如哈希值2最小,则将具有IP地址100.100.100.13的告警接收终端确定为告警组1中的指定告警接收终端。
优选地,由于一个告警接收终端可同时处于多个告警组中,为了避免不同告警组中选举出的指定告警接收终端为同一个而导致该指定告警接收终端的压力增加,如果本实施例中各个告警组的信息如上表3所示,则本发明实施例中可将除具有过载标识的告警接收终端的IP地址之外的每一告警接收终端的IP地址、以及与该IP地址对应的EC地址、EC通道号、告警消息类型码中的至少一个同时输入到哈希算法中,确定能够使哈希值取值最小或者最大的IP地址对应的告警接收终端为指定告警接收终端,这样,能够为告警组中告警接收终端要接收的每一告警消息类型选举出指定告警接收终端,大大分散了告警压力。以IP地址、以及与该IP地址对应的EC地址、EC通道号、告警消息类型码同时输入到哈希算法中为例,则如上述表2所示,在告警组1中,由于IP地址为100.100.100.11的告警接收终端具有过载标识,IP地址为100.100.100.12的告警接收终端和IP地址为100.100.100.13的告警接收终端不具有过载标识,因此,这里,将IP地址100.100.100.12,以及对应的类型2、EC通道标识和EC地址输入到哈希算法,得到哈希值1,将IP地址100.100.100.12,以及对应的类型3、EC通道标识和EC地址输入到哈希算法,得到哈希值2,将IP地址100.100.100.13,以及对应的类型3、EC通道标识和EC地址输入到哈希算法,得到哈希值3,将IP地址100.100.100.13,以及对应的类型4、EC通道标识和EC地址输入到哈希算法,得到哈希值4,选择使哈希值最小或者最大的IP地址,以最小为例,比如哈希值4最小,则确定具有IP地址100.100.100.13的告警接收终端为告警组1中的指定告警接收终端。
需要说明的是,如果在上述计算的哈希值中出现使哈希值最小或者最大的IP地址的个数大于1,则本发明实施例可从这些IP地址中随机选择出一个;或者从这些IP地址中选择出最大的IP地址,确定具有该选择出的IP地址的告警接收终端为指定告警接收终端。
至此,通过上述步骤311和步骤312,各个EC和告警接收终端可以独立根据其所接收的告警组信息选择出该告警组的指定告警接收终端。
需要说明的是,通过上述步骤311和步骤312选择出的指定告警接收终端并非固定不变的,当该指定告警接收终端不想执行告警消息分发的工作、或者当该指定告警接收终端的负载压力比较大、或者当该指定告警接收终端由于网络原因自身无法向其他告警接收终端分发告警消息,则可发送过载消息给中心服务器;之后,返回执行步骤309;以实现指定告警接收终端的动态调整。
步骤313,针对每一EC,当该EC发送告警消息时,直接将该告警消息发送给自身选举出的对应的指定告警接收终端。
这里,由于EC可独立选择出指定告警接收终端,因此,其不需要按照现有技术那样需要将告警消息发送给中心服务器。
这里,如果当前的网络支持组播,则本步骤313中EC可以使用对应的组播地址发送告警消息,其中,组播地址为中心服务器在维护告警组时为告警组分配的组播地址。
步骤314,指定告警接收终端接收到告警消息时,将该告警消息复制分发给与自身处于同一告警组中的其他告警接收终端。
这里,步骤314中,指定告警接收终端分发告警消息时,可以将告警消息中的源地址由原来EC的地址改成自己的IP地址,也可以不作更改,这取决于网络的部署;如果在组网时,配置了URPF功能,则在URPF功能当前被使能的情况在,需要将源地址修改为自己的IP地址,之后,转发修改了源地址的告警消息。当然,如果在组网时,没有配置URPF功能;或者,即使配置了URPF功能,但当前并未使能该URPF功能,则可以不修改源地址。
如此,通过上述步骤314,可以实现其他告警接收终端接收到告警消息。优选地,为保证告警接收终端的安全性,其他告警接收终端接收到告警消息时,判断当前是否使能了URPF功能,如果是,则判断告警消息的源地址是否为自身选举出的告警接收终端的IP地址;如果是,则接收告警接收消息;否则,拒绝接收告警消息;当然,如果当前未使能URPF功能,则判断告警消息的源地址是否为自身记录的EC地址;如果是,则接收告警消息;否则,拒绝接收告警接收消息。
至此,通过上述步骤,实现了本发明实施例提供的告警消息的处理流程。
以上对本发明实施例提供的方法进行了描述,下面结合具体实施例对本发明提供的系统和设备进行描述。
参见图4,图4为本发明实施例提供的告警消息的处理系统结构图,如图4所示,该系统可包括:中心服务器401、1个以上告警接收终端402和1个以上EC403;
其中,中心服务器401用于将告警接收终端划分为至少一个告警组;每一告警组中包含至少1个告警接收终端;
所述EC用于发送告警消息;
每一告警组的告警接收终端选举出该告警组中用于接收告警消息的指定告警接收终端;
被选举出的指定告警接收终端接收到EC发送的告警消息时,将接收的告警消息复制分发给与自身处于同一告警组的其他告警接收终端。
优选地,本实施例中,每一告警组存在对应的EC,该EC用于给对应的告警组的告警接收终端发送告警消息;
如图4所示,中心服务器401可包括划分单元4011和发送单元4012;
其中,划分单元4011用于对当前存在的告警接收终端分组,得到一个以上的告警组;
发送单元4012用于将划分的每一告警组的信息发送给该告警组中的告警接收终端和该告警组对应的EC;
如此,每一告警组的告警接收终端在第一预设时间到达时,根据中心服务器发送的该告警组的信息并按照预设的选举方式选举出用于接收告警消息的指定告警接收终端;
每一告警组对应的EC在第二预设时间到达时,所述第二预设时间与所述第一预设时间相同或者不同;根据中心服务器发送的该告警组的信息并按照所述预设的选举方式选举出用于接收告警消息的指定告警接收终端,以使选举出的该告警组的指定告警接收终端和该告警组的告警接收终端选举出的该告警组的指定告警接收终端相同;当发送告警消息时,直接将该告警消息发送给自身选举出的指定告警接收终端。可以看出,本发明实施例中,每一告警组对应的EC和该告警组中的告警接收终端选举指定告警接收终端时是采用相同的选举方式,这能够保证每一告警组对应的EC和该告警组中的告警接收终端选举出相同的指定告警接收终端,如此,当EC发送告警消息时,能够直接发送告警消息给自身选举出的指定告警接收终端,进而实现后续该指定告警接收终端接收的告警消息复制分发给与自身处于同一告警组的其他告警接收终端。
其中,划分单元划分告警组时,是根据接收到告警接收终端递交的告警接收申请执行的,如图4所示,划分单元4011可包括:
告警组判断模块4013,用于接收到告警接收终端递交的告警接收申请时,确定接收的告警接收申请所携带的标识信息,所述标识信息包括:递交该告警接收申请的告警接收终端希望接收的告警消息的类型和该告警消息经由的EC通道标识;判断当前是否存在与该确定的告警消息类型和/或EC通道标识对应的告警组;
第一告警组确定模块4014,用于在告警组判断模块4012的判断结果为是时,将该告警接收终端加入到已存在的所述告警组中;
第二告警组确定模块4015,用于在告警组判断模块4012的判断结果为否时,创建包含该告警接收终端的告警组。
上述是对本发明实施例提供的系统进行了描述,为便于实现本发明实施例,下面对本发明实施例提供的设备进行描述。
参见图5,图5为本发明实施例提供的告警接收终端的结构示意图。该告警接收终端处于由中心服务器划分的至少一个告警组中,如图5所示,该告警接收终端可包括:选举单元501和分发单元502;
其中;选举单元501用于选举其处于的告警组中用于接收告警消息的指定告警接收终端;
分发单元502用于在选举单元501选举出的指定告警接收终端为该告警接收终端时,如果接收到EC发送的告警消息,则将接收的告警消息复制分发给与自身处于同一告警组的其他告警接收终端。
优选地,如图5所示,选举单元501可包括:接收模块5011、计算模块5012和确定模块5013;
其中,接收模块5011用于接收中心服务器发送的告警组的信息;所述告警组的信息包含该告警组中告警接收终端的IP地址、告警接收终端要接收的告警消息的类型、告警接收终端要接收的告警消息所经由的EC的地址和EC通道标识;
计算模块5012,针对接收的每一告警组的信息,将该告警组的信息包含的告警接收终端的IP地址、或者将该告警接收终端的IP地址与该告警组的信息包含的对应的告警消息的类型、EC地址和EC通道标识中的至少一个结合,输入到预设的哈希算法中,得到哈希值;
确定模块5013用于确定使哈希值最小或者最大的IP地址,如果确定出的IP地址的个数大于1,则从确定的IP地址中选择出1个IP地址,确定具有该选择出的IP地址的告警接收终端为该告警组中的指定告警接收终端。
为实现分发单元502将接收的告警消息进行分发,如图5所示,本发明实施例提供了分发单元502的具体结构,可包括:
判断模块5021,用于判断当前是否使能了预先配置的URPF功能,
分发模块5022,用于在判断模块5021的判断结果为是时,将当前接收的告警消息的源地址修改为自身的IP地址;之后,将修改了源地址的告警消息复制分发给与自身处于同一告警组的其他告警接收终端;在判断模块5021的判断结果为否时,直接将接收的告警消息复制分发给与自身处于同一告警组的其他告警接收终端。
由以上技术方案可以看出,本发明中,并非与现有技术一样,由中心服务器复制分发告警消息给告警接收终端,而是由选择出的指定告警接收终端完成复制分发告警消息的操作,相比于现有技术,大大减少中心服务器复制分发告警消息的压力;
进一步地,本发明中,由于由选择出的指定告警接收终端完成复制分发告警消息的操作,相对而言,EC的工作量依然与现有技术一样,负责下发告警消息,即本发明没有增加EC的工作压力。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。