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

多移動終端筆記數據的同步方案設計

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:

基金項目:

作者簡介:

收稿日期: 引言

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

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

1總體設計

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

(1)移動環境下的分布式數據系統。

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

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

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

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

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

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

2關鍵模塊設計

2.1數據模型

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

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

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

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

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

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

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

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

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

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

2.2沖突協調

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

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

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

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

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

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

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

2.3數據傳輸

在云筆記同步系統中需要同步的對象是筆記數據。一個筆記實例即如圖2所示。

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

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

3同步過程

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

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

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

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

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

4結束語

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

參考文獻

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

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

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

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

[5] 馮久凌. 個人云系統移動終端數據同步的設計與實現[D]. 北京:北京郵電大學,2013.

[6] 王文方,王剛,劉璟. 對等網維護數據副本一致性的樂觀復制技術研究[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]連向輝,王培東 .對移動數據庫復制技術中沖突問題的研究[J]. 黑龍江科技信息,2007(7):63,153.

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

主站蜘蛛池模板: 黄色网页在线观看| 一级毛片免费观看不卡视频| 国产精品妖精视频| 久久综合九色综合97网| 欧美精品v| 欧美精品v欧洲精品| 国产精品亚洲欧美日韩久久| 国内99精品激情视频精品| 无码粉嫩虎白一线天在线观看| 久久黄色小视频| 国产精品视频久| 亚洲天堂免费| 九九精品在线观看| 狠狠色综合久久狠狠色综合| 五月综合色婷婷| 伦精品一区二区三区视频| 日本不卡在线| 久久动漫精品| 久久综合色天堂av| 国产人人干| 99精品国产电影| 亚洲中文字幕国产av| 扒开粉嫩的小缝隙喷白浆视频| 特级精品毛片免费观看| 9cao视频精品| 一级成人欧美一区在线观看| 最新无码专区超级碰碰碰| 国产一区三区二区中文在线| 国产97视频在线| 天天激情综合| 精品91在线| 动漫精品啪啪一区二区三区| 日韩欧美视频第一区在线观看| 国产成a人片在线播放| vvvv98国产成人综合青青| 女人18毛片一级毛片在线 | 91成人在线免费视频| 中日韩一区二区三区中文免费视频 | 人人艹人人爽| 欧美第二区| 亚洲欧美精品一中文字幕| 毛片国产精品完整版| 久久国产亚洲偷自| 欧美日韩国产成人高清视频| 久久国产精品国产自线拍| 尤物视频一区| 毛片在线看网站| 久久久噜噜噜| 亚洲AV无码精品无码久久蜜桃| 亚洲人成成无码网WWW| 美女一级免费毛片| 欧美亚洲国产一区| 一级黄色网站在线免费看| 黄色片中文字幕| 手机看片1024久久精品你懂的| 国产一二视频| 波多野结衣一区二区三视频| 91色综合综合热五月激情| av一区二区三区高清久久| 欧美日韩第二页| 亚洲免费毛片| 国产又粗又猛又爽| 中文字幕免费视频| 超清无码熟妇人妻AV在线绿巨人| 欧美啪啪网| 波多野结衣视频一区二区 | 欧洲一区二区三区无码| 国产av无码日韩av无码网站| 日韩视频精品在线| 国产精品冒白浆免费视频| 91久久天天躁狠狠躁夜夜| 日本三级欧美三级| 中文字幕亚洲精品2页| 黄色网站在线观看无码| 日本福利视频网站| 亚洲成人一区二区三区| 91九色最新地址| 午夜毛片福利| 国产丝袜啪啪| 女人毛片a级大学毛片免费| 真人高潮娇喘嗯啊在线观看| 亚洲天堂视频在线观看免费|