基于消息队列的报警信号处理方法

文档序号:6361212阅读:628来源:国知局
专利名称:基于消息队列的报警信号处理方法
技术领域
本发明涉及计算机网络安全技术,尤其是一种基于消息队列的报警信号处理方法,用于实现安全报警。属于计算机应用技术领域。
背景技术
在安全软件的设计和实现中,报警功能是常见的功能之一,当异常事件发生时,需要对用户进行实时报警。在现有技术中,软件报警方式通常采用邮件报警,操作系统windows收到报警消息,操作系统弹出窗口等技术方案。通常的实现方法是将每种报警方式封装成一个应用程序接口(API),供所需的使用者调用。报警API的执行会花费一定的时间,如果每个调用者都直接执行API,返回时间就会延长,影响调用者程序的实时性;另一方面,不同的调用者如果同时执行API,可能造成同一种方式在系统内部的资源阻塞。这种方法在小型的系统中可以实现其功能,而无法满足大型实时系统的要求,这是因为,一方面,每个报警方式可能会花费一些时间,影响调用者程序处理的实时性;另一方面,不同的调用者直接发送报警,可能造成同一种方式在系统内部的资源阻塞,无法进行同步控制。

发明内容
为克服现有技术的不足,本发明的目的在于提供一种基于消息队列的报警信号处理方法,用于实现通用的安全报警,将计算机安全网络系统内的所有需要报警的事件统一管理起来。
为达到上述目的,本发明的技术方案是这样实现的基于消息队列的报警信号处理方法,至少包括以下步骤步骤1、使用进程或线程有需要报警的事件后,将事件定义为报警消息结点,增加到结点队列中去,并向报警进程或线程发送加入结点的信号;步骤2、报警进程或线程排列报警消息结点,维护报警消息结点队列,同步控制队列的中的结点;步骤3、报警进程或线程从报警结点队列中循环取出一个结点,根据结点记录的报警方式,实时报警,报警后删除该结点。
在上述方法中,步骤1之前还包括报警进程或线程运行时先判断报警队列是否为空,如果为空,等待加入结点的信号,然后从队列中取出结点开始处理的步骤。
步骤3之后还包括报警事件处理完毕挂起报警进程或线程,等待有结点的信号产生,继续处理报警事件的步骤。
在上述方法中,步骤1所说的消息结点队列采用先进先出的指针队列;所说的报警消息结点至少记录有报警事件的时间、来源、内容以及需要采取的报警方式。
步骤2中所说的同步控制是指加入和取出报警结点时对队列加锁,以实现同步控制。
报警方式采用发电子邮件报警、发windows消息报警或发手机短信报警。
与windows消息机制相比,本发明更为简单可靠,不需要操作系统的参与,不需要消息路由和消息循环,只需要消息投递和集中处理,更适合处理系统集中报警这一具体问题,而且适用于一台机器上多个进程或线程的系统,也适用于多台机器上的网络系统;还可以跨平台实现。本发明将每个报警事件定义为一个报警消息结点,在报警机制中维护一个报警消息结点列表,同时为系统中所有需要报警的调用者提供增加报警结点;报警机制采用先进先出的队列方式处理报警消息结点列表,循环从底部取出一个报警消息结点进行处理,根据结点记录的报警方式,进行实际的报警功能实现。不但维护了调用者的实时性,同时对报警事件统一管理,实现了对报警方式的同步控制,又不会造成计算机网络系统的阻塞。


