OMA DS(資料同步)的主要用途和流程簡介

2021-08-29 11:49:19 字數 1892 閱讀 7508

ds全稱是data synchronization,是資料同步的意思。

為了制訂可以在多個平台及網路之間實現個人資訊及企業內資料同步的標準規格,於2023年2月份建立了業界團體syncml iniative,後來syncml規範移交到了oma ds工作組(open mobile alliance, data synchronization work group)。開發syncml的目的在於,使終端使用者、裝置開發商、基礎構件開發商、資料提供商、應用軟體開發商以及服務提供商協同工作,真正實現使用任何終端裝置均可隨時隨地訪問任何網路資料。該組織於2023年12月發布了syncml v1.0標準,目前該標準已經發展到v1.2。

ds的典型應用是移動裝置和網路服務之間的資料同步。除此之外,ds還可用於對等的資料同步,如兩台pc之間。經過同步初始化階段的引數協商以後,終端和伺服器互相傳送各自改變的資料,以保證雙方資料的同步。

目前規範中定義的同步方式主要包括:

(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) 服務端通知同步是指由伺服器首先提醒客戶端來執行同步操作。即由伺服器來告訴客戶端開始乙個特定型別的同步操作。僅僅是伺服器通知終端,要求其發起某種同步,後續同步流程可能為以上六種同步方式。

這裡僅舉雙向同步的例子,其他同步是雙向同步的特殊情況。例如慢同步可以看成是客戶端和伺服器傳送全部資料的雙向同步;單向同步是當方向傳送同步資料的雙向同步;重新整理同步是單方向傳送資料的慢同步。

同步分為三個階段:

1、同步初始化階段(如圖pkg#1和pkg#2)

同步初始化主要完成身份鑑權、需要同步的資料庫的協商、同步能力的協商(支援同步哪些資料、支援哪些同步型別等)。圖中使用訊息包(pkg)的原因是:這種互動過程可能需要持續多次才能完成,邏輯上只有一來一回兩種訊息。

2、同步階段(如圖pkg#3和pkg#4)

客戶端和伺服器根據資料的狀態(新增add、更新update、刪除delete、移動move)將發生改變的資料通過上述操作命令的方式傳送到伺服器,伺服器按照這些命令進行相同的操作來達到同步的目的;同時伺服器也將其發生改變的資料通過操作命令的方式傳送給客戶端。

3、同步完成階段(如圖pkg#5和pkg#6)

客戶端和伺服器端互相確認同步完成。

MSSQL escape的主要用途

title 生成測試資料 author wufeng4552 date 2009 09 22 09 27 36 declare t table test nvarchar 5 insert t select n 11 22 union all select n 11 33 union all sel...

python主要用途 python的主要用途是什麼

python主要的五大應用介紹 一 web開發 python的誕生歷史比web還要早,由於python是一種解釋型的指令碼語言,開發效率高,所以非常適合用來做web開發。python有上百種web開發框架,有很多成熟的模板技術,選擇python開發web應用,不但開發效率高,而且執行速度快。二 網路...

Java泛型的主要用途

1.泛型的主要用途就是代替各種型別,作為乙個籠統的整體型別代替,也就是代替引數,不論是傳入引數還是返回引數。都可以用泛型來代替。如dao操作類的增刪改查操作,因為傳入引數的型別不同,但基本都是相同介面,所以就可以只寫乙個dao操作類的增刪該查方法,其傳入引數用泛型代替。如 public intupd...