王培海,劉宴兵,2,肖云鵬,陶長順
(1.重慶郵電大學移動互聯(lián)網(wǎng)中心 重慶 400065;2.重慶重郵信科通信技術(shù)有限公司 重慶 400065)
隨著3G、LTE等移動通信技術(shù)的不斷發(fā)展,移動互聯(lián)網(wǎng)帶寬得到大幅度的提升,通過移動設(shè)備訪問互聯(lián)網(wǎng),獲取自己所需的信息的方式,成為一種新的趨勢并逐漸融入到人們的日常生活中,催生出豐富的移動應用。為了緩解終端壓力,應當轉(zhuǎn)移終端應用的需求來源,云計算[1]是一個很好的選擇。移動設(shè)備的易攜帶和移動性限制了其對資源的擁有。云計算雖然聚合了豐富的計算和存儲資源,但移動性較差。將云計算與移動互聯(lián)網(wǎng)有機結(jié)合[2],終端應用對資源的高需求轉(zhuǎn)移到云平臺上,在真正意義上實現(xiàn)輕量級終端訪問互聯(lián)網(wǎng)的瘦終端,滿足移動用戶對快速響應時間的期望,同時使移動用戶可以隨時、隨地獲取云計算服務(wù),這正好體現(xiàn)了“anytime,anywhere”的思想。
本文研究基于云計算與SOA架構(gòu)的移動應用,參照“云+端”的設(shè)計模式,移動設(shè)備以中間件的方式獲取云服務(wù)。針對移動設(shè)備的弱計算環(huán)境,造成訪問效率較低的特征,本文提出移動設(shè)備通過中間件方式訪問云服務(wù),較好地解決了終端環(huán)境資源受限的瓶頸。
云計算是一種新型的計算模型,它通過互聯(lián)網(wǎng)將計算任務(wù)分布在大量計算機構(gòu)成的資源池上,使用戶按需獲取各種信息服務(wù)[3]。移動云計算在云計算基礎(chǔ)上發(fā)展而來,給移動互聯(lián)網(wǎng)的發(fā)展注入新的活力。目前,移動云計算在學術(shù)界得到廣泛的重視,各個研究機構(gòu)紛紛開始做相關(guān)研究?;萜諏嶒炇覍⒃骗h(huán)境下的資源與SOA服務(wù)模式緊密相連[4],將云資源以服務(wù)提供的方式供用戶使用,降低了運營商的IT成本。但并沒有考慮移動終端用戶的環(huán)境因素,只是針對傳統(tǒng)的Web終端。加拿大徹溫大學對智能終端使用移動云服務(wù)做了相關(guān)研究[5],提出一種基于云計算的服務(wù)中間件,解決終端訪問云服務(wù)的關(guān)鍵問題。但對于該中間件應用的開發(fā)比較單一,不能為多終端異構(gòu)平臺提供一個統(tǒng)一的編程接口。Berkeley有學者提出一種新穎的克隆云架構(gòu)[6],將終端應用上資源密集型的計算或存儲轉(zhuǎn)移到具有終端運行環(huán)境的云平臺上,以此增強終端應用的能力。不足的是這種模型僅針對智能終端,并沒有對普通移動設(shè)備加以考慮。因此,針對移動應用調(diào)用云計算能力的缺陷,將中間件技術(shù)引入到終端應用的開發(fā)中,通過中間件提供的統(tǒng)一編程接口,來屏蔽多終端平臺之間的差異性,減少終端應用重復開發(fā)的成本,對移動應用的發(fā)展有比較深遠的意義。
Web服務(wù)為多終端異構(gòu)平臺資源協(xié)同提供了有效的手段。但在移動環(huán)境中,網(wǎng)絡(luò)帶寬、內(nèi)存大小、計算能力、存儲空間以及電源的續(xù)航能力等資源非常受限[7]。傳統(tǒng)的Web服務(wù)已經(jīng)無法較好地滿足移動環(huán)境下異構(gòu)設(shè)備互聯(lián)互通的需求。因此,資源受限的移動設(shè)備如何有效地使用云服務(wù),得到學術(shù)界、工業(yè)界的高度重視。云服務(wù)中間件集成了云計算能力的中間件平臺,能夠動態(tài)調(diào)度底層虛擬資源滿足云端業(yè)務(wù)需求,能夠?qū)Ψ植际酱鎯μ峁U展支撐能力[8]。資源受限的云服務(wù)是云計算與移動網(wǎng)絡(luò)、服務(wù)計算和嵌入式系統(tǒng)相結(jié)合的產(chǎn)物,在移動終端應用等領(lǐng)域有廣闊的應用前景[9]。
眾所周知,云計算服務(wù)端聚合了豐富的計算和存儲資源,通過SOA技術(shù)將云計算資源以服務(wù)的形式發(fā)布出去,供不同的移動設(shè)備訪問,解決移動環(huán)境資源受限的瓶頸。移動設(shè)備通過中間件獲取云服務(wù)接口,充當移動設(shè)備和云服務(wù)端之間的橋梁,同時也是云服務(wù)的提供者和使用者。云服務(wù)中間件通過建立Web應用服務(wù)器實例,來屏蔽不同終端操作系統(tǒng)的異構(gòu)性,提供統(tǒng)一的計算存儲平臺和運行環(huán)境。本文設(shè)計了一種面向移動設(shè)備的云服務(wù)中間件模型,其系統(tǒng)架構(gòu)如圖1所示。
移動設(shè)備端的邏輯結(jié)構(gòu)較為簡單。Input/Output用于訪問中間件,把用戶輸入的參數(shù)發(fā)出去,等待返回結(jié)果,在移動設(shè)備上顯示出來。環(huán)境感知模塊用于實時監(jiān)控設(shè)備的網(wǎng)絡(luò)狀況、電池容量等,當?shù)竭_一定閾值時,中斷與中間件的連接。RM(record manager)用于保存數(shù)據(jù)記錄,可以將云服務(wù)端返回的數(shù)據(jù)保存在本地的移動設(shè)備上,便于用戶在網(wǎng)絡(luò)中斷后可以繼續(xù)訪問這些數(shù)據(jù)。
云服務(wù)器端主要業(yè)務(wù)邏輯體現(xiàn)在云服務(wù)注冊中,將計算和存儲資源以服務(wù)的形式發(fā)布出去,同時添加到云服務(wù)注冊模塊中,中間件層通過云服務(wù)接口對云服務(wù)進行訪問??紤]到移動設(shè)備的弱處理能力,對云服務(wù)返回的復雜數(shù)據(jù)進行相應處理,使得適應終端顯示。緩存模塊主要用于對云服務(wù)端返回的大量數(shù)據(jù)進行臨時存儲,緩解終端接收的壓力。
當中間件收到服務(wù)請求時,檢索用戶所要求的服務(wù)是否存在,如果請求的服務(wù)存在,就將云服務(wù)接口返回給服務(wù)調(diào)用模塊,由它完成具體服務(wù)的調(diào)用。如果沒有相對應的服務(wù),表示服務(wù)不存在,給移動設(shè)備返回出錯信息。訪問流程如圖2所示。
中間件作為移動終端和云服務(wù)器之間的一層支撐軟件,一方面給移動終端提供訪問云服務(wù)的平臺,以便移動用戶可以無縫地訪問云服務(wù)器上的資源。另一方面負責移動終端與云服務(wù)端的通信,符合“中間件=平臺+通信”的定義。由于移動環(huán)境的特殊性和移動網(wǎng)絡(luò)的不穩(wěn)定性,因此面向云服務(wù)的移動中間件的關(guān)鍵技術(shù)包括以下兩個方面。
移動云服務(wù)是將網(wǎng)絡(luò)中的各種資源有效地聚合在一起,為移動用戶服務(wù)。因移動用戶要在多個無線網(wǎng)絡(luò)間不斷地切換,訪問云平臺提供的不同服務(wù),因此需要采用云服務(wù)發(fā)現(xiàn)技術(shù)來找到所需的云服務(wù)。本文采用一種SOA服務(wù)發(fā)現(xiàn)機制 UDDI(universal description,discovery and integration)[10],移動終端利用它可以發(fā)現(xiàn)暴露給終端的云服務(wù)。云平臺作為服務(wù)的提供者將自身的服務(wù)以WSDL發(fā)布到注冊中心,供請求方調(diào)用;移動終端作為服務(wù)請求方查找相應的服務(wù),以WSDL調(diào)用服務(wù),通過SOAP協(xié)議與云平臺進行交互,其體系結(jié)構(gòu)如圖3所示。
本文的移動云服務(wù)發(fā)現(xiàn)機制是一種用于建立高度動態(tài)C/S的協(xié)議集合,將移動端和云平臺之間的交互標準化。移動用戶與云平臺間最基本的交互是云服務(wù)的發(fā)現(xiàn)。云服務(wù)發(fā)現(xiàn)定義了移動終端用戶如何找到服務(wù)目錄,進行服務(wù)注冊或匹配的協(xié)議,支持多種協(xié)議形式,包括單播發(fā)現(xiàn)、多播發(fā)現(xiàn)和廣播發(fā)現(xiàn)等。云服務(wù)目錄提供了集中式的注冊機制,云服務(wù)在服務(wù)目錄中暴露其服務(wù)信息,移動用戶通過查找目錄或服務(wù)發(fā)現(xiàn)機制找到所需服務(wù)。在整個云服務(wù)發(fā)現(xiàn)過程中,中間件通過IaaS層的服務(wù)接口動態(tài)創(chuàng)建虛擬機,并完成業(yè)務(wù)邏輯的部署,根據(jù)云端業(yè)務(wù)的并發(fā)訪問情況動態(tài)調(diào)度云中底層的虛擬資源,實現(xiàn)資源對云端用戶的透明,集群技術(shù)能力向中間件上轉(zhuǎn)移的一種動態(tài)實現(xiàn),真正實現(xiàn)計算和存儲能力的彈性伸縮。同時,還提供垃圾收集功能,主要是實現(xiàn)系統(tǒng)的自愈合功能,當服務(wù)退出網(wǎng)絡(luò)或出現(xiàn)異常導致云服務(wù)不再可用時,借助垃圾收集機制刪除服務(wù)的相關(guān)狀態(tài)信息,回收資源。
考慮到移動終端資源受限的瓶頸,在中間件平臺中用并行數(shù)據(jù)處理模塊來對數(shù)據(jù)進行相應的處理,使其滿足移動終端對數(shù)據(jù)實時響應和時延較小的要求。綜合移動終端的這些缺陷,將交互數(shù)據(jù)按2 MB大小進行分塊,并將其按一定次序標記,同時為每個數(shù)據(jù)塊分配一個線程。另外,新開辟一條線程用于發(fā)送控制信息,指明數(shù)據(jù)所對應的文件塊序號以及文件相關(guān)信息。云服務(wù)端將接收到的文件塊保存到一個臨時文件中,當接收到文件塊的數(shù)量與控制信息中數(shù)量一致時,則表示數(shù)據(jù)接收完成,同時按相應次序合并文件塊,刪除臨時文件。終端數(shù)據(jù)傳輸速度快,網(wǎng)絡(luò)利用率高,終端數(shù)據(jù)時延較小,用戶體驗度在很大程度上得到提高。其流程如圖4所示。
考慮到電源的續(xù)航能力,通過采用并行數(shù)據(jù)傳輸技術(shù)解決了終端海量數(shù)據(jù)傳輸?shù)南到y(tǒng)承載能力問題。該模塊的核心功能是將傳輸?shù)臄?shù)據(jù)按照一定的要求進行分塊處理,并按順序標記每塊數(shù)據(jù),對中途數(shù)據(jù)塊傳輸失敗的數(shù)據(jù)支持斷點續(xù)傳,這在一定程度上解決了以往由于數(shù)據(jù)傳輸量過大而導致的傳輸耗時較長、數(shù)據(jù)傳輸頻繁失敗、數(shù)據(jù)更新不及時等問題。由于移動網(wǎng)絡(luò)是動態(tài)變化的,保證終端數(shù)據(jù)與云服務(wù)端的數(shù)據(jù)一致性,采用緩存技術(shù)來降低終端的負載,提高數(shù)據(jù)傳輸速度,增大用戶體驗度;同時存儲訪問度較高的數(shù)據(jù),減少終端的時延。
為了更好地對中間件做出評估,系統(tǒng)測試由硬件環(huán)境和軟件環(huán)境兩部分組成。硬件環(huán)境是由5臺普通PC機構(gòu)成的集群系統(tǒng);軟件環(huán)境由Ubunt 9.04和Android 2.2模擬器構(gòu)成。
為驗證模型的可行性與穩(wěn)定性,在此基礎(chǔ)上開發(fā)了一個面向移動終端的云備份系統(tǒng),將備份作為一種服務(wù)提供給移動終端,對云備份的數(shù)據(jù)傳輸速率進行測試,以判斷系統(tǒng)的穩(wěn)定性,如圖5所示。從圖中可以看出,手機云備份系統(tǒng)的傳輸速率能夠維持在一個相當穩(wěn)定的狀態(tài)下,從而間接說明該中間件模型的穩(wěn)定性與可靠性。同時,基于中間件的云備份系統(tǒng)將終端數(shù)據(jù)備份到云平臺上,有效地解決了移動設(shè)備存儲空間的不足,在較大程度上解放終端受限的約束,用戶體驗度得到提高。
隨著移動終端設(shè)備的快速發(fā)展,云計算模式受到廣泛關(guān)注,未來將會有更多的移動用戶采用移動設(shè)備享用云服務(wù)??紤]到移動設(shè)備資源受限的瓶頸,本文結(jié)合云計算、中間件以及SOA的相關(guān)技術(shù)實現(xiàn)了面向云服務(wù)結(jié)構(gòu)的移動中間件模型,為在移動環(huán)境下訪問云服務(wù)提供了一種通用解決方案;通過中間件技術(shù)將云服務(wù)封裝成一個統(tǒng)一的接口,降低了終端應用重復開發(fā)的成本,真正意義上實現(xiàn)了跨不同終端異構(gòu)平臺之間的交互,同時利用多線程技術(shù)對終端數(shù)據(jù)進行并行分塊處理,使得數(shù)據(jù)傳輸速率得到提高,終端用戶體驗度增強。未來的工作將集中在提供多協(xié)議支持、安全以及離線處理上,并對服務(wù)質(zhì)量保證做深入研究。
1 Michael A,Armando F,Rean G,et al.A view of cloud computing.Communications of the ACM,2010,53(4):50~58
2 Srikanth B,Kamlesh D.A cloud based software testing paradigm formobile applications.ACM Software Engineering Notes,2011,36(4):1~4
3 劉鵬.云計算.北京:電子工業(yè)出版社,2010
4 Afkham Azeez,Srinath Perera,Dimuthu Gamage,etal.Multi-tenant SOA middleware for cloud computing.In:IEEE 3rd International Conference on Cloud Computing,Miami,Florida,USA,2010
5 Qian Wang,Ralph Deters.SOA’s last mile connecting smartphones to the service cloud.In:IEEE International Conference on Cloud Computing,Los Angeles,California,USA,2009
6 Byung-Gon Chun,Petros Maniatis.Augmented smartphone applications through clone cloud execution.In:Proceedings of the 12th Conference on Hot Topics in Operating Systems,Switzerland,May 2009
7 李剛,孫紅梅,李智等.資源受限的Web服務(wù).計算機學報,2010,33(2):193~207
8 Fung Po Tso,Lin Cui,Lizhou Zhang,et al.Building a platform to bridge low end mobile phones and cloud computing services.ZTE Communications,2011,9(1):22~26
9 Jianzong Wang,Varman P,Changsheng Xie.Middleware enabled data sharing on cloud storage services.In:the 5th International Workshop on Middleware for Service Oriented Computing,Bangalore,India,2010
10 余浩,朱成,丁鵬.SOA實踐.北京:電子工業(yè)出版社,2009