基于无线传感器网络中复合型数据的top-k查询方法及系统的制作方法

文档序号:7776331阅读:141来源:国知局
基于无线传感器网络中复合型数据的top-k查询方法及系统的制作方法
【专利摘要】本发明提供一种基于无线传感器网络中复合型数据的top-k查询方法,包括:将无线传感器网络中的某一节点设置为汇聚节点,其他节点设置为一般节点;一般节点基于采集到的信息生成自身的复合型数据,向汇聚节点发送复合型数据;其中,复合型数据包括测量数据以及测量数据对应的时间点;汇聚节点根据汇聚复合型数据以及所有与汇聚节点距离为一跳的一般节点的复合型数据生成复合型数据集合,并基于复合型数据集合进行查询,得到top-k数据对应时刻的范围以及最终的top-k数据。本发明极大地降低了计算top-k数据所需传输的数据包以及不必要数据的传输,节约了网络资源。
【专利说明】基于无线传感器网络中复合型数据的top-k查询方法及系统
【技术领域】
[0001]本发明涉及无线传感器网络技术,尤其是基于无线传感器网络中复合型数据的top-k查询方法及系统。
【背景技术】
[0002]目前,无线传感器网络被广泛地应用于收集数据、监测环境,利用一个更高效和便捷的方式来实现低成本,低功耗且易部署等特点。在无线传感器网络中,怎样高效和快速地从传感器节点中获得所需数据,对于无线传感器网络来说,其节点通常由电池供电,因此如何让网络节点高效工作并延长网络寿命是无线传感器网络面临的主要难题之一。无线传感器网络中节点效率的高低往往是通过传感器节点执行一个特定的任务所消耗的能量来衡量的。对于无线传感器网络,通常的目的是从一系列无线传感器目标节点中通过单挑或者多跳的方式收集数据到一些汇点(这些数据或者节点的感知数据,或者是节点的内部状态数据),网络管理员或者用户可以对采集的数据进行实时地分析,掌握网络运行状况。然而,受到无线传感器网络中节点能量受限的影响和依据应用的具体需求,网络管理员通常控制无线传感器节点尽量减少不必要信息的传递,只传递关键信息。举例而言,假设我们在一定区域部署了一些无线传感器节点对整个区域的温度进行监控(以小时为单位采集温度信息),如果网络管理员想知道在过去一天之内该区域最高的平均温度(所有部署的无限传感器节点在同一时刻采集温度总和的平均值)是多少,采用的方法一般是让每个监控节点将每个采集到的温度数据都发送回数据中心(或者基站),在网络管理员收集到所有无线传感器节点在过去一天之内的所有数据之后,以集中式计算的形式获得。但是这样无疑造成了一些不必要的数据传输,浪费的网络资源。
[0003]目前,基于top-k查询的相关研究主要针对数据库相关研究领域,在分布式网络或无线传感器网络中几乎没有涉及到top-k查询技术,少部分涉及top-k查询的还是单一数据的top-k查询,上述提到的网络资源的浪费并不能得到相应的解决。有鉴于此,有必要提供一种技术方案,以解决上述提到的诸多不足。

【发明内容】

