Android SyncML協議研究

2021-08-25 20:21:27 字數 2627 閱讀 5503

syncml程式框架是建立在同步描述協議(syncml representation protocol)和同步協議(syncml synchronization protocol)兩個協議的基礎上的.同步描述協議定義了同步訊息(in xml)的格式描述和在同步框架內工作的細節.同步協議定義了同步客服端和同步伺服器端的互動.

下面是同步協議的最重要的幾個組成部分:

(1)change log

開始乙個同步協議的操作時,syncml協議需要在客戶端和伺服器端的各自的資料庫中維護資訊的交換或修改(如替代,增加,刪除資料等).syncml通過一種被稱為change log的資訊跟蹤機制來解決客戶端和伺服器端的資訊交換或修改的問題.syncml並沒有描述change log的格式資訊,但是進行同步的每個裝置必須能夠詳細的描述裝置上每個資料項從上次同步時的修改的詳細情況.

(2)map operation(操作的對映)

(3)sync anchors(同步錨)

當乙個同步會話被初始化的時候,總是有兩個錨被傳送,乙個是最後一次同步的錨乙個是下一次同步的錨.最後一次的錨描述了發起同步裝置發起最後一次同步事件的時間點;下次同步錨描述了發起同步動作裝置的當前的同步事件的時間點.通過這種方式,在服務端和客戶端交換各自的同步錨.當接收乙個next sync anchor時,接收裝置必須儲存它直到下次同步,當下次同步到來的時候,接收裝置將比較兩次的同步錨並傳送最後一次的同步錨,以判斷是否在同步時有資料失敗.如果最後一次同步錨和下次同步錨匹配,接收裝置將認為沒有錯誤並結束同步會話的初始化.如果不匹配,接收裝置將從其他裝置請求乙個適當的動作,比如慢同步.當同步會話成功並結束後,同步錨將被儲存.

(4)confict resolution(衝突解決方式)

當同乙個資料項在客戶端和伺服器端同時被修改後,資料的版本衝突就產生了,對同一資料項將產生兩個不同版本的資料.同步協議必須有一種策略解決這樣的衝突.在syncml中,衝突策略是同步引擎的乙個基本功能,通常是由同步引擎的同步伺服器來解決版本衝突問題,也有可能有寫客戶端裝置提供解決這一問題的解決方式.

在同步描述協議提供了通過通知同步客戶端衝突決定和狀態碼的通用解決方案.如果同步引擎的服務端確定乙個衝突,服務端將使用狀態碼和通知功能通知同步客戶端並定**決方案.下面是一些常用的狀態碼和衝突解決策略:

<1>207:資料合併

<2>208:客戶端優先

<3>209:資料複製

(5)security(安全性)

syncml為了安全的資料同步提供了框架.syncml本身並沒有提供新的安全機制,但是它提供了安全驗證框架和在不同的網路層進行安全驗證的機制.

syncml協議在三個不同的層次定義了使用者驗證機制,這個三個層分別是:伺服器層,資料庫層和物件層.sycnml只要求它的安全驗證機制在伺服器端被支援就可以了.為了使用sycnml協議,同步的客戶端和伺服器端必須支援基本的md5驗證.在資料庫層面和物件層面的安全驗證是可以選擇的.

(6)device capabilities(裝置效能)

syncml協議通過乙個初始化設定可以使不同效能的客戶端裝置和伺服器端進行資訊的交換.任意乙個裝置(客戶端或服務端)都能請求資訊交換,只要客戶端裝置效能和服務端能協同工作,他們就能讓乙個同步會話繼續下去.

有兩種型別的資訊在裝置和伺服器端進行交換:

<1>裝置資訊:包括裝置型別,資料模組和製造廠商資訊.

<2>伺服器資訊:描述了客戶端或伺服器端支援的資料物件的特性.如果客戶端支援vcard version 2.1資料格式和慢同步及雙向同步,那麼伺服器就必須具有這樣的能力,否則,同步就不能繼續下去.

同步的客戶端必須在第一次同步或者在裝置的靜態的資訊更新後的時候傳送裝置資訊到服務端。同時,當伺服器端請求客戶端裝置資訊的時候,客戶端應將自身的裝置資訊傳送到服務端。而乙個同步伺服器應具備接受和處理裝置資訊的能力,不論它是否接受過客戶端的裝置資訊或是通過自己請求過客戶端裝置資訊。

【android】syncml協議的七種同步型別

(1)two-way sync:雙向同步是客戶端和伺服器端交換有關任何修改的資料資訊的一種常用的同步型別。

(2)slow sync:慢同步是雙向同步的一種特別的形式。慢同步就是將客戶端資料庫的資料和伺服器端的資料庫資料逐個進行比較。如果客戶端和伺服器端的同步錨不匹配或客戶端或是伺服器端的修改日誌遺失時將會請求乙個慢同步。實際上,慢同步就意味著客戶端傳送所有的資料到伺服器端,伺服器端對客戶端的所有資料進行逐個欄位的分析,比較,並將服務段的資料傳送到客戶端。在同步分析完成後,服務端將所有的修改資訊返回客戶端。然後,客戶端返回所有的資料的對映資訊,並新增到服務端。

(3)one-way sync from client only:客戶端優先同步,是客戶端傳送修改資訊到服務端,但是服務端的修改資訊並不被傳送到客戶端。

(4)refresh sync from client only: 從客戶端同步重新整理,這裡客戶端為服務端提供所有資料的瀏覽,伺服器根據客戶端的修改來更新服務端的資料。

(5)one-way sync from server only:服務端同步優先,這個同步方式是客戶端從服務獲取所有的修改資訊,但是客戶端不傳送修改資訊到服務端。

(6)refresh sync from server only:從服務端重新整理同步,這裡假設服務端為客戶端提供所有的資料的預覽,客戶端將更新目標資料庫中的資料,更新資料由伺服器端傳送到客戶端。

(7)server-alerted sync: 服務通告同步,伺服器端通知客戶端需要發起的同步型別指令給服務端。

網路協議 IP協議 ARP協議 RARP協議

ip資料報 ip是tcp ip協議族中最核心的協議,所有的tcp udp icmp igmp資料都以ip資料報的格式傳輸。ip僅提供盡力而為的傳輸服務,如果發生某種錯誤,ip會丟失該資料,然後傳送icmp訊息給信源端。另外,ip資料報可以不按傳送順序接受。ip資料報的格式如下 前20位元組和緊接其後...

IP協議 ARP協議 RARP協議

ip資料報 ip是tcp ip協議族中最核心的協議,所有的tcp udp icmp igmp資料都以ip資料報的格式傳輸。ip僅提供盡力而為的傳輸服務,如果發生某種錯誤,ip會丟失該資料,然後傳送icmp訊息給信源端。另外,ip資料報可以不按傳送順序接受。ip資料報的格式如下 前20位元組和緊接其後...

IP協議 ARP協議 RARP協議

主機通過路由器和目的主機連線。主機通過ip資料報連線目的主機時,按照如下步驟搜尋 同一網路中的搜尋要經過arp協議將目的主機的ip位址解析為mac位址 搜尋路由表,優先搜尋匹配主機,如果能找到和ip位址完全一致的目標主機,則將該包發向目標主機 搜尋路由表,如果匹配主機失敗,則匹配同子網的路由器,這需...