这样的数据模型与传统分布式数据库结构比较相似,有利于查询的实现,但是并不能解决数据不确定性问题。在此基础上提出了结合概率的数据模型,主要包括基于概率模型的数据缓冲策略,客户端-服务器模式的概率传输策略以及对数据流处理的概率模型。
针对节点损坏、数据丢失、数据不确定性等问题,文献[6]提出了一种基于概率的多维数据模型,通过观察确定数据某一属性的概率分布情况,根据概率模型计算感知数据,从而提高查询效率,保障结果的正确性,并支持某些特殊查询。
文献[7]针对“select *” 查询能量效率问题,采用动态概率复制模型实现了Ken机制,在基站和网络分别维持一个感知数据模型,当节点感知数据与网络内模型预测值不符时才传输数据到基站。这种策略尤其适用于事件驱动的应用,但是结果精度和模型相关。
国内,哈尔滨工业大学的研究人员[8]提出了一种基于感知数据概率模型的分布式采样和通信动态调度算法,使传感器节点根据概率模型确定自己的采样和通信时机,最小化采样频率和通信量,减少传感器节点的能量消耗,延长传感器网络的生命期。
5 数据存储与索引技术
数据存储策略按数据存储的分布情况可分为以下三类。
(1)集中式存储。节点产生的感知数据都发送到基站节点,在基站处进行集中存储和处理。这种策略获得的数据比较详细完整,可以进行复杂的查询和处理,但是节点通信开销大,只适合于节点数目比较小的应用场合。加州大学伯克利分校在大鸭岛上建立的海鸟监测试验平台就是采用这种策略。
(2)分布式存储和索引。感知数据按数据名分布存储在传感器网络中,通过提取数据索引进行高效查询,相应存储机制有DIMENSIONS、DIFS、DIM等。
DIMENSIONS[9]采用小波编码技术处理大规模数据集上的近似查询,有效的以分布式方式计算和存储感知数据的小波系数,但是存在单一树根的通信瓶颈问题。为了解决这一问题而提出的DIFS[10],其中使用感知数据的键属性,采用散列函数和空间分解技术构造多根层次结构树,同时数据沿结构树向上传播,防止了不必要的树遍历。DIFS是一维分布式索引,而DIM(Distributed Index for Multidimensional data)[11]则是多维查询处理的分布式索引结构,使用地理散列函数实现数据存储的局域性,把属性值相近的感知数据存储在邻近节点上,减少计算开销,提高查询效率。文献[12]在DIM基础上对保持局域性的散列函数提出了一种分布式算法,有效地解决了DIM存在的区域热点问题。
文献[13]在地理路由协议GPSR基础上,提出了一种以数据为中心的存储方法GHT,采用周界更新协议保证节点失效时的数据可靠性,同时提出了结构复制技术解决热点问题。
(3)本地化存储。数据完全保存在本地节点,数据存储的通信开销最小,但是查询效率低下,一般采用泛洪式查询,当查询频繁时,网络的通信开销极大,并且存在热点问题。
文献[14]面向数据需要大量存储在节点的科学应用,提出了一种协作存储机制,利用相邻节点数据的空间相关性显著地减少了需要存储的数据量,并且能够提供负载均衡。
6 数据查询处理
传感器网络中的数据查询主要分为快照查询和连续查询。快照查询是对传感器网络某一时间点状况的查询,连续查询则主要关注某段时间间隔内网络数据的变化情况。查询处理与路由策略、感知数据模型和数据存储策略紧密相关,不可分割。当前的研究方向主要集中在以下几个方面:
(1)查询语言研究。这方面的研究目前比较少,主要是基于SQL语言的扩展和改进。TinyDB系统的查询语言是基于SQL的,康乃尔大学的Cougar系统[5]提供了一种类似于SQL的查询语言,但是其信息交换采用XML格式。
(2)连续查询技术。传感器网络中,用户的查询对象是大量的无限实时数据流,连续查询被分解为一系列子查询提交到局部节点进行执行。子查询也是连续查询,需要扫描、过滤、综合数据流,产生部分的查询结果流,经过全局综合处理后返回给用户。局部查询是连续查询技术的关键,由于节点数据和环境情况动态变化,局部查询必须具有自适应性。
文献[15]介绍Cougar系统的查询处理方法,并提出了网内(in-network)查询处理思想,给出了相应的查询处理器结构,同时讨论了查询语言、多查询优化、catalog管理等问题。文献[16]认为树型的查询处理过程中,把查询分解为子查询,交给局部操作子处理,实际上就是一种任务分配调度过程。他们提出了一种自适应的分布式算法,根据邻居节点精简局部子操作,减少网络负载。
文献[17]提出了一种在无限实时感知数据流上处理连续查询的自适应技术CACQ。对于传感器节点上的单个连续查询,CACQ把查询分解为操作序列,针对进入系统的数据来调度执行序列中的每个操作,产生查询结果。当节点同时执行N个连续查询时,CACQ轮流地把数据传递到N个查询操作序列,完成处理,而不用每次都复制数据。CACQ存在的问题是:只能处理单个传感器节点查询,而不能处理整个网络查询。
(3)近似查询技术。感知数据本身存在不确定性,用户对查询的结果的要求也是在一定精度范围内的。采用基于概率的近似查询技术,充分利用已有信息和模型信息,在满足用户查询精度要求下减少不必要的数据采集和数据传输,将会提高查询效率,减少数据传输开销。
文献[18]证明了基于概要的近似技术可以应用到传感器网络中。
文献[19]提出了一种信息驱动的传感器查询处理方法IDSQ,使用概率模型估计目标跟踪应用中目标的位置。IDSQ按照最小化目标位置不确定性原理为每个传感器节点分派任务。
文献[20]提出了一种模型驱动的查询处理方法。这种方法根据已经存储和正在产生的感知数据,建立一个感知数据的数学模型,然后基于这个模型来回答用户的查询,减少了数据传输开销。该方法的问题是:当传感器节点数量较大时,数学模型的计算复杂性非常高。
(4)多查询优化技术。在传感器网络中一段时间间隔内可能进行着多个连续查询,多查询优化就是对各个查询结果进行判别,减少重叠部分的传输次数以减少数据传输量。
文献[21]针对多询问的优化,提出了一种完全分布式的技术。把每一时间元(epoch)分为两阶段:查询准备阶段和结果传播阶段;提出了结果共享技术以有效处理多询问融合,结果编码技术以备传感器数据的随机更新。
7 数据融合方法
数据融合是将多个数据流或多份数据进行综合和处理,组合出更精简有效且能满足用户需求的数据过程。一般来说,传感器网络中数据冗余度比较高,而大量冗余数据的存储和发送会严重浪费网络的有限资源。数据融合方法是解决这一问题的重要手段。