[發明專利]一種基于操作轉換的文本編輯實時協同方法有效
| 申請號: | 201410362735.9 | 申請日: | 2014-07-28 | 
| 公開(公告)號: | CN104077425A | 公開(公告)日: | 2014-10-01 | 
| 發明(設計)人: | 何發智;蔡維緯;呂曉 | 申請(專利權)人: | 武漢大學 | 
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 | 
| 代理公司: | 武漢科皓知識產權代理事務所(特殊普通合伙) 42222 | 代理人: | 張火春 | 
| 地址: | 430072 湖*** | 國省代碼: | 湖北;42 | 
| 權利要求書: | 查看更多 | 說明書: | 查看更多 | 
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 操作 轉換 文本編輯 實時 協同 方法 | ||
1.一種基于操作轉換的文本編輯實時協同方法,其特征在于:包括如下步驟:所述協同編輯系統中的每個站點都包括接受隊列,等待隊列,執行隊列;
步驟1:每個站點產生的操作在該站點立即執行,并將該操作加入執行隊列,同時將該操作發送到其他站點;
步驟2:每個站點接收到的遠程操作加入到接收隊列,當該遠程操作的所有因操作已經被加入到執行隊列,進入步驟3,否則,將該操作加入到等待隊列中;
步驟3:每個站點根據操作規則在執行隊列中找出與該操作具有并發關系的操作;
步驟4:將找出的并發操作進行轉換得到該操作在該站點的執行形式;
步驟5:執行轉換后的操作并將該操作加入到執行隊列;
步驟6:完成協同編輯。
2.根據權利要求1所述的一種基于操作轉換的文本編輯實時協同方法,其特征在于:所述的找出與該操作具有并發關系的操作的規則為:
包含轉換用IT表示,排斥轉換用ET表示;對于任何一個操作o,o.t表示操作的類型:插入記為Ins、刪除記為Del,o.c表示操作的作用字符,o.p表示操作的位置,o.id表示產生該操作的站點標識,o.dn表示與之轉換的刪除操作位置小于p的數目;操作的包含轉換或者排斥轉換只會改變o.p的值,其他屬性保持不變;每個站點維護一個字典Dic,用于查詢o1在對o2進行包含轉換IT(o1,o2)之前的位置,其中o1為插入操作,o2為刪除操作,字典的關鍵字為<idnex1,idnex2>的二元組,值為o1在對o2進行包含轉換之前的p;idnex1為操作o1在執行隊列中的位置,idnex2為操作o2在執行隊列中的位置;
當o1.t=Ins,o2.t=Ins;?如果o1.p<o2.p,則IT(o1,o2)=Ins(p1,c1,id1,dn1);如果o1.p=o2.p并且o1.dn<o2.dn,則IT(o1,o2)=Ins(p1,c1,id1,dn1);如果o1.p=o2.p并且o1.dn=o2.dn和o1.id<o2.id,則IT(o1,o2)=Ins(p1,c1,id1,dn1);如果o1.p>o2.p,則IT(o1,o2)=Ins(p1+1,c1,id1,dn1);如果o1.p=o2.p并且o1.dn>o2.dn,則IT(o1,o2)=Ins(p1+1,c1,id1,dn1);如果o1.p=o2.p并且o1.dn=o2.dn和o1.id>o2.id,則IT(o1,o2)=Ins(p1+1,c1,id1,dn1);
當o1.t=Ins,o2.t=Del;?如果o1.p≤o2.p,則IT(o1,o2)=Ins(p1,c1,id1,dn1);如果o1.p>o2.p,則IT(o1,o2)=Ins(p1-1,c1,id1,?dn1+1);?Dic<index1,index2>=o1.p;
當o1.t=Del,o2.t=Ins;?如果o1.p<o2.p,則IT(o1,o2)=Del(p1);如果o1.p≥o2.p,則IT(o1,o2)=Del(p1+1);
當o1.t=Del,o2.t=Del;?如果o1.p<o2.p,則IT(o1,o2)=Del(p1);如果o1.p>o2.p,則IT(o1,o2)=Del(p1-1);如果o1.p=o2.p,則IT(o1,o2)=Nop;其中Nop表示空操作;
當o1.t=Ins,o2.t=Ins;?如果o1.p≤o2.p,則ET(o1,o2)=Ins(p1,c1,id1,dn1);如果o1.p=o2.p,則ET(o1,o2)=Ins(p1-1,c1,id1,dn1);
當o1.t=Ins,o2.t=Del;?如果o1.p<o2.p,則ET(o1,o2)=Ins(p1,c1,id1,dn1);如果o1.p>o2.p,則ET(o1,o2)=Ins(p1’,c1,id1,dn1-1),p1’=Dic<index1,index2>;如果o1.p=o2.p,則p1’=Dic<index1,index2>;?假如p1’>o2.p,則ET(o1,o2)=Ins(p1’,c1,id1,dn1-1);否則ET(o1,o2)=Ins(p1’,c1,id1,dn1);
當o1.t=Del,o2.t=Ins;?如果o1.p<o2.p,則ET(o1,o2)=Del(p1);如果o1.p>o2.p,則ET(o1,o2)=Del(p1+1);不存在o1.p=o2.p的情況;
當o1.t=Del,o2.t=Del;?如果o1.p<o2.p,則ET(o1,o2)=Del(p1);如果o1.p≥o2.p,則ET(o1,o2)=Del(p1+1)。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢大學,未經武漢大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410362735.9/1.html,轉載請聲明來源鉆瓜專利網。





