這學期的XML課中,梅教授選了十二種XML的範圍讓我們來分組研究。而我們選擇了SyncML(同步標記語言)這一個項目,並且決定六個人一起來共同完成這個專題。因為規定的繳件方式,除了書面報告以外,還必須包含Blog的紀錄、html網頁的呈現,所以就我負責的部份,在這邊做了個心得整理介紹囉!

引用學長的前言:行動通訊的發展已經是現在及未來必然的趨勢,而資料同步也成為行動通訊應用是否能夠繼續普及的一項重要課題於是,為了建立一套能夠讓上網設備、手機以及電腦間的資料同步更加簡便,並且催生一套共通的標準,幾家大廠如Ericsson、IBM、Lotus、Motorola、Nokia、Palm Inc.、Psion、Startfish Software等聯合成立了一個促進這套資料同步化標準的組織(SyncML Initiative)。並建立了一套以XML語言為基礎,使任何終端設備都可藉由這項協定進行資料交換與同步化。實際的運用例子如:當使用者在其行動裝置上,對於其軟體或個人資料有了任何更新變動,可隨時藉由SyncML機制與後端的資料庫或網路上的資料更新同步化。
作了個簡單的介紹之後,接下來是我所負責的部份,SyncML資料同步的過程。

光是看到這個圖,可能會霧茫茫的看不懂,所以在講解之前,先做幾個簡單的名詞介紹。
Client
在這邊可以當作是圖中的App A的部份,也就是一般所謂的「用戶端」的意思。在這邊,視為從手機、PC或PDA發出同步請求的一端,請求伺服器更新檔案或更新既有檔案,以達到同步資訊的狀態。
Server
相當於圖中的App B的部份,一個SyncML的Server所具有的任務是,當有資訊向伺服器進行同步請求時,server端負責參照同步協定的架構(synchronization protocol),對於欲同步的資料進行分析處理,相當於翻譯的機制,使這些在不同平台的資料能夠達成同步,並且顯示在每一個client端。此外,server端的構造中也包含了synchronization engine的部份。
Data synchronization protocol
直譯為同步協議。為一個完整定義的協議說明,作為在請求完成同步的程序中,介於更新(資訊)者及接收同步者(被更新的接收端)間,交換資訊時所參照的基礎原理。其中,分成了兩種協議標準,一為表達協議(SyncML Representation protocol)、一為同步協議(SyncML Synchronization protocol),表達協議定義了在XML的格式下,欲同步的資訊在SyncML framework的內部處理模式。同步協議則是定義了在client端及server端的行為,又因同步依循的模式分成了七種模式(註1)。

Synchronization engine
為SyncML server的一部分,可以分析自server端及client端發出的資料,並且具有分析並發現衝突的機制、及作為察覺更新等功能。



接下來,是過程的介紹,換一張左右顛倒,但是不影響過程解說的圖。


1.首先,假設由App A,也就是Client端發出了同步的請求,如「開機連線」或者是按下了「同步更新」的按鈕。在這邊當作較典型的舉例,以使用者在此輸入欲同步的行程(如,老闆輸入了今天公司會議的時間)。此時的請求就會傳遞到圖中的藍色區塊(Sync Client Agent)端,一個傳遞的中介,他會將程式傳入SyncML interface中。

2.當SyncML interface收到XML文件時,會解譯出裡面的資訊,包含認證用的帳號、裝置類型、同步命令、還有要交換的資料。在這個部份的另一個藍色區塊(SyncML Adapter),會開始做編輯改寫的動作,將各種不同介面的資料寫成共通的XML文件,使的不同廠牌的機器,只要連上了相同的同步server都可進行同步的動作。

3.在SyncML Framework中,所有欲同部的資訊都再這邊進行改寫、編譯的工作。這些行為統稱為同步轉換(SyncML Transport)目前定義了三種binding,分別為HTTP、WSP(WAP Session Protocol)、跟OBEX(Object Exchange)。除了OBEX用在區域性同步功用之外,HTTP跟WSP大都用在遠距傳輸的同步處理上。

4.當SyncML Framework工作完成,會將訊息傳遞到伺服器的中介端(SynML Server Agent),在到達server端之前,會先經過一個同步引擎(Sync Engine),在這邊做了一些衝突的分析,檢查是否有重複更新、或者資訊不符合協議的部份。一般,決定以哪種模式的同步更新(如:慢同步或快同步),相當於在確認避免出現資訊混亂的最後一道機制。

5.當欲同步的資訊,如先前舉例的,上司欲發佈一到今日會議時間的公告,此時就平安的到達了App B,也就是伺服器端囉!當資訊到達了server端後,就開始視個人同步規劃的機制,看大家連線的時間或更新的設定,這項會議的訊息就會出現在大家有支援SyncML的機器上囉!

SyncML同步過程的部份大致就是如此,如果有什麼遺漏,或者不小心看到的人有什麼想補充的,就回覆上來一下吧!(當然,在交書面報告前,我應該會再整理一次,把這幾行白話文給刪掉XD)


註一:等到沙皮這部份完整了在一起整合吧!反正這些只算在我的部份而已!
學長的介紹
http://weco.net/~xml2002/ie905124/

SyncML intensive
http://www-128.ibm.com/developerworks/xml/library/wi-syncml2/

用 SyncML 进行异构数据库复制
http://www-128.ibm.com/developerworks/cn/java/j-sync4j/?ca=dwcn-newsletter-java

以SyncML為基礎的遠端無線同步標準
http://www.ever.com.tw/press/press_room/921217_mitch.html

arrow
arrow
    全站熱搜

    jojojoey 發表在 痞客邦 留言(0) 人氣()