基于时间切片进行事件统计的方法及装置的制作方法

文档序号:7721339阅读:117来源:国知局
专利名称:基于时间切片进行事件统计的方法及装置的制作方法
技术领域
本发明涉及网络信息处理领域,更为具体地,涉及基于时间切片进行事件统计的方法及装置。
背景技术
随着网络技术的日益发展,通过网络来传递信息正在成为一种趋势,比如人们通过网络进行网上支付,传送比如机密信息或个人隐私信息的各种信息等。在实际应用中,网络黑客经常利用木马程序非法侵入私人网络空间来窃取私人信息,为了防止这些信息被黑客或他人恶意获取,在网络上通常配备各类安全系统来保证网络安全。在应用时,这些安全系统通常会产生大量的安全报警事件来向用户进行报警。例如,在采用入侵监测系统、漏洞扫描、审计等系统作为安全监测系统时,能够实现对安全构成威胁的任何一个行为进行报警,即生成安全事件。由于目前的安全监测系统种类繁多,并且即使是相同的安全监测系统,不同的生产厂商之间也没有统一的规范,因此当网络中发生攻击时,安全监测系统往往发出大量的重复安全日志,从而使得管理员难以从所接收的安全日志中提取出有价值的信息。事件的统计是辅助管理员分析网络中是否存在风险的一个重要依据在进行分析时,如果服务器可以处理10000/秒的数据包,那么服务器每秒收到不同设备发出的数据包为8000个,则不认为是攻击,而认为可能是当时网络比较繁忙。但是,一旦每秒所接收到的数据包超过10000个,则必须通知管理员,告知网络中可能存在攻击,需要管理员进一步进行排查和处理。然而,这种方法在一些情形下并不适用,比如在典型的DDoS攻击的情形下, DDoS攻击是通过利用合理的服务请求来占用过多的服务资源,从而使服务器无法处理合法用户的指令来实现的。在这种情况下,由于事件数目非常多,仅仅依靠管理员观察来识别 DDoS攻击是不现实的,因此,需要通过一种算法或方法来实现上述事件统计功能,并且该算法或方法要高效且节省存储空间。针对上述,通常采用时间窗的方式来进行事件统计。时间窗的功能是指在统计单位时间内是否存在满足发生频率的事件,这里的单位时间指的就是需要统计的总时间,这个时间一般很长或无限。目前,基于时间窗的事件统计主要包括以下两种方式基于时间的事件统计方法和基于数量的事件统计方法。基于时间的事件统计方法是一种淘汰算法,在该方法中,淘汰已经超过时间范围的事件。例如,如果要统计1小时内满足3秒10个的事件,在该方法下,则只需要保存从当前开始到3秒钟前的所有事件,而在3秒钟之前的事件都删除。然而,这种方法的缺点是3 秒钟内的事件个数不可控,从而可能会造成存储时的内存溢出。此外,在这种方法中,由于需要频繁地进行事件保存和事件删除,从而需要大量地创建和销毁存储空间,由此造成效率低下。此外,在要统计的事件数量过多时,遍历的性能也较低。基于数量的事件统计方法也是一种淘汰算法,在该方法中,只保存要统计的最大数量的事件,对于超出该最大数量的事件进行删除。例如,如果统计1小时内满足3秒10个的事件,在该方法下,则只需要保存最新的10个事件,并判断这10个事件的最大时间和最小时间差是否在3秒内。如果在3秒之内,则进行统计,否则不进行统计。在这种方法中, 虽然事件数量可控,但是如果最大数量很大时,要创建和销毁的存储空间依然非常大,尤其在数据量多的时候,甚至比基于时间的事件统计方法要销毁的频率还高,从而效率低下。

