999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

移動云環(huán)境下實時協(xié)同圖形編輯一致性維護(hù)研究

2018-03-28 06:33:14高麗萍高東方
關(guān)鍵詞:一致性系統(tǒng)

高麗萍,高東方

1(上海理工大學(xué) 光電信息與計算機(jī)工程學(xué)院,上海 200093) 2(復(fù)旦大學(xué) 上海市數(shù)據(jù)科學(xué)重點實驗室,上海 200093)

1 引 言

隨著云計算時代的到來,基于云的研究和應(yīng)用越來越熱,云計算具有高可靠性,高擴(kuò)展性等優(yōu)點,并且云計算能夠有效降低生產(chǎn)成本、營銷成本[1],越來越多的企業(yè)開始使用云技術(shù).隨著云計算和移動互聯(lián)網(wǎng)的發(fā)展,云計算與移動互聯(lián)網(wǎng)的結(jié)合使得移動云計算也成為一大研究熱點.移動云計算是在社會網(wǎng)絡(luò),移動計算,云計算融合的背景下產(chǎn)生的,移動云計算依靠云端提供的存儲,計算,平臺等彈性資源,通過網(wǎng)絡(luò)向移動用戶提供隨時隨地的服務(wù).移動云計算能為移動應(yīng)用提供穩(wěn)定可靠的服務(wù),ServiceNow機(jī)構(gòu)的最新調(diào)查結(jié)果顯示,52%的企業(yè)愿意將自己的項目部署在云中*The 2016 Cloud ComputingTipping Points.http://cloudtweaks.com/2016/11/2016-cloud-computing-tipping-points/,2016..

隨著移動互聯(lián)網(wǎng)的發(fā)展,人與人之間的聯(lián)系越來越緊密,人與人之間協(xié)同交互的需求也變得越來越強(qiáng)烈,協(xié)同工作正在從普通需求變成隨時隨地的必要需求,而且越來越多的用戶希望能夠借助移動設(shè)備進(jìn)行協(xié)同交互.由于移動設(shè)備所處網(wǎng)絡(luò)環(huán)境的復(fù)雜性和其本身計算資源的限制,設(shè)計跨平臺、可靠和穩(wěn)定的協(xié)同應(yīng)用是十分必要的.近年來協(xié)同系統(tǒng)領(lǐng)域的應(yīng)用多以在線服務(wù)的形式提供,比如在線文檔協(xié)作服務(wù):Google Docs*Google Docs-Create and share your work online.http://docs.google.com/,2015.,Microsoft Office 365*Microsoft Office 365.https://office.live.com/,2016.;在線集成開發(fā)環(huán)境:Cloud9 IDE*Cloud9 IDE.https://c9.io/,2016;在線協(xié)同繪圖服務(wù):ProcessOn*ProcessOn.https://www.processon.com/,2016.等.

2 相關(guān)工作

一致性維護(hù)技術(shù)是保證協(xié)同系統(tǒng)正確性的關(guān)鍵技術(shù),操作轉(zhuǎn)換(OT)技術(shù)是一致性維護(hù)最常用的技術(shù).基于操作轉(zhuǎn)換技術(shù)的協(xié)同控制算法有很多,比如:GOT[7],COT[8,9],ABT[10],ABST[19]等,然而這些算法的研究和設(shè)計都是基于點對點的分布式架構(gòu).而且,近些年來的研究中[2-6],基于點對點的分布式架構(gòu)在協(xié)同系統(tǒng)的設(shè)計中依舊被廣泛采用.雖然基于點對點架構(gòu)的協(xié)同系統(tǒng)易于設(shè)計和實現(xiàn),但是在移動互聯(lián)網(wǎng)時代,這樣的架構(gòu)設(shè)計很難滿足移動用戶協(xié)同交互的需求.

隨著移動互聯(lián)網(wǎng)和云計算的發(fā)展,移動云環(huán)境下協(xié)同應(yīng)用的研究已經(jīng)成為了一大熱點[11-15].Web應(yīng)用具有天然的跨平臺特性,云環(huán)境下采用Client/Server集中式架構(gòu)的Web協(xié)同應(yīng)用正在成為協(xié)同系統(tǒng)研究和設(shè)計的方向.在過去的研究中[7-10,19],算法的設(shè)計和實現(xiàn)采用的是點對點的分布式架構(gòu),這些算法并不能直接應(yīng)用在集中式架構(gòu)的云環(huán)境中.在基于操作轉(zhuǎn)換技術(shù)的協(xié)同控制算法中,Google Wave所采用的Jupiter[16]算法和Bin Shao等人提出的TIPS[17]協(xié)議是目前僅有的兩個支持集中式架構(gòu)的算法[20].然而,Jupiter算法并不是完美的,在一些特定的情景下算法并不能得到正確的結(jié)果.TIPS算法使用HTTP協(xié)議并經(jīng)過了正確性證明的同步協(xié)議,但是TIPS算法并不能達(dá)到嚴(yán)格意義上的實時協(xié)同.TIPS算法的實時性取決于客戶端設(shè)定的間隔時間τ,客戶端在每個τ時間結(jié)束時向服務(wù)器請求其他協(xié)同站點的操作,也既是客戶端用戶最快在τ時間后才能看見其他站點用戶的協(xié)同效果.并且τ值的設(shè)定存在困難和爭議,如果τ值設(shè)置的太大,系統(tǒng)的實時性就降低了;如果τ值設(shè)置的太小,客戶端向服務(wù)端的請求就越頻繁,系統(tǒng)負(fù)載就越大.并且由于云服務(wù)的分布式特點,Jupiter算法和TIPS算法都不能直接應(yīng)用在移動云環(huán)境中.

