《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于XMPP協議的XML數據流壓縮模型研究
基于XMPP協議的XML數據流壓縮模型研究
2016年微型機與應用第1期
齊鋮1,2,吳靜1,2
(1.西南科技大學 信息工程學院,四川 綿陽 621010; 2.特殊環境機器人技術四川省重點實驗室,四川 綿陽 621010)
摘要: XMPP協議作為基于XML數據流的即時通信協議,可用于構建統一、高效的智能家居監控消息推送方案。針對XMPP協議存在的流量冗余較大的不足,提出了一種基于容器模型和BWT變換思想的XMPP數據流壓縮模型。該模型通過對XML數據流的容器劃分、前綴編碼和預處理,在單次掃描數據流的基礎上達到壓縮率的最大化。實驗證明,該模型方案能有效節約XMPP協議通信過程產生的網絡流量,并具有可行性。
Abstract:
Key words :

  摘要XMPP協議作為基于XML數據流的即時通信協議,可用于構建統一、高效的智能家居監控消息推送方案。針對XMPP協議存在的流量冗余較大的不足,提出了一種基于容器模型BWT變換思想的XMPP數據流壓縮模型。該模型通過對XML數據流的容器劃分、前綴編碼和預處理,在單次掃描數據流的基礎上達到壓縮率的最大化。實驗證明,該模型方案能有效節約XMPP協議通信過程產生的網絡流量,并具有可行性。

  關鍵詞:XMPP協議;流壓縮;容器模型;BWT

0引言

  在智能家居系統的應用背景中,通過手機等移動終端對設備進行遠程控制、監測是基本需求。XMPP協議(Extensible Messaging and Presence Protocol)是基于XML的開放可擴展協議,用于在兩個或多個網絡實體之間進行結構化和可擴展的實時信息交流。將該協議引入智能家居控制領域,可以為異構設備群組成的家居體系提供統一的通信標準。但是XML格式數據流中大量的結構信息造成了較大的流量冗余,給移動控制終端造成了較大的網絡流量消耗。因此,基于提高協議的運行效率、消除其流量冗余的考慮,應該對協議雙方通信過程中產生的數據流進行有效的壓縮[1]。

  現有的XML壓縮工具,如XMill、XGrind、Xpress等都是針對靜態XML文檔,對動態數據流的支持不理想[2]。王騰蛟等提出了一種XSC壓縮算法,該方法借助DTD和字典壓縮思想構建高效的索引完成對數據流的實時壓縮[3]。張曉琳等提出了一種基于動態Huffman編碼的XML數據流壓縮技術,該算法利用XML Schema和動態樹結構進行編碼,達到壓縮目的[4]。本文根據XMPP協議數據流傳輸的特點,結合容器劃分理念和BWT的思想,構建了一種基于容器模型和BWT預處理的非對稱XML數據流壓縮方法。該方法單次掃描數據流,不用借助DTD和XML Schema等格式定義文檔,并有較好的壓縮效率。

1XML數據流壓縮算法的設計和實現

  1.1XML數據流壓縮算法的原理

  本算法針對實時傳輸的XML數據流,結合XML數據格式的特點,考慮將數據流中的相關節點利用SAX解析器解析形成觸發事件流,并觸發對應的處理程序,處理程序結合靜態存儲的字典,利用前綴索引編碼將數據分別存放到對應結構的結構容器和對應內容的內容容器中,達到結構與內容分離的目的。然后,將分離的每個容器中的內容進行BWT變換的預處理,變換的目的是將容器內相關語義的編碼盡量靠攏,減小信息熵,這樣可以有效地提高對內容進行字典壓縮的壓縮率。

  算法的整體框架圖如圖1所示?!?/p>

