實(shí)時(shí)協(xié)同編輯系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種能夠保留所有用戶的操作意愿以及融合意愿的實(shí)時(shí)協(xié)同編輯系統(tǒng)。
【背景技術(shù)】
[0002]協(xié)同編輯系統(tǒng)是一種允許處于不同地域的用戶通過計(jì)算機(jī)網(wǎng)絡(luò)同時(shí)來編輯同一個(gè)文檔(包括文本,圖形,視頻,音頻等)的編輯系統(tǒng),即、多個(gè)用戶可以通過協(xié)同編輯系統(tǒng)實(shí)時(shí)的來編輯同一個(gè)文檔。
[0003]目前,協(xié)同編輯系統(tǒng)目前主要有兩種模式:異步協(xié)同和實(shí)時(shí)協(xié)同。
[0004]異步協(xié)同允許多人在時(shí)間上分離地對(duì)同一內(nèi)容進(jìn)行編輯,并通過加鎖、版本控制等機(jī)制保證同一區(qū)域的內(nèi)容不會(huì)在同一個(gè)時(shí)刻被同時(shí)修改,但這種解決方案在用戶感知和并發(fā)度方面存在較大缺陷,只有當(dāng)用戶提交了本地更新版本之后,其他用戶才可能感知到該用戶的編輯效果,并申請(qǐng)進(jìn)行修改。
[0005]實(shí)時(shí)協(xié)同通常采用全復(fù)制式架構(gòu),各參與用戶通過在本地副本立即執(zhí)行本地操作,并通過操作轉(zhuǎn)發(fā)方式通知其他用戶來實(shí)現(xiàn)共享內(nèi)容的同步更新。在這種架構(gòu)下,每個(gè)參與用戶擁有對(duì)共享內(nèi)容的對(duì)等編輯權(quán)限,即、任意用戶可以在任意時(shí)刻對(duì)共享內(nèi)容的任意部分執(zhí)行任意的編輯操作。這種對(duì)等協(xié)作模式具有較短的響應(yīng)時(shí)間和較高的并發(fā)度等優(yōu)勢(shì)。
[0006]然而,當(dāng)實(shí)時(shí)協(xié)同出現(xiàn)沖突操作時(shí),即不同的用戶對(duì)同一個(gè)內(nèi)容的同一屬性進(jìn)行了不同的編輯操作,通常采用兩種方式來解決:一、對(duì)該沖突操作都不執(zhí)行;二、根據(jù)預(yù)先設(shè)定好的每個(gè)用戶的優(yōu)先級(jí),執(zhí)行優(yōu)先級(jí)高的用戶的編輯操作。而這兩種處理方式都造成了用戶腦力資源的浪費(fèi)。
【發(fā)明內(nèi)容】
[0007]本發(fā)明是為了解決上述問題而進(jìn)行的,目的在于提供一種能夠保留所有用戶的操作意愿并對(duì)沖突意愿進(jìn)行融合的實(shí)時(shí)協(xié)同編輯系統(tǒng)。
[0008]本發(fā)明提供了一種實(shí)時(shí)協(xié)同編輯系統(tǒng),讓至少兩個(gè)用戶同時(shí)對(duì)同一個(gè)待編輯文件進(jìn)行編輯,其特征在于,包括:至少兩個(gè)用戶終端,通過通信網(wǎng)絡(luò)相通信連接,用于讓每個(gè)用戶--對(duì)應(yīng)使用,每個(gè)用戶終端包含:畫面存儲(chǔ)部、輸入顯示部、用戶側(cè)通信部、用戶側(cè)操作執(zhí)行部、時(shí)間戳設(shè)定部、判斷部以及操作融合部;以及服務(wù)器,通過通信網(wǎng)絡(luò)與每個(gè)用戶終端相通信連接,包含:文件存儲(chǔ)部、服務(wù)側(cè)通信部以及服務(wù)側(cè)操作執(zhí)行部,其中,文件存儲(chǔ)部對(duì)應(yīng)存儲(chǔ)有文件名稱和編輯文件,畫面存儲(chǔ)部存儲(chǔ)有待編輯文件設(shè)定畫面和文件顯示畫面,輸入顯示部顯示待編輯文件設(shè)定畫面,讓用戶輸入待編輯文件名稱從而設(shè)定待編輯文件,用戶側(cè)通信部通過通信網(wǎng)絡(luò)將被輸入的待編輯文件名稱發(fā)送至服務(wù)器,服務(wù)側(cè)通信部通過通信網(wǎng)絡(luò)接收用戶終端發(fā)送來的待編輯文件名稱,檢索獲取部基于被接收到的待編輯文件名稱從文件存儲(chǔ)部中檢索出文件名稱,并獲取相應(yīng)的編輯文件,服務(wù)側(cè)通信部通過通信網(wǎng)絡(luò)將被獲取的編輯文件分別發(fā)送至每個(gè)用戶終端,用戶側(cè)通信部接收服務(wù)器發(fā)送來的編輯文件,輸入顯示部將被接收到的編輯文件顯示在文件顯示畫面中,讓用戶進(jìn)行編輯操作,用戶側(cè)操作執(zhí)行部用于執(zhí)行編輯操作,時(shí)間戳設(shè)定部用于在編輯操作被執(zhí)行時(shí)設(shè)定相對(duì)應(yīng)的表示該編輯操作的執(zhí)行時(shí)間的時(shí)間戳,用戶側(cè)通信部將相應(yīng)的編輯操作與時(shí)間戳一起發(fā)送至服務(wù)器和其他的用戶終端,判斷部用于判斷被接收到的時(shí)間戳與當(dāng)前的編輯操作的時(shí)間戳是否相同,當(dāng)判斷為是時(shí),進(jìn)一步判斷相應(yīng)的編輯操作所針對(duì)的編輯對(duì)象是否相同,當(dāng)判斷為是時(shí),操作融合部基于預(yù)定融合規(guī)則對(duì)相應(yīng)的編輯操作進(jìn)行融合從而得到融合操作,輸入顯示部基于預(yù)定順序?qū)⒔邮盏降木庉嫴僮?、?dāng)前的編輯操作以及融合操作顯示在文件顯示畫面中,讓用戶從中選定一個(gè)作為讓操作執(zhí)行部執(zhí)行的編輯操作,服務(wù)側(cè)操作執(zhí)行部執(zhí)行被接收到的編輯操作,文件存儲(chǔ)部對(duì)執(zhí)行文件名稱和被執(zhí)行編輯操作后的編輯文件進(jìn)行對(duì)應(yīng)存儲(chǔ)。
[0009]在本發(fā)明提供的實(shí)時(shí)協(xié)同形編輯系統(tǒng)中,還可以具有這樣的特征:其中,用戶終端還包含網(wǎng)絡(luò)連接設(shè)定部,用于設(shè)定通信網(wǎng)絡(luò)的連接和斷開。
[0010]發(fā)明的作用和效果
[0011]根據(jù)本發(fā)明所涉及的實(shí)時(shí)協(xié)同編輯系統(tǒng),用戶通過任意一個(gè)用戶終端設(shè)定待編輯文件名稱后,用戶側(cè)通信部將待編輯文件名稱發(fā)送至服務(wù)器,檢索獲取部基于該待編輯文件名稱從文件存儲(chǔ)部中檢索并獲取相應(yīng)的編輯文件,服務(wù)側(cè)通信部將該編輯文件發(fā)送至每個(gè)用戶終端,讓用戶能夠同時(shí)進(jìn)行編輯操作,時(shí)間戳設(shè)定部在相應(yīng)的編輯操作執(zhí)行時(shí)設(shè)定時(shí)間戳,該編輯操作和時(shí)間戳一起被發(fā)送至服務(wù)器和其他的用戶終端,其他的用戶終端對(duì)接收到的編輯操作和當(dāng)前的編輯操作進(jìn)行判斷,若時(shí)間戳相同,進(jìn)一步判斷其所針對(duì)的編輯對(duì)象相同,若相同,操作融合部進(jìn)行融合得到融合操作,輸入顯示部顯示接收到的編輯操作、當(dāng)前的編輯操作和融合操作,讓用戶從中選定一個(gè)進(jìn)行執(zhí)行,該選定執(zhí)行的編輯操作被發(fā)送至服務(wù)器和其他用戶終端同步執(zhí)行,文件存儲(chǔ)部對(duì)被編輯后的編輯文件進(jìn)行存儲(chǔ),所以,本發(fā)明的實(shí)時(shí)協(xié)同編輯系統(tǒng)既實(shí)現(xiàn)了讓多個(gè)用戶進(jìn)行協(xié)同編輯,又保留了所有用戶的操作意愿,并且還實(shí)現(xiàn)了對(duì)用戶的不同操作意愿的融合。
【附圖說明】
[0012]圖1是本發(fā)明的實(shí)施例中實(shí)時(shí)協(xié)同編輯系統(tǒng)的結(jié)構(gòu)框圖;
[0013]圖2是本發(fā)明的實(shí)施例中用戶終端的結(jié)構(gòu)框圖;
[0014]圖3是本發(fā)明的實(shí)施例中服務(wù)器的結(jié)構(gòu)框圖;以及
[0015]圖4是本發(fā)明的實(shí)施例中實(shí)時(shí)協(xié)同編輯系統(tǒng)的動(dòng)作流程圖。
【具體實(shí)施方式】
[0016]為了使本發(fā)明實(shí)現(xiàn)的技術(shù)手段、創(chuàng)作特征、達(dá)成目的與功效易于明白了解,以下實(shí)施例結(jié)合附圖對(duì)本發(fā)明的實(shí)時(shí)協(xié)同編輯系統(tǒng)作具體闡述。
[0017]圖1是本發(fā)明的實(shí)施例中實(shí)時(shí)協(xié)同編輯系統(tǒng)的結(jié)構(gòu)框圖。
[0018]如圖1所示,在本實(shí)施例中,實(shí)時(shí)協(xié)同編輯系統(tǒng)100用于讓三個(gè)處于不同地域的用戶同時(shí)對(duì)同一個(gè)圖中未顯示的待編輯編輯文件進(jìn)行編輯。這里,編輯文件是文本文件,例如word文檔ο
[0019]實(shí)時(shí)協(xié)同編輯系統(tǒng)100包含:三個(gè)用戶終端10和服務(wù)器30。三個(gè)用戶終端10用于讓三個(gè)用戶一一對(duì)應(yīng)地使用,并且每個(gè)用戶終端10通過通信網(wǎng)絡(luò)40與服務(wù)器30相通信連接。
[0020]在本實(shí)施例中,三個(gè)用戶終端10的結(jié)構(gòu)完全相同,在此僅對(duì)其中一個(gè)用戶終端10進(jìn)行詳細(xì)描述,省略對(duì)另外兩個(gè)用戶終端10的詳細(xì)描述。
[0021]圖2是本發(fā)明的實(shí)施例中用戶終端的結(jié)構(gòu)框圖。
[0022]用戶終端10包含:畫面存儲(chǔ)部11、輸入顯示部12、用戶側(cè)通信部13、用戶側(cè)操作執(zhí)行部14、時(shí)間戳設(shè)定部15、判斷部16、操作融合部17、用戶側(cè)暫存部18、網(wǎng)絡(luò)連接設(shè)定部19以及控制上述各部運(yùn)行的用戶側(cè)控制部20。
[0023]圖3是本發(fā)明的實(shí)施例中服務(wù)器的結(jié)構(gòu)框圖。
[0024]如圖3所示,服務(wù)器30包含:文件存儲(chǔ)部31、服務(wù)側(cè)通信部32、檢索獲取部33、月艮務(wù)側(cè)操作執(zhí)行部34以及控制上述各部運(yùn)行的服務(wù)側(cè)控制部35。
[0025]文件存儲(chǔ)部31對(duì)應(yīng)存儲(chǔ)有文件名稱和編輯文件。
[0026]畫面存儲(chǔ)部11存儲(chǔ)有待編輯文件設(shè)定畫面和文件顯示畫面。
[0027]輸入顯示部12顯示待編輯文件設(shè)定畫面,讓用戶輸入待編輯文件名稱從而設(shè)定待編輯編輯文件。
[0028]用戶側(cè)通信部13通過通信網(wǎng)絡(luò)40將被輸入的待編輯文件名稱發(fā)送至服務(wù)器30。
[0029]服務(wù)側(cè)通信部32通過通信網(wǎng)絡(luò)40接收用戶終端10發(fā)送來的待編輯文件名稱。
[0030]檢索獲取部33基于被服務(wù)側(cè)通信部32接收到的待編輯文件名稱從文件存儲(chǔ)部31中檢索出相同的文件名稱,并獲取與該文件名稱相對(duì)應(yīng)的編輯文件。
[0031]服務(wù)側(cè)通信部32通過通信網(wǎng)絡(luò)40將被檢索獲取部33獲取的編輯文件分別發(fā)送至每個(gè)用戶終端10。
[0032]用戶側(cè)通信部13通過通信網(wǎng)絡(luò)40接收服務(wù)器30發(fā)送來的編輯文件。
[0033]輸入顯示部12將相應(yīng)的用戶側(cè)通信部13接收到的編輯文件顯示在相應(yīng)的文件顯示畫面中,從而讓用戶進(jìn)行編輯操作。
[0034]用戶側(cè)操作執(zhí)行部14用于執(zhí)行用戶所進(jìn)行的編輯操作。
[0035]時(shí)間戳設(shè)定部15用于在每個(gè)編輯操作被執(zhí)行時(shí)設(shè)定相應(yīng)的時(shí)間戳,該時(shí)間戳采用向量形式來表示該編輯操作的執(zhí)行時(shí)間,這樣能夠使所有用戶終端之間的時(shí)間戳設(shè)定標(biāo)準(zhǔn)相同。
[0036]用戶側(cè)通信部13通過通信網(wǎng)絡(luò)40將相應(yīng)的編輯操作和時(shí)間戳一起發(fā)送至服務(wù)器30和另外兩個(gè)用戶終端10。
[0037]服務(wù)側(cè)通信部32通過通信網(wǎng)絡(luò)40接收當(dāng)前的用戶側(cè)通信部13發(fā)送來的編輯操作和時(shí)間戳;同時(shí),另外兩個(gè)用戶終端10所包含的用戶側(cè)通信部13也通過通信網(wǎng)絡(luò)40接收當(dāng)前的用戶側(cè)通信部13發(fā)送來的編輯操作和時(shí)間戳。
[0038]判斷部16用于判斷被接收到的時(shí)間戳與當(dāng)前用戶終端10所進(jìn)行的編輯操作的時(shí)間戳是否相同,當(dāng)判斷為是時(shí),進(jìn)一步判斷被接收到的編輯操作與當(dāng)前的編輯操作所針對(duì)的編輯對(duì)象是否相同,當(dāng)判斷為是時(shí),即不同的用戶對(duì)同一個(gè)編輯對(duì)象進(jìn)行編輯,例如,一個(gè)用戶將字符“a”更改為紅色、時(shí)間戳為(0,I),另一個(gè)用戶將該字符“a”更改為黃色、時(shí)間戳為(0,I),這樣,這兩個(gè)用戶的編輯操作即為同時(shí)針對(duì)的同一編輯對(duì)象進(jìn)行編輯,屬于沖突操作。
[0039]在這種情況下,操作融合部17根據(jù)預(yù)定融合規(guī)則對(duì)該同時(shí)對(duì)同一編輯對(duì)象進(jìn)行編輯的多個(gè)編輯操作進(jìn)行融合,得到融合操作。在本實(shí)施例中,預(yù)定融合規(guī)則為:當(dāng)編輯操作B和C沖突時(shí),操作融合部17對(duì)編輯操作B和C進(jìn)行融合得到融合操作BC ;當(dāng)編輯操作D、E和F沖突時(shí),操作融合部17對(duì)編輯操作D和E進(jìn)行融合得到融合操作DE,對(duì)編輯操作D和F進(jìn)行融合得到融合操作DF,對(duì)編輯操作E和F進(jìn)行融合得到融合操作EF,對(duì)編輯操作D、E和F進(jìn)行融合得到融合操作DEF。
[0040]輸入顯示部12將該接收到的編輯操作、當(dāng)前的編輯操作以及融合操作顯示在文件顯示畫面中,讓用戶從中選擇一個(gè)作為讓相應(yīng)的用戶側(cè)操作執(zhí)行部14執(zhí)行的編輯操作。
[00