圖1 HTTP協(xié)議與WebSocket協(xié)議使用過程對比Fig.1 Comparison of HTTP protocol and WebSocket protocol

采用WebSocket協(xié)議的Web的應(yīng)用已經(jīng)能夠?qū)崿F(xiàn)與服務(wù)端實時的全雙工通信[18].HTTP協(xié)議與WebSocket協(xié)議的對比如圖1所示.本文使用WebSocket協(xié)議代替HTTP協(xié)議并對TIPS算法進(jìn)行重新設(shè)計和改進(jìn),使改進(jìn)后的TIPS算法能應(yīng)用于移動云環(huán)境中.本文的后續(xù)工作安排如下:第三部分提出算法的設(shè)計與分析;第四部分研究算法在實時協(xié)同圖形編輯系統(tǒng)中的應(yīng)用;第五部分提出CloudDraw系統(tǒng)的設(shè)計與實現(xiàn);文章的總結(jié)與展望將在第六部分提出.

3 移動云環(huán)境下實時協(xié)同算法的設(shè)計與分析

移動云環(huán)境下的實時協(xié)同交互式應(yīng)用對傳統(tǒng)的采用點對點架構(gòu)的算法提出了新的挑戰(zhàn),這些挑戰(zhàn)主要來自于以下方面的變化和特點:

1.架構(gòu)的變化:基于移動云環(huán)境的應(yīng)用大都采用的是Client/Server集中式架構(gòu),采用點對點分布式架構(gòu)的算法并不能應(yīng)用在移動云環(huán)境下.因此,算法的設(shè)計要能滿足集中式架構(gòu),并且算法要能保證服務(wù)端和客戶端共享數(shù)據(jù)的一致性.

2.客戶端的變化:傳統(tǒng)的協(xié)同應(yīng)用主要面向的是桌面環(huán)境,但在移動云環(huán)境下移動設(shè)備則是主要的應(yīng)用環(huán)境.算法在設(shè)計時必須考慮到移動設(shè)備在電源、存儲、計算等資源方面的限制,因此算法應(yīng)當(dāng)設(shè)計的簡單和高效.

3.移動用戶動態(tài)變化的特點:移動用戶具有隨時加入、隨時離開的動態(tài)特點.算法的設(shè)計應(yīng)當(dāng)具有一定的健壯性,要能滿足移動用戶動態(tài)變化的特點.

圖2 移動用戶使用云服務(wù)進(jìn)行協(xié)同工作Fig.2 Collaborative work among mobile users by cloud service

4.服務(wù)端分布式特點:云服務(wù)是由多臺物理計算機(jī)提供的可靠服務(wù),同一群組內(nèi)的不同用戶可以使用不同的計算機(jī)提供的服務(wù),如圖2所示.因此,算法的設(shè)計應(yīng)當(dāng)考慮到數(shù)據(jù)分布式存儲的的特點.

圖3 客戶端與服務(wù)端交互流程Fig.3 Process of interaction between client and server

本文采用WebSocket協(xié)議作為客戶端和服務(wù)器的通信協(xié)議.客戶端與服務(wù)器的交互過程如圖3所示,客戶端:本地生成的操作會立即執(zhí)行,執(zhí)行完畢后存儲在Tj中.客戶端收到服務(wù)器發(fā)送的數(shù)據(jù)后,經(jīng)過處理后將本地產(chǎn)生的操作序列Tj發(fā)送到服務(wù)器.相比TIPS,本研究中客戶端被動的等待服務(wù)器推送的數(shù)據(jù),客戶端無需設(shè)定間隔時間τ,無需在每個τ時間結(jié)束時向服務(wù)器發(fā)起請求,大大降低了客戶端的負(fù)載.RQj是接收隊列,用來保存從服務(wù)器接收的操作.服務(wù)端:RBCj負(fù)責(zé)存儲客戶端j發(fā)來的操作序列;RBSj存儲服務(wù)器j發(fā)送的操作集合,這些操作來自服務(wù)器j所服務(wù)的客戶端;SBCj中存儲的則是經(jīng)過服務(wù)器處理后即將發(fā)送到客戶端j的操作序列;SBSj存儲本服務(wù)器即將發(fā)送到服務(wù)器j的操作序列,這些操作來自于本服務(wù)器所服務(wù)的客戶端,算法的詳細(xì)設(shè)計會在下節(jié)給出.