001.jpg

  1.2基于改進的字典編碼的容器劃分模型

  1.2.1數據流容器劃分思想

  容器劃分模型參考了標準XMill壓縮器的思想,XML數據流經過SAX解析器后,數據流被解析成觸發事件流,根據傳輸的XML流中的結構和數據部分觸發事件的不同,將數據流中的結構部分和數據部分[5]按靜態字典與前綴索引結合的方式進行編碼,分別進行收集和壓縮??紤]到XMPP協議是基于規范性和統一性格式的,即協議傳遞的數據包中的XML元素標簽和屬性標簽是固定的,一段通信過程的協議格式為:

  <stream><iq id="AicmY-2" type="get"></iq>

  <presence id="w5w3U-3" to="test2@127001/Smack" from="test1@127001/Smack"/>

  <message id="chat packet" to="test2@127001" from="test1@127001/Smack" type="chat">

  <body>uid=1&devid=2&ordercode=3&ordervalue=34</body></message></stream>

  stream標簽標志一段數據流的開始。<message>、<present>、<iq>元素稱為XML節,每個節點下對應<to>、<from>、<body>等屬性標簽,設置了一個消息片段的發送方、接收方以及消息實體等信息[6]。協議傳輸的XML數據流的元素/屬性節點類型是固定的,因此可以在通信雙方內存中構建靜態字典,字典的鍵為自定義的索引標號,值為協議對應的XML元素/屬性節點內容。在數據部分,數據以原始形態被分配到字符容器中。利用相應的壓縮算法對每個容器進行處理。容器劃分模型的流程圖如圖2所示。

002.jpg

  1.2.2結構索引字典編碼

  一般常用的字典編碼壓縮方法,為了算法的實時性,往往選擇動態構建字典的形式,這在處理大型的內容未知的靜態XML文檔時是一種較好的處理方式[7]。但常規字典編碼方案在動態構建字典時會消耗較多時間。對于XMPP協議支持的通信雙方實時傳輸的數據流,基于協議結構節點固定這一特性,考慮采用事先設定好的靜態字典形式,并在編碼字典索引中加入前綴索引以便接受方快速定位每一個XML節中的信息體。通過上一節抓取的實際XMPP數據流闡述改進的字典編碼步驟。該數據流展示了XMPP客戶端test1向test2發送一段消息指令,內容為:“uid=1&devid=2&ordercode=3&ordervalue=26”。數據流經過SAX解析器后,由SAX的事件觸發機制,將數據流按觸發事件的不同分別引入元素、屬性和內容三個容器中。

  根據上一節所述,設定一個靜態的結構字典,如表1所示,結構字典中包含有標準XMPP協議中定義的全部XML節。

003.jpg

  根據表1所示的靜態結構字典,可以方便地將數據流中的“結構信息”進行字典順序編碼并得到如下結果:0a 1a 1d ff 0b 1a 1b 1c 0b 1a 1b 1c 0c 1a 1b 1c 1d 0d ff 0e ff ff;通過對以上結果的分析可以發現,因為協議數據流中元素的嵌套結構較多,而“屬性”結構通過簡單的字典編碼并不能確定其具體屬于哪一個元素。因此,本文考慮在對數據流的結構信息進行基礎的字典編碼時,動態加入與其所屬的元素對應的前綴索引信息,如表2。

004.jpg

  包含前綴索引的字典編碼按容器劃分方法依次填入相關容器,以message節點為例,最終容器劃分結果以及各容器中的數據如表3所示。

