背景技术

[0001] 本发明涉及物联网,特别涉及在物联网进行数据过滤的方法和装置。

[0002] 物联网是新一代信息技术的重要组成部分,特指物物相连的网络。具体地,物联网是指通过各种信息传感设备,如传感器、射频识别(RFID)技术、全球定位系统、红外感应器、激光扫描器、气体感应器等各种装置与技术,实时采集任何需要监控、连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,与互联网结合形成的一个巨大网络。物联网目的是实现物与物、物与人、所有的物品与网络的连接,以方便识别、管理和控制。

[0003] 在物联网中,应用网关(application gateway)位于应用服务器和底层传感网络之间,用于汇聚数据、分发数据。由于物联网中数据量很大,而且并不是每个应用都会关心所有的数据。所以,每个应用需要在应用网关中定义一些规则进行数据过滤,只有那些符合应用所定义规则的物联网数据才会被应用网关转发至应用。由于物联网中的数据量非常大,而且每一条数据都要进行规则集合的匹配,这对应用网关中的数据过滤(规则匹配)引擎提出了很高的要求。

[0004] 在现有技术中,复杂事件处理系统(Complex Event processing system)可以实现数据过滤,在复杂事件处理系统中,应用可以预先定义事件模式(即事件之间的先后关系),复杂事件处理系统在接收处理大量事件的同时,进行预定义的事件模式匹配,一旦事件模式匹配成功,立刻会通知应用。传统的复杂事件处理系统使用状态机的原理来进行事件模式的匹配。如果直接将复杂事件处理系统应用于物联网场景,由于物联网中事件(数据)的数目非常大,应用定义的规则也比较多,复杂事件处理系统需要保存很多状态信息,事件匹配很难获得快速高效的效果。

[0005] RETE算法是实现数据过滤的另一种方法,应用定义基于事实的规则集合,当客户端不断的将一些事实放入RETE的规则引擎中,RETE规则引擎可以基于所有的收到的事实集合和预定义的规则集合,推理出合理的结论。物联网仅需针对每个单独的数据进行过滤,使用RETE算法反而会造成过多历史信息的保存开销,不利于实现高效的匹配过程。

[0006] 因此需要一种快速高效的用于物联网的数据过滤的方法。

发明内容

[0007] 基于上述问题,本发明提供一种在物联网中进行数据过滤的方法和装置。

[0008] 根据本发明的第一方面,提供一种在物联网中进行数据过滤的方法,其中所述物联网包括多个传感器设备,该方法包括:输入应用部署的规则;将所述规则转化为由静态谓词和动态谓词构成的至少一个子谓词表达式;输入所述传感器设备采集的数据;利用所述子谓词表达式的静态谓词和动态谓词对所述采集的数据进行顺序匹配;以及将匹配的数据分发给所述应用。[0009] 根据本发明的第二方面,提供一种在物联网中进行数据过滤的装置,其中所述物联网包括多个传感器设备,该装置包括:规则输入模块,被配置为输入应用部署的规则;规则转化模块,被配置为将所述规则转化为由静态谓词和动态谓词构成的至少一个子谓词表达式;数据输入模块,被配置为输入传感器设备采集的数据;数据匹配模块,被配置为利用所述子谓词表达式的静态谓词和动态谓词对所述采集的数据进行顺序匹配;以及数据分发模块,被配置为将匹配的数据分发给所述应用。

[0010] 根据本发明实施例的在物联网中进行数据过滤的方法和装置将规则划分为静态谓词和动态谓词,并且按照先匹配静态谓词,再匹配动态谓词的顺序进行匹配,加快谓词匹配的速度,快速高效的实现物联网的数据过滤。

具体实施方式

 

示出了适于用来实现本发明实施方式的示例性计算系统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所述的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。

示出物联网的架构示意图,其中物联网包括应用、应用基础架构(Application Infrastructure),
广域网(Wide Area Network)、接入网络(Access Network)和传感网络(Sensor Network),传感网络由多个传感器设备(Sensor device)构成,传感器设备从外界收集数据信息,通过广域网传输到应用基础架构,应用基础架构包括信息数据库和应用网关(Application gateway),在应用网关实现数据过滤和分发,在数据过滤过程中,需要查询信息数据库进行过滤规则的判断。