[0004](一)要解决的技术问题
[0005]本发明的目的是,提供一种是基于无线传感器网络中复合型数据的top-k查询方法,从而实现节省网络资源的目的。
[0006](二)技术方案
[0007]为解决上述技术问题,本发明提供一种基于无线传感器网络中复合型数据的top-k查询方法,包括:
[0008]S10、将无线传感器网络中的某一节点设置为汇聚节点,其他节点设置为一般节占.[0009]S20、所述一般节点基于采集到的信息生成自身的复合型数据,向汇聚节点发送所述复合型数据;其中,所述复合型数据包括测量数据以及测量数据对应的时间点;
[0010]S30、所述汇聚节点获取所有与所述汇聚节点距离为一跳的一般节点的复合型数据,得到复合型数据组,并基于自身的采集信息聚合获取到的复合型数据组,生成汇聚复合型数据;
[0011]S40、所述汇聚节点根据汇聚复合型数据以及所有与所述汇聚节点距离为一跳的一般节点的复合型数据生成复合型数据集合,并基于所述复合型数据集合进行查询,得到top-k数据对应时刻的范围以及最终的top-k数据。
[0012]其中,所述S30中所述汇聚节点生成汇聚复合型数据包括:在预先建立的宽度优先树中获取所有以所述汇聚节点为父节点的子节点的复合型数据,并将汇聚节点的采集信息聚合所述子节点的复合型数据,生成汇聚合型数据;其中,所述无线传感器网络用G= (V, E)表示,所述宽度优先树是基于图形G并以所述汇聚节点为根节点通过宽度优先算
法建立的。
[0013]其中,所述子节点的复合型数据通过以下步骤获取:
[0014]基于所述子节点获取以所述子节点为根的子树;
[0015]选取所述子树中的一父节点,控制所述父节点采集自己子节点的复合型数据,并使所述父节点将自己持有的复合型数据与子节点的复合型数据进行聚合,得到所述父节点的新复合型数据;以及,控制所述父节点将新复合型数据发送给所述父节点的父节点;
[0016]重复执行上述数据聚合过程,直至所述子树中的所有节点完成以自己为父节点的子树的数据聚合,得到所述子节点的复合型数据。
[0017]其中,所述S40中所述汇聚节点通过以下步骤得到top-k数据对应时刻的范围:
[0018]S401、将所述汇聚复合型数据按测量数据的数值大小进行排序,得到最终汇聚复合型数据;控制所述子节点将子节点持有的复合型数据按测量数据的数值大小进行排序,得到所述子节点的最终复合型数据;
[0019]S402、读取所述最终汇聚复合型数据中的第r大汇聚数据,接收所述子节点发送的所述最终复合型数据中第r大数据;基于所述第r大汇聚数据和第r大数据,生成第r大数据集合;其中,l〈=i〈=b且i为正整数,b为子节点的个数;
[0020]S403、获取所述第r大数据集合中的最小数据项S以及所述第r大数据集合中所有数据项对应的出现时间点;对于所述所有数据项对应的出现时间点的每个出现时间点,判定并获取所有节点对应于所述出现时间点的最小对应复合型数据,得到最小对应复合型数据集合;以及,将所述最小对应复合型数据集合中的数据由大到小进行排序,得到最终最小对应复合型数据集合;
[0021]S404、获取所述最终最小对应复合型数据集合中第k大值,判断最小数据项S是否不大于第k大值;
[0022]S4051、若是,则判定top-k数据对应的时刻为上述某一出现时间点;
[0023]S4052、若否,则使r=r+l,重复执行S402?S404,直至判定top-k数据对应的时刻为上述某一出现时间点。
[0024]其中,所述S40中所述汇聚节点得到最终的top-k数据包括:
[0025]S406、对于所述所有数据项对应的出现时间点的每个出现时间点,计算所有节点的测量数据的数值总和,得到数值总和集合;并从所述数值总和集合中从大到小选取前k个数据,得到最终的top-k数据。
[0026]为解决上述技术问题,本发明还提供一种基于无线传感器网络中复合型数据的top-k查询系统,包括:汇聚节点和以及与所述汇聚节点通信连接的一般节点,所述汇聚节点包括聚合模块以及查询模块,所述一般节点包括生成模块以及发送模块;
[0027]所述生成模块,用于基于一般节点的采集信息生成所述一般复合型数据,其中,所述复合型数据包括测量数据以及测量数据对应的时间点;
[0028]所述发送模块,用于向所述聚合模块发送所述复合型数据;
[0029]所述聚合模块,用于接收所有与所述汇聚节点距离为一跳的一般节点的复合型数据,得到复合型数据组,并基于所述汇聚节点的采集信息聚合获取到的复合型数据组,生成汇聚复合型数据,并将所述汇聚复合数据发送至查询模块;
[0030]所述查询模块,用于根据汇聚复合型数据以及所述聚合模块接收到的复合型数据生成复合型数据集合,并基于所述复合型数据集合进行查询,得到top-k数据对应时刻的范围以及最终的top-k数据。
[0031]其中,所述聚合模块包括生成单元,用于在预先建立的宽度优先树中获取所有以所述汇聚节点为父节点的子节点的复合型数据,并将汇聚节点的采集信息聚合所述子节点的复合型数据,生成汇聚合型数据;其中,所述无线传感器网络用G= (V, E)表示,所述宽度优先树是基于图形G并以所述汇聚节点为根节点通过宽度优先算法建立的。
[0032]其中,所述生成单元包括子树获取子单元以及数据聚合子单元;
[0033]所述子树获取子单元,用于基于所述子节点获取以所述子节点为根的子树;
[0034]所述数据聚合子单元,用于选取所述子树中的一父节点,控制所述父节点采集自己子节点的复合型数据,并使所述父节点将自己持有的复合型数据与子节点的复合型数据进行聚合,得到所述父节点的新复合型数据;以及,控制所述父节点将新复合型数据发送给所述父节点的父节点;
[0035]所述数据聚合子单元,还用于重复执行上述数据聚合过程,直至所述子树中的所有节点完成以自己为父节点的数据聚合,得到所述子节点的复合型数据。
[0036]其中,所述查询模块包括排序单元、第r大数据获取单元、最小值获取单元、判断单元、第一判定单元以及第二判定单元;
[0037]所述排序单元,用于将所述汇聚复合型数据按测量数据的数值大小进行排序,得到最终汇聚复合型数据;控制所述子节点将子节点持有的复合型数据按测量数据的数值大小进行排序,得到所述子节点的最终复合型数据;
[0038]所述第r大数据获取单元,用于读取所述最终汇聚复合型数据中的第r大汇聚数据,接收所述子节点发送的所述最终复合型数据中第r大数据;基于所述第r大汇聚数据和第r大数据,生成第r大数据集合;其中,l〈=i〈=b且i为正整数,b为子节点的个数;
[0039]所述最小值获取单元,用于获取所述第r大数据集合中的最小数据项S以及所述第r大数据集合中所有数据项对应的出现时间点;对于所述所有数据项对应的出现时间点的每个出现时间点,判定并获取所有节点对应于所述出现时间点的最小对应复合型数据,得到最小对应复合型数据集合;以及,将所述最小对应复合型数据集合中的数据由大到小进行排序,得到最终最小对应复合型数据集合;[0040]所述判断单元,用于获取所述最终最小对应复合型数据集合中第k大值,判断最小数据项S是否不大于第k大值;
[0041]所述第一判定单元,用于在最小数据项S不大于第K大值的情况下判定top-k数据对应的时刻为上述某一出现时间点;
[0042]所述第二判定单元,用于在最小数据项S大于第K大值的情况下,使r=r+l,触发第r大数据获取单元生成第r大数据集合,直至第一判定单元判定top-k数据对应的时刻为上述某一出现时间点。
[0043]其中,所述查询模块还包括:top-k数据获取单元,用于对于所述所有数据项对应的出现时间点的每个出现时间点,计算所有节点的测量数据的数值总和,得到数值总和集合;并从所述数值总和集合中从大到小选取前k个数据,得到最终的top-k数据。
[0044](三)有益效果
[0045]区别于【背景技术】,本发明提出了复合型数据的思想,通过将无线传感器网络中的节点划分为汇聚节点和一般节点,当数据传输时,一般节点会将自己采集的信息生成自身的复合型数据,向汇聚节点发送所述复合型数据;汇聚节点会将自己的采集信息与获取到的复合型数据进行聚合,从而生成汇聚节点最终所需要的数据——汇聚复合型数据。汇聚节点再查询汇聚复合型数据以及所有一般节点的复合型数据,得到最终的top-k数据。由于本发明汇聚节点及一般节点都是基于复合型数据进行查询及其他操作的,数据传输时不会一个数据一个数据的传输,而是将所有数据整合成一个复合型数据进行传输,极大地降低了计算top-k数据所需传输的数据包以及不必要数据的传输,节约了网络资源。
【专利附图】

