一种基于树形复杂事件处理过程中算子内部处理系统的制作方法

文档序号:6354675阅读:306来源:国知局
专利名称:一种基于树形复杂事件处理过程中算子内部处理系统的制作方法
技术领域
本发明涉及一种在复杂事件处理中算子的描述,具体而言,是一种针对树形结构 的复杂事件处理过程中算子内部处理过程的描述方法。
背景技术
复杂事件处理(Complex Event Processing,CEP)是一种新兴的事件处理技术,它 将系统数据看作各种类型的事件,通过分析事件间的关联关系,建立不同的事件关系序列, 并利用过滤、关联、聚合等技术,最终由简单事件产生复杂事件。其目标是从软件系统应用 各个层次的事件流中获取信息,理解这些信息对上层管理目标和业务过程的影响,并做出 实时的响应。复杂事件处理技术的核心问题是事件流的模式匹配方法,相关研究包括NFA、 Petri网、匹配树以及有向图模型等。NFA将一个复杂事件表达式构造为自动机,事件到达将触发自动机的状态迁移,自 动机进入可接受状态表明检测出一个满足条件的复杂事件实例。Petri网是一种适合于描述异步并发现象的系统模型,它根据复杂事件表达式构 造其对应的Petri网实例,以Petri网输入节点为基本事件,输出节点为所要检测的复杂事 件,通过输入令牌,计算跃迁函数,如果成立则产生跃迁并标记此处的节点,当最后一个节 点被标记出,说明产生满足条件的复杂事件实例。匹配树的基本思想是由复杂事件表达式构造出相应识别树,其中基本事件为树的 叶节点,各个层次的复杂事件为树的中间节点,如果到达根节点,就认为检测到了一个复杂 事件。基于有向图的复杂事件处理由复杂事件表达式构造有向无环图,节点描述事件, 边是事件合成规则,节点对事件引用进行标记。除边外,节点也带有一些规则,如参数条件 限制等。当所有节点都被标记后,相应的复杂事件实例也被检测。现有复杂事件处理的模式匹配方法各有优缺点,NFA简单,易于理解和实现,但只 有到达最终状态时才回溯匹配状态,同时由于其自身结构的限制,在表达否定算子(算子 是表示一种对函数的运算的符号)和并发事件方面存在不足;Petri网功能强大,但表达和 执行比较复杂,难以支持复杂判断;有向图和匹配树减少了部分中间结果,但如何充分利用 中间节点、找寻最优构建方式以及丰富语义仍待研究。