005.jpg

  1.3BWT變換思想

  BWT變換也稱作塊排序,是一種針對一個數據塊的排序壓縮方法,其目的是將數據塊中出現頻率較高、重復出現的數據段盡量整合到一起。其核心思想是對目標數據塊中的內容進行矩陣變換。BWT變換本身并不會減小數據塊的大小,只是改變了排序順序[8]。根據信息論中關于信源信息熵的定義,將一個隨機變量的熵表示為:

  H(x)=H(P1,P2,…,Pn)=∑ni=1P(xi)logP(xi)(1)

  其中P(xi)為信源取第i個符號的概率。

  根據數據壓縮的原理,假設一個包含n個字符的字符串,每個字符的出現概率為p1,p2…pn,那么經過任何壓縮算法后的二進制占位至少為:

  9~~UE`N~P68WY_43~LXTD`8.png

  式(2)的結果可理解為字符串的壓縮極限:∑log2(1/pn)??梢姡瑢τ陂L度相同的數據,p決定了壓縮極限的大小,p越大表明文件越有規律,其壓縮極限越?。?]。根據實驗可以發現,經過BWT變換的數據塊,相同的字符會趨向于聚集在一起,信息熵比原始數據源小,因此有更小的壓縮極限值。

  BWT變換基于字符串矩陣的變換。假設輸入的數據為字符串:“ABCACBBD”,使用BWT變換對該字符串進行預處理,步驟如下:

 ?。?)構造N×N矩陣O,O中每一行是原字符串依次左移構成。

 ?。?)對O矩陣中的行按字典順序遞減重新排列,得到矩陣O′。

  (3)輸出O′矩陣的最后一列以及原字符串在O′矩陣中的行數,即(L,index)=([DCCABBAB],1),可方便進行反變換以還原原字符串。

  BWT變換將出現頻率較高的字母排列在一起。以常規LZW編碼為例,一段160 B的數據的原字符串與BWT變換后的字符經過LZW編碼后的壓縮率分別為80%和7125%,有明顯提升。XMPP協議傳輸的數據流具有較多的重復字符,適合將BWT變換引入其中作為常規數據壓縮前的預處理。在接收實體接收到經過BWT變換的內容后,根據前序查找的方法,以原字符串末尾為起始,可以還原字符串。

2算法的測試和應用

  對上述容器劃分模型在Intel Core i5/31 GHz的PC上進行試驗驗證,運行環境為Windows7旗艦版操作系統。實驗使用的服務器端為openfire393,使用的客戶端為基于Smack開發包開發的模擬用戶端。數據源為抓包軟件采集的智能空調設備與手機App之間的監測、控制數據流。

006.jpg

  通過表4對比可見,采用了本文所述的壓縮方案后,網絡中傳輸的一個完整通信過程所需的數據流大小與原始數據流相比有了明顯減小。

  模擬用戶對智能設備進行控制并接收設備上報的監測信息,設備每10 s上報一次實時數據,用戶每分鐘對設備發送一條控制指令。通過“科來”網絡流量監測軟件對一個時段內流經協議端口5222的數據流量在不經過壓縮處理、經過基本LZW編碼壓縮處理和經過本文壓縮模型處理后的統計如圖3所示。  

007.jpg

  可見經過本文設計的壓縮模型改進的服務器端,通信協議產生的網絡流量與原始服務器和啟用了默認LZW壓縮方案的服務器端相比有了一定的減少,且隨著時間的增加,流量節約更加明顯。