【附图说明】
[0046]图1是实施方式一中基于无线传感器网络中复合型数据的top-k查询方法流程示意图;
[0047]图2是实施方式一中具体实施例基于无线传感器网络中复合型数据的top-k查询方法流程示意图;
[0048]图3是实施方式三基于无线传感器网络中复合型数据的top-k查询系统图;
[0049]图4是实施方式三中具体实施例汇聚节点的模块图。
【具体实施方式】
[0050]本发明主要针对无线传感器网络中分布式复合型数据查询问题,提出有效的无线传感器网络分布式复合型数据Top-K查询方法,在本领域中,Top-k查询就是返回数据库/或其他存储装置中最满足查询条件的前K条记录。这里,复合型数据是指,单个无线传感器节点采集和持有的数据不具有独立意义,需作为一个整体存在。比如,部署了η个节点Iv1, V2,..., νη}的网络,如果节点Vi在时刻t采集到的温度值为Ai (t),那么
(t),A2⑴,...,An⑴ > 作为一个复合型数据存在。
[0051]实施方式一
[0052]请参阅图1,本实施方式提供了一种基于无线传感器网络中复合型数据的top-k查询方法,包括:
[0053]S10、将无线传感器网络中的某一节点设置为汇聚节点,其他节点设置为一般节点;[0054]S20、所述一般节点基于采集到的信息生成自身的复合型数据,向汇聚节点发送所述复合型数据;其中,所述复合型数据包括测量数据以及测量数据对应的时间点;
[0055]S30、所述汇聚节点获取所有与所述汇聚节点距离为一跳的一般节点的复合型数据,得到复合型数据组,并基于自身的采集信息聚合获取到的复合型数据组,生成汇聚复合型数据;
[0056]S40、所述汇聚节点根据汇聚复合型数据以及所有与所述汇聚节点距离为一跳的一般节点的复合型数据生成复合型数据集合,并基于所述复合型数据集合进行查询,得到top-k数据对应时刻的范围以及最终的top-k数据。
[0057]为能更好地理解图1中的内容,本发明总体的发明思想解释如下:我们先给定一联通的无线传感器网络,共有η个节点,分别用Vl,V2,...,Vn来表示;其中假设V1为指定的汇聚节点,即其他节点要通过一跳或者多跳的方式将数据传输给Vl。每个传感器节点从h到tm共111个时刻点分别采集了 m个数据,在这里,节点Vi持有的m个数据用(A^t1)1Ai (t2),..., Ai (tm) }表示。这里,AiUj)可以代表传感器节点Vi在时刻tj所采集到的数据(如温湿度,光照等数据等)或者节点Vi的状态数据(如在过去一段时间内累计的传输次数等)。网络管理员需要查询top-k的复合型数据(如过去m个时刻中前k个平均温度最高值),一般节点先将所有数据项收集到汇聚节点,然后由汇聚节点使用集中式算法完成对所有复合型数据排序工作,进而获得top-k。这里k是变量,k的数值由应用需求决定,通常k是大于I小于η的常数,这个η是无线传感器网络包含节点的个数。注意这里的top-k是由应用需求决定的,并不是严格的最大或者最少。例如,如果我们想获得所有网络节点在过去m个时间周期(时刻\到时刻ti+1的时间段称为一个周期)内,最低的k个全网平均传输次数,那么这里的top-k指代平均传输次数最少的k复合型数据值;再比如,如果我们想获得全网在过去m个时间周期,最高的k个平均温度值,那么这里的top-k则指代全网范围内平均温度最高的k个复合型数据值。
[0058]由上可看出,本发明提出了复合型数据的思想,通过将无线传感器网络中的节点划分为汇聚节点和一般节点,当数据传输时,一般节点会将自己采集的信息生成自身的复合型数据,向汇聚节点发送所述复合型数据;汇聚节点会将自己的采集信息与获取到的复合型数据进行聚合,从而生成汇聚节点最终所需要的数据——汇聚复合型数据。汇聚节点再查询汇聚复合型数据以及所有一般节点的复合型数据,得到最终的top-k数据。由于本发明汇聚节点及一般节点都是基于复合型数据进行查询及其他操作的,数据传输时不会一个数据一个数据的传输,而是将所有数据整合成一个复合型数据进行传输,极大地降低了计算top-k数据所需传输的数据包以及不必要数据的传输,节约了网络资源。
[0059]请参阅图2,为基于无线传感器网络中复合型数据的top-k查询方法的一具体实施例。结合前文设定,下面具体解释本发明的技术方案。在本实施例中,整个无线传感器网络用G= (V,E)来表示,其中V是包含所有无线传感器节点的集合Iv1, v2,...,vn},E包含所有的无线传感器节点之间的边,例如,如果节点Vi和节点 ' 之间存在一条单跳的数据链路,则边W属于集合E。对于上述已经部署的无线传感器网络,使用宽度优先算法(BreathFirst Search)算法来建立基于图形G且以V1为根节点的宽度优先树(BFS Tree),假设为T (V1)。当然,在其他某些实施例中,树的类型及形成算法可根据需要具体设定。[0060]该方法起始于步骤S10,将无线传感器网络中的某一节点设置为汇聚节点,其他节点设置为一般节点。在本发明,汇聚节点为V1,其他节点lv2,...,vn}为一般节点。
[0061]在步骤S20中,一般节点基于采集到的信息生成自身的复合型数据,向汇聚节点发送所述复合型数据;其中,所述复合型数据包括测量数据以及测量数据对应的时间点。在这里,我们设定每个传感器节点从h到tm*m个时刻点分别采集了 m个数据,节点Vi持有的m个数据用(AiU1) ,AiU2),..., Ai (tm) }表示。那么,在过去m个时刻It1, t2,..., tm}内,网络中共有m个复合型数据对象产生L= {L U1),L (t2) ,...,L (tm)}。每个复合型数据对象由所有传感器节点在同一时刻的测量值组成,即
[0062]L (tj) =<A, (tj),A2 (tj),...,An (tj) >。
[0063]这里复合型数据对象的值可以由组成其自身的所有节点测量值构成的函数获得,即UtjkFuncAUj), A2(tj),..., An (tj))。这里,函数Func可以根据需求有多种定义。例如,如果 Func 是平均值函数,那么 L (tj) =Func (A1 (t」),A2 (t」),...,An(tj)) = (A1 (tj) +A2 (tj) +...+Αηα」))/η。从现在开始,为方便表述,我们假设Func函数为平均值函数。所以,给定Func的具体定义,(Lai)1La2),...,L(tm)}中的复合型数据都对应了一定的值。也就是说,复合型数据Top-k查询方法是用来在m个复合型数据Φ (Lai)1L (t2),…,L (tm)},找到前k个最小值(或者最大值)。为方便论述,不产生歧义,本发明后面方法部分,top-k指代网络中所有复合型数据项中数值最大的k个复合型数据项。
[0064]然后汇聚节点在树T (V1)获取所有以所述汇聚节点为父节点的子节点的复合型数据,并将汇聚节 点的采集信息聚合所述子节点的复合型数据,生成汇聚合型数据。具体的,使用如下方法,将树T (V1)中以自己为根节点的子树的所有节点包含的复合型数据聚合上来,其数据聚合过程参见下文S301-S303。
[0065]在步骤S301中,假设在树T (V1)中,以V1为父节点的节点共有b个,即汇聚节点的子节点分别为{u/,U21,Ub1I,首先基于所述子节点{u/,U21,Ub1I获取以所述子节点为根的子树。下面以U11为根的子树T (U11)为例,说明子节点U11复合型数据的得到过程。
[0066]在步骤S302中,选取所述子树T (U11)中的一父节点X,控制所述父节点X所有孩子的复合型数据之后,父节点X将自己持有的复合型数据与采集到的孩子的复合型数据进行聚合(相加),得到所述父节点X的新复合型数据。例如,如果节点X为节点Y和节点Z的父节点。假设节点X,Y,Z自身持有的复合型数据分别为,Ax(tm)},(AY(t1), AY(t2),..., Ay (tm)}和(A^t1), Az (t2),..., Az (tm)},那么节点 X 在收集到节点 Y 和节点Z的复合型数据之后,将自己的符合型数据重新设置为{ Ax U1) +Ay U1) +Az U1),Ax (t2) +Ay (t2) +Az (tj),...,Ax (tm) +Ay (tm) +Az (tm)}。
[0067]在父节点X聚合完自己子树上所有节点的数据之后,控制父节点X将自己的新的复合型数据发送给自己的父节点。
[0068]在步骤S303中,重复执行上述数据聚合过程,直至所述子树中的所有节点完成以自己为父节点的数据聚合,得到所述子节点的复合型数据。
[0069]再重复上述过程,直至所有节点Ui1(K=K=I3)完成以自己为根节点的子树中所有节点的数据聚合,得到所有节点Ui1的复合型数据。汇聚节点获取所有节点Ui1的复合型数据,并将获取到的复合型数据与自身的复合型数据进行聚合,得到汇聚复合型数据。[0070] 在步骤S401中,对于{Vl,11/,?1,...,?1}中的所有节点,将自己的复合型数据按照数值由大到小进行排列。即如果节点X (X =ui1forl<=i<=b)的复合型数据为(AxU1),Ax(t2),...,Ax(tm)},那么排列之后,该复合型数据包含的m个数据项的数值应该是由大到小排列的。
[0071]在步骤S402中^力,!!/,~1,..., Ub1I中的节点分别将自己持有的复合型数据中第r大的单一数据项发给Vl。V1对于接收到的所有数据项。首先计算所有收到数据的最小值,假设为S。在本实施方式中,l〈=r〈=m。
[0072]在步骤S403中,统计这些数据项对应的所有时间点,即这些最大值数据是在过去m个时刻It1, t2,...,tm}中哪一个时刻产生的。因为对应这些已出现时刻的数据都有可能是最终的top-k数据,所以V1发信息给所有{ u/,U21,Ub1I中的节点,要求他们将自己持有的,对应于所有已经出现的时间点的数据项发送给V1。
[0073]对于所有已经出现的时刻(假设共有P个时刻,分别为{ta,ta+1, ta+p_J ),V1统计这P个时刻对应对应的所有数据项的最小值。例如,对于时刻ta,计算{v1;U11, U21,Ub1I中节点传输上来的对应于时刻ta的最小值Min (ta);依次类推,假设对应于{ta, ta+1,...,ta+p_J 中时刻的最小值分别为{Min(ta),Min(ta+1),..., Min (t^^) }。
[0074]在步骤S404 4M#{Min(ta),Min(ta+1),...,MinU }中的数据由大到小进行排列,获取{Min(ta), Min(ta+1),..., Min (t^^)冲第k大的值,并判断S是否不大于第k大的值。
[0075]在步骤S4051,如果判定 S 不大于{Min (ta),Min (ta+1),...,MinU )中第 k 大的值,那么top-k数据对应的时刻一定存在于{ta,ta+1,ta+p_J之中。执行步骤S406。
[0076]在步骤S4052 中,如果 S 大于{ Min (ta),Min (ta+1),...,Min (t^^) }中第 k 大的值,则使r=r+l; V1发信息给所有{u/,U21,Ub1I中的节点,要求他们将自己持有的第r大的数据项发送给Vl。重复S402-S404,直到判定top-k数据对应的时刻一定存在于{ta,ta+D...,ta+p-l} 中。
[0077]在步骤S406中,V1已经收到了这P个时刻对应的全网数据,V1可以计算出每个时刻{Vl,U11, U21, Ub1I的数值总和,得到最终的数据数值总和集合,例如,V1计算节点集合(v1; U11, U21, Ub1I中的所有对应于时间点ta的数值总和Sum (ta),以此类推得到对应于{ta, ta+1,...,ta+p_J 的数据数值总和集合{Sum(ta),Sum(ta+1),...,Sum(t^^) }。对数据数值总和集合{Sum (ta),Sum(ta+1)Sum(ta+P_1) }按从大到小进行排序,取得前k个数值即为最终的top-k数据。
[0078]实施方式二
[0079]本实施方式与实施方式一大致相同,不同之处在于:还包括备份汇聚节点,汇聚节点正常工作时,备份汇聚节点充当一般节点的角色;当汇聚节点出现问题时,备份汇聚节点充当汇聚节点的角色。具体的,备份汇聚节点为距离汇聚节点一跳的一般节点,当汇聚节点出现问题,选取一备份汇聚节点自动成为新汇聚节点,距离新汇聚节点的一般节点则成为新汇聚节点的备份汇聚节点。在另外的实施方式中,汇聚节点还可以为多个,每个汇聚节点同样具有备份汇聚节点。
[0080]实施方式三
[0081]请参阅图3,本实施方式提供一种基于无线传感器网络中复合型数据的top-k查询系统,包括:汇聚节点300和以及与所述汇聚节点300通信连接的一般节点400,所述汇聚节点300包括聚合模块301以及查询模块302,所述一般节点400包括生成模块401以及发送模块402。
[0082]所述生成模块401,用于基于一般节点的采集信息生成所述一般复合型数据,其中,所述复合型数据包括测量数据以及测量数据对应的时间点;
[0083]所述发送模块402,用于向所述聚合模块发送所述复合型数据;
[0084]所述聚合模块301,用于接收所有与所述汇聚节点距离为一跳的一般节点的复合型数据,得到复合型数据组,并基于所述汇聚节点的采集信息聚合获取到的复合型数据组,生成汇聚复合型数据,并将所述汇聚复合数据发送至查询模块;
[0085]所述查询模块302,用于根据汇聚复合型数据以及所述聚合模块接收到的复合型数据生成复合型数据集合,并基于所述复合型数据集合进行查询,得到top-k数据对应时刻的范围以及最终的top-k数据。
[0086]本发明提出了复合型数据的思想,通过将无线传感器网络中的节点划分为汇聚节点和一般节点,当数据传输时,一般节点的生成模块401会将自己采集的信息生成自身的复合型数据,发送模块402向汇聚节点发送所述复合型数据;汇聚节点的聚合模块301会将自己的采集信息与获取到的复合型数据进行聚合,从而生成汇聚节点最终所需要的数据——汇聚复合型数据。汇聚节点的查询模块302再查询汇聚复合型数据以及所有一般节点的复合型数据,得到最终的top-k数据。由于本发明汇聚节点及一般节点都是基于复合型数据进行查询及其他操作的,数据传输时不会一个数据一个数据的传输,而是将所有数据整合成一个复合型数据进行传输,极大地降低了计算top-k数据所需传输的数据包以及不必要数据的传输,节约了网络资源。
[0087]请参阅图4,为基于无线传感器网络中复合型数据的top-k查询系统一【具体实施方式】中汇聚节点300的模块图。汇聚节点300包括聚合模块301和查询模块302 ;聚合模块301包括生成单元3010,生成单元3010包括子树获取子单元3011以及数据聚合子单元3012 ;查询模块302排序单元3021、第r大数据获取单元3022、最小值获取单元3023、判断单元3024、第一判定单元30251、第二判定单元30252以及top-k数据获取单元3026。
[0088]生成单元3010,用于在预先建立的宽度优先树中获取所有以所述汇聚节点为父节点的子节点的复合型数据,并将汇聚节点的采集信息聚合所述子节点的复合型数据,生成汇聚合型数据;其中,所述宽度优先树是基于图形G并以所述汇聚节点为根节点通过宽度优先算法建立的。
[0089]子树获取子单元3011,用于基于所述子节点获取以所述子节点为根的子树。
[0090]数据聚合子单元3012,用于选取所述子树中的一父节点,控制所述父节点采集自己子节点的复合型数据,并使所述父节点将自己持有的复合型数据与子节点的复合型数据进行聚合,得到所述父节点的新复合型数据;以及,控制所述父节点将新复合型数据发送给所述父节点的父节点。
[0091]数据聚合子单元3012,还用于重复执行上述数据聚合过程,直至所述子树中的所有节点完成以自己为父节点的数据聚合,得到所述子节点的复合型数据。
[0092]排序单元3021,用于将所述汇聚复合型数据按测量数据的数值大小进行排序,得到最终汇聚复合型数据;控制所述子节点将子节点持有的复合型数据按测量数据的数值大小进行排序,得到所述子节点的最终复合型数据。
[0093]第r大数据获取单元3022,用于读取所述最终汇聚复合型数据中的第r大汇聚数据,接收所述子节点发送的所述最终复合型数据中第r大数据;基于所述第r大汇聚数据和第r大数据,生成第r大数据集合;其中,l〈=i〈=b且i为正整数,b为子节点的个数。
[0094]最小值获取单元3023,用于获取所述第r大数据集合中的最小数据项S以及所述第r大数据集合中所有数据项对应的出现时间点;对于所述所有数据项对应的出现时间点的每个出现时间点,判定并获取所有节点对应于所述出现时间点的最小对应复合型数据,得到最小对应复合型数据集合;以及,将所述最小对应复合型数据集合中的数据由大到小进行排序,得到最终最小对应复合型数据集合。
[0095]判断单元3024,用于获取所述最终最小对应复合型数据集合中第k大值,判断最小数据项S是否不大于第k大值。
[0096]第一判定单元30251,用于在最小数据项S不大于第K大值的情况下判定top_k数据对应的时刻为上述某一出现时间点。
[0097]第二判定单元30252,用于在最小数据项S大于第K大值的情况下,使r=r+l,并触发第r大数据获取单元3022生成第r大数据集合,直至第一判定单元30251判定top-k数据对应的时刻为上述某一出现时间点。
[0098]top-k数据获取单元3026,用于对于所述所有数据项对应的出现时间点的每个出现时间点,计算所有节点的测量数据的数值总和,得到数值总和集合;并从所述数值总和集合中从大到小选取前k个数据,得到最终的top-k数据。
[0099]以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的【技术领域】,均同理包括在本发明的专利保护范围内。
【权利要求】
1.一种基于无线传感器网络中复合型数据的t0p-k查询方法,其特征在于,包括: S10、将无线传感器网络中的某一节点设置为汇聚节点,其他节点设置为一般节点; S20、所述一般节点基于采集到的信息生成自身的复合型数据,向汇聚节点发送所述复合型数据;其中,所述复合型数据包括测量数据以及测量数据对应的时间点; S30、所述汇聚节点获取所有与所述汇聚节点距离为一跳的一般节点的复合型数据,得到复合型数据组,并基于自身的采集信息聚合获取到的复合型数据组,生成汇聚复合型数据; S40、所述汇聚节点根据汇聚复合型数据以及所有与所述汇聚节点距离为一跳的一般节点的复合型数据生成复合型数据集合,并基于所述复合型数据集合进行查询,得到top-k数据对应时刻的范围以及最终的top-k数据。
2.根据权利要求1所述的top-k查询方法,其特征在于,所述S30中所述汇聚节点生成汇聚复合型数据包括: 在预先建立的宽度优先树中获取所有以所述汇聚节点为父节点的子节点的复合型数据,并将汇聚节点的采集信息聚合所述子节点的复合型数据,生成汇聚合型数据;其中,所述无线传感器网络用G= (V,E)表示,所述宽度优先树是基于图形G并以所述汇聚节点为根节点通过宽度优先算法建立的。
3.根据权利要求2所述的top-k查询方法,其特征在于,所述子节点的复合型数据通过以下步骤获取: 基于所述子节点获取以所述子节点为根的子树; 选取所述子树中的一父节点,控制所述父节点采集自己子节点的复合型数据,并使所述父节点将自己持有的复合型数据与子节点的复合型数据进行聚合,得到所述父节点的新复合型数据;以及,控制所述父节点将新复合型数据发送给所述父节点的父节点; 重复执行上述数据聚合过程,直至所述子树中的所有节点完成以自己为父节点的子树的数据聚合,得到所述子节点的复合型数据。
4.根据权利要求2所述的top-k查询方法,其特征在于,所述S40中所述汇聚节点通过以下步骤得到top-k数据对应时刻的范围: S401、将所述汇聚复合型数据按测量数据的数值大小进行排序,得到最终汇聚复合型数据;控制所述子节点将子节点持有的复合型数据按测量数据的数值大小进行排序,得到所述子节点的最终复合型数据; S402、读取所述最终汇聚复合型数据中的第r大汇聚数据,接收所述子节点发送的所述最终复合型数据中第r大数据;基于所述第r大汇聚数据和第r大数据,生成第r大数据集合;其中,l〈=i〈=b且i为正整数,b为子节点的个数; S403、获取所述第r大数据集合中的最小数据项S以及所述第r大数据集合中所有数据项对应的出现时间点;对于所述所有数据项对应的出现时间点的每个出现时间点,判定并获取所有节点对应于所述出现时间点的最小对应复合型数据,得到最小对应复合型数据集合;以及,将所述最小对应复合型数据集合中的数据由大到小进行排序,得到最终最小对应复合型数据集合; S404、获取所述最终最小对应复合型数据集合中第k大值,判断最小数据项S是否不大于第k大值;S4051、若是,则判定top-k数据对应的时刻为上述某一出现时间点; S4052、若否,则使r=r+l,重复执行S402~S404,直至判定top-k数据对应的时刻为上述某一出现时间点。
5.根据权利要求4所述的top-k查询方法,其特征在于,所述S40中所述汇聚节点得到最终的top-k数据包括: S406、对于所述所有数据项对应的出现时间点的每个出现时间点,计算所有节点的测量数据的数值总和,得到数值总和集合;并从所述数值总和集合中从大到小选取前k个数据,得到最终的top-k数据。
6.一种基于无线传感器网络中复合型数据的top-k查询系统,其特征在于,包括:汇聚节点和以及与所述汇聚节点通信连接的一般节点,所述汇聚节点包括聚合模块以及查询模块,所述一般节点包括生成模块以及发送模块; 所述生成模块,用于基于一般节点的采集信息生成所述一般复合型数据,其中,所述复合型数据包括测量数据以及测量数据对应的时间点; 所述发送模块,用于向所述聚合模块发送所述复合型数据; 所述聚合模块,用于接收所有与所述汇聚节点距离为一跳的一般节点的,得到复合型数据组,并基于所述汇聚节点的采集信息聚合获取到的复合型数据组,生成汇聚复合型数据,并将所述汇聚复合数据发送至查询模块; 所述查询模块,用于根据汇聚复合型数据以及所述聚合模块接收到的复合型数据生成复合型数据集合,并基于所述复合型数据集合进行查询,得到top-k数据对应时刻的范围以及最终的top-k数据。
7.根据权利要求6所述的top-k查询系统,其特征在于:所述聚合模块包括生成单元,用于在预先建立的宽度优先树中获取所有以所述汇聚节点为父节点的子节点的复合型数据,并将汇聚节点的采集信息聚合所述子节点的复合型数据,生成汇聚合型数据;其中,所述无线传感器网络用G=(V,E)表示,所述宽度优先树是基于图形G并以所述汇聚节点为根节点通过宽度优先算法建立的。
8.根据权利要求7所述的top-k查询系统,其特征在于:所述生成单元包括子树获取子单元以及数据聚合子单元; 所述子树获取子单元,用于基于所述子节点获取以所述子节点为根的子树; 所述数据聚合子单元,用于选取所述子树中的一父节点,控制所述父节点采集自己子节点的复合型数据,并使所述父节点将自己持有的复合型数据与子节点的复合型数据进行聚合,得到所述父节点的新复合型数据;以及,控制所述父节点将新复合型数据发送给所述父节点的父节点; 所述数据聚合子单元,还用于重复执行上述数据聚合过程,直至所述子树中的所有节点完成以自己为父节点的数据聚合,得到所述子节点的复合型数据。
9.根据权利要求7所述的top-k查询系统,其特征在于:所述查询模块包括排序单元、第r大数据获取单元、最小值获取单元、判断单元、第一判定单元以及第二判定单元; 所述排序单元,用于将所述汇聚复合型数据按测量数据的数值大小进行排序,得到最终汇聚复合型数据;控制所述子节点将子节点持有的复合型数据按测量数据的数值大小进行排序,得到所述子节点的最终复合型数据;所述第r大数据获取单元,用于读取所述最终汇聚复合型数据中的第r大汇聚数据,接收所述子节点发送的所述最终复合型数据中第r大数据;基于所述第r大汇聚数据和第r大数据,生成第r大数据集合;其中,l〈=i〈=b且i为正整数,b为子节点的个数; 所述最小值获取单元,用于获取所述第r大数据集合中的最小数据项S以及所述第r大数据集合中所有数据项对应的出现时间点;对于所述所有数据项对应的出现时间点的每个出现时间点,判定并获取所有节点对应于所述出现时间点的最小对应复合型数据,得到最小对应复合型数据集合;以及,将所述最小对应复合型数据集合中的数据由大到小进行排序,得到最终最小对应复合型数据集合; 所述判断单元,用于获取所述最终最小对应复合型数据集合中第k大值,判断最小数据项S是否不大于第k大值; 所述第一判定单元,用于在最小数据项S不大于第K大值的情况下判定top-k数据对应的时刻为上述某一出现时间点; 所述第二判定单元,用于在最小数据项S大于第K大值的情况下,使r=r+l,触发第r大数据获取单元生成第r大数据集合,直至第一判定单元判定top-k数据对应的时刻为上述某一出现时间点。
10.根据权利要求9所述的top-k查询系统,其特征在于,所述查询模块还包括:top-k数据获取单元,用于对于所述所有数据项对应的出现时间点的每个出现时间点,计算所有节点的测量数据的数值总和,得到数值总和集合;并从所述数值总和集合中从大到小选取前k个数据,得到最 终的top-k数据。
【文档编号】H04W84/18GK103617197SQ201310565488
【公开日】2014年3月5日 申请日期:2013年11月13日 优先权日:2013年11月13日
【发明者】毛续飞, 刘云浩, 孙家广 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1