[发明专利]一种面向实时事件流的复杂事件处理方法在审
申请号: | 202210382427.7 | 申请日: | 2022-04-12 |
公开(公告)号: | CN114860718A | 公开(公告)日: | 2022-08-05 |
发明(设计)人: | 邱涛;马姣姣;谢沛良;夏秀峰;宗传玉 | 申请(专利权)人: | 沈阳航空航天大学 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2455;G06F16/27;G06N5/02 |
代理公司: | 沈阳维特专利商标事务所(普通合伙) 21229 | 代理人: | 陈晖 |
地址: | 110136 辽宁省沈*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 实时 事件 复杂 处理 方法 | ||
1.一种面向实时事件流的复杂事件处理方法,其特征在于,包括如下步骤:
1)将查询解析为有限状态自动机,读取事件流,基于“事件实例覆盖”和“复杂事件实例覆盖”定义,建立查询与事件流的临时匹配之间的关联关系;
2)构建临时匹配的链式分区存储结构,将所述结构作为复杂事件实例覆盖的载体,在所述结构上,所述查询在事件流上进行复杂事件实例覆盖匹配,得到匹配结果复杂事件实例覆盖集,其中采用复杂事件匹配算法CoverMatch匹配;
3)采用CombineMatch算法将所得到的匹配结果进行一个反向的匹配结果联结,最终获取全部匹配结果。
2.根据权利要求1所述的一种面向实时事件流的复杂事件处理方法,其特征在于,
所述事件流S(s1,s2,…,sn)由一系列的基本事件实例构成,其中si为事件实例,它包含了事件的类型、事件的属性和事件发生时的时间;
所述查询为复杂事件查询Q,是由一组定义在基本事件上的约束条件构成,用以定义和表示更高层次的复杂事件的属性特征;
所述“事件实例覆盖”定义为:当事件实例si与事件流中相邻的前一个事件实例si-1同属一个事件类型,并且都能够被当前的NFA验证成功且作用在NFA的同一个状态节点,则称si是si-1的一个事件实例覆盖;
所述“复杂事件实例覆盖”定义为:对两个匹配结果M1和M2来说,如果M1中的每一个事件实例,都相等于M2中对应的事件实例或是M2中对应事件实例的事件实例覆盖,则称M1是M2的一个复杂事件实例覆盖,其中事件实例覆盖、复杂事件实例覆盖均是可传递的。
3.根据权利要求1所述的一种面向实时事件流的复杂事件处理方法,其特征在于,所述临时匹配的链式分区存储结构为双向环形链式结构。
4.根据权利要求1所述的一种面向实时事件流的复杂事件处理方法,其特征在于,具体包括如下步骤:
S1:假设有一个查询Q以及一个事件流S,将查询Q编译成NFA,其中在Q被编译成NFA之后,存在多个主要状态及分区;
S2:查找事件流中的事件e;如果事件e不为空则进行步骤S3,否则进行步骤S6;
S3:检查事件e的属性;如果符合要求则进行步骤S4,否则进行步骤S2;
S4:使用事件e在上一个分区中遍历暴露的匹配节点,将能够进行更新的节点拷贝,进行更新生成新的节点;
S5:检查此节点的时间窗口是否大于事件流S的时间范围,如果是,则进行步骤S2,否则进行步骤S6;
S6:查找事件e所在的分区region,进入到当前分区进行复杂事件实例覆盖的检查,查找当前事件e所在分区region中的每一个临时匹配链的链尾节点,如果事件e不是本分区所有链尾节点的复杂事件实例覆盖,就单独成链,否则成为某个链的链尾节点;
S7:查找本事件流的最后一个分区,找到本分区的每一个临时匹配链,并且使用prev直接定位到链尾节点,将这些链尾节点存储到复杂事件实例覆盖集R中,从而得到最终复杂事件实例覆盖集R;
S8:由于匹配过程中采用的是双向环形链式结构,则从最底端的复杂事件实例覆盖集R出发,反向遍历所在的链表;收集每个分区的该链表节点的最后一个事件实例,最后通过递归实现各个分区事件实例的联结,最终得到所有匹配结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于沈阳航空航天大学,未经沈阳航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210382427.7/1.html,转载请声明来源钻瓜专利网。