一种面向制造物联网海量乱序数据流复杂事件检测方法

文档序号:6636871阅读:159来源:国知局
一种面向制造物联网海量乱序数据流复杂事件检测方法
【专利摘要】本发明公开了一种面向制造物联网海量乱序数据流复杂事件检测方法,本发明主要针对制造物联网海量乱序数据流事件检测检测效率低下的问题,提出一种使用ENFA(ExtendedNondeterministicFiniteAutomaton)对海量乱序数据流中的事件进行选择和利用哈希表结构的存储关系对海量乱序数据流中事件进行处理,从而实现海量乱序数据流中复杂事件检测的方法,改进了当前基于自动机的复杂事件模式检测方法,对现有的复杂事件检测技术进行扩展,使其能够比较高效地在海量乱序数据上完成复杂事件的检测,提高其检测效率。
【专利说明】一种面向制造物联网海量乱序数据流复杂事件检测方法

【技术领域】
[0001]本发明涉及制造物联网领域,更具体地,涉及一种面向制造物联网海量乱序数据流复杂事件检测方法。

【背景技术】
[0002]制造物联技术是一种以中间件、海量信息融合处理和系统集成技术等为基础,基于物联网络开发服务平台与应用系统解决产品设计、制造与服务过程中的信息综合感知、可靠传输、海量数据处理、精准控制和可信服务问题,提高产品技术附加值,增强制造与服务过程的管控能力的技术。复杂事件检测技术是一种能够利用事件属性之间的关联,通过匹配规则或代数操作不断过滤连续到达的海量数据流,找出需要的符合某种关联约束的事件序列的一种技术。在现代制造业中,由于制造过程大型化和复杂化,大量的RFID,传感器节点被部署去监测生产现场的人,物料,设备,工艺过程,产品等,生产现场各种数据以自动快速采集方式形成海量数据流;由于制造环境中的网络延时,节点损坏,机器故障,环境干忧等原因可能会导致采集到海量的人,物料,设备,工艺过程,产品等制造数据发生乱序现象,导致了制造物联中海量乱序数据处理面临着难以及时处理的问题,加上制造物联规模非常宏大,生产过程存在广泛时空性,网络数据传输存在动态时延性,使得现有数据处理方法难以支撑制造物联海量乱序数据流的高效处理,急需研制出一种高效海量乱序数据流智能处理方法,以适应智能制造物联中海量乱序数据流处理的发展。所以如何在制造物联海量乱序数据流中开发一种复杂事件检测方法成为当前研究的一个方向。
[0003]当前,国内外关于在海量乱序数据流中复杂事件检测方面的研究,主要开展有在基于SASE方法上stack+sort方法,基于SASE方法上buffer+sort方法,K-Slack方法,speculative 方法,aggressive and conservative 策略方法,分布式 low-latency 处理方法等,但由于制造物联中制造数据组成结构复杂,存在多源性,制造数据多,存在海量性,制造环境恶劣,存在多干忧和乱序性等,导致上述检测方法在检测制造物联海量乱序数据流时存在检测效率低下的问题。


【发明内容】

