用于文檔協(xié)作編輯的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,具體涉及多用戶協(xié)作操作領(lǐng)域,尤其涉及用于文檔協(xié)作編輯的方法和裝置領(lǐng)域。
【背景技術(shù)】
[0002]為了小組團(tuán)隊(duì)方便溝通合作,在地理上彼此分開(kāi)的不同用戶可能希望就文檔進(jìn)行協(xié)作,比如小組頭腦風(fēng)暴,指定項(xiàng)目計(jì)劃等。通常采用利用互聯(lián)網(wǎng)實(shí)現(xiàn)的多用戶協(xié)作的工具和技術(shù),這些工具可使用戶能夠使用各自的客戶端來(lái)就文檔進(jìn)行遠(yuǎn)程協(xié)作??蓪⒔o定文檔的各部分發(fā)送到客戶端,并將文檔的各部分與特定用戶相關(guān)聯(lián)。客戶端可接收如由用戶提供的命令的表示,并且可確定是否在客戶端處執(zhí)行命令。上述技術(shù)還包括從客戶端接收對(duì)文檔的各部分的修訂,以及將文檔的這些部分存儲(chǔ)在被配置成存儲(chǔ)更新的內(nèi)容的存儲(chǔ)區(qū)域中。由于存在多個(gè)用戶同時(shí)修改服務(wù)器上的同一份文件,且網(wǎng)絡(luò)環(huán)境不一定穩(wěn)定的情況下,如何保證修改結(jié)果是唯一的是現(xiàn)在存在的技術(shù)問(wèn)題。
【發(fā)明內(nèi)容】
[0003]本申請(qǐng)?zhí)峁┝艘环N用于文檔協(xié)作編輯的方法和裝置,以解決【背景技術(shù)】中提到的一個(gè)問(wèn)題。
[0004]—方面,本申請(qǐng)?zhí)峁┝艘环N用于文檔協(xié)作編輯的方法,包括:從客戶端接收修訂信息,對(duì)所述修訂信息進(jìn)行編號(hào)并將其合并到文檔上;向客戶端回復(fù)帶所述編號(hào)的確認(rèn)消息,同時(shí)給所有正在協(xié)作編輯的其他客戶端發(fā)送廣播消息,所述廣播消息用于將帶所述編號(hào)的修訂信息合并到所述正在協(xié)作編輯的其他客戶端的文檔上。
[0005]在一些實(shí)施例中,所述修訂信息通過(guò)客戶端對(duì)文檔進(jìn)行編輯后的差值操作得到,所述差值操作采用數(shù)據(jù)傳輸協(xié)議,針對(duì)采用所述協(xié)議編輯得到的前后狀態(tài)的數(shù)據(jù)進(jìn)行。
[0006]在一些實(shí)施例中,在文檔上設(shè)置版本號(hào),所述版本號(hào)的值不固定。
[0007]在一些實(shí)施例中,對(duì)文檔進(jìn)行的編輯包括以下編輯狀態(tài):完成狀態(tài)、等待狀態(tài)和工作狀態(tài)。
[0008]在一些實(shí)施例中,所述向客戶端回復(fù)帶所述編號(hào)的確認(rèn)消息,包括:判斷所述文檔是否為新建文檔;當(dāng)判斷結(jié)果為否時(shí),通過(guò)與原文檔進(jìn)行合并來(lái)更新文檔信息,將所述版本號(hào)遞增;當(dāng)判斷結(jié)果為是時(shí),建立所述文檔,將所述版本號(hào)初始化。
[0009]在一些實(shí)施例中,所述向客戶端回復(fù)帶所述編號(hào)的確認(rèn)消息,包括:將所述版本號(hào)和更新后的文檔信息組成數(shù)據(jù)包,產(chǎn)生所述數(shù)據(jù)包的確認(rèn)信息,將所述確認(rèn)信息回復(fù)給客戶端。
[0010]在一些實(shí)施例中,同時(shí)給所有正在協(xié)作編輯的其他客戶端發(fā)送廣播消息,還包括:將接收到的修訂信息和更新后的所述版本號(hào)組成所述廣播消息,將所述廣播消息發(fā)送給其他客戶端。
[0011]在一些實(shí)施例中,在客戶端收到自己發(fā)送的修訂信息回復(fù)前,禁止所述客戶端再發(fā)送消息。
[0012]另一方面,本申請(qǐng)?zhí)峁┝艘环N用于文檔協(xié)作編輯的裝置,包括:接收模塊,配置用于從客戶端接收修訂信息,對(duì)所述修訂信息進(jìn)行編號(hào)并將其合并到文檔上;反饋模塊,配置用于向客戶端回復(fù)帶所述編號(hào)的確認(rèn)消息,同時(shí)給所有正在協(xié)作編輯的其他客戶端發(fā)送廣播消息,所述廣播消息用于將帶所述編號(hào)的修訂信息合并到所述正在協(xié)作編輯的其他客戶端的文檔上。
[0013]在一些實(shí)施例中,反饋模塊進(jìn)一步配置用于在文檔上設(shè)置版本號(hào),所述版本號(hào)的值不固定。
[0014]在一些實(shí)施例中,接收模塊進(jìn)一步配置用于通過(guò)客戶端對(duì)文檔進(jìn)行編輯后的差值操作得到所述修訂信息,采用數(shù)據(jù)傳輸協(xié)議實(shí)現(xiàn)所述差值操作,將所述協(xié)議編輯得到的前后狀態(tài)的數(shù)據(jù)進(jìn)行所述差值操作。
[0015]在一些實(shí)施例中,對(duì)文檔進(jìn)行的編輯包括以下編輯狀態(tài):完成狀態(tài)、等待狀態(tài)和工作狀態(tài)。
[0016]在一些實(shí)施例中,反饋模塊進(jìn)一步配置用于判斷所述文檔是否為新建文檔;當(dāng)判斷結(jié)果為否時(shí),通過(guò)與原文檔進(jìn)行合并來(lái)更新文檔信息,將所述版本號(hào)遞增;當(dāng)判斷結(jié)果為是時(shí),建立所述文檔,將所述版本號(hào)初始化。
[0017]在一些實(shí)施例中,反饋模塊進(jìn)一步配置用于將所述版本號(hào)和更新后的文檔組成數(shù)據(jù)包,產(chǎn)生所述數(shù)據(jù)包的確認(rèn)信息,將所述確認(rèn)信息回復(fù)給客戶端。
[0018]在一些實(shí)施例中,反饋模塊進(jìn)一步配置用于將接收到的修訂信息和更新后的所述版本號(hào)組成所述廣播消息,將所述廣播消息發(fā)送給其他客戶端。
[0019]在一些實(shí)施例中,還包括信息發(fā)送禁止模塊,配置用于在客戶端收到自己發(fā)送的修訂信息回復(fù)前,禁止所述客戶端再發(fā)送消息。
[0020]第三方面,本申請(qǐng)?zhí)峁┝艘环N用于文檔協(xié)作編輯的方法,包括:向服務(wù)器發(fā)送修訂信息,所述修訂信息通過(guò)差值操作獲得;接收服務(wù)器發(fā)送的確認(rèn)消息,所述確認(rèn)消息帶有所述修訂信息的編號(hào)。
[0021]第四方面,本申請(qǐng)?zhí)峁┝艘环N用于文檔協(xié)作編輯的裝置,包括:發(fā)送模塊,配置用于向服務(wù)器發(fā)送修訂信息,所述修訂信息通過(guò)差值操作獲得;接收確認(rèn)消息模塊,配置用于接收服務(wù)器發(fā)送的確認(rèn)消息,所述確認(rèn)消息帶有所述修訂信息的編號(hào)。
[0022]第五方面,本申請(qǐng)?zhí)峁┝艘环N用于文檔協(xié)作編輯的方法,包括:接收服務(wù)器發(fā)送的廣播消息,所述廣播消息包括帶編號(hào)的修訂信息;將所述帶編號(hào)的修訂信息合并到文檔上。
[0023]第六方面,本申請(qǐng)?zhí)峁┝艘环N用于文檔協(xié)作編輯的裝置,包括:接收廣播消息模塊,配置用于接收服務(wù)器發(fā)送的廣播消息,所述廣播消息包括帶編號(hào)的修訂信息;合并模塊,配置用于將所述帶編號(hào)的修訂信息合并到文檔上。
[0024]本申請(qǐng)?zhí)峁┑挠糜谖臋n協(xié)作編輯的方法和裝置,通過(guò)定義三種協(xié)作工作狀態(tài),并在各個(gè)狀態(tài)之間跳轉(zhuǎn)來(lái)實(shí)現(xiàn)傳輸編輯前后的修訂信息,并通過(guò)特定編號(hào)進(jìn)行合并操作,滿足了多用戶同時(shí)協(xié)作編輯的結(jié)果唯一性的需求。
【附圖說(shuō)明】
[0025]通過(guò)閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本申請(qǐng)的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
[0026]圖1是根據(jù)本申請(qǐng)的文檔協(xié)作編輯方法一個(gè)實(shí)施例的流程圖;
[0027]圖2是根據(jù)本申請(qǐng)的文檔協(xié)作編輯方法的又一個(gè)實(shí)施例的服務(wù)器消息傳遞示意圖;
[0028]圖3是根據(jù)本申請(qǐng)的文檔協(xié)作編輯方法的又一個(gè)實(shí)施例的客戶端消息傳遞示意圖;
[0029]圖4是根據(jù)本申請(qǐng)的文檔協(xié)作編輯方法的又一個(gè)實(shí)施例的其他客戶端消息傳遞示意圖;
[0030]圖5是根據(jù)本申請(qǐng)的文檔協(xié)作編輯方法另一個(gè)實(shí)施例的消息更新流程圖;
[0031]圖6是根據(jù)本申請(qǐng)的文檔協(xié)作編輯方法再一個(gè)實(shí)施例的協(xié)作編輯示意圖;
[0032]圖7是根據(jù)本申請(qǐng)的文檔協(xié)作編輯方法的一個(gè)實(shí)施例的思維導(dǎo)圖示意圖;
[0033]圖8是根據(jù)本申請(qǐng)的文檔協(xié)作編輯方法的一個(gè)實(shí)施例的裝置架構(gòu)圖。
【具體實(shí)施方式】
[0034]下面結(jié)合附圖和實(shí)施例對(duì)本申請(qǐng)作進(jìn)一步的詳細(xì)說(shuō)明??梢岳斫獾氖?,此處所描述的具體實(shí)施例僅僅用于解釋相關(guān)發(fā)明,而非對(duì)該發(fā)明的限定。另外還需要說(shuō)明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。
[0035]需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本申請(qǐng)。
[0036]請(qǐng)參閱圖1,其示出了根據(jù)本申請(qǐng)的文檔協(xié)作編輯方法一個(gè)實(shí)施例的協(xié)作編輯示意圖100,其包括了:服務(wù)器101、客戶端102和客戶端103。
[0037]在本實(shí)施例中,服務(wù)器101與客戶端102和客戶端103相連接,當(dāng)客戶端102編輯完后,向服務(wù)器101傳輸數(shù)據(jù)包,服務(wù)器101接收后將數(shù)據(jù)包合并到原來(lái)的版本上形成新的版本;客戶端103加入后,先將服務(wù)器101上最新版本的文件下載下來(lái);而每個(gè)用戶編輯的是從服務(wù)器101端下載下來(lái)的文件的副本,而每次修改被發(fā)送到服務(wù)器101,且服務(wù)器101確認(rèn)之后,客戶端102、103的文件也需要相應(yīng)的做一次修改,如果修改沒(méi)有得到服務(wù)器101的確認(rèn),則本次修改是無(wú)效的,應(yīng)該被丟棄;而在實(shí)際操作中,由于客戶端102和客戶端103同時(shí)修改服務(wù)器101上的同一份文件,且網(wǎng)絡(luò)環(huán)境不一定穩(wěn)定的情況下,如何保證修改結(jié)果是唯一的是現(xiàn)有技術(shù)存在的技術(shù)問(wèn)題。對(duì)于服務(wù)器101而言,有多個(gè)用戶發(fā)送數(shù)據(jù)包時(shí),由于存在網(wǎng)絡(luò)延遲和修改的時(shí)機(jī)不同,服務(wù)器101應(yīng)該如何處理這些來(lái)自不同客戶的修改信息也是現(xiàn)有技術(shù)需要去解決的技術(shù)問(wèn)題。
[0038]請(qǐng)參考圖2,其示出了根據(jù)本申請(qǐng)的文檔協(xié)作編輯方法又一個(gè)實(shí)施例的服務(wù)器消息傳遞示意圖200。該實(shí)施例解決了多用戶協(xié)作服務(wù)中,可能存在的延時(shí)操作造成的編輯結(jié)果不唯一的問(wèn)題。
[0039]針對(duì)上述問(wèn)題,本實(shí)施例所述的用于文檔協(xié)作編輯方法的流程圖200包括以下步驟:
[0040]步驟201,從客戶端接收修訂信息,對(duì)所述修訂信息進(jìn)行編號(hào)并將其合并到文檔上。
[0041 ]在本實(shí)施例中,采用了 JSON (JavaScript Object Notat1n,JavaScript 對(duì)象表示法,一種輕量