DS全稱(chēng)是Data Synchronization,是數(shù)據(jù)同步的意思。
??????為了制訂可以在多個(gè)平臺(tái)及網(wǎng)絡(luò)之間實(shí)現(xiàn)個(gè)人信息及企業(yè)內(nèi)數(shù)據(jù)同步的標(biāo)準(zhǔn)規(guī)格,于2000年2月份創(chuàng)建了業(yè)界團(tuán)體SyncML iniative,后來(lái)SyncML規(guī)范移交到了OMA DS工作組(Open Mobile Alliance, Data Synchronization Work Group)。開(kāi)發(fā)SyncML的目的在于,使終端用戶、設(shè)備開(kāi)發(fā)商、基礎(chǔ)構(gòu)件開(kāi)發(fā)商、數(shù)據(jù)提供商、應(yīng)用軟件開(kāi)發(fā)商以及服務(wù)提供商協(xié)同工作,真正實(shí)現(xiàn)使用任何終端設(shè)備均可隨時(shí)隨地訪問(wèn)任何網(wǎng)絡(luò)數(shù)據(jù)。該組織于2002年12月發(fā)布了SyncML V1.0標(biāo)準(zhǔn),目前該標(biāo)準(zhǔn)已經(jīng)發(fā)展到V1.2。
???? DS的典型應(yīng)用是移動(dòng)設(shè)備和網(wǎng)絡(luò)服務(wù)之間的數(shù)據(jù)同步。除此之外,DS還可用于對(duì)等的數(shù)據(jù)同步,如兩臺(tái)PC之間。經(jīng)過(guò)同步初始化階段的參數(shù)協(xié)商以后,終端和服務(wù)器互相發(fā)送各自改變的數(shù)據(jù),以保證雙方數(shù)據(jù)的同步。
???? 目前定義的主要同步格式主要包括vCard, iCalendar, vFolder, vEmail, vFile;主要對(duì)應(yīng)手機(jī)上的通訊錄、日程表、目錄、電子郵件和文件;最常用的功能莫過(guò)于備份手機(jī)通訊錄了,特別是當(dāng)手機(jī)丟失的時(shí)候,網(wǎng)上備份的通訊錄仍然可以同步回來(lái),避免了損失。
???? 目前規(guī)范中定義的同步方式主要包括:
(1)?雙向同步
?(Two-way sync)??雙向同步是通常所使用的一種同步方式。采用該方式,同步客戶端和服務(wù)器端相互僅交換彼此設(shè)備中的數(shù)據(jù)修改信息(未修改的不交換)。客戶端首先發(fā)送其修改信息。
?慢同步
(2)慢同步
?(Slow sync)??慢同步是雙向同步的一種特殊類(lèi)型,不同之處在于必須對(duì)數(shù)據(jù)進(jìn)行逐條、逐個(gè)字段的進(jìn)行比較處理。這意味著,同步時(shí),客戶端必須把本地?cái)?shù)據(jù)庫(kù)中的所有數(shù)據(jù)都發(fā)送到服務(wù)器端,然后服務(wù)器端對(duì)用戶的客戶端數(shù)據(jù)和服務(wù)器端數(shù)據(jù)進(jìn)行逐個(gè)字段的同步分析。
(3)?客戶端單向同步
?(One-way sync from client only)??客戶端單向同步是一種單邊方式的同步。只有客戶端發(fā)送其數(shù)據(jù)修改信息到服務(wù)器,而服務(wù)器并不把服務(wù)器端的修改信息發(fā)給客戶端。
(4)客戶端刷新
?(Refresh sync from client only)??客戶端刷新也是一種單邊方式的同步。客戶端把本地?cái)?shù)據(jù)庫(kù)中的所有數(shù)據(jù)都發(fā)送到服務(wù)器端,服務(wù)器用客戶端的數(shù)據(jù)來(lái)覆蓋服務(wù)器數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)。即服務(wù)器中的數(shù)據(jù)和客戶端的完全一致,不多、不少、也沒(méi)有不同的記錄。.
?
(5)服務(wù)端單向同步
?(One-way sync from server only)??服務(wù)端單向同步和客戶端單向同步類(lèi)似。只有服務(wù)器發(fā)送其數(shù)據(jù)修改信息到客戶端,而客戶端并不把它的修改信息發(fā)給服務(wù)器。
?
(6)服務(wù)端刷新
?(Refresh sync from server only)??服務(wù)端刷新和客戶端刷新類(lèi)似。服務(wù)器把數(shù)據(jù)庫(kù)中用戶的所有數(shù)據(jù)都發(fā)送到用戶客戶端,客戶端用服務(wù)器的數(shù)據(jù)來(lái)覆蓋客戶端數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)。即客戶端中的數(shù)據(jù)和服務(wù)器的完全一致,不多、不少、也沒(méi)有不同的記錄。.
?
(7)服務(wù)端通知同步
?(Server Alerted Sync)??服務(wù)端通知同步是指由服務(wù)器首先提醒客戶端來(lái)執(zhí)行同步操作。即由服務(wù)器來(lái)告訴客戶端開(kāi)始一個(gè)特定類(lèi)型的同步操作。僅僅是服務(wù)器通知終端,要求其發(fā)起某種同步,后續(xù)同步流程可能為以上六種同步方式。
?? 這里僅舉雙向同步的例子,其他同步是雙向同步的特殊情況。例如慢同步可以看成是客戶端和服務(wù)器發(fā)送全部數(shù)據(jù)的雙向同步;單向同步是當(dāng)方向發(fā)送同步數(shù)據(jù)的雙向同步;刷新同步是單方向發(fā)送數(shù)據(jù)的慢同步。

