專利名稱:基于互聯(lián)網(wǎng)的協(xié)作繪圖方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計(jì)算機(jī)支持的協(xié)同工作(CSCW)的技術(shù)領(lǐng)域,尤指一種用于協(xié)同地理信息系統(tǒng)、協(xié)同交通、協(xié)同建筑和協(xié)同醫(yī)學(xué)等新的協(xié)同應(yīng)用環(huán)境,用于在互聯(lián)網(wǎng)Internet環(huán)境下多用戶的協(xié)作繪制圖形的基于互聯(lián)網(wǎng)的協(xié)作繪圖裝置及協(xié)作繪圖方法。
背景技術(shù):
計(jì)算機(jī)支持的協(xié)同工作CSCW(Computer Supported CooperativeWork)在會(huì)議系統(tǒng)、地理信息系統(tǒng)、交通、建筑和醫(yī)學(xué)的廣泛應(yīng)用,產(chǎn)生了遠(yuǎn)程電子會(huì)議系統(tǒng)、協(xié)同地理信息系統(tǒng)、協(xié)同交通、協(xié)同建筑和協(xié)同醫(yī)學(xué)等新的協(xié)同應(yīng)用環(huán)境。這些應(yīng)用環(huán)境都需要在互聯(lián)網(wǎng)Internet環(huán)境上進(jìn)行協(xié)同繪制圖形,每個(gè)終端繪制圖形要在其他終端及時(shí)反映,并且允許多人同時(shí)繪制多個(gè)圖形和多人同時(shí)修改同一圖形。要在其他終端及時(shí)反映本地繪制情況,可以通過傳遞鼠標(biāo)鍵盤消息到遠(yuǎn)地終端模擬出來,但是這種方法會(huì)造成數(shù)據(jù)傳輸量大,有效數(shù)據(jù)傳輸效率低下,如果采取傳輸圖形對(duì)象,對(duì)于大圖形對(duì)象又會(huì)造成遠(yuǎn)端響應(yīng)速度慢;此外,在協(xié)作環(huán)境下,在并發(fā)控制方面,采用傳統(tǒng)的加鎖控制策略不能達(dá)到很好的協(xié)作效果,因?yàn)閷?duì)于同一加鎖區(qū)域或?qū)ο笸瑫r(shí)只允許一個(gè)用戶操作。那么如何提高有效數(shù)據(jù)傳輸率和減少圖形繪制在遠(yuǎn)端的響應(yīng)時(shí)間,并且實(shí)現(xiàn)比較好的協(xié)同繪制圖形成了一個(gè)迫在眉睫的問題。
發(fā)明內(nèi)容
為了克服上述不足之處,本發(fā)明的主要目的旨在提供一種繪圖結(jié)果可在本地顯示,封裝成數(shù)據(jù)包發(fā)送到服務(wù)器實(shí)現(xiàn)同步整合,服務(wù)器端對(duì)收到的操作數(shù)據(jù)包進(jìn)行操作沖突檢測和操作轉(zhuǎn)換,并保證系統(tǒng)的響應(yīng)速度和數(shù)據(jù)的安全性的基于互聯(lián)網(wǎng)的協(xié)作繪圖方法。
本發(fā)明要解決的技術(shù)問題是要解決互聯(lián)網(wǎng)Internet環(huán)境下多用戶的協(xié)作繪圖問題;要解決如何通過沖突檢測和操作轉(zhuǎn)換保持各客戶端視圖的一致性問題;要解決如何保證系統(tǒng)的響應(yīng)速度和數(shù)據(jù)的安全性問題;要解決客戶端與服務(wù)器端的數(shù)據(jù)通信中有關(guān)壓縮并加密問題;要解決有關(guān)高響應(yīng)、數(shù)據(jù)傳輸效率高、協(xié)作性好、安全性好等技術(shù)問題。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是本發(fā)明的裝置由繪圖輸入、繪圖輸出、處理器、協(xié)作服務(wù)器及互聯(lián)網(wǎng)等硬件環(huán)境組成,其協(xié)作繪圖的客戶端A包括繪圖輸入、繪圖輸出、處理器及網(wǎng)絡(luò)接入設(shè)備模塊等組件構(gòu)成;協(xié)作繪圖的客戶端B包括繪圖輸入、繪圖輸出、處理器及網(wǎng)絡(luò)接入設(shè)備模塊等組件構(gòu)成;互聯(lián)網(wǎng)包括協(xié)作服務(wù)器及網(wǎng)絡(luò)接入設(shè)備模塊等組件構(gòu)成;協(xié)作繪圖的客戶端A與客戶端B之間有互聯(lián)網(wǎng)進(jìn)行通訊聯(lián)系。
所述的基于互聯(lián)網(wǎng)的協(xié)作繪圖裝置的客戶端A和客戶端B的繪圖輸入的輸出端分別與繪圖輸出和處理器的輸入端相連接,處理器與網(wǎng)絡(luò)接入設(shè)備之間有雙向輸入、輸出線相連接,網(wǎng)絡(luò)接入設(shè)備與互聯(lián)網(wǎng)之間有雙向輸入、輸出線相連接,處理器的輸出端與繪圖輸出的輸入端相連接;所述的互聯(lián)網(wǎng)與網(wǎng)絡(luò)接入設(shè)備之間有雙向輸入、輸出線相連接,網(wǎng)絡(luò)接入設(shè)備與協(xié)作服務(wù)器之間有雙向輸入、輸出線相連接。
所述的基于互聯(lián)網(wǎng)的協(xié)作繪圖裝置的繪圖輸入或?yàn)槭謱懤L圖板或?yàn)槔L圖儀或?yàn)橛|摸屏等;所述的繪圖輸出或?yàn)轱@示器或?yàn)橥队皟x等;所述的處理器或?yàn)镻C機(jī)或?yàn)檎粕想娔XPDA等;所述的協(xié)作服務(wù)器或?yàn)閷iT服務(wù)器或?yàn)镻C機(jī)等;所述的網(wǎng)絡(luò)接入設(shè)備或?yàn)榫W(wǎng)卡或?yàn)檎{(diào)制解調(diào)器等。
一種基于互聯(lián)網(wǎng)的協(xié)作繪圖方法,該方法是互聯(lián)網(wǎng)環(huán)境下多用戶的協(xié)作繪圖,其通過繪制和編輯兩部分完成;通過沖突檢測和操作轉(zhuǎn)換,完成封裝的數(shù)據(jù)包發(fā)送到服務(wù)器,實(shí)現(xiàn)同步整合;通過客戶端與服務(wù)器端的數(shù)據(jù)通信,采取了壓縮并加密的方式,并在繪圖結(jié)束前將已繪部分形成一個(gè)圖形對(duì)象分片發(fā)送出去,實(shí)現(xiàn)系統(tǒng)的響應(yīng)速度和數(shù)據(jù)的安全性;其具體工作步驟是a)、繪制圖形、發(fā)送和圖形構(gòu)建客戶端A在繪圖輸入設(shè)備上繪制圖形,在本地繪圖輸出設(shè)備上顯示繪制臨時(shí)效果,然后把繪制圖形發(fā)送到處理器,進(jìn)行操作消息打包、圖形對(duì)象構(gòu)建、圖形分片、圖形壓縮和加密,然后再通過網(wǎng)絡(luò)接入設(shè)備把處理后的數(shù)據(jù)發(fā)送到互聯(lián)網(wǎng);b)、解包、解密、解壓和再發(fā)送協(xié)作服務(wù)器通過網(wǎng)絡(luò)接入設(shè)備獲得客戶端的數(shù)據(jù),進(jìn)行解包、解密和解壓,獲得此客戶的操作類型和參數(shù),與來自其它客戶端操作,進(jìn)行操作沖突檢測和處理,處理后再打包、壓縮和加密,再發(fā)送到互聯(lián)網(wǎng);c)、客戶端B的解包、解壓和解密客戶端B的處理器通過網(wǎng)絡(luò)接入設(shè)備收到協(xié)作服務(wù)器發(fā)來數(shù)據(jù),進(jìn)行解包、解壓和解密,獲得客戶端A的繪圖操作類型和參數(shù),在自己的繪圖輸出設(shè)備上繪制出來;d)、客戶端A的解包、解壓和解密客戶端A的處理器通過網(wǎng)絡(luò)接入設(shè)備收到協(xié)作服務(wù)器發(fā)來數(shù)據(jù),進(jìn)行解包、解壓和解密,發(fā)現(xiàn)是自己產(chǎn)生的繪圖操作,清除在繪圖輸出設(shè)備上的臨時(shí)繪制效果,根據(jù)同步處理后的繪圖操作和參數(shù),在繪圖輸出設(shè)備上重新繪制圖形;所述的基于互聯(lián)網(wǎng)的協(xié)作繪圖方法的繪制和編輯方法的具體工作步驟是步驟1.捕捉鼠標(biāo)消息步驟2.本地跟蹤鼠標(biāo)位置立即繪圖若捕獲的是繪圖消息,本地跟蹤鼠標(biāo)位置立即繪圖,在一圖形繪制完成前實(shí)現(xiàn)動(dòng)態(tài)拖曳繪圖,其為一個(gè)臨時(shí)的視圖;步驟3.構(gòu)建圖形對(duì)象或圖形對(duì)象分片當(dāng)收到繪圖結(jié)束消息時(shí),根據(jù)保存的鼠標(biāo)位置信息,以及當(dāng)前所選畫筆、畫刷信息構(gòu)造圖形對(duì)象,并把當(dāng)前用戶ID作為屬性填入對(duì)象中,以區(qū)分不同用戶創(chuàng)建的圖形;當(dāng)繪制的圖形數(shù)據(jù)量達(dá)到一定大小但是沒有結(jié)束繪圖,則形成一個(gè)圖形對(duì)象分片;步驟4.圖形對(duì)象壓縮加密對(duì)發(fā)送的數(shù)據(jù)進(jìn)行壓縮,同時(shí)對(duì)數(shù)據(jù)進(jìn)行加密;步驟5.選擇圖形對(duì)象根據(jù)保存的鼠標(biāo)位置信息形成一個(gè)選擇范圍,把在范圍內(nèi)的對(duì)象選擇出來;步驟6.選擇編輯操作選擇移動(dòng)、復(fù)制、粘貼、刪除類型的編輯操作,操作的結(jié)果立即在本地終端上顯示出來,并經(jīng)過服務(wù)器同步整合后為最終結(jié)果;步驟7.封裝成操作信息數(shù)據(jù)包,發(fā)送到服務(wù)器把本地產(chǎn)生的操作封裝為操作數(shù)據(jù)包;步驟8.服務(wù)器接收各客戶端的數(shù)據(jù)包,同步處理后轉(zhuǎn)發(fā)到所有客戶端服務(wù)器對(duì)收到的操作數(shù)據(jù)包進(jìn)行解包,并進(jìn)行操作沖突檢測,有沖突,進(jìn)行操作轉(zhuǎn)換,形成新的操作,并對(duì)操作排序,形成新的操作數(shù)據(jù)包,再發(fā)給所有客戶端;步驟9.客戶端接受服務(wù)器轉(zhuǎn)發(fā)的操作數(shù)據(jù)包,按序觸發(fā)相應(yīng)的操作客戶端對(duì)接收到的操作數(shù)據(jù)包進(jìn)行解包,檢查包頭的序號(hào)字段;如果小于該序號(hào)的所有操作已在本地執(zhí)行過,那么根據(jù)操作數(shù)據(jù)包頭信息觸發(fā)相應(yīng)操作;反之,把此操作放入操作緩沖中,等待序號(hào)在此操作之前的所有操作到達(dá)并執(zhí)行后才執(zhí)行;若是編輯操作轉(zhuǎn)構(gòu)建圖形對(duì)象或圖形對(duì)象分片;步驟10.對(duì)圖形數(shù)據(jù)解密解壓縮,重構(gòu)圖形對(duì)象或圖形對(duì)象分片此步驟從操作數(shù)據(jù)包獲取圖形數(shù)據(jù)塊,進(jìn)行解密解壓縮,重新構(gòu)建圖形對(duì)象或圖形對(duì)象分片;步驟11.圖形繪制在客戶端繪制圖形對(duì)象或圖形分片;步驟12.合成圖形對(duì)象分片,保存完整圖形對(duì)象如果添加的是圖形對(duì)象最后一個(gè)分片,那么把圖形對(duì)象所有分片組合為一個(gè)完整的圖形對(duì)象,并且保存到圖形集合中去;步驟13.根據(jù)操作類型,對(duì)指定的圖形對(duì)象執(zhí)行編輯操作從操作數(shù)據(jù)包頭獲得操作類型,啟動(dòng)相應(yīng)操作,并從數(shù)據(jù)包中獲得編輯內(nèi)容作為參數(shù)傳遞相應(yīng)操作。
本方法用于解決Internet環(huán)境下多用戶的協(xié)作繪圖。為了達(dá)到這個(gè)目的,繪圖結(jié)果在本地顯示的同時(shí),還封裝成數(shù)據(jù)包發(fā)送到服務(wù)器實(shí)現(xiàn)同步整合服務(wù)器端對(duì)收到的操作數(shù)據(jù)包進(jìn)行操作沖突檢測,如有沖突,進(jìn)行操作轉(zhuǎn)換,形成新的操作,并對(duì)操作排序,形成新的操作數(shù)據(jù)包,再發(fā)給所有客戶端。通過沖突檢測和操作轉(zhuǎn)換保持了各客戶端視圖的一致性。
同時(shí)考慮到網(wǎng)絡(luò)環(huán)境,作為一種實(shí)時(shí)的應(yīng)用必須保證系統(tǒng)的響應(yīng)速度和數(shù)據(jù)的安全性,基于這兩點(diǎn),首先,客戶端與服務(wù)器端的數(shù)據(jù)通信采取了壓縮并加密的方式。其次,某些圖形的繪制過程可能需要較長時(shí)間且數(shù)據(jù)量大,為了使其它用戶可以實(shí)時(shí)地看到繪制過程,在繪圖結(jié)束前就將已繪部分形成一個(gè)圖形對(duì)象分片發(fā)送出去,而不是等到繪制完成,保證了系統(tǒng)的響應(yīng)速度。
本發(fā)明的有益效果是本發(fā)明的可以在互聯(lián)網(wǎng)Internet環(huán)境下多用戶的協(xié)作繪圖,通過沖突檢測和操作轉(zhuǎn)換保持了各客戶端視圖的一致性,保證了系統(tǒng)的響應(yīng)速度和數(shù)據(jù)的安全性,解決了客戶端與服務(wù)器端的數(shù)據(jù)通信中有關(guān)壓縮并加密等問題;并具有有關(guān)高響應(yīng)、數(shù)據(jù)傳輸效率高、協(xié)作性好、安全性好等特點(diǎn);具體為(1)高響應(yīng)本地操作先在本地立即執(zhí)行后再發(fā)送,保證了本地操作的高響應(yīng);同時(shí)操作沒有結(jié)束,當(dāng)操作數(shù)據(jù)積累到一定閥值時(shí)候,也把操作和操作數(shù)據(jù)發(fā)送出去,保證遠(yuǎn)端的高響應(yīng)。
(2)數(shù)據(jù)傳輸效率高協(xié)作過程中,并非傳遞鼠標(biāo)鍵盤消息,而是傳遞由鼠標(biāo)鍵盤構(gòu)成的操作消息,操作消息包含操作類型和操作數(shù)據(jù)。同時(shí)對(duì)操作數(shù)據(jù)進(jìn)行壓縮,這樣單位數(shù)據(jù)包的有效傳輸數(shù)據(jù)比例大大提高,從而提高了數(shù)據(jù)在網(wǎng)上的傳輸效率。
(3)協(xié)作性好由于并發(fā)算法不是基于封鎖機(jī)制,而采用是沖突檢測處理機(jī)制,基于這樣的并發(fā)控制既可以實(shí)現(xiàn)多人同時(shí)繪制多個(gè)圖形,也可以實(shí)現(xiàn)多人同時(shí)修改一個(gè)圖形。
(4)安全性好對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行了加密,保證數(shù)據(jù)在傳輸過程安全性。
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說明。
附圖1是本發(fā)明總體結(jié)構(gòu)的硬件環(huán)境方框圖;附圖2是本發(fā)明協(xié)作繪圖方法的流程圖;附圖中標(biāo)號(hào)說明1—客戶端A;2—客戶端B;3—繪圖輸入;4—繪圖輸出;5—處理器;6—網(wǎng)絡(luò)接入設(shè)備;7—互聯(lián)網(wǎng);8—協(xié)作服務(wù)器;9—繪制;10—編輯;11—捕捉鼠標(biāo)消息;12—本地跟蹤鼠標(biāo)位置立即繪圖;13—構(gòu)造圖形對(duì)象或圖形對(duì)象分片;14—圖形對(duì)象壓縮加密;15—選擇圖形對(duì)象;16—選擇編輯操作;17—封裝成操作信息數(shù)據(jù)包,發(fā)送到服務(wù)器;18—服務(wù)器接收各客戶端的數(shù)據(jù)包,同步處理后轉(zhuǎn)發(fā)到所有客戶端;19—客戶端接受服務(wù)器轉(zhuǎn)發(fā)的操作數(shù)據(jù)包,按序觸發(fā)相應(yīng)的操作;
20—對(duì)圖形數(shù)據(jù)解密解壓縮,重構(gòu)圖形對(duì)象或圖形對(duì)象分片;21—圖形繪制;22—合成圖形對(duì)象分片,保存完整圖形對(duì)象;23—根據(jù)操作類型,對(duì)指定的圖形對(duì)象執(zhí)行編輯操作;具體實(shí)施方式
請(qǐng)參閱附圖1所示,本發(fā)明的裝置由繪圖輸入、繪圖輸出、處理器、協(xié)作服務(wù)器及互聯(lián)網(wǎng)等硬件環(huán)境組成,其協(xié)作繪圖的客戶端A(1)包括繪圖輸入(3)、繪圖輸出(4)、處理器(5)及網(wǎng)絡(luò)接入設(shè)備(6)模塊等組件構(gòu)成;其協(xié)作繪圖的客戶端B(2)包括繪圖輸入(3)、繪圖輸出(4)、處理器(5)及網(wǎng)絡(luò)接入設(shè)備(6)模塊等組件構(gòu)成;互聯(lián)網(wǎng)(7)包括協(xié)作服務(wù)器(8)及網(wǎng)絡(luò)接入設(shè)備(6)模塊等組件構(gòu)成;協(xié)作繪圖的客戶端A(1)與客戶端B(2)之間有互聯(lián)網(wǎng)(7)進(jìn)行通訊聯(lián)系。
所述的基于互聯(lián)網(wǎng)的協(xié)作繪圖裝置的客戶端A(1)和客戶端B(2)的繪圖輸入(3)的輸出端分別與繪圖輸出(4)和處理器(5)的輸入端相連接,處理器(5)與網(wǎng)絡(luò)接入設(shè)備(6)之間有雙向輸入、輸出線相連接,網(wǎng)絡(luò)接入設(shè)備(6)與互聯(lián)網(wǎng)(7)之間有雙向輸入、輸出線相連接,處理器(5)的輸出端與繪圖輸出(4)的輸入端相連接;所述的互聯(lián)網(wǎng)(7)與網(wǎng)絡(luò)接入設(shè)備(6)之間有雙向輸入、輸出線相連接,網(wǎng)絡(luò)接入設(shè)備(6)與協(xié)作服務(wù)器(8)之間有雙向輸入、輸出線相連接。
所述的基于互聯(lián)網(wǎng)的協(xié)作繪圖裝置的繪圖輸入(3)指圖形輸入設(shè)備,如手寫繪圖板或?yàn)槔L圖儀或?yàn)橛|摸屏等;
所述的繪圖輸出(4)指本地或遠(yuǎn)端繪制圖形的顯示設(shè)備,如顯示器或?yàn)橥队皟x等;所述的處理器(5)指具有運(yùn)算能力的終端設(shè)備,如PC機(jī)或?yàn)檎粕想娔XPDA等;所述的協(xié)作服務(wù)器(8)指用來協(xié)作同步各個(gè)客戶端繪圖操作的服務(wù)器,可以有專門服務(wù)器擔(dān)當(dāng),也可以有處理能力較強(qiáng)的PC機(jī)等擔(dān)任;所述的網(wǎng)絡(luò)接入設(shè)備(6)指幫助處理器和協(xié)作服務(wù)器接入互聯(lián)網(wǎng)的設(shè)備,如網(wǎng)卡或?yàn)檎{(diào)制解調(diào)器(Modem)等。
一種基于互聯(lián)網(wǎng)的協(xié)作繪圖方法,該方法是互聯(lián)網(wǎng)環(huán)境下多用戶的協(xié)作繪圖,其特征在于該方法通過繪制(9)和編輯(10)兩部分完成;通過沖突檢測和操作轉(zhuǎn)換,完成封裝的數(shù)據(jù)包發(fā)送到服務(wù)器,實(shí)現(xiàn)同步整合;通過客戶端與服務(wù)器端的數(shù)據(jù)通信,采取了壓縮并加密的方式,并在繪圖結(jié)束前將已繪部分形成一個(gè)圖形對(duì)象分片發(fā)送出去,實(shí)現(xiàn)系統(tǒng)的響應(yīng)速度和數(shù)據(jù)的安全性;其具體工作步驟是a)、繪制圖形、發(fā)送和圖形構(gòu)建客戶端A(1)在繪圖輸入(3)設(shè)備上繪制圖形,在本地繪圖輸出(4)設(shè)備上顯示繪制臨時(shí)效果,然后把繪制圖形發(fā)送到處理器(5),進(jìn)行操作消息打包、圖形對(duì)象構(gòu)建、圖形分片、圖形壓縮和加密,然后再通過網(wǎng)絡(luò)接入設(shè)備(6)把處理后的數(shù)據(jù)發(fā)送到互聯(lián)網(wǎng)(7);b)、解包、解密、解壓和再發(fā)送協(xié)作服務(wù)器(8)通過網(wǎng)絡(luò)接入設(shè)備(6)獲得客戶端的數(shù)據(jù),進(jìn)行解包、解密和解壓,獲得此客戶的操作類型和參數(shù),與來自其它客戶端操作,進(jìn)行操作沖突檢測和處理,處理后再打包、壓縮和加密,再發(fā)送到互聯(lián)網(wǎng)(7);
c)、客戶端B(2)的解包、解壓和解密客戶端B(2)的處理器(5)通過網(wǎng)絡(luò)接入設(shè)備(6)收到協(xié)作服務(wù)器(8)發(fā)來數(shù)據(jù),進(jìn)行解包、解壓和解密,獲得客戶端A(1)的繪圖操作類型和參數(shù),在自己的繪圖輸出(4)設(shè)備上繪制出來;d)、客戶端A(1)的解包、解壓和解密客戶端A(1)的處理器(5)通過網(wǎng)絡(luò)接入設(shè)備(6)收到協(xié)作服務(wù)器(8)發(fā)來數(shù)據(jù),進(jìn)行解包、解壓和解密,發(fā)現(xiàn)是自己產(chǎn)生的繪圖操作,清除在繪圖輸出(4)設(shè)備上的臨時(shí)繪制效果,根據(jù)同步處理后的繪圖操作和參數(shù),在繪圖輸出(4)設(shè)備上重新繪制圖形;所述的基于互聯(lián)網(wǎng)的協(xié)作繪圖方法的繪制(9)和編輯(10)方法的具體工作步驟是步驟1.捕捉鼠標(biāo)消息(11)步驟2.本地跟蹤鼠標(biāo)位置立即繪圖(12)若捕獲的是繪圖消息,本地跟蹤鼠標(biāo)位置立即繪圖,即在某一圖形繪制完成前實(shí)現(xiàn)動(dòng)態(tài)拖曳繪圖,目的是使用戶立即可看到當(dāng)前的繪制效果,但這只是一個(gè)臨時(shí)的視圖。最終形成的圖形對(duì)象是由服務(wù)器同步整合之后得到的;步驟3.構(gòu)造圖形對(duì)象或圖形對(duì)象分片(13)當(dāng)收到繪圖結(jié)束消息時(shí),根據(jù)保存的鼠標(biāo)位置信息,以及當(dāng)前所選畫筆、畫刷信息構(gòu)造圖形對(duì)象,并把當(dāng)前用戶ID作為屬性填入對(duì)象中,以區(qū)分不同用戶創(chuàng)建的圖形;當(dāng)繪制的圖形數(shù)據(jù)量達(dá)到一定大小但是沒有結(jié)束繪圖,則形成一個(gè)圖形對(duì)象分片,這樣目的在于其他客戶端可以實(shí)時(shí)獲得繪制過程,而不是在圖形繪制完畢才獲得繪圖效果;步驟4.圖形對(duì)象壓縮加密(14)
對(duì)發(fā)送的數(shù)據(jù)進(jìn)行壓縮,減少網(wǎng)絡(luò)傳輸量;同時(shí)對(duì)數(shù)據(jù)進(jìn)行加密,保證數(shù)據(jù)的安全性;步驟5.選擇圖形對(duì)象(15)根據(jù)保存的鼠標(biāo)位置信息形成一個(gè)選擇范圍,把在范圍內(nèi)的對(duì)象選擇出來;步驟6.選擇編輯操作(16)選擇你要進(jìn)行的編輯操作類型,如移動(dòng)、復(fù)制、粘貼、刪除等;與繪圖類似,操作的結(jié)果立即在本地終端上顯示出來,但是經(jīng)過服務(wù)器同步整合之后才是最終的結(jié)果;步驟7.封裝成操作信息數(shù)據(jù)包,發(fā)送到服務(wù)器(17)把本地產(chǎn)生的操作封裝為操作數(shù)據(jù)包,操作數(shù)據(jù)包頭描述了操作類型,操作產(chǎn)生者等操作概要信息;步驟8.服務(wù)器接收各客戶端的數(shù)據(jù)包,同步處理后轉(zhuǎn)發(fā)到所有客戶端(18)服務(wù)器對(duì)收到的操作數(shù)據(jù)包進(jìn)行解包,并進(jìn)行操作沖突檢測,如有沖突,進(jìn)行操作轉(zhuǎn)換,形成新的操作,并對(duì)操作排序,形成新的操作數(shù)據(jù)包,再發(fā)給所有客戶端。通過沖突檢測和操作轉(zhuǎn)換保持了各客戶端視圖的一致性。比如,同時(shí)有多人繪制、進(jìn)行編輯操作,如果不加以同步處理就會(huì)出現(xiàn)操作沖突,以及不一致現(xiàn)象、與意愿相違背;步驟9.客戶端接受服務(wù)器轉(zhuǎn)發(fā)的操作數(shù)據(jù)包,按序觸發(fā)相應(yīng)的操作(19)客戶端對(duì)接收到的操作數(shù)據(jù)包進(jìn)行解包,檢查包頭的序號(hào)字段;如果小于該序號(hào)的所有操作已在本地執(zhí)行過,那么根據(jù)操作數(shù)據(jù)包頭信息觸發(fā)相應(yīng)操作;反之,把此操作放入操作緩沖中,等待序號(hào)在此操作之前的所有操作到達(dá)并執(zhí)行后才執(zhí)行;若是編輯操作轉(zhuǎn)構(gòu)建圖形對(duì)象或圖形對(duì)象分片(13);
步驟10.對(duì)圖形數(shù)據(jù)解密解壓縮,重構(gòu)圖形對(duì)象或圖形對(duì)象分片(20)此步驟從操作數(shù)據(jù)包獲取圖形數(shù)據(jù)塊,進(jìn)行解密解壓縮,重新構(gòu)建圖形對(duì)象或圖形對(duì)象分片;步驟11.圖形繪制(21)在客戶端繪制圖形對(duì)象或圖形分片;步驟12.合成圖形對(duì)象分片,保存完整圖形對(duì)象(22)如果添加的是圖形對(duì)象最后一個(gè)分片,那么把圖形對(duì)象所有分片組合為一個(gè)完整的圖形對(duì)象,并且保存到圖形集合中去;步驟13.根據(jù)操作類型,對(duì)指定的圖形對(duì)象執(zhí)行編輯操作(23)從操作數(shù)據(jù)包頭獲得操作類型,啟動(dòng)相應(yīng)操作,并從數(shù)據(jù)包中獲得編輯內(nèi)容作為參數(shù)傳遞相應(yīng)操作。
權(quán)利要求
1.一種基于互聯(lián)網(wǎng)的協(xié)作繪圖裝置,該裝置有繪圖輸入、繪圖輸出、處理器、協(xié)作服務(wù)器及互聯(lián)網(wǎng)硬件環(huán)境,其特征在于協(xié)作繪圖的客戶端A(1)包括繪圖輸入(3)、繪圖輸出(4)、處理器(5)及網(wǎng)絡(luò)接入設(shè)備(6)模塊組件構(gòu)成;協(xié)作繪圖的客戶端B(2)包括繪圖輸入(3)、繪圖輸出(4)、處理器(5)及網(wǎng)絡(luò)接入設(shè)備(6)模塊組件構(gòu)成;互聯(lián)網(wǎng)(7)包括協(xié)作服務(wù)器(8)及網(wǎng)絡(luò)接入設(shè)備(6)模塊組件構(gòu)成;協(xié)作繪圖的客戶端A(1)與客戶端B(2)之間有互聯(lián)網(wǎng)(7)通訊聯(lián)系。
2.根據(jù)權(quán)利要求1所述的基于互聯(lián)網(wǎng)的協(xié)作繪圖裝置,其特征在于所述的客戶端A(1)和客戶端B(2)的繪圖輸入(3)的輸出端分別與繪圖輸出(4)和處理器(5)的輸入端相連接,處理器(5)與網(wǎng)絡(luò)接入設(shè)備(6)之間有雙向輸入、輸出線相連接,網(wǎng)絡(luò)接入設(shè)備(6)與互聯(lián)網(wǎng)(7)之間有雙向輸入、輸出線相連接,處理器(5)的輸出端與繪圖輸出(4)的輸入端相連接;所述的互聯(lián)網(wǎng)(7)與網(wǎng)絡(luò)接入設(shè)備(6)之間有雙向輸入、輸出線相連接,網(wǎng)絡(luò)接入設(shè)備(6)與協(xié)作服務(wù)器(8)之間有雙向輸入、輸出線相連接。
3.根據(jù)權(quán)利要求1所述的基于互聯(lián)網(wǎng)的協(xié)作繪圖裝置,其特征在于所述的繪圖輸入(3)或?yàn)槭謱懤L圖板或?yàn)槔L圖儀或?yàn)橛|摸屏;所述的繪圖輸出(4)或?yàn)轱@示器或?yàn)橥队皟x;所述的處理器(5)或?yàn)镻C機(jī)或?yàn)檎粕想娔XPDA;所述的協(xié)作服務(wù)器(8)或?yàn)閷iT服務(wù)器或?yàn)镻C機(jī);所述的網(wǎng)絡(luò)接入設(shè)備(6)或?yàn)榫W(wǎng)卡或?yàn)檎{(diào)制解調(diào)器。
4.一種基于互聯(lián)網(wǎng)的協(xié)作繪圖方法,該方法是互聯(lián)網(wǎng)環(huán)境下多用戶的協(xié)作繪圖,其特征在于該方法通過繪制(9)和編輯(10)兩部分完成;通過沖突檢測和操作轉(zhuǎn)換,完成封裝的數(shù)據(jù)包發(fā)送到服務(wù)器,實(shí)現(xiàn)同步整合;通過客戶端與服務(wù)器端的數(shù)據(jù)通信,采取了壓縮并加密的方式,并在繪圖結(jié)束前將已繪部分形成一個(gè)圖形對(duì)象分片發(fā)送出去,實(shí)現(xiàn)系統(tǒng)的響應(yīng)速度和數(shù)據(jù)的安全性;其具體工作步驟是a)、繪制圖形、發(fā)送和圖形構(gòu)建客戶端A(1)在繪圖輸入(3)設(shè)備上繪制圖形,在本地繪圖輸出(4)設(shè)備上顯示繪制臨時(shí)效果,然后把繪制圖形發(fā)送到處理器(5),進(jìn)行操作消息打包、圖形對(duì)象構(gòu)建、圖形分片、圖形壓縮和加密,然后再通過網(wǎng)絡(luò)接入設(shè)備(6)把處理后的數(shù)據(jù)發(fā)送到互聯(lián)網(wǎng)(7);b)、解包、解密、解壓和再發(fā)送協(xié)作服務(wù)器(8)通過網(wǎng)絡(luò)接入設(shè)備(6)獲得客戶端的數(shù)據(jù),進(jìn)行解包、解密和解壓,獲得此客戶的操作類型和參數(shù),與來自其它客戶端操作,進(jìn)行操作沖突檢測和處理,處理后再打包、壓縮和加密,再發(fā)送到互聯(lián)網(wǎng)(7);c)、客戶端B(2)的解包、解壓和解密客戶端B(2)的處理器(5)通過網(wǎng)絡(luò)接入設(shè)備(6)收到協(xié)作服務(wù)器(8)發(fā)來數(shù)據(jù),進(jìn)行解包、解壓和解密,獲得客戶端A(1)的繪圖操作類型和參數(shù),在自己的繪圖輸出(4)設(shè)備上繪制出來;d)、客戶端A(1)的解包、解壓和解密客戶端A(1)的處理器(5)通過網(wǎng)絡(luò)接入設(shè)備(6)收到協(xié)作服務(wù)器(8)發(fā)來數(shù)據(jù),進(jìn)行解包、解壓和解密,發(fā)現(xiàn)是自己產(chǎn)生的繪圖操作,清除在繪圖輸出(4)設(shè)備上的臨時(shí)繪制效果,根據(jù)同步處理后的繪圖操作和參數(shù),在繪圖輸出(4)設(shè)備上重新繪制圖形;
5.根據(jù)權(quán)利要求4所述的基于互聯(lián)網(wǎng)的協(xié)作繪圖方法,其特征在于所述繪制(9)和編輯(10)方法的具體工作步驟是步驟1.捕捉鼠標(biāo)消息(11)步驟2.本地跟蹤鼠標(biāo)位置立即繪圖(12)若捕獲的是繪圖消息,本地跟蹤鼠標(biāo)位置立即繪圖,在一圖形繪制完成前實(shí)現(xiàn)動(dòng)態(tài)拖曳繪圖,其為一個(gè)臨時(shí)的視圖;步驟3.構(gòu)造圖形對(duì)象或圖形對(duì)象分片(13)當(dāng)收到繪圖結(jié)束消息時(shí),根據(jù)保存的鼠標(biāo)位置信息,以及當(dāng)前所選畫筆、畫刷信息構(gòu)造圖形對(duì)象,并把當(dāng)前用戶ID作為屬性填入對(duì)象中,以區(qū)分不同用戶創(chuàng)建的圖形;當(dāng)繪制的圖形數(shù)據(jù)量達(dá)到一定大小但是沒有結(jié)束繪圖,則形成一個(gè)圖形對(duì)象分片;步驟4.圖形對(duì)象壓縮加密(14)對(duì)發(fā)送的數(shù)據(jù)進(jìn)行壓縮,同時(shí)對(duì)數(shù)據(jù)進(jìn)行加密;步驟5.選擇圖形對(duì)象(15)根據(jù)保存的鼠標(biāo)位置信息形成一個(gè)選擇范圍,把在范圍內(nèi)的對(duì)象選擇出來;步驟6.選擇編輯操作(16)選擇移動(dòng)、復(fù)制、粘貼、刪除類型的編輯操作,操作的結(jié)果立即在本地終端上顯示出來,并經(jīng)過服務(wù)器同步整合后為最終結(jié)果;步驟7.封裝成操作信息數(shù)據(jù)包,發(fā)送到服務(wù)器(17)把本地產(chǎn)生的操作封裝為操作數(shù)據(jù)包;步驟8.服務(wù)器接收各客戶端的數(shù)據(jù)包,同步處理后轉(zhuǎn)發(fā)到所有客戶端(18)服務(wù)器對(duì)收到的操作數(shù)據(jù)包進(jìn)行解包,并進(jìn)行操作沖突檢測,有沖突,進(jìn)行操作轉(zhuǎn)換,形成新的操作,并對(duì)操作排序,形成新的操作數(shù)據(jù)包,再發(fā)給所有客戶端;步驟9.客戶端接受服務(wù)器轉(zhuǎn)發(fā)的操作數(shù)據(jù)包,按序觸發(fā)相應(yīng)的操作(19)客戶端對(duì)接收到的操作數(shù)據(jù)包進(jìn)行解包,檢查包頭的序號(hào)字段;如果小于該序號(hào)的所有操作已在本地執(zhí)行過,那么根據(jù)操作數(shù)據(jù)包頭信息觸發(fā)相應(yīng)操作;反之,把此操作放入操作緩沖中,等待序號(hào)在此操作之前的所有操作到達(dá)并執(zhí)行后才執(zhí)行;若是編輯操作轉(zhuǎn)構(gòu)建圖形對(duì)象或圖形對(duì)象分片(13);步驟10.對(duì)圖形數(shù)據(jù)解密解壓縮,重構(gòu)圖形對(duì)象或圖形對(duì)象分片(20)此步驟從操作數(shù)據(jù)包獲取圖形數(shù)據(jù)塊,進(jìn)行解密解壓縮,重新構(gòu)建圖形對(duì)象或圖形對(duì)象分片;步驟11.圖形繪制(21)在客戶端繪制圖形對(duì)象或圖形分片;步驟12.合成圖形對(duì)象分片,保存完整圖形對(duì)象(22)如果添加的是圖形對(duì)象最后一個(gè)分片,那么把圖形對(duì)象所有分片組合為一個(gè)完整的圖形對(duì)象,并且保存到圖形集合中去;步驟13.根據(jù)操作類型,對(duì)指定的圖形對(duì)象執(zhí)行編輯操作(23)從操作數(shù)據(jù)包頭獲得操作類型,啟動(dòng)相應(yīng)操作,并從數(shù)據(jù)包中獲得編輯內(nèi)容作為參數(shù)傳遞相應(yīng)操作。
全文摘要
一種涉及計(jì)算機(jī)支持的協(xié)同工作(CSCW)的技術(shù)領(lǐng)域,尤指一種用于協(xié)同地理信息系統(tǒng)、交通、建筑和協(xié)同醫(yī)學(xué)等新的協(xié)同應(yīng)用環(huán)境。本發(fā)明的裝置由繪圖輸入、繪圖輸出、處理器、協(xié)作服務(wù)器及互聯(lián)網(wǎng)等硬件環(huán)境組成,本方法解決了互聯(lián)網(wǎng)環(huán)境下多用戶的協(xié)作繪圖問題,其通過繪制和編輯兩部分完成;通過客戶端與服務(wù)器端的數(shù)據(jù)通信,采取了壓縮并加密的方式,并在繪圖結(jié)束前將已繪部分形成一個(gè)圖形對(duì)象分片發(fā)送出去,實(shí)現(xiàn)系統(tǒng)的響應(yīng)速度和數(shù)據(jù)的安全性。本發(fā)明的優(yōu)點(diǎn)本發(fā)明通過沖突檢測和操作轉(zhuǎn)換保持了各客戶端視圖的一致性,保證了系統(tǒng)的響應(yīng)速度和數(shù)據(jù)的安全性;并具有有關(guān)高響應(yīng)、數(shù)據(jù)傳輸效率高、協(xié)作性好、安全性好等特點(diǎn)。
文檔編號(hào)H04L12/18GK1658567SQ20051002397
公開日2005年8月24日 申請(qǐng)日期2005年2月21日 優(yōu)先權(quán)日2005年2月21日
發(fā)明者顧君忠, 呂釗, 崔修濤, 何莉, 郭忠軍, 李卓輝 申請(qǐng)人:華東師范大學(xué)