发明内容
鉴于上述,本发明提供了一种基于时间切片的事件统计方法和装置,在该方法中, 创建循环时间窗并将时间窗口分为多个时间切片,基于当前要统计的事件的发生时间和各时间切片中已记录的事件发生时间,对各时间切片进行存储处理,从而完成事件统计。利用该方法,可以仅仅需要一次性地创建存储开销,并且在创建后循环使用,而不需要频繁进行创建和销毁,由此可以节省存储开销,同时大大提高统计效率,加快处理速度。根据本发明的一个方面,提供了一种基于具有多个时间切片的循环时间窗进行事件统计的方法,包括一种基于具有多个时间切片的循环时间窗进行事件统计的方法,包括在预定时间段内,从外部获取事件并放入到事件队列中,其中,所述事件至少包含事件数量信息和事件发生时间信息;按照所述事件队列中的事件的先后顺序,从所述事件队列中逐个取出事件;针对每个从所述事件队列中取出的事件,遍历所述循环时间窗中的头指针指向的时间切片到尾指针指向的时间切片,如果当前取出的事件的事件发生时间与各时间切片中的任一时间切片的时间之差大于或等于所述循环时间窗大小,则清空该时间切片,同时,如果头指针和尾指针不指向同一个时间切片,则将头指针指向至该时间切片的下一时间切片,否则保持指针位置不变,其中,所述时间切片至少包括时间信息和数量信息, 所述时间切片的时间是在该时间切片中统计的第一个事件的事件发生时间,所述时间切片的数量是在该时间切片中统计的事件的数量,所述头指针指向的时间切片是指第一个统计有事件的时间切片,所述尾指针指向的时间切片是指最后一个统计有事件的时间切片;以及计算该当前取出的事件的事件发生时间和经过遍历处理后的各时间切片中的由所述循环时间窗的尾指针指向的时间切片的时间之间的时间差;在所计算出的时间差不大于该时间切片的大小时,将该当前取出的事件统计在由所述循环时间窗的尾指针指向的时间切片中并将该当前取出的事件的数量与该时间切片的数量合并作为该时间切片的数量信息,以及在所计算出的时间差大于该时间切片的大小时,将该当前取出的事件统计在由所述循环时间窗的尾指针指向的下一时间切片中并将该当前取出的事件的事件数量信息和事件发生时间信息作为该下一时间切片的数量信息和时间信息,同时将尾指针移动到指向该下一时间切片。此外,在一个或多个示例中,所述具有多个时间切片的循环时间窗可以被预先创建。此外,在一个或多个示例中,在从外部获取事件之前,所述方法还可以包括创建具有多个时间切片的循环时间窗。此外,在一个或多个示例中,所述多个时间切片的大小可以相同或不同。此外,在一个或多个示例中,所述方法还可以包括当该时间窗中的统计结果满足预定事件发生频率时,记录用于指示满足预定事件发生频率的状态信息并清空该时间窗。此外,在一个或多个示例中,所述方法还可以包括如果在到达最长聚合时间后该时间窗中的统计结果还不满足预定事件发生频率,则删除该时间窗。根据本发明的另一方面,提供了一种基于具有多个时间切片的循环时间窗进行事件统计的事件统计装置,包括事件接收单元,用于在预定时间段内,从外部获取事件并放入到事件队列中,所述事件至少包含事件数量信息和事件发生时间信息;事件取出单元,用于按照所述事件队列中的事件的先后顺序,从所述事件队列中逐个取出事件;遍历单元, 用于针对每个从所述事件队列中取出的事件,遍历所述循环时间窗中的头指针指向的时间切片到尾指针指向的时间切片,如果当前取出的事件的事件发生时间与各时间切片中的任一时间切片的时间之差大于或等于所述循环时间窗大小,则清空该时间切片,同时,如果头指针和尾指针不指向同一个时间切片,则将头指针指向至该时间切片的下一时间切片,否则保持指针位置不变,其中,所述时间切片至少包括时间信息和数量信息,所述时间切片的时间是在该时间切片中统计的第一个事件的事件发生时间,所述时间切片的数量是在该时间切片中统计的事件的数量,所述头指针指向的时间切片是指第一个统计有事件的时间切片,所述尾指针指向的时间切片是指最后一个统计有事件的时间切片;第一计算单元,用于计算所述当前取出的事件的事件发生时间和经过遍历处理后的各时间切片中的由所述循环时间窗的尾指针指向的时间切片的时间之间的时间差,第一比较单元,用于将第一计算单元所计算出的时间差与该时间切片的大小进行比较;统计单元,用于在第一计算单元所计算出的时间差不大于该时间切片的大小时,将该当前取出的事件统计在由所述循环时间窗的尾指针指向的时间切片中,以及在第一计算单元所计算出的时间差大于该时间切片的大小时,将该当前取出的事件统计在由所述循环时间窗的尾指针指向的下一时间切片中; 时间切片信息更新单元,用于在将所述当前取出的事件统计在由所述循环时间窗的尾指针指向的时间切片中时,将该当前取出的事件的数量与该时间切片的数量合并作为该时间切片的数量信息,以及在将所述当前取出的事件统计在由所述循环时间窗的尾指针指向的时间切片的下一时间切片中时,将该事件的事件数量信息和事件发生时间信息作为该下一时间切片的数量信息和时间信息;以及尾指针移动单元,用于在第一计算单元所计算出的时间差大于由所述循环时间窗的尾指针指向的时间切片的大小时,将尾指针移到指向由所述循环时间窗的尾指针指向的时间切片的下一时间切片。此外,在一个或多个示例中,所述遍历单元还可以包括第二计算单元,用于计算当前取出的事件的事件发生时间与从头指针指向的时间切片到尾指针指向的时间切片中的各时间切片的时间之间的时间差;第二比较单元,用于将第二计算单元所计算出的时间差与该时间窗的大小进行比较;清空单元,用于如果所述第二计算单元计算出的时间差大于该时间窗的大小,则清空该时间切片;以及头指针移动单元,用于在所述清空单元清空时间切片后,如果头指针和尾指针不指向同一个时间切片,则将头指针移到指向该被清空的时间切片的下一时间切片。此外,在一个或多个示例中,所述事件统计装置还可以包括创建单元,用于在从外部获取事件之前,创建具有多个时间切片的循环时间窗。此外,在一个或多个示例中,所述事件统计装置还可以包括记录单元,用于当该时间窗中的统计结果满足预定事件发生频率时,记录用于指示满足预定事件发生频率的状态信息,并且在记录该状态信息后,所述清空单元清空该时间窗。此外,在一个或多个示例中,所述事件统计装置还可以包括删除单元,用于当在到达最长聚合时间后该时间窗中的统计结果还不满足预定事件发生频率时,删除该时间窗。为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。 然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。


