張以利,楊萬(wàn)扣
移動(dòng)和頻繁斷連是移動(dòng)設(shè)備特點(diǎn)之一,利用移動(dòng)設(shè)備自身計(jì)算和存儲(chǔ)能力,可緩存服務(wù)器中部分“熱點(diǎn)”數(shù)據(jù),當(dāng)客戶端因斷連或網(wǎng)絡(luò)擁塞而與服務(wù)器“失聯(lián)”時(shí),在本地即可找到所需數(shù)據(jù)。但當(dāng)服務(wù)端數(shù)據(jù)更新時(shí),客戶端緩存會(huì)出現(xiàn)由于未及時(shí)更新而與服務(wù)器不一致等問(wèn)題[1]。
移動(dòng)緩存一致性維護(hù)問(wèn)題是當(dāng)前研究熱點(diǎn)之一。目前最有代表性算法,是帶有時(shí)間戳的廣播算法(Broadcasting Timestamps Strategy,BTS),服務(wù)器每隔一個(gè)時(shí)間段,向客戶端發(fā)送一個(gè)包含更新數(shù)據(jù)的失效報(bào)告(Invalidation Report,IR),用以更新緩存。但是,BTS算法基于C/S模式,當(dāng)服務(wù)器數(shù)據(jù)更新時(shí),需通知每一客戶端并等待確認(rèn),服務(wù)端會(huì)因?yàn)榭蛻舳藷o(wú)法及時(shí)確認(rèn)而產(chǎn)生“寫延遲”,客戶端的頻繁斷接還會(huì)加劇“寫延遲”;客戶端不允許斷接,一旦斷接就會(huì)始終處于重連等待狀態(tài);客戶端每次斷接重連后需重新驗(yàn)證緩存;這些都會(huì)影響客戶請(qǐng)求響應(yīng)速度及網(wǎng)絡(luò)通信開銷。
移動(dòng)云計(jì)算是移動(dòng)互聯(lián)網(wǎng)和云計(jì)算相結(jié)合的新技術(shù);Agent具有主動(dòng)性和智能性,適合在異構(gòu)開放環(huán)境中提供中間件服務(wù),在減少網(wǎng)絡(luò)“延遲”、支持輕載移動(dòng)設(shè)備方面具有不可比擬的優(yōu)越性[2],而移動(dòng)設(shè)備具有移動(dòng)性、計(jì)算能力弱、存儲(chǔ)空間小、電池容量小特點(diǎn)。因此,移動(dòng)緩存技術(shù)同移動(dòng)云技術(shù)和Agent技術(shù)具有天然的匹配性。
移動(dòng)云環(huán)境中基于 Agent的緩存一致性維護(hù)策略(Cache Consistent Maintenance Scheme Based on Agent in Mobile Cloud Environment,CSC),針對(duì)傳統(tǒng)算法中存在的服務(wù)端“寫延遲”及終端斷接操作,結(jié)合移動(dòng)云技術(shù)、Agent技術(shù)及緩存技術(shù),搭建三層結(jié)構(gòu)移動(dòng)云平臺(tái),并在中間層建立數(shù)據(jù)緩存,利用中間層協(xié)調(diào)客戶端與服務(wù)端關(guān)系,通過(guò)移動(dòng)代理來(lái)維護(hù)“雙緩存”一致性。實(shí)驗(yàn)結(jié)果表明,該策略能夠有效解決“寫延遲”和終端斷接操作及斷接重連后的一致性驗(yàn)證問(wèn)題,并能提高客戶請(qǐng)求響應(yīng)速度、減少網(wǎng)絡(luò)通信開銷。
移動(dòng)云環(huán)境中基于 Agent的緩存一致性維護(hù)平臺(tái)(Cache Consistent Maintenance platform Based on Agent in Mobile Cloud Environment,CPCE),是借助移動(dòng)云技術(shù)、Agent技術(shù)及緩存技術(shù)搭建起來(lái)的三層結(jié)構(gòu)移動(dòng)云平臺(tái),在云平臺(tái)的中間層開辟大緩存空間并建立緩存狀態(tài)信息列表,利用中間層對(duì)緩存數(shù)據(jù)進(jìn)行備份和一致性維護(hù),有效解決服務(wù)端“寫延遲”問(wèn)題,同時(shí)支持終端頻繁斷接,提高終端訪問(wèn)請(qǐng)求的響應(yīng)速度,減少數(shù)據(jù)通信開銷。CPCE平臺(tái)結(jié)構(gòu)圖,如圖1所示:
圖1 移動(dòng)云環(huán)境中基于Agent的語(yǔ)義緩存維護(hù)三層結(jié)構(gòu)模型
Agent具有主動(dòng)性與智能性特點(diǎn),能減少網(wǎng)絡(luò)“延遲”、支持輕載設(shè)備。CPCE平臺(tái)中的Agent有靜態(tài)Agent和移動(dòng)Agent兩種類型,實(shí)行統(tǒng)一標(biāo)識(shí)、統(tǒng)一命名管理,采用“黑板報(bào)”通信機(jī)制,平臺(tái)中的Agent之間互相“協(xié)商”,共同完成緩存一致性維護(hù)的任務(wù)[3]。
定義1 CPCE平臺(tái)的Agent模型
CPCE平臺(tái)的Agent模型定義為5元組如公式(1):
ID屬性用以標(biāo)識(shí)CPCE平臺(tái)的Agent唯一性,一個(gè)節(jié)點(diǎn)可以存在一個(gè)或多個(gè) Agent,故ID由所在中心服務(wù)器號(hào)(Central Server)、小區(qū)服務(wù)器號(hào)(Cell Server)及本地序號(hào)共同組成;Type屬性標(biāo)識(shí)Agent類型;state標(biāo)識(shí)Agent當(dāng)前工作狀態(tài)是否忙;currPara描述Agent當(dāng)前資源共享情況及歷史信息;policy是Mobile Agent的任務(wù)策略屬性,Agent根據(jù)自身情況及相關(guān)環(huán)境參數(shù),確定是否進(jìn)行遷移以及往何處遷移。
靜態(tài)Agent有Process Agent、Service Agent和Monitor Agent 3種類型,分布在客戶端、服務(wù)端及中間層,負(fù)責(zé)處理所在層的相關(guān)事務(wù)。
移動(dòng)agent為Mobile Agent,在中間層移動(dòng)并執(zhí)行任務(wù),也可以移動(dòng)到其所對(duì)應(yīng)的客戶端執(zhí)行某種任務(wù),同時(shí)與其所對(duì)應(yīng)的靜態(tài)Agent進(jìn)行協(xié)商,以協(xié)調(diào)客戶端與服務(wù)端關(guān)系,共同完成管理并維護(hù)緩存的任務(wù)。Mobile Agent在CPCE平臺(tái)中的運(yùn)行機(jī)制,見圖1。
Agent采取“黑板報(bào)”的通信機(jī)制?!昂诎鍒?bào)”為在云服務(wù)器內(nèi)開辟的一塊為全局共享內(nèi)存區(qū)域,是標(biāo)識(shí)平臺(tái)內(nèi)Agent及節(jié)點(diǎn)信息的“目錄表”,每個(gè)Agent主動(dòng)向“黑板”上“張貼”或“讀取”相關(guān)信息?!昂诎鍒?bào)”上的信息,是Mobile Agent行動(dòng)決策的依據(jù)之一。
CPCE平臺(tái)是由服務(wù)端、客戶端、中間層以及Agent系統(tǒng)構(gòu)建而成的三層結(jié)構(gòu)移動(dòng)云平臺(tái)系統(tǒng)[4]。服務(wù)端由中心服務(wù)器(Central Server)、Monitor Agent和 Process Agent組成,可以存放客戶端所需數(shù)據(jù),并有中心控制作用,有線連接多個(gè)本地服務(wù)器(Cell Server),屬于云中心服務(wù)器。Monitor Agent對(duì)“熱點(diǎn)”數(shù)據(jù)進(jìn)行周期性廣播,并由中間層進(jìn)行數(shù)據(jù)的接收;Process Agent接收來(lái)自中間層的Monitor Agent的查詢請(qǐng)求。
客戶端由移動(dòng)終端(Mobile Terminal,MT)、Monitor Agent和 Service Agent組成,MT無(wú)線接入到本地服務(wù)器(Cell Server)中,中間層為每個(gè)移動(dòng)終端創(chuàng)建一個(gè)Mobile Agen(移動(dòng)代理),用來(lái)代替移動(dòng)終端處理相關(guān)事務(wù)。Monitor Agent負(fù)責(zé)接收來(lái)自中間層的廣播數(shù)據(jù)并更新緩存,Service Agent負(fù)責(zé)提交客戶端的查詢請(qǐng)求并接收來(lái)自中間層或服務(wù)端的查詢結(jié)果。
中間層由本地服務(wù)器(Cell Server)、Monitor Agent、Process Agent及若干Mobile Agent組成。Cell Server有固定移動(dòng)通信網(wǎng)關(guān)接口功能,發(fā)送的信號(hào)覆蓋的范圍稱為一個(gè)“小區(qū)”(Cell),一個(gè) Cell Server無(wú)線連接若干 MT。Monitor Agent接收服務(wù)端的廣播數(shù)據(jù)并更新緩存,向客戶端廣播更新數(shù)據(jù),Process Agent處理來(lái)自客戶端的查詢請(qǐng)求。
Cell Server為其“轄區(qū)”范圍內(nèi)的每個(gè)移動(dòng)終端創(chuàng)建一個(gè)移動(dòng)代理Mobile Agent,該Mobile Agent可以移動(dòng)到其對(duì)應(yīng)的客戶端并執(zhí)行某些事務(wù);同時(shí),當(dāng)移動(dòng)終端從一個(gè)“小區(qū)”移動(dòng)到另一個(gè)“小區(qū)”時(shí),與其對(duì)應(yīng)的 Mobile Agent也要相應(yīng)移動(dòng)到其對(duì)應(yīng)的移動(dòng)終端所在 “小區(qū)”的 Cell Server中,Mobile Agent緊緊“跟隨”移動(dòng)終端,隨著移動(dòng)終端來(lái)回“穿梭”于各個(gè)“小區(qū)”。Mobile Agent實(shí)行“屬地管理”機(jī)制,接受所在“小區(qū)”的管理[5]。
基于移動(dòng)終端及移動(dòng)云端在計(jì)算和存儲(chǔ)能力方面各自特點(diǎn),CSC策略采取“雙緩存”機(jī)制,考慮在移動(dòng)終端和CPCE三層結(jié)構(gòu)云平臺(tái)的中間層開辟緩存[6]。移動(dòng)終端緩存,是利用移動(dòng)終端自身的處理和存儲(chǔ)能力而開辟的一塊存儲(chǔ)空間以緩存部分“熱點(diǎn)”數(shù)據(jù),可提高數(shù)據(jù)訪問(wèn)速度、減少網(wǎng)絡(luò)擁塞。
考慮到移動(dòng)終端計(jì)算能力弱、存儲(chǔ)空間小、電池容量小等特點(diǎn),CSC策略利用移動(dòng)云存儲(chǔ),在CPCE平臺(tái)中間層開辟大緩存空間,用以緩存終端熱點(diǎn)數(shù)據(jù)。在CPCE平臺(tái)中間層Cell Server中建立的緩存里,每個(gè)客戶端都有對(duì)應(yīng)的備份,并建立一個(gè)云端緩存區(qū)號(hào),且由“Cell緩存狀態(tài)信息列表”記錄相應(yīng)信息。移動(dòng)終端與其相應(yīng)的“Mobile Agent號(hào)”、“云端緩存區(qū)號(hào)”以及“Cell緩存狀態(tài)信息列表號(hào)”一一對(duì)應(yīng)。
定義2 Cell緩存狀態(tài)信息列表
Cell緩存狀態(tài)信息列表,記錄中間層緩存狀態(tài)信息,存放于 CPCE三層結(jié)構(gòu)云平臺(tái)中間層的緩存中,每一個(gè) Cell緩存狀態(tài)信息列表對(duì)應(yīng)中間層一塊緩存區(qū),由 Cell Server中的 Monitor Agent維護(hù)并管理,可以被其對(duì)應(yīng)的 Mobile Agent攜帶,“游離”于其所在的Cell Server及其相應(yīng)的移動(dòng)終端,還可隨著移動(dòng)終端的移動(dòng)而“穿梭”于各個(gè)“小區(qū)”。Cell緩存狀態(tài)信息列表cachTabl定義為五元組[7]:invaFlag屬性為數(shù)據(jù)項(xiàng)失效標(biāo)志,starLog屬性為記錄脫機(jī)事務(wù)日志啟動(dòng)與否的量。offTimeMobi為記錄客戶端與 Cell Server斷接時(shí)間長(zhǎng)度。counter記錄客戶端在某段時(shí)間內(nèi)的訪問(wèn)次數(shù)平均值,是數(shù)據(jù)訪問(wèn)熱度標(biāo)志,是Cell緩存數(shù)據(jù)換出換入的依據(jù)。
中間層 Cell Server與其中的 Monitor Agent、Process Agent及Mobile Agent,起到協(xié)調(diào)移動(dòng)客戶端與服務(wù)端的作用,負(fù)責(zé)監(jiān)控、管理、維護(hù)緩存以及接受移動(dòng)客戶端數(shù)據(jù)請(qǐng)求,維護(hù)移動(dòng)終端緩存數(shù)據(jù)的一致性。
考慮到空間資源利用率,CSC策略根據(jù)Cell緩存狀態(tài)信息列表的相關(guān)記錄參數(shù),實(shí)現(xiàn)緩存數(shù)據(jù)“換入換出”的動(dòng)態(tài)機(jī)制,“換人”移動(dòng)客戶端近期常訪問(wèn)的“熱點(diǎn)”數(shù)據(jù),“換出”那些長(zhǎng)期未訪問(wèn)過(guò)的較“舊”的數(shù)據(jù)。
CSC策略,搭建三層結(jié)構(gòu)移動(dòng)云平臺(tái)并構(gòu)建“雙緩存”,利用中間層對(duì)緩存數(shù)據(jù)進(jìn)行備份和一致性維護(hù),既減輕移動(dòng)終端負(fù)擔(dān),又達(dá)到了數(shù)據(jù)強(qiáng)一致性,并支持移動(dòng)終端頻繁斷接。
客戶端事務(wù)驅(qū)動(dòng)緩存一致性維護(hù),是由客戶端查詢請(qǐng)求事件驅(qū)動(dòng)發(fā)起,是客戶端的MT及其Agent與中間層交互并維護(hù)客戶端緩存與中間層緩存一致性的過(guò)程[8]。
移動(dòng)客戶端的Monitor Agent可對(duì)網(wǎng)絡(luò)連接進(jìn)行實(shí)時(shí)監(jiān)聽。當(dāng)客戶端有數(shù)據(jù)查詢請(qǐng)求時(shí),如果客戶端處于聯(lián)機(jī)狀態(tài),則客戶端的Service Agent啟動(dòng)聯(lián)機(jī)事務(wù),如果客戶端處于斷接狀態(tài),并且斷接時(shí)間offTimeMobi大于服務(wù)器廣播時(shí)間間隔cellServBroaInte,則Service Agent啟動(dòng)斷接事務(wù),若這時(shí)Monitor Agen監(jiān)測(cè)到客戶端由原來(lái)的斷接又重新聯(lián)機(jī),這種由斷接到聯(lián)機(jī)的狀態(tài),稱為物理重聯(lián)機(jī)狀態(tài),則 Service Agent立即啟動(dòng)集成事務(wù),而后客戶端就進(jìn)入正常聯(lián)機(jī)狀態(tài)運(yùn)行。下面分別介紹這3種事務(wù)。
客戶端聯(lián)機(jī)事務(wù)。當(dāng)客戶端有數(shù)據(jù)查詢請(qǐng)求并檢測(cè)到處于網(wǎng)絡(luò)聯(lián)機(jī)狀態(tài)時(shí),其中的Service Agent將發(fā)送信息到該客戶端所在“小區(qū)”的本地服務(wù)器Cell Server,Cell Server接受該信息并驗(yàn)證時(shí)間戳,如果仍是時(shí)間戳TS0,則表明數(shù)據(jù)很“新”,則直接在MT端執(zhí)行操作,如果時(shí)間戳過(guò)期,此時(shí)要執(zhí)行一致性維護(hù),返回中間層緩存“最新”數(shù)據(jù),同時(shí)保存時(shí)間戳并更新Cell緩存狀態(tài)信息表。如果中間層緩存數(shù)據(jù)不是“最新”,則直接到Central Server中查找并返回?cái)?shù)據(jù)。
客戶端斷接事務(wù)。當(dāng)客戶端有數(shù)據(jù)查詢請(qǐng)求而這時(shí)卻處于斷接狀態(tài),移動(dòng)終端會(huì)因無(wú)法連接服務(wù)器而得不到最新數(shù)據(jù),此時(shí)移動(dòng)終端緩存便充當(dāng)“臨時(shí)服務(wù)器”角色。實(shí)際上,多數(shù)情況下客戶端并不一定必須要最新數(shù)據(jù),只要偏差在一定范圍內(nèi)也是可以忍受的。CSC策略采取,當(dāng)斷接時(shí)間offTimeMobi小于cellServBroaInte時(shí),視作客戶端緩存有效;當(dāng)斷接時(shí)間offTimeMobi大于cellServBroaInte時(shí),則啟動(dòng)斷接事務(wù)執(zhí)行程序。
執(zhí)行斷接事務(wù)程序時(shí),客戶端的Service Agent在移動(dòng)終端緩存執(zhí)行暫態(tài)事務(wù),并記錄暫態(tài)事務(wù)日志,等待重新聯(lián)機(jī)時(shí)與移動(dòng)到終端的Mobile Agent攜帶過(guò)來(lái)的Cell緩存狀態(tài)信息列表融合,再根據(jù)融合結(jié)果更新客戶端緩存。CSC策略允許客戶端在斷接狀態(tài)工作,無(wú)論斷接時(shí)間長(zhǎng)短都有相應(yīng)方案,而 BTS等傳統(tǒng)策略只允許連機(jī)狀態(tài)下工作,一旦斷接就一直處于重連等待狀態(tài)中。
客戶端集成事務(wù)。當(dāng)客戶端有數(shù)據(jù)查詢請(qǐng)求,且此時(shí)處于斷接狀態(tài)的客戶端又再次聯(lián)機(jī)時(shí),監(jiān)控網(wǎng)絡(luò)連接狀態(tài)的客戶端Monitor Agent會(huì)通知中間層,這時(shí),與該移動(dòng)終端對(duì)應(yīng)的中間層Mobile Agent,會(huì)攜帶Cell緩存狀態(tài)信息列表移動(dòng)到客戶端,同客戶端Service Agent進(jìn)行協(xié)商,將Cell緩存狀態(tài)信息列表與斷接狀態(tài)時(shí)記錄的暫態(tài)事務(wù)日志進(jìn)行融合,如果發(fā)生沖突,則對(duì)相應(yīng)的暫態(tài)事務(wù)回滾并提交,同時(shí)更新客戶端緩存[8]。
服務(wù)端事務(wù)驅(qū)動(dòng)緩存一致性維護(hù),是由服務(wù)端數(shù)據(jù)更新事件驅(qū)動(dòng)發(fā)起,是服務(wù)端的云中心服務(wù)器及其Agent與中間層交互并維護(hù)中間層緩存與服務(wù)端一致性的過(guò)程[9]。
服務(wù)器端驅(qū)動(dòng)語(yǔ)義緩存一致性維護(hù)算法,如算法1:
算法1 服務(wù)器端驅(qū)動(dòng)語(yǔ)義緩存一致性維護(hù)算法
當(dāng)中心服務(wù)器 central server有數(shù)據(jù)更新時(shí),其中的Monitor Agent將更新通知發(fā)送給緩存了該數(shù)據(jù)項(xiàng)的中間層Monitor Agent,當(dāng)中心服務(wù)器接收到中間層確認(rèn)信息后,即可更新中間層緩存數(shù)據(jù)并將相關(guān)信息連同時(shí)間戳一同保存在Cell緩存狀態(tài)信息列表中。
在傳統(tǒng)的兩層結(jié)構(gòu)中,中心服務(wù)器將更新數(shù)據(jù)消息直接發(fā)送給移動(dòng)客戶端并等待確認(rèn),這時(shí),服務(wù)端可能會(huì)由于斷接而無(wú)法及時(shí)得到客戶端確認(rèn),進(jìn)而出現(xiàn)服務(wù)器“寫延遲”問(wèn)題。而在CSC策略中,中心服務(wù)器更新的數(shù)據(jù)不是緩存在移動(dòng)客戶端,而是在本地服務(wù)器,由于中心服務(wù)器與本地服務(wù)器有線連接,因此,不會(huì)出現(xiàn)“寫延遲”問(wèn)題,并且終端斷接重連后不需要進(jìn)行一致性驗(yàn)證。
傳統(tǒng)算法中,服務(wù)端采取每隔一個(gè)時(shí)間段發(fā)送包括所有被修改標(biāo)識(shí)的失效報(bào)告給客戶端,當(dāng)終端斷接時(shí)間超過(guò)失效報(bào)告時(shí)長(zhǎng)時(shí),必須將緩存全部失效。終端重連后,服務(wù)端收到客戶端發(fā)送過(guò)來(lái)的所有數(shù)據(jù)請(qǐng)求,都以廣播方式將數(shù)據(jù)發(fā)送到客戶端。顯然,這會(huì)大大增加網(wǎng)絡(luò)通信開銷。
CSC策略,搭建CPCE三層移動(dòng)云平臺(tái),建立“雙緩存”,利用中間層為終端提供緩存?zhèn)浞莶f(xié)助終端進(jìn)行緩存一致性維護(hù)。中間層對(duì)緩存數(shù)據(jù)更新操作,是更新數(shù)據(jù)序列操作,而不是發(fā)送失效報(bào)告來(lái)籠統(tǒng)更新全部數(shù)據(jù)。當(dāng)終端要恢復(fù)緩存有效性時(shí),或者有數(shù)據(jù)查詢請(qǐng)求時(shí),只需要訪問(wèn)中間層緩存中的更新序列并執(zhí)行,即可達(dá)到客戶端緩存與服務(wù)端數(shù)據(jù)一致性的目的。這就是CSC策略緩存數(shù)據(jù)“粒度”更新方法。
因此,這種CSC策略緩存數(shù)據(jù)“粒度”更新方法,較BTS等傳統(tǒng)失效報(bào)告方法,會(huì)大減少網(wǎng)絡(luò)通信開銷和緩存一致性維護(hù)的時(shí)間開銷。
仿真實(shí)驗(yàn)任務(wù):驗(yàn)證CSC策略能夠有效解決服務(wù)端“寫延遲”和終端斷接操作及斷接重連后的一致性驗(yàn)證問(wèn)題,并能提高客戶請(qǐng)求響應(yīng)速度、減少網(wǎng)絡(luò)通信開銷。
對(duì)比試驗(yàn)為:帶有時(shí)間戳的廣播算法(BTS)。
仿真實(shí)驗(yàn)構(gòu)建三層結(jié)構(gòu)移動(dòng)云平臺(tái):云中心服務(wù)器Central Server一臺(tái)為服務(wù)端,有線連接3臺(tái)本地服務(wù)器Cell Server為中間層,這些機(jī)器均采用Pentium P6100 2.00GHz處理器,內(nèi)存2GB,操作系統(tǒng)WindowsXP Professional,每臺(tái)本地服務(wù)器無(wú)線連接4臺(tái)移動(dòng)終端為一個(gè)“小區(qū)”,采用java語(yǔ)言編程,云平臺(tái)Hadoop,IBM Aglet SDK實(shí)現(xiàn)CPCE平臺(tái)的Agent系統(tǒng)[10]。仿真實(shí)驗(yàn)各項(xiàng)參數(shù),如表1所示:
表1 仿真實(shí)驗(yàn)各項(xiàng)參數(shù)
CSC和BTS兩種策略在“寫延遲”方面的性能對(duì)比,如表2所示:
表2 兩種策略在“寫延遲”方面的性能對(duì)比
由表2可以看出,在CSC策略中,服務(wù)端不會(huì)出現(xiàn)“寫延遲”問(wèn)題,并且客戶端移動(dòng)、斷接時(shí)對(duì)“‘寫延遲’增加與否情況”均無(wú)影響。而 BTS策略的情況則完全不同。這是因?yàn)椋珻SC策略采用三層結(jié)構(gòu)移動(dòng)云平臺(tái),服務(wù)端修改數(shù)據(jù)的通知不再發(fā)給客戶端,而是發(fā)給緩存了該數(shù)據(jù)項(xiàng)的中間層服務(wù)器 Cell Server,由中間層服務(wù)器給服務(wù)端發(fā)回確認(rèn)。而BTS算法采用兩層結(jié)構(gòu),增加了這種“寫延遲”。由表2可以看出,CSC策略允許終端斷接操作,而BTS策略則不允許。這是因?yàn)镃SC策略允許客戶端在斷接狀態(tài)下工作,根據(jù)斷接時(shí)間長(zhǎng)短啟動(dòng)相應(yīng)運(yùn)行程序。而 BTS等傳統(tǒng)策略只允許連機(jī)狀態(tài)下工作,一旦斷接就一直處于連接等待狀態(tài)。由表2還可以看出,CSC策略在終端斷接重連后不需要一致性驗(yàn)證,而 BTS策略必須要一致性驗(yàn)證。這是因?yàn)?,CSC策略采用三層結(jié)構(gòu)移動(dòng)云平臺(tái),服務(wù)端的寫操作由 Central Server與中間層的Cell Server交互完成,不需要客戶端參與。
仿真實(shí)驗(yàn)三層結(jié)構(gòu)移動(dòng)云平臺(tái),有3個(gè)“小區(qū)”,無(wú)線連接終端12臺(tái)。實(shí)驗(yàn)時(shí),對(duì)12臺(tái)移動(dòng)終端做記錄并取平均值。橫軸為“移動(dòng)終端斷接的平均時(shí)間”,縱軸為“訪問(wèn)緩存數(shù)據(jù)的平均響應(yīng)時(shí)間”。兩種策略在客戶端斷接重連后訪問(wèn)請(qǐng)求的響應(yīng)時(shí)間對(duì)比,如圖2所示:
由圖2可看出,CSC策略的平均響應(yīng)時(shí)間遠(yuǎn)低于BTS算法的平均響應(yīng)時(shí)間,即提高了客戶請(qǐng)求響應(yīng)速度。這是因?yàn)?,服?wù)器廣播失效報(bào)告時(shí)間間隔為50s,對(duì)于CSC策略來(lái)說(shuō),只要是移動(dòng)終端斷接時(shí)間小于cellServBroaInte,終端緩存就被認(rèn)為有效,因此直接訪問(wèn)終端緩存。如果大于cellServBroaInte,啟動(dòng)客戶端斷接事務(wù)執(zhí)行程序,在客戶端執(zhí)行暫態(tài)事務(wù),當(dāng)重新連接后,啟動(dòng)客戶端執(zhí)行集成事務(wù),要將暫態(tài)事務(wù)同 Cell 緩存狀態(tài)信息列表融合并回滾事務(wù),實(shí)際上大部分?jǐn)?shù)據(jù)無(wú)需更新。而 BTS算法,只要離線且無(wú)論離線時(shí)間長(zhǎng)短,重新連接后都要進(jìn)行一致性驗(yàn)證,因此響應(yīng)時(shí)間較大。
由圖2還可看出,隨著離線時(shí)間的增大,響應(yīng)時(shí)間不斷增大,因?yàn)?,離線時(shí)間越長(zhǎng),需要更新數(shù)據(jù)就會(huì)越多,緩存更新時(shí)長(zhǎng)都會(huì)增大,因此響應(yīng)時(shí)間就會(huì)增大。
選取在客戶端緩存中從50到500個(gè)待更新的元祖數(shù)據(jù)進(jìn)行一致性維護(hù)。兩種策略產(chǎn)生的數(shù)據(jù)通信開銷對(duì)比,如圖3所示:
由圖 3可以看出,CSC策略的數(shù)據(jù)通信開銷明顯低于BTS策略。這是因?yàn)?,BTS策略在斷接重連后必須進(jìn)行一致性驗(yàn)證,尤其是網(wǎng)絡(luò)擁塞情況下,頻繁斷接時(shí)常發(fā)生,這無(wú)疑增加通信開銷。當(dāng)斷接時(shí)間長(zhǎng)于服務(wù)器廣播時(shí)間時(shí),再次聯(lián)機(jī)就無(wú)法根據(jù)發(fā)送的失效報(bào)告來(lái)處理緩存有效性問(wèn)題。而CSC策略,在斷接重連后不需要一致性驗(yàn)證。因此,產(chǎn)生較少的網(wǎng)絡(luò)通信開銷。同時(shí),BTS策略的更新操作是,先在緩存中執(zhí)行DELETE操作,再將執(zhí)行SELECTE操作得到的更新元組放入緩存,把修改個(gè)別屬性值就達(dá)到目的的操作變成了整個(gè)元祖操作。而CSC策略,采取的是“粒度”更新方法,是“個(gè)別”操作。因此,產(chǎn)生較少網(wǎng)絡(luò)通信開銷。
移動(dòng)云環(huán)境中基于Agent的緩存一致性維護(hù)策略,在構(gòu)建基于Agent的三層結(jié)構(gòu)移動(dòng)云平臺(tái)基礎(chǔ)上,根據(jù)移動(dòng)終端及移動(dòng)云存儲(chǔ)特點(diǎn)建立“雙緩存”,同時(shí),利用中間層維護(hù)管理緩存并協(xié)調(diào)客戶端與服務(wù)端關(guān)系,通過(guò)移動(dòng)代理來(lái)維護(hù)“雙緩存”一致性。該策略解決了傳統(tǒng)算法中存在服務(wù)端“寫延遲”和斷接操作問(wèn)題,提高客戶請(qǐng)求響應(yīng)速度、減少網(wǎng)絡(luò)通信開銷。因此,CSC策略非常適用于終端頻繁移動(dòng)、斷接的無(wú)線網(wǎng)絡(luò)計(jì)算環(huán)境。下一步,將進(jìn)一步研究移動(dòng)云環(huán)境中基于多Agent的移動(dòng)終端在“小區(qū)”間頻繁切換時(shí)的代價(jià)最優(yōu)問(wèn)題。
[1] 田雪穎,劉衍珩,孫鑫.一種動(dòng)態(tài)的移動(dòng)社交網(wǎng)絡(luò)拓?fù)淠P蚚J].計(jì)算機(jī)工程,2014,40(9):124-129,142.
[2] 張以利,楊萬(wàn)扣,李峻.基于移動(dòng)Agent的代價(jià)驅(qū)動(dòng)的云端存儲(chǔ)模型[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(11):4240-4244.
[3] 劉曉茜.云計(jì)算數(shù)據(jù)中心結(jié)構(gòu)及其調(diào)度機(jī)制研究[D].合肥:中國(guó)科學(xué)技術(shù)大學(xué),2011.
[4] 王素貞,杜治娟.基于移動(dòng)Agent的移動(dòng)云計(jì)算系統(tǒng)構(gòu)建方法[J].計(jì)算機(jī)應(yīng)用,2013,33 (05):1276-1280.
[5] Iosup A, Ostermann S, Yigitbasi M N. Performance Analysis of Cloud Computing Services for Many-tasks Scientific Computing[J].IEEE Trans. on Parallel and Distributed System.2011,22(6):931-945.
[6] 孫一杰,張國(guó)良,張勝修.一類異構(gòu)多智能體系非線性協(xié)議下的一致性分析[J].計(jì)算機(jī)應(yīng)用,2015,35(1):136-139.
[7] 茹蓓,肖云鵬,張俊鵬.基于Agent的移動(dòng)Web服務(wù)集成方案[J].計(jì)算機(jī)工程,2012, 38(9):49-50,54.
[8] 梁茹冰,劉瓊.移動(dòng)計(jì)算環(huán)境中基于agent計(jì)算的語(yǔ)義緩存一致性驗(yàn)證方法[J].計(jì)算機(jī)科學(xué), 2014,41(3):132-136.
[9] 李娟妮,華慶一,姬翔.移動(dòng)環(huán)境中任務(wù)分析及任務(wù)建模方法[J].計(jì)算機(jī)科學(xué), 2014,41(10):210-215.
[10] Mell J, Grance T. The NIST Definition of Cloud Computing[EB/OL].http://csrc.nist.gov/publications/drafts/800-145/Draft-SP-800-145_cloud-definition.pdf,2011.