国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      大規(guī)模協(xié)同環(huán)境下的協(xié)同交互優(yōu)化方法

      文檔序號:6572822閱讀:179來源:國知局
      專利名稱:大規(guī)模協(xié)同環(huán)境下的協(xié)同交互優(yōu)化方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于計算機支持的協(xié)同工作技術(shù)領(lǐng)域,具體涉及在大規(guī)模協(xié)同環(huán)境下協(xié)同交 互優(yōu)化方法。
      背景技術(shù)
      1.實時組編輯系統(tǒng)
      單用戶的文檔編輯系統(tǒng),如普通的文檔編輯器,在人們生活中已經(jīng)十分普遍。但近 年來隨著lntemet的發(fā)展和社會合作的需求,將這些單用戶的編輯系統(tǒng)移植到多用尸的環(huán) 境下,允許多個用戶通過計算機網(wǎng)絡(luò)同時瀏覽、編輯一個共享數(shù)據(jù)對象,使之能夠在多用 戶協(xié)同工作時發(fā)揮重要的作用,這樣的需求也就自然而然地產(chǎn)生了,這種編輯系統(tǒng)稱為組 編輯系統(tǒng)。
      實時組編輯系統(tǒng)是組編輯系統(tǒng)中應(yīng)用最廣泛的一種,其必須滿足實時性、分布式和提 供用戶無限制編輯的特性?,F(xiàn)在普遍采用全復(fù)制式結(jié)構(gòu)來實現(xiàn)這種系統(tǒng),也就是說,每個 用戶都有一個文檔數(shù)據(jù)副本,而且他們被允許并發(fā)地、同步地修改這份共享文檔。這里有 三個條件必須被滿足,那就是結(jié)果一致、因果一致和用戶意圖一致。結(jié)果一致指同一操作 集合在所有站點執(zhí)行后,這些站點上的文檔狀態(tài)一致。因果一致指對于任意兩個操作o。和
      Ob,如果在Ob的初始站點上,Oa在Ob生成前已被生成或執(zhí)行,則在所有站點上Oa都應(yīng)早于
      Ob被執(zhí)行。用戶意圖一致指對于任意操作O,其在所有站點上的執(zhí)行效果都應(yīng)保持O的原有 意圖,同時O的執(zhí)行效果不能影響那些與O并發(fā)的操作的執(zhí)行效果。 2.大規(guī)模協(xié)同環(huán)境
      盡管目前對實時組編輯的研究已經(jīng)取得了很大的進(jìn)展,然而,現(xiàn)有的對實時組編輯的 研究都還主要局限于小組協(xié)同(人數(shù)小于10)。在更大規(guī)模的協(xié)同環(huán)境中(人數(shù)大于10,
      甚至成百上千)支持實時組編輯活動會遇到什么樣的特殊問題?
      比如遠(yuǎn)程Autocad教學(xué)的例子,學(xué)習(xí)者可以通過編輯修改一份共享Au七oGAD文檔數(shù)據(jù),實 時地相互交流,不必再局限于白板、Instant Messenger等通用的協(xié)同交互工具,這樣的交 流方式更為直接,往往也更有利于學(xué)習(xí)者表達(dá)自己的觀點和想法。但這種遠(yuǎn)程教學(xué)學(xué)生群 規(guī)模龐大,可以認(rèn)為是大規(guī)模協(xié)同環(huán)境。200710045946.X
      說明書第2/10頁
      3. 因果與并發(fā)關(guān)系檢測
      全復(fù)制結(jié)構(gòu)下的實時組編輯系統(tǒng)允許用戶并發(fā)的編輯修改他們各自的文檔數(shù)據(jù)副本。 兩個操作具有因果關(guān)系指的是一個操作在另一個操作的產(chǎn)生之前已經(jīng)執(zhí)行;而兩個操作并 發(fā)指的是這兩個操作不存在因果關(guān)系。準(zhǔn)確識別操作間的因果并發(fā)關(guān)系是正確維護(hù)實時組 編輯一致性的基礎(chǔ)。實時組編輯應(yīng)用中的因果并發(fā)關(guān)系判斷主要涉及三方面的問題
      (1) 判斷一個操作是否因果就緒網(wǎng)絡(luò)傳輸具有不確定性,操作以它們的生成順序先后發(fā) 出,卻未必能按相同的順序到達(dá)目標(biāo)站點。
      (2) 找出所有之前執(zhí)行過的與當(dāng)前正在執(zhí)行的遠(yuǎn)程操作并發(fā)的操作。本地站點收到從遠(yuǎn)程站 點發(fā)過來的這種操作時,首先需要對這種操作作轉(zhuǎn)換,因為該操作從產(chǎn)生到傳輸完畢,本 地產(chǎn)生了新的操作。如果)!各該遠(yuǎn)程操作直接執(zhí)行,會導(dǎo)致不一致的情況。那么轉(zhuǎn)換就意味 著遠(yuǎn)程操作要根據(jù)本地操作作相應(yīng)轉(zhuǎn)換后再執(zhí)行。
      目前比較操作間的相互關(guān)系主要手段是比較時間戳。傳統(tǒng)的時間戳是一個N維的向量, 向量的第i個元素記錄的是第i個站點當(dāng)前己執(zhí)行操作個數(shù)。后來又有人提出直接因果先序 時間戳DCV。
      4. DCV時間戳的優(yōu)點和弊端
      定義直接因果先序關(guān)系(=>):給定兩個任意的操作Oa和Ob, Oa直接因果先序于Ob, 記為O。 => Ob,當(dāng)且僅當(dāng)(1) O。 — Ob并且(2)不存在一個操作Oc,滿足O。 — Oc且Oc — Ob。
      定義直接因果先序向量時間戳(Direct Causal Vector,簡稱DCV) 給定一個操 作o,假設(shè)cxo2Ok是所有直接因果先序于o的操作,o是站點a上產(chǎn)生的第M個操作,
      02是站點S2上產(chǎn)生的第N2個操作,Ok是站點Sk上產(chǎn)生的第Nk個操作,我們定義操作O的直 接因果先序向量時間戳為[(&, Nh), (S2, Nh), .... (Sk, Nk)],記為DCV(O)。
      和傳統(tǒng)向量時間戳相比,DCV表示方法比較明顯的削減了每個操作所帶的時間戳的規(guī) 模。參考圖l,從左到右三條直線分別表示站點l, 2, 3上的操作順序。圖中的6個操作, 0,2直接因果依賴于0",Oa和C^, 032也直接因果依賴于這三個操作,022直接因果依賴于012 和032。這6個操作的直接因果先序向量時間戳分別為DCV(0") = []. DCV(Cto) = [], DGV(031) =[〗,DCV〈Oi2) = [CU), (2,1), (3,1)], DGV(022) = [(1,2), 〈3,2)]禾卩DCV(032) = [(1,1), (2,1), (3,1)]。
      直接因果先序向量時間戳的優(yōu)點在于其是一種動態(tài)時間戳,系統(tǒng)不為協(xié)同參與者預(yù)留 時間戳分量, 一個從不修改共享文檔數(shù)據(jù)的"只讀"協(xié)同參與者并不會對時間戳的大小產(chǎn)生 影響。因此,在一個使用直接因果先序向量時間戳技術(shù)的實時組編輯系統(tǒng)中,操作的時間
      戳大小總是小于等于實際參與修改共享文檔數(shù)據(jù)的協(xié)同參與者的人數(shù)。
      而這種時間戳的缺點在于,由于它是動態(tài)的時間戳,所以檢測并發(fā)操作的時候需要比 較自己的直接因果先序操作和當(dāng)前操作,才能得出結(jié)論,顯得不是那么簡潔明了。而且DCV 一定程度上反映并發(fā)程度, 一旦并發(fā)性極高的情況下,DCV的規(guī)模會直線上升。所以在這 種大規(guī)模并發(fā)環(huán)境下要是能根據(jù)DCV特點修改相應(yīng)的檢測方法,或者縮小時間戳的規(guī)模, 都會對效率提高起到關(guān)鍵作用。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于提出一種在大規(guī)模協(xié)同環(huán)境下提高并發(fā)操作檢測效率的協(xié)同交互 優(yōu)化方法。
      傳統(tǒng)的向量時間戳可伸^tt差—,—干是我們對交百進(jìn)行修改,i是HiX遠(yuǎn)程操佳的調(diào)整方 法,然后為了支持這種策略,提出了Leader優(yōu)化的協(xié)同模型和在此模型下的分發(fā)與操作同 步方法,盡可能地用一整套方案來提高大規(guī)模協(xié)同環(huán)境下組編輯效率。
      步驟l:交互模式的調(diào)整,遠(yuǎn)程操作執(zhí)行順序的調(diào)整
      在一個有著N個協(xié)同站點的實時組編輯環(huán)境中,任意給定一個整數(shù)M, 2<M<N,我 們總能通過下列調(diào)整將操作的直接因果先序向量時間戳大小控制在SM的范圍內(nèi)。假設(shè)N 個協(xié)同站點分別為&,S2.S3…,5N,對每一個協(xié)同站點Si(1《i《N),按照以下兩個步驟 調(diào)整交互模式
      1) 對來自于Sj(0〈i一j〈M或i —j<M—N)的操作,立即同步,只要它滿足因果就緒 條件。
      2) 對來自于其它站點的操作,延遲對它的同步,直到收到一個來自于站點Sk(0〈i-k 〈M或i-k<M-N)的且直接因果依賴于它的操作。那么對于每一個協(xié)同站點Si(1《i《 N),其上產(chǎn)生的操作都只可能直接因果依賴于來自于站點Sj(O《i-j〈M或i-j<M-N) 的操作,這些操作的直接因果先序向量時間戳的大小必然《M。
      直接因果先序向量時間戳具有一個有趣的特性在實時組編輯活動中,通過合理規(guī)范 各協(xié)同站點上遠(yuǎn)程操作的同步順序,可以有效地控制操作的直接因果先序向量時間戳大 小??紤]圖2中的協(xié)同場景,共有3個協(xié)同站點站點1、站點2和站點3,協(xié)同過程中,三個 站點共產(chǎn)生了6個協(xié)同操作操作0"和0。產(chǎn)生于站點1,操作021和022產(chǎn)生于站點2,操作 031和032產(chǎn)生于站點3。三個站點都嚴(yán)格遵循傳統(tǒng)的協(xié)同交互模式——本地操作產(chǎn)生后立即 被廣播到所有其它協(xié)同站點,收到遠(yuǎn)程操作后,也是盡快地對它進(jìn)行同步,只要它已經(jīng)因 果就緒。6個操作之間的因果并發(fā)關(guān)系分別為0",022和032兩兩互為并發(fā)操作、012和032
      互為并發(fā)操作、021和031,032都互為并發(fā)操作、0"直接因果依賴于021和031、 Ou直接因果依 賴于0"和022、 022直接因果依賴于021和031、 032直接先序依賴于031;它們的直接因果先序 向量時間戳分別為DGV(O") = [(2,化(3, 1)], DGV(021) = [ ], DGV(。31) = [ ], DCV(012) = [(1, 1), (2, 2)], DGV(022) = [(2, 1), (3, 1)]和DGV(。32) = [(3, 1)]。
      現(xiàn)在考慮執(zhí)行順序調(diào)整后的協(xié)同場景,也就是加上了圖中的虛線,同樣的3個協(xié)同站 點,同樣的6個操作,每個操作的生成時間、生成站點都與左圖中的完全一致,然而,協(xié) 同交互模式有了稍許變化——站點1上,對于收到的來自于站點3的遠(yuǎn)程操作,并不立即對 它進(jìn)行同步,而是一直延遲直到收到一個來自于站點2的直接因果依賴于它的操作,因此, 圖2中可以看出,031在站點1上的執(zhí)行被延遲直到收到了操作022。圖中,6個操作之間的因 果并發(fā)關(guān)系分別為0",022和032兩兩互為并發(fā)操作、0"和031互為并發(fā)操作、012和032互為 并發(fā)操作、021和031,032都互為并發(fā)操作、0"直接因果依賴于02,、 0,2直接因果依賴于0"和 022、 022直接因果依賴于021和031、 032直接先序依賴于031;它們的直接因果先序向量時間 戳分別為DCV(O") = [(2, 1)], DCV(Ci21) = [ ], DGV(031) = [ ], DGV(012) = [(1, 1), (2, 2)], DGV(O22: =[(2, 1). (3, 1)]和DGV(032) = [(3, 1)]。和原圖像比,調(diào)整只是對站點1上的遠(yuǎn)程操作同步順序 作了稍許調(diào)整,結(jié)果卻很明顯,操作O"的直接因果先序向量時間戳大小減小了,其它操作 的直接因果先序向量時間戳都沒變,操作在各站點間分發(fā),總的時間戳開銷變小了。
      上面我們已經(jīng)給出了一種用戶間協(xié)同交互模式的調(diào)整策略,在使用直接因果先序向量 時間戳技術(shù)的實時組編輯系統(tǒng)中,基于該策略調(diào)整用戶間的協(xié)同交互模式可以靈活有效地 控制住實時組編輯活動中的操作時間戳開銷?,F(xiàn)在考慮任意的協(xié)同站點Si,假設(shè)所有的站 點S」(0〈i-j〈M或i-J〈M-N)都一直處于不活躍的狀態(tài),不產(chǎn)生任何操作,按照上述 規(guī)定,站點Si將不能同步任何收到的遠(yuǎn)程操作,協(xié)同站點Si上的協(xié)同用戶將很長時間無法感 知其它用戶的操作情況。如果這樣的情況在很多協(xié)同站點上發(fā)生,必然會影響用戶間的協(xié) 同效率。
      由此,本發(fā)明是建立一些虛擬的協(xié)同站點,稱為Leader協(xié)同站點,并在這些虛擬協(xié)同 站點上定期地生成一些虛擬的協(xié)同操作。通過引入虛擬的協(xié)同站點、虛擬的協(xié)同操作,參 與調(diào)整協(xié)同交互模式,控制實時組編輯活動中的操作時間戳開銷,可以避免影響用戶正常 的協(xié)同工作,因為虛擬協(xié)同站點的網(wǎng)絡(luò)布局、虛擬協(xié)同站點上虛擬協(xié)同操作的生成頻率都 是我們可以根據(jù)需要隨時調(diào)整的。通過規(guī)定,對于收到的遠(yuǎn)程用戶文檔數(shù)據(jù)操作(不包括 Leader協(xié)同站點上生成的虛擬協(xié)同操作),用戶協(xié)同站點(不包括Leader協(xié)同站點)必 須延遲對它的同步直到收到一個來自于Leader協(xié)同站點的且直接因果依賴于它的虛擬協(xié)
      同操作,可以確保,每一個新生成的用戶文檔數(shù)據(jù)操作都只直接因果依賴于同一個協(xié)同站 點上生成的其它用戶文檔數(shù)據(jù)操作,或者Leader協(xié)同站點上生成的虛擬協(xié)同操作。這樣, 只需要控制好虛擬站點的數(shù)量就能有效地控制住每個用戶文檔數(shù)據(jù)操作的時間戳大小、控 制住實時組編輯活動中的操作時間戳開銷。 步驟2:設(shè)立Leader優(yōu)先協(xié)同站點
      1) 選取一個站點設(shè)為Leader虛擬站點,用于協(xié)調(diào)域內(nèi)各協(xié)同站點上操作的分發(fā)與 同步,并生成一些虛擬的協(xié)同操作。這些站點只用作協(xié)同,不提供用戶訪問修改共享文檔 數(shù)據(jù)的操作界面和工具。
      2) 協(xié)同站點上生成的關(guān)聯(lián)與某個用戶文檔數(shù)據(jù)操作的虛擬協(xié)同操作,稱為該操作的影 子操作。在實現(xiàn)中,要保證影子操作在某個操作產(chǎn)生后立即執(zhí)行,中間不會執(zhí)行任何其它 操作。
      在每個穩(wěn)定的實時組編輯域中,都有一個Leader協(xié)同站點,這是一些虛擬的協(xié)同站點, 用于協(xié)調(diào)域內(nèi)各協(xié)同站點上操作的分發(fā)與同步,并生成一些虛擬的協(xié)同操作,輔助參與協(xié) 同交互模型、控制實時組編輯活動中的操作時間戳開銷。Leader協(xié)同站點不提供協(xié)同用戶 訪問修改共享文檔數(shù)據(jù)的操作界面和工具。為了區(qū)分,在下文中,我們用用戶協(xié)同站點表 示那些提供共享文檔數(shù)據(jù)訪問修改操作界面的直接面向協(xié)同參與者提供服務(wù)的真正的協(xié) 同站點,另外,如果沒有特殊說明,我們提到的協(xié)同站點,都同時指代用戶協(xié)同站點和 Leader協(xié)同站點。我們要求,每個穩(wěn)定的實時組編輯域中都有可用的Leader協(xié)同站點。 如果由于網(wǎng)絡(luò)連接情況的變化,或是原有的Leader協(xié)同站點發(fā)生意外故障等,在一個穩(wěn)定 的實時組編輯域中沒有了可用的Leader協(xié)同站點,系統(tǒng)應(yīng)在一個盡可能短的時間內(nèi)重新建 立一個新的Leader協(xié)同站點。我們并不限制在每個穩(wěn)定的實時組編輯域中的Leader協(xié)同 站點的數(shù)量,然而,在一個穩(wěn)定的實時組編輯域中建立多個Leader協(xié)同站點是毫無意義的, 只會增加系統(tǒng)的開銷,因此,應(yīng)該盡可能保持每個穩(wěn)定的實時組編輯域中都僅僅只有一個 Leader協(xié)同站點。
      Leader協(xié)同站點參與協(xié)同交互模型,會生成一些虛擬的協(xié)同操作。之所以稱這些操作 是"虛擬"的,因為它們作為協(xié)同操作卻并不對共享文檔數(shù)據(jù)作任何修改。為了區(qū)分,在下 文中,我們用用戶文檔數(shù)據(jù)操作指代那些會對共享文檔數(shù)據(jù)產(chǎn)生影響的真正的協(xié)同操作如 lnsert、 Delete等,另外,沒有特殊說明,我們提到的操作、遠(yuǎn)程操作、本地操作等都將 同時指代用戶文檔數(shù)據(jù)操作和Leader協(xié)同站點上生成的虛擬協(xié)同操作。
      Leader協(xié)同站點上生成虛擬協(xié)同操作,總是關(guān)聯(lián)于一個用戶文檔數(shù)據(jù)操作OD。。,稱作
      為OD。c生成影子操作;生成的虛擬協(xié)同操作,我們稱之為OD。c的影子操作,或是與OD。c相關(guān)
      的影子操作。Leader協(xié)同站點為一個用戶文檔數(shù)據(jù)操作生成影子操作,總是在執(zhí)行了該操 作之后立即進(jìn)行的,中間不會執(zhí)行任何其它操作,給定一個用戶文檔數(shù)據(jù)操作O,以及它 的影子操作ilzo,必然有O ij;o。 Leader協(xié)同站點不提供協(xié)同用戶訪問修改共享文檔數(shù) 據(jù)的操作界面,不面向協(xié)同用戶提供服務(wù),因而,Leader協(xié)同站點上不會生成任何用戶文 檔數(shù)據(jù)操作,即除了被稱為影子操作的虛擬協(xié)同操作,Leader協(xié)同站點上不會生成任何其 它類型的協(xié)同操作。
      步驟3:協(xié)同站點上的操作分發(fā)
      1) 將用戶文檔數(shù)據(jù)操作從一個協(xié)同站點向另一個協(xié)同站點分發(fā)時,必須附帶發(fā)送至少 一個與之湘^J^^S作。難一^jf!^:用戶協(xié)同^"點向同一個穩(wěn)定的實時組操作域中的 Leader協(xié)同站點發(fā)送它的本地用戶文檔數(shù)據(jù)操作時,不需要附帶相關(guān)的影子操作。
      相比傳統(tǒng)實時組編輯系統(tǒng)一但產(chǎn)生操作則立即向其他站點發(fā)送的做法,這里按照分步 驟(l),用戶協(xié)同站點將新生成的用戶文檔數(shù)據(jù)操作分發(fā)給其它協(xié)同站點,必須通過Leader 協(xié)同站點間接地進(jìn)行。后面可以看到,在我們的實時組編輯交互模型中,對遠(yuǎn)程用戶文檔 數(shù)據(jù)操作以及它的相關(guān)影子操作的執(zhí)行順序與執(zhí)行時間都有著嚴(yán)格的要求,此規(guī)則確保當(dāng) 用戶協(xié)同站點收到一個遠(yuǎn)程的用戶文檔數(shù)據(jù)操作時,同時也收到了它的影子操作,從而可 以簡化相關(guān)的處理過程。
      2) 給定一個Leader協(xié)同站點S^假設(shè)OD。。是S^上新接收到的一個用戶文檔數(shù)據(jù)操作, OD。c的相關(guān)影子操作并沒有隨OD。c一起被發(fā)送到Leader協(xié)同站點S^上。
      ① OD。c沒有在SiJ:執(zhí)行過5jS盡快地執(zhí)行OD。c,為它生成一個影子操作vji,然后將 Od。c,附上新生成的虛擬協(xié)同操作vj;, 一起向所有的其它協(xié)同站點分發(fā);
      ② OD。c已經(jīng)在SiJl執(zhí)行過此時從SL的歷史操作列表中找到與Oo。c相關(guān)的影子操作(即 直接因果依賴于OD。c的虛擬協(xié)同操作),記為小。SU^立即將操作Od。c,附上vj;, 一起向 所有的其它協(xié)同站點分發(fā)。
      一個用戶文檔數(shù)據(jù)操作OD。c,沒有附帶與之相關(guān)的影子操作,被單獨發(fā)送到Leader協(xié) 同站點S^這往往暗示(1)同一個穩(wěn)定的實時組編輯域中的其它協(xié)同站點(除了Od。。的生 成站點)都還沒有執(zhí)行過這個用戶文檔數(shù)據(jù)操作(2)操作的生成站點沒有與OD。。相關(guān)的影 子操作記錄,則無法將該操作分發(fā)出去。我們制定操作分發(fā)規(guī)則,要求Leader協(xié)同站點Si^
      盡快地處理OD。c、將OD。c進(jìn)一步分發(fā)給所有其它協(xié)同站點,是為了確保較高的協(xié)同感知性
      能。讓協(xié)同用戶盡快地盡可能實時地感知互相的行為操作和意向,這是實時組編輯系統(tǒng)的
      一個基本性能要求。
      歩驟4:協(xié)同站點上的操作同步。
      (1) 本地站點上收到的遠(yuǎn)程操作必須等到因果就緒后才可以被同步。 遠(yuǎn)程操作的同步順序不能違背它們的因果先序順序,每個遠(yuǎn)程操作都必須等所有它所
      因果依賴于的操作都執(zhí)行后才能執(zhí)行。這是實時組編輯一致性模型所要求的,在實時組編 輯活動中永遠(yuǎn)都不應(yīng)被違背。
      (2) 在協(xié)同站點上,每同步一個遠(yuǎn)程的用戶文檔數(shù)據(jù)操作,緊跟著執(zhí)行的總是一個 與之相關(guān)的影子操作。操作同步規(guī)則2是Leader優(yōu)先協(xié)同交互模型的核心,是Le。der優(yōu) 先協(xié)同交互模型能夠?qū)崿F(xiàn)靈活控制實時組編輯活動中時間戳開銷的基礎(chǔ)。
      分歩驟(2)Jj每確保1.所有的用戶文檔數(shù)據(jù)操作,餘了同一^t點上產(chǎn)生的其它用 戶文檔數(shù)據(jù)操作以及各Leader協(xié)同站點上產(chǎn)生的虛擬協(xié)同操作,不會直接因果依賴于任何 其它操作。2.所有的虛擬協(xié)同操作(影子操作),除了它所對應(yīng)的用戶文檔數(shù)據(jù)操作以 及各Leader協(xié)同站點上產(chǎn)生的虛擬協(xié)同操作,不會直接因果依賴于任何其它操作??傊?, 所有操作的直接因果先序向量時間戳大小都小于等于當(dāng)前系統(tǒng)中的Leader協(xié)同站點的數(shù) 量加1,也就是說,我們可以通過控制Leader協(xié)同站點的數(shù)量有效控制實時組編輯活動中 的時間戳開銷。
      下面是步驟(2)的實現(xiàn)。如果一個用戶文檔數(shù)據(jù)操作O,沒有附帶與之相關(guān)的影子 操作,被單獨發(fā)送到協(xié)同站點S (O之前沒有在S上執(zhí)行過)。貝lJs必然是一個Leader協(xié)同 站點。而且,協(xié)同站點S執(zhí)行了操作O以后會不間斷地立即生成一個虛擬協(xié)同操作小。小是 O的影子操作,0和il/在S上一先一后連續(xù)執(zhí)行,如果協(xié)同站點S在收到用戶文檔數(shù)據(jù)操作O 的同時,也收到了與之相關(guān)的影子操作,記為小,O =>小。假設(shè)小的生成站點是SL,在 執(zhí)行操作O并生成il;之前,S^—直都很好地遵守著操作同步規(guī)則的規(guī)定,更具體的,51_上 之前執(zhí)行過的任意一個用戶文檔數(shù)據(jù)操作O',其后都緊跟著執(zhí)行了一個與之相關(guān)的影子操 作ij;', O'—小'。容易推斷,0不僅是vf/的直接因果先序前繼,也是唯一的直接因果先序 于小的用戶文檔數(shù)據(jù)操作。0和小在5上一先一后連續(xù)執(zhí)行,應(yīng)該是可行的,也不會產(chǎn)生任 何問題(不會干擾其它操作,主要是其它用戶文檔數(shù)據(jù)操作的執(zhí)行)。
      (3) 給定一個Leader協(xié)同站點Sb O是SiJ:收到的一個遠(yuǎn)程用戶文檔數(shù)據(jù)操作。 應(yīng)該盡可能的推遲對操作O的同步,如果它在收到操作O的同時也收到了O的一個影子操作
      分步驟(3)的目的在于盡可能的減小Leader協(xié)同站點上生成的虛擬協(xié)同操作的直接 因果先序向量時間戳大小,減小每個虛擬協(xié)同操作給系統(tǒng)帶來的額外開銷。考慮在Leader 協(xié)同站點Sw上生成虛擬協(xié)同操作VX,它所對應(yīng)的用戶文檔數(shù)據(jù)操作為Ox, v!/' x是S"上 之前生成的一個虛擬協(xié)同操作。(2)決定了ilix不會直接因果依賴于除O以外的任何其它 用戶文檔數(shù)據(jù)操作,按操作同步規(guī)則則進(jìn)一步確定,小x不會直接因果依賴于除小'x以外 的任何其它虛擬協(xié)同操作。假設(shè)vl/x還直接因果依賴于虛擬協(xié)同操作vJ/丫(屮丫 #小'x), vJ;y 不可能產(chǎn)生于Leader協(xié)同站點Sw,它必然產(chǎn)生于S"之外的其它Leader協(xié)同站點。假設(shè)S" 上,在執(zhí)行小y之后生成小x之前,還執(zhí)行過操作O,, 02, .... Ok,由于小y^小x, CX 02,…,Ok
      中不存在一個操作因果依賴于小y;另一方面,如果對小y的同步嚴(yán)格遵循操作同步規(guī)則中
      佛規(guī)定,艮fr對力Y的同步缺^fi-封直至!f收到一個被單獨發(fā)m^stx的i齒果依賴于狗l^戶 文檔數(shù)據(jù)操作ot,容易判,,soJTot的同,應(yīng)該是7^J/y之后在小x之前,也就是說ot elcx
      02Okf,而vf/x—0七,這就與我們之前的推理發(fā)生了矛盾。 上文中,N表示站點個數(shù),Si表示標(biāo)識為Si的協(xié)同站點。 1 ) C^表示某個從站點x產(chǎn)生的第y個操作,
      2) ili表示某個影子操作,
      3) ODoc表示關(guān)聯(lián)某個文檔doc的操作。


      圖l:操作間因果并發(fā)關(guān)系。 圖2:遠(yuǎn)程操作執(zhí)行順序和因果先序時間戳。 圖3:操作分發(fā)與同步例子。
      具體實施例方式
      這里將給出 一個詳細(xì)的例子來說明具體實施方式

      考慮圖3中的協(xié)同場景。圖上半部分從左到右五條豎直線分別表示站點l, 2, 3, 4, 5, 下班部分的豎直線表示站點6。實時組編輯活動開始時,實時組編輯會話被劃分成兩個穩(wěn) 定的實時組編輯域,站點1和站點3同屬于一個穩(wěn)定的實時組編輯域,站點5屬于另一個穩(wěn)定 的實時組編輯域,站點2和站點4分別為這兩個穩(wěn)定的實時組編輯域中的Leader協(xié)同站點。
      實時組編輯活動開始后不久,站點1上生成了一個新的用戶文檔數(shù)據(jù)操作0",遵循操作
      分發(fā)規(guī)則1,站點1并沒有立即將0"向所有的其它協(xié)同站點站點2、站點3、站點4以及站點5
      廣播,而是先發(fā)送給站點2——同一個穩(wěn)定的實時組編輯域中的Leader協(xié)同站點。在站點2,
      當(dāng)接收到站點1發(fā)送過來的遠(yuǎn)程用戶文檔數(shù)據(jù)操作0"后,它立即為之生成一個影子操作Oa,
      并代為將操作O",與Oa—起,向?qū)崟r組編輯環(huán)境中的所有協(xié)同站點廣播。O"在協(xié)同站點間
      的轉(zhuǎn)發(fā)都始終附帶著站點2為之生成的影子操作021, 0"到達(dá)站點3、站點4和站點5時,這三 個站點,從收到的數(shù)據(jù)包里,都可以直接找到它的影子操作02"圖中可以看出,三個站點 對0"和021的同步都是一先一后連續(xù)的不中斷地進(jìn)行的,遵從操作同步步驟2。
      站點3上對本地生成的第一個操作031的處理也是類似的。留意站點2上收到來自于站點 3的遠(yuǎn)程用戶文檔數(shù)據(jù)操作Ow時的處理,此時,O"剛好執(zhí)行完畢,站點2還未來的及為它生 成一個影子操作,根據(jù)影子操作的生成方法——Leader協(xié)同站點為一個遠(yuǎn)程用戶文檔數(shù)據(jù) 操作生成影子操作,必須在執(zhí)行該操作之后立即進(jìn)行,中間不能執(zhí)行任何其它操作,因此, 031在站點2的同步不得不被延遲。
      生成操作Oa后,站點2立即對03遺行同步,并為之生成影子操作022。盡管操作O"和 02冼于操作031和022從站點2上被發(fā)出,然而,由于網(wǎng)絡(luò)傳輸?shù)牟环€(wěn)定性,操作031和022還
      是先于操作0"和021到達(dá)站點5。操作022因果依賴于0u和02"在所有的協(xié)同站點上,操作
      0"和021都應(yīng)先于022被執(zhí)行,因此,在站點5上,操作022的同步被延遲直到執(zhí)行完操作0" 和Oa之后。值得注意的是,盡管到達(dá)站點5時,操作Oa已經(jīng)是因果就緒的了 (操作031不因 果依賴于任何操作),它在站點5上的同步也一起被延遲到了執(zhí)行完操作0"和Oa之后。這 是必須的,在站點5上,遠(yuǎn)程用戶文檔數(shù)據(jù)操作031必須與至少一個它的影子操作一起先后 連續(xù)地被執(zhí)行,這里031只有一個影子操作022, 022的同步被延遲了, 031的同步也只能跟著 被延遲。
      生成操作O"后,在站點1上又產(chǎn)生了第二個用戶文檔數(shù)據(jù)操作0,2,和O"—樣,它也立 即被發(fā)往了站點2——同一個穩(wěn)定的實時組編輯域中的Leader協(xié)同站點。Ou在站點2上執(zhí)
      行后,站點2為它生成了影子操作023,然而,023并沒有被成功的廣播出去,在T時刻,站
      點2突然發(fā)生故障。檢測到站點2無法被連接上, 一個新的Leader協(xié)同站點"站點6"被建立 起來,取代站點2,作為站點1和站點3的"Leader"。站點6新建后,立即與實時組編輯環(huán)境 中的其它協(xié)同站點進(jìn)行同步,站點依次收到操作(遠(yuǎn)程操作)Oa、 Om、 o"、 o21、 o31、 o22 以及012,其中操作041是051的影子操作、操作021是0"的影子操作、操作022是031的影子操 作。操作051、 Om、 O"、 021、 031以及022在站點6上的同步都被盡可能地延遲站點6上對操 作O"、 021、 031以及022的同步被延遲直到收到操作012——d2被發(fā)送到站點6時,并沒有附 帶它的影子操作,遵循操作分發(fā)規(guī)則2必須立即被同步,012因果依賴于0"、 021、 031以及 022,必須后于這四個操作被同步,從而迫使站點6終止延遲并立即同步0"、 Oa、 031以及 022;而對操作Oa和操作Cm,站點6直到最后也沒有對它們進(jìn)行同步。站點6對操作Ou進(jìn)行
      同步后,為它生成了一個新的影子操作061,此后,如果站點5從故障中恢復(fù)過來,實時組 編輯環(huán)境中將存在兩個與操作012相關(guān)的影子操作。在我們的協(xié)同交互模型中,系統(tǒng)中,針 對每個用戶文檔數(shù)據(jù)操作一般只會產(chǎn)生一個影子操作,只有在例子中所示的突發(fā)狀況下, 才可能出現(xiàn)一個用戶文檔數(shù)據(jù)操作相關(guān)兩個或更多影子操作的現(xiàn)象。圖中注明了每個操作的直接因果先序向量時間戳,可以看出,正如我們在對操作同步 步驟2和3的分析中所提到的,每個用戶文檔數(shù)據(jù)操作都只直接因果依賴于虛擬協(xié)同操作以 及其生成站點上之前產(chǎn)生的用戶文檔數(shù)據(jù)操作(如果存在的話),每個虛擬協(xié)同操作都只 直接因果依賴于它所對應(yīng)的用戶文檔數(shù)據(jù)操作以及其生成站點上之前虛擬協(xié)同操作。 實際應(yīng)用將單,的AutOGOd開發(fā)成支持實fl^i,的GoAutoGAD。 對支^^*模## 7^^##糖(^^1 ^錢雕先序峰 時間戳作為主要的因果并發(fā)檢測工具,并采用了Leader優(yōu)先協(xié)同交互模型。在我們的系統(tǒng) 中,存在兩類不同的協(xié)同站點用戶協(xié)同站點和Leader協(xié)同站點。用戶協(xié)同站點為協(xié)同參 與者提供訪問共享文檔數(shù)據(jù)的用戶操作界面,為協(xié)同參與者參與實時組編輯活動提供必要 的工具和操作平臺;Leader協(xié)同站點主要負(fù)責(zé)協(xié)調(diào)協(xié)同用戶間的操作分發(fā)與同步,并生成 一些虛擬的協(xié)同操作,輔助參與協(xié)同交互模型、控制實時組編輯活動中的操作時間戳開銷。 目前CoAutoCAD已經(jīng)做成產(chǎn)品。
      權(quán)利要求
      1、大規(guī)模協(xié)同環(huán)境下的協(xié)同交互優(yōu)化方法,其特征在于包括以下主要步驟步驟1調(diào)整交互模式在一個有著N個協(xié)同站點的實時組編輯環(huán)境中,任意給定一個整數(shù)M,2<M<N,假設(shè)N個協(xié)同站點分別為S1,S2,S3...,SN,對每一個協(xié)同站點Si,1≤i≤N,按照以下兩個步驟調(diào)整交互模式(1)對來自于Sj的操作,立即同步,只要它滿足因果就緒條件,o<i-j<M或i-j<M-N;(2)對來自于其它站點的操作,延遲對它的同步,直到收到一個來自于站點Sk的且直接因果依賴于它的操作,o<i-k<M或i-k<M-N,那么對于每一個協(xié)同站點Si,1≤i≤N,其上產(chǎn)生的操作都只可能直接因果依賴于來自于站點Sj的操作,o≤i-j<M或i-j<M-N,這些操作的直接因果先序向量時間戳的大小必然≤M;步驟2設(shè)立Leader協(xié)同站點,設(shè)定影子操作(1)選取一個站點設(shè)為Leader虛擬站點,用于協(xié)調(diào)域內(nèi)各協(xié)同站點上操作的分發(fā)與同步,并生成一些虛擬的協(xié)同操作,這些站點只用作協(xié)同,不提供用戶訪問修改共享文檔數(shù)據(jù)的操作界面和工具;(2)協(xié)同站點上生成的關(guān)聯(lián)與某個用戶文檔數(shù)據(jù)操作的虛擬協(xié)同操作,稱為該操作的影子操作,要保證影子操作在某個操作產(chǎn)生后立即執(zhí)行,中間不會執(zhí)行任何其它操作;步驟3協(xié)同站點上的操作分發(fā)(1)將用戶文檔數(shù)據(jù)操作從一個協(xié)同站點向另一個協(xié)同站點分發(fā)時,必須附帶發(fā)送至少一個與之相關(guān)的影子操作;唯一的例外用戶協(xié)同站點向同一個穩(wěn)定的實時組操作域中的Leader協(xié)同站點發(fā)送它的本地用戶文檔數(shù)據(jù)操作時,不需要附帶相關(guān)的影子操作;(2)給定一個Leader協(xié)同站點SL,假設(shè)ODoc是SL上新接收到的一個用戶文檔數(shù)據(jù)操作,ODoc的相關(guān)影子操作并沒有隨ODoc一起被發(fā)送到Leader協(xié)同站點SL上;步驟4協(xié)同站點上的操作同步(1)本地站點上收到的遠(yuǎn)程操作必須等到因果就緒后才可以被同步;(2)在協(xié)同站點上,每同步一個遠(yuǎn)程的用戶文檔數(shù)據(jù)操作,緊跟著執(zhí)行的總是一個與之相關(guān)的影子操作;(3)給定一個Leader協(xié)同站點SL,O是SL上收到的一個遠(yuǎn)程用戶文檔數(shù)據(jù)操作;SL應(yīng)該盡可能的推遲對操作O的同步,如果它在收到操作O的同時也收到了O的一個影子操作ψ。
      2、根據(jù)權(quán)利要求l所述的方法,其特征在于所述步驟3中的分步驟(2)的操作如下① OD。c沒有在S^上執(zhí)行過SUS盡快地執(zhí)行0。。c,為它生成一個影子操作小,然后將 Od。c,附上新生成的虛擬協(xié)同操作小, 一起向所有的其它協(xié)同站點分發(fā);② OD。c已經(jīng)在S^上執(zhí)行過此時從S:^的歷史操作列表中找到與OD。c相關(guān)的影子操作, 記為ij;, SUS立即將操作Od。c,附上屮, 一起向所有的其它協(xié)同站點分發(fā)。
      全文摘要
      本發(fā)明屬于計算機支持的協(xié)同工作技術(shù)領(lǐng)域,具體為大規(guī)模協(xié)同環(huán)境下的協(xié)同交互優(yōu)化方法。該方法使用一種Leader站點優(yōu)先方法建立實時組編輯協(xié)同交互模型,包括用戶間協(xié)同交互模式的調(diào)整策略和Leader優(yōu)先協(xié)同交互模型;通過限制各協(xié)同站點上遠(yuǎn)程操作的同步順序,能夠在高并發(fā)的大規(guī)模協(xié)同環(huán)境下,有效控制操作的直接因果先序向量時間戳的大??;通過將實時組編輯會話根據(jù)協(xié)同站點間的網(wǎng)絡(luò)狀況合理分區(qū),并適當(dāng)引入一些虛擬協(xié)同站點參與協(xié)同交互模型,能夠繼續(xù)保持用戶間較高的協(xié)同感知性能。本發(fā)明有助于解決高并發(fā)大規(guī)模的協(xié)同環(huán)境下實時組編輯活動因果并發(fā)檢測問題,大大提高組編輯活動的性能。
      文檔編號G06F17/50GK101119365SQ20071004594
      公開日2008年2月6日 申請日期2007年9月13日 優(yōu)先權(quán)日2007年9月13日
      發(fā)明者張琦煒, 麟 朱, 楊江明, 寧 顧 申請人:復(fù)旦大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1