樊 新,高 曙
(武漢理工大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,湖北 武漢430070)
隨著通信技術(shù)和信息技術(shù)的快速發(fā)展,移動設(shè)備得到迅猛發(fā)展,各種免費的、付費的、有創(chuàng)意的、實用的移動應(yīng)用產(chǎn)品如雨后春筍般涌現(xiàn),如手機網(wǎng)絡(luò)游戲、多媒體、微信等手機應(yīng)用產(chǎn)品。面對用戶無限增長的應(yīng)用需求,移動設(shè)備有限的內(nèi)存和電池容量正成為移動設(shè)備發(fā)展的瓶頸。為解決其資源受限,延長其續(xù)航時間,滿足用戶的應(yīng)用需求,研究人員通常利用云計算,將應(yīng)用進(jìn)行劃分并遷移到云端執(zhí)行,從而擴展設(shè)備資源,節(jié)省其能耗[1-2]。移動應(yīng)用劃分模型如圖1 所示。
圖1 移動應(yīng)用劃分模型
目前,國內(nèi)外對該問題的研究主要是利用云計算技術(shù),其正成為解決移動設(shè)備資源受限最有效的途徑。國內(nèi)在移動設(shè)備資源受限領(lǐng)域的研究起步比較晚,主要是理論方面的研究,如伍宇[3]提出了一種自適應(yīng)負(fù)載均衡模型。該模型根據(jù)移動設(shè)備應(yīng)用程序上下文和遠(yuǎn)程服務(wù)器負(fù)載等信息,通過決策引擎決定移動應(yīng)用任務(wù)執(zhí)行的位置(本地或者遠(yuǎn)程服務(wù)器),以擴展移動設(shè)備資源,降低其能量消耗。章鐵飛等[4]提出了一種節(jié)能算法,其核心思想是比較任務(wù)在不同執(zhí)行方式下的能耗期望,采用其中能耗期望最小的方式執(zhí)行任務(wù)。在應(yīng)用方面,國內(nèi)云存儲發(fā)展迅速,百度、華為、騰訊等公司相繼推出云存儲,擴展了移動設(shè)備數(shù)據(jù)存儲。
國外在這方面的研究比較深入,取得了可喜的成果。微軟公司針對移動設(shè)備資源受限等問題,設(shè)計了MAUI 靜態(tài)劃分系統(tǒng)[5]。該系統(tǒng)實現(xiàn)了移動應(yīng)用代碼級別劃分,較好地擴展了移動設(shè)備資源,節(jié)省了能耗,但是增加了開發(fā)人員的負(fù)擔(dān)。張新文等提出了一種彈性應(yīng)用劃分模型Weblet[6]。該模型能夠?qū)?yīng)用劃分成多個Weblet的構(gòu)件,并且在運行時能夠?qū)eblet 進(jìn)行動態(tài)配置,不僅減輕了開發(fā)人員的負(fù)擔(dān),而且擴展了設(shè)備資源。但是其實現(xiàn)過程復(fù)雜,模型本身能量消耗比較大。在應(yīng)用方面,主要有Amazon 的AWS、EC2、SDB 和S3;Google 的Google Storage、App Engine 和微軟的Azure Plateform 等[7-8]。
綜合現(xiàn)有相關(guān)研究成果,筆者采用基于標(biāo)記的移動應(yīng)用劃分方法。該方法結(jié)合動態(tài)劃分和靜態(tài)劃分的優(yōu)點,充分考慮移動應(yīng)用具體功能結(jié)構(gòu),事先對應(yīng)用可遷移的模塊進(jìn)行標(biāo)記,引入遷移能耗模型,動態(tài)決定應(yīng)用標(biāo)記模塊執(zhí)行位置(移動設(shè)備端執(zhí)行或者云端執(zhí)行)。該方法不僅應(yīng)用劃分簡單、合理,而且只需編程人員事先對可轉(zhuǎn)移模塊進(jìn)行標(biāo)記,減輕了編程人員的開發(fā)負(fù)擔(dān),避免了劃分算法復(fù)雜而導(dǎo)致其自身能耗過大的問題。同時能夠根據(jù)網(wǎng)絡(luò)實際環(huán)境,動態(tài)改變執(zhí)行策略,最終達(dá)到擴展移動設(shè)備資源,節(jié)省其能耗的目的。
針對移動設(shè)備資源受限、能力有限,一些密集型應(yīng)用程序僅依靠移動設(shè)備無法滿足用戶應(yīng)用需求或者根本無法運行的情況,可以將一個應(yīng)用程序看成是一個由多個功能模塊組成的有向圖(V,E),移動應(yīng)用功能模塊有向圖如圖2 所示。圖2中每個頂點表示應(yīng)用程序的一個功能模塊,頂點的權(quán)重表示每個模塊在移動設(shè)備端的執(zhí)行時間;每個邊表示各功能模塊之間的聯(lián)系,每條邊的權(quán)重表示兩個頂點間的信息交互量。應(yīng)用程序劃分執(zhí)行能耗由本地執(zhí)行能耗和網(wǎng)絡(luò)數(shù)據(jù)傳輸能耗兩部分組成,如式(1)所示。
圖2 移動應(yīng)用功能模塊有向圖
式中:Pc為移動設(shè)備CPU 運行單位時間內(nèi)消耗的能量;Tc(v)為移動應(yīng)用模塊在移動端運行的時間。
由于手機信號網(wǎng)絡(luò)和WiFi 網(wǎng)絡(luò)幾乎時刻都在變化,為了便于研究,假設(shè)單位時間內(nèi)網(wǎng)絡(luò)狀態(tài)是穩(wěn)定的。如果數(shù)據(jù)傳輸時間很短,則假設(shè)顯然成立;長時間的數(shù)據(jù)傳輸過程也可以被劃分成多個短時間的數(shù)據(jù)傳輸過程,因此這樣的假設(shè)是合理的,在該前提下,無線數(shù)據(jù)傳輸能耗公式如下:
式中:M(vl,vs)為兩模塊之間網(wǎng)絡(luò)傳輸數(shù)據(jù)量;k為某時刻無線網(wǎng)絡(luò)的傳輸速率;Pwifi為無線網(wǎng)絡(luò)單位時間內(nèi)消耗的能量。
由式(1)~式(3)可知,移動應(yīng)用中每個標(biāo)記功能模塊執(zhí)行的位置與當(dāng)前無線網(wǎng)絡(luò)傳輸質(zhì)量和云端執(zhí)行時間密切有關(guān)。當(dāng)無線網(wǎng)絡(luò)傳輸質(zhì)量高、云端服務(wù)器應(yīng)用響應(yīng)時間快時,應(yīng)將應(yīng)用中標(biāo)記模塊轉(zhuǎn)移到云端執(zhí)行;否則,移動應(yīng)用標(biāo)記模塊應(yīng)保留在本地客戶端執(zhí)行。當(dāng)應(yīng)用模塊在移動設(shè)備端執(zhí)行時,移動設(shè)備所需消耗的能量等于其模塊處理消耗的能量;當(dāng)應(yīng)用模塊在云端執(zhí)行時,移動設(shè)備所需消耗的能量等于其模塊與客戶端數(shù)據(jù)傳輸消耗的能量。移動應(yīng)用劃分節(jié)省能耗的計算公式如下:
式中:Eclient為移動應(yīng)用中可轉(zhuǎn)移模塊在客戶端執(zhí)行移動設(shè)備所需消耗的能量;Eoffload為移動應(yīng)用中可轉(zhuǎn)移模塊在云端執(zhí)行移動設(shè)備所需消耗的能量。如果Esave>0,則移動應(yīng)用中該可轉(zhuǎn)移模塊應(yīng)轉(zhuǎn)移到云端執(zhí)行,如果Esave<0,則移動應(yīng)用中該可轉(zhuǎn)移模塊應(yīng)保留在移動設(shè)備端執(zhí)行。
移動應(yīng)用劃分系統(tǒng)利用云計算豐富的資源和強大的信息處理能力,通過無線網(wǎng)絡(luò),將移動設(shè)備端高能耗或密集型計算任務(wù)轉(zhuǎn)移到云端執(zhí)行,從而達(dá)到擴展移動設(shè)備資源,節(jié)省其能耗的目的。為了更加具體地說明基于標(biāo)記的移動應(yīng)用劃分方法,筆者采用移動對象位置預(yù)測系統(tǒng)作為研究對象來具體說明其設(shè)計思路。移動對象位置預(yù)測主要通過客戶端收集用戶位置信息,通過對位置信息進(jìn)行分析處理,預(yù)測用戶未來運動趨勢[9-10]。獲知用戶運動趨勢,可以根據(jù)用戶未來運動趨勢推薦用戶感興趣的相關(guān)服務(wù)。移動對象位置預(yù)測由收集用戶位置信息、用戶位置信息預(yù)處理、用戶位置信息處理預(yù)測和顯示用戶位置信息預(yù)測結(jié)果4 個功能模塊組成。移動對象位置預(yù)測系統(tǒng)功能流程如圖3 所示。
移動對象位置預(yù)測系統(tǒng)中的收集用戶位置信息和顯示用戶位置信息預(yù)測結(jié)果這兩個功能模塊與移動設(shè)備聯(lián)系緊密,必須在移動設(shè)備端執(zhí)行。而用戶位置信息預(yù)處理和用戶位置信息處理預(yù)測模塊同移動設(shè)備聯(lián)系不大,同時這兩個功能模塊信息分析處理工作量巨大,編程人員事先應(yīng)該將這兩個可轉(zhuǎn)移的模塊進(jìn)行標(biāo)記。根據(jù)轉(zhuǎn)移能耗模型,結(jié)合用戶當(dāng)前網(wǎng)絡(luò)質(zhì)量,決定標(biāo)記模塊執(zhí)行的位置,從而達(dá)到擴展設(shè)備資源,節(jié)省其能耗的目的。劃分流程如下:
(1)詳細(xì)分析移動應(yīng)用功能模塊并按照功能模塊對應(yīng)用進(jìn)行劃分,找出其中與本地客戶端聯(lián)系不大并且能耗高、計算密集型的功能模塊,將這些可轉(zhuǎn)移模塊進(jìn)行標(biāo)記。
(2)在移動應(yīng)用使用過程中,收集用戶上下文信息,例如無線網(wǎng)絡(luò)網(wǎng)速、無線網(wǎng)絡(luò)信號強度和應(yīng)用請求相應(yīng)時間等信息。當(dāng)應(yīng)用請求到來時,根據(jù)客戶端上下文信息,結(jié)合轉(zhuǎn)移能耗模型,決定標(biāo)記模塊執(zhí)行位置(本地客戶端執(zhí)行或云端服務(wù)器執(zhí)行)。
(3)云端服務(wù)器執(zhí)行完應(yīng)用請求后,通過無線網(wǎng)絡(luò),將處理的應(yīng)用結(jié)果返回本地客戶端顯示。
圖3 移動對象位置預(yù)測系統(tǒng)功能流程圖
硬件環(huán)境:移動設(shè)備為華為525 Android 智能手機;硬件參數(shù)為四核CPU,頻率為1 228 MHz;電池容量為1 700 mAh,支持WCDMA、3G 和WiFi,內(nèi)存1 G;操作系統(tǒng)為Android OS4.1。服務(wù)器端硬件環(huán)境:Intel Core i3 CUP 2.53 GHz,內(nèi)存4 G;服務(wù)器為Think E40 筆記本電腦,內(nèi)存4 G,硬盤250 G,操作系統(tǒng)為ubuntu linux12.04。
軟件環(huán)境:Eclipse 集成開發(fā)環(huán)境,Android SDK,JDK1.7,HBase 數(shù)據(jù)庫,Hadoop 偽分布式處理環(huán)境。
能耗測試工具:為了測量智能手機能量消耗情況,使用智能手機電量測量軟件PowerTutor。PowerTutor 可以實時顯示智能手機各軟件和硬件電量消耗水平,包括LCD、CPU、3G、WiFi 的電量消耗,系統(tǒng)開發(fā)環(huán)境如表1 所示。
表1 系統(tǒng)開發(fā)環(huán)境
筆者設(shè)計對比實驗,其中一組是基于標(biāo)記的移動應(yīng)用劃分預(yù)測系統(tǒng),另一組是未進(jìn)行劃分的預(yù)測系統(tǒng),分別部署到在校學(xué)生智能手機上。通過對此反復(fù)測驗,記錄兩組系統(tǒng)時間運行結(jié)果,包括系統(tǒng)執(zhí)行時間和系統(tǒng)能量消耗情況等信息。為了減少測量的誤差,采用多次測量實驗取平均值的辦法記錄實驗數(shù)據(jù),移動用戶位置預(yù)測系統(tǒng)測試記錄數(shù)據(jù)如表2 所示。
表2 移動用戶位置預(yù)測系統(tǒng)測試記錄數(shù)據(jù)
如表2 所示,設(shè)計4 組對比實驗,用戶軌跡量分別為1 000 條、2 500 條、4 000 條和5 500 條,記錄4 組部署了未劃分預(yù)測系統(tǒng)和應(yīng)用劃分預(yù)測系統(tǒng)的實際運行情況。實驗發(fā)現(xiàn)未劃分預(yù)測系統(tǒng)隨著用戶軌跡信息量的增大,其運行的質(zhì)量急劇下降,能量消耗急劇上升;而應(yīng)用劃分預(yù)測系統(tǒng)執(zhí)行效果良好、穩(wěn)定,其能量消耗少且穩(wěn)定。其中在系統(tǒng)運行性能方面,應(yīng)用劃分預(yù)測系統(tǒng)比未劃分預(yù)測系統(tǒng)運行時間更短,執(zhí)行質(zhì)量更高;在系統(tǒng)能量消耗方面,應(yīng)用劃分預(yù)測系統(tǒng)比未劃分預(yù)測系統(tǒng)分別節(jié)省能耗12%、25%、79%和89%。應(yīng)用劃分與未劃分系統(tǒng)執(zhí)行時間和能耗對比如圖4 和圖5 所示。
由圖4 和圖5 可知,由于移動設(shè)備是資源受限的設(shè)備,需要處理的軌跡信息隨著用戶軌跡量的增長迅速膨脹,未劃分預(yù)測系統(tǒng)的運作質(zhì)量越來越差,能耗越來越高,甚至無法運行。而應(yīng)用劃分預(yù)測系統(tǒng)利用云計算豐富的資源,將資源密集型和高能耗的標(biāo)記模塊轉(zhuǎn)移到云端執(zhí)行,使系統(tǒng)運行狀態(tài)良好、穩(wěn)定,擴展了移動設(shè)備資源、節(jié)省了其能耗。通過對比實驗結(jié)果,充分驗證了基于標(biāo)記的移動應(yīng)用劃分方法的節(jié)能效果和實用性。
圖4 應(yīng)用劃分與未劃分系統(tǒng)執(zhí)行時間對比圖
圖5 應(yīng)用劃分與未劃分系統(tǒng)能耗對比圖
筆者提出了基于標(biāo)記的移動應(yīng)用劃分方法,根據(jù)移動應(yīng)用功能結(jié)構(gòu),事先對其進(jìn)行劃分,將可轉(zhuǎn)移的功能模塊進(jìn)行標(biāo)記。收集用戶當(dāng)前上下文信息,結(jié)合轉(zhuǎn)移能耗模型,決定標(biāo)記功能模塊執(zhí)行位置(云端執(zhí)行或本地移動設(shè)備端執(zhí)行)。云端任務(wù)執(zhí)行完成后,通過無線網(wǎng)絡(luò)將運行結(jié)果返回移動設(shè)備端,從而實現(xiàn)擴展移動設(shè)備資源,節(jié)省其能耗的目的。
[1]MIETTINEN A P,NURMINEN J K. Energy efficiency of mobile clients in cloud computing[C]∥Proceedings of the 2nd USENIX Conference on Hot Topics in Cloud Computing. [S.l.]:USENIX Association,2010:4-14.
[2]KOVACHEV D,YU T,KLAMMA R. Adaptive computation offloading from mobile devices into the cloud[C]∥2012 IEEE 10th International Symposium on Parallel and Distributed Processing with Applications(ISPA).[S.l.]:IEEE,2012:784 -791.
[3]伍宇.移動計算中自適應(yīng)負(fù)載轉(zhuǎn)移決策模型研究[D].上海:復(fù)旦大學(xué)圖書館,2012.
[4]章鐵飛,陳天洲.基于移動設(shè)備云遷移的節(jié)能決策算法[J].中國科學(xué):信息科學(xué),2012,42(3):333-342.
[5]CUERVO E,BALASUBRAMANIAN A,CHO D,et al.MAUI:making smartphones last longer with code offload[C]∥The 8th International Conference on Mobile Systems,Applications,and Services. [S.l.]:ACM,2010:49-62.
[6]ZHANG X W,KUNJITHAPATHAM A,JEONG S,et al.Towards an elastic application model for augmenting the computing capabilities of mobile devices with cloud computing[J]. Mobile Networks and Applications,2011,16(3):270 -284.
[7]CONDIE T,CONVAY N,ALVARO P,et al. MapReduce online[C]∥NSDI. [S.l.]:[s.n.],2010:20-35.
[8]DEAN J,GHEMAWAT S. MapReduce:a flexible data processing tool[J]. Communications of the ACM,2010,53(1):72 -77.
[9]GAO H,TANG J,LIU H. Mobile location prediction in spatio-temporal context[C]//Nokia Mobile Data Challenge Workshop. [S.l.]:[s.n.],2012:1543-1550.
[10]YAVAS G,KATSAROS D,ULUSOY ?,et al. A data mining approach for location prediction in mobile environments[J]. Data & Knowledge Engineering,2005,54(2):121 -146.