示出根据本发明实施例在物联网中进行数据过滤的方法,其中所述物联网包括多个传感器设备,包括:在步骤S301,输入应用部署的规则;在步骤S302,将所述规则转化为由静态谓词和动态谓词构成至少一个子谓词表达式;在步骤S303,输入所述传感器设备采集的数据;以及在步骤S304,利用所述子谓词表达式的静态谓词和动态谓词对所述采集的数据进行顺序匹配;在步骤S305,将匹配的数据分发给所述应用。

[0029] 在步骤S301,输入应用部署的规则,其中所述规则由谓词构成,其中应用程序可以根据其业务逻辑部署规则,假设物联网系统中应用部署的规则集合为,其中每条规则Ri韵最小可分组成单元为谓词。例如,用于温度控制的应用可以定义一个如下的规则R1:

  • [0030] IF(devicetype=temperature)
  • [0031]         & (value<15)
  • [0032]         &(location=2F)
  • [0033] THEN transform;
  • [0034]         JMSSink2T0pic

[0035] 其中规则R1是由三条谓词构成的谓词集合,其中三条谓词分别是:

  • [0036] 谓词1:devicetype=temperature (表示传感器设备类型是温度传感器);
  • 度);
  • 楼)。

和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和子谓词表达式包含的动态谓词在所述动态谓词匹配表中的地址之间的对应关系。

示出根据本发明实施例建立子谓词表达式的动态谓词匹配表和静态分发表的流程,在步骤S401,向规则集合中输入应用部署的规则;在步骤S402,从规则集合中取出一条规则;在步骤S403,根据传感器设备的信息将所述规则中的谓词拆分为静态谓词和动态谓词;在步骤S404,将所述规则转化为析取范式的表示形式,其中该析取范式包括由静态谓词和动态谓词构成至少一个子谓词表达式;在步骤S405,针对析取范式中的每个子谓词表达式,建立动态谓词匹配表;在步骤S406,针对析取范式中的每个子谓词表达式,建立静态分发表;在步骤S407,判断规则集合是否为空,如果判断结果为是,则过程结束;如果判断结果为否,则过程返回步骤S402。

[0044] 在步骤S303,输入所述传感器设备采集的数据,其中采集的数据包含传感器设备的ID、动态属性的数据以及静态属性的数据。

[0045] 在步骤S304,利用子谓词表达式的静态谓词和动态谓词对数据进行顺序匹配,在静态分发表中查找数据中包含的设备ID,如果查询结果为空,则丢弃该数据,如果查找结果为真,则根据静态分发表中记录的描述每个传感器设备的ID和动态谓词地址之间对应关系的指针在动态谓词匹配表中对应的地址找到对应的动态谓词,将设备采集的动态属性的数据依次与查找到的动态谓词进行匹配,然后,指针指向下一步需要匹配的动态谓词。如果需要匹配多个动态谓词,则以指针链表的形式指向动态谓词匹配表中的多个动态谓词。如果匹配结果为真,则在步骤S305,将该匹配的数据分发至所述应用,如果匹配结果为假,则丢弃该数据。本发明将规则匹配划分为静态谓词匹配和动态谓词匹配,通过静态谓词匹配表能加快谓词匹配的速度,过滤掉不符合规则的数据,节省了下一步进行动态谓词匹配的计算开销,同时也节省了数据的存储开销;此外,还可以采用并行的方式对数据进行静态谓词和动态谓词的匹配,从而提高动态谓词的匹配速度,实现快速高效的数据过滤。

[0046] 实施例:[0047] 温度控制的应用定义一个如下的规则:

  • [0048] IF(devicetype=temperature)
  • [0049]         & (value<15)
  • [0050]         &(location=2F)
  • [0051] THEN transform;
  • [0052]         JMSSink2Topic

[0053] 在信息数据库中保存的传感器设备的信息包括传感器设备1-4的静态属性的数据记录,本发明的实施例,静态属性包括传感器标识信息、地理位置以及设备类型,如表所示:

[0056] 根据信息数据库中记录的静态属性的数据记录将谓词划分为静态谓词和动态谓词:

[0057]静态谓词:A:location=2F

[0058] B:devicetype=temperature

[0059]动态谓词:C:value〈15

[0060] 该规则的析取范式的形式是(Α Λ C Λ B),将静态谓词放置于动态谓词的前面,转化后的析取范式的形式是(Α Λ B Λ C)。

和4的静态属性(地理位置和设备类型)的数据记录匹配结果为真,则将传感器设备2和4的ID以及传感器设备2和4的ID与动态谓词C的地址之间的对应关系记录在静态分发表当中,该静态分发表如表2所示。动态谓词匹配表记录了谓词表达式所包含的动态谓词地址和动态谓词内容,该动态谓词匹配表如表3所