3.1 客戶端算法設(shè)計

考慮到移動設(shè)備資源受限的特點,客戶端算法應(yīng)設(shè)計的簡單和高效.客戶端連接到云服務(wù)后直接從服務(wù)器獲取文檔副本,并初始化相關(guān)數(shù)據(jù)結(jié)構(gòu),客戶端的兩個主要線程分別負(fù)責(zé)處理本地操作和遠(yuǎn)程數(shù)據(jù),算法如Algorithm 1所示.

Algorithm1:ControlProcedureonClientj1. Initialization:2. Tj=[];RQj=[];3. getdocumentreplicafromServer4. Thread1:5. executealocaloperationo6. Tj=ERMerge(o,Tj);7. Thread2:8. casesq:9. receivetheremoteoperationsequencesqfromServer10. RQj=RQj+sq;11. sq′=RQj;RQj=[];12. executearemoteoperationsequencesq′13. sq′′=ITSQ(sq′,Tj);14. executesq′′onlocaldocument15. Tj′=ITSQ(Tj,sq′);16. sendtheTj′toServer17. casePUSH:18. sendthelocaloperationsequenceTjtoServerdirectly

在Algorithm 1中,Tj存儲本地生成的操作集合,需要注意的是這些操作的存放順序是滿足”effects relation”的關(guān)系,”effects relation”是ABT[10]理論中提出的概念,按”effects relation”排序的兩個操作序列在進(jìn)行操作轉(zhuǎn)換時能大大的提高轉(zhuǎn)換效率;RQj存儲服務(wù)端發(fā)來的操作.線程1負(fù)責(zé)本地操作的執(zhí)行:本地生成的操作o立即執(zhí)行,執(zhí)行后線程1將操作o加入到本地操作集合Tj中.ERMerge算法[17]的作用是將操作o保持”effects relation”的順序加入到Tj中.線程2負(fù)責(zé)接收并處理服務(wù)器發(fā)送的數(shù)據(jù):當(dāng)客戶端接收到服務(wù)器發(fā)送操作序列sq時,客戶端將sq與本地執(zhí)行過的操作序列Tj進(jìn)行操作轉(zhuǎn)換,轉(zhuǎn)換后的結(jié)果則在本地立即執(zhí)行.之后,客戶端將操作序列Tj與sq進(jìn)行操作轉(zhuǎn)換后的結(jié)果發(fā)送到服務(wù)器.ITSQ算法的作用是對兩個操作序列做包含轉(zhuǎn)換[19].當(dāng)客戶端接收到服務(wù)器發(fā)送的”PUSH”字符串時,說明服務(wù)器當(dāng)前沒有接收到任何的操作序列,這時客戶端直接將本地執(zhí)行過的操作序列Tj發(fā)送到服務(wù)器即可.與TIPS算法相比,本算法采用WebSocket協(xié)議,并且客戶端未設(shè)定間隔時間τ.

3.2 服務(wù)端算法設(shè)計

服務(wù)端算法不僅要能適應(yīng)移動用戶動態(tài)變化的特點,而且應(yīng)當(dāng)是分布式的算法,服務(wù)端算法如Algorithm 2所示.服務(wù)端每隔τ時間向客戶端發(fā)送一次數(shù)據(jù),τ是可以動態(tài)配置的.如果當(dāng)前系統(tǒng)負(fù)載較大,τ可以設(shè)置為較小的值以減輕系統(tǒng)負(fù)載,相反τ可以設(shè)置為較大的值以提高系統(tǒng)的實時性,文章將在算法的分析中討論τ值對系統(tǒng)負(fù)載的影響.本文規(guī)定各個服務(wù)端擁有相同的τ,以保證服務(wù)端能提供整體一致的服務(wù).線程1負(fù)責(zé)將SBC存儲序列中的操作發(fā)送到客戶端,當(dāng)SBC中沒有操作時,服務(wù)端發(fā)送”PUSH”字符串到客戶端.線程2負(fù)責(zé)接收客戶端發(fā)來的操作,并將這些操作發(fā)送到其他服務(wù)端,目的是使服務(wù)端共享所有客戶端的數(shù)據(jù),保證數(shù)據(jù)的一致性.隨后,服務(wù)端將客戶端發(fā)送的操作和其他服務(wù)端發(fā)送的操作進(jìn)行合并,并在本地文檔中執(zhí)行這些操作,之后將這些操作提取到發(fā)送隊列SBC中,準(zhǔn)備發(fā)送到相應(yīng)的客戶端.