3結論

  本文針對XMPP協議數據流量冗余的問題,提出了一種使用于XML數據流的基于改進的字典編碼的容器劃分模型算法,該算法可以在不破壞協議實時性的基礎上,對XMPP協議通信雙方的XML流進行結構索引字典編碼,分結構和內容分別進行壓縮,同時針對信息體中重復字符較多的特點對信息體采用BWT編碼預處理。實驗證明,基于改進的字典編碼的容器劃分模型可以有效減少XML數據流的冗余,達到節約網絡流量的目的。適用于需要長連接的智能家居檢測、控制系統中。

  參考文獻

 ?。?] 劉涌,張彥功,梁崑濤. 移動設備上 XMPP 功耗與帶寬的研究[J]. 小型微型計算機系統,2013,34(2):272-276.

 ?。?] 鐘世明,邵銳,張勝,等. 基于位置服務系統中XML數據流壓縮方法[J]. 武漢理工大學學報,2006,30(1):29-32.

  [3] 王騰蛟,高軍,楊冬青,等. 面向 XPath 執行的 XML 數據流壓縮方法[J]. 軟件學報,2005,16(5):870-877.

 ?。?] 張曉琳,翟國峰,譚躍生,等. 基于動態哈夫曼編碼的XML數據流壓縮技術[J]. 內蒙古科技大學學報,2007,26(4):332-336.

  [5] 李瑞. XMLPre:一種基于預處理的XML壓縮算法[D]. 西安:西安電子科技大學,2014.

 ?。?] 周文瓊,王樂球,周桐,等. 基于XMPP 的企業即時通信系統研究與應用[J]. 吉林大學學報,2010,28(1):108-111.

 ?。?] 許霞,馬光思,魚濤. LZW 無損壓縮算法的研究與改進[J]. 計算機技術與發展,2009,19(4):126-127.

 ?。?] 王磊,孟昭鵬,劉亞瓊. 一種基于LFU置換的BWT壓縮算法的改進[J]. 微計算機應用,2008,29(3):80-83.

 ?。?] 鄧宏貴,王晉秀,曹莉凌,等. 基于 BWT 改進的 LZW 算法在傳感器網絡中的應用[J].傳感技術學報,2008,21(6):1048-1051.


