亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于XMPP協(xié)議的XML數(shù)據(jù)流壓縮模型研究

        2016-04-13 09:52:42鋮,吳
        關鍵詞:壓縮算法字符串數(shù)據(jù)流

        齊 鋮,吳 靜

        (1.西南科技大學 信息工程學院,四川 綿陽 621010;2.特殊環(huán)境機器人技術四川省重點實驗室,四川 綿陽 621010)

        基于XMPP協(xié)議的XML數(shù)據(jù)流壓縮模型研究

        齊 鋮1,2,吳 靜1,2

        (1.西南科技大學 信息工程學院,四川 綿陽 621010;2.特殊環(huán)境機器人技術四川省重點實驗室,四川 綿陽 621010)

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

        XMPP協(xié)議;流壓縮;容器模型;BWT

        0 引言

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

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

        1 XML數(shù)據(jù)流壓縮算法的設計和實現(xiàn)

        1.1 XML數(shù)據(jù)流壓縮算法的原理

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

        算法的整體框架圖如圖1所示。

        圖1 整體框架圖

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

        1.2.1 數(shù)據(jù)流容器劃分思想

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

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

        圖2 容器劃分模塊流程圖

        1.2.2 結構索引字典編碼

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

        根據(jù)上一節(jié)所述,設定一個靜態(tài)的結構字典,如表1所示,結構字典中包含有標準XMPP協(xié)議中定義的全部XML節(jié)。

        表1 靜態(tài)結構字典

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

        表2 前綴索引的字典編碼

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

        表3 message節(jié)點容器劃分

        1.3 BWT變換思想

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

        (1)

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

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

        (2)

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

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

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

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

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

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

        2 算法的測試和應用

        對上述容器劃分模型在Intel Core i5/3.1 GHz的PC上進行試驗驗證,運行環(huán)境為Windows7旗艦版操作系統(tǒng)。實驗使用的服務器端為openfire3.9.3,使用的客戶端為基于Smack開發(fā)包開發(fā)的模擬用戶端。數(shù)據(jù)源為抓包軟件采集的智能空調(diào)設備與手機App之間的監(jiān)測、控制數(shù)據(jù)流。

        通過表4對比可見,采用了本文所述的壓縮方案后,網(wǎng)絡中傳輸?shù)囊粋€完整通信過程所需的數(shù)據(jù)流大小與原始數(shù)據(jù)流相比有了明顯減小。

        表4 一段通信數(shù)據(jù)大小

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

        圖3 流量統(tǒng)計對比圖

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

        3 結論

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

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

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

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

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

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

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

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

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

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

        Research on XML stream compression model based on XMPP protocol

        Qi Cheng1,2,Wu Jing1,2

        (1.School of Information Engineering, Southwest University of Science and Technology, Mianyang 621010, China;2. Robot Technology Used for Special Environment Key Laboratory of Sichuan Province, Mianyang 621010, China)

        As an instant messaging protocol based on XML data stream, Extensible Messaging and Presence Protocol(XMPP) can be used in constructing a unified, efficient smart home monitoring message push program.Aiming at the disadvantage of XMPP on traffic redundancy, a XMPP stream compression model based on container model and BWT transform thought is proposed.According to container division, prefix code and pretreatment of XML stream, this model on the basis of single scanning data stream,reaches the maximization of compression ratio.Experiment proved that the program can effectively save the network traffic of XMPP communication process ,and with feasibility.

        XMPP protocol; stream compression; container model; BWT

        TP391

        A

        1674-7720(2016)01-0060-03

        齊鋮,吳靜.基于XMPP協(xié)議的XML數(shù)據(jù)流壓縮模型研究[J].微型機與應用,2016,35(1):60-62,66

        2015-09-02)

        齊鋮(1990-),通信作者,男,碩士研究生,主要研究方向:網(wǎng)絡通信、協(xié)議分析。E-mail:15228354495@163.com。

        吳靜(1963-),女,副教授,主要研究方向:通信技術、三網(wǎng)融合。

        猜你喜歡
        壓縮算法字符串數(shù)據(jù)流
        汽車維修數(shù)據(jù)流基礎(下)
        基于參數(shù)識別的軌道電路監(jiān)測數(shù)據(jù)壓縮算法研究
        一種提高TCP與UDP數(shù)據(jù)流公平性的擁塞控制機制
        更正聲明
        電訊技術(2017年4期)2017-04-16 04:16:03
        基于數(shù)據(jù)流聚類的多目標跟蹤算法
        PMU數(shù)據(jù)預處理及壓縮算法
        北醫(yī)三院 數(shù)據(jù)流疏通就診量
        一種新的基于對稱性的字符串相似性處理算法
        依據(jù)字符串匹配的中文分詞模型研究
        曲線數(shù)據(jù)壓縮方法與實現(xiàn)
        精品人妻一区三区蜜桃| 国产精品98福利小视频| 最新国产主播一区二区| 国产精品无套一区二区久久 | 亚洲女初尝黑人巨高清| 免费网站国产| 一本久久a久久精品综合| 亚洲AⅤ无码片一区二区三区| 国内色精品视频在线网址| 国产亚洲av成人噜噜噜他| 国产女人的高潮国语对白| 亚洲视频在线看| 看全色黄大色大片免费久久久 | 亚洲中文字幕在线第二页| 日本一区二区视频在线| 免费无码a片一区二三区| 真正免费一级毛片在线播放| 日本黄色一区二区三区视频| 丰满精品人妻一区二区| 被黑人猛躁10次高潮视频| 99精品成人片免费毛片无码| 美女福利视频网址导航| 日本丰满老妇bbw| 亚洲日本va午夜在线电影| 国产在线高清视频| 一区二区三区国产偷拍 | 无码人妻精品一区二区三区9厂| 韩国三级中文字幕hd久久精品| 亚洲色偷偷偷综合网另类小说| 亚洲国产精品久久无人区| 日本久久高清一区二区三区毛片| 天天爽天天爽天天爽| 日本成熟妇人高潮aⅴ| 二区免费在线视频观看 | 久久国产成人午夜av影院| 中文熟女av一区二区| 加勒比东京热中文字幕| 97成人碰碰久久人人超级碰oo| 加勒比在线一区二区三区| 国产精品女同一区二区软件| 国产精品久久国产精品99|