[0004]本发明主要针对制造物联海量乱序数据流中复杂事件检测效率低下的问题,提出一种面向制造物联网海量乱序数据流复杂事件检测方法,该方法主要使用ENFA(ExtendedNondeterministic Finite Automaton)对海量乱序数据流中的事件进行选择,使用哈希表结构的存储关系对海量乱序数据流中的事件进行处理,从而实现海量乱序数据流中的复杂事件检测,改进了当前海量乱序数据流中复杂事件检测方法,扩展了现有复杂事件检测技术,提高制造物联海量乱序数据流复杂事件检测效率。
[0005]为实现上述目的,本发明的技术方案为:
[0006]一种面向制造物联网海量乱序数据流复杂事件检测方法,包括以下步骤:
[0007]A.计算复杂事件检测表达式的长度,根据复杂事件检测表达式生成对应ENFAjiJ建并初始化新的哈希表;
[0008]B.从海量乱序原子数据流中读取一个原子事件;
[0009]C.判断该原子事件是否被ENFA接收;若接收则跳转至步骤D,不接收则跳转至步骤B;
[0010]D.利用哈希表函数将被该原子事件映射到对应的数组上,并判断该数组是否存在该原子事件映射结果值;若不存在,则在该数组相应位置增加一个该原子类型的主链节点,再在主链节点上插入一个该原子类型的子链节点,同时更新主链节点中最大时间戳为该原子事件发生的最大时间戳,并使主链节点中计数器数值加I;若存在,则利用哈希表查找技术在子链上节点相应位置插入一个该原子类型的子链节点,同时主链节点中计数器数值进行加I ;
[0011]E.判断计数器数值是否等于ENFA的长度,若否,则跳转至步骤B ;若是,跳转至步骤F,
[0012]F.判断该子键上原子事件发生的最大时间戳减去此时原子事件发生时间戳是否小于滑动窗口时间TW;若是,则使用哈希查找技术输出哈希表中该原子事件对应数组中所有选项,得到检测结果,若否,则跳转至步骤B。
[0013]所述主链节点包括该原子事件类型,该类型原子最大时间戳和计数器,子链节点包括该原子事件类型和该原子发生时间戳。
[0014]本发明复杂事件检测方法扩展了传统NFA为ENFA,使其能够适应制造物联网海量乱序数据流中原子事件检测,提高了基于自动机NFA的事件检测能力,扩展了现有的复杂事件检测技术。
[0015]本发明利用哈希表函数映射作用将每一个被ENFA接收的原子事件进行映射和存储,对接收到的每个事件通过比较其时间戳将其插入到其对应位置上,实现了利用哈希表结构对海量无序数据流上事件进行快速处理和检测目的。
[0016]本发明利用计数器数值是否等于给定的模式匹配表达式长度和主键上原子事件发生的最大时间戳-此时原子事件发生时间戳是否小于TW(滑动窗口时间)共同判断制造物联中海量乱序数据流中此复杂事件检测是否完成;当完成制造物联海量乱序数据流中复杂事件检测时,最后需要使用哈希表查找技术从哈希表结构中输出复杂事件。
[0017]与现有技术相比,本发明的有益效果是:本发明提出的一种面向制造物联网海量乱序数据流复杂事件检测方法,采用了 ENFA和哈希表技术相结合的方法共同检测制造物联海量乱序数据流中复杂事件,解决现有基于有序数据流复杂事件检测方法难于高效检测海量乱序数据流的问题,大大提高了事件在海量数据流上的检测能力。本发明改进了当前基于自动机的复杂事件模式检测方法,对现有的复杂事件检测技术做了扩展,使其能够比较高效地实现在海量乱序数据中复杂事件的检测功能。

【专利附图】

【附图说明】
[0018]图1是本发明的方法过程图。
[0019]图2是本发明的方法工作原理图。
[0020]图3是本发明方法在不同规模乱序数据流中查找时间比较图。
[0021]图4是本发明方法在不同比例乱序数据流中查找时间比较图。
[0022]图5是本发明方法在不同规模乱序数据流中吞吐量方面比较图。
[0023]图6是本发明方法在不同比例乱序数据流中吞吐量方面比较图