??????為了制訂可以在多個(gè)平臺(tái)及網(wǎng)絡(luò)之間實(shí)現(xiàn)個(gè)人信息及企業(yè)內(nèi)數(shù)據(jù)同步的標(biāo)準(zhǔn)規(guī)格,于2000年2月份創(chuàng)建了業(yè)界團(tuán)體SyncML iniative,后來(lái)SyncML規(guī)范移交到了OMA DS工作組(Open Mobile Alliance, Data Synchronization Work Group)。開(kāi)發(fā)SyncML的目的在于,使終端用戶、設(shè)備開(kāi)發(fā)商、基礎(chǔ)構(gòu)件開(kāi)發(fā)商、數(shù)據(jù)提供商、應(yīng)用軟件開(kāi)發(fā)商以及服務(wù)提供商協(xié)同工作,真正實(shí)現(xiàn)使用任何終端設(shè)備均可隨時(shí)隨地訪問(wèn)任何網(wǎng)絡(luò)數(shù)據(jù)。該組織于2002年12月發(fā)布了SyncML V1.0標(biāo)準(zhǔn),目前該標(biāo)準(zhǔn)已經(jīng)發(fā)展到V1.2。
???? DS的典型應(yīng)用是移動(dòng)設(shè)備和網(wǎng)絡(luò)服務(wù)之間的數(shù)據(jù)同步。除此之外,DS還可用于對(duì)等的數(shù)據(jù)同步,如兩臺(tái)PC之間。經(jīng)過(guò)同步初始化階段的參數(shù)協(xié)商以后,終端和服務(wù)器互相發(fā)送各自改變的數(shù)據(jù),以保證雙方數(shù)據(jù)的同步。
???? 目前定義的主要同步格式主要包括vCard, iCalendar, vFolder, vEmail, vFile;主要對(duì)應(yīng)手機(jī)上的通訊錄、日程表、目錄、電子郵件和文件;最常用的功能莫過(guò)于備份手機(jī)通訊錄了,特別是當(dāng)手機(jī)丟失的時(shí)候,網(wǎng)上備份的通訊錄仍然可以同步回來(lái),避免了損失。
???? 目前規(guī)范中定義的同步方式主要包括:
(1)?雙向同步
?(Two-way sync)??雙向同步是通常所使用的一種同步方式。采用該方式,同步客戶端和服務(wù)器端相互僅交換彼此設(shè)備中的數(shù)據(jù)修改信息(未修改的不交換)。客戶端首先發(fā)送其修改信息。
?慢同步
(2)慢同步
?(Slow sync)??慢同步是雙向同步的一種特殊類(lèi)型,不同之處在于必須對(duì)數(shù)據(jù)進(jìn)行逐條、逐個(gè)字段的進(jìn)行比較處理。這意味著,同步時(shí),客戶端必須把本地?cái)?shù)據(jù)庫(kù)中的所有數(shù)據(jù)都發(fā)送到服務(wù)器端,然后服務(wù)器端對(duì)用戶的客戶端數(shù)據(jù)和服務(wù)器端數(shù)據(jù)進(jìn)行逐個(gè)字段的同步分析。
(3)?客戶端單向同步
?(One-way sync from client only)??客戶端單向同步是一種單邊方式的同步。只有客戶端發(fā)送其數(shù)據(jù)修改信息到服務(wù)器,而服務(wù)器并不把服務(wù)器端的修改信息發(fā)給客戶端。
(4)客戶端刷新
?(Refresh sync from client only)??客戶端刷新也是一種單邊方式的同步。客戶端把本地?cái)?shù)據(jù)庫(kù)中的所有數(shù)據(jù)都發(fā)送到服務(wù)器端,服務(wù)器用客戶端的數(shù)據(jù)來(lái)覆蓋服務(wù)器數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)。即服務(wù)器中的數(shù)據(jù)和客戶端的完全一致,不多、不少、也沒(méi)有不同的記錄。.
?
(5)服務(wù)端單向同步
?(One-way sync from server only)??服務(wù)端單向同步和客戶端單向同步類(lèi)似。只有服務(wù)器發(fā)送其數(shù)據(jù)修改信息到客戶端,而客戶端并不把它的修改信息發(fā)給服務(wù)器。
?
(6)服務(wù)端刷新
?(Refresh sync from server only)??服務(wù)端刷新和客戶端刷新類(lèi)似。服務(wù)器把數(shù)據(jù)庫(kù)中用戶的所有數(shù)據(jù)都發(fā)送到用戶客戶端,客戶端用服務(wù)器的數(shù)據(jù)來(lái)覆蓋客戶端數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)。即客戶端中的數(shù)據(jù)和服務(wù)器的完全一致,不多、不少、也沒(méi)有不同的記錄。.
?
(7)服務(wù)端通知同步
?(Server Alerted Sync)??服務(wù)端通知同步是指由服務(wù)器首先提醒客戶端來(lái)執(zhí)行同步操作。即由服務(wù)器來(lái)告訴客戶端開(kāi)始一個(gè)特定類(lèi)型的同步操作。僅僅是服務(wù)器通知終端,要求其發(fā)起某種同步,后續(xù)同步流程可能為以上六種同步方式。
?? 這里僅舉雙向同步的例子,其他同步是雙向同步的特殊情況。例如慢同步可以看成是客戶端和服務(wù)器發(fā)送全部數(shù)據(jù)的雙向同步;單向同步是當(dāng)方向發(fā)送同步數(shù)據(jù)的雙向同步;刷新同步是單方向發(fā)送數(shù)據(jù)的慢同步。

同步分為三個(gè)階段:
1、同步初始化階段(如圖Pkg#1和Pkg#2)
?? 同步初始化主要完成身份鑒權(quán)、需要同步的數(shù)據(jù)庫(kù)的協(xié)商、同步能力的協(xié)商(支持同步哪些數(shù)據(jù)、支持哪些同步類(lèi)型等)。圖中使用消息包(Pkg)的原因是:這種交互過(guò)程可能需要持續(xù)多次才能完成,邏輯上只有一來(lái)一回兩種消息。
2、同步階段(如圖Pkg#3和Pkg#4)
?? 客戶端和服務(wù)器根據(jù)數(shù)據(jù)的狀態(tài)(新增Add、更新Update、刪除Delete、移動(dòng)Move)將發(fā)生改變的數(shù)據(jù)通過(guò)上述操作命令的方式發(fā)送到服務(wù)器,服務(wù)器按照這些命令進(jìn)行相同的操作來(lái)達(dá)到同步的目的;同時(shí)服務(wù)器也將其發(fā)生改變的數(shù)據(jù)通過(guò)操作命令的方式發(fā)送給客戶端。
3、同步完成階段(如圖Pkg#5和Pkg#6)
客戶端和服務(wù)器端互相確認(rèn)同步完成。