
1.本发明涉及计算机软件领域,具体是指一种用于物联网基于边缘计算的复杂事件处理系统及方法。
背景技术:2.通常,物联网终端感知设备网络缺乏足够的硬件资源来分析和可视化物联网终端感知设备采集到的数据。这样的物联网终端感知设备网络通常用于获取数据并将其转发到一个更强大的设备,在那里数据可以被正确处理。这些设备可以用于监视、可视化和执行统计分析的实例服务器。当前使用智能物联网终端感知设备网络的一个挑战是与云服务的通信。由于嵌入式系统在物联网终端感知设备网络中应用较多,通常没有足够的硬件资源来进行数据的监测、分析和可视化。此外,通信具有挑战性,因为网络延迟是一个限制因素,特别是在实时应用领域。为了解决云计算的瓶颈和隐私安全问题,将事件流处理下推到目前能够在网络边缘进行计算和通信的设备上。基于这种现状,提出了一种边缘计算方法作为物联网终端感知设备网络的补充。通过使用边缘节点,一些计算密集型任务可以更靠近物联网终端感知设备网络,从而实现数据预处理。
3.边缘设备位于接近终端设备的位置,减少了网络延迟并使实时应用程序成为可能。边缘层作为中间层,可以与云服务器进行通信。一种可能的场景是将无线物联网终端感知设备网络产生的数据聚合并存储在一个边缘设备上。边缘设备可以作为下一步的一个步骤,将数据传输到云服务,云服务的资源,如存储、计算能力等,可以用来执行更多的资源密集型任务。潜在的任务可以是例如过滤大数据集或应用机器学习方法。
4.物联网(iot)中部署的大量物联网终端感知设备和智能对象为物联网实时监测应用提供了巨大的潜力,可以检测并对现实世界做出反应。物联网数据实时处理能力不足,阻碍了物联网实时监控应用的发展。物联网监测数据量增长迅速,具有明显的大数据特征。物联网监控系统需要在数据流到达时对数据进行持续及时的处理,以支持实时性能,提高洞察能力和决策能力,以支持复杂的业务逻辑。关注物联网数据实时处理的两个问题:1)如何将大量的原始感知数据有效地转化为有意义的复杂事件,2)如何适应监控业务逻辑的复杂性和可变性。提出了一种用于物联网实时处理的通用复杂事件处理(cep)系统及方法。
5.复杂事件处理(cep)是提取信息的主要技术。cep是一种基于一组预定义规则的数据处理技术,这些规则规定应该如何处理数据流,以及应该生成哪些新的事件流作为输出。事件可以是许多感兴趣的独立事件(例如高于正常温度)或复杂事件(例如持续高温),它们对应于业务的特定情况或模式。
6.本发明提出了一种包含原始事件、简单事件和复杂事件的物联网感知事件层次模型,降低了物联网感知事件建模的复杂性。该模型支持复杂的时间和空间语义,通过事件建模语言对物联网事件进行建模分解并定义复杂事件。基于此模型,提出了一种基于边缘计算的通用复杂事件处理系统架构,该架构将系统部署在终端感知设备与云端应用程序之间的物联网原始数据生成位置的网络边缘。将复杂事件定义映射到cep规则逻辑脚本,及时检
测潜在异常事件。所提出的cep机制是通用的,适用于任何物联网和cep引擎。
技术实现要素:7.本发明技术解决问题:克服现有技术的不足,提供一种用于物联网的基于边缘计算的复杂事件处理系统及方法,对低延迟,高吞吐需求的业务流程场景,基于移动边缘计算技术,设计符合低延迟,高吞吐需求场景的实时处理模型,通过复杂事件处理技术,将实时数据流进行预处理,达到解决业务难题、提高边缘端性能的目的;同时通过事件层次模型对简化复杂事件,在保证隐私安全、低延迟的前提下,大大提升边缘节点信息处理能力以实现高吞吐高并发。
8.本发明技术解决方案:一种用于物联网的基于边缘计算的复杂事件处理系统,包括:原始事件感知模块、原始事件处理模块及复杂事件处理模块;
9.原始事件感知模块:用于物联网的复杂事件处理系统部署在接近物联网原始数据生成位置的网络边缘,称为边缘计算;按照预定义的规则从物联网终端感知原始事件并传递给边缘计算服务器原始事件处理模块,所述原始事件是最开始从物联网终端数据源产生未被处理的事件且不可被分解的原子事件;
10.原始事件处理模块:包括数据预处理模块和事件解析器;边缘计算服务器的数据预处理模块对重复无关数据进行过滤,并写入边缘计算服务器原始事件库,如果原始事件是点时间事件则将此事件交给边缘计算服务器的复杂事件处理模块,如果是持续时间事件则先存到边缘计算服务器原始事件库,需要时再发到边缘计算服务器的复杂事件处理模块;事件解析器实时从边缘计算服务器原始事件库中读取原始事件,根据预先定义的匹配规则对原始事件进行过滤和组合获得简单事件;
11.复杂事件处理模块:根据边缘计算服务器原始事件处理模块得到的简单事件,通过边缘计算服务器的复杂事件处理模块中的事件解析器进一步进行事件模式检测、事件过滤、事件抽象、事件层次结构建模、事件聚合和转换及事件之间的关系检测,以得到复杂事件;所述复杂事件流与规则库中的规则执行模式匹配,如果匹配成功,将计算并生成更复杂更高级的复杂事件并发送给复杂事件处理引擎;所述复杂事件是描述一系列事件按事先编写的物联网业务逻辑规则发生的事件;复杂事件处理模块中,将匹配规则用事件处理语言即epl写入业务逻辑脚本中,并存放到边缘计算服务器规则库中,复杂事件处理引擎根据边缘计算服务器规则库里的规则,对复杂事件进行匹配,所述物联网事件间的关系包括事件、空间、依赖和因果;再根据物联网业务需求决定是否存放边缘计算服务器复杂事件库,或者传递给具体订阅云端服务器;基于温湿度传感器的智慧物流应用中,基于匹配规则,对温湿度传感器检测值与进行比较,若匹配成功,则将结果传递给订阅的云端服务器并发出警示。
12.所述复杂事件处理模块中,一个物联网复杂事件匹配规则由一个有向无环图表示也称此图为事件检测图,即edg=(op,x);图的节点是物联网原始事件或复杂事件,将事件放于叶子节点上,用边来连接事件与操作符则生成一个事件检测图;带有|op|节点,edg是事件检测图,op是物联网事件之间的操作符,x是事件检测图的边数即物联网事件之间的操作数;opi∈{seq,and,or}或opi是一个聚合算子,此表达式中,opi是op可取集合中物联网事件关系运算符的任何一个值;相互接收输入的操作之间有|x|边(opi
→
opj);为了多匹配优化目的,事件检测图edg的输出操作符连接到顶层或操作符;并运算即and操作符在所有
参与物联网事件发生时输出一个复杂事件,当所有参与物联网事件按指定的时间顺序发生时,序列运算即seq操作符输出一个复杂事件,或运算即or在任何参与物联网事件发生时输出一个复杂事件,聚合操作符接受指定运行时间的频率参数,如果一个物联网事件间的操作符接受频率参数为1,则将在每次接收到新的输入事件时运行,聚合操作符与指定的阈值一起使用;然后,当执行的聚合超过或低于该阈值时,生成复杂事件。
13.本发明的一种基于边缘计算的复杂事件处理方法,包括以下步骤:
14.原始事件感知步骤:根据业务要求从物联网终端感知设备实时的获取原始事件;为每个原始事件生成一个元组;将元组根据物联网业务的格式要求进行封装并通过蓝牙或wi
‑
fi连接等方式,根据物联网业务要求的物联网传输协议传递给靠近物联网感知设备的边缘计算服务器中的原始事件处理模块;
15.原始事件处理步骤:多个套接字同时接收来自不同物联网终端感知设备的输入数据流,反序列化流并将相应的流解析为javascript对象符号元组;此外,原始事件到达时间被附加到每个元组中,这些元组被放入边缘计算服务器线程安全阻塞队列中,该队列按先进先出的顺序顺序处理数据;边缘计算服务器预处理模块根据物联网业务需求从物联网原始事件感知模块传递的边缘计算服务器线程安全阻塞队列中请求数据,对重复的无关物联网事件进行过滤以及一系列的预处理之后,形成原始事件并写入边缘计算服务器原始事件库;如果原始事件是点时间事件即实时要求很高,需要立刻处理的事件,事件解析器立即将点时间事件发送到边缘计算服务器的复杂事件处理模块,以确保实时处理性能;对于持续时间事件,事件解析器将从边缘计算服务器原始事件库中获取事件和处理相关的原始事件,以生成持续时间事件并发送到复杂事件处理模块;事件解析器实时从边缘计算服务器原始事件库中读取原始事件,根据预先定义的匹配规则算法对原始事件进行过滤并组合,获得简单事件;
16.复杂事件处理步骤:简单事件进入事件解析器进行预处理之后形成复杂事件;规则库中的匹配规则被解析成事件检测图;物联网事件流与规则库中的规则进行模式匹配;如果匹配成功,根据物联网业务需求决定是否需要存放边缘计算服务器复杂事件库,或者传递给具体订阅的云端服务器;如果匹配不成功则将复杂事件存储到边缘计算服务器复杂事件库中;每个事件流都与一个单独的线程安全阻塞队列相关联,使用生产者
‑
消费者队列的模式即生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,复杂事件处理引擎作为生产者,边缘计算服务器复杂事件库或者云端服务器可以作为某个事件流的消费者;如果要送到云端服务器,边缘计算设备通过wi
‑
fi或蜂窝网络与云端服务器进行通信。
17.本发明与现有技术相比的优点在于:
18.(1)物联网终端感知设备网络与云端服务器通信,需要较高的带宽和能耗,而且实时性和隐私安全没法保证。本发明通过边缘计算,在靠近物联感知设备的网络边缘侧,融合网络、计算、存储、应用核心能力,具有高安全性、低延迟、低带宽、低能耗等特点。
19.(2)传统的物联网系统数据处理一般采用云端服务器的关系数据库。在数据处理之前,需要对数据进行存储和索引,这造成了很大的延迟,缺乏对大数据进行实时采集、处理和分析的能力。在位于物联网网络边缘的基于边缘计算的cep系统上运行原始感知数据的存储和处理,可以降低网络传输的通信开销,提高物联网云端服务器的吞吐率,提高整个
物联网实时系统的性能。另外原始数据携带各种敏感信息。边缘cep系统处理后,不包含敏感信息的业务数据或复杂事件将以复杂事件的形式发送到云端服务器,有利于隐私保护。
附图说明
20.图1为本发明系统体系结构;
21.图2为本发明中的事件层次化模型图;
22.图3为本发明中的事件检测图;
23.图4为本发明物联网的简单事件类定义图;
24.图5位本发明nfa的状态示意图。
具体实施方式
25.下面结合附图及实施例对本发明进行详细说明。
26.如图1所示,本发明系统包括:原始事件感知模块、原始事件处理模块及复杂事件处理模块;原始事件感知模块按照预定义的规则从物联网终端感知设备获取原始事件并传递给原始事件处理模块;原始事件处理模块对原始感知事件进行预处理之后按照预定规则将事件放到边缘计算服务器原始事件库或者传给事件解析器;复杂事件处理模块从原始事件处理模块拿到简单事件之后通过事件解析器进一步进行事件模式检测、事件过滤、事件抽象、事件层次结构建模、事件聚合和转换及事件之间的关系检测以得到更复杂更高级的复杂事件。
27.下面分别对各模块进行详细说明。
28.1.原始事件感知模块
29.整个原始事件感知模块主要是实时获取物联网终端感知事件,包括物联网终端数据感知、数据封装以及数据传输,下面逐一介绍。
30.(1)数据感知
31.物联网终端感知设备实时获取所需要的原始事件。
32.(2)数据封装
33.将感知到的原始事件根据边缘服务器要求进行封装,为每个原始事件生成一个元组。
34.(3)数据传输
35.将元组根据物联网业务的格式要求进行封装并通过蓝牙或wi
‑
fi连接等方式,根据物联网业务要求的物联网传输协议传递给靠近物联网感知设备的边缘计算服务器中的原始事件处理模块。
36.2.原始事件处理模块
37.该模块主要对原始事件感知模块的数据进行预处理之后生成原始事件,将原始事件传递给事件解析器或者存储在边缘服务器原始事件库中,最后对原始事件进行过滤并组合,获得简单事件。
38.2.1事件层次模型
39.将物联网事件按粒度分为原始事件、简单事件和复杂事件。物联网感知事件处理过程如图2所示。图2显示了从物联网事件生成到物联网事件消费的整个过程。原始事件由
物联网终端感知设备生成。原始事件通过过滤和组合来生成简单事件。复杂事件是由简单事件的事件模式匹配生成的。复杂事件被发送到云端服务器用于事件消费。复杂事件处理位于物联网终端感知设备和云端服务器之间。
40.简单事件和复杂事件都是从小粒度事件中计算出来的。它们之间的区别是:简单事件的计算规则是通用的,粒度适中,可重用性较好。而复杂事件的计算规则是根据实际业务需求定制和确定的。
41.2.2事件预处理
42.边缘计算服务器的数据预处理模块对重复无关数据进行过滤,并写入边缘计算服务器原始事件库;
43.原始事件是最开始从物联网终端数据源产生未被处理的事件且不可被分解的原子事件。将原子事件e表示为:
44.e=(id,deviceid,devicetype,location,starttime,endtime,keyvalue list);
45.id是原子事件的唯一标识符,它是一个序列号。deviceid是感知设备的唯一id。devicetype表示物联网终端感知设备的类型。location(位置)是指物联网终端感知设备的位置。keyvalue列表是由键
‑
值对组成的列表,表示多个属性及其值,它是可扩展的,表示温度传感器的温度值,<湿度,humvalue>表示物联网湿度传感器的湿度值。starttime和endtime是一个物联网事件的开始时间和结束时间。物联网点时间事件满足starttime=endtime。以一个原始事件为例,“位于
‘
鸡舍5区域’的
‘
ds000580’温湿度传感器检测到2018年10月14日9:30温度为20℃,湿度为35%”,表示为:e=(“0001”,“ds000580”,“area 5”,2020
‑
10
‑
8 9:30,2020
‑
10
‑
89:31,<temperature,20>,<humidity,35%>).
46.如果原始事件是点时间事件即实时要求很高,事件解析器将立即将其发送到边缘计算服务器的复杂事件处理模块,以确保实时处理的性能;
47.如果是持续时间事件,事件解析器将从边缘计算服务器原始事件库中获取事件和处理相关的原始事件,以生成持续时间事件并发送到复杂事件处理模块;
48.如果starttime≠endtime,则该物联网事件不是点时间事件,而是持续性时间事件。通过分析原始事件得到,持续性时间事件可能不是原始事件,如rfid标签的停留事件。持续时间事件也可以是原始事件,如摄像机视频数据事件,记录了一段持续时间的视频事件中starttime为视频的开始时间,endtime为视频的结束时间。
49.对于复杂事件,starttime是构成复杂事件的所有原子事件的最小开始时间,以及结束时间是构成复杂事件的所有原子事件的最大结束时间。
50.为方便描述,原始事件可以简单地表示为原始事件rae(d,l,t)来表示特定的设备的瞬时时间和空间状态,d指的传感装置,l是指的位置空间传感设备,和t是指事件发生的时候;将上面的原始事件简化为rae=(“001”,“area 5”,”2020
‑
10
‑
8 9:20”),意思是5号区域的001传感器检测到了2020
‑
10
‑
8 9:20时的温湿度。
51.事件解析器实时从边缘计算服务器原始事件库中读取原始事件,根据预先定义的匹配规则对原始事件进行过滤和组合以获得简单事件;
52.2.3简单事件处理
53.简单事件被引入到cep模型中。在cep引擎之前,进行简单的事件处理,如过滤掉重复事件、合并获取集合事件等,可以减轻cep引擎的处理负担,有效提高系统整体处理性能。
54.从原始事件中提取一个简单事件。加工过程如下:
55.(1)过滤不相关的事件,即应用程序不感兴趣的原始感知事件可以被忽略。
56.(2)过滤重复的事件。可过滤多个覆盖同一区域的物联网终端感知设备产生的空间重复事件。例如,描述感知设备d在时间t时在监测区域l的实时空间状态的单一事件oe(d,l,t)。大部分oe对于一些可移动设备,如rfid标签,可能是无用的信息。
57.(3)过滤以获取重要事件。例如,对于一个rfid标签,如果呆在某一地区很长一段时间,会有一组原始事件rae(d,l、t),但是应用程序通常只关心两个时刻的标签进入区域和离开区域,即进入事件ae(d,l、t)和退出事件de(d,l,t)可以从一组原始事件rae(d,l、t)筛选出重要的事件。
58.在上述表述中,ae(d,l,t)表示t时刻感知装置d出现在监测区域l,de(d,l,t)表示t时刻感知装置d消失在监测区域l。
59.se(d,l,ts,te)描述设备d从ts时间停留在监测区域l到te时间。通过匹配相邻ae(d,l,t)和de(d,l,t)来检测se(d,l,ts,te)。经常使用se(d,l,ts,te),cep的时间推理浪费了不必要的计算成本,因此se(d,l,ts,te)被归类为简单事件。
60.se=(“001”,“area 5”,”2020
‑
10
‑
8 9:20”,“2020
‑
10
‑
8 9:30”),描述001号设备从9:20停留在鸡舍监测区域5到9:30时。
61.同理,再现事件rpe(d,l,ts,te)描述设备d在区域l中再现,ts、te为物联网事件时刻消失的时间和重现的时间。通过匹配相邻的de(d,l,t)和ae(d,l,t)来检测rpe(d,l,ts,te)。
62.根据物联网点时间事件和持续时间事件事件的定义,oe(d,l,t),ae(d,l,t)和de(d,l,t)是点事件,se(d,l,ts,te),rpe(d,l,ts,te)是持续时间事件。
63.集合事件是通过组合获得的。许多应用程序关注特定时刻特定区域中特定类型的物联网终端感知设备事件的数量或集合,而忽略每个单独的数据事件。例如,在特定时间到达特定区域的rfid标签的数量,以及rfid标签的集合可以通过组合来提取。集合事件ce(e、l、t)
(e.devicetype=“rfid标签”)
,其中e为设备集合,e.size为集合中设备的数量,l指的是区域,t指物联网事件的时间,下标表达式定义了属性约束,如(e.devicetype=“rfid标签”)定义了约束条件:设备类别是rfid标签。以上述rfid事件为例,描述了整个设备移动过程中可能发生的事件。这些简单事件可以表示更广泛的物联网终端感知设备事件,同时事件属性被扩展,数据属性被添加到表中所示的keyvalue列表中。
64.简单事件定义对于大多数物联网感知设备是通用的,简单的事件处理算法如下:
65.(1)输入原始事件rae(d,l,t);
66.(2)如果d是不能移动的设备,那么oe=rae(d,l,t),输出oe(d,l,t);
67.(3)如果rae(d,l,t)是一个进入事件ae(d,l,t),则输出ae(d,l,t),并匹配结束事件de(d,l,t),如果匹配成功,则输出再现事件rpe(d,l,ts,te);如果匹配失败,则将设备d信息放到收集事件ce(e、l、t)中;
68.(4)如果rae(d,l,t)是一个退出事件de(d,l,t),输出de(d,l,t),并匹配开始事件ae(d,l,t),如果匹配成功,则输出简单事件se(d,l,ts,te);如果匹配失败,则从集合事件ce(e、l、t)中消除d设备信息;
69.在上面的算法中,将再现的rae即再现的ae或de过滤后不发送给cep模块,可以减
轻cep模块不必要的负担。
70.事件解析器实时从边缘计算服务器原始事件库中,根据事件处理算法对原始事件进行过滤和组合,获得简单事件,包括:1)点时间事件,如入口事件ae,离开事件de和单一事件oe。2)持续时间事件。根据ae和de匹配,停止获取事件se和重现事件rpe。3)根据ae和de的统计得到收集事件ce。
71.事件解析器将所有简单事件作为java对象输出到复杂事件处理模块。umll类图,如图4所示。由如入口事件additionevent,离开事件delectionevent和单一事件occurenceevent泛化成点时间事件;点时间事件stopevent和再现事件reppearevent泛化成持续时间事件。点时间事件、集合事件和持续时间事件泛华成物联网事件。
72.3.复杂事件处理模块
73.复杂事件处理模块,主要是根据简单的事件来推理复杂的事件。
74.复杂事件是一种基于一组预定义规则的数据处理技术,这些规则规定应该如何处理数据流,以及应该生成哪些新的事件流作为输出。
75.简单的来说一个或多个由简单事件构成的事件流通过一定的规则匹配,然后输出用户想得到的数据,满足规则的复杂事件。
76.输入:一个或者多个由简单事件构成的事件流;
77.处理:识别简单事件之间的内在联系,多个符合一定规则的简单事件构成复杂事件;输出:满足规则的复杂事件
78.3.1事件检测图模型
79.事件检测图模型,原始事件可能涉及可疑的移动电话呼叫或信用卡交易,或异常的传感器温度测量,应用程序定义由操作符组成的cep匹配规则,每个联网复杂事件匹配规则由一个有向无环图表示也称此图为事件检测图如图3所示。图的节点是物联网原始事件或复杂事件,将物联网感知事件放于叶子节点上,用边来连接事件与操作符则生成一个事件检测图。
80.cep匹配规则是识别简单事件是否符合业务规则的主要方法,原始事件由传感器设备生成,对原始事件进行过滤和组合以生成简单事件;复杂事件由简单事件的事件模式匹配生成,复杂事件被发送到应用程序以使用事件,复杂事件处理位于物联网终端感知设备和应用程序之间。
81.3.2复杂事件定义
82.令原子事件为e:
83.e=(id,deviceid,devicetype,location,starttime,endtime,keyvalue list)
ꢀ①
84.e为事件集,如下:
85.e={e|e is an event defined as
ꢀ①
.}
ꢀꢀꢀꢀꢀ②
86.事件集由很多原子事件构成,因此将复杂事件表示为:
87.c=f(e1,e2...,en),(en∈e,n>0)
ꢀꢀꢀ③
88.很多原子事件构成简单事件,多个简单事件组合生成事件集,多个事件集在满足一定条件时会生成一个复杂事件。
89.在
③
中,f是事件构造函数。函数包含各种事件操作符。复杂事件通常是通过将事件构造函数应用于组成事件来定义的,这些事件可以是简单事件,也可以是复杂事件。
90.令e1为area01,001号温湿度传感器2018年10月14日9:30的温湿度,同理e
30
为2018年10月14日10点时的温湿度,因此se=(e1,e2),复杂事件c=avg(e1,e2,..e
30
),为30分钟之内区域1、001号温湿度传感器的平均值。
91.事件操作符如下:
92.a)e1∧e2定义e1和e2发生没有时间限制。(e1∧e2)t表示e1和e2都发生在t时间内。
93.b)e1∨e2表示e1或者e2其中之一发生。
94.c)e表示e1没有发生。
95.d)聚合,定义一组事件实例的统计信息或实例的属性值,包括count(e)、sum(e,key)、max(e,key)、min(e,key)、avg(e,key)等。它分别计算每个实例的键属性的实例数、总和、最大值、最小值和平均值。
96.e)et定义复杂事件e的有效时间范围,其中t表示时间窗口持续时间,单位为s(秒)、m(分钟)、h(小时)等。
97.3.3复杂事件案例
98.使用事件建模语言为物联网实时监控应用程序定义复杂事件。
99.实例:水果运输和储存物联网监控系统
100.假设水果的最佳贮藏条件是温度5
‑
10℃,湿度85%
‑
90%。水果超市水果由货车供应。分别在水果超市和供应商货车上部署两个温湿度传感器节点ds000560和ds000570来检测温湿度。两个rfid阅读器a和b分别放置在超市入口处和供应商货车门口。供应商货车上的每箱水果都有一个独特的rfid标签。
101.将水果顺利从货车运输到超市的要求如下:1)水果超市为温度5
‑
10℃,湿度85%
‑
90%。2)车内温度5
‑
10℃,湿度85%
‑
90%。3)水果从货车运到超市需要不到10分钟的时间。如果满足上述条件,可将水果带入超市,否则进行报警处理。
102.cep系统部署在接近原始数据生成位置的网络边缘的边缘计算服务器。cep系统处理大量的原始事件,生成复杂事件,然后根据物联网业务需求决定是否存放边缘计算服务器复杂事件库,或者传递给具体订阅云端服务器。由于复杂事件数据量远远小于原始数据量,因此传输到云端的数据量可以大大减少。减少通过网络传输的物联网事件数据量,可以有效提高整个物联网系统的实时处理性能。
103.基于边缘计算的cep系统能够在原始数据生成并传输到边缘计算服务器时及时地对原始事件进行处理。在边缘对原始事件进行处理的实时性优于将原始数据传输到云端进行处理。
104.边缘服务器上的cep系统可以运行在物联网网关上,也可以运行在与物联网网关在同一局域网中的一台单独的计算机上。
105.3.4复杂事件处理引擎
106.基于cep规则引擎实现了边缘计算服务器上的复杂事件处理模块。原始事件流与规则库中的匹配规则执行模式匹配。如果匹配成功,将推断并生成的复杂事件发送给云端服务器和订阅的云端应用程序。
107.匹配规则的定义是发现复杂事件的基础。不同的应用程序系统定义不同的规则库并获得不同的高级复杂事件。
108.规则库是根据应用程序需求预定义的,大量规则存储在规则库中。使用规则来描述复杂事件的判断。如“如果一个rfid标签进入一个区域,但视频中有两个以上的人脸识别,应出现异常事件,系统应报警”,“如果温度c2
‑
c1>10℃,c1后10秒c2出现,温度上升过快,系统应报警”。可以看出,该规则由两部分组成。第一部分是条件,表示事件模式,描述原始事件之间的关系。第二部分是计算结果,是对复杂事件发生的具体处理。
109.flink cep是在flink之上实现的复杂事件处理库,它允许在事件流中检测事件的模式,有机会掌握数据中重要的事项。
110.为了提高效率,将在flink cep提供的基础模式之上编写模式匹配规则。
111.flink cep是在flink之上实现的复杂事件处理(cep)库,它允许在事件流中检测事件的模式,让有机会掌握数据中重要的事项。
112.实际上flink cep首先需要用户创建定义一个个规则,然后通过链表将由前后逻辑关系的规则串在一起,构成模式匹配的逻辑表达。
113.然后需要用户利用非确定有限自动机编译器,将规则进行分拆,创建出非确定有限自动机对象,非确定有限自动机对象包含了该次规则匹配的各个状态和状态间转换的表达式。
114.图5中给出了非确定有限自动机的状态示意图。
115.flink cep
‑
三种状态迁移边:
116.take:表示事件匹配成功,将当前状态更新到新状态,并前进到“下一个”状态;
117.procceed:当事件来到的时候,当前状态不发生变化,在状态转换图中事件直接“前进”到下一个目标状态;
118.ignore:当事件来到的时候,如果匹配不成功,忽略当前事件,当前状态不发生任何变化。
119.3.5flink的cep使用
120.(1)创建maven项目,将flink cep依赖项添加到maven项目的pom.xml文件中。
121.(2)使用pattern api获取输入数据流,datastream<event>event1=input.keyby(new keyselector<event,integer>()即从输入流中拿到event1;event1.getname().equals(“temperature”)即从event1事件中实时获取温度。
122.(3)定义一组模式匹配规则,pattern pattern=pattern.where(new iterativecondition<event>(){filter(event1,temperature=42)}),当event1事件的温度te temperature为42时将匹配到此模式;
123.(4)将这组规则与数据流进行绑定生成patternstream,patternstream<event>patternstream=cep.pattern(event1,pattern),即事件流eveent1与模式匹配规则pattern进行匹配。
124.(5)用select方法从patternstream中提取输出数据流,patternstream.select(new patternselectfunction<event,alert>(){select(map<string,list<event>>pattern)}即根据预先定义的pattern从数据流中提取匹配的数据。
125.(6)获取select方法提取的输出事件流,return createalert(pattern),即根据匹配规则pattern返回一个警告,警示温度已经超过42度,进行进一步的处理。
126.本发明其中能够根据事件处理节点的实际运行负载,并对系统规模进行水平扩展
和伸缩,使得整个系统可以承载高丼发。所设置的节点管理器可以对系统中的单件处理公点规模进行动态调整,在某个事件处理节点发生故障时,可以从其对应的边缘节点组中随机选择一个正常节点进行复制,以保证整个事件处理节点组的高可川性,从而保证了上层业务的连续性,大大提高了复杂事件处理系统的整体可靠性,满足了大数据流、高并发、高实时性数据分析需求。
127.本发明未详细阐述部分属于本领域公知技术。
128.在此说明书中,本发明已参照其特定的实施例做了描述。但是,很显然仍可以做出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。