廖斌
摘要:協(xié)同圖形編輯是協(xié)同設(shè)計(jì)的一個(gè)重要研究方向,支持自然和諧的多用戶并發(fā)交互是協(xié)同圖形編輯的重點(diǎn)內(nèi)容之一。對(duì)協(xié)同圖形編輯系統(tǒng)的進(jìn)行了設(shè)計(jì),提出了相應(yīng)的解決方案和技術(shù)措施。最后在Socket的基礎(chǔ)上,給出一個(gè)協(xié)同圖形編輯系統(tǒng)實(shí)例的初步探索。
關(guān)鍵詞:計(jì)算機(jī)支持的協(xié)同工作;Socket;交互;鎖機(jī)制;圖形編輯
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)26-6076-02
Abstract: An idea collaborative design system for graph object should be high responsiveness, high concurrency, low network traffic and easy natural human-human interaction for the participants. To achieve these goals, a general framework of collaborative design system is analyzed at first. Secondly, several key issues hierarchically integrated in this framework are studied. The issues include consistency retain, concurrency control etc. Finally,the system is principium realized based on Socket.
Key words: CSCW; Socket; interaction; lock; graph editing
實(shí)時(shí)協(xié)同編輯系統(tǒng)支持不同地域的多個(gè)協(xié)作人員通過(guò)網(wǎng)絡(luò)連接同步或者異步地瀏覽和編輯文檔[1-3]。圖形編輯系統(tǒng)處理圖形文檔,諸如線、框或者任意手繪圖形。協(xié)同環(huán)境下的用戶希望協(xié)同編輯系統(tǒng)及時(shí)響應(yīng)用戶的操作請(qǐng)求。設(shè)計(jì)實(shí)時(shí)協(xié)同編輯系統(tǒng)的首先一個(gè)問題就是根據(jù)所要支持的協(xié)作的性質(zhì)、系統(tǒng)賴以運(yùn)行的軟、硬件環(huán)境等因素選擇一種合適的體系結(jié)構(gòu)。各體系結(jié)構(gòu)有其優(yōu)缺點(diǎn),所適用的場(chǎng)合也不同。此外,由于網(wǎng)絡(luò)延時(shí)的不準(zhǔn)確性,難以保證消息按照發(fā)送的先后順序到達(dá)每一個(gè)結(jié)點(diǎn),這些不同順序的操作如果不加限制就施加于各個(gè)數(shù)據(jù)復(fù)本上,必然導(dǎo)致操作結(jié)果的不一致[4-6]?;谝陨戏治觯撐脑O(shè)計(jì)和實(shí)現(xiàn)了一個(gè)面向圖形對(duì)象的協(xié)同設(shè)計(jì)系統(tǒng)。
1 系統(tǒng)設(shè)計(jì)
由于在CSCW系統(tǒng)中允許多個(gè)編輯者對(duì)同一部分進(jìn)行編輯,那么就可能出現(xiàn)不一致性的問題。為此,在CSCW的圖形編輯系統(tǒng)中,設(shè)定了共享對(duì)象。而在共享對(duì)象的管理問題上主要采取了分散和集中相結(jié)合的管理方式,即在服務(wù)器上保存共享對(duì)象,各個(gè)協(xié)作編輯成員的站點(diǎn)機(jī)上都有共享對(duì)象的副本。協(xié)作編輯成員可以將對(duì)共享對(duì)象的操縱命令送向服務(wù)器,由服務(wù)器將編輯結(jié)果廣播給各個(gè)協(xié)作編輯成員,也可以直接對(duì)共享對(duì)象的副本進(jìn)行操作,再將結(jié)果向各個(gè)協(xié)作成員進(jìn)行廣播。利用這樣的集中-分散的方式既可以縮短響應(yīng)時(shí)間又便于保證信息的一致性。
出于設(shè)計(jì)的簡(jiǎn)便性和實(shí)用性的考慮,本系統(tǒng)采用了鎖機(jī)制來(lái)實(shí)現(xiàn)共享對(duì)象的并發(fā)控制。所謂的鎖機(jī)制就是指當(dāng)一個(gè)用戶訪問共享對(duì)象時(shí)首先要先封鎖它,即先獲得鎖,協(xié)作成員不能同時(shí)獲得沖突的鎖。對(duì)共享對(duì)象的操作完成以后,要為被它封鎖的對(duì)象解鎖。但是在封鎖機(jī)制中封鎖粒度的選擇尤其重要。封鎖粒度的選擇不僅要考慮并發(fā)性也要考慮系統(tǒng)的開銷。因此共享對(duì)象協(xié)作操縱系統(tǒng)必須選擇一個(gè)合適的封鎖粒度,本系統(tǒng)是以行作為封鎖粒度,利用行加鎖來(lái)進(jìn)行各種協(xié)同編輯操作。
當(dāng)通信程序由集中式結(jié)構(gòu)轉(zhuǎn)變?yōu)槿珡?fù)制結(jié)構(gòu)時(shí),主要應(yīng)解決對(duì)等站點(diǎn)服務(wù)器與客戶進(jìn)程沖突的問題,避免死鎖的產(chǎn)生。這里采用的算法的主要思想是:程序初始化運(yùn)行客戶端進(jìn)程并處于監(jiān)聽狀態(tài),當(dāng)網(wǎng)絡(luò)中有進(jìn)程向其發(fā)出連接請(qǐng)求時(shí)程序就調(diào)用服務(wù)器進(jìn)程,以服務(wù)器形式運(yùn)行。
當(dāng)程序由集中式結(jié)構(gòu)兩個(gè)站點(diǎn)的協(xié)同編輯擴(kuò)展到多個(gè)站點(diǎn)時(shí),又有新的問題出現(xiàn),那就是兩個(gè)站點(diǎn)可以直接通信,但是多點(diǎn)間的數(shù)據(jù)傳輸就不是簡(jiǎn)單就可以實(shí)現(xiàn)的。首先考慮的是數(shù)據(jù)轉(zhuǎn)發(fā)機(jī)制既由服務(wù)器進(jìn)程將數(shù)據(jù)轉(zhuǎn)發(fā)給請(qǐng)求連接的客戶端進(jìn)程,該方法較輕松的實(shí)現(xiàn)了三個(gè)站點(diǎn)間的協(xié)同數(shù)據(jù)編輯,但是當(dāng)站點(diǎn)數(shù)目增加時(shí),因?yàn)榇罅繑?shù)據(jù)的傳送,該方法增加了服務(wù)器進(jìn)程的負(fù)擔(dān),同時(shí)由于轉(zhuǎn)發(fā)機(jī)制的不確定性,可能會(huì)造成網(wǎng)上環(huán)狀數(shù)據(jù)循環(huán)傳輸對(duì)網(wǎng)絡(luò)資源也有較大的消耗,協(xié)同的實(shí)時(shí)性也難以保證,因此需要新的算法思想來(lái)解決這一問題。該文嘗試了建立動(dòng)態(tài)路由表的思路,動(dòng)態(tài)路由表的建立,使數(shù)據(jù)傳輸具有明確的方向性,切實(shí)解決了網(wǎng)上循環(huán)數(shù)據(jù)傳輸?shù)膯栴},協(xié)同編輯的實(shí)時(shí)性得到了一定程度的提高。
對(duì)于由協(xié)同數(shù)據(jù)編輯改進(jìn)到協(xié)同圖形編輯主要思路是將傳輸?shù)臄?shù)據(jù)改為傳輸圖像編輯數(shù)據(jù)的數(shù)組pen[2],其中pen[0]記錄的是畫筆的寬度,pen[1]及pen[2]分別記錄了畫筆中心的到達(dá)的橫坐標(biāo)與縱坐標(biāo),接收端接收到pen,則調(diào)用paint(l,x,y)函數(shù)執(zhí)行繪圖命令。變量l由pen[0]賦值,代表畫筆的寬度,x、y,由pen[1]及pen[2]賦值,分別代表畫筆目的地的橫縱坐標(biāo),并將執(zhí)行繪制的數(shù)據(jù)以數(shù)組pen的方式發(fā)送出,以次來(lái)實(shí)現(xiàn)協(xié)同圖形編輯。
2 系統(tǒng)實(shí)現(xiàn)
3 結(jié)論
本文介紹了在全復(fù)制結(jié)構(gòu)的網(wǎng)絡(luò)通信基礎(chǔ)上開發(fā)出協(xié)同圖形編輯界面,實(shí)現(xiàn)交互功能,初步實(shí)現(xiàn)全復(fù)制結(jié)構(gòu)下協(xié)同圖形編輯的原型系統(tǒng)。但是,在本文工作中還有許多不足,如沒有解決在數(shù)據(jù)傳輸過(guò)程服務(wù)器進(jìn)程負(fù)擔(dān)較大的問題,一致性維護(hù)與并發(fā)控制的協(xié)調(diào)問題(三號(hào)演示機(jī)在協(xié)同編輯中出現(xiàn)一定誤差)。今后,將沿著該思路進(jìn)行下去,對(duì)上述問題進(jìn)行更深入的探索,并逐步擴(kuò)展到對(duì)三維數(shù)字化協(xié)同設(shè)計(jì)進(jìn)行研究。 參考文獻(xiàn):
[1] Ellis C A,Gibbs S J.Concurrency control in groupware systems[C]//Proc. ACM Int. Conf. on Management of Data (SIGMOD89),Seattle,May 1989:399?407.
[2] 馮鍵,林宗楷.協(xié)同編輯系統(tǒng)CoEditor的人-人交互界面研究[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),1999, 11(3):225-227.
[3] 楊光信,史美林.全復(fù)制結(jié)構(gòu)下基于對(duì)象數(shù)據(jù)模型的并發(fā)控制[J].計(jì)算機(jī)學(xué)報(bào),2000,2(2):113-125.
[4] The Sixth International Workshop on Collaborative Editing Systems[EB/OL].http://cocasoft.csdl.tamu.edu/~lidu/iwces6.
[5] Sun C,Ellis C S.Operational transformation in real-time group editors: issues,algorithms,and achievements[C]//Proc. ACM Int. Conf. on Computer Supported Cooperative Work (CSCW98). Seattle,November 1998:59-68.
[6] Vidot N,Cart M,F(xiàn)errié J,et al.Copies convergence in a distributed real-time collaborative environment[C]//Proc. ACM Int. Conf. on Computer Supported Cooperative Work (CSCW00). Philadelphia,December 2000:171-180.