Algorithm2:ControlProcedureonServerj1. Initialization:2. ?i:RBCi=[];SBCi=[];RBSi=[];RBSi=[];3. Thread1:4. senddatatoclient5. ?j:6. sqj=extractRemotes(SBCj,j);7. ifsqjisnull:send“PUSH”toClientj;8. else:sendsqjtoClientj;SBCj=[];9. Thread2:10. receiveoperationsequenceTjfromClientj11. RBCj=serializedMerge(RBCj,Tj);12. ?i:SBSi=serializedMerge(SBSi,Tj);13. sendtheoperationsequencetootherServer14. ?i:sendSBSitoServeri;SBSi=[];15. msq=nwayMerge([RBC1,…,RBCn,RBS1,…,RBSn]);16. ?i:RBCi=[];RBSi=[];17. executemsgonlocaldocument18. ?i:SBCi=serializedMerge(SBCi,msq);

extractRemotes算法的作用是從SBC中提取相應(yīng)的操作發(fā)送到客戶端;serializedMerge算法的作用是將兩個滿足依賴關(guān)系的操作序列合并成一個按”effects relation”排序的整體操作序列;nwayMerge算法的作用是合并n個按”effects relation”排序并且上下文相同的操作序列為一個整體操作序列.這些算法在過去的研究[17]中已經(jīng)給出,這不是本文研究的重點.本研究將大部分的任務(wù)放到服務(wù)端來完成,服務(wù)端的算法相對復(fù)雜,這樣設(shè)計的目的是為了減輕客戶端的負(fù)載.服務(wù)端具有很好的可擴(kuò)展性,主要表現(xiàn)在以下兩點:

1)新加入的客戶端可以連接到云服務(wù)中任何一臺服務(wù)器,并獲取該服務(wù)器中的文檔副本.服務(wù)端通過RBC,SBC這些數(shù)據(jù)結(jié)構(gòu)來標(biāo)識對應(yīng)的客戶端數(shù)據(jù),當(dāng)有客戶端加入或退出時,服務(wù)端只需要分配或撤銷對應(yīng)的RBC,SBC即可,滿足了客戶端動態(tài)變化的特點.

2)由于服務(wù)端共享所有客戶端的操作數(shù)據(jù),當(dāng)有新的服務(wù)器加入時可以直接從相鄰的服務(wù)器獲取文檔副本和當(dāng)前客戶端的操作數(shù)據(jù).因此,服務(wù)端具有一定的可擴(kuò)展性.

3.3 算法效率分析

客戶端:客戶端算法中主要的耗時操作是ITSQ算法,如Algorithm 1第12、14行所示.本文對ITSQ算法在移動設(shè)備中運行耗時做了測試.硬件環(huán)境:擁有3G RAM,2.5 GHz高通801四核CPU的小米Note手機(jī);運行環(huán)境:Chrome 53.0.2785.124;操作系統(tǒng):Android 6.0.1;開發(fā)語言:JavaScript.本文測試時設(shè)定操作序列T的長度為10,隨著sq序列中操作數(shù)量的增加,ITSQ(sq,T)和ITSQ(T,sq)的運行耗時情況如圖4所示.如圖4所示,當(dāng)sq序列中的操作數(shù)量超過10000時ITSQ(sq,T)算法的耗時會急劇上升.然而在實際的協(xié)同系統(tǒng)中,為了保證用戶的體驗性協(xié)同系統(tǒng)內(nèi)用戶的數(shù)量是有一定限制的.試想:1000個用戶同時編輯一個文檔有何意義?因此,在實際情況下sq序列中的操作數(shù)量遠(yuǎn)沒有這么大.

圖4 移動設(shè)備環(huán)境下ITSQ算法運行分析Fig.4 Analysis of ITSQ algorithm in the environment of mobile device

服務(wù)端:服務(wù)端相對客戶端更加復(fù)雜.經(jīng)分析,τ值的設(shè)定對系統(tǒng)負(fù)載有較大的影響.本文測試了τ的不同取值對系統(tǒng)的影響.測試環(huán)境:同一局域網(wǎng)內(nèi)擁有4GB RAM、3.3GHz奔騰雙核CPU配置的三臺服務(wù)器.本文使用腳本程序來模擬客戶端,并設(shè)定每臺服務(wù)器服務(wù)于100個腳本程序且每個腳本程序每秒產(chǎn)生10個操作.本文使用算法執(zhí)行時間和服務(wù)端數(shù)據(jù)交換時間來衡量系統(tǒng)負(fù)載.經(jīng)測試,τ值對系統(tǒng)負(fù)載的影響如圖5所示.