根据下述参照附图进行的详细描述,本发明的上述和其他目的、特征和优点将变得更加显而易见。在附图中图1示出了根据本发明实施例的基于具有多个时间切片的循环时间窗进行事件统计的方法的流程图;图2示出了图1中示出的遍历清空处理的流程图;图3示出了根据本发明的具有多个时间切片的循环时间窗的一个示例的示图;图4示出了根据本发明的一个示例,所接收到的事件列表以及循环时间窗的示图;图5A到5C示出了将图4中示出的事件列表中的各个事件统计在时间窗中的示图;和图6示出了根据本发明的实施例的基于具有多个时间切片的循环时间窗进行事件统计的事件统计装置的方框示意图。在所有附图中相同的标号指示相似或相应的特征或功能。
具体实施例方式下面描述本公开的各个方面。应该明白的是,本文的教导可以以多种多样形式具体体现,并且在本文中公开的任何具体结构、功能或两者仅仅是代表性的。基于本文的教导,本领域技术人员应该明白的是,本文所公开的一个方面可以独立于任何其它方面实现, 并且这些方面中的两个或多个方面可以按照各种方式组合。例如,可以使用本文所阐述的任何数目的方面,实现装置或实践方法。另外,可以使用其它结构、功能、或除了本文所阐述的一个或多个方面之外或不是本文所阐述的一个或多个方面的结构和功能,实现这种装置或实践这种方法。此外,本文所描述的任何方面可以包括权利要求的至少一个元素。下面将参照附图描述本发明的各个实施例。图1示出了根据本发明实施例的基于具有多个时间切片的循环时间窗进行事件统计的方法的流程图。在利用具有多个时间切片的循环时间窗进行事件统计时,如图1所示,首先在步骤SllO中,创建具有多个时间切片的循环时间窗,所述循环时间窗具有用于指向时间切片的头指针和尾指针,所述头指针指向的时间切片是指第一个统计有事件的时间切片,所述尾指针指向的时间切片是指最后一个统计有事件的时间切片。这里,时间切片的大小可以任意指定,并且可以根据实际需要调整。时间切片大小的值越小,表示统计精度越高,所需要的存储空间越大。反之,时间切片大小的值越大,表示统计精度越低,所需要的存储空间越小。此外,各个时间切片的大小可以相同或不同。当创建时间窗时,在各个时间切片的大小相同的情况下,可以通过指定限定时间(即,循环时间窗的大小)和时间切片大小两个参数来进行创建。在这种情况下,时间切片个数可以通过上述两个参数计算出,即,时间切片个数=限定时间/时间切片大小,其中限定时间的单位为秒。在上述计算中,如果除不尽, 则需要保留3位小数(为了将秒转换成为毫秒),并向上取整。在各个时间切片的大小不同的情况下,则需要指定各个时间切片的大小和各时间切片的索引。此外,每个时间切片中至少包含时间信息和数量信息。时间切片的时间信息指示该时间切片中统计的第一个事件的事件发生时间。时间切片的数量信息指示在该时间切片中统计的事件的数量。在如上创建具有多个时间切片的循环时间窗后,等待事件队列的到来。在有事件到来后,在步骤S120中,在预定时间段(例如,1小时)内,从外部获取事件并将所获取的事件放入事件队列中,所获取的事件至少包括事件数量信息和事件发生时间信息。在从外部获取事件并放入事件队列后,在步骤S130,按照所述事件队列中的事件的先后顺序,从所述事件队列中逐个取出事件,即每次从事件队列中取出事件队列中的队首事件。例如,如果该事件队列中已经取出一个事件后,则此时该事件的下一事件就位于该事件队列的队首,下次取出时就取该下一事件。然后,在步骤S140中,针对每个从所述事件队列中取出的事件,遍历所述循环时间窗中的头指针指向的时间切片到尾指针指向的时间切片,其中,在遍历时,如果当前取出的事件的事件发生时间与各时间切片中的任一时间切片的时间之差大于或等于时间窗大小,则清空该时间切片,同时,如果头指针和尾指针不指向同一个时间切片,则将循环时间窗的头指针移到指向该时间切片的下一时间切片,否则保持指针位置不变。图2示出了图1中示出的遍历清空处理的一个示例的流程图,在图2中,η表示时间切片的索引,N是最大时间切片索引值(S卩,时间切片的个数),其是所述循环时间窗的尾才旨针 rear,艮口 N = rear。在针对每个当前取出的事件对循环时间窗进行遍历清空处理时,首先,在步骤 S141,对索引η进行初始化,即n = head,head是循环时间窗的头指针。接着,在步骤S 142, 将索引η与最大索引值N进行比较。如果η大于N,则流程结束。如果η不大于N,则进行到步骤S143。在步骤S143,计算当前取出的事件的事件发生时间与索引值η所指示的时间切片的时间之间的时间差。随后,在步骤S144,判断该时间差是否大于或等于时间窗的大小。如果小于,则流程结束。如果该时间差大于或等于该时间窗的大小,则进行到步骤S145。在步骤S145,清空该时间切片,同时,如果头指针和尾指针不指向同一个时间切片,则将头指针移到指向该时间切片的下一时间切片,然后进行到步骤S146。在步骤S146,将索引η递增1,然后返回到步骤S142。如上给出了根据本发明的遍历处理的一个示例。很显然,本发明的遍历处理不限于此,还可以采用本领域技术人员所熟知的其它方式实现。在如上对时间窗的各时间切片进行遍历处理后,在步骤S150,计算该当前取出的事件的事件发生时间和经过遍历处理后的各时间切片中的由所述循环时间窗的尾指针指向的时间切片的时间之间的时间差。然后,在步骤S160,将步骤S150中所计算出的时间差与该由所述循环时间窗的尾指针指向的时间切片的大小进行比较。如果该时间差大于该时间切片的大小,则进行到步骤S170,否则,进行到步骤S180。在步骤S170,将该当前取出的事件统计在该时间切片的下一时间切片中并将该当前取出的事件的事件数量信息和事件发生时间信息作为该下一时间切片的数量信息和时间信息。然后,流程进行到步骤S190。在步骤S180,将该当前取出的事件统计在该时间切片中并将该当前事件的数量与该时间切片的数量合并作为该时间切片的数量信息。然后,流程进行到步骤S190。在步骤S190,判断是否针对所述事件列表中的所有事件进行了上述处理。如果都进行了上述处理,则流程结束。否则,流程返回到步骤S130,在步骤S130中,取出此时位于事件队列队首的下一事件,并针对该下一事件如上进行处理。如上参照图1和图2描述了根据本发明实施例的基于具有多个时间切片的时间窗进行事件统计的方法。但是,上述仅仅是本发明的一个示例。还可以对上述实施例进行如下修改。在本发明的另一示例中,根据本发明的方法还可以包括在步骤S170或S180 2 后,判断该时间窗中的统计结果是否满足预定事件发生频率。当该时间窗中的统计结果满足预定事件发生频率时,记录用于指示满足预定事件发生频率的状态信息,停止进行事件统计,并清空该时间窗。然后,流程结束。当不满足事件发生频率时,进行到步骤S190。所述事件发生频率指的是单位时间内发生的事件数,即事件发生频率=事件数/限定时间。此外,在本发明的另一示例中,根据本发明的方法还可以包括在步骤S190后,判断该时间窗中的统计结果是否满足预定事件发生频率。如果在到达最长聚合时间后该时间窗中的统计结果还不满足预定事件发生频率,则删除该时间窗。所述最长聚合时间指的是预定的用于事件统计的时间段(即,上述的预定时间段)。此外,在本发明的另一实施例中,还可以不必包括步骤S110。具有多个时间切片的时间窗还可以在进行本流程之前预先创建。下面以发生频率为10/3秒为例,参照图3、图4和图5A-5C进行具体描述,用于接收事件队列的预定时间段为1小时。图3示出了根据本发明的具有多个时间切片的循环时间窗的一个示例的示图。在图3中,循环时间窗具有头指针head和尾指针rear,时间切片的个数为3个,时间切片的大小都为1秒。时间窗的大小为3秒。在初始创建时,所有时间切片的时间信息time为0,数量信息count为O0事件按照一定的顺序到来,这里假设到来的事件为同类事件。根据本发明,在预定时间段内,按照到来顺序接收事件并放入事件队列(即,事件列表)中。图4示出了根据本发明的一个示例,所接收到的事件的事件列表(event list)以及循环时间窗的示图。然后,按照顺序从事件队列中逐个取出事件,并按照图1中示出的方法将事件顺序统计在时间窗中。图5A到5C示出了将图4中示出的事件列表中的各个事件统计在时间窗中的示图。如图5A中所示,对于事件列表中的第一事件{time
,count [1]},即事件发生时间为0. 125秒,事件数量为1,由于时间窗中的所有时间切片都是空的。因此,将该第一事件直接放入当前指针rear所指示的时间切片中。此时,该时间切片的时间信息为0. 125 秒,数量信息为1。随后,对于第二事件{time
,count [1]},由于0. 435—0. 125 = 0. 31小于1秒,所以将该第二事件统计在当前时间切片(即,与第一事件相同的时间切片)中, 此时,当前时间切片的时间信息不变,数量信息为第一事件和第二事件的数量之和,即2。同样,按照上述,第三和第四事件被统计在当前时间切片(即,与第一事件相同的时间切片) 中,该时间切片的数量信息变为5。对于第五事件和第六事件,如图5B所示,由于1. 235-0. 125 = 1. 11,1. 785-0. 125 =1. 66都大于时间切片的大小,因此,该第五和第六事件不能统计在与第一事件相同的时间切片中。此时,时间切片指针rear后移到下一时间切片,然后,将第五和第六事件放入该下一时间切片中。该下一时间切片的时间信息为1. 235,数量信息为2。对于第七和第八事件,如图5C所示,由于3. 125-0. 125 = 3以及3. 565-0. 125 = 3. 44都大于等于时间窗的大小3秒,所以在进行遍历清空处理时,清空头指针所在的时间切片,随即将头指针向下移动一个时间切片,并且,将第七和第八事件统计在尾指针指向的下一时间切片中,并将尾指针向下移动一个时间切片。如上参照图1到图5C描述了根据本发明的基于具有多个时间切片的时间窗进行事件统计的方法。本发明的上述基于具有多个时间切片的时间窗进行事件统计的方法,可以采用软件实现,也可以采用硬件实现,或采用软件和硬件组合的方式实现。图6示出了根据本发明的实施例的基于具有多个时间切片的循环时间窗进行事件统计的事件统计装置600的方框示意图。如图6所示,事件统计装置600包括事件接收单元610、事件取出单元620、遍历单元630、第一计算单元640、第一比较单元650、统计单元660、时间切片信息更新单元670以及尾指针移动单元680。事件接收单元610用于在预定时间段内,从外部获取事件并放入事件队列中,所述事件至少包含事件数量信息和事件发生时间信息。事件取出单元620用于按照所述事件队列中的事件的先后顺序,从所述事件队列中逐个取出事件。遍历单元630用于针对每个从所述事件队列中取出的事件,遍历所述循环时间窗中的头指针指向的时间切片到尾指针指向的时间切片,所述时间切片至少包括时间信息和数量信息,所述时间切片的时间是在该时间切片中统计的第一个事件的事件发生时间。如果当前取出的事件的事件发生时间与各时间切片中的任一时间切片的时间之差大于或等于所述循环时间窗大小,则清空该时间切片,并且如果头指针和尾指针不指向同一个时间切片,则将头指针移到指向该时间切片的下一时间切片,否则保持指针位置不变。第一计算单元640用于计算当前取出的事件的事件发生时间和经过遍历处理后的各时间切片中的由所述循环时间窗的尾指针指向的时间切片的时间之间的时间差。第一比较单元650用于将第一计算单元所计算出的时间差与由尾指针指向的时间切片的大小进行比较。统计单元660用于在第一计算单元所计算出的时间差不大于由尾指针指向的时间切片的大小时,将当前取出的事件统计在该由尾指针指向的时间切片中,以及在第一计算单元所计算出的时间差大于该由尾指针指向的时间切片的大小时,将该当前取出的事件统计在该由尾指针指向的时间切片的下一时间切片中。时间切片信息更新单元670用于在将当前取出的事件统计在由尾指针指向的时间切片中时,将该当前取出的事件的数量与该时间切片的数量合并作为该时间切片的数量信息,以及在将当前取出的事件统计在该由尾指针指向的时间切片的下一时间切片中时,将该当前取出的事件的事件数量信息和事件发生时间信息作为该下一时间切片的数量信息和时间信息。尾指针移动单元680用于在第一计算单元所计算出的时间差大于由所述循环时间窗的尾指针指向的时间切片的大小时,将尾指针移到指向该由尾指针指向的时间切片的下一时间切片。在本发明的一个示例中,所述遍历单元630可以包括第二计算单元(未示出),用于在遍历时,计算当前取出的事件的事件发生时间与各时间切片中的任一时间切片的时间之间的时间差;第二比较单元(未示出),用于将第二计算单元所计算出的时间差与该时间窗的大小进行比较;清空单元(未示出),用于如果所述第二计算单元计算出的时间差大于该时间窗的大小,则清空该时间切片;以及头指针移动单元,用于在所述清空单元清空时间切片后,如果头指针和尾指针不指向同一个时间切片,则将头指针移到指向该被清空的时间切片的下一时间切片。这里要说明的是,以上仅仅是本发明的遍历单元的一个实现示例, 而不是将本发明的遍历单元限制于此。本发明的技术人员还可以采用其它方式来实现上述遍历单元。比如,取代将时间差与时间窗的大小进行比较,而是将事件发生时间和时间切片的时间与时间窗的大小之和进行比较,以确定是否需要清空。此外,在本发明的一个或多个其它示例中,事件统计装置600还可以包括创建单元(未示出),用于在外部获取事件之前,创建具有多个时间切片的循环时间窗。此外,在本发明的一个或多个其它示例中,事件统计装置600还可以包括记录单元(未示出),用于当该时间窗中的统计结果满足预定事件发生频率时,记录用于指示满足预定事件发生频率的状态信息,并且在记录该状态信息后,所述清空单元清空该时间窗。此外,在本发明的一个或多个其它示例中,事件统计装置600还可以包括删除单元(未示出),用于当在到达最长聚合时间后该时间窗中的统计结果还不满足预定事件发生频率时,删除该时间窗。此外,在本发明的实施例中,虽然第一计算单元640和第二计算单元被示出为独立的元件,但是在替换实施例中,它们也可以利用同一计算单元或计算模块来实现。同样, 第一比较单元650和第二比较单元也可以采用同一比较单元或比较模块来实现。头指针移动单元和尾指针移动单元也可以采用同一指针移动单元或模块来实现。此外,根据本发明的方法还可以被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本发明的方法中限定的上述功能。利用本发明的方法,通过利用具有多个时间切片的循环时间进行事件统计,可以在短时间内,在网络中的海量事件中挖掘是否有存在满足发生频率的事件,并且所占用的存储空间很小,不存在内存溢出现象,而且速度快,效率高。本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现所述的功能,但是这种实现决定不应被解释为导致脱离本发明的范围。结合这里的公开所描述的各种示例性逻辑块、模块和电路可以利用被设计成用于执行这里所述功能的下列部件来实现或执行通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。通用处理器可以是微处理器,但是可替换地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、或任何其它这种配置。结合这里的公开所描述的方法或算法的步骤可以直接包含在硬件中、由处理器执行的软件模块中或这两者的组合中。软件模块可以驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域已知的任何其它形式的存储介质中。示例性的存储介质被耦合到处理器,使得处理器能够从该存储介质中读取信息或向该存储介质写入信息。在一个替换方案中,所述存储介质可以与处理器集成在一起。处理器和存储介质可以驻留在ASIC中。ASIC可以驻留在用户终端中。在一个替换方案中,处理器和存储介质可以作为分立组件驻留在用户终端中。在一个或多个示例性设计中,所述功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将所述功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质, 该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路 (DSL)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件, 则上述同轴线缆、光纤线缆、双绞线、DSL或诸如红外先、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字多功能盘 (DVD)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。尽管前面公开的内容示出了本发明的示例性实施例,但是应当注意,在不背离权利要求限定的本发明的范围的前提下,可以进行多种改变和修改。根据这里描述的发明实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明的元素可以以个体形式描述或要求,但是也可以设想多个,除非明确限制为单数。虽然如上参照图描述了根据本发明的各个实施例进行了描述,但是本领域技术人员应当理解,对上述本发明所提出的各个实施例,还可以在不脱离本发明内容的基础上做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。
权利要求
1.一种基于具有多个时间切片的循环时间窗进行事件统计的方法,包括在预定时间段内,从外部获取事件并放入到事件队列中,其中,所述事件至少包含事件数量信息和事件发生时间信息;按照所述事件队列中的事件的先后顺序,从所述事件队列中逐个取出事件; 针对每个从所述事件队列中取出的事件,遍历所述循环时间窗中的头指针指向的时间切片到尾指针指向的时间切片,如果当前取出的事件的事件发生时间与各时间切片中的任一时间切片的时间之差大于或等于所述循环时间窗大小,则清空该时间切片,同时,如果头指针和尾指针不指向同一个时间切片, 则将头指针指向至该时间切片的下一时间切片,否则保持指针位置不变,其中,所述时间切片至少包括时间信息和数量信息,所述时间切片的时间是在该时间切片中统计的第一个事件的事件发生时间,所述时间切片的数量是在该时间切片中统计的事件的数量,所述头指针指向的时间切片是指第一个统计有事件的时间切片,所述尾指针指向的时间切片是指最后一个统计有事件的时间切片;以及计算该当前取出的事件的事件发生时间和经过遍历处理后的各时间切片中的由所述循环时间窗的尾指针指向的时间切片的时间之间的时间差;在所计算出的时间差不大于该时间切片的大小时,将该当前取出的事件统计在由所述循环时间窗的尾指针指向的时间切片中并将该当前取出的事件的数量与该时间切片的数量合并作为该时间切片的数量信息,以及在所计算出的时间差大于该时间切片的大小时,将该当前取出的事件统计在由所述循环时间窗的尾指针指向的下一时间切片中并将该当前取出的事件的事件数量信息和事件发生时间信息作为该下一时间切片的数量信息和时间信息,同时将尾指针移动到指向该下一时间切片。
2.如权利要求1所述的方法,其中,所述具有多个时间切片的循环时间窗被预先创建。
3.如权利要求1所述的方法,在从外部获取事件之前,所述方法还包括 创建具有多个时间切片的循环时间窗。
4.如权利要求2或3所述的方法,其中,所述多个时间切片的大小相同或不同。
5.如权利要求1所述的方法,还包括当该时间窗中的统计结果满足预定事件发生频率时,记录用于指示满足预定事件发生频率的状态信息并清空该时间窗。
6.如权利要求1所述的方法,还包括如果在到达最长聚合时间后该时间窗中的统计结果还不满足预定事件发生频率,则删除该时间窗。
7.一种基于具有多个时间切片的循环时间窗进行事件统计的事件统计装置,包括 事件接收单元,用于在预定时间段内,从外部获取事件并放入到事件队列中,所述事件至少包含事件数量信息和事件发生时间信息;事件取出单元,用于按照所述事件队列中的事件的先后顺序,从所述事件队列中逐个取出事件;遍历单元,用于针对每个从所述事件队列中取出的事件,遍历所述循环时间窗中的头指针指向的时间切片到尾指针指向的时间切片,如果当前取出的事件的事件发生时间与各时间切片中的任一时间切片的时间之差大于或等于所述循环时间窗大小,则清空该时间切片,同时,如果头指针和尾指针不指向同一个时间切片,则将头指针指向至该时间切片的下一时间切片,否则保持指针位置不变,其中,所述时间切片至少包括时间信息和数量信息, 所述时间切片的时间是在该时间切片中统计的第一个事件的事件发生时间,所述时间切片的数量是在该时间切片中统计的事件的数量,所述头指针指向的时间切片是指第一个统计有事件的时间切片,所述尾指针指向的时间切片是指最后一个统计有事件的时间切片;第一计算单元,用于计算所述当前取出的事件的事件发生时间和经过遍历处理后的各时间切片中的由所述循环时间窗的尾指针指向的时间切片的时间之间的时间差,第一比较单元,用于将第一计算单元所计算出的时间差与该时间切片的大小进行比较;统计单元,用于在第一计算单元所计算出的时间差不大于该时间切片的大小时,将该当前取出的事件统计在由所述循环时间窗的尾指针指向的时间切片中,以及在第一计算单元所计算出的时间差大于该时间切片的大小时,将该当前取出的事件统计在由所述循环时间窗的尾指针指向的下一时间切片中;时间切片信息更新单元,用于在将所述当前取出的事件统计在由所述循环时间窗的尾指针指向的时间切片中时,将该当前取出的事件的数量与该时间切片的数量合并作为该时间切片的数量信息,以及在将所述当前取出的事件统计在由所述循环时间窗的尾指针指向的时间切片的下一时间切片中时,将该事件的事件数量信息和事件发生时间信息作为该下一时间切片的数量信息和时间信息;以及尾指针移动单元,用于在第一计算单元所计算出的时间差大于由所述循环时间窗的尾指针指向的时间切片的大小时,将尾指针移到指向由所述循环时间窗的尾指针指向的时间切片的下一时间切片。
8.如权利要求7所述的事件统计装置,其中,所述遍历单元还包括第二计算单元,用于计算当前取出的事件的事件发生时间与从头指针指向的时间切片到尾指针指向的时间切片中的各时间切片的时间之间的时间差;第二比较单元,用于将第二计算单元所计算出的时间差与该时间窗的大小进行比较; 清空单元,用于如果所述第二计算单元计算出的时间差大于该时间窗的大小,则清空该时间切片;以及头指针移动单元,用于在所述清空单元清空时间切片后,如果头指针和尾指针不指向同一个时间切片,则将头指针移到指向该被清空的时间切片的下一时间切片。
9.如权利要求7所述的事件统计装置,还包括创建单元,用于在从外部获取事件之前,创建具有多个时间切片的循环时间窗。
10.如权利要求7所述的事件统计装置,还包括记录单元,用于当该时间窗中的统计结果满足预定事件发生频率时,记录用于指示满足预定事件发生频率的状态信息,并且在记录该状态信息后,所述清空单元清空该时间窗。
11.如权利要求7所述的事件统计装置,还包括删除单元,用于当在到达最长聚合时间后该时间窗中的统计结果还不满足预定事件发生频率时,删除该时间窗。
全文摘要
本发明提供一种基于具有多个时间切片的循环时间窗进行事件统计的方法,包括在预定时间段内,从外部获取事件并放入事件队列中;针对从事件队列中取出的每个事件,遍历循环时间窗中的头指针指向的时间切片到尾指针指向的时间切片进行清空处理;基于当前取出事件的事件发生时间和经过处理后的由尾指针指向的时间切片的时间之间的时间差,确定将该事件统计在该时间切片或下一时间切片中,其中,在遍历时,如果当前取回事件的事件发生时间与各时间切片中的任一时间切片的时间之差超过时间窗大小,则清空该时间切片。利用本方法,可以在短时间内,在网络中的海量事件中挖掘是否有存在满足发生频率的事件,并且所占用的存储空间很小,速度快,效率高。
文档编号H04L12/24GK102340416SQ201110193578
公开日2012年2月1日 申请日期2011年7月8日 优先权日2011年7月8日
发明者王承志 申请人:东软集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1