專利名稱:一種同步標(biāo)記語(yǔ)言中的數(shù)據(jù)同步方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)同步領(lǐng)域,特別涉及一種同步標(biāo)記語(yǔ)言中的數(shù)據(jù)同步方法 及系統(tǒng)。
背景技術(shù):
隨著移動(dòng)通信的普及和發(fā)展,人們之間的通訊聯(lián)系越來越廣泛深入,移動(dòng) 通信已經(jīng)成為最為重要的溝通和交流手段之一 ,移動(dòng)終端在移動(dòng)用戶的生活中 扮演著越來越重要的角色。由于移動(dòng)用戶的終端中所存儲(chǔ)的大量親人、朋友和 客戶等的聯(lián)系方式等信息,因此對(duì)于用戶尤其是商務(wù)用戶,有著無法衡量的重 要性, 一旦因意外事件丟失后,不但重新恢復(fù)比較困難,更有可能導(dǎo)致日常工作和商務(wù)活動(dòng)的極大不便,甚至導(dǎo)致工作延誤、生意失敗等嚴(yán)重后果。而PIM (Personal Information Management,個(gè)人信息管理)業(yè)務(wù)的出現(xiàn),則可以解決上 述難題,可以為用戶提供了安全便捷的備份、恢復(fù)手段,為用戶的地址資料提 供了統(tǒng)一的管理、便捷的查詢。PIM業(yè)務(wù)允許客戶將移動(dòng)終端中的信息(如 通信錄、日程安排等)以無線或有線方式與電腦或移動(dòng)網(wǎng)絡(luò)服務(wù)器保持一致, 并能用多種終端、多種接入手段查詢和管理信息。個(gè)人信息管理的內(nèi)容除了通 訊錄之外,還可以包括日程安排、記事簿、短消息等各種信息。用戶可以通過 無線方式將自己移動(dòng)終端中的數(shù)據(jù)備份到PIM服務(wù)器上,或從PIM服務(wù)器獲 取PIM信息同步到移動(dòng)終端,最終達(dá)到移動(dòng)終端、PIM服務(wù)器及PC (Personal Computer,個(gè)人電腦)機(jī)的個(gè)人信息同步的目的。因?yàn)镻IM的信息是存貯于網(wǎng) 絡(luò),所以當(dāng)在更換手機(jī)、或手機(jī)丟失的時(shí)候,資料也不會(huì)丟失。markup language- Data Synchronization, 開方欠移動(dòng)耳關(guān)盟-同步才示i己"i吾言-!t才居同
步)協(xié)議的數(shù)據(jù)同步進(jìn)行說明。PIM業(yè)務(wù)的核心是數(shù)據(jù)同步,圖1是基于SyncML-DS的同步示意圖,如 圖所示,圖中的SyncML客戶端(SyncML Client )是以移動(dòng)終端為例進(jìn)行說明, 但并不限于移動(dòng)終端,還可以包含PC軟終端等,同步客戶端把客戶端上做的 凄t據(jù)4務(wù)改信息(client modifications)通過SyncML消息(SyncML message )發(fā) 送到同步服務(wù)器(SyncML Server )。服務(wù)器對(duì)SyncML消息中的數(shù)據(jù)進(jìn)行同步 處理(處理可以包括增加、替換、刪除等操作)。之后,服務(wù)器把服務(wù)器端 上的凄t據(jù)^修改4言息(server modifications )也發(fā)送到客戶端。下面以地址本凄t據(jù)的同步為例進(jìn)行說明,現(xiàn)有"f支術(shù)中同步過程中傳輸?shù)牡?址本數(shù)據(jù),使用vCard (電子名片)格式。在數(shù)據(jù)同步的過程中,例如在慢同 步的過程中,服務(wù)器需要判斷終端上發(fā)的vCard記錄是否和服務(wù)器上的某條 vCard記錄"相同",如果相同的話,則服務(wù)器只建立兩條記錄的映射關(guān)系,否 則需要在服務(wù)器上增加一條記錄。最后對(duì)于服務(wù)器上沒有映射到終端上的數(shù) 據(jù),服務(wù)器通過"Add"(增加)命令下發(fā)到終端上。圖2為基于SyncML-DS的同步系統(tǒng)原理框示意圖,如圖所示是現(xiàn)有技術(shù) 的典型同步服務(wù)器,含有通訊承載模塊、同步狀態(tài)機(jī)、SyncML編解碼器、內(nèi) 容編解碼器、持久存儲(chǔ)模塊等五個(gè)模塊。各模塊主要功能如下通訊承載模塊負(fù)責(zé)接入同步客戶端,實(shí)現(xiàn)TCP/IP ( Transmission Control Protocol / Internet Protocol,傳輸控制協(xié)議/網(wǎng)絡(luò)互連協(xié)議)、WSP ( Wireless Session Protocol,無 線會(huì)話協(xié)議)、HTTP (Hyper Text Transport Protocol,超級(jí)文本傳送協(xié)議)等底 層通訊協(xié)議,用來承載客戶端和服務(wù)器之間交互的SyncML報(bào)文。同步狀態(tài)機(jī)客戶端和服務(wù)器之間的一次同步過程涉及同步初始化、同步數(shù)據(jù)交互、同 步尾處理三個(gè)階段下的多個(gè)SyncML報(bào)文的處理,同步狀態(tài)機(jī)用于控制整個(gè)同 步會(huì)話過程、以及同步邏輯處理。它是同步服務(wù)器的核心調(diào)度模塊。
SyncML編解碼一莫塊負(fù)責(zé)把XML (extensible Markup Language,可擴(kuò)展標(biāo)記語(yǔ)言)格式的 SyncML報(bào)文解析成系統(tǒng)內(nèi)部對(duì)象4各式;以及4巴以內(nèi)部對(duì)象才各式表示的凈艮文組 成SyncML才艮文。內(nèi)容編解碼模塊負(fù)責(zé)把SyncML報(bào)文中包含的文本格式的vCard、 vCalendar (電子日程) 等內(nèi)容數(shù)據(jù)解析成內(nèi)部對(duì)象格式;以及把以內(nèi)部對(duì)象格式表示的數(shù)據(jù)內(nèi)容組成 vCard、 vCalendar等格式文本。持久存儲(chǔ)模塊負(fù)責(zé)把用戶上傳到服務(wù)器的vCard、 vCalendar等內(nèi)容存儲(chǔ)到文件系統(tǒng)、或 數(shù)據(jù)庫(kù)等持久存儲(chǔ)設(shè)備上。圖3為基于SyncML-DS的同步實(shí)施流程示意圖,如圖所示,同步數(shù)據(jù)包 括如下步驟步驟301、同步客戶端發(fā)送同步請(qǐng)求到同步服務(wù)器;步驟302、服務(wù)器的通訊承載模塊把SyncML請(qǐng)求報(bào)文發(fā)送給同步狀態(tài)機(jī); 步驟303 、同步狀態(tài)機(jī)發(fā)送SyncML報(bào)文解析請(qǐng)求到SyncML編解碼模塊 模塊;步驟304、 SyncML編解碼模塊把XML格式的SynML報(bào)文解析成同步服務(wù)器內(nèi)部使用的內(nèi)部對(duì)象格式返回給同步狀態(tài)機(jī);步驟305、同步狀態(tài)機(jī)把解析成內(nèi)部對(duì)象格式的SyncML報(bào)文中攜帶的內(nèi)容文本發(fā)送到內(nèi)容編解碼模塊請(qǐng)求解析;步驟306、編解碼模塊把文本格式的內(nèi)容解析成同步服務(wù)器內(nèi)部使用的內(nèi)部對(duì)象格式返回給同步狀態(tài)機(jī);步驟307、同步狀態(tài)機(jī)向持久存儲(chǔ)模塊請(qǐng)求查詢用戶已存在服務(wù)器的內(nèi)容; 步驟308、持久存儲(chǔ)模塊返回用戶已存在服務(wù)器的內(nèi)容給同步狀態(tài)機(jī); 步驟309、同步狀態(tài)機(jī)向內(nèi)容編解碼模塊請(qǐng)求比對(duì)終端上發(fā)的內(nèi)容和服務(wù)
器已有的內(nèi)容是否重復(fù);步驟310、內(nèi)容編解碼模塊返回同步狀態(tài)機(jī)內(nèi)容比對(duì)結(jié)果;步驟311、同步狀態(tài)機(jī)根據(jù)終端上發(fā)的同步命令以及數(shù)據(jù)比對(duì)的結(jié)果,向持久存儲(chǔ)模塊請(qǐng)求對(duì)用戶內(nèi)容做增加、刪除、更改的更新4喿作。 步驟312、持久存儲(chǔ)^^莫塊向同步狀態(tài)機(jī)返回更新結(jié)果; 步驟313、同步狀態(tài)機(jī)根據(jù)更新結(jié)果,構(gòu)造需要返回給客戶端的信息,并請(qǐng)求內(nèi)容編解碼模塊把需下發(fā)的內(nèi)容組裝成格式化文本; 步驟314、內(nèi)容編解碼模塊返回同步狀態(tài)機(jī)格式化文本; 步驟315、同步狀態(tài)機(jī)請(qǐng)求SyncML編解碼模塊把需要下發(fā)給用戶內(nèi)容以及同步命令處理結(jié)果構(gòu)造成SyncML報(bào)文;步驟316、 SyncML編解碼模塊返回同步狀態(tài)機(jī)構(gòu)造好的SyncML報(bào)文;步驟317、同步狀態(tài)機(jī)把SyncML響應(yīng)報(bào)文返回給通訊承載模塊;步驟318、通訊承載模塊通過底層通訊機(jī)制返回SycnML響應(yīng)報(bào)文給客戶端。但發(fā)明人在發(fā)明過程注意到現(xiàn)有技術(shù)中在基于SyncM-DS的同步過程中, 同步內(nèi)容主要有地址本(vCard)和日程(vCalendar)形式,而不同終端對(duì)應(yīng) 的vCard、 vCalendar通常存在差異,如對(duì)vCard中的"手機(jī)號(hào)碼,,標(biāo)簽,有 的手機(jī)編碼成tel; cell,有的手才幾編碼成tel; home,在這種情況下,當(dāng)用戶 更換手機(jī)后進(jìn)行數(shù)據(jù)同步時(shí),即使tel;cell與tel; home的取值相同,服務(wù) 器也會(huì)將tel;cell與tel; home作為兩個(gè)不同的標(biāo)簽,從而認(rèn)為是兩條不同的 記錄進(jìn)行存儲(chǔ),這樣就導(dǎo)致了數(shù)據(jù)的重復(fù),如果新更換的手機(jī)中的vCard中包 含的字段與原手機(jī)不同,還可能導(dǎo)致記錄丟失或記錄字段丟失等情況,因此, 在現(xiàn)有技術(shù)中由于vCard、 vCalendar協(xié)議本身的復(fù)雜性和靈活性,以及各廠家 對(duì)協(xié)議理解上的差異,導(dǎo)致同步應(yīng)用程序在互通性上存在不足。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種同步標(biāo)記語(yǔ)言中的數(shù)據(jù)同步方法及系統(tǒng),用以提高在SyncM-DS的數(shù)據(jù)同步過程中的互通性。本發(fā)明實(shí)施例提供了 一種使用同步標(biāo)記語(yǔ)言的數(shù)據(jù)同步方法,包括 接收數(shù)據(jù)同步請(qǐng)求,根據(jù)所述數(shù)據(jù)同步請(qǐng)求中攜帶的終端的型號(hào)信息確定終端配置能力信息;根據(jù)所述終端配置能力信息確定終端支持的解編碼方式; 根據(jù)所述解編碼方式對(duì)同步標(biāo)記語(yǔ)言報(bào)文及所述同步標(biāo)記語(yǔ)言報(bào)文的數(shù)據(jù)內(nèi)容進(jìn)行編解碼;通過所述解編碼后的同步標(biāo)記語(yǔ)言報(bào)文進(jìn)行數(shù)據(jù)同步。 本發(fā)明實(shí)施例還才是供了一種使用同步標(biāo)記語(yǔ)言的數(shù)據(jù)同步系統(tǒng),包括接收模塊、終端配置確定模塊、編解碼方式確定模塊、編解碼模塊、數(shù)據(jù)同步模塊,其中接收模塊,用于接收數(shù)據(jù)同步請(qǐng)求;終端配置確定模塊,用于根據(jù)所述數(shù)據(jù)同步請(qǐng)求中攜帶的終端的型號(hào)信息 確定終端配置能力信息;編解碼方式確定模塊,用于根據(jù)所述終端配置能力信息確定終端支持的解 編碼方式;編解碼模塊,用于根據(jù)所述解編碼方式對(duì)同步標(biāo)記語(yǔ)言報(bào)文及所述同步標(biāo) 記語(yǔ)言報(bào)文的數(shù)據(jù)內(nèi)容進(jìn)行編解碼;數(shù)據(jù)同步模塊,用于通過所述解編碼后的同步標(biāo)記語(yǔ)言報(bào)文進(jìn)行數(shù)據(jù)同步。本發(fā)明實(shí)施例有益效果如下本發(fā)明實(shí)施例中根據(jù)數(shù)據(jù)同步請(qǐng)求中攜帶的終端的型號(hào)信息確定終端配根據(jù)終端配置能力信息確定終端支持的解編碼方式;然后根據(jù)解編碼方式對(duì)同 步標(biāo)記語(yǔ)言報(bào)文及所述同步標(biāo)記語(yǔ)言報(bào)文的數(shù)據(jù)內(nèi)容進(jìn)行編解碼;最后通過解 編碼后的同步標(biāo)記語(yǔ)言報(bào)文進(jìn)行數(shù)據(jù)同步。由于終端配置能力來源于數(shù)據(jù)同步 請(qǐng)求時(shí)攜帶的型號(hào)信息,因此該信息能夠準(zhǔn)確地反映出終端的真實(shí)能力,服務(wù)器在據(jù)此對(duì)SyncML報(bào)文進(jìn)行編解碼過程中,就能夠保證按終端的配置進(jìn)行編 解碼,從而解決了在服務(wù)器與終端之間存在的因協(xié)議、以及廠商對(duì)協(xié)議規(guī)定不 一致所帶來的互通性問題,提高了數(shù)據(jù)同步的質(zhì)量。
圖1為背景技術(shù)中基于SyncML-DS的同步示意圖;圖2為背景技術(shù)中基于SyncML-DS的同步系統(tǒng)原理框示意圖;圖3為背景技術(shù)中基于SyncML-DS的同步實(shí)施流程示意圖;圖4為本發(fā)明實(shí)施例中使用同步標(biāo)記語(yǔ)言的數(shù)據(jù)同步方法實(shí)施流程示意圖;圖5為本發(fā)明實(shí)施例中使用同步標(biāo)記語(yǔ)言的數(shù)據(jù)同步系統(tǒng)結(jié)構(gòu)示意圖; 圖6為本發(fā)明實(shí)施例中使用同步標(biāo)記語(yǔ)言的數(shù)據(jù)同步系統(tǒng)的另 一結(jié)構(gòu)示意圖;圖7為本發(fā)明實(shí)施例中使用同步標(biāo)記語(yǔ)言的數(shù)據(jù)同步實(shí)施流程示意圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
進(jìn)行說明。圖4為使用同步標(biāo)記語(yǔ)言的數(shù)據(jù)同步方法實(shí)施流程示意圖,如圖所示,在 數(shù)據(jù)同步時(shí)可以包括如下步驟步驟401、接收數(shù)據(jù)同步請(qǐng)求,根據(jù)所述數(shù)據(jù)同步請(qǐng)求中攜帶的終端的型 號(hào)信息確定終端配置能力信息;本步驟中,可以才艮據(jù)終端在數(shù)據(jù)同步時(shí)攜帶的型號(hào)信息查詢預(yù)先存儲(chǔ)的該 型號(hào)信息對(duì)應(yīng)的終端配置能力信息以確定該終端的配置能力。步驟402、根據(jù)終端配置能力信息確定終端支持的解編碼方式;
步驟403、 根據(jù)所述解編碼方式對(duì)同步標(biāo)記語(yǔ)言凈艮文及所述同步標(biāo)記語(yǔ)言報(bào)文的數(shù)據(jù)內(nèi)容進(jìn)行編解碼;步驟404、通過所述解編碼后的同步標(biāo)記語(yǔ)言報(bào)文進(jìn)行數(shù)據(jù)同步。 實(shí)施中,終端配置能力可以包括SyncML能力信息、內(nèi)容能力信息,同步 標(biāo)記語(yǔ)言報(bào)文根據(jù)終端配置能力的同步標(biāo)記語(yǔ)言能力信息,及同步標(biāo)記語(yǔ)言報(bào) 文的數(shù)據(jù)內(nèi)容根據(jù)終端配置能力信息的內(nèi)容能力信息進(jìn)行編解碼。SyncML能力信息可以包括包最大消息長(zhǎng)度、和/或支持的狀態(tài)碼列表,其中包最大消息長(zhǎng)度服務(wù)器下發(fā)SyncML報(bào)文不能超過此長(zhǎng)度,超過則需要分多次下發(fā); 支持的狀態(tài)碼列表終端不支持的狀態(tài)碼,服務(wù)器不下發(fā),需要轉(zhuǎn)換成其它狀態(tài)碼下發(fā)。 內(nèi)容能力信息包括電子名片定義規(guī)范(vCard)和電子日程定義規(guī)范 (vCalendar)的屬性(Property)和參數(shù)(Parameter)標(biāo)簽組合在終端和服務(wù) 器的映射關(guān)系、服務(wù)器支持但終端不支持的標(biāo)簽組合、終端標(biāo)簽取值格式的正 則表達(dá)式定義、構(gòu)成內(nèi)容聯(lián)合主鍵的標(biāo)簽組合其中之一或者其組合,其中vCard和vCalendar的Property和Parameter標(biāo)簽組合是在客戶端和服務(wù) 器的映射關(guān)系,如終端tel;cell;cell;work組合映射到服務(wù)器上的tel;cell組合; 終端上行數(shù)據(jù)按此配置轉(zhuǎn)換成服務(wù)器標(biāo)簽,服務(wù)器下行數(shù)據(jù)按此配置轉(zhuǎn)換成終 端標(biāo)簽。服務(wù)器支持但終端不支持的標(biāo)簽組合服務(wù)器根據(jù)這個(gè)組合在下行數(shù)據(jù)去 掉這些標(biāo)簽組合。終端標(biāo)簽取值才各式的正則表達(dá)式定義終端上行數(shù)據(jù)取值按此定義進(jìn)行解 析,服務(wù)器下行數(shù)據(jù)按此定義進(jìn)行構(gòu)造。構(gòu)成內(nèi)容聯(lián)合主鍵的標(biāo)簽組合終端上行數(shù)據(jù),按此主鍵來比對(duì)和服務(wù)器 中的數(shù)據(jù)是否重復(fù)。
進(jìn)一步還可以包括根據(jù)數(shù)據(jù)同步請(qǐng)求中攜帶的型號(hào)信息確定是否需要進(jìn)行插件處理;確定需 要進(jìn)行插件處理后,根據(jù)終端配置能力信息及進(jìn)行插件處理后的插件對(duì)同步標(biāo) 記語(yǔ)言報(bào)文及同步標(biāo)記語(yǔ)言報(bào)文的數(shù)據(jù)內(nèi)容進(jìn)行解編碼后的同步標(biāo)記語(yǔ)言報(bào) 文進(jìn)行數(shù)據(jù)同步。進(jìn)行插件處理是采用動(dòng)態(tài)庫(kù)方式加載和/或卸載包括jar包、dll文件、.so 文件三者之一或者其組合的插件。本步驟可以通過利用插件適配標(biāo)志和插件標(biāo)識(shí)來實(shí)施,主要用于解決當(dāng)配 置了 SyncML能力信息、內(nèi)容能力信息兩類信息后,仍有兼容性問題存在導(dǎo)致 不能正確編解碼的終端,插件適配標(biāo)志和插件標(biāo)識(shí)用于表明終端是否需要插件 適配,以及對(duì)應(yīng)插件標(biāo)識(shí),如當(dāng)配置了電子名片定義規(guī)范和電子日程定義規(guī)范 的屬性和參數(shù)標(biāo)簽組合在終端和服務(wù)器的映射關(guān)系后,由于終端采用的映射關(guān) 系并非所配置的映射關(guān)系,此時(shí)就需下載終端采用的映射關(guān)系插件。插件可以 采用動(dòng)態(tài)庫(kù)方式加載和卸載,如jar包、dll文件、.so文件等。圖5為使用同步標(biāo)記語(yǔ)言的數(shù)據(jù)同步系統(tǒng)結(jié)構(gòu)示意圖,如圖所示,同步系 統(tǒng)中包括接收模塊、終端配置確定模塊、編解碼方式確定模塊、編解碼模塊、 數(shù)據(jù)同步模塊,其中接收模塊,用于接收數(shù)據(jù)同步請(qǐng)求;終端配置確定模塊,用于根據(jù)所述數(shù)據(jù)同步請(qǐng)求中攜帶的終端的型號(hào)信息 確定終端配置能力信息;編解碼方式確定才莫塊,用于才艮據(jù)所述終端配置能力信息確定終端支持的解 編碼方式;編解碼才莫塊,用于#4居所述解編碼方式對(duì)同步標(biāo)記語(yǔ)言^^文及所述同步標(biāo) 記語(yǔ)言報(bào)文的數(shù)據(jù)內(nèi)容進(jìn)行編解碼;數(shù)據(jù)同步模塊,用于通過所述解編碼后的同步標(biāo)記語(yǔ)言報(bào)文進(jìn)行數(shù)據(jù)同步。
同步系統(tǒng)中還可以進(jìn)一 步包括設(shè)備能力庫(kù),用于提供包括同步標(biāo)記語(yǔ)言能 力信息、內(nèi)容能力信息的所述終端配置能力信息;設(shè)備能力庫(kù)包括第一信息庫(kù)、第二信息庫(kù),其中第一信息庫(kù),用于提供包括包最大消息長(zhǎng)度、和/或支持的狀態(tài)碼列表的所 述同步標(biāo)記語(yǔ)言能力信息;第二信息庫(kù),用于提供包括電子名片定義規(guī)范vCard和電子日程定義規(guī) 范vCalendar的Property和Parameter標(biāo)簽組合在終端和服務(wù)器的映射關(guān)系、服 務(wù)器支持但終端不支持的標(biāo)簽組合、終端標(biāo)簽取值格式的正則表達(dá)式定義、構(gòu) 成內(nèi)^if關(guān)合主鍵的標(biāo)簽組合其中之一或者其組合的所述內(nèi)容能力信息。編解碼模塊進(jìn)一步用于對(duì)所述同步標(biāo)記語(yǔ)言報(bào)文根據(jù)所述終端支持的解編碼方式中終端配置能力的同步標(biāo)記語(yǔ)言能力信息進(jìn)行編解碼,對(duì)所述同步標(biāo) 記語(yǔ)言報(bào)文的數(shù)據(jù)內(nèi)容根據(jù)所述終端支持的解編碼方式中終端配置能力信息 的內(nèi)容能力信息進(jìn)行編解碼。編解碼模塊實(shí)施中可以利用SyncML編解碼模塊、內(nèi)容編解碼模塊來進(jìn)行 實(shí)施,數(shù)據(jù)同步模塊可以利用通訊承載模塊、同步狀態(tài)機(jī)來進(jìn)行實(shí)施。同步系統(tǒng)中還可以進(jìn)一步的包括設(shè)備插件庫(kù),用于存儲(chǔ)解編碼所需處理接 口插件;編解碼模塊進(jìn)一步用于根據(jù)所述終端支持的解編碼方式中終端配置能力 信息從所述設(shè)備插件庫(kù)調(diào)用處理接口插件進(jìn)行編解碼。同步系統(tǒng)進(jìn)一步可以包括插件識(shí)別模塊、插件處理模塊,其中 插件識(shí)別模塊,用于根據(jù)終端攜帶的型號(hào)信息確定是否需要進(jìn)行插件處理;插件處理模塊,用于采用動(dòng)態(tài)庫(kù)方式在所述設(shè)備插件庫(kù)加載或卸載包括jar 包、dll文件、.so文件三者之一或者其組合的處理接口的插件;所述編解碼模塊進(jìn)一步用于在確定需要進(jìn)行插件處理后,服務(wù)器根據(jù)所述 終端支持的解編碼方式中終端配置能力信息及所述進(jìn)行插件處理后的插件對(duì)
所述同步標(biāo)記語(yǔ)言報(bào)文及所述同步標(biāo)記語(yǔ)言報(bào)文的數(shù)據(jù)內(nèi)容進(jìn)行解編碼。 實(shí)施中,插件,按如下處理接口中的一個(gè)或者其組合來實(shí)施syncmlUpPreProcess -4冬端上4亍SyncML解析預(yù)處理4妄口 ; syncmlUpPostProcess —終端上行SyncML 4艮文解斗斤后處理接口 ; syncmlDownPreProcess --月良務(wù)器下4亍SyncML構(gòu)造預(yù)處理才妄口 ; syncmlDownPostProcess —服務(wù)器下行SyncML構(gòu)造后處理接口 ; vcardUpPreProcess —終端上行vCard解析預(yù)處理接口 ; vcardUpPostProcess —纟冬端上4亍vCard解卄斤后處理4妄口 ; vcardDownPreProcess —月良務(wù)器下4亍vCard構(gòu)造預(yù)處理才妻口 ; vcardDownPostProcess —服務(wù)器下行vCard構(gòu)造后處理接口 ; vcardCompare --vCard比對(duì)接口 ;vcalendarUpPreProcess —終端上行vCalendar解析預(yù)處理接口 ; vcalendarUpPostProcess —終端上行vCalendar解一斤后處理接口 ; vcalendarDownPreProcess --服務(wù)器下行vCalendar構(gòu)造予貞處理接口 ; vcalendarDownPostProcess --服務(wù)器下行vCalendar構(gòu)造后處理接口 ; vcalendarCompare —vCalendar比對(duì)接口 。 下面以具體實(shí)例來說明本發(fā)明的具體實(shí)施方式
。圖6為使用同步標(biāo)記語(yǔ)言的數(shù)據(jù)同步系統(tǒng)的另一結(jié)構(gòu)示意圖,如圖所示, 在系統(tǒng)中包括確定模塊、編解碼模塊、數(shù)據(jù)同步模塊、設(shè)備能力庫(kù)、設(shè)備插 件庫(kù)、持久存儲(chǔ)模塊,其中,數(shù)據(jù)同步模塊以通訊承載模塊、同步狀態(tài)機(jī)來具 體實(shí)現(xiàn)數(shù)據(jù)同步模塊、以SyncML編解碼模塊、內(nèi)容編解碼模塊來實(shí)現(xiàn)編解碼 模塊,確定模塊用于實(shí)現(xiàn)終端配置確定模塊與編解碼方式確定模塊,即可以根 據(jù)數(shù)據(jù)同步請(qǐng)求中攜帶的終端的型號(hào)信息確定終端配置能力信息,以及根據(jù)所 述終端配置能力信息確定終端支持的解編碼方式。圖中設(shè)備能力庫(kù)還可以提供管理界面,系統(tǒng)才喿作員可以新增、修改、刪除 某類型客戶端的同步能力信息;以及提供給SyncML編解碼模塊、內(nèi)容編解碼
模塊同步能力查詢"^口。設(shè)備插件庫(kù)模塊也可以提供管理界面,系統(tǒng)操作員可以加載、卸載客戶端適配插件;還提供給SyncML編解碼模塊、內(nèi)容編解碼模塊插件調(diào)用接口 。 則在該系統(tǒng)下,可以按如下流程進(jìn)行實(shí)施圖7為使用同步標(biāo)記語(yǔ)言的數(shù)據(jù)同步實(shí)施流程示意圖,如圖所示,在得到 終端同步時(shí)攜帶的型號(hào)信息后,設(shè)備能力庫(kù)針對(duì)每種終端配置能力信息,服務(wù) 器據(jù)此可以找到終端的能力配置,可以包括如下步驟步驟701、同步客戶端發(fā)送同步請(qǐng)求到同步服務(wù)器;步驟702、服務(wù)器的通訊模塊把SyncML請(qǐng)求報(bào)文發(fā)送給同步狀態(tài)機(jī);步驟703、同步狀態(tài)機(jī)發(fā)送SyncML報(bào)文解析請(qǐng)求到SyncML編解碼模塊;步驟704、 SyncML編解碼模塊內(nèi)存中如果沒有此客戶端的SyncML能力 信息,則向設(shè)備能力庫(kù)查詢客戶端SyncML能力信息;步驟705、設(shè)備能力庫(kù)返回SyncML編解碼才莫塊客戶端的SyncML能力信 息,SyncML能力信息可以包括包最大消息長(zhǎng)度、和/或支持的狀態(tài)碼列表、含 是否插件適配信息等;服務(wù)器下發(fā)SyncML報(bào)文不能超過包最大消息長(zhǎng)度,超 過則需要分多次下發(fā);在支持的狀態(tài)碼列表中如果是終端不支持的狀態(tài)碼,服 務(wù)器不下發(fā),可以按需要轉(zhuǎn)換成其它狀態(tài)碼下發(fā);步驟706-步驟709、如果客戶端無需插件支持,則SycnML編解碼模塊根 據(jù)終端SyncML能力配置進(jìn)行SyncML解析;如果客戶端需要插件適配,則SycnML編解碼模塊在解析前調(diào)用設(shè)備插件 庫(kù)的"SynML解析前處理,,接口,解析后調(diào)用插件的"SyncML解析后處理,, 接口進(jìn)^f于解編碼處理;步驟710、 SyncML編解碼模塊把XML格式的SynML報(bào)文解析成同步系 統(tǒng)內(nèi)部使用的內(nèi)部對(duì)象格式的最終結(jié)果返回給同步狀態(tài)機(jī);步驟711、同步狀態(tài)機(jī)把SyncML中攜帶的內(nèi)容文本發(fā)送到內(nèi)容編解碼模 塊請(qǐng)求解析;
步驟712、內(nèi)容編解碼模塊內(nèi)存中如果沒有此客戶端的內(nèi)容能力信息,則向設(shè)備能力庫(kù)查詢客戶端內(nèi)容能力信息;內(nèi)容能力信息可以包括電子名片定義 規(guī)范(vCard)和電子日程定義規(guī)范(vCalendar )的屬性(Property)和參數(shù) (Parameter)標(biāo)簽組合在終端和服務(wù)器的映射關(guān)系、服務(wù)器支持但終端不支持 的標(biāo)簽組合、終端標(biāo)簽取值格式的正則表達(dá)式定義、構(gòu)成內(nèi)容聯(lián)合主鍵的標(biāo)簽 組合其中之一或者其組合;步驟713、設(shè)備能力庫(kù)返回內(nèi)容編解碼模塊客戶端的內(nèi)容能力信息(含是 否插件適配信息);步驟714-步驟717、如果客戶端無需插件支持,則內(nèi)容編解碼模塊根據(jù)終 端內(nèi)容能力配置進(jìn)行內(nèi)容解析;如果客戶端需要插件適配,則內(nèi)容編解碼模塊在解析前調(diào)用設(shè)備插件庫(kù)的 "內(nèi)容解析前處理"接口,解析后調(diào)用插件的"內(nèi)容解析后處理"接口進(jìn)行解 編碼處理;步驟718、編解碼模塊把文本格式的內(nèi)容解析成同步系統(tǒng)內(nèi)部使用的內(nèi)部對(duì)象格式的最終結(jié)果返回給同步狀態(tài)機(jī);步驟719、同步狀態(tài)機(jī)向持久存儲(chǔ)模塊請(qǐng)求查詢用戶已存在服務(wù)器的內(nèi)容; 步驟720、持久存儲(chǔ)模塊返回用戶已存在服務(wù)器的內(nèi)容給同步狀態(tài)機(jī); 步驟721 、同步狀態(tài)機(jī)向內(nèi)容編解碼模塊請(qǐng)求比對(duì)終端上發(fā)的內(nèi)容和服務(wù)器已有的內(nèi)容是否重復(fù);步驟722-步驟723、如果客戶端無需插件支持,則內(nèi)容編解碼模塊根據(jù)終端內(nèi)容能力配置進(jìn)行內(nèi)容比對(duì);如果客戶端需要插件適配,則內(nèi)容編解碼模塊調(diào)用插件的"內(nèi)容比對(duì)"接步驟724、內(nèi)容編解碼模塊返回同步狀態(tài)機(jī)內(nèi)容比對(duì)結(jié)果;持久存儲(chǔ)模塊請(qǐng)求對(duì)用戶內(nèi)容做增加、刪除、更改的更新操作。
步驟726、持久存儲(chǔ)模塊向同步狀態(tài)機(jī)返回更新結(jié)果;步驟727、同步狀態(tài)機(jī)根據(jù)更新結(jié)果,構(gòu)造需要返回給客戶端的信息,并 請(qǐng)求內(nèi)容編解碼模塊把需下發(fā)的內(nèi)容組裝成格式化文本;步驟728-步驟731、如果客戶端無需插件支持,則內(nèi)容編解碼模塊根據(jù)終 端內(nèi)容能力配置構(gòu)造內(nèi)容文本;如果客戶端需要插件適配,則內(nèi)容編解碼模塊在構(gòu)造內(nèi)容文本前調(diào)用插件 的"內(nèi)容構(gòu)造前處理"接口,構(gòu)造后調(diào)用插件的"內(nèi)容構(gòu)造后處理"接口進(jìn)行 解編碼處理;步驟732、內(nèi)容編解碼模塊返回同步狀態(tài)機(jī)格式化文本;步驟733 、同步狀態(tài)機(jī)請(qǐng)求SyncML編解碼模塊把需要下發(fā)給用戶內(nèi)容以及同步命令處理結(jié)果構(gòu)造成SyncML報(bào)文;步驟734-步驟737、如果客戶端無需插件支持,則SycnML編解碼模塊根據(jù)終端SyncML能力配置來構(gòu)造SyncML;如果客戶端需要插件適配,則SycnML編解碼模塊在構(gòu)造前調(diào)用插件的 "SynML構(gòu)造前處理"接口,構(gòu)造后調(diào)用插件的"SyncML構(gòu)造后處理,,接口; 步驟738、 SyncML編解碼模塊返回同步狀態(tài)機(jī)構(gòu)造好的SyncML報(bào)文; 步驟739、同步狀態(tài)機(jī)把SyncML響應(yīng)報(bào)文返回給通訊模塊; 步驟740、通訊模塊通過底層通訊機(jī)制返回SycnML響應(yīng)報(bào)文給客戶端。 上述實(shí)施例提出了新的同步服務(wù)器架構(gòu),引入了設(shè)備能力庫(kù)和設(shè)備插件庫(kù)兩個(gè)才莫塊。設(shè)備能力庫(kù)管理各種同步終端的SyncML支持能力和vCard、 vCalendar等 內(nèi)容的支持能力信息;通過^:供能力配置(配置動(dòng)態(tài)生效),無需升級(jí)同步服 務(wù)器就可支持現(xiàn)在和未來大部份同步終端;設(shè)備插件庫(kù)則提供插件機(jī)制來適配一些特殊的終端,插件可獨(dú)立服務(wù)器單 獨(dú)開發(fā),并可動(dòng)態(tài)加載進(jìn)服務(wù)器。因此本發(fā)明實(shí)施例提出的同步服務(wù)器能很好得兼容現(xiàn)有各種同步終端,并
能很好得適應(yīng)現(xiàn)在和將來對(duì)PIM同步功能的需求,且無需對(duì)服務(wù)器頻繁升級(jí), 消除現(xiàn)有同步服務(wù)器面對(duì)多種同步客戶端時(shí)發(fā)生同步成功率低、同步后數(shù)據(jù)重 復(fù)、數(shù)據(jù)丟失、數(shù)據(jù)錯(cuò)誤等致命缺陷。消除了 PIM業(yè)務(wù)規(guī)模商用的最大障礙,使得PIM業(yè)務(wù)成為電信運(yùn)營(yíng)商可以大力發(fā)展的成熟數(shù)據(jù)業(yè)務(wù)。能夠提高同步服務(wù)器和各種同步客戶端之間的同步成功率;提高同步后服 務(wù)器和客戶端數(shù)據(jù)的完整性和正確性;避免同步后出現(xiàn)重復(fù)重復(fù)數(shù)據(jù);出現(xiàn)新的終端時(shí),也能很快支持。明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及 其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1、一種數(shù)據(jù)同步方法,其特征在于,包括接收數(shù)據(jù)同步請(qǐng)求,根據(jù)所述數(shù)據(jù)同步請(qǐng)求中攜帶的終端的型號(hào)信息確定終端配置能力信息;根據(jù)所述終端配置能力信息確定終端支持的解編碼方式;根據(jù)所述解編碼方式對(duì)同步標(biāo)記語(yǔ)言報(bào)文及所述同步標(biāo)記語(yǔ)言報(bào)文的數(shù)據(jù)內(nèi)容進(jìn)行編解碼;通過所述解編碼后的同步標(biāo)記語(yǔ)言報(bào)文進(jìn)行數(shù)據(jù)同步。
2、 如權(quán)利要求1所述的方法,其特征在于,所述終端配置能力包括同步 標(biāo)記語(yǔ)言能力信息、內(nèi)容能力信息;所述根據(jù)所述解編碼方式對(duì)同步標(biāo)記語(yǔ)言 報(bào)文及所述同步標(biāo)記語(yǔ)言報(bào)文的數(shù)據(jù)內(nèi)容進(jìn)行編解碼步驟包括根據(jù)所述終端配置能力的同步標(biāo)記語(yǔ)言能力信息對(duì)所述同步標(biāo)記語(yǔ)言報(bào) 文進(jìn)行編解碼;根據(jù)所述終端配置能力信息的內(nèi)容能力信息對(duì)所述同步標(biāo)記語(yǔ)言報(bào)文的 數(shù)據(jù)內(nèi)容進(jìn)行編解碼。
3、 如權(quán)利要求2所述的方法,其特征在于,所述同步標(biāo)記語(yǔ)言能力信息 包括包最大消息長(zhǎng)度、和/或支持的狀態(tài)碼列表;和/或,所述內(nèi)容能力信息包括電子名片定義規(guī)范和電子日程定義規(guī)范的 屬性和參數(shù)標(biāo)簽組合在終端和服務(wù)器的映射關(guān)系、服務(wù)器支持但終端不支持的 標(biāo)簽組合、終端標(biāo)簽取值格式的正則表達(dá)式定義、構(gòu)成內(nèi)容聯(lián)合主鍵的標(biāo)簽組 合其中之一或者其組合。
4、 如權(quán)利要求1所述的方法,其特征在于,所述通過所述解編碼后的同 步標(biāo)記語(yǔ)言報(bào)文進(jìn)行數(shù)據(jù)同步步驟包括根據(jù)數(shù)據(jù)同步請(qǐng)求中攜帶的型號(hào)信息確定是否需要進(jìn)行插件處理; 確定需要進(jìn)行插件處理;根據(jù)所述終端配置能力信息及所述進(jìn)行插件處理后的插件對(duì)所述同步標(biāo) 記語(yǔ)言報(bào)文及所述同步標(biāo)記語(yǔ)言報(bào)文的數(shù)據(jù)內(nèi)容進(jìn)行解編碼; 通過所述解編碼后的同步標(biāo)記語(yǔ)言報(bào)文進(jìn)行數(shù)據(jù)同步。
5、 如權(quán)利要求4所述的方法,其特征在于,所述進(jìn)行插件處理是采用動(dòng) 態(tài)庫(kù)方式加載和/或卸載包括jar包、dll文件、.so文件三者之一或者其組合的 插件。
6、 一種使用同步標(biāo)記語(yǔ)言的數(shù)據(jù)同步系統(tǒng),其特征在于,包括接收模塊、 終端配置確定模塊、編解碼方式確定模塊、編解碼模塊、數(shù)據(jù)同步模塊,其中接收模塊,用于接收數(shù)據(jù)同步請(qǐng)求;終端配置確定模塊,用于根據(jù)所述數(shù)據(jù)同步請(qǐng)求中攜帶的終端的型號(hào)信息 確定終端配置能力信息;編解碼方式確定模塊,用于根據(jù)所述終端配置能力信息確定終端支持的解 編碼方式;編解碼模塊,用于根據(jù)所述解編碼方式對(duì)同步標(biāo)記語(yǔ)言報(bào)文及所述同步標(biāo) 記語(yǔ)言報(bào)文的數(shù)據(jù)內(nèi)容進(jìn)行編解碼;數(shù)據(jù)同步模塊,用于通過所述解編碼后的同步標(biāo)記語(yǔ)言報(bào)文進(jìn)行數(shù)據(jù)同步。
7、 如權(quán)利要求6所述的同步系統(tǒng),其特征在于,進(jìn)一步包括設(shè)備能力庫(kù),用于提供包括同步標(biāo)記語(yǔ)言能力信息、內(nèi)容能力信息的所述終端配置能力信 自 編解碼模塊進(jìn)一步用于對(duì)所述同步標(biāo)記語(yǔ)言報(bào)文根據(jù)所述終端支持的解 編碼方式中終端配置能力的同步標(biāo)記語(yǔ)言能力信息進(jìn)行編解碼,對(duì)所述同步標(biāo) 記語(yǔ)言報(bào)文的數(shù)據(jù)內(nèi)容根據(jù)所述終端支持的解編碼方式中終端配置能力信息 的內(nèi)容能力信息進(jìn)行編解碼。
8、 如權(quán)利要求7所述的同步系統(tǒng),其特征在于,所述設(shè)備能力庫(kù)包括第 一信息庫(kù)、第二信息庫(kù),其中第一信息庫(kù),用于提供包括包最大消息長(zhǎng)度、和/或支持的狀態(tài)碼列表的所 述同步標(biāo)記語(yǔ)言能力信息;第二信息庫(kù),用于提供包括電子名片定義規(guī)范和電子日程定義規(guī)范的屬性和參數(shù)標(biāo)簽組合在終端和服務(wù)器的映射關(guān)系、服務(wù)器支持但終端不支持的標(biāo) 簽組合、終端標(biāo)簽取值格式的正則表達(dá)式定義、構(gòu)成內(nèi)容聯(lián)合主鍵的標(biāo)簽組合 其中之一或者其組合的所述內(nèi)容能力信息。
9、 如權(quán)利要求6至8任一所述的同步系統(tǒng),其特征在于,進(jìn)一步包括設(shè) 備插件庫(kù),用于存儲(chǔ)解編碼所需處理接口插件;編解碼模塊進(jìn)一步用于根據(jù)所述終端支持的解編碼方式中終端配置能力 信息從所述設(shè)備插件庫(kù)調(diào)用處理接口插件進(jìn)行編解碼。
10、 如權(quán)利要求9所述的同步系統(tǒng),其特征在于,進(jìn)一步包括插件識(shí)別模 塊、插件處理模塊,其中插件識(shí)別模塊,用于根據(jù)終端攜帶的型號(hào)信息確定是否需要進(jìn)行插件處理;插件處理模塊,用于采用動(dòng)態(tài)庫(kù)方式在所述設(shè)備插件庫(kù)加載或卸載包括jar 包、dll文件、.so文件三者之一或者其組合的處理接口的插件;所述編解碼模塊進(jìn)一步用于在確定需要進(jìn)行插件處理后,服務(wù)器才艮據(jù)所述 終端支持的解編碼方式中終端配置能力信息及所述進(jìn)行插件處理后的插件對(duì) 所述同步標(biāo)記語(yǔ)言報(bào)文及所述同步標(biāo)記語(yǔ)言報(bào)文的數(shù)據(jù)內(nèi)容進(jìn)行解編碼。
全文摘要
本發(fā)明公開了一種同步標(biāo)記語(yǔ)言中的數(shù)據(jù)同步方法及系統(tǒng),包括接收數(shù)據(jù)同步請(qǐng)求,根據(jù)數(shù)據(jù)同步請(qǐng)求中攜帶的終端的型號(hào)信息確定終端配置能力信息;根據(jù)終端配置能力信息確定終端支持的解編碼方式;根據(jù)解編碼方式對(duì)同步標(biāo)記語(yǔ)言報(bào)文及所述同步標(biāo)記語(yǔ)言報(bào)文的數(shù)據(jù)內(nèi)容進(jìn)行編解碼;通過解編碼后的同步標(biāo)記語(yǔ)言報(bào)文進(jìn)行數(shù)據(jù)同步。使用本發(fā)明解決了在服務(wù)器與終端之間存在的因協(xié)議、以及廠商對(duì)協(xié)議規(guī)定不一致所帶來的互通性問題,提高了數(shù)據(jù)同步的質(zhì)量。
文檔編號(hào)H04L7/04GK101399656SQ20071015252
公開日2009年4月1日 申請(qǐng)日期2007年9月27日 優(yōu)先權(quán)日2007年9月27日
發(fā)明者陸達(dá)君 申請(qǐng)人:華為技術(shù)有限公司