李軍懷,高 苗,張 璟
(西安理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,陜西 西安 710048)
隨著移動(dòng)設(shè)備的廣泛應(yīng)用,移動(dòng)協(xié)同工作(Mobile CSCW)成為必然趨勢(shì)[1-2]。在移動(dòng)CSCW中,用戶與遠(yuǎn)程協(xié)同工作的同事及相關(guān)資源構(gòu)成了一個(gè)虛擬的工作空間,用戶在虛擬空間中交互信息,克服了時(shí)空的限制,但是卻缺乏在面對(duì)面的協(xié)作環(huán)境下工作的自然性和真實(shí)性,為了保證協(xié)同工作順利進(jìn)行,群組成員之間的感知就變得非常重要了。移動(dòng)終端設(shè)備通過(guò)無(wú)線網(wǎng)絡(luò)進(jìn)行通信時(shí),由于無(wú)線網(wǎng)絡(luò)帶寬小,連接穩(wěn)定性差,常常會(huì)導(dǎo)致暫時(shí)的網(wǎng)絡(luò)斷接,妨礙了協(xié)作者之間流暢的信息交流,不利于群組成員之間的協(xié)同工作。而且移動(dòng)終端設(shè)備的存儲(chǔ)能力、可用能量有限,例如,電池的供電時(shí)間有限,這也許會(huì)導(dǎo)致意想不到的中斷,對(duì)協(xié)同工作的結(jié)果造成極大的危害[2-4]。針對(duì)這些問(wèn)題,本文通過(guò)對(duì)能耗與消息大小之間的關(guān)系進(jìn)行分析,采用消息隊(duì)列和減少消息大小的上下文存儲(chǔ)等機(jī)制,保證移動(dòng)環(huán)境下協(xié)同工作感知消息的有效傳遞,同時(shí)減小網(wǎng)絡(luò)中傳輸?shù)母兄⒋笮?,以減小響應(yīng)時(shí)間,達(dá)到減少能耗的目的。
無(wú)線網(wǎng)絡(luò)連接穩(wěn)定性差,經(jīng)常會(huì)出現(xiàn)客戶端與服務(wù)器端網(wǎng)絡(luò)斷接的情況,隨著移動(dòng)設(shè)備的廣泛應(yīng)用,在短時(shí)間網(wǎng)絡(luò)中斷的情況下保證協(xié)同工作的正常進(jìn)行成為一種必然要求[5-6]。同時(shí),移動(dòng)設(shè)備受到可用能量的限制,它的工作狀態(tài)是在睡眠模式和活動(dòng)模式之間轉(zhuǎn)換,如果移動(dòng)設(shè)備處于睡眠模式,幾乎不消耗電池能量;如果其運(yùn)行在活動(dòng)模式下就可以進(jìn)行諸如消息傳送等操作,這時(shí)移動(dòng)設(shè)備開(kāi)始消耗電池能量。客戶端在活動(dòng)模式下接收消息,其監(jiān)聽(tīng)通道的持續(xù)時(shí)間被稱為調(diào)諧時(shí)間,調(diào)諧時(shí)間與能量消耗是成比例的。從調(diào)諧時(shí)間與能量消耗的相關(guān)公式出發(fā),可以推導(dǎo)出通過(guò)減小網(wǎng)絡(luò)中傳輸?shù)南⒋笮?,達(dá)到節(jié)約能量的目的。
假設(shè)一個(gè)客戶端每tp個(gè)時(shí)間單位調(diào)諧一次網(wǎng)絡(luò),調(diào)諧時(shí)間保持tc個(gè)時(shí)間單位。如果我們用X表示客戶端成功接收兩條消息之間的時(shí)間間隔,用f表示處于活動(dòng)模式的客戶端單位時(shí)間的能量消耗,那總的能量消耗就是E0=λ·f·tc,λ表示在這個(gè)周期內(nèi)的網(wǎng)絡(luò)調(diào)整次數(shù),即
(1)
因此,我們有
(2)
客戶端連續(xù)的從網(wǎng)絡(luò)中接收消息,消息的大小為Y,消息在網(wǎng)絡(luò)中的傳輸速率為V,那么第一條消息與第二條消息之間的時(shí)間間隔即為第二條消息在網(wǎng)絡(luò)中的傳輸時(shí)間,分為兩種情況:
第一種情況:第2條消息到來(lái)時(shí),移動(dòng)設(shè)備處于活動(dòng)模式,這時(shí)X=Y2/V2;
第二種情況:第2條消息到來(lái)時(shí),移動(dòng)設(shè)備處于睡眠模式,等待設(shè)備轉(zhuǎn)換到活動(dòng)模式后接收消息,這時(shí)X=Y2/V2+tp,即:
(3)
或者
(4)
從公式(3)和(4)可以看到,由于消息在網(wǎng)絡(luò)中的傳輸速率V一般是固定的,那能量消耗E0與消息的大小Y有很大關(guān)系,隨著消息的變小,Y2/V2變小,能量消耗變小。因此,可以得出結(jié)論,通過(guò)減小網(wǎng)絡(luò)中傳輸?shù)南⒋笮。梢赃_(dá)到節(jié)約能量的目的[7]。
在對(duì)消息大小與能量消耗之間的關(guān)系進(jìn)行了數(shù)學(xué)分析以后,本節(jié)從如何收集感知信息,如何描述感知信息以及采用一種什么樣的信息傳遞方式出發(fā),著重從減小消息大小,保證信息完整性、協(xié)作流暢性為目的,給出了一個(gè)基于能耗的感知模型感知消息處理模型,如圖1所示。
考慮到無(wú)線網(wǎng)絡(luò)不穩(wěn)定的局限性,為了保證用戶之間流暢的感知信息交互,使得協(xié)同工作順利的進(jìn)行,我們使用消息隊(duì)列來(lái)收集感知信息。為了減少移動(dòng)客戶之間傳輸消息的大小,以達(dá)到降低移動(dòng)設(shè)備能量消耗的目的,我們引入了一種基于消息上下文存儲(chǔ)機(jī)制的方法。同時(shí),采用遠(yuǎn)程指針來(lái)體現(xiàn)感知性[8-9]。
圖1 基于能耗的感知模型
基于消息隊(duì)列的感知信息收集方法主要思想是將消息緩存在消息隊(duì)列中,以防止由于網(wǎng)絡(luò)斷接造成的信息丟失。為了便于區(qū)分,將位于服務(wù)器的消息隊(duì)列稱為通知隊(duì)列。我們將發(fā)送消息的移動(dòng)主機(jī)稱為生產(chǎn)者客戶,接收消息的移動(dòng)主機(jī)稱為消費(fèi)者客戶。生產(chǎn)者客戶產(chǎn)生的消息緩存在消息隊(duì)列中,如果網(wǎng)絡(luò)連接正常,消息出隊(duì)發(fā)送到服務(wù)器。服務(wù)器接收來(lái)自生產(chǎn)者客戶的消息,并將其緩存在通知隊(duì)列中,如果消費(fèi)者客戶與服務(wù)器連接正常,消息從通知隊(duì)列中出隊(duì),發(fā)往消費(fèi)者客戶端。
服務(wù)器端接收來(lái)自客戶端的消息,經(jīng)過(guò)數(shù)據(jù)處理以后放入相應(yīng)的通知隊(duì)列,準(zhǔn)備分發(fā)消息之前先判斷所有的協(xié)作者是否能夠順利的收到消息,如果發(fā)現(xiàn)有協(xié)作者與網(wǎng)絡(luò)斷接,消息會(huì)被重新送入通知隊(duì)列,然后將其發(fā)送出去。
由于無(wú)線網(wǎng)絡(luò)的不穩(wěn)定性和斷接性,使得客戶端不一定能夠收到完整的一條或多條消息,這就需要客戶端進(jìn)行消息的整合和解析。客戶端從網(wǎng)絡(luò)中以字節(jié)流的方式接收消息并存儲(chǔ)在一個(gè)字節(jié)數(shù)組中等待處理,我們假設(shè)一條數(shù)據(jù)處理完畢后,緊接著的第二條數(shù)據(jù)經(jīng)過(guò)判斷已經(jīng)不符合處理規(guī)則,就將這條數(shù)據(jù)暫時(shí)存放在數(shù)據(jù)緩沖區(qū)中,等待下一條數(shù)據(jù)的到來(lái),我們將接收到的新數(shù)據(jù)與緩沖區(qū)中的舊數(shù)據(jù)整合在一起,再一次判斷是否符合處理規(guī)則,如果不符合,他們將繼續(xù)被保存在數(shù)據(jù)緩存區(qū)中,直到符合為止。
數(shù)據(jù)解析就是將數(shù)據(jù)分別提取出來(lái),判斷一條數(shù)據(jù)是否符合處理規(guī)則以及是否讀取完畢。 它和數(shù)據(jù)整合部分結(jié)合起來(lái)完成了用戶的數(shù)據(jù)處理請(qǐng)求。
消息的分發(fā)方法主要從兩個(gè)方面考慮:減小數(shù)據(jù)在網(wǎng)絡(luò)傳輸過(guò)程中的大小和設(shè)計(jì)合理的通信方式以減少客戶端接收數(shù)據(jù)時(shí)的延時(shí)。
減小數(shù)據(jù)在網(wǎng)絡(luò)傳輸過(guò)程中的大小,通常采用無(wú)失真冗余度壓縮算法,其中較為常用的有動(dòng)態(tài)Huffman算法及LZW壓縮算法以及Zip壓縮算法[10]。以Zip壓縮算法為例進(jìn)行測(cè)試,實(shí)驗(yàn)發(fā)現(xiàn)壓縮一條消息需要0.031 25 s,解壓一條消息需要0.032 1 s,隨著消息數(shù)量的增加,壓縮和解壓消息的時(shí)間會(huì)逐漸增長(zhǎng)。因此,無(wú)論采取何種壓縮方法,壓縮和解壓都要占用一定時(shí)間,雖然消息在網(wǎng)絡(luò)中的傳送時(shí)間減少,但是從客戶端發(fā)送消息到收到消息的響應(yīng)時(shí)間卻增長(zhǎng)了。
針對(duì)數(shù)據(jù)壓縮方法存在的問(wèn)題,通過(guò)分析感知消息的結(jié)構(gòu),可以發(fā)現(xiàn)其由動(dòng)態(tài)和靜態(tài)兩部分組成。因此,為了減小網(wǎng)絡(luò)中傳輸?shù)南⒋笮?,將消息的靜態(tài)部分存儲(chǔ)在消息存儲(chǔ)器中,避免了冗余信息在網(wǎng)絡(luò)中重復(fù)傳送[7,11]。消息分發(fā)結(jié)構(gòu)如圖2所示。
在技術(shù)實(shí)現(xiàn)中,使用普通的text作為消息存儲(chǔ)器來(lái)存儲(chǔ)消息的靜態(tài)部分,原因是text文檔存取速度快,節(jié)省訪問(wèn)時(shí)間。每一個(gè)客戶端都有一個(gè)消息存儲(chǔ)器,消息從消息隊(duì)列出隊(duì),客戶發(fā)送消息之前,首先判斷消息的靜態(tài)部分是否已經(jīng)發(fā)送過(guò),從text中讀出的消息都是以流的形式存在,對(duì)信息存儲(chǔ)器初始化以后的格式為“flag 00 length sender ”,所以標(biāo)記位的值在字段flag和字段length之間的位置。讀取標(biāo)記位的值和消息攜帶的標(biāo)記號(hào)flag進(jìn)行比較,如果匹配,則表明該客戶是非首次發(fā)送消息,這時(shí)我們僅向服務(wù)器端發(fā)送消息的動(dòng)態(tài)部分及標(biāo)記號(hào)。
圖2 基于能耗的感知消息分發(fā)結(jié)構(gòu)圖
如果不匹配,則表明該客戶端是首次發(fā)送消息,這時(shí)我們將message.flag, message.length,message.sender存入消息存儲(chǔ)器,然后向網(wǎng)絡(luò)中發(fā)送完整的消息。
客戶端接收到消息后,先檢查消息存儲(chǔ)器中是否有匹配項(xiàng),如果有,直接從消息存儲(chǔ)器中取出sender和length進(jìn)行解析,最后根據(jù)length的值得到消息的body。如果沒(méi)有就按照普通的方式進(jìn)行數(shù)據(jù)的整合與解析,同時(shí)將message.flag,message.length和message.sender存入消息存儲(chǔ)器。
實(shí)現(xiàn)步驟如下:
(1)客戶端向服務(wù)器端發(fā)送信息前訪問(wèn)消息存儲(chǔ)器,判斷消息存儲(chǔ)器中是否有與消息本身攜帶的標(biāo)志匹配的項(xiàng);
(2)如果有,僅發(fā)送消息的動(dòng)態(tài)部分;
(3)如果沒(méi)有,將消息的標(biāo)志及靜態(tài)部分一起存入消息存儲(chǔ)器中,然后發(fā)送完整的消息;
(4)服務(wù)器收到消息,判斷消息攜帶的標(biāo)志是否與消息存儲(chǔ)器中的標(biāo)志相一致;
(5)如果一致,將消息的動(dòng)態(tài)部分發(fā)送出去;
(6)如果不一致,在消息存儲(chǔ)器中存儲(chǔ)消息標(biāo)志及靜態(tài)部分,發(fā)送完整的消息;
(7)客戶端收到消息以后分為兩種情況,如果客戶端收到的是自己發(fā)出的消息,則不予處理;如果收到的是來(lái)自其他客戶端的消息,先判斷消息本身攜帶的標(biāo)志是否與消息存儲(chǔ)器中一致;
(8)如果一致,從消息存儲(chǔ)器中拿出靜態(tài)部分進(jìn)行解析,接著解析動(dòng)態(tài)部分;
(9)如果不一致,對(duì)整條消息進(jìn)行解析,然后將靜態(tài)部分存入到消息存儲(chǔ)器中。
移動(dòng)CSCW中的感知支持協(xié)議必須獲得能量消耗和通知時(shí)間之間的平衡,因?yàn)橥▓?bào)消息所需的時(shí)間越少,能量消耗就會(huì)越低。另一方面,如果客戶端為了刷新他們的感知信息頻繁的轉(zhuǎn)換到活動(dòng)模式,這樣雖然可以更快的接收信息,但卻消耗了更多的能量。
廣播通信很有可能導(dǎo)致用戶的中斷(當(dāng)信息傳遞給對(duì)它沒(méi)有興趣的用戶時(shí),將會(huì)干擾這些用戶的注意力,強(qiáng)迫他們?nèi)ズ献?,因此我們采用多點(diǎn)傳送的方式通告感知信息。這種方式將需要接收組播數(shù)據(jù)的所有用戶加入到一個(gè)多播組中,設(shè)定客戶端監(jiān)聽(tīng)組播的端口。服務(wù)器端接收到的來(lái)自客戶端的一條消息(稱為一個(gè)數(shù)據(jù)項(xiàng)),這些數(shù)據(jù)項(xiàng)按照簡(jiǎn)單的先來(lái)后到的順序在通知隊(duì)列中連成串,然后依次被服務(wù)器組播出去,如果有客戶端沒(méi)有收到消息,消息將再次入隊(duì),等待下一次組播。這種方式可以較好地解決單播和廣播方式存在的問(wèn)題。
實(shí)驗(yàn)主要針對(duì)感知消息傳遞中分別采用組播和單播循環(huán)方式、消息存儲(chǔ)機(jī)制和壓縮方法的性能進(jìn)行比較,對(duì)這些方法進(jìn)行評(píng)價(jià)。
圖3中每條消息的大小為248B,可以看出,要傳輸?shù)男畔⑤^少時(shí),組播與單播循環(huán)下消息的響應(yīng)時(shí)間是非常接近的。隨著信息量的增加,組播方式下消息的響應(yīng)時(shí)間明顯少于單播循環(huán)下消息的響應(yīng)時(shí)間,傳輸效率得到顯著提高。
圖3 組播方式與單播循環(huán)方式的比較
從圖4中可以看出,在信息量較少時(shí),使用Zip壓縮方法改變消息的大小和使用消息存儲(chǔ)機(jī)制改變消息大小所產(chǎn)生的結(jié)果相近,但是信息量增加,壓縮和解壓的時(shí)間就會(huì)增長(zhǎng),從客戶產(chǎn)生消息到客戶接收消息的響應(yīng)時(shí)間增加的很快,而使用消息存儲(chǔ)機(jī)制,消息的響應(yīng)時(shí)間增加幅度比之較小。因此,消息存儲(chǔ)機(jī)制要優(yōu)于Zip壓縮。
圖5中對(duì)本文涉及的方法進(jìn)行了綜合比較,每條消息的大小為248B,消息在網(wǎng)絡(luò)中的傳輸數(shù)量取48、138、670和1524條。Normal表示使用單播循環(huán)方式,不對(duì)消息作任何處理的情況;Multicast表示使用組播方式,不對(duì)消息作任何處理的情況;Mess-Store表示采用組播的通信方式,同時(shí)采用基于消息存儲(chǔ)器的消息處理方法的情況,從圖中可以明顯的看到,綜合使用兩種方法后,更加優(yōu)化了消息的響應(yīng)時(shí)間。
圖4 Zip壓縮和消息存儲(chǔ)機(jī)制的對(duì)比
圖5 綜合比較
本文介紹了一種基于能耗的移動(dòng)協(xié)同感知模型,分析了感知消息大小與能量消耗之間的關(guān)系,然后重點(diǎn)介紹了采用消息隊(duì)列機(jī)制收集感知信息,在網(wǎng)絡(luò)斷接的情況下在隊(duì)列中緩沖消息,連接恢復(fù)時(shí)發(fā)送消息以及從節(jié)省能耗角度出發(fā),采用上下文存儲(chǔ)機(jī)制減小網(wǎng)絡(luò)中傳輸?shù)母兄⒋笮?,減小響應(yīng)時(shí)間,達(dá)到減少能耗的目的等關(guān)鍵技術(shù)的實(shí)現(xiàn)方法。下一步的工作主要集中在針對(duì)移動(dòng)用戶的帶寬動(dòng)態(tài)分配和采用數(shù)據(jù)廣播技術(shù)進(jìn)一步降低能耗等方面。
參考文獻(xiàn):
[1] LUFF P, HEATH C. Mobility in Collaboration[C]//Proceedings of the 1998 ACM Conference on Computer Supported Cooperative Work. Seattle, Washington, USA, 1998:305-314.
[2] WIBERG M, GRONLUND A. Exploring mobile CSCW:Five areas of question for further research[C]// IRIS23, Sweden, 2000.
[3] ROUSSEV V, PRIEGO G P, RICHARD G G. Touchsync: lightweight synchronization for Ad-Hoc mobile collaboration[C]//Collaborative Technologies and Systems, 2006: 181-188.
[4] OHARA P M, SELLEN K, BROWN A, et al.Dealing with mobility understanding access anytime, anywhere[J]. ACM Transactions on Computer Human Interaction,2001, 8(4): 323-347
[5] RODRíGUEZ PERALTA L M, GONCALVES S. A M. A model-based awareness tool for synchronous collaborative sessions[C]// Proceedings of the 15th International Conference on Computing (CIC′06), Mexico City, USA, November 2006: 347-354.
[6] BORDETSKY ALEX, HUTCHINS S G, KEMPLE W G. Network awareness for wireless peer-to-peer collaborative environments[C]//Proceedings of the 37th Hawaii International Conference on System Sciences,2004:89-99
[7] PAPADOPOULOS C. Improving awareness in mobile CSCW[J]. IEEE Transactions on Mobile Computing, 2006,5(10):1331-1346.
[8] MARSIC I. Adaptive collaboration for wired and wireless platforms[J]. IEEE Internet Computing,2001,5(4):26-35.
[9] WIBERG M. Knowledge management in mobile CSCW:Evaluation results of a mobile physical/virtual meeting support system[C]//Proceedings of the 34th Hawaii International Conference on System Sciences,2001:11-13.
[10] NIKITAS M. Improve XML Web Services' Performance by Compressing SOAP[EB/OL]. http: //www.dotnetjun ies.com/Article/46630AE2-1C79-4D5F-827E-6C2857FF1D23.dcik, 2003.
[11] GANESAN P, OUCH K A. Context awareness in ad-hoc communication[C]// Proceedings of IEEE Pacific Rim Conference on Communications, Computers and Signal Processing,February,2003:28-30.
中山大學(xué)學(xué)報(bào)(自然科學(xué)版)(中英文)2009年1期