【具体实施方式】
[0024]附图仅用于示例性说明,不能理解为对本专利的限制;
[0025]为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
[0026]对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0027]实施例1
[0028]本实施例对一种面向制造物联网海量乱序数据流复杂事件检测方法的具体匹配过程进行详细的说明。在本实例中,我们利用数据发生器模块去产生乱序事数据流,通过控制数据发生器模块参数生成事件类型的个数,数据流的概率分布等,以实现实验要求的需要。本实施例的实验工具为:Visual C++6.0,测试指标为:不同规模乱序和不同比例乱序的数据流中事件查找时间和吞吐量二方面,本实施例比较方法为:SASE+stack+sort方法和SASE+buf f er+sort 方法。
[0029]本发明的实施过程图如图1所示,它包含了:从海量乱序原子数件流读取原子事件,ENFA的匹配原子事件,利用哈希表结构存储和处理相关原子乱序事件,利用哈希表查找技术查找相关复杂事件四大部分功能。
[0030]当假设模式匹配表达式为SEQ(A,B, C)时,其具体检测过程工作原理如图2所示,归纳其具体实现步骤可分为如下几步:
[0031]A.计算给定的模式复杂事件匹配表达式SEQ (A,B,C)的长度为3,并根据模式匹配表达SEQ(A,B, C)生成相应的ENFA(见图2),创建新Hash表并对其进行初始化操作;
[0032]检测原子事件操作bf:
[0033]B.从原子事件流(见图2)中进行读取一个原子事件操作af ;
[0034]C.原子事件af能够被ENFA接收;转向步骤D执行;
[0035]D.利用哈希表函数将被该原子事件bf映射到对应的哈希表数组I位置上,由于是首次检测,该数组I位置上不存在该项数值,则在哈希表数组I位置上增加该原子类型主链节点,并在主链节点插入该原子类型对应的子链节点,同时更新主链节点中最大时间戳为该原子事件发生的最大时间戳,主链节点中计数器数值加I;
[0036]E.由于主链节点中计数器数值为1,不等于给定的模式匹配表达式长度3,则程序转向步骤B继续进行检测;检测程序从原子事件流中读取下一个原子事件操作af,
[0037]检测原子事件操作af:
[0038]B.从原子事件流(见图2)中进行读取一个原子事件操作af ;
[0039]C.原子事件af能够被NFA接收;程序转向步骤D执行;
[0040]D.利用哈希表函数将被该原子事件af映射到对应的哈希表数组I位置上,由于该数组I位置上存在该项数值,则利用哈希表查找技术在子链上bf节点前相应位置插入一个af原子类型的子链节点,主链节点中计数器数值进行加1,更新主链节点中最大时间戳为该原子事件发生的最大时间戳
[0041]E.由于主链节点中计数器数值为2,不等于给定的模式匹配表达式长度3,则程序转向步骤B继续进行检测;程序从原子事件流中读取下一个原子事件操作cf,然后进行与上述相类似检测工作;
[0042]F.当检测进程检测到Cf时,由于主链节点中计数器数值3等于给定的模式匹配表达式SEQ(A,B, C)的长度3,且该主键上原子事件发生的最小时间戳+TW(滑动窗口时间)>此时原子事件发生时间戳时,所以检测程序将会利用哈希表查找技术查找存储哈希表结构中事件,查找并输出检测结果afbfcf。
[0043]图3是本实施例在不同规模乱序数据流中查找时间比较图。
[0044]图4是本实施例在不同比例乱序数据流中查找时间比较图。
[0045]图5是本实施例在不同规模乱序数据流中吞吐量方面比较图。
[0046]图6是本实施例在不同比例乱序数据流中吞吐量方面比较图。
[0047]相同或相似的标号对应相同或相似的部件;
[0048]附图中描述位置关系的用于仅用于示例性说明,不能理解为对本专利的限制;
[0049]显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
【权利要求】
1.一种面向制造物联网海量乱序数据流复杂事件检测方法,其特征在于,包括以下步骤: A.计算复杂事件检测表达式的长度,根据复杂事件检测表达式生成对应的ENFA,创建并初始化新的哈希表; B.从海量乱序原子数据流中读取一个原子事件; C.判断该原子事件是否被ENFA接收;若接收则跳转至步骤D,不接收则跳转至步骤B; D.利用哈希表函数将被该原子事件映射到对应的数组上,并判断该数组是否存在该原子事件的映射结果值;若不存在,则在该数组相应位置增加一个该原子类型的主链节点,再在主链节点上插入一个该原子类型的子链节点,同时更新主链节点中最大时间戳为该原子事件发生的最大时间戳,并使主链节点中计数器数值加I ;若存在,则利用哈希表查找技术在子链上节点相应位置插入一个该原子类型的子链节点,同时主链节点中计数器数值进行加I ; E.判断计数器数值是否等于ENFA的长度,若否,则跳转至步骤B;若是,跳转至步骤F, F.判断该子键上原子事件发生的最大时间戳减去此时原子事件发生时间戳是否小于滑动窗口时间TW ;若是,则使用哈希查找技术输出哈希表中该原子事件对应数组中所有选项,得到检测结果,若否,则跳转至步骤B。
2.根据权利要求1所述的面向制造物联网海量乱序数据流复杂事件检测方法,其特征在于,所述主链节点包括该原子事件类型,该类型原子最大时间戳和计数器,子链节点包括该原子事件类型和该原子发生时间戳。
【文档编号】G06F17/30GK104408142SQ201410719615
【公开日】2015年3月11日 申请日期:2014年11月28日 优先权日:2014年11月28日
【发明者】程良伦, 王建华 申请人:广东工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1