圖5 不同τ值對系統(tǒng)負(fù)載的影響Fig.5 System load

如圖5所示,當(dāng)τ值大于1000ms時,系統(tǒng)負(fù)載開始明顯增大.這主要是因為在τ時間內(nèi)客戶端產(chǎn)生了大量的操作數(shù)據(jù),服務(wù)端之間的數(shù)據(jù)轉(zhuǎn)發(fā)以及數(shù)據(jù)的合并成為了主要耗時的操作.當(dāng)τ值很小時,系統(tǒng)負(fù)載不下降反而上升,是因為雖然τ時間內(nèi)產(chǎn)生的操作數(shù)據(jù)不多,但是在單位時間內(nèi)服務(wù)端相互之間的請求次數(shù)過多,浪費了大量的CPU資源.在本測試環(huán)境下τ取值大約在500ms時系統(tǒng)的整體負(fù)載最小.

相比TIPS算法,本算法的優(yōu)勢主要體現(xiàn)在以下兩個方面:

1)本文提出的客戶端算法移除了間隔時間τ,客戶端無需再每個τ時間結(jié)束時向服務(wù)器發(fā)出請求,大大降低了客戶端的負(fù)載.

2)本文提出的服務(wù)端算法能處理分布在其他服務(wù)端的數(shù)據(jù),不僅對客戶端在擴(kuò)展性方面有較好的支持,而且服務(wù)端也有很強(qiáng)的可擴(kuò)展性.

4 算法在實時協(xié)同圖形編輯系統(tǒng)中的應(yīng)用

4.1 文檔模型定義

圖形編輯系統(tǒng)中繪圖文檔是二維空間,定義為PAINT={START,END,DOC},其中START和END分別是繪圖文檔的開始和結(jié)束坐標(biāo),DOC是存儲圖形文檔中所有圖形對象的線性隊列.如圖6所示,擁有三個圖形對象的繪圖文檔表示為PAINT={(0,0),(100,100),{O1,O2,O3}}.

圖6 擁有三個圖形對象的圖形文檔Fig.6 Graphic document

圖形對象是基于對象的圖形編輯系統(tǒng)中最基本的單元,圖形對象可以是:線段、矩形、圓形、三角形等,這些對象擁有類型、填充色、透明度等屬性.因此,圖形對象定義為:obj= {TYPE,ATTR,Z-INDEX}.TYPE:圖形對象的類型,類型包括線段、矩形、圓形、三角形等.ATTR:該圖形對象所擁有的屬性對象.ATTR={FILL_COLOR,TRANS,POINTS},為簡化設(shè)計與分析,本文暫時只考慮了三種屬性類型.其中FILL_COLOR和TRANS分別表示該對象的填充顏色和透明度.POINTS表示該對象在圖形文檔中的坐標(biāo)數(shù)組.例如:可用兩個點表示一條線段,可用n個點表示一條曲線.Z-INDEX:圖形對象在DOC中存儲位置,新的圖形對象生成時,該對象的Z-INDEX值為當(dāng)前線性文檔DOC的長度.

4.2 二維繪圖空間映射為線性結(jié)構(gòu)

圖形對象的Z-INDEX屬性表示該對象在線性文檔中的存儲位置,例如:用戶先后生成了三個圖形對象O1,O2,O3,則這三個對象一定是以O(shè)1,O2,O3的順序繪制在圖形文檔和存儲于線性文檔DOC中的,如圖7所示.只要保證線性文檔DOC的一致性,就能保證圖形對象在圖形文檔中繪制順序的一致性,從而保證了圖形文檔的一致性.

圖7 二維空間映射為線性結(jié)構(gòu)Fig.7 Mapping the two-dimension space to the linear structure

用戶對二維圖形文檔的操作可以轉(zhuǎn)化為對線性文檔DOC的操作,本文將圖形編輯操作轉(zhuǎn)化為線性編輯操作:create(OBJ)是在圖形文檔中創(chuàng)建了一個圖形對象的操作,相當(dāng)于insert(OBJ,OBJ.Z-INDEX),既是在線性文檔DOC的OBJ.Z_INDEX位置插入了一個對象OBJ;remove(OBJ)是從圖形文檔中移除圖形對象OBJ的操作,相當(dāng)于delete(OBJ,OBJ.Z-INDEX),既是刪除線性文檔DOC中位置為OBJ.Z-INDEX處的對象;change(OBJ,ATTR.name,old,new)是更新圖形對象OBJ的操作,相當(dāng)于update(OBJ,OBJ.Z-INDEX,ATTR.name,old,new)既是在線性文檔DOC中更新位置為OBJ.Z-INDEX處的對象.

4.3 一致性維護(hù)策略及算法的應(yīng)用

