王培海,劉宴兵,2,肖云鵬,陶長(zhǎng)順
(1.重慶郵電大學(xué)移動(dòng)互聯(lián)網(wǎng)中心 重慶 400065;2.重慶重郵信科通信技術(shù)有限公司 重慶 400065)
隨著3G、LTE等移動(dòng)通信技術(shù)的不斷發(fā)展,移動(dòng)互聯(lián)網(wǎng)帶寬得到大幅度的提升,通過(guò)移動(dòng)設(shè)備訪問(wèn)互聯(lián)網(wǎng),獲取自己所需的信息的方式,成為一種新的趨勢(shì)并逐漸融入到人們的日常生活中,催生出豐富的移動(dòng)應(yīng)用。為了緩解終端壓力,應(yīng)當(dāng)轉(zhuǎn)移終端應(yīng)用的需求來(lái)源,云計(jì)算[1]是一個(gè)很好的選擇。移動(dòng)設(shè)備的易攜帶和移動(dòng)性限制了其對(duì)資源的擁有。云計(jì)算雖然聚合了豐富的計(jì)算和存儲(chǔ)資源,但移動(dòng)性較差。將云計(jì)算與移動(dòng)互聯(lián)網(wǎng)有機(jī)結(jié)合[2],終端應(yīng)用對(duì)資源的高需求轉(zhuǎn)移到云平臺(tái)上,在真正意義上實(shí)現(xiàn)輕量級(jí)終端訪問(wèn)互聯(lián)網(wǎng)的瘦終端,滿足移動(dòng)用戶對(duì)快速響應(yīng)時(shí)間的期望,同時(shí)使移動(dòng)用戶可以隨時(shí)、隨地獲取云計(jì)算服務(wù),這正好體現(xiàn)了“anytime,anywhere”的思想。
本文研究基于云計(jì)算與SOA架構(gòu)的移動(dòng)應(yīng)用,參照“云+端”的設(shè)計(jì)模式,移動(dòng)設(shè)備以中間件的方式獲取云服務(wù)。針對(duì)移動(dòng)設(shè)備的弱計(jì)算環(huán)境,造成訪問(wèn)效率較低的特征,本文提出移動(dòng)設(shè)備通過(guò)中間件方式訪問(wèn)云服務(wù),較好地解決了終端環(huán)境資源受限的瓶頸。
云計(jì)算是一種新型的計(jì)算模型,它通過(guò)互聯(lián)網(wǎng)將計(jì)算任務(wù)分布在大量計(jì)算機(jī)構(gòu)成的資源池上,使用戶按需獲取各種信息服務(wù)[3]。移動(dòng)云計(jì)算在云計(jì)算基礎(chǔ)上發(fā)展而來(lái),給移動(dòng)互聯(lián)網(wǎng)的發(fā)展注入新的活力。目前,移動(dòng)云計(jì)算在學(xué)術(shù)界得到廣泛的重視,各個(gè)研究機(jī)構(gòu)紛紛開始做相關(guān)研究?;萜諏?shí)驗(yàn)室將云環(huán)境下的資源與SOA服務(wù)模式緊密相連[4],將云資源以服務(wù)提供的方式供用戶使用,降低了運(yùn)營(yíng)商的IT成本。但并沒有考慮移動(dòng)終端用戶的環(huán)境因素,只是針對(duì)傳統(tǒng)的Web終端。加拿大徹溫大學(xué)對(duì)智能終端使用移動(dòng)云服務(wù)做了相關(guān)研究[5],提出一種基于云計(jì)算的服務(wù)中間件,解決終端訪問(wèn)云服務(wù)的關(guān)鍵問(wèn)題。但對(duì)于該中間件應(yīng)用的開發(fā)比較單一,不能為多終端異構(gòu)平臺(tái)提供一個(gè)統(tǒng)一的編程接口。Berkeley有學(xué)者提出一種新穎的克隆云架構(gòu)[6],將終端應(yīng)用上資源密集型的計(jì)算或存儲(chǔ)轉(zhuǎn)移到具有終端運(yùn)行環(huán)境的云平臺(tái)上,以此增強(qiáng)終端應(yīng)用的能力。不足的是這種模型僅針對(duì)智能終端,并沒有對(duì)普通移動(dòng)設(shè)備加以考慮。因此,針對(duì)移動(dòng)應(yīng)用調(diào)用云計(jì)算能力的缺陷,將中間件技術(shù)引入到終端應(yīng)用的開發(fā)中,通過(guò)中間件提供的統(tǒng)一編程接口,來(lái)屏蔽多終端平臺(tái)之間的差異性,減少終端應(yīng)用重復(fù)開發(fā)的成本,對(duì)移動(dòng)應(yīng)用的發(fā)展有比較深遠(yuǎn)的意義。
Web服務(wù)為多終端異構(gòu)平臺(tái)資源協(xié)同提供了有效的手段。但在移動(dòng)環(huán)境中,網(wǎng)絡(luò)帶寬、內(nèi)存大小、計(jì)算能力、存儲(chǔ)空間以及電源的續(xù)航能力等資源非常受限[7]。傳統(tǒng)的Web服務(wù)已經(jīng)無(wú)法較好地滿足移動(dòng)環(huán)境下異構(gòu)設(shè)備互聯(lián)互通的需求。因此,資源受限的移動(dòng)設(shè)備如何有效地使用云服務(wù),得到學(xué)術(shù)界、工業(yè)界的高度重視。云服務(wù)中間件集成了云計(jì)算能力的中間件平臺(tái),能夠動(dòng)態(tài)調(diào)度底層虛擬資源滿足云端業(yè)務(wù)需求,能夠?qū)Ψ植际酱鎯?chǔ)提供擴(kuò)展支撐能力[8]。資源受限的云服務(wù)是云計(jì)算與移動(dòng)網(wǎng)絡(luò)、服務(wù)計(jì)算和嵌入式系統(tǒng)相結(jié)合的產(chǎn)物,在移動(dòng)終端應(yīng)用等領(lǐng)域有廣闊的應(yīng)用前景[9]。
眾所周知,云計(jì)算服務(wù)端聚合了豐富的計(jì)算和存儲(chǔ)資源,通過(guò)SOA技術(shù)將云計(jì)算資源以服務(wù)的形式發(fā)布出去,供不同的移動(dòng)設(shè)備訪問(wèn),解決移動(dòng)環(huán)境資源受限的瓶頸。移動(dòng)設(shè)備通過(guò)中間件獲取云服務(wù)接口,充當(dāng)移動(dòng)設(shè)備和云服務(wù)端之間的橋梁,同時(shí)也是云服務(wù)的提供者和使用者。云服務(wù)中間件通過(guò)建立Web應(yīng)用服務(wù)器實(shí)例,來(lái)屏蔽不同終端操作系統(tǒng)的異構(gòu)性,提供統(tǒng)一的計(jì)算存儲(chǔ)平臺(tái)和運(yùn)行環(huán)境。本文設(shè)計(jì)了一種面向移動(dòng)設(shè)備的云服務(wù)中間件模型,其系統(tǒng)架構(gòu)如圖1所示。
移動(dòng)設(shè)備端的邏輯結(jié)構(gòu)較為簡(jiǎn)單。Input/Output用于訪問(wèn)中間件,把用戶輸入的參數(shù)發(fā)出去,等待返回結(jié)果,在移動(dòng)設(shè)備上顯示出來(lái)。環(huán)境感知模塊用于實(shí)時(shí)監(jiān)控設(shè)備的網(wǎng)絡(luò)狀況、電池容量等,當(dāng)?shù)竭_(dá)一定閾值時(shí),中斷與中間件的連接。RM(record manager)用于保存數(shù)據(jù)記錄,可以將云服務(wù)端返回的數(shù)據(jù)保存在本地的移動(dòng)設(shè)備上,便于用戶在網(wǎng)絡(luò)中斷后可以繼續(xù)訪問(wèn)這些數(shù)據(jù)。
云服務(wù)器端主要業(yè)務(wù)邏輯體現(xiàn)在云服務(wù)注冊(cè)中,將計(jì)算和存儲(chǔ)資源以服務(wù)的形式發(fā)布出去,同時(shí)添加到云服務(wù)注冊(cè)模塊中,中間件層通過(guò)云服務(wù)接口對(duì)云服務(wù)進(jìn)行訪問(wèn)??紤]到移動(dòng)設(shè)備的弱處理能力,對(duì)云服務(wù)返回的復(fù)雜數(shù)據(jù)進(jìn)行相應(yīng)處理,使得適應(yīng)終端顯示。緩存模塊主要用于對(duì)云服務(wù)端返回的大量數(shù)據(jù)進(jìn)行臨時(shí)存儲(chǔ),緩解終端接收的壓力。
當(dāng)中間件收到服務(wù)請(qǐng)求時(shí),檢索用戶所要求的服務(wù)是否存在,如果請(qǐng)求的服務(wù)存在,就將云服務(wù)接口返回給服務(wù)調(diào)用模塊,由它完成具體服務(wù)的調(diào)用。如果沒有相對(duì)應(yīng)的服務(wù),表示服務(wù)不存在,給移動(dòng)設(shè)備返回出錯(cuò)信息。訪問(wèn)流程如圖2所示。
中間件作為移動(dòng)終端和云服務(wù)器之間的一層支撐軟件,一方面給移動(dòng)終端提供訪問(wèn)云服務(wù)的平臺(tái),以便移動(dòng)用戶可以無(wú)縫地訪問(wèn)云服務(wù)器上的資源。另一方面負(fù)責(zé)移動(dòng)終端與云服務(wù)端的通信,符合“中間件=平臺(tái)+通信”的定義。由于移動(dòng)環(huán)境的特殊性和移動(dòng)網(wǎng)絡(luò)的不穩(wěn)定性,因此面向云服務(wù)的移動(dòng)中間件的關(guān)鍵技術(shù)包括以下兩個(gè)方面。
移動(dòng)云服務(wù)是將網(wǎng)絡(luò)中的各種資源有效地聚合在一起,為移動(dòng)用戶服務(wù)。因移動(dòng)用戶要在多個(gè)無(wú)線網(wǎng)絡(luò)間不斷地切換,訪問(wèn)云平臺(tái)提供的不同服務(wù),因此需要采用云服務(wù)發(fā)現(xiàn)技術(shù)來(lái)找到所需的云服務(wù)。本文采用一種SOA服務(wù)發(fā)現(xiàn)機(jī)制 UDDI(universal description,discovery and integration)[10],移動(dòng)終端利用它可以發(fā)現(xiàn)暴露給終端的云服務(wù)。云平臺(tái)作為服務(wù)的提供者將自身的服務(wù)以WSDL發(fā)布到注冊(cè)中心,供請(qǐng)求方調(diào)用;移動(dòng)終端作為服務(wù)請(qǐng)求方查找相應(yīng)的服務(wù),以WSDL調(diào)用服務(wù),通過(guò)SOAP協(xié)議與云平臺(tái)進(jìn)行交互,其體系結(jié)構(gòu)如圖3所示。
本文的移動(dòng)云服務(wù)發(fā)現(xiàn)機(jī)制是一種用于建立高度動(dòng)態(tài)C/S的協(xié)議集合,將移動(dòng)端和云平臺(tái)之間的交互標(biāo)準(zhǔn)化。移動(dòng)用戶與云平臺(tái)間最基本的交互是云服務(wù)的發(fā)現(xiàn)。云服務(wù)發(fā)現(xiàn)定義了移動(dòng)終端用戶如何找到服務(wù)目錄,進(jìn)行服務(wù)注冊(cè)或匹配的協(xié)議,支持多種協(xié)議形式,包括單播發(fā)現(xiàn)、多播發(fā)現(xiàn)和廣播發(fā)現(xiàn)等。云服務(wù)目錄提供了集中式的注冊(cè)機(jī)制,云服務(wù)在服務(wù)目錄中暴露其服務(wù)信息,移動(dòng)用戶通過(guò)查找目錄或服務(wù)發(fā)現(xiàn)機(jī)制找到所需服務(wù)。在整個(gè)云服務(wù)發(fā)現(xiàn)過(guò)程中,中間件通過(guò)IaaS層的服務(wù)接口動(dòng)態(tài)創(chuàng)建虛擬機(jī),并完成業(yè)務(wù)邏輯的部署,根據(jù)云端業(yè)務(wù)的并發(fā)訪問(wèn)情況動(dòng)態(tài)調(diào)度云中底層的虛擬資源,實(shí)現(xiàn)資源對(duì)云端用戶的透明,集群技術(shù)能力向中間件上轉(zhuǎn)移的一種動(dòng)態(tài)實(shí)現(xiàn),真正實(shí)現(xiàn)計(jì)算和存儲(chǔ)能力的彈性伸縮。同時(shí),還提供垃圾收集功能,主要是實(shí)現(xiàn)系統(tǒng)的自愈合功能,當(dāng)服務(wù)退出網(wǎng)絡(luò)或出現(xiàn)異常導(dǎo)致云服務(wù)不再可用時(shí),借助垃圾收集機(jī)制刪除服務(wù)的相關(guān)狀態(tài)信息,回收資源。
考慮到移動(dòng)終端資源受限的瓶頸,在中間件平臺(tái)中用并行數(shù)據(jù)處理模塊來(lái)對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的處理,使其滿足移動(dòng)終端對(duì)數(shù)據(jù)實(shí)時(shí)響應(yīng)和時(shí)延較小的要求。綜合移動(dòng)終端的這些缺陷,將交互數(shù)據(jù)按2 MB大小進(jìn)行分塊,并將其按一定次序標(biāo)記,同時(shí)為每個(gè)數(shù)據(jù)塊分配一個(gè)線程。另外,新開辟一條線程用于發(fā)送控制信息,指明數(shù)據(jù)所對(duì)應(yīng)的文件塊序號(hào)以及文件相關(guān)信息。云服務(wù)端將接收到的文件塊保存到一個(gè)臨時(shí)文件中,當(dāng)接收到文件塊的數(shù)量與控制信息中數(shù)量一致時(shí),則表示數(shù)據(jù)接收完成,同時(shí)按相應(yīng)次序合并文件塊,刪除臨時(shí)文件。終端數(shù)據(jù)傳輸速度快,網(wǎng)絡(luò)利用率高,終端數(shù)據(jù)時(shí)延較小,用戶體驗(yàn)度在很大程度上得到提高。其流程如圖4所示。
考慮到電源的續(xù)航能力,通過(guò)采用并行數(shù)據(jù)傳輸技術(shù)解決了終端海量數(shù)據(jù)傳輸?shù)南到y(tǒng)承載能力問(wèn)題。該模塊的核心功能是將傳輸?shù)臄?shù)據(jù)按照一定的要求進(jìn)行分塊處理,并按順序標(biāo)記每塊數(shù)據(jù),對(duì)中途數(shù)據(jù)塊傳輸失敗的數(shù)據(jù)支持?jǐn)帱c(diǎn)續(xù)傳,這在一定程度上解決了以往由于數(shù)據(jù)傳輸量過(guò)大而導(dǎo)致的傳輸耗時(shí)較長(zhǎng)、數(shù)據(jù)傳輸頻繁失敗、數(shù)據(jù)更新不及時(shí)等問(wèn)題。由于移動(dòng)網(wǎng)絡(luò)是動(dòng)態(tài)變化的,保證終端數(shù)據(jù)與云服務(wù)端的數(shù)據(jù)一致性,采用緩存技術(shù)來(lái)降低終端的負(fù)載,提高數(shù)據(jù)傳輸速度,增大用戶體驗(yàn)度;同時(shí)存儲(chǔ)訪問(wèn)度較高的數(shù)據(jù),減少終端的時(shí)延。
為了更好地對(duì)中間件做出評(píng)估,系統(tǒng)測(cè)試由硬件環(huán)境和軟件環(huán)境兩部分組成。硬件環(huán)境是由5臺(tái)普通PC機(jī)構(gòu)成的集群系統(tǒng);軟件環(huán)境由Ubunt 9.04和Android 2.2模擬器構(gòu)成。
為驗(yàn)證模型的可行性與穩(wěn)定性,在此基礎(chǔ)上開發(fā)了一個(gè)面向移動(dòng)終端的云備份系統(tǒng),將備份作為一種服務(wù)提供給移動(dòng)終端,對(duì)云備份的數(shù)據(jù)傳輸速率進(jìn)行測(cè)試,以判斷系統(tǒng)的穩(wěn)定性,如圖5所示。從圖中可以看出,手機(jī)云備份系統(tǒng)的傳輸速率能夠維持在一個(gè)相當(dāng)穩(wěn)定的狀態(tài)下,從而間接說(shuō)明該中間件模型的穩(wěn)定性與可靠性。同時(shí),基于中間件的云備份系統(tǒng)將終端數(shù)據(jù)備份到云平臺(tái)上,有效地解決了移動(dòng)設(shè)備存儲(chǔ)空間的不足,在較大程度上解放終端受限的約束,用戶體驗(yàn)度得到提高。
隨著移動(dòng)終端設(shè)備的快速發(fā)展,云計(jì)算模式受到廣泛關(guān)注,未來(lái)將會(huì)有更多的移動(dòng)用戶采用移動(dòng)設(shè)備享用云服務(wù)??紤]到移動(dòng)設(shè)備資源受限的瓶頸,本文結(jié)合云計(jì)算、中間件以及SOA的相關(guān)技術(shù)實(shí)現(xiàn)了面向云服務(wù)結(jié)構(gòu)的移動(dòng)中間件模型,為在移動(dòng)環(huán)境下訪問(wèn)云服務(wù)提供了一種通用解決方案;通過(guò)中間件技術(shù)將云服務(wù)封裝成一個(gè)統(tǒng)一的接口,降低了終端應(yīng)用重復(fù)開發(fā)的成本,真正意義上實(shí)現(xiàn)了跨不同終端異構(gòu)平臺(tái)之間的交互,同時(shí)利用多線程技術(shù)對(duì)終端數(shù)據(jù)進(jìn)行并行分塊處理,使得數(shù)據(jù)傳輸速率得到提高,終端用戶體驗(yàn)度增強(qiáng)。未來(lái)的工作將集中在提供多協(xié)議支持、安全以及離線處理上,并對(duì)服務(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 劉鵬.云計(jì)算.北京:電子工業(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ù).計(jì)算機(jī)學(xué)報(bào),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實(shí)踐.北京:電子工業(yè)出版社,2009