摘要:在物聯(lián)網(wǎng)飛速發(fā)展的今天,嵌入式移動(dòng)終端設(shè)備得到廣泛的應(yīng)用。移動(dòng)設(shè)備固有的移動(dòng)特性,使得應(yīng)用程序遠(yuǎn)程升級(jí)、業(yè)務(wù)數(shù)據(jù)遠(yuǎn)程下載成為一項(xiàng)重要功能指標(biāo)。文章就如何實(shí)現(xiàn)嵌入式移動(dòng)終端設(shè)備同遠(yuǎn)程服務(wù)器之間數(shù)據(jù)的快速交互更新,從數(shù)據(jù)預(yù)處理和交互機(jī)制兩方面提出切實(shí)可行的方法。
關(guān)鍵詞:嵌入式移動(dòng)設(shè)備;GZIP;窗口交互;斷點(diǎn)續(xù)傳
中圖分類號(hào):TN929文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-2374(2012)04-0114-02
在物聯(lián)網(wǎng)飛速發(fā)展的今天,嵌入式移動(dòng)終端設(shè)備得到廣泛的應(yīng)用。移動(dòng)設(shè)備固有的移動(dòng)特性,使得應(yīng)用程序遠(yuǎn)程升級(jí)、業(yè)務(wù)數(shù)據(jù)遠(yuǎn)程下載成為一項(xiàng)重要功能指標(biāo)。由于網(wǎng)絡(luò)帶寬有限,同時(shí)移動(dòng)終端設(shè)備處于移動(dòng)狀態(tài),往往導(dǎo)致移動(dòng)終端的數(shù)據(jù)遠(yuǎn)程更新速度較慢,對(duì)終端用戶的使用體驗(yàn)造成一定的不良影響。在此前提下,通過結(jié)合無線網(wǎng)絡(luò)、數(shù)據(jù)壓縮、數(shù)據(jù)快速交互技術(shù)實(shí)現(xiàn)移動(dòng)終端設(shè)備數(shù)據(jù)遠(yuǎn)程更新具有重要意義和一定的研究價(jià)值。
在維持現(xiàn)有的網(wǎng)絡(luò)帶寬和無線數(shù)據(jù)傳輸速度不變前提下,要實(shí)現(xiàn)移動(dòng)終端設(shè)備程序遠(yuǎn)程數(shù)據(jù)更新,只能從降低網(wǎng)絡(luò)傳輸數(shù)據(jù)量、提高數(shù)據(jù)交互效率兩方向著手。本文將根據(jù)上述兩個(gè)方向,分別提出相應(yīng)的解決方案。
一、降低網(wǎng)絡(luò)傳輸數(shù)據(jù)量
時(shí)至今日,數(shù)據(jù)壓縮技術(shù)已經(jīng)非常成熟,各種數(shù)據(jù)無損壓縮算法得到廣泛應(yīng)用,尤其是在網(wǎng)絡(luò)數(shù)據(jù)傳輸應(yīng)用中。此外,嵌入式移動(dòng)設(shè)備硬件資源的飛速發(fā)展,嵌入式CPU的處理速度越來越快,不僅可以對(duì)靜態(tài)文件進(jìn)行壓縮、解壓處理,減小靜態(tài)文件的大小,還可以對(duì)應(yīng)用程序中的實(shí)時(shí)數(shù)據(jù)動(dòng)態(tài)地進(jìn)行壓縮、解壓處理,尤其在撥號(hào)上網(wǎng)和負(fù)載較重的網(wǎng)絡(luò)應(yīng)用中對(duì)通信數(shù)據(jù)進(jìn)行壓縮,可極大地提高傳輸效率和節(jié)省網(wǎng)絡(luò)資源。
GZIP是目前廣泛應(yīng)用的一種無損壓縮算法,它具有很高的壓縮比和壓縮效率。同時(shí)該算法支持多種操作系統(tǒng)、多種編程語、方便移植的特點(diǎn),無疑是嵌入式移動(dòng)設(shè)備最佳選擇之一。采用GZIP算法,數(shù)據(jù)的壓縮率大部分能夠達(dá)到40%左右,有些甚至高達(dá)70%。在同等網(wǎng)絡(luò)傳輸速率下,采用GZIP壓縮后的數(shù)據(jù),傳輸數(shù)據(jù)量大大降低,相應(yīng)地傳輸時(shí)間就明顯減少,有利于移動(dòng)終端數(shù)據(jù)的快速下載及相關(guān)業(yè)務(wù)功能實(shí)現(xiàn)和終端客戶使用體驗(yàn)。
為了減少網(wǎng)絡(luò)數(shù)據(jù)傳輸量,在移動(dòng)終端設(shè)備的應(yīng)用程序升級(jí)或業(yè)務(wù)數(shù)據(jù)下載之前,我們建議對(duì)傳輸數(shù)據(jù)進(jìn)行GZIP壓縮預(yù)處理,以無損壓縮的方式降低傳輸數(shù)據(jù)量,經(jīng)由無線通訊網(wǎng)絡(luò)下載至移動(dòng)終端設(shè)備的上,再利用GZIP數(shù)據(jù)解壓算法還原為原始數(shù)據(jù),并最終在移動(dòng)終端上應(yīng)用更新數(shù)據(jù)。
交互數(shù)據(jù)預(yù)處理操作如下:
二、提高數(shù)據(jù)交互效率
移動(dòng)終端通過TCP/UDP方式從遠(yuǎn)程服務(wù)器進(jìn)行數(shù)據(jù)下載,通常利用各種用戶定義的通訊交互方式來實(shí)現(xiàn)。其中“一幀下行數(shù)據(jù),一次上行數(shù)據(jù)”交互機(jī)制即在數(shù)據(jù)下載過程,移動(dòng)終端針對(duì)遠(yuǎn)程服務(wù)器的每幀數(shù)據(jù)都予以相應(yīng)的應(yīng)答,該方法簡單可靠,但是數(shù)據(jù)交互次數(shù)較多,時(shí)間開銷大,下載速度較慢;“無應(yīng)答”下載機(jī)制,該方法在數(shù)據(jù)下載過程,移動(dòng)終端在下載完所有數(shù)據(jù)后才對(duì)數(shù)據(jù)進(jìn)行完整性、正確性進(jìn)行判斷,該方法無數(shù)據(jù)交互,時(shí)間開銷小,下載速度快,但成功率較低;“窗口交互機(jī)制”針對(duì)上述兩種方法的優(yōu)點(diǎn)及缺點(diǎn),予以改進(jìn),以窗口交互的方式,利用適當(dāng)?shù)慕换ゴ螖?shù),實(shí)現(xiàn)快速可靠地下載數(shù)據(jù)。
(一)窗口交互機(jī)制
我們約定N組數(shù)據(jù)幀為一個(gè)傳輸“窗口”的數(shù)據(jù),移動(dòng)終端設(shè)備和遠(yuǎn)程服務(wù)器通過窗口交互機(jī)制進(jìn)行數(shù)據(jù)下載時(shí),移動(dòng)終端在接收完一個(gè)“窗口”數(shù)據(jù)、或接收等待計(jì)數(shù)器超時(shí)、或接收到遠(yuǎn)程服務(wù)器在應(yīng)答等待計(jì)數(shù)器超時(shí)發(fā)送的查詢包后,才向遠(yuǎn)程服務(wù)器一個(gè)接收結(jié)果通知,即“多幀下行數(shù)據(jù),一幀上行數(shù)據(jù)”方式。
相對(duì)當(dāng)前常用的數(shù)據(jù)傳輸“一幀下行數(shù)據(jù),一次上行數(shù)據(jù)”方式,假定在相同網(wǎng)絡(luò)環(huán)境和傳輸數(shù)據(jù)包大小的情況下,遠(yuǎn)程服務(wù)器下發(fā)數(shù)據(jù)至移動(dòng)終端的傳輸時(shí)間等于移動(dòng)終端上行數(shù)據(jù)至遠(yuǎn)程服務(wù)器的時(shí)間,均為T,則完成傳輸一個(gè)窗口的N(大于1)幀數(shù)據(jù),理想狀態(tài)下,窗口交互機(jī)制所用的時(shí)間為(N+1)* T,而“一幀下行數(shù)據(jù),一次上行數(shù)據(jù)”窗口機(jī)制所用的時(shí)間為(2N)*T,理論上減少了(N-1)* T的傳輸時(shí)間,對(duì)于一個(gè)能分割M個(gè)窗口的更新文件的下載理論上將節(jié)省M*( N-1)*T的時(shí)間。
相對(duì)于“無應(yīng)答”下載機(jī)制,本方法雖然增加數(shù)據(jù)交互的次數(shù),在理想狀態(tài)下,更新時(shí)間有所延長。但是,本方法通過有限的交互次數(shù),能夠有效地解決網(wǎng)絡(luò)數(shù)據(jù)丟包、延時(shí)、設(shè)備異常重啟等導(dǎo)致更新中斷、延時(shí)問題,在實(shí)際運(yùn)行環(huán)境下,以有限的時(shí)間開銷,實(shí)現(xiàn)快速可靠地遠(yuǎn)程數(shù)據(jù)更新,實(shí)際更新速度甚至可能超過“無應(yīng)答”下載機(jī)制。
其中傳輸窗口交互如圖1所示:
(二)窗口數(shù)據(jù)幀數(shù)N的確定
對(duì)于N的取值,需要根據(jù)實(shí)際無線網(wǎng)絡(luò)的帶寬、數(shù)據(jù)幀大小、遠(yuǎn)程服務(wù)器網(wǎng)絡(luò)帶寬、移動(dòng)終端連接數(shù)等因素予以選擇,可以建立以下關(guān)系式擇優(yōu)確定:
N = ,其中為無線網(wǎng)絡(luò)下行速率,為遠(yuǎn)程服務(wù)器網(wǎng)絡(luò)帶寬,單位取KBps,為移動(dòng)終端連接數(shù),為傳輸數(shù)據(jù)包大小(應(yīng)不大于網(wǎng)絡(luò)最大傳輸單元大小),單位取KB,其中和值涉及系統(tǒng)資源配置和運(yùn)營成本。
通過結(jié)合實(shí)際運(yùn)行條件擇優(yōu)選擇N的數(shù)值,可以在有限的資源開銷的前提下,最大化地發(fā)揮“窗口交互機(jī)制”的效率,減少移動(dòng)終端和遠(yuǎn)程服務(wù)器的數(shù)據(jù)交互次數(shù)及時(shí)間,快速地將遠(yuǎn)程數(shù)據(jù)下載至移動(dòng)終端上。
(三)斷點(diǎn)續(xù)傳機(jī)制
鑒于無線數(shù)據(jù)傳輸交互存在一定的不穩(wěn)定性,嵌入式移動(dòng)設(shè)備在數(shù)據(jù)交互過程中,除了利用“窗口交互機(jī)制”提高效率之外,還需要考慮傳輸網(wǎng)絡(luò)中斷等異常情況。本文方法在數(shù)據(jù)傳輸過程中還設(shè)計(jì)了斷點(diǎn)續(xù)傳的機(jī)制。機(jī)制實(shí)現(xiàn)流程如下:
1.嵌入式移動(dòng)終端與遠(yuǎn)程服務(wù)器建立無線通信鏈路,依據(jù)“窗口傳輸機(jī)制”約定數(shù)據(jù)傳輸。
2.嵌入式移動(dòng)終端與遠(yuǎn)程服務(wù)器在數(shù)據(jù)交互過程中,記錄保存當(dāng)前的數(shù)據(jù)交互情況,其中遠(yuǎn)程服務(wù)器需記住總數(shù)據(jù)包數(shù)、數(shù)據(jù)包長度等信息,嵌入移動(dòng)終端需記住總數(shù)據(jù)包數(shù)、已接收數(shù)據(jù)序號(hào)等信息。
3.當(dāng)出現(xiàn)無線網(wǎng)絡(luò)中斷、設(shè)備重啟等異常狀況,導(dǎo)致嵌入式移動(dòng)終端同遠(yuǎn)程服務(wù)器之間數(shù)據(jù)交互中端,移動(dòng)終端在檢測(cè)到通訊恢復(fù)正常后,應(yīng)根據(jù)自身保存的總數(shù)據(jù)包數(shù)、已接收數(shù)據(jù)序號(hào)等信息,在判斷出數(shù)據(jù)未完整接收的情況下,向遠(yuǎn)程服務(wù)器發(fā)起斷點(diǎn)續(xù)傳請(qǐng)求,請(qǐng)求下載為接收數(shù)據(jù)包。
4.遠(yuǎn)程服務(wù)器在接收到移動(dòng)終端的斷點(diǎn)續(xù)傳請(qǐng)求后,同自身保存數(shù)據(jù)交互信息相比較,并給予移動(dòng)終端接受或拒絕響應(yīng)。若為接受響應(yīng),則根據(jù)“窗口交互機(jī)制”啟動(dòng)數(shù)據(jù)補(bǔ)傳;若為拒絕響應(yīng),則結(jié)束當(dāng)前數(shù)據(jù)交互流程。
三、結(jié)語
在經(jīng)濟(jì)和科技高速發(fā)展的今天,具備無線通信功能移動(dòng)設(shè)備得到越來越廣泛地應(yīng)用,嵌入式移動(dòng)終端設(shè)備需要同遠(yuǎn)程服務(wù)器進(jìn)行大量的數(shù)據(jù)交互。本文介紹的方法,主要是通過對(duì)遠(yuǎn)程數(shù)據(jù)進(jìn)行GZIP等壓縮預(yù)處理,同時(shí)利用兼具快速、可靠特點(diǎn)的“窗口交互”機(jī)制和斷點(diǎn)續(xù)傳機(jī)制,實(shí)現(xiàn)移動(dòng)終端設(shè)備從遠(yuǎn)程服務(wù)器快速可靠地更新應(yīng)用數(shù)據(jù),保證終端設(shè)備的正常運(yùn)行,提高終端用戶的體驗(yàn)效果。
參考文獻(xiàn)
[1]孫學(xué)康,劉勇.無線傳輸與接入技術(shù)[M].人民郵電出版社,2010.
[2](美)薩洛蒙著,吳樂南,等譯.?dāng)?shù)據(jù)壓縮原理與應(yīng)用(第2版)[M].電子工業(yè)出版社,2003.
[3](美)史蒂文斯(W.Richard Stevens)著,范建華,等譯.TCP/IP 詳解[M].機(jī)械工業(yè)出版社,2007.
作者簡介:陳挺,廈門雅迅網(wǎng)絡(luò)有限公司工程師,研究方向:嵌入式移動(dòng)設(shè)備。
(責(zé)任編輯:劉 艷)