在過去的理論研究中[7-10]操作轉(zhuǎn)換技術(shù)是協(xié)同文本編輯系統(tǒng)中一致性維護(hù)最常用的技術(shù),TIPS算法是在ABT[10]算法的基礎(chǔ)上改進(jìn)的適用于Web環(huán)境的協(xié)同文本編輯系統(tǒng)中一致性維護(hù)算法.本文通過將二維圖形空間映射為線性空間和將二維圖形編輯操作轉(zhuǎn)換為線性編輯操作,文章將協(xié)同圖形編輯系統(tǒng)的一致性維護(hù)問題轉(zhuǎn)化為了協(xié)同文本編輯系統(tǒng)的一致性維護(hù)問題.因此,基于操作轉(zhuǎn)換技術(shù)的協(xié)同控制算法就能很好的解決協(xié)同圖形編輯系統(tǒng)中一致性維護(hù)問題.本文借助TIPS理論中的相關(guān)算法來解決協(xié)同文本編輯系統(tǒng)中的一致性維護(hù)問題,通過本文提出的映射理論即能解決協(xié)同圖形編輯系統(tǒng)中的一致性維護(hù)問題.TIPS理論中關(guān)于協(xié)同文本編輯系統(tǒng)中一致性維護(hù)策略已經(jīng)在ABT[10]理論中得到了細(xì)致的研究和嚴(yán)謹(jǐn)?shù)淖C明,本文不再贅述.

在正確的使用基于操作轉(zhuǎn)換的控制算法處理實時協(xié)同圖形編輯系統(tǒng)中一致性維護(hù)問題之前,需要將二維的圖形編輯操作轉(zhuǎn)換成線性的文本編輯操作.控制算法如Algorithm 3所示.

Algorithm3:ControlproceduceoftheClient1. Initialization:2. DOC=[];3. Thread1:3. handlelocalgraphicsoperationo4. o.Z?INDEX=DOC.length;5. o′=conversionOP(o);6. handlethelocaloperationo′byAlgorithm17. Thread2:8. ifDOCischange:9. re?drawallgraphicsobjectonlocaldocument

如Algorithm 3,線程1的作用是將用戶生成的圖形編輯操作o轉(zhuǎn)換成線性的操作o′,注意操作o生成時其Z-INDEX屬性值為當(dāng)前DOC文檔的長度,轉(zhuǎn)換后的線性操作o′由Algorithm 1處理.線程2的作用時監(jiān)控DOC文檔變化,當(dāng)DOC中有操作被改變時,重新將DOC中的圖形對象繪制到圖形文檔中,以呈現(xiàn)給用戶最新的視圖.

Algorithm4:conversionOP(o):o′1. if(o.type==create):2. o′.type=insert;3. elseif(o.type==remove):4. o′.type=delete;5. else:6. o′.type=update;8. o′.obj=o.obj;9. o′.pos=o.obj.z?index;10. returno′;

二維圖形操作轉(zhuǎn)換為線性文本操作的算法如Algorithm 4所示.經(jīng)過本章的研究和嘗試,可以很好的將基于操作轉(zhuǎn)換技術(shù)的協(xié)同控制算法應(yīng)用于解決實時協(xié)同圖形編輯系統(tǒng)中一致性維護(hù)問題.

5 CloudDraw原型系統(tǒng)

為了驗證本文提出的算法的正確性,文章開發(fā)了基于HTML5 WebSocket的實時協(xié)同圖形編輯系統(tǒng):CloudDraw.CloudDraw是基于Web環(huán)境的集中式架構(gòu)的實時協(xié)同圖形編輯系統(tǒng).

客戶端:采用HTML5 WebSocket協(xié)議和JQuery EasyUI框架的Web App.基于HTML5的Web App具有開發(fā)成本低、更新速度快、跨平臺和終端等優(yōu)點.CloudDraw系統(tǒng)客戶端繪圖面板如圖8(a)所示,繪圖界面包含三個部分:上方區(qū)域的Fill Color和Line Color選擇框可以分別設(shè)定圖形對象的填充色彩和線條色彩;左側(cè)區(qū)域的圖形按鈕可以設(shè)定當(dāng)前要繪制的圖形類型,可以選擇繪制線條、矩形、圓形等類型;右側(cè)區(qū)域是繪圖面板.用戶信息界面如圖8(b)所示,用戶信息界面展現(xiàn)了當(dāng)前系統(tǒng)在線的用戶,如圖所示當(dāng)前系統(tǒng)有兩個在線用戶.實時消息界面如圖8(c)所示,用戶可以在消息界面實時的看到系統(tǒng)產(chǎn)生的消息.

圖8 CloudDraw用戶界面Fig.8 User interface of CloudDraw

