亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        多移動終端筆記數(shù)據(jù)的同步方案設計

        2018-09-05 10:19:04王廣鵬周慶華朱科風王樂林思宇
        智能計算機與應用 2018年3期
        關鍵詞:副本服務端字段

        王廣鵬 周慶華 朱科風 王樂 林思宇

        文章編號: 2095-2163(2018)03-0076-04中圖分類號: 文獻標志碼: A

        摘要: 關鍵詞: (School of Physical & Electronic Science, Changsha University of Science & Technology, Changsha 410114, China)

        Abstract: This article focuses on the synchronization of note data in the personal cloud note App. To solve several problems including notes data synchronization strategy and synchronization conflict of multiple Android terminals, the paper uses optimistic replication, vector clock and other technology,and according to the characteristics of note data which is rich-media note containing text and several attachments, proposes a suitable data model. After that, the paper uses differential transmission scheme, further designs a viable synchronization program.

        Key words:

        基金項目:

        作者簡介:

        收稿日期: 引言

        隨著移動互聯(lián)網的迅速發(fā)展,智能手機和平板電腦等智能終端的普及,移動信息應用技術已經影響了人們生活的方方面面。就制作筆記而言,電子筆記已經完全超越了傳統(tǒng)的筆記,電子筆記使用方便,容量大,功能豐富?,F(xiàn)在,很多人都擁有不止一臺智能設備,因此筆記數(shù)據(jù)在各個設備上實現(xiàn)同步就尤為重要。云筆記是一類基于Android平臺的個人云筆記應用,就可用戶創(chuàng)建各類富媒體筆記,并且支持多終端同時在線、筆記數(shù)據(jù)的同步等功能。

        本文在樂觀復制等同步技術的基礎上,將筆記分為附件和筆記內容,分別使用各自的數(shù)據(jù)傳輸方案,選取矢量時鐘判斷筆記的新舊程度,設計提出了一套同步策略,為Android移動端數(shù)據(jù)同步提供了新思路。

        1總體設計

        云筆記應用是一種個人云同步系統(tǒng),重點基于云計算和云存儲,以個人為中心進行不同設備之間的筆記數(shù)據(jù)共享。分析可知,該應用的性能特點可表述如下:

        (1)移動環(huán)境下的分布式數(shù)據(jù)系統(tǒng)。

        (2)節(jié)點有主、副本之分,服務端為主節(jié)點,移動端為副本節(jié)點,數(shù)據(jù)同步均通過主節(jié)點來掌控操作。

        (3)副本節(jié)點之間沒有連接,主、副本節(jié)點之間為移動網絡下的弱連接,沒有高速穩(wěn)定連接。

        (4)主、副本節(jié)點之間沒有嚴格的時鐘同步關系。

        (5)主、副本節(jié)點間采用差量傳輸(只復制更新的部分)。

        綜上分析可知,云筆記的同步適合使用C/S結構的樂觀復制技術路線。樂觀復制只能保證最終一致性,即不需要各個節(jié)點的數(shù)據(jù)時刻保持一致,系統(tǒng)中的各個節(jié)點的數(shù)據(jù)隨時都可以進行讀寫操作,如果從某個時間點起,各個節(jié)點都不再涉及寫操作,一定時間后,系統(tǒng)中的各個節(jié)點將完全同步。系統(tǒng)的星型拓撲結構則如圖1所示。

        C/S結構的樂觀復制是一種對稱副本樂觀復制,所有副本節(jié)點沒有主、次之分。在云同步系統(tǒng)中,各個移動端的節(jié)點即為對稱的副本節(jié)點,服務端的節(jié)點為主節(jié)點,主節(jié)點的數(shù)據(jù)是最終版本。每當有新的副本節(jié)點加入(即用戶在一個新設備上使用云筆記應用),都會先從主節(jié)點將筆記數(shù)據(jù)同步到該副本節(jié)點。各個副本節(jié)點提交的同步請求如果沒有沖突,就會在主節(jié)點進行更新并且同步到所有副本節(jié)點;如果有沖突,針對不同的沖突采用不同的沖突解決策略消除沖突(下文將詳細說明),再進行更新同步。

        2關鍵模塊設計

        2.1數(shù)據(jù)模型

        在云筆記系統(tǒng)中要同步的數(shù)據(jù)有2種。一種是用戶的個人資料,包括用戶名、密碼、郵箱、地址等等,另一種是筆記。前者是結構化的數(shù)據(jù),可以直接表示為數(shù)據(jù)表中的一行記錄;而后者是文件型數(shù)據(jù),包含文本內容和附件(圖片、音頻文件等),筆記的內容保存為文件,但筆記的基本信息和同步所需的相關信息則可以記錄在數(shù)據(jù)庫中,筆記“新”的程度可用矢量時鐘(vector clock)來刻畫。矢量時鐘實際上是一個{節(jié)點,計數(shù)器}對列表、即{node,counter}對列表。節(jié)點-計數(shù)器對指明了在哪一節(jié)點更新、以及更新的次數(shù)。例如,當某個筆記的矢量時鐘表示為[(A,2),(B,3),(C,0)],其含義是:在A節(jié)點有過2次更新,B節(jié)點有3次更新,在C節(jié)點暫無更新。矢量時鐘與每個對象的歷次版本相關聯(lián),通過查證其矢量時鐘,可以判斷一個對象(即筆記)的2個版本的新、舊關系。假設在A設備上某個筆記數(shù)據(jù)的矢量時鐘表示為[(A,2),(B,3),(C,0)],這說明系統(tǒng)中有3個節(jié)點、即有3臺移動設備。在A設備進行了2次修改并且同步成功,在B設備進行了3次修改并且同步成功,C設備節(jié)點沒有修改;假設在服務端該筆記的矢量時鐘為[(A,2),(B,4),(C,1)],后者每個節(jié)點的counter數(shù)都大于或等于前者,這就表征著后者的筆記數(shù)據(jù)要更“新”。此時若A設備進行同步,將會用服務端的筆記數(shù)據(jù)覆蓋掉A設備上的內容;如果服務端的矢量時鐘為[(A,1),(B,4),(C,0)],此時將無法比較2個筆記數(shù)據(jù)的新舊關系,如果進行同步就會發(fā)生沖突,就需要引入沖突協(xié)調。為了解決上述問題,移動端數(shù)據(jù)表設計可見表1。

        6isDeleteBoolean是否已刪除7isNewBoolean是否為新建筆記由表1可知,筆記數(shù)據(jù)表的各個字段的詳細說明如下:

        (1)_id:筆記的唯一標識。由用戶名+設備唯一標識碼+筆記創(chuàng)建時間組成。

        (2)name:用戶設置的筆記名。不同的筆記可以重名。

        (3)isSync:標識筆記是否同步。當用戶新建一個筆記,或者修改、刪除一個筆記,但是尚未同步,將此字段置為false,同步成功后則置為true。

        (4)createTime:筆記創(chuàng)建的時間。

        (5)changeTime:筆記最后修改(不一定已同步)的時間。

        (6)isDelete:筆記刪除標志。當刪除一個已經同步成功的筆記,將此字段置為true;如果刪除一個未同步的筆記,將直接刪除該條記錄。

        (7)isNew:筆記新建標志。在移動端新建一個筆記并且未同步至服務端,將此字段置為true。

        還需指出,服務端的note數(shù)據(jù)表和移動端的基本相同,只是沒有isSync和isNew字段。

        2.2沖突協(xié)調

        多個移動端筆記的同步過程有時會有沖突,必須進行沖突協(xié)調,具體情況可剖析分述如下:

        (1)在一個移動端修改了某個筆記,但是該筆記已經在另一個移動端經過修改并且成功同步到了服務端,此時同步就會產生沖突,進一步推得3種方案可供用戶自行選擇,相應的方案內容可闡釋如下:

        ① 放棄此次修改并將服務端的最新版本的筆記同步到本地。

        ② 仍然堅持此次修改,并且將修改的筆記覆蓋掉服務端的筆記。

        ③ 將此次修改的筆記保存為一個新的筆記并同步到服務端。

        (2)在一個移動端修改了某個筆記,但是該筆記已經在另一個移動端被刪除并且成功同步到了服務端,此時同步也會產生沖突。解決方案為:保存此次修改的筆記到服務端。

        (3)在一個移動端刪除了某個筆記,但是該筆記已經在另一個移動端被修改并且成功同步到了服務端,此時同步也會產生沖突。解決方案為:放棄此次刪除,并且將服務端該筆記的最新版本同步至本地。

        2.3數(shù)據(jù)傳輸

        在云筆記同步系統(tǒng)中需要同步的對象是筆記數(shù)據(jù)。一個筆記實例即如圖2所示。

        由圖2可以看出,筆記的內容為文本和附件的組合。為了節(jié)省同步時間和流量,可以采用差量傳輸?shù)姆绞竭M行同步以便減少重復數(shù)據(jù)的傳輸。本文采取一種設計處理方法,詳情展開如下:

        筆記的內容分開存儲,分為文本內容和附件,為每一個筆記配置一個清單文件保存筆記內容的順序。比如圖2所示的筆記可以分為4塊,分別是:文本1、附件1、附件2、文本2。每個筆記中的附件都配備唯一的附件名,該附件名采用此附件在系統(tǒng)中的文件名+時間戳(添加此附件后筆記首次保存的時間)以保證唯一性。同步時,對于文本內容較小的筆記數(shù)據(jù)并不提送檢測,而是直接用新的文本內容覆蓋舊的;對于附件較大的這類數(shù)據(jù)通過對比附件名找出不重合的進行傳輸,以達到減少傳輸數(shù)據(jù)的目的。

        3同步過程

        對于某一個賬號,每當有一個新終端加入并進行同步時,通過比對服務端與終端的筆記數(shù)據(jù)的_id,找出服務端有而終端沒有的筆記,將其同步至本地,找出終端存在而服務端沒有的筆記同步至服務端;通過對比服務端與移動終端的矢量時鐘,找出需要更新的筆記,利用前文提及的方法更新至本地,并進行相應的沖突協(xié)調。整個同步過程內容可見如下:

        步驟1查詢移動端的note數(shù)據(jù)表,首先將isNew字段為true,isSync字段為false的筆記上傳至服務端。原因在于這些筆記都是在移動端新建的、并且尚未同步到服務端,因而就涉及到了上傳筆記信息和完備筆記內容,同步成功后,更新移動端的相應筆記的矢量時鐘,將isSync置為true。

        步驟2將移動端note數(shù)據(jù)表中isNew字段為false,isSync字段為false的筆記的矢量時鐘發(fā)送至服務端,對比服務端對應筆記信息的矢量時鐘。經過對比如果發(fā)現(xiàn)服務端的比移動端的新,說明該筆記沒有在其它移動端修改并同步到服務端,可用移動端的筆記覆蓋服務端的筆記。同步成功后,更新服務端note表中相應筆記的矢量時鐘,將changeTime修改為移動端的changeTime,更新移動端note表中相應筆記的矢量時鐘,將isSync置為true。如果對比后無法判定新舊關系,說明在移動端修改的筆記的版本并不是最新的版本,修改后的版本與服務端的最新版本有沖突,此時將按照上文提到的沖突解決方案進行沖突協(xié)調。

        步驟3將移動端note數(shù)據(jù)表中isDelete字段為true,isSync字段為false的筆記的矢量時鐘上傳至服務端對比,如果沒有沖突則將該筆記在服務端刪除。刪除成功后,把該筆記在移動端note表中對應的一條記錄直接刪除;如果有沖突,則按上文提到的沖突解決方案進行沖突協(xié)調。

        步驟4將移動端note表的_id列全部發(fā)送至服務端,與服務端的關聯(lián)項進行對比,再將移動端沒有的筆記同步到本地。

        4結束語

        本文借鑒了樂觀復制、矢量時鐘等同步方法,而且根據(jù)筆記數(shù)據(jù)的特點,將筆記數(shù)據(jù)分為文本和附件,更具針對性地提出了有效數(shù)據(jù)模型。同時,為了(下轉第83頁)節(jié)省傳輸時間和流量采用差量傳輸,又綜合制定了不同情況下的沖突協(xié)調策略,最終設計并實現(xiàn)了一套實用的同步方案,解決了筆記數(shù)據(jù)在多個終端的同步問題?,F(xiàn)已應用到Android手機端的云筆記應用,并已取得了良好的效果。

        參考文獻

        [1] 朱航. 基于Android平臺的數(shù)據(jù)安全同步技術的研究與設計[D]. 北京:北京郵電大學,2015.

        [2] 李輝. 基于安卓手機的信息云同步系統(tǒng)的設計與實現(xiàn)[D]. 南京:南京大學,2014.

        [3] 鄭金光. 基于Android終端的用戶信息同步平臺設計與實現(xiàn)[D]. 北京:北京郵電大學,2014.

        [4] 田原. 基于SyncML協(xié)議的移動多終端信息同步的設計與實現(xiàn)[D]. 成都:電子科技大學,2013.

        [5] 馮久凌. 個人云系統(tǒng)移動終端數(shù)據(jù)同步的設計與實現(xiàn)[D]. 北京:北京郵電大學,2013.

        [6] 王文方,王剛,劉璟. 對等網維護數(shù)據(jù)副本一致性的樂觀復制技術研究[J]. 計算機工程,2006,32(20):45-47.

        [7] 鄭增威,林懷忠,王蘇儀. 樂觀復制方法研究[J]. 計算機工程與科學,2003,25(5):97-99,107.

        [8] HALDAR S,VITNYI P. Bounded concurrent timestamp systems using vector clocks[J]. Journal of the ACM (JACM),2002,49(1):101-126.

        [9] 許春艷. NoSQL中基于向量時鐘的最終一致性方法研究[D]. 武漢:華中科技大學,2014.

        [10]連向輝,王培東 .對移動數(shù)據(jù)庫復制技術中沖突問題的研究[J]. 黑龍江科技信息,2007(7):63,153.

        [11]魏喆,譚建榮,馮毅雄,等. 移動環(huán)境下產品數(shù)據(jù)一致性控制技術研究[J]. 計算機集成制造系統(tǒng),2007,13(2):363-369.

        猜你喜歡
        副本服務端字段
        圖書館中文圖書編目外包數(shù)據(jù)質量控制分析
        面向流媒體基于蟻群的副本選擇算法①
        云存儲中基于相似性的客戶-服務端雙端數(shù)據(jù)去重方法
        新時期《移動Web服務端開發(fā)》課程教學改革的研究
        消費導刊(2018年8期)2018-05-25 13:19:48
        在Windows Server 2008上創(chuàng)建應用
        副本放置中的更新策略及算法*
        樹形網絡中的副本更新策略及算法*
        CNMARC304字段和314字段責任附注方式解析
        無正題名文獻著錄方法評述
        關于CNMARC的3--字段改革的必要性與可行性研究
        圖書館建設(2014年3期)2014-02-12 15:41:35
        国产免费av手机在线观看片| 五月婷婷激情小说| 国产爆乳乱码女大生Av| 亚洲欧美变态另类综合| 国产精品亚洲一区二区三区妖精| 日本美女中文字幕第一区| 亚洲一区二区三区99| 亚洲av无码码潮喷在线观看| 人人爽久久涩噜噜噜av| 精品推荐国产精品店| 免费国产99久久久香蕉| 国产目拍亚洲精品二区| 成人久久精品人妻一区二区三区| 亚洲一区精品无码| 极品嫩模高潮叫床| 亚洲一本大道无码av天堂| 97国产免费全部免费观看| 国产精品女丝袜白丝袜| 日本熟妇裸体视频在线| 精品少妇一区二区三区免费| 把女人弄爽特黄a大片| 97久久精品无码一区二区天美| 波多野结衣免费一区视频| 亚洲国产成人手机在线电影| 日本一区二区三区在线观看免费| 中文字幕在线乱码日本| 狠狠综合亚洲综合亚洲色| 一本一本久久aa综合精品| 久久棈精品久久久久久噜噜| 国产区精品| 亚洲无码啊啊啊免费体验| 亚洲熟女天堂av一区二区三区| 99久久国产精品网站| 欧美午夜刺激影院| 国产一品道av在线一二三区| 久久91精品国产91久| 粉色蜜桃视频完整版免费观看在线| 久久久久久久久无码精品亚洲日韩| 无码国产福利av私拍| 国产一区二区波多野结衣| 中文国产成人精品久久一区|