[發明專利]實時云辦公系統下文件管理的一致性維護方法有效
| 申請號: | 201711327908.3 | 申請日: | 2017-12-13 |
| 公開(公告)號: | CN108063812B | 公開(公告)日: | 2020-07-17 |
| 發明(設計)人: | 高麗萍;張強;陶長青 | 申請(專利權)人: | 上海理工大學 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08;G06F16/178;G06F16/182 |
| 代理公司: | 上海申匯專利代理有限公司 31001 | 代理人: | 吳寶根;徐穎 |
| 地址: | 200093 *** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 實時 辦公 系統 文件 管理 一致性 維護 方法 | ||
1.一種實時云辦公系統下文件管理的一致性維護方法,其特征在于,具體包括如下步驟:
A建立數據模型:
定義1:樹形文檔復制空間,樹形結構中各節點都是層次結構,T=(N),N是樹中的節點,節點N={N0,N1,N2,N3.....}表示樹形文檔中各節點的集合,N.param={name,PN,Depth}:表示節點N的屬性集,其中name是節點名稱,PN為路徑,Depth為層級;
定義2:Depth是節點所處樹形結構中的層級,根節點層級默認為0;
定義3:路徑PN是節點Ni從根節點N0到Ni路徑,定義的路徑由根節點到上層父親節點的路徑加上該節點的名字命名組成,假設兩個路徑Ni.PN和Nj.PN會有以下rn1-rn4四種關系:
rn1:Ni.PN=Nj.PN:表示節點Ni和Nj指向相同的節點,
rn2:Ni.PN∈Nj.PN:表示節點Ni是節點Nj的上層節點,
rn3:Nj.PN∈Ni.PN:表示節點Nj是節點Ni的上層節點,
rn4:Ni.PN≠Nj.PNNi.PN¢Nj.PNNj.PN¢Ni.PN:表示節點Ni和Nj沒有直接關系,對節點操作沒有影響,
對于一個已經建立的樹形結構,對于任意兩個路徑Ni.PN和Nj.PN,進行如下路徑關聯:
1)對層級判斷,如果Ni.DepthNj.Depth,則進入步驟2)
2)Ni.PN∈Nj.PN是否為真,如真,則進行rn2判斷,如不真進行rn4判斷;
3)對層級判斷,如果Ni.Depth=Nj.Depth,則進入步驟4)
4)Ni.PN=Nj.PN是否為真,如真,則進行rn1判斷,如不真進行rn4判斷;
5)對層級判斷,不滿足1)或3)則進入步驟6)
6)Nj.PN∈Ni.PN是否為真,如真,則進行rn3判斷,如不真進行rn4判斷;B:轉換函數:
針對文件管理過程中的三個常見操作-創建create、改名rename和刪除delete操作做轉換函數,給定并發操作Oa和Ob分別操作于節點i和節點j,Oa在Ob后執行,在Ob的基礎上對Oa進行操作轉換,如此針對三種操作模型有9種轉換函數,如下表:
表中⊙表示兼容操作,表示沖突操作,
在以上9種情況下的轉換函數的算法:
B1:Oa=create(Ni,Ninew),Ob=create(Nj,Njnew),在這種情況下,兩者的操作沒有沖突,執行效果不變;
B2:Oa=rename(Ni.nameold,Ni.namenew),Ob=create(Nj,Njnew),在此種情況下,兩者操作沒有沖突,執行效果不變;
B3:Oa=delete(Ni),Ob=create(Nj,Njnew),若節點i是j的上層節點或者同一節點時,則Oa的返回效果是刪除除了節點i到節點j之外的所有節點,其他情況保留原始的執行效果;
B4:Oa=create(Ni,Ninew),Ob=rename(Nj.nameold,Nj.namenew),若節點i和節點j是同一節點,則操作Oa的作用節點i的路徑更改為節點j的路徑,其他情況下則保留原始的執行效果;
B5:Oa=rename(Ni.nameold,Ni.namenew),Ob=rename(Nj.nameold,Nj.namenew)若i和j是同一節點時,保留本地的rename操作,并對該節點進行標記;若i是j的下層包含節點,修改Ni的路徑,再執行Oa;其他情況,直接執行Oa;
B6:Oa=delete(Ni),Ob=rename(Nj.nameold,Nj.namenew),是在Ob操作之后對Oa操作做操作轉換,當i和j是同一節點時,保留Ob操作的效果,Oa操作執行效果為空;當i是j的下層包含節點時,對Ni的路徑進行修改,再返回正確的執行效果;其他情況,保留原始的執行效果;
B7:Oa=create(Ni,Ninew),Ob=delete(Nj),若節點j是節點i的下層節點或者是同一節點,則修改Ni的路徑,使其恢復被刪除的節點j到節點i的路徑,再返回正確的執行效果,其他情況下則保留原始的執行效果;
B8:Oa=rename(Ni.nameold,Nj.namenew),Ob=delete(Nj),若i和j是同一節點,rename操作的執行效果是對delete操作做undo操作且加上rename的執行效果,若i是j的下層包含節點,那么rename執行效果為空;其他情況rename為原始執行效果;
B9:Oa=delete(Ni),Ob=delete(Nj),若節點i是節點j的下層節點或者是同一節點,那么對操作Oa執行的效果就為空,其他情況為非沖突操作,執行效果不變;
C:Improved_COT算法:
在COT中,每次操作傳輸都帶有C(O),其中COT是基于上下文的操作轉換算法,C(O)是COT中的各站點維護的文檔狀態,COT的工作核心是每次傳到其他站點的操作執行COT(O,DS),如下:
1)、可執行形式EO=transform(O,DS-C(O))
2)、執行EO
3)、DS=DS+{org(EO)};
其中,DS是當前站點的文本狀態,EO為操作O的可執行形式,org(EO)為操作O的原始形式,DS-C(O)代表著所有和操作O并發的并且已執行過的操作集合,首先將操作O與已執行過的并發操作進行包含轉換得到可執行形式的操作EO,并執行,更新文本狀態使其包含操作O的效果;
在服務器端和客戶端站點分別維護兩個文檔DS和DS',DS與COT中DS一致,DS'是一個動態變化的文檔狀態,在協同工作開始后,在服務器端設置一個定時器Timer,TDS為在中心服務器上進行處理的操作序列,MDS為從各站點接受過來的操作序列集合,服務器每隔時間t向各站點發出接受DS'的請求,初始化MDS為DS’的集合,在云環境下高效處理大量數據用到了負載均衡算法:首先,當協同人數很少,一臺服務器就能夠很快的處理完成,直接服務器處理完成即可,當協同人數過多達到設定的臨界值,此時對數據進行分流,多臺服務器同時工作,快速處理完成并將部分處理結果反饋到一臺服務器上,進行最終處理,這里設置一個臨界值Limit表示當MDS的長度大于這個臨界值的時候,處理過程使用handler(TDS)函數進行,最終將標記的序列FLAGCO發送到每個客戶端;
在客戶端接受到FLAGCO后,DS’副本進行標記,將生成新的DS’置為DS’-FLAGCO,這樣每隔一個時間段服務器向每個站點發送一次請求,進行處理;
服務器端的hanlder(TDS)算法如下:
初始化CO0為TDS的第一個元素,依次與隊列中的其他元素進行handler(DS1,DS2)處理,最終返回一個FLAGCO的序列,函數Handler(S1,S2)如下:
對來自兩個站點的序列DS1和DS2處理如下,首先初始化兩個為空的CO1和CO2,判斷DS1和DS2是否有相同的隊列長度,是,對DS1和DS2進行復制操作,產生DS1’和DS2’,對DS1’和DS2’中的操作按標記的序號進行排序操作,若DS1’和DS2’是相同的,則返回DS1,若不同維護一個DS’是找到DS1和DS2中的所有相同的元素,分別將DS1和DS2中的元素與DS’中的元素對比,存在DS’中的元素按在DS1和DS2中的順序分別記錄到CO1和CO2中,然后遞歸處理Handler(CO1,CO2),直到找出滿足條件的CO;
服務器端算法:線程1是為了監聽用戶的動態變化,每次有新的用戶加入進來就給用戶發送最新的文檔副本,線程2接受各站點的操作進行Improved_COT算法處理,線程3將接收到的操作直接轉發到其他站點;
客戶端算法:線程1是在初次連接時接受來自服務器端的文檔副本,線程2進行改進的COT控制算法,線程3是將產生的操作立即傳到服務器端。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海理工大學,未經上海理工大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711327908.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種塑料瓶回收自動制條裝置
- 下一篇:臭氧催化氧化催化劑及其制備方法和應用