服務(wù)端:在同一局域網(wǎng)內(nèi)的三臺不同的服務(wù)器上來模擬云環(huán)境下的分布式服務(wù),服務(wù)端網(wǎng)絡(luò)拓?fù)淙鐖D9所示.服務(wù)端程序采用Java 8語言和Eclipse J2EE工具開發(fā),運行在Tomcat 8.0應(yīng)用服務(wù)器環(huán)境中.

6 總結(jié)及展望

本文對TIPS算法進(jìn)行重新設(shè)計和改進(jìn),將二維的繪圖空間映射為線性的結(jié)構(gòu),并且將二維的圖形編輯操作轉(zhuǎn)換為線性的文本編輯操作.基于此,本文將改進(jìn)后的TIPS算法應(yīng)用于基于Web的實時協(xié)同圖形編輯系統(tǒng)中.根據(jù)本文的研究和嘗試得出以下結(jié)論:

1.通過將二維繪圖空間映射為線性結(jié)構(gòu)和將二維繪圖操作轉(zhuǎn)換為線性的操作,使得基于操作轉(zhuǎn)換的控制算法能很好的應(yīng)用于協(xié)同圖形編輯系統(tǒng)中.通過這種轉(zhuǎn)換可以將二維空間的一致性維護(hù)問題轉(zhuǎn)化為線性的一致性維護(hù)問題,大大降低了問題的復(fù)雜度.

2.移動云環(huán)境下采用集中式架構(gòu)的實時協(xié)同系統(tǒng)的設(shè)計應(yīng)當(dāng)考慮到客戶端所在網(wǎng)絡(luò)的復(fù)雜性和自身計算資源的限制,客戶端的算法要盡量的簡單,而且服務(wù)端應(yīng)具備一定的可擴(kuò)展性.基于HTML5的Web App具有開發(fā)效率高、開發(fā)成本低、跨平臺等優(yōu)點.

圖9 服務(wù)端網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)Fig.9 Network topology of the server

在圖形編輯系統(tǒng)中Undo/Redo是非常重要的操作,能否將圖形編輯中的Undo/Redo操作轉(zhuǎn)換為文本編輯中的Undo/Redo操作和如何解決圖形編輯系統(tǒng)中用戶意愿一致性的問題,將是我們以后的工作重點.

[1] Liu Yue.Overview of the cloud computing and research on the application of mobile cloud computimg[J].Information and Communications Technologies,2010,4(2):14-20.

[2] Fan Hong-fei,Sun Cheng-zheng.Supporting semantic conflict prevention in real-time collaborative programming environments[J].Acm Sigapp Applied Computing Review(SIGAPP),2012,12(2):39-52.

[3] Sun Cheng-zheng,Chen David.Consistency maintenance in real-time collaborative graphics editing systems[J].ACM Transactions on Computer-Human Interaction(TOCHI),2002,9(1):2181-2186.

[4] Claudia-Lavinia Ignat,Moira C.Norrie.Draw-together: graphical editor for collaborative drawing[C].Acm Conference on Computer Supported Cooperative Work(CSCW),2006:269-278.

[5] Song Hong-zhi,Qu Zhao-ming.Operational transformation algorithm with conflict detection and awareness methods for real-time collaborative editing in P2P environments[C].IEEE International Conference on Computer Science & Automation Engineering(CSAE),2011,17(5):571- 576.

[6] Li Rui-xuan,Yu Guang-can.P2P-based locking in?real-time?collaborative?editing systems [C].11th International Conference on Computer Supported Cooperative Work in Design(CSCW),2007:24- 29.

[7] Sun C,Jia X,Zhang Y,et al.Achieving convergence,causality preservation,and intention preservation in real-time cooperative editing systems[J].ACM Transactions on Computer-Human Interaction(TOCHI),1998,5(1):63-108.

[8] Sun D,Sun C.Operation context and context-based operational transformation [C].Acm Conference on Computer Supported Cooperative Work(CSCW),2006:279-288.

[9] Sun D,Sun C.Context-based operational transformation in distributed collaborative editing systems [J].IEEE Transactions on Parallel & Distributed Systems(TPDS),2009,20(10):1454-1470.

[10] Li D,Li R.An admissibility-based operational transformation framework for collaborative editing systems [C].Computer Supported Cooperative Work(CSCW),2010,19(1):1-43.

[11] Wang W H,Hao Y M,Cao Y H,et al.A cloud-based real-time mobile collaboration wiki system [C].Applied Mechanics & Materials,2013,441:928-931.

[12] Guetmi N,Mechaoui M D,et al.Mobile collaboration: a collaborative editing service in the cloud [C].30thAnnual ACM Symposium on Applied Computing(SAC),2015,(2): 509-512.

[13] Alshahwan F,Faisal M,Ansa G,et al.Security framework for RESTful mobile cloud computing Web services [J].Journal of Ambient Intelligence & Humanized Computing(JAIHC),2015,(1):1-11.

