传感器网络中的数据查询处理
- 格式:pdf
- 大小:224.96 KB
- 文档页数:2
第25卷第5期计算机应用与软件Vol25No.52008年5月ComputerApplicationsandSoftwareMay2008
收稿日期:2006-04-28。梁银,讲师,主研领域:数据库,数据仓库,传感器网络中的数据管理。传感器网络中的数据查询处理梁银(徐州师范大学计算机科学与技术学院江苏徐州221008)摘要传统的传感器网络采用集中式数据管理,不能有效利用便宜的本地计算来代替昂贵的网络通信。采用分布式的方法,在sink节点的应用层与网络层之间增加查询代理层,把用户查询分发到相关的传感器节点上进行处理。这样,通过减少网络传输的数据量,来降低传感器节点的能量消耗,延长网络寿命。关键词传感器网络能量消耗首领节点DATAQUERYPROCESSINGINSENSORNETWORKSLiangYin(SchoolofComputerScienceandTechnology,XuzhouNormalUniversity,Xuzhou221008,Jiangsu,China)AbstractTraditionalsensornetworksrelyoncentralizedsystemforcollectingsensordata.whichcanteffectivelymakeuseofcheaplocalcomputationinsteadofcostlycommunicationtoreduceenergyconsumptionofsensors.Thispaperfocusesondistributedapproach.Queryproxylayerwasaddedbetweennetworklayerandapplicationlayeronsinknodetodistributeuserqueriestoallrelevantsensornodesforprocessing.Thedistributedapproachcanmaximizenetworklifetimebyreducingtransmitteddataonnetworktodecreaseenergyconsumptionofsensornodes.KeywordsSensornetworksEnergyconsumptionLeadernode0引言传感器网络是由许多具有感知、通信、计算和存储能力的微型传感器组成的,这些微型传感器之间通过多跳路邮协议进行通信,一般可分成两类:一是对观察范围内的感知对象产生原始数据的源传感器节点,靠不能补充的电池供电,具有有限的能量。二是网关节点,也称为sink节点,用于实现传感器网络与Internet的连接,个数有限,但能量能够得到补充。传统的传感器网络采用集中式数据库系统管理数据,也就是把各源传感器节点监测到的数据通过多跳中继方式传到sink节点,再借助于长距离或临时建立的sink链路将整个区域内的数据传送到远程中心数据库进行集中式脱机存储,供用户脱机查询和分析处理使用。这种集中式数据处理方式不能使用网络设计,把昂贵的通信转变为廉价的本地计算。因此,为了减少节点能量消耗和带宽的使用,可以利用传感器节点有限的存储和计算能力,把用户的查询分发到传感器网络的相关节点上进行处理,这种技术[1~3]称为分布式传感器数据处理技术,近年来受到了越来越广泛的重视。1传感器网络的查询处理体系结构在传感器网络中,为了保证传感器网络数据的可用性,满足用户查询的需要,往往需要对多个传感器节点的感知数据进行聚合处理,比如取和、取平均、取最大(小)值等。考虑到每个传感器节点都有有限的计算和存储能力,而且在传感器节点上的计算比传输数据的能量消耗少,可以把查询的聚合计算从中心数据库转移到网络中进行。图1给出了传感器网络查询处理体系结构一般形式的描述。图1传感器网络查询处理体系结构在查询处理器中,使用查询模块和数据模块两个数据结构来分别存储用户的查询和数据元组。当用户给出查询时,要把它注册到查询模块中。同样,当从sink节点发回一个数据元组时,要把这个元组首先存储到数据模块中,然后搜索查询模块,如果有满足查询条件的,则把结果通知用户。查询处理器把用户查询通过无线网络传送给sink节点,在sink节点的应用层与网络层之间增加查询代理层,用来实现以下功能:(1)注册查询,并把新查询与现有的查询进行合并。(2)根据用户查询,产生一个查询计划和两个计算计划。(3)调整传感器节点感知数据的周期频率。(4)定期地把查询结果传送给查询处理器,当用户停止查询时,注销查询。首领节点是根据查询计划从源传感器节点中选出的聚合节点,用来完成以下功能:首先注册首领计算计划;然后接收查询中相关传感器节点的数据,完成聚合计算;最后把满足条件的元202计算机应用与软件2008年组发送给sink节点。源传感器节点收到首领节点发来的计算计划后,首先进行注册,然后根据计算计划的查询周期定时激活传感器节点,获取感知数据,并把自身的感知数据与其它节点的部分聚合数据进行聚合,最后再把聚合数据发送给首领节点或其它传感器节点。2数据查询处理2.1查询语言常规数据库的查询是基于固定数据集的一次查询,而传感器网络中的查询是长期的周期性查询,为了适应传感器网络中的这种查询,需要对原有SQL查询语言进行扩展。文献[4]给出了扩展的查询语言模板,该模板中的SELECT、FROM、WHERE、GROUPBY和HAVING子句的语义与原有SQL类似,不同的是增加了DURATION和EVERY子句,用DURATION子句来说明查询的使用期限,EVERY子句来确定查询的间隔时间。扩展后的SQL查询语言描述如下:SELECT{attributes,aggregates}FROM{SensordataS}WHERE{predicate}GROUPBY{attributes}HAVING{predicate}DURATIONtimeintervalEVERYtimespane2.2数据查询处理过程为了更好地描述数据查询处理过程,用以下实例进行说明。假设在一个监控仓库温度的传感器网络中有k个温度传感器节点R={n1,n2,,nk},终端用户提出了如下查询Q:SELECTAVG(R.temperature)FROMTemperatureSensorRWHERER.temperature>TDURATION(now,now+3600)EVERY10查询Q每隔10秒监控一次仓库的平均温度,连续监控一小时,如果平均温度大于用户预定义的温度阈值T时,就把结果返回给用户。在查询处理器中,首先,把用户查询Q加入到查询处理器的查询模块中,然后把查询Q与现有注册的所有查询进行比较,若有相同的查询,则不再把查询Q发送给sink节点,否则发送查询Q给sink节点。在sink节点的查询代理层中,把查询Q与已注册的查询Q1进行合并,合并时有以下几种情况:(1)查询Q与Q1完全不同。先注册查询Q,并产生新的查询计划QP,确定首领节点Lni(1 i k);然后产生一个传感器节点计算计划SCP和一个新首领节点计算计划LCP,并把它们分发到首领节点和所有相关的传感器节点上。其中,SCP包含两部分:一部分是触发器Trigger,定时激活传感器,获取感知数据;另一部份是聚合运算Integrate,用来将其他传感器传送来的部分聚合数据与本传感器节点的感知数据进行聚合,并把聚合数据发送给首领节点或其他节点,如图2所示。这样,可以减少数据的传输量,从而降低网络节点的能量消耗。LCP中包含一个聚合Integrate运算,用来计算相关传感器节点的感知数据或部分聚合数据;另外还包含一个SELECT运算,用来检查平均值是否大于阈值T,若平均值大于阈值T,则把该数据元组发送给sink节点,如图3所示。(2)查询Q与Q1查询间隔相同,都是10秒,且温度阈值T也相同。只要调整查询Q1的连续监控时间,取Q与Q1中最大值,不再注册查询Q,也不需要产生任何新的查询计划。(3)查询Q与Q1查询间隔相同,但温度阈值T不同。首先在sink节点的查询代理层中注册查询Q,然后产生一个LCP,发送给查询Q1的首领节点,不需要再产生SCP。(4)查询Q与Q1查询间隔不同,但温度阈值T相同。只要调整与查询Q1相关的源传感器节点触发器Trigger中的感知数据频率。若查询Q的时间间隔是Q1的整数倍,不用调整感知数据频率;若查询Q1的时间间隔是Q的整数倍,把感知数据频率按Q的时间间隔调整;若查询Q与Q1的时间间隔不成整数倍,把Q的间隔时间增加到源传感器的触发器Trigger中。图2传感器节点查询计划SCP图3首领节点查询计划LCP最后,首领节点把满足查询条件的元组发送给sink节点,由sink节点通过长距离或临时建立的sink链路把该元组转发给查询处理器。在查询处理器中首先把这个元组存储到数据模块中,然后搜索查询模块,如果有满足查询条件的,则把结果通知用户。3结束语由于传感器节点能量的约束,使得传感器网络的数据查询处理必须考虑能量的消耗问题。本文介绍了在sink节点的应用层与网络层之间增加查询代理层的数据查询处理过程,通过把昂贵的网络通信转化为本地计算,有效地提高了传感器节点和整个网络的生命周期。参考文献[1]YongYao,JE.GehrkeQueryProcessinginSensorNetworks.InProceedingsoftheFirstBiennialConferenceonInnovativeDataSystemsResearch.Asilomar,California,January,2003.[2]SamuelRMadden,MichaelJFranklin.FjordingtheStream,AnArchitectureforQueriesoverStreamingSensorData.ICDEConference,February,2002.[3]ChalermekIntanagonwiwat,DeborahEstrin,RameshGovindan,JohnHeidemann.ImpactofNetworkDensityonDataAggregationinWirelessSensorNetworks.InProceedingsofthe22ndInternationalConferenceonDistributedComputingSystems,Vienna,Austria,July,2002.[4]YongYao,JohannesGehrke.QueryProcessingforSensorNetworks.InProceedingsoftheFirstBiennialConferenceonInnovativeDataSystemsResearch,Asilomar,California,January,2003.(上接第176页)[4]张爱丽,陈逢胜.利用Matcom实现VisualC++与Matlab的混合编程[J].电脑编程技巧与维护,2003,6:1921.[5]罗蛟龙,张鹏,张维竞.VisualC++下强大的科学运算函数库[J].计算机工程,2000,26(12):152154.[6]卞鸿巍.舰船组合导航系统自适应信息融合技术研究[D].上海:上海交通大学博士学位论文,2005.