传感器网络中的数据查询处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第25卷第5期 计算机应用与软件
Vo l 25No .5
2008年5月 Co m puter Applicati o ns and Soft w are M ay 2008
收稿日期:2006-04-28。梁银,讲师,主研领域:数据库,数据仓
库,传感器网络中的数据管理。
传感器网络中的数据查询处理
梁 银
(徐州师范大学计算机科学与技术学院 江苏徐州221008)
摘 要 传统的传感器网络采用集中式数据管理,不能有效利用便宜的本地计算来代替昂贵的网络通信。采用分布式的方法,在si nk 节点的应用层与网络层之间增加查询代理层,把用户查询分发到相关的传感器节点上进行处理。这样,通过减少网络传输的数据量,来降低传感器节点的能量消耗,延长网络寿命。关键词 传感器网络 能量消耗 首领节点
DATA QUERY PROCESSING IN S ENSOR NET W ORK S
L i a ng Y in
(S c hool of Co m pu ter S cie n ce and Tec hn ology,Xuzhou N or ma l Un i v e rsit y ,Xuzhou 221008,Jiang su,C hina)
Abstrac t T raditi onal senso r net wo rks re l y on centra li zed syste m for co ll ecti ng sensor da ta .wh i ch can t effecti ve l y m ake use o f cheap l o ca l computati on i nstead o f costl y co mmun ica ti on t o reduce energy consu m pti on o f sensors .T h i s paper focuses on d istri buted approach .Q uery proxy
layer was added be t w een net w ork l ayer and appli cation l ayer on si nk node to distribute use r queries to a ll re levant sensor nodes fo r processing .T he distri buted approach can m ax i m i ze net wo rk lifeti m e by reduc i ng trans m itted data on net work to decrease energy consu m pti on o f sensor nodes .K eywords Sensor net w orks Energy consu m pti on L eader node
0 引 言
传感器网络是由许多具有感知、通信、计算和存储能力的微型传感器组成的,这些微型传感器之间通过多跳路邮协议进行通信,一般可分成两类:一是对观察范围内的感知对象产生原始数据的源传感器节点,靠不能补充的电池供电,具有有限的能量。二是网关节点,也称为si nk 节点,用于实现传感器网络与Interne t 的连接,个数有限,但能量能够得到补充。传统的传感器网络采用集中式数据库系统管理数据,也就是把各源传感器节点监测到的数据通过多跳中继方式传到si nk 节点,再借助于长距离或临时建立的si nk 链路将整个区域内的数据传送到远程中心数据库进行集中式脱机存储,供用户脱机查询和分析处理使用。这种集中式数据处理方式不能使用网络设计,把昂贵的通信转变为廉价的本地计算。因此,为了减少节点能量消耗和带宽的使用,可以利用传感器节点有限的存储和计算能力,把用户的查询分发到传感器网络的相关节点上进行处理,这种技术[1~3]称为分布式传感器数据处理技术,近年来受到了越来越广泛的重视。
1 传感器网络的查询处理体系结构
在传感器网络中,为了保证传感器网络数据的可用性,满足用户查询的需要,往往需要对多个传感器节点的感知数据进行聚合处理,比如取和、取平均、取最大(小)值等。考虑到每个传感器节点都有有限的计算和存储能力,而且在传感器节点上的
计算比传输数据的能量消耗少,可以把查询的聚合计算从中心
数据库转移到网络中进行。图1给出了传感器网络查询处理体系结构一般形式的描述。
图1 传感器网络查询处理体系结构
在查询处理器中,使用查询模块和数据模块两个数据结构来分别存储用户的查询和数据元组。当用户给出查询时,要把它注册到查询模块中。同样,当从si nk 节点发回一个数据元组时,要把这个元组首先存储到数据模块中,然后搜索查询模块,如果有满足查询条件的,则把结果通知用户。
查询处理器把用户查询通过无线网络传送给si nk 节点,在s i nk 节点的应用层与网络层之间增加查询代理层,用来实现以下功能:(1)注册查询,并把新查询与现有的查询进行合并。(2)根据用户查询,产生一个查询计划和两个计算计划。(3)调整传感器节点感知数据的周期频率。(4)定期地把查询结果传送给查询处理器,当用户停止查询时,注销查询。
首领节点是根据查询计划从源传感器节点中选出的聚合节点,用来完成以下功能:首先注册首领计算计划;然后接收查询中相关传感器节点的数据,完成聚合计算;最后把满足条件的元
202
计算机应用与软件2008年
组发送给si nk节点。
源传感器节点收到首领节点发来的计算计划后,首先进行
注册,然后根据计算计划的查询周期定时激活传感器节点,获取
感知数据,并把自身的感知数据与其它节点的部分聚合数据进
行聚合,最后再把聚合数据发送给首领节点或其它传感器节点。
2 数据查询处理
2.1 查询语言
常规数据库的查询是基于固定数据集的一次查询,而传感
器网络中的查询是长期的周期性查询,为了适应传感器网络中
的这种查询,需要对原有S QL查询语言进行扩展。文献[4]给
出了扩展的查询语言模板,该模板中的SELECT、FROM、
WH ERE、GROUP BY和HAV I NG子句的语义与原有SQL类似,
不同的是增加了DURAT I ON和EVERY子句,用DURAT I ON子
句来说明查询的使用期限,EVERY子句来确定查询的间隔时
间。扩展后的SQL查询语言描述如下:
SELECT{attri bu tes,aggregates}FRO M{Sen s ordata S}WHERE
{pred i cate}GROUP BY{attri bu tes}HAV I NG{pred i cate}DURATI ON
ti m e i n tervalEVERY ti m e span e
2.2 数据查询处理过程
为了更好地描述数据查询处理过程,用以下实例进行说明。
假设在一个监控仓库温度的传感器网络中有k个温度传感
器节点R={n
1,n
2
, ,n
k
},终端用户提出了如下查询Q:
SELECT AVG(R.te mperat u re)
F RO M Te m perature S ensor R
WH ERE R.t e m perat u re>T
DURATI ON(no w,now+3600)
EVERY10
查询Q每隔10秒监控一次仓库的平均温度,连续监控一小时,如果平均温度大于用户预定义的温度阈值T时,就把结果返回给用户。
在查询处理器中,首先,把用户查询Q加入到查询处理器的查询模块中,然后把查询Q与现有注册的所有查询进行比较,若有相同的查询,则不再把查询Q发送给si nk节点,否则发送查询Q给s i nk节点。在si nk节点的查询代理层中,把查询Q 与已注册的查询Q1进行合并,合并时有以下几种情况:
(1)查询Q与Q1完全不同。先注册查询Q,并产生新的查询计划Q P,确定首领节点Ln
i
(1i k);然后产生一个传感器节点计算计划SCP和一个新首领节点计算计划LCP,并把它们分发到首领节点和所有相关的传感器节点上。其中,SCP包含两部分:一部分是触发器T r i gger,定时激活传感器,获取感知数据;另一部份是聚合运算Integrate,用来将其他传感器传送来的部分聚合数据与本传感器节点的感知数据进行聚合,并把聚合数据发送给首领节点或其他节点,如图2所示。这样,可以减少数据的传输量,从而降低网络节点的能量消耗。LCP中包含一个聚合In teg rate运算,用来计算相关传感器节点的感知数据或部分聚合数据;另外还包含一个SELECT运算,用来检查平均值是否大于阈值T,若平均值大于阈值T,则把该数据元组发送给si nk节点,如图3所示。
(2)查询Q与Q1查询间隔相同,都是10秒,且温度阈值T
也相同。只要调整查询Q1的连续监控时间,取Q与Q1中最大值,不再注册查询Q,也不需要产生任何新的查询计划。
(3)查询Q与Q1查询间隔相同,但温度阈值T不同。首先在si nk节点的查询代理层中注册查询Q,然后产生一个LCP,发送给查询Q1的首领节点,不需要再产生SCP。
(4)查询Q与Q1查询间隔不同,但温度阈值T相同。只要调整与查询Q1相关的源传感器节点触发器T rigger中的感知数据频率。若查询Q的时间间隔是Q1的整数倍,不用调整感知数据频率;若查询Q1的时间间隔是Q的整数倍,把感知数据频率按Q的时间间隔调整;若查询Q与Q1的时间间隔不成整数倍,把Q的间隔时间增加到源传感器的触发器T r i gger中。
图2 传感器节点查询计划SCP 图3 首领节点查询计划LCP 最后,首领节点把满足查询条件的元组发送给s i nk节点,由si nk节点通过长距离或临时建立的s i nk链路把该元组转发给查询处理器。在查询处理器中首先把这个元组存储到数据模块中,然后搜索查询模块,如果有满足查询条件的,则把结果通知用户。
3 结束语
由于传感器节点能量的约束,使得传感器网络的数据查询处理必须考虑能量的消耗问题。本文介绍了在si nk节点的应用层与网络层之间增加查询代理层的数据查询处理过程,通过把昂贵的网络通信转化为本地计算,有效地提高了传感器节点和整个网络的生命周期。
参考文献
[1]Yong Yao,J E.Geh rke Qu ery Process i ng i n Sen s or Net w orks.In Pro
ceed i ngs of the F irst B i enn i al Con ference on Innovati ve Dat a Syste m s R esearch.A silo m ar,C alif orn i a,January,2003.
[2]Sa m uelR M add en,M i chael J Frankli n.F j ord i ng t h e S trea m,An A rch i
t ect ure for Queri es over Strea m i ng Sensor Dat a.ICDE Conference,Feb ru ary,2002.
[3]Chaler m ek Intanagonw i w at,Deborah E stri n,Ra m esh Gov i ndan,J ohn H ei
de m ann.I m pact of Net w ork Dens i ty on Dat a Aggregati on i n W irel ess Sensor Net w or k s.In Proceed i ngs of t h e22nd Internati onal Con f erence on
D istri buted Co m puti ng Syste m s,V ienna,Austria,J u l y,2002.
[4]Yong Yao,Johannes Gehrk e.Qu ery Processi ng f or Sen s or N et w or k s.In
Proceed i ngs of t h e First B ienn i al C on f eren ce on Innovati ve Dat a Sys t e m s Research,A sil omar,Cali forn i a,Janu ary,2003.
(上接第176页)
[4]张爱丽,陈逢胜.利用M atco m实现V is u alC++与M atl ab的混合编
程[J].电脑编程技巧与维护,2003,6:19 21.
[5]罗蛟龙,张鹏,张维竞.V i sual C++下强大的科学运算函数库[J].
计算机工程,2000,26(12):152 154.
[6]卞鸿巍.舰船组合导航系统自适应信息融合技术研究[D].上海:
上海交通大学博士学位论文,2005.