[0066] 输入传感器设备1-4采集的数据:

  • [0067] <deviceID=ID1, Value=20, Location=lF>;
  • [0068] <deviceID=ID2, Value=10, Location=2F, devicetype=temperature>;
  • [0069] <deviceID=ID3, Value=30, Location=2F, devicetype=humanity>;
  • [0070] <deviceID=ID4, Value=40, Location=2F, devicetype=temperature>....

的查询结果为空,则丢弃传感器设备ID1和3的数据,传感器设备ID2和4的查找结果为真,则根据静态分发表中记录的传感器设备ID2和4对应的动态谓词在动态谓词匹配表中对应的地址0x01找到对应的动态谓词C,将传感器设备2和4采集的数值Value依次与查找到的动态谓词C进行匹配,传感器设备2的匹配结果为真,则将传感器设备2采集的数据分发至应用,传感器设备4的匹配结果为假,则丢弃该数据。

示出根据本发明的实施例在物联网中进行数据过滤的装置500,其中所述物联网包括多个传感器设备,该装置500包括:规则输入模块501,被配置为输入应用部署的规则;规则转化模块502,被配置为将所述规则转化为由静态谓词和动态谓词构成的至少一个子谓词表达式;数据输入模块503,被配置为输入所述传感器设备采集的数据;数据匹配模块504,被配置为利用所述子谓词表达式的静态谓词和动态谓词对所述采集的数据进行顺序匹配;以及数据分发模块505,被配置为将匹配的数据分发给所述应用。

[0073] 其中所述静态谓词被定义为与传感器设备的静态属性相关的谓词,所述动态谓词被定义为与传感器设备采集的数据的动态属性相关的谓词。

包括:谓词拆分模块,被配置为根据传感器设备的信息将所述规则中的谓词拆分为静态谓词和动态谓词,其中所述传感器设备的信息包括所述传感器设备的静态属性的数据记录;析取范式转化模块,被配置为将所述规则转化为析取范式的表示形式,所述析取范式包括由静态谓词和动态谓词构成的至少一个子谓词表达式。

[0075] 根据本发明的实施例,其中所述规则转化模块还包括:动态谓词匹配表建立模块,被配置为建立所述子谓词表达式的动态谓词匹配表,其中所述动态谓词匹配表记录了所述子谓词表达式包含的动态谓词和所述动态谓词在所述动态谓词匹配表中的地址。

[0076] 根据本发明的实施例,其中所述规则转化模块还包括:静态分发表建立模块,被配置为建立所述子谓词表达式的静态分发表,其中所述静态分发表记录了所述传感器设备的ID和所述子谓词表达式包含的动态谓词在所述动态谓词匹配表中的地址。

[0077] 根据本发明的实施例,其中所述静态分发表建立模块还被配置为:将所述传感器设备的静态属性的数据记录与所述子谓词表达式包含的静态谓词进行匹配;响应于匹配结果为真,将所述传感器设备的ID和所述子谓词表达式包含的动态谓词在所述动态谓词匹配表中的地址对应地记录在所述静态分发表中。

[0078] 根据本发明的实施例,其中所述数据匹配模块还被配置为:在所述静态分发表中查找所述采集的数据中包含的传感器设备的ID ;响应于查找结果为假,则丢弃所述采集的数据;响应于查找结果为真,则根据所述静态分发表中记录的与所述传感器设备ID对应的动态谓词在所述动态谓词匹配表中的地址在所述动态谓词匹配表中查找到对应的动态谓词。

[0079] 根据本发明的实施例,其中所述数据匹配模块还被配置为:将所述采集的数据中具有动态属性的数据依次与查找到的对应的动态谓词进行匹配;响应于匹配结果为假,则丢弃所述采集的数据。

SRC=https://www.google.com.hk/patents/CN103377252A

