雖然目前已經(jīng)有了一些數(shù)據(jù)同步協(xié)議,而且各種新的協(xié)議還在不斷產(chǎn)生,但它們都有很大的局限性,其中大多數(shù)只能支持有限種類的設(shè)備、系統(tǒng)及數(shù)據(jù)類型。這些互不兼容的協(xié)議增加了各方面工作的復(fù)雜度,而且這類協(xié)議的增加會(huì)限制移動(dòng)設(shè)備的使用。正是基于此,當(dāng)今世界的一些通信業(yè)先鋒才聯(lián)合起來(lái),致力于開發(fā)一種全行業(yè)通用的開放性的移動(dòng)數(shù)據(jù)同步協(xié)議,并將其命名為SyncML。 SyncML的產(chǎn)生 最初SyncML行動(dòng)由Ericsson、IBM、Lotus、Motorola、Nokia、Palm Inc.、Psion以及Starfish Software首先發(fā)起,最近又吸收Matsushita加入,從而使其會(huì)員達(dá)到9家,除此之外還有555家支持公司。開發(fā)SyncML的目的就在于,使終端用戶、設(shè)備開發(fā)商、基礎(chǔ)構(gòu)件開發(fā)商、數(shù)據(jù)提供商、應(yīng)用軟件開發(fā)商以及服務(wù)提供商協(xié)同工作,真正實(shí)現(xiàn)使用任何終端設(shè)備均可隨時(shí)隨地訪問任何網(wǎng)絡(luò)數(shù)據(jù)。 SyncML的典型應(yīng)用是移動(dòng)設(shè)備和網(wǎng)絡(luò)服務(wù)之間的數(shù)據(jù)同步。除此之外,SyncML還可用于對(duì)等的數(shù)據(jù)同步,如兩臺(tái)PC之間。SyncML的同步過程是由同步雙方相互發(fā)送一系列消息來(lái)完成,消息的格式都在SyncML表示協(xié)議中做了具體定義。 SyncML的消息都是以XML格式的文檔定義的,而XML是文本文檔標(biāo)記的工業(yè)標(biāo)準(zhǔn),這必將極大地促進(jìn)SyncML的推廣和普及。 有了SyncML,網(wǎng)絡(luò)數(shù)據(jù)可以通過多種設(shè)備同步化,用戶可以使用不同的設(shè)備(包括掌上電腦、移動(dòng)電話、汽車計(jì)算機(jī)、臺(tái)式機(jī)等)訪問和操作同一網(wǎng)絡(luò)數(shù)據(jù)。此外,用戶的個(gè)人信息(如電子郵件、通訊錄等)能夠在用戶的不同設(shè)備上同時(shí)得到更新,并保持一致。比如,用戶在掌上電腦上閱讀了一封新收到的郵件,那么在他的臺(tái)式機(jī)中,也會(huì)自動(dòng)地將這封郵件顯示為已讀郵件。有了SyncML,用戶還可以在他的移動(dòng)設(shè)備上更多地使用應(yīng)用軟件和信息,如果對(duì)這些軟件和信息有所更新,可以隨時(shí)將這些更新信息同步到辦公室設(shè)備或網(wǎng)絡(luò)。 SyncML的總體框架 SyncML的總體框架如后面的圖中所示,其主要組成部分的功能如下: App A:是位于服務(wù)器端的應(yīng)用,負(fù)責(zé)為其他應(yīng)用提供數(shù)據(jù)同步服務(wù)。 App B:是位于客戶端的應(yīng)用,請(qǐng)求并接受App A所提供的數(shù)據(jù)同步服務(wù)。 Sync Engine:位于服務(wù)器端,負(fù)責(zé)在同步過程中分析數(shù)據(jù)集中所做的改動(dòng),檢測(cè)和解決沖突。客戶端也可以有部分類似的功能。 Sync Server Agent和Sync Client Agent:調(diào)用在SyncML同步協(xié)議中提供的接口(SyncML I/F)與對(duì)方通信。 SyncML I/F:即SyncML Interface,是SyncML同步協(xié)議中提供的接口,它建立在各種底層通信協(xié)議之上,與應(yīng)用無(wú)關(guān),由SyncML行動(dòng)組織定義和發(fā)行。 SyncML客戶機(jī)通常是移動(dòng)電話、PDA、PC等,而SyncML服務(wù)器可以是專門的服務(wù)器或PC。一般情況下是由客戶機(jī)首先把自己的更改信息發(fā)送給服務(wù)器,并等待服務(wù)器的應(yīng)答,而服務(wù)器在接收到更改信息后要進(jìn)行同步分析以檢測(cè)和解決沖突,然后把處理結(jié)果和更改要求返回給客戶機(jī)。但也有些情況是由服務(wù)器首先開始同步過程。 七種同步類型 在SyncML同步協(xié)議中定義了七種同步類型: ● 雙向同步 是最常見也最具有代表性的一種同步,其他同步過程都和它有很多相似之處。雙向同步總是由客戶機(jī)首先發(fā)起,然后客戶端和服務(wù)器互換更新信息。同步過程如下:同步初始化;客戶端準(zhǔn)備要發(fā)送的數(shù)據(jù);客戶端發(fā)送自己的更新信息;服務(wù)器接收并進(jìn)行分析處理;服務(wù)器返回處理的狀態(tài)信息和自己的更新信息;客戶端接收更新信息并對(duì)自己的數(shù)據(jù)庫(kù)進(jìn)行更新;客戶端把更新的狀態(tài)信息發(fā)送給服務(wù)器,其中包含插入記錄的ID映射信息;服務(wù)器對(duì)客戶端發(fā)送的映射信息做應(yīng)答;客戶端收到服務(wù)器的應(yīng)答后,把同步結(jié)果通知用戶。 ● 慢同步 是雙向同步的一種。在一般的雙向同步中,客戶機(jī)只是把自己在上次同步過程中所做的修改發(fā)送給服務(wù)器,而在慢同步中,客戶機(jī)則把自己所有的數(shù)據(jù)都發(fā)給服務(wù)器,服務(wù)器逐一比較接收到的數(shù)據(jù)和自己的數(shù)據(jù),以確定客戶端哪些數(shù)據(jù)需要更新,然后把這些更新信息發(fā)送給客戶端。需要慢同步的情況一般有:設(shè)備之間第一次同步;修改日志丟失;同步雙方的同步標(biāo)志不匹配。由于產(chǎn)生慢同步的原因很多,所以客戶機(jī)和服務(wù)器雙方都有可能發(fā)起慢同步。 ● 客戶端單向同步 只由客戶機(jī)向服務(wù)器發(fā)送上次同步之后自己更新的信息,而服務(wù)器不把自己的更新信息發(fā)送給客戶端。 ● 客戶端刷新同步 屬于客戶端單向同步的一種??蛻魴C(jī)把自己所有的數(shù)據(jù)都發(fā)給服務(wù)器,并刷新服務(wù)器上的數(shù)據(jù)。 ● 服務(wù)器單向同步 客戶機(jī)從服務(wù)器那里得到上次同步之后服務(wù)器所有的更新信息,但不向服務(wù)器發(fā)送自己的更新信息。 ● 服務(wù)器刷新同步 屬于服務(wù)器單向同步的一種。服務(wù)器把所有的數(shù)據(jù)都發(fā)給客戶端,并刷新客戶端的數(shù)據(jù)。 ● 服務(wù)器發(fā)起的同步 前面六種同步方式都是由客戶機(jī)主動(dòng)發(fā)起的同步過程,而這種同步方式是由服務(wù)器首先通知客戶端,讓其開始某種類型的同步。 |
|