发明内容
为实现在树形结构复杂事件识别过程的高效性以及良好的可扩展性,本发明提出 了一种树形识别算子的通用构造及描述方法。该构造方法基于事件以及事件流的概念定义 了事件之间以及事件流之间的复合运算,通过匹配判定函数,复合计算函数以及流状态计 算函数实现了树形复杂事件处理基本算子各项功能。通过本发明的方法,在树形复杂事件 处理的实现以及扩展过程中,实现了各类约束间的关联关系的解耦合,在各个算子进行构建过程中不再需要考虑上级算子的关联关系,因此此方法可以普适用于树形识别算子的通 用构造以及描述方法。本发明的一种基于树形复杂事件处理过程中算子内部处理系统,该算子内部处理 系统包括有输出流定制模块(10)、事件匹配判定模块00)和事件复合模块(30);所述输出流定制模块(10)根据算子语义输入事件流以及该算子语义标示符字符 串求和后通过布尔表达式处理,获得定制-事件流类型S几1(|输出;所述事件匹配判定模块00)对接收到的定制-事件流类型MDltl顺次进行类型约 束、时间约束和谓词约束的判定,获得匹配事件流SJL^1输出;所述事件复合模块(30)对接收到的匹配事件流S几2(|分别进行当前起始时间、当 前结束时间、全部谓词提取处理,获得复合事件流SJL3tl输出。复合事件流SJL3tl中包括有最 短时间-匹配事件流SJL3tll、最长时间-匹配事件流SJL3tl2和谓词-匹配事件流SJL3Q3。本发明基于树形复杂事件处理单元中的算子内部处理系统的优点①采用树形识别算子的通用构造算子内部处理系统,更佳具有能用性和可扩展 性。②本发明的构造方法基于事件以及事件流的概念定义了事件之间以及事件流之 间的复合运算,通过匹配判定函数,复合计算函数以及流状态计算函数实现了树形复杂事 件处理基本算子各项功能。③本发明的构造方法,在树形复杂事件处理的实现以及扩展过程中,实现了各类 约束间的关联关系的解耦合,在各个算子进行构建过程中不再需要考虑上级算子的关联关系。④本发明是基于树模型的复杂事件处理引擎在优化后吞吐率是基于NFA实现的 开源引擎hper的3 6倍,并且在不同事件量或事件序列复杂度下性能表现稳定。


图1是本发明基于树形复杂事件处理单元中的算子数据流程结构图。
具体实施例方式为实现在树形结构复杂事件识别过程的高效性以及良好的可扩展性,本发明提出 了一种树形识别算子的通用构造及描述方法。该构造方法基于事件以及事件流的概念定义 了事件之间以及事件流之间的复合运算,通过匹配判定函数,复合计算函数以及流状态计 算函数实现了树形复杂事件处理基本算子各项功能。通过本发明的方法,在树形复杂事件 处理的实现以及扩展过程中,实现了各类约束间的关联关系的解耦合,在各个算子进行构 建过程中不再需要考虑上级算子的关联关系,因此此方法可以普适用于树形识别算子的通 用构造以及描述方法。本发明的一种基于树形复杂事件处理单元的构建方法,其对处理单元的构建分为 三个阶段第一阶段为准备阶段,而后两个阶段为运行阶段。第一阶段为输出流定制模块,该输出流定制模块用于对初始化的网络系统输出的 算子语义进行事件流的类型、事件流的状态进行定义。
5
输出事件流的类型由该算子语义的输入事件流以及该算子类型散列获得,输出事 件流的属性则根据算子语义类型的不同算法各有不同。第二阶段为事件匹配判定阶段,是将每个输入的算子语义的事件(所述事件包括 事件类型属性、事件开始时间属性、事件结束时间属性以及事件谓词属性)以及第一阶段 获得的输出事件流状态,带入算子语义被赋予时间序列约束条件表达式和谓词约束条件表 达式,从而满足全部表达式的事件组将被打包传递到第三阶段。第三阶段为事件复合计算阶段,当接收到满足所有约束条件表达式的打包事件 后,说明该组数据在本算子语义内能够组合成新事件。新事件的起始时间由打包事件中选 取起始时间最小值,新事件的结束时间由打包事件中选取结束事件中极大值获得,新事件 的谓词属性集合则为打包事件中的事件的谓词属性集合的合取。新事件的类型则与第一阶 段输出流定义的类型相等。在本发明中,事件是指任何一个数据,记为e =〈startTime,endTime, attrs> ;其 中,startTime表示事件的起始时间;endTime表示事件的结束时间;attrs表示事件的属 性。所述的事件可以是一个网络上传播的数据包、一个类、一个xml文件;所述的事件 都可以看作是一个事件的描述,其所携带的数据即为事件的属性。在本发明中,事件流是指同类型的事件按照时间先后顺序排列的集合为一条事件 流,记为 E =〈type, states, values> ;其中,states表示事件流的状态;type表示事件流的类型,可以为一个字符串,满足对于V^U2当且仅当 E1. type Φ E2type时,称E1J2是两个不同的事件流(即E1也可以称为第一个事件流,E2也 可以称为第二个事件流);values为一个集合,表征事件流E中的事件集合E. values = Ie1^2,e3,-,em}, effl表示该事件流中的任意一个事件,即事件流E中的事件&均满足& e E。在本发明中,算子语义是指对于任意事件流E1, E2, E3,…,&新生成的事件流Emw 以及映射关系S = <Q, F,Z> ;其中,映射关系S = <Q, F,Z>即为事件流的复合函数,或称为 一个算子,Q表示算子中的匹配判定函数,F表示算子中的事件复合计算函数,Z表示算子中 的事件流状态计算函数。在本发明中,新事件流Emw由事件流EnE2A3,…,&复合而成。&称为任意一个 事件流。在本发明中,时序约束TimeQuery用于描述查询条件要求事件e =〈startTime, endTime, attrs> 在时间上应满足的条件表达式 TimeQuery (e” startTime, e” endTime, e2. startTime, e2. endTime, ···, em. startTime, em. endTime)(简禾尔为时序约束条件 TimeQuery)。在满足该时序约束条件TimeQuery时,称该组事件满足查询条件在时序上的需 求。θι. startTime, θι. endTime表示第一个事件e:的起始时间startTime和结束时间 endTime。e2. startTime, e2. endTime表示第二个事件e2的起始时间startTime和结束时间
6endTime。em. startTime,em. endTime表示第m个事件 (也称为任意一个事件)的起始时间 startTime 禾口结束时间 endTime。在本发明中,谓词约束用于描述查询条件要求事件e =〈startTime,endTime, attrs>在其自身属性上应该满足的条件表达式WhereQuery = (θι. attrs, e2. attrs,…, em. attrs)(简称为谓词约束条件WhereQuery)。在满足该谓词约束条件WhereQuery时,称该组事件满足查询条件在时序上的需 求。在本发明中,对于每个谓词约束条件WhereQuery则为一个由and以及or连接而 成的布尔表达式,在事件处理中的形式为WhereQuery: = WE{and WE}*WE: = W or WW: = BoolExpression (θ!· attrs, e2. attrs, ···, em. attrs)W为一个与事件属性相关的布尔表达式BoolExpression,attrs表示事件的属性, WE为一个经过or连接的约束条件(简称为或者约束WE),谓词约束指明了输出序列应当满 足的约束条件,其中所有涉及的事件4所属的事件流4的集合称为该谓词约束涉及的事件 流,标记为 ERwhereQuery' 每个WE涉及的事件流则为ERto。参见图1所示,在本发明中,一种基于树形复杂事件处理单元中算子内部处理系 统包括有输出流定制模块10、事件匹配判定模块20和事件复合模块30 ;其中输出流定制模 块10包括有输出流类型定制单元101和谓词条件分配单元102 ;事件匹配判定模块20包 括有数据类型匹配判定单元201、时间约束匹配判定单元202、谓词约束匹配判定单元203 ; 事件复合模块30包括有起始时间计算单元301、结束时间计算单元302、谓词属性计算单元 303。输出流定制模块10根据算子语义输入事件流以及该算子语义标示符字符串求和 后通过布尔表达式处理,获得定制-事件流类型S几1(|输出;事件匹配判定模块20对接收到的定制-事件流类型MDltl顺次进行类型约束、时间 约束和谓词约束的判定,获得匹配事件流SJL2tl输出;事件复合模块30对接收到的匹配事件流S几2(|分别进行当前起始时间、当前结束 时间、全部谓词提取处理,获得复合事件流SJL3tl输出,即复杂事件。下面将对各个单元实现的功能进行详细的说明(一 )输出流类型定制单元101输出流类型定制单元101 —方面对接收到的每一个算子语义S(E1; E2,…,En) (E1, E2,…,&表示输入到该算子的事件流,也是数据流)进行标示符标记,即标示符表示 为S. type,而对该算子语义输入事件流记为E1, E2,…,En,则事件流的类型记为E. Type = HasMStringAdd(E1. Type,E2. Type, -,En. Type, S. type};另一方面根据谓词条件分配单元 102输出的谓词约束条件WhereQuery对事件流类型E. Type = HashlStringAdcKE1. Type, E2. Type,…,En. Type, S. type}进行处理,得到分配到所接收的算子语义S (E1, E2,…,En) 上的定制-事件流类型3几1(|。StringAdd表示字符串加法函数。
7
E1. Type表示第一个事件流的类型。E2. Type表示第二个事件流的类型。En. Type表示第η个事件流的类型。在本发明中,定制-事件流类型SJLltl中至少包含有或者约束WE。( 二)谓词条件分配单元102谓词条件分配单元102根据布尔表达式输出谓词约束条件WhereQuery给输出流 类型定制单元101。在本发明中,对于每个谓词约束条件WhereQuery则为一个由and以及or连接而 成的布尔表达式,在事件处理技术中的形式为WhereQuery: = WE{and WE}*WE: = W or WW: = BoolExpression (θ!· attrs, e2. attrs, ···, em. attrs)W为一个与事件属性相关的布尔表达式BoolExpression,attrs表示事件的属性, WE为一个经过or连接的约束条件(简称为或者约束WE),谓词约束指明了输出序列应当满 足的约束条件,其中所有涉及的事件4所属的事件流4的集合称为该谓词约束涉及的事件 流,标记为 ERwhereQuery' 每个WE涉及的事件流则为ERto。(三)数据类型匹配判定单元201数据类型匹配判定单元201对接收到的定制-事件流类型S几1(|进行数据类型判 ^E. Type = E1. Type or En. Type = E2. Type ;若满足该数据类型判定 Ε. Type = E1. Type or En. Type = E2. Type则获得类型_定制_事件流SJL201,然后该类型_定制_事件流SJL201 将进入时间约束匹配判定单元202进行处理;若不满足则丢弃所述的定制-事件流类型 SJLltl,也就是丢弃算子语义S (E1, E2,…,En)。(四)时间约束匹配判定单元202针对不同的算子语义(即定制-事件流类型S几1(|),在时间约束匹配判定上的方 式完全不同。对进入到该时间约束匹配判定单元202中的类型-定制-事件流5几2(11是 将SJL2tll中事件的时间属性,即起始时间startTime,结束时间endTime加载至时序约束条 件 TimeQuery (e” startTime, e” endTime, e2. startTime, e2. endTime,…,em. startTime, effl. endTime)中,若满足则获得时间-定制-事件流SJL2tl2,然后该时间-定制-事件流SJL2tl2 将进入谓词约束匹配判定单元203进行处理;若不满足则丢弃类型-定制-事件流3几2(11, 也就是丢弃定制-事件流类型3几1(|。(五)谓词约束匹配判定单元203对进入到该谓词约束匹配判定单元203中的时间-定制-事件流SJL2tl2,是将 SJL202 中的事件属性 attrs 力口载至 WhereQuery = (e^ attrs, e2. attrs, ·.., em. attrs)中, 若满足则获得谓词-定制-事件流SJL2tl3 (即匹配事件流SJLJ,然后该匹配事件流SJL2tl将 进入事件复合模块30进行处理;若不满足则丢弃时间-定制-事件流3几2(12,也就是丢弃定 制-事件流类型3几1(|。(六)起始时间计算单元301起始时间计算单元301对接收到的匹配事件流SJL^1进行起始时间最小者提取,获 得最短时间-匹配事件流SJL皿;
8
在本发明中,经起始时间计算单元301处理后的匹配事件流SJL^1中获得的最小起 始时间将作为所述匹配事件流SJL2tl的当前起始时间。(七)结束时间计算单元302结束时间计算单元302对接收到的匹配事件流SJL^1进行结束时间最大者提取,获 得最长时间-匹配事件流SJL3tl2 ;在本发明中,经结束时间计算单元302处理后的匹配事件流SJL^1中获得的最大结 束时间将作为所述匹配事件流SJL2tl的当前结束时间。(八)谓词属性计算单元303谓词属性计算单元303对接收到的匹配事件流S几2(|进行算子语义中包含的全部 谓词 enew. attrs = Ie1. attrs} + {e2. attrs}+,…,{em. attrs}提取,获得谓词 _ 匹配事件流 SJL303,即复合事件流SJL3tlt5在本发明中,复合事件流SJL3tl中包括有最短时间-匹配事件流SJL3tll、最长时 间-匹配事件流SJL3tl2和谓词-匹配事件流SJL3Q3。(九)性能评价本发明在基于Java语言实现了事件流引擎,采用PM-Tree进行复杂事件检测,代 码量26640行(LOC),其中,识别树部分代码6182行(LOC);其它代码20458行(LOC),包括 语法解析、事件适配器实现等。实验用机器为IBM 刀片服务器 HS21,8 核 Intel(R)Xeon(R)CPU E5405 @2. OOGHz CPU,8G 内存,132GB SCSI 硬盘,操作系统 Cent0S5. 2,内核为 2. 6. 18-164. 11. 1. el5xen #1 SMP,JDK 版本为 1. 6. 0_01-b06。通过实验论证影响事件流引擎性能的主要因素,并优化其运行效率。首先约定几 个谓词约束如表1所示
谓词约束名称WE1WE2WE3WE4WE5WE6相关事件类型A, BA, BA, BB, CC, DB, D通过概率1/21/41/81/21/41/12参见图1所示的结构进行优化,在一个算子语义有多个约束条件时,应当先判断 通过概率低的约束条件。A,B,C,D均为输入的事件类型,其属性均在-100 100间均勻分 布,对于WhereQuery = WE1 and WE2 and WE3,在10000AX 10000B组数据的条件下,将产生 IO8条匹配数据,测得系统在不同的约束条件放置的情况下消耗时间如表2所示
标号判断先后顺序IO8条匹配数据消耗时间(ms)1WElrWE^WE1965952WE^WEpWE^977503WElrWE^WE19882权利要求
1.一种基于树形复杂事件处理过程中算子内部处理系统,其特征在于该算子内部处 理系统包括有输出流定制模块(10)、事件匹配判定模块00)和事件复合模块(30);所述输出流定制模块(10)根据算子语义输入事件流以及该算子语义标示符字符串求 和后通过布尔表达式处理,获得定制-事件流类型S几1(|输出;所述事件匹配判定模块00)对接收到的定制-事件流类型MDltl顺次进行类型约束、时 间约束和谓词约束的判定,获得匹配事件流WL2tl输出;所述事件复合模块(30)对接收到的匹配事件流S几2(|分别进行当前起始时间、当前结 束时间、全部谓词提取处理,获得复合事件流SJL3tl输出。
2.根据权利要求1所述的基于树形复杂事件处理过程中算子内部处理系统,其特征 在于所述输出流定制模块(10)包括有输出流类型定制单元(101)和谓词条件分配单元 (102);谓词条件分配单元(102)根据布尔表达式输出谓词约束条件WhereQuery给输出流类 型定制单元(101);输出流类型定制单元(101) —方面对接收到的每一个算子语义S(E1, E2,…,En)进行 标示符标记,即标示符表示为S. type,而对该算子语义输入事件流记为E1, E2,…,,则事 件流的类型记为 E. Type = HashlStringAdcKE1. Type,E2. Type, -,En. Type, S. type};另一 方面根据谓词条件分配单元(102)输出的谓词约束条件WhereQuery对事件流类型E. Type =HashlStringAdcKE1. Type, E2. Type,…,En. Type, S. type}进行处理,得到分配到所接收 的算子语义S(E1; E2,…,En)上的定制-事件流类型SJL100
3.根据权利要求2所述的基于树形复杂事件处理过程中算子内部处理系统,其特征在 于对于每个谓词约束条件WhereQuery则为一个由and以及or连接而成的布尔表达式,在 事件处理技术中的形式为WhereQuery: = WE{and WE}*WE: = W or WW: = BoolExpression(e” attrs,e2. attrs,…,em. attrs)W为一个与事件属性相关的布尔表达式;WE为一个经过or连接的约束条件。
4.根据权利要求1所述的基于树形复杂事件处理过程中算子内部处理系统,其特征在 于所述事件匹配判定模块00)包括有数据类型匹配判定单元001)、时间约束匹配判定 单元002)、谓词约束匹配判定单元Q03);数据类型匹配判定单元001)对接收到的定制-事件流类型S几1(|进行数据类型判定 E. Type = E1. Type or En. Type = E2. Type ;若满足该数据类型判定 Ε. Type = E1. Type or En. Type = E2. Type则获得类型_定制_事件流SJL201,然后该类型_定制_事件流SJL201 将进入时间约束匹配判定单元(20 进行处理;若不满足则丢弃所述的定制-事件流类型 SJL10 ;对进入到该时间约束匹配判定单元002)中的类型-定制-事件流5几2(11是将 SJL201中事件的时间属性,即起始时间startTime,结束时间endTime加载至时序约束条 件 TimeQuery (e” startTime, e” endTime, e2. startTime, e2. endTime,…,em. startTime, effl. endTime)中,若满足则获得时间-定制-事件流SJL2tl2,然后该时间-定制-事件流3几2(12将进入谓词约束匹配判定单元(203)进行处理;若不满足则丢弃类型-定制-事件流 SJL2Oi ‘对进入到该谓词约束匹配判定单元O03)中的时间-定制-事件流SJL2tl2,是将SJL2tl2 中的事件属性 attrs 力口载至 WhereQuery = (e^ attrs,e2. attrs, ·..,em. attrs)中,若满足 则获得,然后该匹配事件流3几^|将进入事件复合模块(30)进行处理;若不满足则丢弃时 间-定制-事件流SJL2tl2,也就是丢弃定制-事件流类型SJLltlt5
5.根据权利要求1所述的基于树形复杂事件处理过程中算子内部处理系统,其特征在 于所述事件复合模块(30)包括有起始时间计算单元(301)、结束时间计算单元(302)、谓 词属性计算单元(303);起始时间计算单元(301)对接收到的匹配事件流5几^进行起始时间最小者提取,获得 最短时间-匹配事件流SJL皿;结束时间计算单元(30 对接收到的匹配事件流3几^|进行结束时间最大者提取,获得 最长时间-匹配事件流SJL3tl2 ;谓词属性计算单元(303)对接收到的匹配事件流S几2(|进行算子语义中包含的全部谓 词 enew.attrs= Ie1. attrs}+ {e2. attrs}+,…,{em. attrs}提取,获得谓词-匹配事件流 SJL303O
6.根据权利要求5所述的基于树形复杂事件处理过程中算子内部处理系统,其特征在 于经起始时间计算单元(301)处理后的匹配事件流S几2(|中获得的最小起始时间将作为所 述匹配事件流SJL2tl的当前起始时间。
7.根据权利要求5所述的基于树形复杂事件处理过程中算子内部处理系统,其特征在 于经结束时间计算单元(302)处理后的匹配事件流S几2(|中获得的最大结束时间将作为所 述匹配事件流SJL2tl的当前结束时间。
8.根据权利要求1或5所述的基于树形复杂事件处理过程中算子内部处理系统,其特 征在于复合事件流SJL3tl中包括有最短时间-匹配事件流SJL3tll、最长时间-匹配事件流 SJL302和谓词-匹配事件流SJL3Q3。
全文摘要
本发明公开了一种基于树形复杂事件处理过程中算子内部处理系统,该算子内部处理系统包括有输出流定制模块、事件匹配判定模块和事件复合模块;所述输出流定制模块根据算子语义输入事件流以及该算子语义标示符字符串求和后通过哈希散列函数处理,获得定制-事件流类型SJL10输出;所述事件匹配判定模块对接收到的定制-事件流类型MD10顺次进行类型约束、时间约束和谓词约束的判定,获得匹配事件流SJL20输出;所述事件复合模块对接收到的匹配事件流SJL20分别进行当前起始时间、当前结束时间、全部谓词提取处理,获得复合事件流SJL30输出。本发明是基于树模型的复杂事件处理引擎在优化后吞吐率是基于NFA实现的开源引擎Esper的3~6倍,并且在不同事件量或事件序列复杂度下性能表现稳定。
文档编号G06F17/00GK102096658SQ20111004129
公开日2011年6月15日 申请日期2011年2月21日 优先权日2011年2月21日
发明者孟由, 栾钟治, 王永剑, 程苏珺, 钱德沛 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1