[0001] 本发明涉及物联网,特别涉及在物联网进行数据过滤的方法和装置。
[0002] 物联网是新一代信息技术的重要组成部分,特指物物相连的网络。具体地,物联网是指通过各种信息传感设备,如传感器、射频识别(RFID)技术、全球定位系统、红外感应器、激光扫描器、气体感应器等各种装置与技术,实时采集任何需要监控、连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,与互联网结合形成的一个巨大网络。物联网目的是实现物与物、物与人、所有的物品与网络的连接,以方便识别、管理和控制。
[0003] 在物联网中,应用网关(application gateway)位于应用服务器和底层传感网络之间,用于汇聚数据、分发数据。由于物联网中数据量很大,而且并不是每个应用都会关心所有的数据。所以,每个应用需要在应用网关中定义一些规则进行数据过滤,只有那些符合应用所定义规则的物联网数据才会被应用网关转发至应用。由于物联网中的数据量非常大,而且每一条数据都要进行规则集合的匹配,这对应用网关中的数据过滤(规则匹配)引擎提出了很高的要求。
[0004] 在现有技术中,复杂事件处理系统(Complex Event processing system)可以实现数据过滤,在复杂事件处理系统中,应用可以预先定义事件模式(即事件之间的先后关系),复杂事件处理系统在接收处理大量事件的同时,进行预定义的事件模式匹配,一旦事件模式匹配成功,立刻会通知应用。传统的复杂事件处理系统使用状态机的原理来进行事件模式的匹配。如果直接将复杂事件处理系统应用于物联网场景,由于物联网中事件(数据)的数目非常大,应用定义的规则也比较多,复杂事件处理系统需要保存很多状态信息,事件匹配很难获得快速高效的效果。
[0005] RETE算法是实现数据过滤的另一种方法,应用定义基于事实的规则集合,当客户端不断的将一些事实放入RETE的规则引擎中,RETE规则引擎可以基于所有的收到的事实集合和预定义的规则集合,推理出合理的结论。物联网仅需针对每个单独的数据进行过滤,使用RETE算法反而会造成过多历史信息的保存开销,不利于实现高效的匹配过程。
[0006] 因此需要一种快速高效的用于物联网的数据过滤的方法。
[0007] 基于上述问题,本发明提供一种在物联网中进行数据过滤的方法和装置。
[0008] 根据本发明的第一方面,提供一种在物联网中进行数据过滤的方法,其中所述物联网包括多个传感器设备,该方法包括:输入应用部署的规则;将所述规则转化为由静态谓词和动态谓词构成的至少一个子谓词表达式;输入所述传感器设备采集的数据;利用所述子谓词表达式的静态谓词和动态谓词对所述采集的数据进行顺序匹配;以及将匹配的数据分发给所述应用。[0009] 根据本发明的第二方面,提供一种在物联网中进行数据过滤的装置,其中所述物联网包括多个传感器设备,该装置包括:规则输入模块,被配置为输入应用部署的规则;规则转化模块,被配置为将所述规则转化为由静态谓词和动态谓词构成的至少一个子谓词表达式;数据输入模块,被配置为输入传感器设备采集的数据;数据匹配模块,被配置为利用所述子谓词表达式的静态谓词和动态谓词对所述采集的数据进行顺序匹配;以及数据分发模块,被配置为将匹配的数据分发给所述应用。
[0010] 根据本发明实施例的在物联网中进行数据过滤的方法和装置将规则划分为静态谓词和动态谓词,并且按照先匹配静态谓词,再匹配动态谓词的顺序进行匹配,加快谓词匹配的速度,快速高效的实现物联网的数据过滤。
[0018] 图1示出了适于用来实现本发明实施方式的示例性计算系统200的框图。如图1所示,计算机系统100可以包括:CPU (中央处理单元)10URAM (随机存取存储器)102,ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些设备中,与系统总线104耦合的有CPU 101 RAM 102、ROM 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图1所述的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
[0027] 图2示出物联网的架构示意图,其中物联网包括应用、应用基础架构(Application Infrastructure), 广域网(Wide Area Network)、接入网络(Access Network)和传感网络(Sensor Network),传感网络由多个传感器设备(Sensor device)构成,传感器设备从外界收集数据信息,通过广域网传输到应用基础架构,应用基础架构包括信息数据库和应用网关(Application gateway),在应用网关实现数据过滤和分发,在数据过滤过程中,需要查询信息数据库进行过滤规则的判断。
[0028] 图3示出根据本发明实施例在物联网中进行数据过滤的方法,其中所述物联网包括多个传感器设备,包括:在步骤S301,输入应用部署的规则;在步骤S302,将所述规则转化为由静态谓词和动态谓词构成至少一个子谓词表达式;在步骤S303,输入所述传感器设备采集的数据;以及在步骤S304,利用所述子谓词表达式的静态谓词和动态谓词对所述采集的数据进行顺序匹配;在步骤S305,将匹配的数据分发给所述应用。
[0029] 在步骤S301,输入应用部署的规则,其中所述规则由谓词构成,其中应用程序可以根据其业务逻辑部署规则,假设物联网系统中应用部署的规则集合为,其中每条规则Ri韵最小可分组成单元为谓词。例如,用于温度控制的应用可以定义一个如下的规则R1:
[0035] 其中规则R1是由三条谓词构成的谓词集合,其中三条谓词分别是:
[0039] 在步骤S302,将所述规则转化为由静态谓词和动态谓词构成至少一个子谓词表达式,进一步包括根据传感器设备的信息将所述规则中的谓词拆分为静态谓词和动态谓词,其中所述传感器设备的信息包括所述传感器设备的静态属性的数据记录;其中传感器设备的信息保存在物联网的信息数据库中,传感器设备的信息包括所述传感器设备的静态属性的数据记录,例如设备标识、地理位置、设备类型以及厂商,静态属性意味着不会随时间而变化。静态谓词被定义为与传感器设备的静态属性相关的谓词,例如,上述规则中的谓词1和3是静态谓词。通常情况下,传感器设备采集的数据中除了包含静态属性的数据之外,还包含随时间变化的数值,定义这些数值的属性为动态属性,例如,温度传感器测量的温度值,动态谓词被定义为与传感器设备采集的数据的动态属性相关的谓词,例如上述规则中的谓词2。
[0040] 根据本发明的实施例,将所述规则转化为析取范式的表示形式【disjunctive normal form (DNF)】,所述析取范式包括由静态谓词和动态谓词构成的至少一个子谓词表达式。析取范式(DNF)是逻辑公式的标准化(或规范化),它是合取子句的析取。一个逻辑公式被认为是析取范式的,当且仅当它是一个或多个文字的一个或多个合取的析取(disjunction of one or more conjunctions of one or more literals),DNF中的命题算子是与、或和非,例如下列公式都是析取范式:(Α Λ B) V C,A V B。将规则Ri转化为析取范式的表示形式,析取范式包括至少一个以逻辑与操作连接起来的子谓词表达式,静态谓词位于每个子谓词表达式的前面,便于最先计算,如果该静态谓词表达式的值为假,表明该子谓词表达式的值为假,通过此方法能加速谓词的匹配速度。例如,对于某一规则,其谓词表达式由多个谓词构成,根据信息数据库中记录的静态属性将谓词划分为静态谓词和动态谓词,例如,规则Ri的谓词表达式为A Λ (B V (D Λ E)),由Α,B,D,E四个谓词构成,其中,B和D为静态谓词,A和E为动态谓词,将该规则转化后变为析取范式的表示形式(B Λ Α) V (D Λ A Λ Ε),该析取范式包含两个子谓词表达式,分别为(B Λ Α)和(D Λ A Λ Ε),且静态谓词B和D分别处于子谓词表达式的前面。本领域技术人员可以理解,除了析取范式的转化方式,利用谓词可交换的性质,将静态谓词放置于动态谓词之前,并将规则转化为由静态谓词和动态谓词构成的至少一个子谓词表达式的任何现有的和将来的实现方式都在本发明的保护范围内。
[0041] 根据本发明的实施例,还包括建立每个子谓词表达式的动态谓词匹配表,其中动态谓词匹配表记录了子谓词表达式包含的动态谓词和所述动态谓词在所述动态谓词匹配表中的地址。
[0042] 根据本发明的实施例,还包括建立每个子谓词表达式的静态分发表,具体地,将传感器设备的静态属性的数据记录与所述子谓词表达式包含的静态谓词进行匹配;响应于匹配结果为真,将所述传感器设备的ID和所述子谓词表达式包含的动态谓词在所述动态谓词匹配表中的地址对应地记录在所述静态分发表中。可以用指针来描述每个传感器设备ID和子谓词表达式包含的动态谓词在所述动态谓词匹配表中的地址之间的对应关系。
[0043] 图4示出根据本发明实施例建立子谓词表达式的动态谓词匹配表和静态分发表的流程,在步骤S401,向规则集合中输入应用部署的规则;在步骤S402,从规则集合中取出一条规则;在步骤S403,根据传感器设备的信息将所述规则中的谓词拆分为静态谓词和动态谓词;在步骤S404,将所述规则转化为析取范式的表示形式,其中该析取范式包括由静态谓词和动态谓词构成至少一个子谓词表达式;在步骤S405,针对析取范式中的每个子谓词表达式,建立动态谓词匹配表;在步骤S406,针对析取范式中的每个子谓词表达式,建立静态分发表;在步骤S407,判断规则集合是否为空,如果判断结果为是,则过程结束;如果判断结果为否,则过程返回步骤S402。
[0044] 在步骤S303,输入所述传感器设备采集的数据,其中采集的数据包含传感器设备的ID、动态属性的数据以及静态属性的数据。
[0045] 在步骤S304,利用子谓词表达式的静态谓词和动态谓词对数据进行顺序匹配,在静态分发表中查找数据中包含的设备ID,如果查询结果为空,则丢弃该数据,如果查找结果为真,则根据静态分发表中记录的描述每个传感器设备的ID和动态谓词地址之间对应关系的指针在动态谓词匹配表中对应的地址找到对应的动态谓词,将设备采集的动态属性的数据依次与查找到的动态谓词进行匹配,然后,指针指向下一步需要匹配的动态谓词。如果需要匹配多个动态谓词,则以指针链表的形式指向动态谓词匹配表中的多个动态谓词。如果匹配结果为真,则在步骤S305,将该匹配的数据分发至所述应用,如果匹配结果为假,则丢弃该数据。本发明将规则匹配划分为静态谓词匹配和动态谓词匹配,通过静态谓词匹配表能加快谓词匹配的速度,过滤掉不符合规则的数据,节省了下一步进行动态谓词匹配的计算开销,同时也节省了数据的存储开销;此外,还可以采用并行的方式对数据进行静态谓词和动态谓词的匹配,从而提高动态谓词的匹配速度,实现快速高效的数据过滤。
[0046] 实施例:[0047] 温度控制的应用定义一个如下的规则:
[0053] 在信息数据库中保存的传感器设备的信息包括传感器设备1-4的静态属性的数据记录,本发明的实施例,静态属性包括传感器标识信息、地理位置以及设备类型,如表所示:
[0056] 根据信息数据库中记录的静态属性的数据记录将谓词划分为静态谓词和动态谓词:
[0057]静态谓词:A:location=2F
[0058] B:devicetype=temperature
[0059]动态谓词:C:value〈15
[0060] 该规则的析取范式的形式是(Α Λ C Λ B),将静态谓词放置于动态谓词的前面,转化后的析取范式的形式是(Α Λ B Λ C)。
[0061] 建立应用的静态分发表和动态谓词匹配表,针对设备信息数据库中传感器设备1-4的静态属性的数据记录分别对析取范式包含的谓词表达式(Α Λ B Λ C)进行判断,由于谓词表达式中的静态谓词与传感器设备2和4的静态属性(地理位置和设备类型)的数据记录匹配结果为真,则将传感器设备2和4的ID以及传感器设备2和4的ID与动态谓词C的地址之间的对应关系记录在静态分发表当中,该静态分发表如表2所示。动态谓词匹配表记录了谓词表达式所包含的动态谓词地址和动态谓词内容,该动态谓词匹配表如表3所
[0066] 输入传感器设备1-4采集的数据:
[0071] 在静态分发表中分别查找数据中包含的传感器设备ID1-4,结果传感器设备ID1和3的查询结果为空,则丢弃传感器设备ID1和3的数据,传感器设备ID2和4的查找结果为真,则根据静态分发表中记录的传感器设备ID2和4对应的动态谓词在动态谓词匹配表中对应的地址0x01找到对应的动态谓词C,将传感器设备2和4采集的数值Value依次与查找到的动态谓词C进行匹配,传感器设备2的匹配结果为真,则将传感器设备2采集的数据分发至应用,传感器设备4的匹配结果为假,则丢弃该数据。
[0072] 基于同一发明构思,本发明提出一种在物联网中进行数据过滤的装置,该装置在应用网关中,可以作为应用网关的组件实现数据过滤,图5示出根据本发明的实施例在物联网中进行数据过滤的装置500,其中所述物联网包括多个传感器设备,该装置500包括:规则输入模块501,被配置为输入应用部署的规则;规则转化模块502,被配置为将所述规则转化为由静态谓词和动态谓词构成的至少一个子谓词表达式;数据输入模块503,被配置为输入所述传感器设备采集的数据;数据匹配模块504,被配置为利用所述子谓词表达式的静态谓词和动态谓词对所述采集的数据进行顺序匹配;以及数据分发模块505,被配置为将匹配的数据分发给所述应用。
[0073] 其中所述静态谓词被定义为与传感器设备的静态属性相关的谓词,所述动态谓词被定义为与传感器设备采集的数据的动态属性相关的谓词。
[0074] 根据本发明的实施例,所述规则转化模块502包括:谓词拆分模块,被配置为根据传感器设备的信息将所述规则中的谓词拆分为静态谓词和动态谓词,其中所述传感器设备的信息包括所述传感器设备的静态属性的数据记录;析取范式转化模块,被配置为将所述规则转化为析取范式的表示形式,所述析取范式包括由静态谓词和动态谓词构成的至少一个子谓词表达式。
[0075] 根据本发明的实施例,其中所述规则转化模块还包括:动态谓词匹配表建立模块,被配置为建立所述子谓词表达式的动态谓词匹配表,其中所述动态谓词匹配表记录了所述子谓词表达式包含的动态谓词和所述动态谓词在所述动态谓词匹配表中的地址。
[0076] 根据本发明的实施例,其中所述规则转化模块还包括:静态分发表建立模块,被配置为建立所述子谓词表达式的静态分发表,其中所述静态分发表记录了所述传感器设备的ID和所述子谓词表达式包含的动态谓词在所述动态谓词匹配表中的地址。
[0077] 根据本发明的实施例,其中所述静态分发表建立模块还被配置为:将所述传感器设备的静态属性的数据记录与所述子谓词表达式包含的静态谓词进行匹配;响应于匹配结果为真,将所述传感器设备的ID和所述子谓词表达式包含的动态谓词在所述动态谓词匹配表中的地址对应地记录在所述静态分发表中。
[0078] 根据本发明的实施例,其中所述数据匹配模块还被配置为:在所述静态分发表中查找所述采集的数据中包含的传感器设备的ID ;响应于查找结果为假,则丢弃所述采集的数据;响应于查找结果为真,则根据所述静态分发表中记录的与所述传感器设备ID对应的动态谓词在所述动态谓词匹配表中的地址在所述动态谓词匹配表中查找到对应的动态谓词。
[0079] 根据本发明的实施例,其中所述数据匹配模块还被配置为:将所述采集的数据中具有动态属性的数据依次与查找到的对应的动态谓词进行匹配;响应于匹配结果为假,则丢弃所述采集的数据。