[14] Cheng X,Yu J.Designing of a mobile collaboration application for student collaborative group work: evidence from china [C].48thHawaii International Conference on System Sciences(HICSS),2015:544-551.

[15] Kovachev D,Nicolaescu P,Klamma R,et al.Mobile real-time collaboration for semantic multimedia [J].Mobile Networks and Applications(MONET),2014,19(5):635-648.

[16] Nichols D A,Curtis P,Dixon M,et al.High-latency,low-bandwidth windowing in the Jupiter collaboration system [C].Acm Symposium on User Interface & Software Technology(UIST),1995,46(2):111-120.

[17] Shao B,Li D,Lu T,et al.An operational transformation based synchronization protocol for web 2.0 applications [C].In Proceedings of the ACM 2011 Conference on Computer Supported Cooperative Work(CSCW),2011:563-572.

[18] Imre G,Mezei G,et al.Introduction to a Web socket benchmarking infrastructure[C].Zooming Innovation in Consumer Electronics International Conference (ZINC),2016: 84-87.

[19] Bin Shao,Du Li,et al.A fast operational transformation algorithm for mobile and asynchronous collaboration[J].Parallel & Distributed Systems IEEE Transactions on(TPDS),2010,21(12): 1707-1720.

[20] Xia Huan-huan.Research and application of adress space tran sformation key technique based on environment of mobile cloud[D].Shanghai:Fudan University,2014..

附中文參考文獻(xiàn):

[1] 劉 越.云計算綜述與移動云計算的應(yīng)用研究[J].信息通信技術(shù),2010,4(2):14-20.

[20] 夏歡歡.移動云環(huán)境下地址空間轉(zhuǎn)換關(guān)鍵技術(shù)研究及應(yīng)用[D].上海:復(fù)旦大學(xué),2014.

猜你喜歡
一致性系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
關(guān)注減污降碳協(xié)同的一致性和整體性
公民與法治(2022年5期)2022-07-29 00:47:28
注重教、學(xué)、評一致性 提高一輪復(fù)習(xí)效率
對歷史課堂教、學(xué)、評一體化(一致性)的幾點探討
IOl-master 700和Pentacam測量Kappa角一致性分析
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
主站蜘蛛池模板: 丝袜国产一区| 国产日产欧美精品| 免费可以看的无遮挡av无码| 在线观看亚洲成人| 日韩欧美国产成人| 91九色国产porny| 国产免费人成视频网| 欧美视频在线第一页| 亚洲三级电影在线播放| 国产二级毛片| 日本a级免费| www.av男人.com| Jizz国产色系免费| 亚洲开心婷婷中文字幕| 国产簧片免费在线播放| 久久久久亚洲精品成人网 | 伊人久热这里只有精品视频99| 亚洲福利网址| 台湾AV国片精品女同性| 无码免费试看| 美女扒开下面流白浆在线试听 | 大陆精大陆国产国语精品1024| 国产精品主播| 日韩小视频在线播放| 国产精品自拍露脸视频| 在线看AV天堂| 成人午夜天| 亚洲国产中文精品va在线播放| 免费高清a毛片| 成人a免费α片在线视频网站| 日韩国产另类| 欧美精品在线免费| AⅤ色综合久久天堂AV色综合 | 久久青草免费91观看| 国产成人精品在线| 国产a在视频线精品视频下载| 国产性生大片免费观看性欧美| 另类欧美日韩| 香蕉网久久| 国产精品自在在线午夜| 好紧太爽了视频免费无码| 亚洲国产成人麻豆精品| 国产毛片久久国产| 亚洲va精品中文字幕| 国产精品国产主播在线观看| 久草网视频在线| 88av在线看| 伊人无码视屏| 性欧美精品xxxx| 亚洲精品国产成人7777| 久久semm亚洲国产| 国产丝袜精品| 久久永久精品免费视频| 亚洲自拍另类| 欧美另类图片视频无弹跳第一页| 浮力影院国产第一页| 激情国产精品一区| 99热这里只有精品国产99| 亚洲成网777777国产精品| 国产91高跟丝袜| 极品私人尤物在线精品首页 | 国产永久无码观看在线| 国产日韩欧美精品区性色| 在线日本国产成人免费的| 国产麻豆aⅴ精品无码| 精品无码专区亚洲| 99久久国产综合精品女同| 亚洲乱码在线视频| 中文字幕在线看| 波多野结衣无码视频在线观看| 色综合久久久久8天国| 99久久国产自偷自偷免费一区| 亚洲无码四虎黄色网站| 99热国产在线精品99| 欧美日韩精品综合在线一区| 男人天堂亚洲天堂| 国产精品美人久久久久久AV| 欧美一区二区三区欧美日韩亚洲| 国产亚洲现在一区二区中文| 高清码无在线看| 国产人人乐人人爱| 69国产精品视频免费|