图1是本发明的报警进程或线程处理流程2是本发明的用户进程或线程使用流程图。
具体实施例方式
下面结合附图和本发明的较佳实施例对本发明作进一步详细的说明。
图1是本发明的报警进程或线程处理流程图。首先创建报警队列访问和报警结点同步控制的对象,然后判断报警队列是否为空,如果为空,则等待,直到有报警结点加入的信号,否则在判断报警结点队列是否被锁,如果被锁,则等待,直到有报警队列解锁,否则对报警结点加锁,取出报警结点并解锁,然后按预先指定的方式报警,报警后删除报警结点。报警事件处理完毕挂起报警进程或线程,等待有结点的信号产生,继续处理报警事件。
图2是本发明的用户进程或线程使用流程图。用户进程或线程取得报警进程或线程的指针,需要报警时构造报警结点,然后判断报警结点是否被锁,被锁则等待有报警结点解锁,没有则对报警结点加锁,加入报警结点,然后解锁后,再发送加入报警结点的信号。本发明采用加锁是为了防止同时有其他的线程修改队列,致使数据混乱。这是因为当用户线程需要操作某个队列时,必须先判断该队列是否加锁的标识,如果有锁,说明当前有其他线程正对该队列进行插入或删除等操作,因此此时只能等待;如果没有锁,必须先将锁标识置位,取得操作权,才能进行队列操作,操作完毕将锁标识去掉。这样就可以给其他线程使用队列了。
本发明实现的步骤是步骤1、使用进程或线程有需要报警的事件后,将事件定义为报警消息结点,增加到结点队列中去,并向报警进程或线程发送加入结点的信号;步骤2、报警进程或线程排列报警消息结点,维护报警消息结点队列,同步控制队列的中的结点;步骤3、报警进程或线程从报警结点队列中循环取出一个结点,根据结点记录的报警方式,实时报警,报警后删除该结点。
在计算机报警网络中,首先使用进程或线程要判断有无报警事件发生,如果有事件发生,则将每个报警事件定义为报警消息结点,报警消息结点记录有报警事件的时间、来源、内容以及需要采取的报警方式。
然后报警进程或线程排列报警消息结点,维护报警消息结点队列,同步控制队列中的结点。消息结点指针队列排列报警消息结点,并维护报警消息结点列表队列。使用进程或线程构造一个报警消息结点,将需要报警的信息和报警方式填入,加入到报警消息结点队列中。本发明的消息列表采用先进先出的指针队列形式的数据结构,实现报警的事件的先发生先处理。
之后,根据结点记录的报警方式,实时处理报警消息结点队列。报警进程或线程从报警消息结点队列底部中取出一个报警消息结点,根据结点记录的报警方式,调用相应的报警功能模块,实现报警,实现报警的方式有发电子邮件报警、发windows消息报警,或者发手机短信报警。
在处理完毕一个报警事件后,继续从报警消息结点队列中取出报警消息结点进行处理,再判断报警事件是否处理完毕,处理完则结束,程序退出,否则继续处理报警事件。
在本发明中,使用进程或线程为系统中每个需要报警的事件构造一个报警结点,在报警结点中记录报警信息和报警方式,并调用队列形式的数据结构等报警机制的添加方法,将这个结点添加到报警结点队列中,依次从报警结点队列底部取出一个报警结点,根据结点记录的报警方式,调用相应的报警功能模块进行报警。
由图1、图2可知,本发明将报警事件封装为报警消息,由单独的报警机制来维护报警消息队列,并依次循环处理。将报警事件与报警实现分开,为大型系统提供了通用的报警功能机制,可以供系统中有需求者任意调用。此外,本发明还可以进一步扩展报警功能模块。
在上述条件下,需要进行报警的使用进程或线程只要构造报警消息,将消息添加到报警消息队列,就可以进行下一步处理,不会影响其自身的实时性。同时,单独的报警机制依次循环取出报警消息,根据消息记录的报警方式依次进行报警实现的具体动作,不会造成系统中同时进行某一项报警方式的操作而导致阻塞、资源占用等情况的发生,因此是一种适合在大型安全软件系统中安全的通用报警机制。
最后所应说明的是以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.基于消息队列的报警信号处理方法,其特征在于该方法至少包括以下步骤步骤1、使用进程或线程有需要报警的事件后,将事件定义为报警消息结点,增加到结点队列中去,并向报警进程或线程发送加入结点的信号;步骤2、报警进程或线程排列报警消息结点,维护报警消息结点队列,同步控制队列中的结点;步骤3、报警进程或线程从报警结点队列中循环取出一个结点,根据结点记录的报警方式,实时报警,报警后删除该结点。
2.根据权利要求1所述的基于消息队列的报警信号处理方法,其特征在于步骤1之前还包括报警进程或线程运行时先判断报警队列是否为空,如果为空,等待加入结点的信号,然后从队列中取出结点开始处理的步骤。
3.根据权利要求1所述的基于消息队列的报警信号处理方法,其特征在于步骤3之后还包括报警事件处理完毕挂起报警进程或线程,等待有结点的信号产生,继续处理报警事件的步骤。
4.根据权利要求1所述的基于消息队列的报警信号处理方法,其特征在于步骤1所说的消息结点队列采用先进先出的指针队列。
5.根据权利要求1所述的基于消息队列的报警信号处理方法,其特征在于步骤2中所说的同步控制是指加入和取出报警结点时通过将锁标识置位对队列加锁,以实现同步控制。
6.根据权利要求1所述的基于消息队列的报警信号处理方法,其特征在于步骤1所说的报警消息结点至少记录有报警事件的时间、来源、内容,以及需要采取的报警方式。
7.根据权利要求6所述的基于消息队列的报警信号处理方法,其特征在于报警方式是指发电子邮件报警。
8.根据权利要求6所述的基于消息队列的报警信号处理方法,其特征在于报警方式是指发windows消息报警。
9.根据权利要求6所述的基于消息队列的报警信号处理方法,其特征在于报警方式是指发手机短信报警。
全文摘要
本发明是一种基于消息队列的报警信号处理方法,至少包括使用进程或线程有需要报警的事件后,将事件定义为报警消息结点,增加到结点队列中去,并向报警进程或线程发送加入结点的信号;报警进程或线程排列报警消息结点,维护报警消息结点队列,同步控制队列的中的结点;报警进程或线程从报警结点队列中循环取出一个结点,根据结点记录的报警方式,实时报警,报警后删除该结点的步骤。该方法维护了调用者的实时性,同时对报警事件进行统一管理,实现了对报警方式的同步控制,又不会造成计算机CPU处理或网络系统的阻塞。
文档编号G06F9/44GK1549116SQ0313126
公开日2004年11月24日 申请日期2003年5月23日 优先权日2003年5月23日
发明者黄琛, 顾正华, 黄 琛 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1