发明名称 一种基于可扩展标记语言的无线传感器网络数据压缩方法
摘要 本发明公开了一种基于可扩展标记语言的无线传感器网络数据压缩方法。传统的无线传感器网络数据管理主要采用简单数据结构作为数据交换格式以减少无线传感器网络中因为数据交换带来的能量损耗,但这些简单数据结构不能有效地处理大型异构网络数据集合;当前的互联网数据传输标准XML适用于处理大型异构网络数据,但由于XML本身的自描述性,其数据格式的冗余度很大,对于能量有限的传感器节点来说是一个有待解决的问题。本发明提出了一种基于XML节点树结构的无线传感器网络数据压缩方法,简称TXC压缩方法,本方法适用于无线传感器网络并能有效支持动态查询,可以得到较好的压缩效率,在支持异构网络互连的同时有助于延长无线传感器网络的寿命。
申请公布号 CN103150346A 申请公布日期 2013.06.12
申请号 CN201310048475.3 申请日期 2013.02.07
申请人 南京邮电大学 发明人 管有庆;唐雪娇
分类号 G06F17/30(2006.01)I;H03M7/30(2006.01)I;H04L1/00(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 叶连生
主权项 一种基于可扩展标记语言的无线传感器网络数据压缩方法,其特征在于,对可扩展标记语言XML文档对应的XML节点树进行深度优先遍历并按遍历顺序将各个节点进行编号,XML节点树中的节点个数记为m,第i个节点可描述为Ni=(seqi,pathi,namei,parenti,valuei,atrbi),i∈[1,m];其中seqi表示第i个节点在深度优先遍历下的序号,pathi表示第i个节点的路径,namei表示第i个节点的名称,parenti表示第i个节点的双亲节点在深度优先遍历下对应的序号,valuei表示第i个节点的值,atrbi表示第i个节点的属性或附加信息;将XML节点树用以下式子来表示:T={ROOT,N},其中N为XML节点集合即N={Ni|i∈[1,m]},ROOT为XML节点树的唯一根节点;深度优先遍历XML节点树,依次将每个节点信息Ni=(seqi,pathi,namei,parenti,valuei,atrbi)分别添加到T={ROOT,N}中,遍历完毕后得到XML节点树对应的完整节点信息T;在XML节点树的节点集合N={Ni|i∈[1,m]}中,对于集合N中的节点Ni=(seqi,pathi,namei,parenti,valuei,atrbi),i∈[1,m],合并具有相同路径的冗余节点;若XML节点树中存在两个叶子节点Na和Nb,Na,Nb∈N,Na和Nb的路径信息分别为: <mrow> <mfenced open='' close=''> <mtable> <mtr> <mtd> <msub> <mi>path</mi> <msub> <mi>n</mi> <mi>a</mi> </msub> </msub> <mo>=</mo> <msub> <mi>n</mi> <mn>0</mn> </msub> <mo>&RightArrow;</mo> <msub> <mi>n</mi> <mi>i</mi> </msub> <mo>&RightArrow;</mo> <mo>.</mo> <mo>.</mo> <mo>.</mo> <mo>&RightArrow;</mo> <msub> <mi>n</mi> <mi>j</mi> </msub> <mo>&RightArrow;</mo> <msub> <mi>n</mi> <mi>a</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>path</mi> <msub> <mi>n</mi> <mi>b</mi> </msub> </msub> <mo>=</mo> <msub> <mi>n</mi> <mn>0</mn> </msub> <mo>&RightArrow;</mo> <msub> <mi>n</mi> <mi>p</mi> </msub> <mo>&RightArrow;</mo> <mo>.</mo> <mo>.</mo> <mo>.</mo> <mo>&RightArrow;</mo> <msub> <mi>n</mi> <mi>q</mi> </msub> <mo>&RightArrow;</mo> <msub> <mi>n</mi> <mi>b</mi> </msub> </mtd> </mtr> </mtable> </mfenced> <mo>,</mo> </mrow>n0,ni,nj,np,nq∈N;若路径深度 <mrow> <mi>depth</mi> <mrow> <mo>(</mo> <msub> <mi>path</mi> <msub> <mi>n</mi> <mi>a</mi> </msub> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mi>depth</mi> <mrow> <mo>(</mo> <msub> <mi>path</mi> <msub> <mi>n</mi> <mi>b</mi> </msub> </msub> <mo>)</mo> </mrow> </mrow>且 <mrow> <msub> <mi>name</mi> <msub> <mi>n</mi> <mi>a</mi> </msub> </msub> <mo>=</mo> <msub> <mi>name</mi> <msub> <mi>n</mi> <mi>b</mi> </msub> </msub> <mo>,</mo> </mrow>则认为Na等价于Nb,记做Na≈Nb;在XML节点树T={ROOT,N}中,查找等价节点并对其进行合并,修改合并后的等价节点路径表达式,将其置为pathk=n0→(ni||np)→...→(nj||nq)→nk,n0,ni,nj,np,nq,nk∈N;分离XML节点结构信息和数据信息,将节点结构信息和数据信息分开进行存储和压缩:1)XML节点结构信息在TXC压缩方法中,XML节点结构信息用“节点路径信息+节点初始序号”的混合数据类型来表示,由于同一个XML节点树中的节点路径信息会产生重叠,而浪费很多存储空间,因此对XML节点路径信息加以简化:对消除冗余后的XML节点树再进行一次深度优先遍历,并对各节点名称进行编号,得到XML节点名称映射表;对照XML节点名称映射表将XML节点路径信息用编号替换对应的节点名称字符串;2)XML节点数据信息XML节点的数据信息存储采用哈希表的方式来实现,以节点路径信息作为索引值,建立起XML节点结构信息到对应节点数据信息之间的映射关系,索引值key为简化后的节点路径表达式,key被消除冗余后的节点个数m取模后所得结果即为对应数据存储的哈希地址,即H(key)=key mod m采用链地址法来处理冲突构造哈希表:节点数据存储的哈希地址为H(key),具有相同索引值的节点数据信息存储在同一哈希单元保存的链表中,并用初始序号来区分该数据在原始XML文档中的位置。
地址 210003 江苏省南京市鼓楼区新模范马路66号