• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    移動云平臺下基于局部復(fù)制的結(jié)構(gòu)性文檔協(xié)同編輯沖突消解

    2018-10-17 12:25:36朱思征高麗萍王山山
    小型微型計算機系統(tǒng) 2018年10期

    王 丹,朱思征,高麗萍,王山山,徐 燁,史 旻

    1(上海理工大學 計算中心,上海 200093)

    2(上海理工大學 光電信息與計算機工程學院,上海 200093)

    1 引 言

    計算機技術(shù)的不斷發(fā)展,使得人們的日常工作、生活、娛樂方式也隨之發(fā)生翻天覆地的變化.辦公地點隨著寬帶、無線網(wǎng)絡(luò)的普及,也不再局限于辦公室.近年來,由于各行各業(yè)不同領(lǐng)域工作量以及設(shè)計規(guī)模不斷增大,個人想要獨立完成所有工作往往面臨操作量巨大、用時長等一系列諸多問題.由此計算機支持的協(xié)同工作(Computer Supported Cooperative Work,CSCW)技術(shù)被提出[1].

    實時群組編輯器支持分布在不同區(qū)域的用戶同一時刻編輯同一個共享文檔.全復(fù)制式架構(gòu)(full replication architecture)[2-6]中提出在每個協(xié)作用戶本地生成副本并對其操作,并將操作類型劃分為本地和遠程兩類,此方法大大提高了本地操作響應(yīng)速度.而在保證實時協(xié)同編輯系統(tǒng)的可用性和準確性[2-6,10-12]方面同時迸發(fā)出若干問題,并發(fā)控制技術(shù)作為攻克這些問題的關(guān)鍵技術(shù),一直被更多的研究人員們逐步完善.并發(fā)控制技術(shù)[10-12]主要包括一致性維護和沖突消解兩部分,一致性維護側(cè)重于保證協(xié)同站點副本的一致性,沖突消解則是為了能夠在最大程度上滿足多用戶的意愿.最典型的并發(fā)控制算法主要有操作轉(zhuǎn)換算法(Operation Transformation,OT)[13]和地址空間轉(zhuǎn)換算法(Address Space Transformation,AST)[6].

    基于全復(fù)制式架構(gòu)研究的沖突消解算法與開發(fā)的協(xié)同編輯應(yīng)用不勝枚舉,其研究成果已相對成熟.但隨著移動設(shè)備的快速發(fā)展,大量編輯器若想要被移植到移動端,將面臨存儲空間小,內(nèi)存有限等一系列的問題,最終導(dǎo)致之前研發(fā)的實時群組編輯器無法完全的適用于移動設(shè)備.而之前的研究成果多是基于全復(fù)制式架構(gòu)的主要原因,是協(xié)同編輯的對象多為普通的線性文檔,層次結(jié)構(gòu)較為模糊.但在現(xiàn)實生活或工作中,結(jié)構(gòu)性文檔的使用率相對更高,例如常見的申請專利或軟件著作權(quán)等書面材料,具有規(guī)定的模板結(jié)構(gòu);撰寫不同的專著、書籍同樣存在各自的參照模板結(jié)構(gòu);如果可以將此種具有結(jié)構(gòu)的文檔,按照層次級別、關(guān)聯(lián)關(guān)系進行分類,讓協(xié)同編輯者可以各取所需,將在很大程度上提升用戶效率并節(jié)省存儲空間.Huanhuan Xia[7]等人提出了局部復(fù)制式架構(gòu)(partial replication architecture),并基于此復(fù)制式架構(gòu)研發(fā)了適用于移動端的評論系統(tǒng),為結(jié)構(gòu)性文檔協(xié)同編輯領(lǐng)域的研究奠定了基礎(chǔ).

    計算能力較弱,是移動設(shè)備的又一個嚴重缺陷,隨著編輯工作量的增大,協(xié)同用戶的增多,即使使用普通的服務(wù)器也很難處理龐大的操作集.因此,近年來發(fā)展迅猛的云服務(wù)器技術(shù)成為了解決此問題的關(guān)鍵.云服務(wù)器又稱為云主機,在架構(gòu)上與傳統(tǒng)的服務(wù)器又很大區(qū)別,它能夠接收龐大的數(shù)據(jù)輸入量[8],高效處理海量數(shù)據(jù)集[9],并基于集群服務(wù)器技術(shù),虛擬出多個獨立服務(wù)器部分,其具備的故障自動遷移和快照備份功能,大大提升了存儲安全性.

    本文的結(jié)構(gòu)如下:首先對局部復(fù)制基本思想進行簡要介紹,針對本文提出的算法給出文檔結(jié)構(gòu)、節(jié)點、操作、沖突類型等基本定義;隨后詳細介紹移動云平臺下基于局部復(fù)制的結(jié)構(gòu)性文檔協(xié)同編輯沖突消解算法,針對不同的沖突類型,給出不同的消解過程;其次是對本文提出的算法進行效率分析,將算法與實例相結(jié)合,驗證其準確性;最后提出后續(xù)的主要研究內(nèi)容.

    2 相關(guān)工作

    1989年,Eliis 等人[13]首次提出操作轉(zhuǎn)換概念,并建立OT[13]算法基本模型,其中提出的dOPT(distributed Operational Transformation)作為第一個基于OT的算法被運用到Grove協(xié)同編輯系統(tǒng)中.然而,dOPT在某些場景下協(xié)同站點間結(jié)果會出現(xiàn)不一致的問題,被Ressel[14]等人發(fā)現(xiàn).一致性維護技術(shù)的研究成為協(xié)同工作中的熱門問題.1998年 Sun在早期的一致性模型基礎(chǔ)之上提出了CCI(Convergence Causality Intention)[15]模型,指出更為嚴格的一致性標準——意愿維護,即沖突消解策略側(cè)重解決的問題,由此,并發(fā)控制技術(shù)的研究得以完善.圍繞該一致性模型,一系列基于OT的樂觀并發(fā)控制技術(shù)被提出,如GOTO[15]、COT[10]、SCOT4[16]、LBT[17]、TIBOT[18]、ABST[11]等.由于OT的操作轉(zhuǎn)換規(guī)則較為復(fù)雜,準確性證明比較困難,執(zhí)行效率較低.一種基于地址空間轉(zhuǎn)換的一致性維護技術(shù)AST被提出,對比OT,AST算法效率更高,并被證明可以準確解決已有的并發(fā)控制問題.近年來,OT和AST技術(shù)被廣泛運用到實時群組編輯領(lǐng)域[23],并研發(fā)出諸多協(xié)同應(yīng)用,例如 SketchPad、Co-CAD[19,20]、Co-eclipse[21]等.但這些研究目前只能夠適用于桌面協(xié)同應(yīng)用系統(tǒng),很難將其平移到移動設(shè)備上使用,其中最主要的問題在于移動設(shè)備存儲空間有限,計算能力較弱,且之前的研究成果多是基于全復(fù)制式結(jié)構(gòu),致使移動設(shè)備很難應(yīng)對數(shù)據(jù)量擴張,操作數(shù)上漲的情況.面臨此困境,Huanhuan Xia[7]等人在2014年提出了適用于移動端的評論系統(tǒng),并在考慮移動設(shè)備內(nèi)存限制以及網(wǎng)速較差的前提下,提出了局部復(fù)制式架構(gòu),利用評論節(jié)點存儲用戶請求的詳細內(nèi)容,根據(jù)部分復(fù)制規(guī)則生成骨干節(jié)點從而生成本地局部副本,相比全復(fù)制式架構(gòu),大大節(jié)約了存儲本地副本的空間,節(jié)省了副本更新的時間.2016年,Sun等人提出了CSOT[22](Cloud storage Operational Transformation)算法,能夠支持在云存儲下實時文件同步功能,并維護一致性,實現(xiàn)理想的并發(fā)操作效果合并.CSOT算法首次將OT的一致性維護能力擴展到云存儲共享空間中,并為基于云的協(xié)同技術(shù)發(fā)展做出了巨大貢獻.

    然而,CSOT算法的操作粒度為文件,粒度較大,對于文件內(nèi)容的更改,也只局限于對內(nèi)容的整體更新覆蓋.且在之前的并發(fā)技術(shù)研究中多是基于全復(fù)制式架構(gòu),考慮到移動設(shè)備的存儲空間和計算能力的限制,本文基于局部復(fù)制策略的基本思想,將控制算法部署在云服務(wù)器下,提出一種適用于移動終端的結(jié)構(gòu)性文檔協(xié)同編輯沖突消解算法,簡稱為MCPS算法.

    3 準備工作

    3.1 局部復(fù)制方法回顧

    局部復(fù)制策略是一種適用于移動評論系統(tǒng),為了解決移動設(shè)備資源有限、評論的突發(fā)性等問題,利用樹形結(jié)構(gòu)存儲請求數(shù)據(jù),并基于地址空間轉(zhuǎn)換算法研發(fā)的高效一致性維護算法.

    圖1 局部復(fù)制原理圖Fig.1 Principle of partial replication architecture

    如圖1所示,中央服務(wù)器負責維護評論會話的主副本(Primary copy),各個協(xié)作客戶端維持本地副本,稱為部分副本.當有新用戶加入并向服務(wù)器請求評論內(nèi)容時,請求的評論將通過操作的形式返回,而返回的數(shù)據(jù)在客戶端以節(jié)點構(gòu)成的“骨架樹(skeleton tree)”結(jié)構(gòu)存在.通過“釋放”骨架樹中的數(shù)據(jù)構(gòu)建部分副本,同時將本地副本通過SYNC請求與主副本同步.對于同步過程中創(chuàng)建、插入、刪除和更新等操作產(chǎn)生的沖突,該策略采用地址空間轉(zhuǎn)換技術(shù)解決,給出具體執(zhí)行規(guī)則,并實現(xiàn)數(shù)據(jù)的一致性維護.

    需要強調(diào)的是,當以增量的形式構(gòu)建本地部分副本時,需遵循如下規(guī)則:“如果一個評論節(jié)點被復(fù)制,該節(jié)點的父親節(jié)點(如果存在)也必須被復(fù)制”.為了區(qū)分同步節(jié)點類型為請求同步還是自動同步,Huanhuan Xia等人將骨架樹種的節(jié)點大致分為三種:評論節(jié)點(comment node),即客戶端請求的節(jié)點,包含評論內(nèi)容數(shù)據(jù);骨架父節(jié)點(skeleton parent node),作為請求節(jié)點的未被請求的父節(jié)點,自動同步到骨架樹中,但不包含評論數(shù)據(jù);骨架葉節(jié)點(skeleton leaf node):作為請求節(jié)點的未被請求的兄弟節(jié)點,為在客戶端副本保持一致的節(jié)點兄弟關(guān)系而自動同步到骨架樹種的節(jié)點,同樣不包含評論數(shù)據(jù).

    圖2 骨架樹示例圖Fig.2 Example of skeleton tree

    舉例說明,如圖2中的用戶B,當其加入到協(xié)同評論會話中時,本地的初始部分副本為空,首先發(fā)出一條FETCH請求,請求的評論節(jié)點集為{T,D },在生成骨架樹時,檢測節(jié)點D擁有父節(jié)點B,此時將自動同步節(jié)點B到骨架樹中,并標記為骨架父節(jié)點,且D有一個兄弟節(jié)點為E,則標記為骨架葉節(jié)點.“執(zhí)行”骨架樹構(gòu)建本地部分副本時,部分副本中只包含評論節(jié)點中的數(shù)據(jù).

    3.2 基本定義

    3.2.1 文檔結(jié)構(gòu)定義

    圖3 等級標題結(jié)構(gòu)文檔Fig.3 Structured document

    如圖3所示是一個具有等級標題結(jié)構(gòu)的文檔,我們將此類型的文檔抽象,通過樹結(jié)構(gòu)存儲在云服務(wù)器端,即以DOC為主根節(jié)點(主副本為空時,首先分配一個id=0 的DOC虛根節(jié)點,用來維護主副本樹結(jié)構(gòu)的完整性),按照標題等級構(gòu)建主副本樹——StrTree,我們將圖3中的文檔構(gòu)建成StrTree的結(jié)果如圖4所示.

    圖4 StrTree示例圖Fig.4 An example of strtree

    而客戶端通過請求節(jié)點在本地生成的部分副本,可以視為StrTree中的一個子樹.子樹中包含三種節(jié)點:

    標題節(jié)點(TN:Title-Node):客戶端請求節(jié)點;

    結(jié)構(gòu)父節(jié)點(SPN:Str-Parent-Node):客戶端請求節(jié)點的父節(jié)點,且未被請求,為了維護副本樹結(jié)構(gòu)復(fù)制在客戶端但不包含文本內(nèi)容;

    結(jié)構(gòu)兄弟節(jié)點(SBN:Str-Brother-Node):客戶端請求節(jié)點的兄弟節(jié)點,且未被請求,為了維護副本樹結(jié)構(gòu)復(fù)制在客戶端但不包含文本內(nèi)容.

    增量式構(gòu)建本地副本遵循的規(guī)則參照文章3.1的介紹.子樹中的節(jié)點類型,會在客戶端每次向云服務(wù)器請求數(shù)據(jù)后進行更新.

    3.2.2 節(jié)點屬性定義

    對于StrTree中的每個節(jié)點,我們給出以下定義和若干屬性:

    表1 節(jié)點和屬性定義Table 1 Definition of node and basic parameters

    這里我們提出了活躍度概念,是為了能更大程度上維護用戶的操作意愿,當在協(xié)同操作的過程中產(chǎn)生沖突時,解決方式不再局限于判定時間戳、用戶優(yōu)先級等因素,而是通過云服務(wù)器動態(tài)更新各個客戶端在每個節(jié)點和每棵子樹的活躍度,以活躍度越高,越優(yōu)先執(zhí)行為原則,決定操作的執(zhí)行先后順序.

    3.2.3 操作定義

    1)Append(N):增量獲取節(jié)點集N的數(shù)據(jù),請求和執(zhí)行方式與文章[7]中類似;

    2)Insert(parentId,id,site,data):在父節(jié)點parentId的子節(jié)點后,插入一個新節(jié)點;

    3)InsertBefore(parentId,refId,id,site,data):創(chuàng)建一個標識符和文本內(nèi)容為id和data的新節(jié)點,并插入到標識符為parentId父節(jié)點下子節(jié)點隊列中的refId節(jié)點前;

    4)Delete(id,site):刪除標識符為id的節(jié)點;

    5)UpdateName(id,newName,oldName,site):更新標識符為id的節(jié)點的標題名稱為newName,并記錄之前的名稱oldName;

    6)UpdateData(id,data,site):更新標識符為id的節(jié)點下的文本內(nèi)容為data;

    3.3 沖突類型

    針對上方提出的4種以標題為粒度的操作,1種以標題內(nèi)文本內(nèi)容為粒度的操作,我們分析得出了以下5類沖突情況.

    CIB:InsertBefore()_InsertBefore(),當云服務(wù)器接收兩個指定插入位置的節(jié)點插入操作,它們指向同一個父節(jié)點,且refId值相同時,操作在客戶端的執(zhí)行順序不同,將產(chǎn)生不一致結(jié)果;

    CII:Insert()_Insert(),與CIB的沖突情況類似,插入標題操作在客戶端的執(zhí)行順序不同,產(chǎn)生的結(jié)果不同;

    CD:Delete(),當客戶端想要執(zhí)行一個刪除標題操作時,需先向云服務(wù)器發(fā)送刪除請求,云服務(wù)器判定沒有客戶端在編輯以該節(jié)點為根節(jié)點的樹后,同意刪除請求,否則駁回;

    CDI:Delete()_InsertBefore(),當一個刪除操作被允許,云服務(wù)器同時接收一個InsertBefore操作,與被刪除節(jié)點父節(jié)點相同,且被刪除節(jié)點的refId與插入操作的refId相同,操作的執(zhí)行順序?qū)⒂绊懣蛻舳私Y(jié)果;

    CUN:UpdateName()_UpdateName(),當兩個操作同時更改同一個節(jié)點的名稱時,客戶端操作執(zhí)行順序不同結(jié)果不同;

    CUD:UpdateData()_UpdateData(),與CUN類似,兩個操作都欲更改同一個節(jié)點的文本內(nèi)容時,客戶端操作順序不同將產(chǎn)生沖突.

    4 MCPS算法設(shè)計

    4.1 主副本更新監(jiān)聽器

    為了記錄客戶端活躍度,判斷執(zhí)行操作的優(yōu)先級,我們在云服務(wù)器開辟空間賦予CL(Cloud Listener),作為記錄主副本變更的操作緩沖區(qū),CL[n]表示節(jié)點n變更的操作緩沖區(qū),CL[n]的結(jié)構(gòu)為響應(yīng)式增加site列的一張表(因為接下來要根據(jù)每個節(jié)點對應(yīng)site的緩沖區(qū)大小計算對應(yīng)客戶端在該節(jié)點的活躍度即節(jié)點活躍度NLV,以及以該節(jié)點為根節(jié)點的樹,樹中所有節(jié)點對應(yīng)site的緩沖區(qū)大小的累加值判斷對應(yīng)客戶端在對這棵樹的活躍度TLV),需要強調(diào)的是,為了保存所有節(jié)點的活躍度,當一個節(jié)點被刪除,它在CL中依然存在,并且CL的更新不會影響StrTree.

    過程1.priCopyListener(operation O)

    1. Site = O.site;

    2. IF(O.type == “Create”){

    3. NEW node CL[n];

    4. n.id = O.id;

    5. IF(O.type == “Insert”){

    6. n→parentId = O→parentId;

    7. }

    8. ELSE IF(O.type == “InsertBefore”){

    9. n→parentId = O→parentId;

    10. n→refId = O→refId;

    11. }

    12. Add CL[n].Site into CL[n];

    13. }

    14. ELSE{

    15. SEARCH n WITCH n.id == O.id;

    16. IF(CL[n].Site not exists){

    17. Add CL[n].Site into CL[n];

    18. }

    19. }

    20. Append(O)into CL[n].site;

    21. n.NLV[site]= n.NLV[site]+ 1;

    22. n.TLV[site]= n.TLV[site]+ 1;

    23. NEW node p = n;

    24. DO WHILE(p→parentId != 0)

    25. {

    26. childTLV[site]= p.TLV[site];

    27. p.id = p→parentId;

    28. p.TLV[site]= p.TLV[site]+ childTLV[site];

    29. }

    4.2 控制算法

    云服務(wù)器根據(jù)操作類型和操作中的節(jié)點屬性,判斷執(zhí)行以下哪種沖突消解算法.

    過程2.ControllAlgorithm(O1,O2)

    1. IF ( O1.type==O2.type==InsertBefore

    and O1.refId==O2.refId )

    2. { return resolution_CIB(O1,O2); }

    3. IF( O1.type==O2.type==Insert

    and O1.parentId==O2.parentId )

    4. { return resolution_CII(O1,O2); }

    5. IF(O1.type==Del or O2.type==Del)

    6. { return resolution_CD(O1,O2); }

    7. IF((O1.type==Del and O2.type==InserBefore)‖

    8. (O1.type==InsertBefore and O2.type==Del))

    9. { return resolution_CDI(O1,O2); }

    10. IF (O1.type==O2.type==UpdateName

    and O1.id==O2.id)

    11. { return resolution_CUN(O1,O2); }

    12. IF (O1.type==O2.type==UpdateData

    and O1.id==O2.id)

    13. { return resolution_CUD(O1,O2); }

    4.3 CIB消解過程

    當云服務(wù)器端接受到來自不同客戶端的InsertBefore操作,并檢測到出現(xiàn)CIB沖突時,云服務(wù)器端需要通過判斷生成插入操作的站點在此節(jié)點的樹活躍度TLV,以及請求客戶端傳送插入節(jié)點對應(yīng)父節(jié)點和兄弟節(jié)點的類型,并以節(jié)點類型為標題節(jié)點的客戶端優(yōu)先;節(jié)點類型相同時,對應(yīng)站點在該節(jié)點父節(jié)點的的樹活躍度越高,操作執(zhí)行的優(yōu)先級越高,其它插入操作的位置將進行適當調(diào)整,并將結(jié)果反饋給客戶端.具體處理流程參照算法1,Oa和Ob操作分別插入兩個節(jié)點na和nb.

    算法1.resolution_CIB(Oa,Ob)

    1. REQUEST Node and Node Type From Clients

    2. Pa = na→parentId; Pb = nb→parentId;

    3. Ra = na→refId; Rb = nb→refId;

    4. IF(Pa.type==Pb.type&&Ra.type==Rb.type){

    5. GET CL[P]from Listener CL WITCH P.id==Pa.id;

    6. IF(TLV[P].sitea>=TLV[P].siteb){

    7. nb.refId=na.id;

    8. }

    9. ELSE{

    10. na.refId=na.id;}

    11. }

    12. IF((Pa.value+Ra.value)>(Pb.value+Rb.value)){

    13. nb.refId=na.id;

    14. }

    15. IF((Pa.value+Ra.value)<(Pb.value+Rb.value)){

    16. na.refId=na.id;

    17. }

    18. POST Oa,Ob to Sitea,Siteb;

    沖突類型CII的消解過程與CIB同理,這里我們不再贅述.

    4.4 CD消解過程

    當客戶端想要執(zhí)行一個刪除操作時,首先需向云服務(wù)器發(fā)送刪除節(jié)點請求,若此時存在操作將要作用于以該節(jié)點為根節(jié)點的樹,或刪除節(jié)點在客戶端部分副本中不屬于標題節(jié)點,刪除操作被駁回.具體處理流程參照算法2.

    算法2.resolution_CD(Del(na),O(nb))

    1. IF(na.type==TN){

    2. IF(na.deep<=nb.deep)//刪除節(jié)點na是nb的祖先

    3. {//由nb向上遞歸尋找父節(jié)點是否存在na

    4. P=nb;

    5. bool=false;

    6. DO WHILE(P.deep

    7. P=P→parentId;

    8. IF(P.id==na.id){

    9. BREAK;

    10. bool=true;}

    11. }

    12. IF(bool==true){

    13. POST CANCLE Del to Sitea; }

    14. ELSE{

    15. EXCUTE Del ON the SERVER;

    16. POST EXCUTE Del to Sitea; }

    17. }

    18. ELSE{

    19. EXCUTE Del ON the SERVER;

    20. POST EXCUTE Del to Sitea;

    21. }

    22. }

    23. ELSE { POST CANCLE Del to Sitea; }

    4.5 CDI消解過程

    當一個刪除節(jié)點操作被允許,且是另一個插入節(jié)點的兄弟節(jié)點,位置依賴于刪除節(jié)點,為了保證插入位置的準確性,需要根據(jù)刪除節(jié)點位置確認插入節(jié)點位置.

    算法3.resolution_CDI(Del(na),InsertBefore(nb))

    1. IF(na→parentId==nb→parentId&&na.id==nb.refId){

    2. SELECT nodes in order WHITCH id=na→parentId as set N;

    3. IF(N[k].id==na.id)

    4. { Addr = k; }

    5. nb.refId = N[k+1].id;

    6. }

    7. POST InsertBefore′(nb)to remote clients;

    4.6 CUN消解過程

    當存在若干操作都欲更改同一個節(jié)點的名稱時,云服務(wù)器需要做出判斷,采取哪個操作的結(jié)果,此時首先判斷節(jié)點在發(fā)出更改操作客戶端的類型,與CIB處理方式類似,類型為標題節(jié)點的操作優(yōu)先,不同的是,若節(jié)點類型相同,對比站點在該節(jié)點的節(jié)點活躍度NLV,優(yōu)先執(zhí)行NLV高的站點發(fā)出的更改操作.

    算法4.resolution_CUN(O1,O2)

    1. REQUEST Node and Node Type From Clients

    2. O1=UpdateName(n1,Name1,oldname,site1);

    3. O2=UpdateName(n2,Name2,oldname,site2);

    4. IF(n1.type==n2.type){

    5. GET CL[P]from Listener CL WITCH P.id==n1.id;

    6. IF(NLV[P].site1>=NLV[P].site2){

    7. EXCUTE O1;

    8. POST EXCUTE O1 to site2; }

    9. ELSE{

    10. EXCUTE O2;

    11. POST EXCUTE O2 to site1; }

    12. }

    13. IF(n1.value > n2.value){

    14. EXCUTE O1;

    15. POST EXCUTE O1 to site2; }

    16. IF(n1.value < n2.value){

    17. EXCUTE O2;

    18. POST EXCUTE O2 to site1; }

    沖突類型CUD的消解過程與CUN同理.

    5 復(fù)雜度分析

    本文提出的MCPS算法部署在云服務(wù)器端,處理進程分為兩部分:動態(tài)更新各節(jié)點對應(yīng)的的節(jié)點活躍度和樹活躍度;檢測沖突類型并消解沖突.

    動態(tài)更新節(jié)點活躍度階段,首先通過操作攜帶節(jié)點n的屬性遍歷Cloud Listener查找是否存在該節(jié)點信息,不存在則插入該節(jié)點;隨后根據(jù)操作的生成站點id找到在CL[n]中對應(yīng)的活躍度,先改變節(jié)點活躍度,再向上回溯更新它的祖先節(jié)點的活躍度,我們假設(shè)最糟糕的情況,查找到樹中的最后一個節(jié)點才找到節(jié)點n,并要再向上回溯一次,N為樹包含的節(jié)點總數(shù),H為樹的高度,則此過程所需的時間復(fù)雜度為O(N·H).

    本文提出的六種沖突消解情況中,其核心首先時查找節(jié)點n,隨后查找CL[n]中相關(guān)站點活躍度,最后插入節(jié)點或更改節(jié)點信息,可以簡單理解為一個雙重遍歷的過程,假設(shè)找到節(jié)點n遍歷過的節(jié)點個數(shù)為N,相關(guān)站點活躍度在CL[n]中存儲位置最大的為L,則時間復(fù)雜度可以表示為:O(N·L).整個并發(fā)控制過程的最壞時間復(fù)雜度可以抽象為O(N2).

    關(guān)于空間復(fù)雜度,因為將算法部署在云服務(wù)器,且加入的節(jié)點監(jiān)聽功能,并利用樹結(jié)構(gòu)存儲主副本與監(jiān)聽緩存,假設(shè)主副本中包含的節(jié)點總數(shù)為N,那么對應(yīng)的空間復(fù)雜度至少是O(2N),但對于移動客戶端來說,空間復(fù)雜度將是一個小于或遠小于O(N)的值.

    6 算法實現(xiàn)舉例

    如圖5所示,服務(wù)器端此時的主副本內(nèi)容為圖5(a)中結(jié)構(gòu)樹中的所有節(jié)點,當前的CL中各節(jié)點的活躍度如表2所示,表中的n0代表根節(jié)點DOC.有兩個協(xié)同用戶site1和site2參與編輯工作,并產(chǎn)生接下來的操作:

    圖5 主副本沖突消解結(jié)果Fig.5 Result of conflict resolution of primary copy

    1)site1:Append(N1),N1={n1,n2};

    site2:Append(N2),N2={n2,n4,n5,n6};

    各自生成的部分副本子樹如圖6(a)和圖6(d).

    2)site1:O1=InsertBefore(DOC,n2,n7,site1,data);

    site2:O2=InsertBefore(DOC,n2,n8,site2,data);

    表2 CL初始活躍度參照表Table 2 Reference of CL liveness initialization

    執(zhí)行Resolution_CIB(O1,O2)處理進程,兩個協(xié)作客戶端都欲在n2前插入一個新標題節(jié)點,首先判斷DOC和n2節(jié)點在兩站點被復(fù)制的類型,均為標題節(jié)點,接下來判斷兩站點在他們欲插入節(jié)點的父節(jié)點DOC的樹活躍度:

    CL(DOC).TLV[site1]=5;

    CL(DOC).TLV[site2]=3;

    CL(DOC).TLV[site1]> CL(DOC).TLV[site2]

    樹活躍度越高,操作執(zhí)行優(yōu)先級越高,所以先執(zhí)行site1站點的插入操作,將O2操作轉(zhuǎn)換為O2′= InsertBefore(DOC,n7,n8,site2,data),發(fā)送到站點1執(zhí)行;O1操作不變發(fā)送到站點2執(zhí)行.生成的結(jié)果如圖6(b)和圖6(e).CL中加入兩個節(jié)點的信息,并更新site1和site2的活躍度.

    3)site1:O3=Del(n1,site1);

    site2:O4=UpdateData(n4,data,site2);

    執(zhí)行Resolution_CD(O3,O4),site1發(fā)送刪除請求至云服務(wù)器,同時接收到來自site2的操作O4,首先判斷n1在site1的節(jié)點類型為標題節(jié)點,再判斷n4的祖先節(jié)點中是否包含節(jié)點n1,因為n1是n4的父節(jié)點,所以刪除操作被駁回,云服務(wù)器向site1發(fā)送O3操作取消指令和操作O4,同時更新site2的活躍度.

    4)site1:O5=Del(n7,site1);

    site2:O6=InsertBefore(DOC,n7,n9,site2,data);

    執(zhí)行Resolution_CDI(O5,O6),O5是被允許之心的刪除操作,n7.id等于O6.refId,所以優(yōu)先執(zhí)行O6,兩站點部分副本更新后結(jié)構(gòu)如圖6(c)和圖6(f).同時更新CL中對應(yīng)的活躍度數(shù)值.

    圖6中兩個站點最后生成的部分副本(圖6(c)和圖6(f)所示)中重疊的部分結(jié)構(gòu)一致,證明了沖突消解算法的準確性;最后更新的CL中各節(jié)點的站點活躍度為表3中的數(shù)據(jù).

    7 總結(jié)及展望

    隨著移動網(wǎng)絡(luò)逐步健全,移動設(shè)備迅猛發(fā)展,以及其具備的便攜、對地理位置無約束特性使得人們更傾向于在移動終端上進行辦公,移動網(wǎng)絡(luò)環(huán)境下的協(xié)同研究及應(yīng)用開發(fā)將成為未來科技發(fā)展的大趨勢.但移動設(shè)備的存儲和計算能力較弱,導(dǎo)致之前的協(xié)同研究成果不能完全適用于移動端.為了解決此問題,本文基于局部復(fù)制策略,提出了一種支持結(jié)構(gòu)性文檔協(xié)同編輯的沖突消解算法,并引入了云平臺作為操作中轉(zhuǎn)站,利用云平臺強大的計算能力,解決協(xié)同過程中出現(xiàn)的各種沖突.創(chuàng)新的提出了用戶活躍度這一概念,在最大程度滿足多用戶的意愿方面,不再僅僅依賴于判斷客戶端優(yōu)先級、時間戳等手段,而是動態(tài)更新所有用戶的活躍度,更合理的判斷操作執(zhí)行優(yōu)先級.

    后續(xù)的研究工作包括:1)優(yōu)化算法執(zhí)行效率,完善沖突類型;

    圖6 site1和site2部分副本沖突消解結(jié)果Fig.6 Result of conflicts resolution of site1 and site2

    表3 CL更新后的活躍度參照表Table 3 Reference of CL liveness after updating

    2)將MCPS算法實現(xiàn)在云平臺與移動設(shè)備上,開發(fā)一款結(jié)構(gòu)性文檔系統(tǒng)編輯APP;3)在應(yīng)用中引入圖像[24-26]、表格、文字附加屬性等協(xié)同操作功能.

    高清av免费在线| 波多野结衣av一区二区av| 人人妻人人爽人人添夜夜欢视频| 国产成人精品久久二区二区91| 国产亚洲精品久久久久5区| 不卡一级毛片| 悠悠久久av| 99国产极品粉嫩在线观看| 午夜福利一区二区在线看| 国产免费现黄频在线看| 欧美在线一区亚洲| av福利片在线| √禁漫天堂资源中文www| av国产精品久久久久影院| 一边摸一边抽搐一进一出视频| 亚洲专区国产一区二区| 欧美+亚洲+日韩+国产| 国产日韩欧美在线精品| 搡老岳熟女国产| 日韩精品免费视频一区二区三区| 国产欧美亚洲国产| 大型av网站在线播放| 中文字幕人妻熟女乱码| 国产男人的电影天堂91| 日日摸夜夜添夜夜添小说| 午夜激情av网站| 黄色 视频免费看| 国产淫语在线视频| 久久久精品免费免费高清| 大陆偷拍与自拍| 国产色视频综合| 亚洲免费av在线视频| 免费av中文字幕在线| 亚洲色图综合在线观看| 色婷婷久久久亚洲欧美| 久久久久久久大尺度免费视频| 国产精品香港三级国产av潘金莲| 老汉色av国产亚洲站长工具| 亚洲欧美一区二区三区黑人| 嫁个100分男人电影在线观看| 18禁黄网站禁片午夜丰满| 高清av免费在线| 窝窝影院91人妻| 中文字幕高清在线视频| 国产在视频线精品| 在线观看www视频免费| 黑人巨大精品欧美一区二区蜜桃| 精品一区二区三卡| 国产一卡二卡三卡精品| 欧美日韩中文字幕国产精品一区二区三区 | 国产精品国产三级国产专区5o| 午夜两性在线视频| 女人高潮潮喷娇喘18禁视频| 国产精品麻豆人妻色哟哟久久| 精品一品国产午夜福利视频| 国产不卡av网站在线观看| 亚洲久久久国产精品| 午夜福利在线免费观看网站| 美女大奶头黄色视频| 日本一区二区免费在线视频| 久久久国产一区二区| 久久精品国产综合久久久| 国产精品一区二区精品视频观看| 日本五十路高清| 免费在线观看完整版高清| 国产免费福利视频在线观看| 99热国产这里只有精品6| 成人三级做爰电影| 久久综合国产亚洲精品| 两个人看的免费小视频| 亚洲专区字幕在线| 国产精品免费视频内射| 纯流量卡能插随身wifi吗| tube8黄色片| 精品一品国产午夜福利视频| 在线精品无人区一区二区三| 满18在线观看网站| 国产黄频视频在线观看| 桃花免费在线播放| 久久午夜综合久久蜜桃| 午夜福利视频精品| 久久综合国产亚洲精品| 男女国产视频网站| 91精品国产国语对白视频| 下体分泌物呈黄色| 亚洲欧美日韩另类电影网站| 亚洲精品成人av观看孕妇| 久久人人97超碰香蕉20202| 国产在线观看jvid| 亚洲精品一二三| 午夜福利免费观看在线| 久久天躁狠狠躁夜夜2o2o| 久久精品成人免费网站| 嫁个100分男人电影在线观看| 免费观看a级毛片全部| 国产区一区二久久| www.精华液| 日日爽夜夜爽网站| 美女国产高潮福利片在线看| 精品少妇一区二区三区视频日本电影| 99热全是精品| 日本五十路高清| 欧美黑人精品巨大| 丝袜美腿诱惑在线| 嫁个100分男人电影在线观看| 国产97色在线日韩免费| 久久热在线av| 亚洲一区中文字幕在线| 亚洲伊人色综图| 大陆偷拍与自拍| 亚洲第一欧美日韩一区二区三区 | 亚洲va日本ⅴa欧美va伊人久久 | 免费久久久久久久精品成人欧美视频| 妹子高潮喷水视频| 老司机影院毛片| 中文字幕色久视频| 一二三四在线观看免费中文在| 亚洲精品一二三| 国产熟女午夜一区二区三区| 男男h啪啪无遮挡| 女人高潮潮喷娇喘18禁视频| 久久久久国内视频| 91精品国产国语对白视频| 男女午夜视频在线观看| 精品一区二区三卡| 19禁男女啪啪无遮挡网站| 日韩电影二区| 国产在线免费精品| 亚洲av国产av综合av卡| 久久香蕉激情| 久久综合国产亚洲精品| 欧美日韩精品网址| 在线观看一区二区三区激情| 亚洲精品美女久久av网站| 视频在线观看一区二区三区| 老司机午夜福利在线观看视频 | a级毛片在线看网站| 国产成人av教育| 人人妻人人添人人爽欧美一区卜| 欧美激情久久久久久爽电影 | 国产男人的电影天堂91| av在线播放精品| 精品福利观看| 极品少妇高潮喷水抽搐| a级片在线免费高清观看视频| 国产精品自产拍在线观看55亚洲 | 极品少妇高潮喷水抽搐| www.av在线官网国产| 成年人黄色毛片网站| 久久久精品94久久精品| 色播在线永久视频| 国产视频一区二区在线看| 免费少妇av软件| 国产精品二区激情视频| 天天操日日干夜夜撸| 一区二区av电影网| 久久久久久久精品精品| 一区二区三区激情视频| 热99久久久久精品小说推荐| 母亲3免费完整高清在线观看| 菩萨蛮人人尽说江南好唐韦庄| 人人妻人人添人人爽欧美一区卜| 亚洲精品成人av观看孕妇| 国产xxxxx性猛交| 国产一区二区三区在线臀色熟女 | 18禁黄网站禁片午夜丰满| 久久久精品94久久精品| 亚洲专区字幕在线| 欧美+亚洲+日韩+国产| 精品乱码久久久久久99久播| 久久精品国产亚洲av高清一级| 99热网站在线观看| 91老司机精品| 国产精品1区2区在线观看. | 女人精品久久久久毛片| 亚洲欧美一区二区三区久久| 亚洲伊人色综图| 高清黄色对白视频在线免费看| 国产精品一区二区免费欧美 | 丰满人妻熟妇乱又伦精品不卡| 国产高清视频在线播放一区 | 人妻久久中文字幕网| 母亲3免费完整高清在线观看| 免费观看a级毛片全部| 首页视频小说图片口味搜索| 高潮久久久久久久久久久不卡| 欧美激情久久久久久爽电影 | 91麻豆精品激情在线观看国产 | 日韩电影二区| 99精品久久久久人妻精品| av不卡在线播放| 91麻豆精品激情在线观看国产 | 80岁老熟妇乱子伦牲交| e午夜精品久久久久久久| 97精品久久久久久久久久精品| 美女高潮到喷水免费观看| 最新在线观看一区二区三区| 麻豆乱淫一区二区| 精品免费久久久久久久清纯 | 亚洲欧洲精品一区二区精品久久久| 久久久久久人人人人人| 亚洲激情五月婷婷啪啪| 亚洲国产欧美网| av视频免费观看在线观看| 一进一出抽搐动态| 国产日韩欧美视频二区| 51午夜福利影视在线观看| 黑人欧美特级aaaaaa片| 国产淫语在线视频| 精品国产一区二区久久| 男男h啪啪无遮挡| 亚洲中文日韩欧美视频| 成人三级做爰电影| 久久99热这里只频精品6学生| 在线 av 中文字幕| 美女午夜性视频免费| 大型av网站在线播放| 精品欧美一区二区三区在线| 男人爽女人下面视频在线观看| 一个人免费看片子| 亚洲av日韩精品久久久久久密| 久久精品久久久久久噜噜老黄| 成人18禁高潮啪啪吃奶动态图| 一区二区三区激情视频| 亚洲av美国av| 波多野结衣一区麻豆| 黄色怎么调成土黄色| 欧美日韩亚洲高清精品| 午夜福利在线免费观看网站| 欧美黄色淫秽网站| 亚洲一区中文字幕在线| 国产又色又爽无遮挡免| 国产成人精品无人区| 日本猛色少妇xxxxx猛交久久| 亚洲专区字幕在线| 男女午夜视频在线观看| 女人久久www免费人成看片| 99香蕉大伊视频| 91精品国产国语对白视频| 欧美日韩亚洲高清精品| 亚洲人成77777在线视频| 欧美日韩亚洲国产一区二区在线观看 | av天堂久久9| 飞空精品影院首页| 国产一区二区三区综合在线观看| 黄片大片在线免费观看| 国产日韩一区二区三区精品不卡| 波多野结衣av一区二区av| tocl精华| 精品福利观看| 国产福利在线免费观看视频| 一区二区三区乱码不卡18| 人人妻人人爽人人添夜夜欢视频| 伦理电影免费视频| 男女无遮挡免费网站观看| 日本一区二区免费在线视频| 精品少妇一区二区三区视频日本电影| 交换朋友夫妻互换小说| 我要看黄色一级片免费的| 亚洲国产日韩一区二区| 国产日韩一区二区三区精品不卡| 考比视频在线观看| 免费久久久久久久精品成人欧美视频| 在线观看一区二区三区激情| 免费不卡黄色视频| 成年av动漫网址| 免费看十八禁软件| 热99国产精品久久久久久7| 欧美日韩中文字幕国产精品一区二区三区 | 女人精品久久久久毛片| 成人国产一区最新在线观看| 精品熟女少妇八av免费久了| 婷婷色av中文字幕| 国产成人影院久久av| 久久久久网色| 久久精品国产亚洲av高清一级| 真人做人爱边吃奶动态| 久久久久精品人妻al黑| 91老司机精品| 美女高潮喷水抽搐中文字幕| 男女高潮啪啪啪动态图| 日韩欧美一区视频在线观看| 免费久久久久久久精品成人欧美视频| 啦啦啦免费观看视频1| 国产欧美日韩综合在线一区二区| 亚洲国产欧美日韩在线播放| 欧美日韩视频精品一区| 国产精品免费视频内射| 一级片免费观看大全| 美国免费a级毛片| 成年人免费黄色播放视频| av天堂久久9| 久久狼人影院| 国产区一区二久久| 91成人精品电影| 最黄视频免费看| 久久久精品区二区三区| 一区二区三区精品91| 欧美日韩av久久| 少妇裸体淫交视频免费看高清 | 国产一区二区三区综合在线观看| 爱豆传媒免费全集在线观看| 免费在线观看日本一区| 777米奇影视久久| 咕卡用的链子| 亚洲av成人不卡在线观看播放网 | 自拍欧美九色日韩亚洲蝌蚪91| 丰满少妇做爰视频| 国产亚洲av片在线观看秒播厂| 亚洲av日韩在线播放| 亚洲精品久久成人aⅴ小说| 欧美日本中文国产一区发布| 免费观看a级毛片全部| 国产成人a∨麻豆精品| 巨乳人妻的诱惑在线观看| 免费看十八禁软件| xxxhd国产人妻xxx| 国产日韩欧美在线精品| 一区二区三区精品91| 搡老熟女国产l中国老女人| 国产欧美日韩精品亚洲av| 高清在线国产一区| 80岁老熟妇乱子伦牲交| 欧美日韩亚洲国产一区二区在线观看 | 可以免费在线观看a视频的电影网站| 日韩制服丝袜自拍偷拍| 操出白浆在线播放| 热re99久久精品国产66热6| 交换朋友夫妻互换小说| 99国产精品一区二区三区| 精品国产一区二区三区久久久樱花| 久久 成人 亚洲| 一二三四社区在线视频社区8| 久久久久精品国产欧美久久久 | 国产成人欧美在线观看 | 欧美性长视频在线观看| 高清视频免费观看一区二区| 免费在线观看影片大全网站| 香蕉丝袜av| 亚洲欧洲精品一区二区精品久久久| 国产深夜福利视频在线观看| 在线观看免费日韩欧美大片| 午夜福利影视在线免费观看| 午夜福利,免费看| 久久久久视频综合| 亚洲精品在线美女| 狠狠狠狠99中文字幕| 99久久综合免费| 91麻豆精品激情在线观看国产 | 精品国内亚洲2022精品成人 | 亚洲一卡2卡3卡4卡5卡精品中文| netflix在线观看网站| www.自偷自拍.com| 一级片免费观看大全| 亚洲 欧美一区二区三区| 一个人免费看片子| 久久性视频一级片| 亚洲欧美清纯卡通| 人妻一区二区av| 18禁裸乳无遮挡动漫免费视频| 妹子高潮喷水视频| 国产成人精品无人区| 久久国产亚洲av麻豆专区| 午夜免费观看性视频| 国产成人av教育| 一级a爱视频在线免费观看| 免费高清在线观看日韩| 亚洲情色 制服丝袜| 日韩欧美国产一区二区入口| 免费看十八禁软件| 一本综合久久免费| 亚洲久久久国产精品| 欧美大码av| 国产一卡二卡三卡精品| 精品少妇久久久久久888优播| 亚洲精品美女久久久久99蜜臀| 丰满迷人的少妇在线观看| 黄片小视频在线播放| 国产日韩一区二区三区精品不卡| 亚洲精品美女久久久久99蜜臀| 久久久久久久精品精品| 日韩,欧美,国产一区二区三区| 精品国产乱子伦一区二区三区 | 午夜福利影视在线免费观看| 亚洲七黄色美女视频| 女性被躁到高潮视频| 亚洲精品中文字幕一二三四区 | 美女中出高潮动态图| 777米奇影视久久| 久久狼人影院| 一级毛片电影观看| 99精品欧美一区二区三区四区| 人人澡人人妻人| 国产精品二区激情视频| 91精品伊人久久大香线蕉| av有码第一页| 午夜日韩欧美国产| 国产有黄有色有爽视频| 国产精品久久久久久精品电影小说| 亚洲国产精品一区二区三区在线| 一二三四在线观看免费中文在| 丝袜人妻中文字幕| 午夜视频精品福利| 两人在一起打扑克的视频| 午夜影院在线不卡| 高清在线国产一区| 国产欧美日韩精品亚洲av| 中文字幕av电影在线播放| 久久女婷五月综合色啪小说| 亚洲va日本ⅴa欧美va伊人久久 | 亚洲专区字幕在线| 亚洲av欧美aⅴ国产| 97精品久久久久久久久久精品| 欧美亚洲 丝袜 人妻 在线| 欧美日韩黄片免| 欧美日韩福利视频一区二区| 人人妻,人人澡人人爽秒播| 欧美黄色淫秽网站| 日韩欧美一区视频在线观看| 淫妇啪啪啪对白视频 | 人人澡人人妻人| www.av在线官网国产| 精品卡一卡二卡四卡免费| 俄罗斯特黄特色一大片| 精品福利观看| 后天国语完整版免费观看| 自线自在国产av| 两人在一起打扑克的视频| 啦啦啦免费观看视频1| 纯流量卡能插随身wifi吗| 免费看十八禁软件| 黄色视频在线播放观看不卡| 免费女性裸体啪啪无遮挡网站| 国产av国产精品国产| 免费在线观看完整版高清| 一级毛片电影观看| 99国产精品免费福利视频| 国产免费视频播放在线视频| 国产精品av久久久久免费| www日本在线高清视频| 欧美精品一区二区大全| 啦啦啦啦在线视频资源| 精品一区二区三区四区五区乱码| 久久国产精品男人的天堂亚洲| 两人在一起打扑克的视频| 久久久久久久国产电影| 国内毛片毛片毛片毛片毛片| 天堂中文最新版在线下载| 亚洲欧美日韩高清在线视频 | 久久精品熟女亚洲av麻豆精品| 女人精品久久久久毛片| 欧美亚洲日本最大视频资源| 母亲3免费完整高清在线观看| 一本大道久久a久久精品| 一个人免费在线观看的高清视频 | 天天躁日日躁夜夜躁夜夜| 亚洲精品国产精品久久久不卡| 91大片在线观看| 80岁老熟妇乱子伦牲交| 高清av免费在线| 国产精品久久久av美女十八| 桃花免费在线播放| 人人妻,人人澡人人爽秒播| 人人妻人人澡人人看| 久久久久久久国产电影| 69精品国产乱码久久久| 亚洲精品国产区一区二| 黄片大片在线免费观看| 亚洲国产精品一区二区三区在线| 午夜91福利影院| 国产在线免费精品| 亚洲色图综合在线观看| 久久精品aⅴ一区二区三区四区| av欧美777| 国产男人的电影天堂91| 午夜免费成人在线视频| 日本wwww免费看| 亚洲专区中文字幕在线| 亚洲国产欧美一区二区综合| 老司机影院成人| 99国产综合亚洲精品| 看免费av毛片| 久久av网站| 久久热在线av| 亚洲成人国产一区在线观看| 夫妻午夜视频| 美女午夜性视频免费| 精品久久蜜臀av无| 国产精品麻豆人妻色哟哟久久| 亚洲免费av在线视频| 亚洲少妇的诱惑av| 老司机午夜十八禁免费视频| 三上悠亚av全集在线观看| 欧美日韩成人在线一区二区| 精品少妇一区二区三区视频日本电影| 国产精品久久久久久人妻精品电影 | 大香蕉久久成人网| 国产精品免费视频内射| 视频在线观看一区二区三区| 自线自在国产av| 美女扒开内裤让男人捅视频| 亚洲精品美女久久久久99蜜臀| 一本综合久久免费| 大香蕉久久成人网| 国产亚洲精品第一综合不卡| 91大片在线观看| 深夜精品福利| 国产亚洲精品一区二区www | 纵有疾风起免费观看全集完整版| 蜜桃国产av成人99| 久久久久国产一级毛片高清牌| 人人妻人人爽人人添夜夜欢视频| 一本大道久久a久久精品| 这个男人来自地球电影免费观看| 99国产极品粉嫩在线观看| 欧美另类一区| 啦啦啦 在线观看视频| 国产精品久久久久成人av| 天天操日日干夜夜撸| 动漫黄色视频在线观看| 免费在线观看黄色视频的| 久久精品熟女亚洲av麻豆精品| 精品国内亚洲2022精品成人 | 少妇粗大呻吟视频| 久久久国产一区二区| 精品人妻熟女毛片av久久网站| 欧美人与性动交α欧美软件| 国产一区二区三区av在线| 国产成人系列免费观看| 亚洲情色 制服丝袜| 久久人妻福利社区极品人妻图片| 久久人人爽人人片av| 亚洲国产av影院在线观看| 考比视频在线观看| 午夜91福利影院| 免费高清在线观看视频在线观看| 国产野战对白在线观看| 久久综合国产亚洲精品| 日本a在线网址| 每晚都被弄得嗷嗷叫到高潮| 国产亚洲欧美精品永久| 成人免费观看视频高清| 97精品久久久久久久久久精品| 日韩制服骚丝袜av| 欧美老熟妇乱子伦牲交| 91九色精品人成在线观看| 桃红色精品国产亚洲av| 午夜福利视频在线观看免费| 午夜免费鲁丝| 人成视频在线观看免费观看| 成人av一区二区三区在线看 | 欧美日本中文国产一区发布| 亚洲午夜精品一区,二区,三区| 99热国产这里只有精品6| 人妻 亚洲 视频| 美女福利国产在线| 丝袜人妻中文字幕| tube8黄色片| 一级毛片女人18水好多| 交换朋友夫妻互换小说| 日韩欧美国产一区二区入口| 久久影院123| 久久人妻熟女aⅴ| 女人被躁到高潮嗷嗷叫费观| 国产亚洲午夜精品一区二区久久| 一个人免费在线观看的高清视频 | cao死你这个sao货| 日韩制服丝袜自拍偷拍| 青春草亚洲视频在线观看| 久久中文字幕一级| 老汉色∧v一级毛片| 日本猛色少妇xxxxx猛交久久| 久久精品人人爽人人爽视色| 日韩一区二区三区影片| 中文字幕色久视频| 国产一区二区激情短视频 | 三级毛片av免费| 宅男免费午夜| 又黄又粗又硬又大视频| av福利片在线| 国产又色又爽无遮挡免| 欧美人与性动交α欧美软件| 99精品久久久久人妻精品| 国产免费av片在线观看野外av| 搡老熟女国产l中国老女人| 男人操女人黄网站| 国产精品香港三级国产av潘金莲| 午夜日韩欧美国产| 亚洲美女黄色视频免费看| 亚洲国产看品久久| 王馨瑶露胸无遮挡在线观看| 免费人妻精品一区二区三区视频| 欧美在线黄色| 亚洲国产欧美网| 国产一区二区三区av在线| h视频一区二区三区| 99久久99久久久精品蜜桃| 亚洲美女黄色视频免费看| 精品一品国产午夜福利视频| 在线观看舔阴道视频| 一区在线观看完整版| 国产av一区二区精品久久| 亚洲欧美清纯卡通| 99热国产这里只有精品6| 国产91精品成人一区二区三区 | 精品人妻在线不人妻| 黑人操中国人逼视频| 中文欧美无线码| 久久精品aⅴ一区二区三区四区| 精品久久久精品久久久| 亚洲熟女精品中文字幕| 在线永久观看黄色视频| 久久精品亚洲熟妇少妇任你| 精品国产一区二区久久| 在线精品无人区一区二区三|