posts - 37,  comments - 53,  trackbacks - 0

          SyncML 是一種為了結(jié)束終端用戶,設(shè)備制造廠商,服務(wù)提供商(SP)和應(yīng)用開(kāi)發(fā)者之間的無(wú)線數(shù)據(jù)無(wú)法同步的數(shù)據(jù)同步協(xié)議.下面讓我們一起來(lái)看看無(wú)線開(kāi)發(fā)者Chandan Pabla 對(duì)SyncML協(xié)議(version1.1)的理解和使用客戶端/服務(wù)器端兩邊覆蓋的同步過(guò)程.

          1.SyncML的基礎(chǔ):
             SyncML是一種主要的開(kāi)發(fā)式的工業(yè)標(biāo)準(zhǔn),為了使遠(yuǎn)程數(shù)據(jù)和個(gè)人信息通過(guò)不同的網(wǎng)絡(luò),平臺(tái)和設(shè)備進(jìn)行同步而制定的.SyncML使的數(shù)據(jù)非常的容易在不同的網(wǎng)絡(luò)和網(wǎng)絡(luò)設(shè)備之間進(jìn)行傳輸,因?yàn)樗С侄喾N傳輸協(xié)議.
            SyncML的有點(diǎn)可以總結(jié)為一下幾點(diǎn):
               (1)可以在不同的網(wǎng)絡(luò)上工作--包括有限網(wǎng)絡(luò)和無(wú)限網(wǎng)絡(luò).
               (2)支持多種傳輸協(xié)議,包括HTTP,WSP(Wireless Session Protocol),OBEX(Bluetooth,IrDA),SMTP,pure TCP/IP.
               (3)支持通用的個(gè)人數(shù)據(jù)格式,如vCard,vCalendar和E-MAIL等.
               (4)對(duì)移動(dòng)設(shè)備的存儲(chǔ)空間進(jìn)行了優(yōu)化.
               (5)建立在internet協(xié)議和web技術(shù)上,是可執(zhí)行而且有很好的協(xié)作性的.
          2.SyncML的協(xié)議描述:
             SyncML程序框架是建立在同步描述協(xié)議(SyncML Representation protocol)和同步協(xié)議(SyncML Synchronization protocol)兩個(gè)協(xié)議的基礎(chǔ)上的.同步描述協(xié)議定義了同步消息(in XML)的格式描述和在同步框架內(nèi)工作的細(xì)節(jié).同步協(xié)議定義了同步客服端和同步服務(wù)器端的交互.
             為了建立一個(gè)適當(dāng)?shù)腟yncML產(chǎn)品,我們必須要了解這個(gè)兩個(gè)協(xié)議的相關(guān)要求,下面我們開(kāi)始看看同步協(xié)議的最重要的幾個(gè)組成部分:
            (1)Change log
            開(kāi)始一個(gè)同步協(xié)議的操作時(shí),SyncML協(xié)議需要在客戶端和服務(wù)器端的各自的數(shù)據(jù)庫(kù)中維護(hù)信息的交換或修改(如替代,增加,刪除數(shù)據(jù)等).SyncML通過(guò)一種被稱為change log的信息跟蹤機(jī)制來(lái)解決客戶端和服務(wù)器端的信息交換或修改的問(wèn)題.SyncML并沒(méi)有描述change log的格式信息,但是進(jìn)行同步的每個(gè)設(shè)備必須能夠詳細(xì)的描述設(shè)備上每個(gè)數(shù)據(jù)項(xiàng)從上次同步時(shí)的修改的詳細(xì)情況.

            (2)Map operation(操作的映射)

             同步操作是基于客戶端和服務(wù)器端的數(shù)據(jù)庫(kù)中每個(gè)數(shù)據(jù)元素都有一個(gè)唯一標(biāo)識(shí)(IDS)的原則來(lái)進(jìn)行的.客戶端ID被稱為本地唯一標(biāo)識(shí)(locally unique indentifier LUID),服務(wù)器ID被稱為全局唯一標(biāo)識(shí)(globally unique identifier GUID).這個(gè)ID在服務(wù)器和客戶端可以相同,也可以不同.如果這個(gè)IDS是不同的,那么服務(wù)器端就必須保留一個(gè)ID的映射,保證服務(wù)端和客戶端的數(shù)據(jù)交換的一致性.LUIDS總是由客戶端設(shè)備來(lái)分配的.這就意味者即使是通過(guò)服務(wù)端添加一個(gè)數(shù)據(jù)項(xiàng)到客戶端設(shè)備,也是由客戶端為這個(gè)數(shù)據(jù)項(xiàng)分配LUID.分配完成后,客戶端將通過(guò)Map operation把LUID發(fā)送到服務(wù)端,服務(wù)端將更新MAPPING表中數(shù)據(jù)項(xiàng)的LUID.

            (3)Sync anchors(同步錨)

            當(dāng)一個(gè)同步會(huì)話被初始化的時(shí)候,總是有兩個(gè)錨被發(fā)送,一個(gè)是最后一次同步的錨一個(gè)是下一次同步的錨.最后一次的錨描述了發(fā)起同步設(shè)備發(fā)起最后一次同步事件的時(shí)間點(diǎn);下次同步錨描述了發(fā)起同步動(dòng)作設(shè)備的當(dāng)前的同步事件的時(shí)間點(diǎn).通過(guò)這種方式,在服務(wù)端和客戶端交換各自的同步錨.當(dāng)接收一個(gè)NEXT SYNC ANCHOR時(shí),接收設(shè)備必須保存它直到下次同步,當(dāng)下次同步到來(lái)的時(shí)候,接收設(shè)備將比較兩次的同步錨并發(fā)送最后一次的同步錨,以判斷是否在同步時(shí)有數(shù)據(jù)失敗.如果最后一次同步錨和下次同步錨匹配,接收設(shè)備將認(rèn)為沒(méi)有錯(cuò)誤并結(jié)束同步會(huì)話的初始化.如果不匹配,接收設(shè)備將從其他設(shè)備請(qǐng)求一個(gè)適當(dāng)?shù)膭?dòng)作,比如慢同步.當(dāng)同步會(huì)話成功并結(jié)束后,同步錨將被保存.

            (4)Confict resolution(沖突解決方式)

            當(dāng)同一個(gè)數(shù)據(jù)項(xiàng)在客戶端和服務(wù)器端同時(shí)被修改后,數(shù)據(jù)的版本沖突就產(chǎn)生了,對(duì)同一數(shù)據(jù)項(xiàng)將產(chǎn)生兩個(gè)不同版本的數(shù)據(jù).同步協(xié)議必須有一種策略解決這樣的沖突.在SyncML中,沖突策略是同步引擎的一個(gè)基本功能,通常是由同步引擎的同步服務(wù)器來(lái)解決版本沖突問(wèn)題,也有可能有寫(xiě)客戶端設(shè)備提供解決這一問(wèn)題的解決方式.

            在同步描述協(xié)議提供了通過(guò)通知同步客戶端沖突決定和狀態(tài)碼的通用解決方案.如果同步引擎的服務(wù)端確定一個(gè)沖突,服務(wù)端將使用狀態(tài)碼和通知功能通知同步客戶端并定義解決方案.下面是一些常用的狀態(tài)碼和沖突解決策略:

               <1>207:數(shù)據(jù)合并

               <2>208:客戶端優(yōu)先

               <3>209:數(shù)據(jù)復(fù)制

            5.Security(安全性)

            SyncML為了安全的數(shù)據(jù)同步提供了框架.SyncML本身并沒(méi)有提供新的安全機(jī)制,但是它提供了安全驗(yàn)證框架和在不同的網(wǎng)絡(luò)層進(jìn)行安全驗(yàn)證的機(jī)制.

            SyncML協(xié)議在三個(gè)不同的層次定義了用戶驗(yàn)證機(jī)制,這個(gè)三個(gè)層分別是:服務(wù)器層,數(shù)據(jù)庫(kù)層和對(duì)象層.SycnML只要求它的安全驗(yàn)證機(jī)制在服務(wù)器端被支持就可以了.為了使用SycnML協(xié)議,同步的客戶端和服務(wù)器端必須支持基本的MD5驗(yàn)證.在數(shù)據(jù)庫(kù)層面和對(duì)象層面的安全驗(yàn)證是可以選擇的.

            6.Device capabilities(設(shè)備性能)

             SyncML協(xié)議通過(guò)一個(gè)初始化設(shè)置可以使不同性能的客戶端設(shè)備和服務(wù)器端進(jìn)行信息的交換.任意一個(gè)設(shè)備(客戶端或服務(wù)端)都能請(qǐng)求信息交換,只要客戶端設(shè)備性能和服務(wù)端能協(xié)同工作,他們就能讓一個(gè)同步會(huì)話繼續(xù)下去.

           有兩種類型的信息在設(shè)備和服務(wù)器端進(jìn)行交換:

              (1)設(shè)備信息:包括設(shè)備類型,數(shù)據(jù)模塊和制造廠商信息.

              (2)服務(wù)器信息:描述了客戶端或服務(wù)器端支持的數(shù)據(jù)對(duì)象的特性.如果客戶端支持vCard version 2.1數(shù)據(jù)格式和慢同步及雙向同步,那么服務(wù)器就必須具有這樣的能力,否則,同步就不能繼續(xù)下去.

           同步的客戶端必須在第一次同步或者在設(shè)備的靜態(tài)的信息更新后的時(shí)候發(fā)送設(shè)備信息到服務(wù)端。同時(shí),當(dāng)服務(wù)器端請(qǐng)求客戶端設(shè)備信息的時(shí)候,客戶端應(yīng)將自身的設(shè)備信息發(fā)送到服務(wù)端。而一個(gè)同步服務(wù)器應(yīng)具備接受和處理設(shè)備信息的能力,不論它是否接受過(guò)客戶端的設(shè)備信息或是通過(guò)自己請(qǐng)求過(guò)客戶端設(shè)備信息。


          今天先寫(xiě)道這里,具體的協(xié)議使用流程明天給出(備注:這是本人首次翻譯相關(guān)技術(shù)文檔,請(qǐng)各路高手指教)

          posted on 2005-09-08 22:35 雪地孤鴻 閱讀(1333) 評(píng)論(2)  編輯  收藏 所屬分類: SyncML

          FeedBack:
          # re: SyncML Intensive
          2005-10-13 15:55 | Johnson
          怎么沒(méi)有繼續(xù)?  回復(fù)  更多評(píng)論
            
          # re: SyncML Intensive
          2005-10-14 11:41 | 雪地孤鴻
          不好意思,最近在看SYNC4J的源碼和忙于公司的關(guān)于UDDI的事情去了,最近一定將相關(guān)的技術(shù)文檔盡力翻譯上來(lái).  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2005年10月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          常用鏈接

          留言簿(17)

          隨筆分類

          隨筆檔案

          文章檔案

          blog

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 汉阴县| 垫江县| 大同市| 临安市| 泊头市| 乌兰浩特市| 那曲县| 如东县| 沐川县| 顺昌县| 云林县| 句容市| 元谋县| 疏附县| 南丹县| 天峻县| 威信县| 黄陵县| 金堂县| 兴山县| 封开县| 罗江县| 石门县| 抚松县| 大兴区| 阿勒泰市| 弋阳县| 隆林| 婺源县| 大化| 兴城市| 永川市| 弋阳县| 华池县| 九江县| 榕江县| 咸阳市| 昌江| 米泉市| 土默特右旗| 富蕴县|