物联网中分布式监控和查询系统仿真研究

娄爽爽+宋彩平


摘 要: 在大规模的物联网系统中,基于查询计划的方法严重依赖于中心节点的查询优化技术。提出一种基于状态迁移的分布式推理和连续查询的处理方法,并对查询处理状态进行压缩。根据各种体系结构的优势和不足,结合RFID标签自带存储介质的特性,提出一种利用RFID自带存储介质进行状态迁移的方法。最后将上述提出的数据清理、存储方法和复杂事件处理方法相结合,形成对物联网中物品的监控。对于离线查询处理,设计了基于分布式哈希表的单标签查询方法(RfidDHT)以及基于多层超级节点对等网MLSP的查询处理方法。
关键词: 物联网监控; 射频识别; 复杂事件处理; 分布式推理和查询处理
中图分类号: TN915?34; TM417 文献标识码: A 文章编号: 1004?373X(2017)01?0020?04
Abstract: Since the method based on query plan seriously depends on the query optimization technology of centre node in the large?scale Internet of Things (IOT) system, a distributed inference and continuous query processing approach based on state migration is proposed. The state of query processing is compressed. According to advantages and disadvantages of each architecture, a method using storage medium owned by RFID to perform the state migration is presented. The data cleaning and storage approach are combined with the complex event processing approach to monitor the objects in IOT. The single tag query approach based on distributed Hash table (RfidDHT) and query processing approach based on multi?level super node p2p (MLSP) network were designed for the off?line query processing.
Keywords: Internet of Things monitoring; RFID; complex event processing; distributed inference and query processing
0 引 言
实际的物流系统是一个大范围甚至是全球的大规模系统,传统中心化的处理方法是将所有的原始数据传送到一个中心服务器,由中心服务器对RFID数据及各种传感器数据进行处理并提供中心化的查询处理[1]。使用中心化的方法存在以下问题:所有的原始RFID数据都要发送到一个中心服务器,这会带来巨大的通信代价;在大规模的供应链中,中心化处理方法会带来对一些异常检测的延迟;中心化处理存在单点失效问题,本文提出分布式处理来解决上述问题。
1 系统结构
1.1 中心化体系结构
中心化体系结构如图1所示,将所有的原始数据传送到中心服务器,在中心服务器进行推理和查询处理[2]。该体系结构在中心服务器维护了整个供应链的全局视图,其优点是结构简单,推理和查询处理容易。但是中心化体系结构存在以下缺点:
(1) 传送所有的数据至中心服务器会带来巨大的通信开销,RFID感应器每隔一定的时间会感应周围的RFID标签,这个时间间隔非常小,如10 s,因此原始RFID数据量非常大,传送如此巨大的数据量到中心服务器会造成大量的通信代价[3]。
(2) 将所有的数据传输到中心服务器会带来传输的延迟,从而造成推理和查询处理的延迟。
(3) 中央处理会存在单点失效问题,当在中心服务器进行推理和查询时,如果中心服务器出现故障,那么整个系统将不可用。
(4) 中央处理需要巨大的运算能力,尤其在需要实时处理要求的情况下,处理如此巨大的数据量也需要很大的时间消耗。
1.2 基于计算状态迁移的分布式结构
通过网络迁移计算状态的分布式体系结构如图2所示,每个仓库拥有自己的推理和查询处理功能。当物体从一个仓库移动到另一个仓库时,将和该物体相关的推理状态以及查询处理状态迁移到目的仓库。推理和查询处理都是在物体所在仓库的局部服务器完成。仅需要传送运算相关的状态到下一个节点即可,相对原始数据,计算状态非常小,节省巨大的通信代价[4]。但是该方法的缺點如下:
(1) 需要进行状态的迁移,尤其是涉及到历史数据时,数据的迁移量依然非常大。
(2) 需要对推理方法进行扩展,将推理状态分发到需要的节点。
(3) 由于局部节点并不包含全局信息,所以查询处理将会变得复杂。
1.3 使用标签内存迁移计算状态的分布式系统结构
如果标签自身带存储空间,则可以使用如图3所示的系统结构,通过将计算状态存储在标签自带的存储介质中并和标签传送到下一个仓库,以减少网络的传输代价[5]。该结构是对基于计算状态迁移的分布式结构的一种优化。在该结构中,给定一个物体,当物体离开仓库时,将和该物体相关的推理状态和查询状态存储在标签自带的存储空间中。当物体到达一个新的仓库,入口处的RFID感应器读取标签中存储的推理状态和查询状态,以供在本节点的推理和查询处理[6]。
值得注意的是,标签上的存储只是作为一个缓存,存储在原来节点上的数据并没有被删除,如果因为其他原因,存储在标签上的数据不能被读出来,即可从原来的节点上获取状态[7]。所以说可写的标签是用来减少通信代价的一种优化方法。
2 基于状态迁移的分布式推理和连续查询处理
2.1 基于状态迁移的分布式推理
当物体抵达一个新的仓库时,存在两种简单的推理方法:
(1) 将所有的历史数据传送到新的仓库。但是该方法存在一个严重缺点,所有历史数据的传送会带来巨大的通信代价。
(2) 丢弃掉所有的历史数据,在新的仓库根据新的数据进行推理。该方法有两个缺点:第一,在新到达的仓库需要更多的时间积累数据,以进行推理;第二,丢弃旧的数据会丢失重要的具有区分作用的信息,如果新到达的仓库没有传送带等这类具有重要区分作用的设备时,将不能得到正确的推理结果。
为了克服上述两种方法的弊端,提出一种新的解决方法,即将关键区域的RFID数据传送到新的仓库。
将关键区域的RFID数据传送到新的仓库同样会带来相当大的通信代价,所以在分布式推理中,在RfInfer的基礎上提出一种近似估计的方法:给定物体o,仅传输在该物体和所有候选容器的关键区域内的权重根据新的仓库得到RFID数据每一次迭代的过程如下:
(1) 根据计算各个容器所在位置的后验概率物品及其各个候选容器存在包含关系的权重集。
(2) 对每个物体o及其候选容器c,存在包含关系的权重表示为对所有物品及其各个候选容器存在包含关系的权重集表示为
(3) 根据更新每个物体最有可能的容器[8]。
虽然该方法可能会带来一定的误差,但是因为关键区域检测算法的正确率非常高,所以误差非常有限;另外,即使关键区域检测存在错误,在新的仓库有可能检测到新的关键区域,新的关键区域会覆盖原来旧的关键区域,引入错误的机会非常小。
2.2 基于状态迁移的分布式连续查询处理
在一个分布式系统中,查询的一部分任务可以在每个仓库的局部服务器执行,如将RFID数据流和温度传感器数据流进行连接。而另一部分的查询处理需要跨节点进行,比如查找连续暴露在室温超过6 h的物体。基于下推自动机的方法,只需要将每个查询计算状态从一个仓库移动到另一个仓库,然后在新的仓库根据接收到的计算状态重新构建自动机运行实例即可。查询状态的内容包括:自动机的当前状态;自动机后续运行需要的最小变量集;查询要返回的结果。
2.3 查询状态压缩
当物体经过出口离开一个仓库时,与该物体相关的查询状态也会被打包发送到物体将要到达的仓库节点。若对所有物体都单独发送查询状态,那么会造成很大的通信代价。实际上,一个箱子里通常装有多个(如20个)物品,包含在同一个箱子中的所有物品因为具有相同的传输路径以及所处环境,理论上来说这些物体具有相同的查询状态。提出的查询状态压缩的基本思想是从每个箱子中选择一个具有代表性的物品,将该物品的查询处理状态作为该箱子内所有物品查询状态的代表。箱子中其他物品查询状态的表示完全基于该代表物体。但是,由于存在一小部分包含关系的改变以及一定的推理误差,包含在同一个箱子中的所有物品的查询状态并不完全相同,对于这些物体只存储和代表物体状态不同的状态即可。
当计算得到代表物体之后,其他物品的查询状态的计算方法如下:对查询集合中的每个查询如果那么不需要再发送对该查询的查询状态;否则,将物体的查询状态发送到下一个节点。
3 分布式离线查询处理
3.1 离线查询的种类
离线查询可以分为以下两种类型:
(1) 基于Tag ID的单物品查询。该查询给定一个Tag ID以及要选择该标签所对应物体的其他属性或者聚合查询的值。
(2) 基于约束的多标签查询或聚合查询。该查询给定一些属性值约束,返回这些物品的属性值或者聚合查询的结果。
3.2 基于DHT的查询处理
分布式哈希表(Distributed Hash Table,DHT)是一个由广域范围内大量节点共同维护的巨大哈希表。哈希表被分割成不连续的块,每个节点被分配给一个属于自己的哈希块,并成为该哈希块的管理者。在供应链系统中,每个物体表示成一个(k,v)对,k称为关键字,即该物体上的Tag ID,v是实际存储该物品信息节点的IP地址列表,以及在各个IP地址管理的仓库停留的时间段。分布式哈希表中的每个数据项包含以下信息:IP地址、在该节点停留的起始时间、在该节点停留的终止时间。
给定一个基于Tag ID的查询,查询的过程如下:
(1) 通过DHT查找到存储和该Tag ID相关的元信息的节点
(2) 从节点上存储Tag ID对应的物品信息的节点列表。
(3) 从列表中的每个节点获取该物品的路径信息或者属性信息。在节点聚合之后将查询处理的中间结果传送到一个中间节点。
(4) 中间节点将所有这些传递回来的信息进行聚合,给查询节点发回查询结果。
3.3 基于多层超级节点的对等网的查询处理
在本文提出一种具有多层超级节点的对等网结构。
给定从节点发出的查询查询过程如下:
(1) 将查询转发到一个顶层超级节点顶层超级节点将该查询在顶层超级节点之间泛洪传播。
(2) 当顶层超级节点接收到查询时,顶层超级节点将该查询向底层超级节点传递,直至到达底层节点。
(3) 当最底层节点接收到查询时,如果该查询的一部分查询处理可以在本地节点进行,那么在本地节点进行一定的处理之后,将中间结果传送到顶层超级节点否则,将原始数据传送到顶层超级节点
(4) 顶层超级节点接收到所有的中间结果或者查询相关的数据后,对这些数据进行聚合或者进一步查询。最终将查询处理结果发送到节点
4 实验结果与分析
4.1 分布式推理实验
在该实验中,将分布式推理方法和集中式推理方法进行比较。对于集中式推理方法,假定所有的原始RFID数据被传送到中心服务节点。同时,假设在数据传送时应用了一定的压缩技术(如本文中用gzip进行压缩)。对于分布式推理方法,考虑如下几种对推理状态的管理方法:
(1) 简单截断。不传送任何推理状态到下一个节点。
(2) 仅传送关键区域的信息。仅传送将关键区域的数据转换成一个最有可能的容器和权重。
(3) 传送关键区域信息的同时,根据最近历史计算得到的物体和各个可能的容器之间的权重,一起传送到下一个节点。
首先将RFID感应器的读到率从0.6变化到1,同时设定50%(即5个)的倉库不装备传送带RFID感应器。推理的错误率如图4所示。从实验结果可以看出,简单截断的方法会带来很大的错误率,而其他三个分布式方法具有非常接近且比较低的错误率。CR方法相比CR+H方法有更高的正确率,主要是因为在推理中关键区域的信息起了主要的作用,而最近的历史数据包含有很多噪音。
同时,统计了各种方法的通信代价,结果如表1所示。从结果可以看出,集中式方法具有最高的通信代价,传送关键区域的方法的通信代价仅是集中式方法的而且实验结果表明,通信代价对读到率并不敏感。
同时,测试了分布式算法对包含关系改变频率的敏感性,将包含关系发生改变的频率从每20 s发生一个变换到每120 s发生一个改变,结果如图5所示。从实验结果可以看出,简单截断的方法具有很高的错误率,而基于关键区域迁移的方法得到较低的错误率,且接近于中心化推理的正确率。
总之,实验结果表明基于关键区域迁移的分布式推理算法在节约通信代价的同时,得到了和集中式推理算法非常接近的正确率。
4.2 分布式查询处理实验
在该实验中,将分布式推理的结果作为分布式查询处理的输入,运行了两种类型的监控查询,如查询Q1和查询Q2所示。将分布式查询处理报告的结果和实际发生复杂事件进行对比,通过F?measure度量该分布式算法的正确率。另外,统计了压缩之前和压缩之后查询状态的大小,结果如表2所示。
从实验结果可以得出如下结论:
(1) 使用经过清理的数据可以得到很高的查询正确率。
(2) 查询状态的压缩率和感应器的读到率相关,主要是因为高的读到率可以推理得到更准确的位置和包含关系。
(3) 查询Q1的查询状态的压缩率低于查询Q2的压缩率,主要原因是Q1使用了推理得到的位置和包含关系信息,而Q2仅使用了位置信息。而算法的位置推理的正确率要高于包含关系推理的正确率。给定一个物品,如果该物品的推理结果错误,那么该物品要么在查询结果中被误报,要么没有在查询结果中,这两种情况都会影响F?Measure值;同时,该物品的查询状态不同于在同一容器中的其他物品,所以不能被有效压缩。
5 结 论
本文提出的基于状态迁移的分布式推理和查询处理,实现了在大规模物联网系统中一方面对推理和查询的高效处理,另一方面降低了系统的通信量。另外,提出的离线查询处理方法RFID DHT和mlsp实现在没有中心节点的情况下对离线查询的分布式处理。实验表明,基于状态迁移的分布式推理和查询处理方法极大地降低了系统的通信量。
参考文献
[1] 赵艳玲.一种基于物联网的远程监控系统设计[J].现代电子技术,2012,35(6):61?64.
[2] 王勇斌,孙友伟.基于ES0191的电力线物联网控制平台[J].西安邮电大学学报,2014(3):49?53.
[3] 叶忠杰,赵俊波.基于物联网技术的校园综治安全系统研究[J].现代电子技术,2012,35(22):51?54.
[4] 孙国峰,胡景春.基于Android的物联网控制系统的设计与实现[J].微型机与应用,2013,32(1):7?10.
[5] 李文娟,陈艳.大型物联网下的交通智能监控系统优化设计[J].现代电子技术,2016,39(6):95?97.
[6] 王岩.物联网控制系统中信息传输关键技术研究[D].哈尔滨:东北林业大学,2012:111.
[7] 王吴雨,缪希仁.数字变电站物联网监控技术[J].电器与能效管理技术,2011(19):34?38.
[8] 陈坤定,李隘优.基于二维码的物联网监控系统设计[J].中原工学院学报,2013,24(4):65?68.