PatentTips - 在物联网中进行数据过滤的方法和装置的更多相关文章

  1. excel中的数据导入oracle方法

    SQL_loader批量上传数据 1.    注释 在工作中,很多时候会遇到如下情况:需要将excel中的数据批量上传到ORACLE表中.如果是小数据量,如几十条至几百条,那么用plsql dev工具 ...

  2. 归纳从文件中读取数据的六种方法-JAVA IO基础总结第2篇

    在上一篇文章中,我为大家介绍了<5种创建文件并写入文件数据的方法>,本节我们为大家来介绍6种从文件中读取数据的方法. 另外为了方便大家理解,我为这一篇文章录制了对应的视频:总结java从文 ...

  3. 判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解

    提醒大家,Object.prototype.toString().call(param)返回的[object class]中class首字母是大写,像JSON这种甚至都是大写,所以,大家判断的时候可以 ...

  4. PHP常用接口数据过滤的方法

    <?php /** * global.func.php 公共函数库 */ /** * 返回经addslashes处理过的字符串或数组 * @param $string 需要处理的字符串或数组 * ...

  5. 在vue中没有数据的渲染方法

    1.例如在评论区中,评论一般分为两种形式,一种是有评论,一种是没有评论, 用v-if进行判断,判断的是评论的长度,此时评论的数据应为数组 2.可以computed中记性计算后进行数据的返回在用v-if ...

  6. XML中二进制数据的处理方法

    原文链接:http://www.west263.com/www/info/22308-1.htm 在xml中,所有的数据都是以文本的形式来显示,但是二进制数据不能直接以文本格式来表示,那xml又是怎么 ...

  7. 介绍ArcGIS中各种数据的打开方法——mxd(地图文档)

    1.加载地图文档 在ArcGIS中,以mxd作为扩展名的文件叫地图文档. 地图文档中只是包含图层的引用,即存储当前地图的图层路径.符号.状态.修饰等信息,并不存储真实的数据层. ArcGIS Map中 ...

  8. 介绍ArcGIS中各种数据的打开方法——tin(栅格文件)

    4.加载栅格文件 栅格数据是GIS中重要的数据源之一,如卫星图像.扫描的地图.照片等. 栅格数据常见的格式有Bmp.Tiff.Jpg.Grid等. 添加栅格数据主要使用Rasterlayer 组件类, ...

  9. 介绍ArcGIS中各种数据的打开方法——mdb(个人数据库)

    3.打开存储在Access GeoDatabase的要素类 使用工作空间打开一个Access库中的一个要素类. private void OpenWorkspaceFromFileAccess(str ...

随机推荐

  1. Flume的Storage&Master

    storage是存储系统,可以是一个普通file,也可以是HDFS,HIVE,HBase,分布式存储等. Master是管理协调Agent和Collector的配置等信息,是flume集群的控制器.

  2. Objective-C基础笔记(9)Foundation常用类NSArray

    NSArray用来存储对象的有序列表,它是不可变的 NSArray不能存储C语言中的基本数据类型,如int.float.enum.struct,也不能存储nil,nil代表数组元素的结束 // // ...

  3. 记Bootstrap Table两种渲染方式

    这里主要区别两种Bootstrap Table的数据渲染方式,一.属性渲染方式,二.JS渲染方式 工作直接接手前人的,之前都直接在table标签上渲染属性,后面因为项目需要,同一页面的表格,需要申请不 ...

  4. ArcGIS小技巧——提取面要素的质心点

    如下图,现在要做这样一件事,提取面图层中每一个图斑的质心点,然后使用质心点提取图层中的一个属性值,并在此基础上进行克里金插值,生成该属性的空间插值图.当然,今天这段文字主要简单说一下怎样提取面图层的质 ...

  5. 【习题 7-5 UVA-690】Pipeline Scheduling

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 一定在这里写完思路再敲代码!!! 处理出5个工作单元在哪些时刻会被用到. ->设为initstatu 因为每次都会面临之前已经 ...

  6.  洛谷 P3056 [USACO12NOV]笨牛Clumsy Cows

    P3056 [USACO12NOV]笨牛Clumsy Cows 题目描述 Bessie the cow is trying to type a balanced string of parenthes ...

  7. 8.spring-boot配置log4j

    转自:https://www.cnblogs.com/qixing/p/7763582.html <dependency> <groupId>org.springframewo ...

  8. poj 1191 棋盘切割 (压缩dp+记忆化搜索)

    一,题意: 中文题 二.分析: 主要利用压缩dp与记忆化搜索思想 三,代码: #include <iostream> #include <stdio.h> #include & ...

  9. 1.1 Python基础知识 - 变量

    1.什么是变量? 变量是可以通过变量名访问的内存地址,变量通常是可变的. 2.怎样去定义? 变量格式: 变量名 = "变量值" 例如: name = "Zhanghk&q ...

  10. Altium Designer如何删除以布的线