此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久aⅴ乱码一区二区三区| 亚洲亚洲精品在线观看| 99精品国产99久久久久久福利| 国产欧美日韩亚洲精品| 国产精品久久久久久久浪潮网站 | 亚洲嫩草精品久久| 中国女人久久久| 亚洲视频在线一区| 这里只有精品视频在线| 一区二区三区久久| 一区二区三区日韩在线观看 | 亚洲小视频在线观看| 正在播放日韩| 亚洲免费在线观看视频| 亚洲欧美日韩精品一区二区| 午夜精品福利电影| 欧美亚洲一区在线| 欧美一区二区视频观看视频| 欧美制服丝袜| 久久裸体视频| 欧美+亚洲+精品+三区| 欧美成人综合一区| 欧美日本韩国一区| 欧美日韩亚洲高清一区二区| 国产精品hd| 国产精品亚洲成人| 好看的亚洲午夜视频在线| 在线观看视频一区二区| 亚洲精品乱码久久久久久| 一二三区精品| 亚洲在线电影| 欧美资源在线| 亚洲精品欧美在线| 亚洲一区二区三区激情| 羞羞视频在线观看欧美| 久久一区激情| 欧美老女人xx| 国产精品久久久久久av下载红粉 | 久久精品国产一区二区三区 | 99热免费精品| 亚洲欧美日韩另类精品一区二区三区| 亚洲欧美制服另类日韩| 久久久99久久精品女同性| 免费亚洲网站| 欧美午夜精彩| 国产综合久久| 亚洲区第一页| 亚洲欧美一区二区激情| 亚洲国内欧美| 亚洲综合三区| 久久亚洲一区二区| 欧美日韩在线视频观看| 国产一区二区三区最好精华液| 亚洲国产1区| 一区二区三区日韩欧美| 久久精品视频网| 宅男精品导航| 久久精品国产亚洲一区二区三区 | 国产精品s色| 国产日本欧美视频| 亚洲电影自拍| 亚洲一区自拍| 日韩视频免费在线| 久久爱www久久做| 欧美激情国产日韩| 国产欧美一区二区三区在线老狼 | 欧美有码在线视频| 欧美国产视频在线观看| 国产精品视频久久一区| 亚洲国产高清高潮精品美女| 亚洲视屏在线播放| 亚洲人精品午夜| 欧美在线日韩精品| 欧美日韩另类综合| 在线电影欧美日韩一区二区私密| 夜夜精品视频| 亚洲经典视频在线观看| 久久本道综合色狠狠五月| 欧美日韩成人在线播放| 国产一区二区三区日韩欧美| 一本一道久久综合狠狠老精东影业| 亚洲丰满在线| 欧美亚洲综合久久| 欧美日韩一级片在线观看| 激情综合自拍| 亚洲欧美一区二区三区极速播放 | 亚洲一级片在线看| 欧美成人一区二区在线| 国产一区二区丝袜高跟鞋图片| 日韩一区二区高清| 亚洲精品久久久久久下一站| 久久婷婷亚洲| 国产欧美在线| 亚洲一区亚洲二区| 亚洲午夜一区| 欧美精品久久久久久久| 一区精品久久| 久久黄色影院| 久久久久久久久综合| 国产精品视频网址| 亚洲特级毛片| 亚洲一区在线播放| 欧美精品一区二区三区在线看午夜 | 久久躁日日躁aaaaxxxx| 国产日韩欧美视频在线| 亚洲一区精品视频| 亚洲一区二区免费| 欧美日韩中文字幕在线视频| 最新日韩中文字幕| 日韩性生活视频| 欧美激情bt| 最近中文字幕mv在线一区二区三区四区| 久久国产高清| 久久全国免费视频| 激情六月婷婷久久| 亚洲高清视频在线观看| 久久综合导航| 激情综合在线| 91久久精品国产91性色tv| 乱人伦精品视频在线观看| 激情五月婷婷综合| 亚洲国产日韩欧美在线图片 | 欧美激情综合亚洲一二区| 亚洲国产天堂久久国产91| 亚洲精品中文字幕女同| 欧美精品一区二区高清在线观看| 亚洲精品日日夜夜| 一本一本久久| 欧美天天综合网| 亚洲一区二区三区在线播放| 欧美一级大片在线免费观看| 国产日韩精品一区二区| 性视频1819p久久| 久久亚洲捆绑美女| 亚洲国产人成综合网站| 亚洲精品一区在线观看香蕉| 欧美黑人一区二区三区| 日韩天堂在线视频| 午夜精品视频在线| 国产日韩欧美综合在线| 亚洲第一精品电影| 欧美黄色一区| 亚洲深夜福利视频| 欧美中文字幕不卡| 一区在线观看视频| 夜夜夜久久久| 国产精品一区二区三区久久久| 香蕉尹人综合在线观看| 另类天堂视频在线观看| 亚洲日韩视频| 亚洲欧洲av一区二区三区久久| 国产午夜精品一区二区三区视频 | 亚洲视频综合在线| 久久久久国产精品一区三寸| 在线日韩中文字幕| 亚洲视频在线二区| 国产性色一区二区| 日韩视频在线一区二区| 欧美午夜精品理论片a级大开眼界| 亚洲欧美日韩国产| 欧美成人免费网| 亚洲影院色无极综合| 麻豆精品91| 一区二区高清| 久久先锋影音| 一本色道久久综合亚洲精品不卡| 久久精品五月婷婷| 亚洲精品日韩激情在线电影| 欧美亚洲综合网| 91久久久一线二线三线品牌| 亚洲欧美日韩一区二区三区在线观看 | 极品尤物av久久免费看| 亚洲视频免费观看| 狠狠色2019综合网| 中国成人黄色视屏| 精品动漫3d一区二区三区免费| 亚洲一级在线观看| 伊人久久亚洲影院| 午夜精品久久久久久久蜜桃app | 国产一区二区三区四区hd| 一区二区三区黄色| 国产日韩欧美精品在线| 99视频+国产日韩欧美| 国产亚洲精品一区二区| 亚洲视频欧美在线| 一区免费观看| 欧美在线啊v一区| 日韩视频免费观看| 另类天堂视频在线观看| 亚洲一二三级电影| 欧美绝品在线观看成人午夜影视 | 欧美不卡在线视频| 午夜精品视频在线| 欧美日韩国产精品专区| 久久激情五月婷婷| 国产精品一区在线播放| 中国日韩欧美久久久久久久久| 一区二区三区在线视频免费观看| 午夜影视日本亚洲欧洲精品| 亚洲美女淫视频|