專利名稱:實(shí)現(xiàn)多個(gè)系統(tǒng)通訊錄數(shù)據(jù)融合的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及系統(tǒng)間數(shù)據(jù)同步技術(shù),特別是指一種實(shí)現(xiàn)多個(gè)系統(tǒng)通訊錄數(shù)據(jù)融合的方法及統(tǒng)一通訊錄平臺(tái)系統(tǒng)。
背景技術(shù):
隨著通信助理類應(yīng)用及個(gè)人手持終端的發(fā)展,個(gè)人通訊錄數(shù)據(jù)越來越多的被認(rèn)為分散到各個(gè)孤立的終端(如手機(jī)、PDA等)及應(yīng)用(如郵箱、辦公系統(tǒng)等)中,從而形成了大量各自獨(dú)立、無法互通的數(shù)據(jù)孤島。同時(shí)不同類型的、針對(duì)不同用戶群的應(yīng)用分別保存了一部分的個(gè)人通信錄,如針對(duì)企業(yè)的辦公系統(tǒng)保存了企業(yè)員工的企業(yè)通信錄(同事),而個(gè)人助理、PIM等應(yīng)用則保存了個(gè)人的個(gè)人通信錄。過于分散的數(shù)據(jù)為用戶使用各通訊錄相關(guān)應(yīng)用時(shí)造成了極大的不便,同時(shí)各個(gè)應(yīng)用及終端間無法完成數(shù)據(jù)同步,也造成了用戶無法完全掌握自己的通訊錄數(shù)據(jù)。目前,業(yè)界成熟通用的通訊錄同步技術(shù)主要有兩種=SyncML(Synchronization Markup Language)及 ActiveSync0 這兩種通訊錄同步技術(shù)分別由 Open Mobile Alliance 及微軟公司制定,其主要局限在于現(xiàn)有的這兩種技術(shù)主要應(yīng)用均是為了完成手持移動(dòng)終端與PC(個(gè)人電腦)或互聯(lián)網(wǎng)服務(wù)之間的數(shù)據(jù)同步工作,僅能實(shí)現(xiàn)一對(duì)一的數(shù)據(jù)同步,無法對(duì)多個(gè)應(yīng)用間的數(shù)據(jù)進(jìn)行同步和融合。通過SyncML和ActiveSync發(fā)起的同步過程中的雙方是客戶端和服務(wù)器的關(guān)系, 數(shù)據(jù)以某一方為準(zhǔn),而當(dāng)用于應(yīng)用系統(tǒng)間數(shù)據(jù)同步時(shí),難以保證數(shù)據(jù)安全性。SyncML和ActiveSync均要求遵循統(tǒng)一的特定通訊錄格式,超出該格式的數(shù)據(jù)將無法完成同步。但是目前現(xiàn)存大量應(yīng)用的通訊錄數(shù)據(jù)格式無法完全轉(zhuǎn)換為其規(guī)定的統(tǒng)一格式。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提出一種實(shí)現(xiàn)多個(gè)系統(tǒng)通訊錄數(shù)據(jù)融合的方法及統(tǒng)一通訊錄平臺(tái)系統(tǒng),能夠有效的融合各個(gè)應(yīng)用系統(tǒng)以及用戶終端中存儲(chǔ)的個(gè)人通訊錄數(shù)據(jù),實(shí)現(xiàn)個(gè)人通訊錄和企業(yè)通訊錄的整合。基于上述目的本發(fā)明提供的一種實(shí)現(xiàn)多個(gè)系統(tǒng)通訊錄數(shù)據(jù)融合的方法,包括設(shè)置保存有統(tǒng)一通訊錄的統(tǒng)一通訊錄平臺(tái)系統(tǒng);對(duì)通訊錄數(shù)據(jù)中的個(gè)人帳號(hào)與企業(yè)帳號(hào)分別保存在不同的帳號(hào)表中,將個(gè)人帳號(hào)與企業(yè)帳號(hào)的對(duì)應(yīng)關(guān)系保存在關(guān)系表中;在統(tǒng)一通訊錄平臺(tái)系統(tǒng)接收業(yè)務(wù)系統(tǒng)發(fā)送的通訊錄數(shù)據(jù)上報(bào)請(qǐng)求后,判斷該上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)是否與本地現(xiàn)有通訊錄數(shù)據(jù)一致,如果一致,則結(jié)束流程;如果不一致,則根據(jù)上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)更新現(xiàn)有通訊錄數(shù)據(jù),將更新后的通訊錄數(shù)據(jù)下發(fā)到其他業(yè)務(wù)系統(tǒng)。
可選的,該方法將帳號(hào)對(duì)應(yīng)的聯(lián)系人基礎(chǔ)信息存儲(chǔ)在一數(shù)據(jù)庫橫表中,將通訊錄聯(lián)系人的詳細(xì)信息保存在另一數(shù)據(jù)庫縱表中;聯(lián)系人屬性存放在聯(lián)系人屬性表中,通過制定統(tǒng)一的屬性規(guī)范,規(guī)定各個(gè)業(yè)務(wù)系統(tǒng)數(shù)據(jù)字段與統(tǒng)一通訊錄的屬性名之間的對(duì)應(yīng)關(guān)系??蛇x的,該方法如果所述通訊錄數(shù)據(jù)上報(bào)請(qǐng)求所請(qǐng)求的為新增或者刪除現(xiàn)有通訊錄數(shù)據(jù),則統(tǒng)一通訊錄平臺(tái)系統(tǒng)直接對(duì)現(xiàn)有通訊錄數(shù)據(jù)執(zhí)行相應(yīng)的操作;如果所述通訊錄數(shù)據(jù)上報(bào)請(qǐng)求所請(qǐng)求的為對(duì)現(xiàn)有通訊錄數(shù)據(jù)進(jìn)行修改,則將該上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)與現(xiàn)有通訊錄數(shù)據(jù)進(jìn)行字段合并,保存合并后的數(shù)據(jù),對(duì)無法合并的進(jìn)行沖突控制處理。可選的,該方法所述字段合并處理過程,包括如下步驟步驟601,對(duì)于通訊錄數(shù)據(jù)中的一個(gè)字段f,判斷當(dāng)前上行通訊錄數(shù)據(jù)中的該字段f與統(tǒng)一通訊錄平臺(tái)系統(tǒng)中當(dāng)前保存的通訊錄數(shù)據(jù)中對(duì)應(yīng)的字段f是否相同,即是否 CurVer. f = NewVer. f,如果是,則直接進(jìn)入步驟603 ;否則進(jìn)入步驟602 ;步驟602,判斷當(dāng)前上行的通訊錄數(shù)據(jù)中的所述字段f與統(tǒng)一通訊錄平臺(tái)系統(tǒng)中對(duì)應(yīng)的歷史版本中的字段f是否相同,即是否CurVer. f = HisVer. f,如果是,則進(jìn)入步驟 603 ;否則,進(jìn)入步驟604 ;步驟603,對(duì)統(tǒng)一通訊錄平臺(tái)系統(tǒng)中的數(shù)據(jù)不作更新,以CurVer. f為準(zhǔn),將 NewVer. f修改為CurVer. f,然后直接進(jìn)入步驟607 ;步驟604,判斷統(tǒng)一通訊錄平臺(tái)系統(tǒng)中當(dāng)前保存的通訊錄數(shù)據(jù)版本中的f字段f與歷史版本中的f字段是否相同,即是否CurVer. f = HisVer. f,如果是,則進(jìn)入步驟605 ;否貝IJ,進(jìn)入步驟606 ;步驟605,對(duì)統(tǒng)一通訊錄平臺(tái)系統(tǒng)中數(shù)據(jù)的f字段以當(dāng)前上行通訊錄數(shù)據(jù)中的f字段為準(zhǔn),進(jìn)行更新,即保留NewVer. f值不變,進(jìn)入步驟607 ;步驟606,標(biāo)記該字段f的上行存在沖突,結(jié)束字段合并流程;步驟607,判斷是否還有沒進(jìn)行合并處理的字段,如果是,則返回步驟601對(duì)下一個(gè)字段執(zhí)行以上步驟,否則,結(jié)束字段合并流程;所述的沖突控制處理過程,包括如下步驟步驟701,按照步驟601-607的方法比較NewVer、CurVer與HisVer三個(gè)記錄中每一個(gè)字段的內(nèi)容,進(jìn)行字段合并;步驟702,如果字段合并產(chǎn)生沖突,則生成沖突記錄保持同步服務(wù)器上的版本記錄不變,將NewVer轉(zhuǎn)換為新增聯(lián)系人操作,新增一個(gè)聯(lián)系人記錄,將其shared字段設(shè)置為非共享,并為其生成一個(gè)沖突通知記錄和一個(gè)下行通知記錄;步驟703,如果字段合并沒有發(fā)現(xiàn)字段內(nèi)容更改,無需更新;步驟704,如果字段合并發(fā)現(xiàn)字段內(nèi)容更改,但未產(chǎn)生沖突,則合并得到一個(gè)最終的聯(lián)系人記錄并更新為當(dāng)前記錄,該記錄的版本在原來的基礎(chǔ)上增1 ;步驟705,沖突記錄在數(shù)據(jù)下行時(shí)由同步服務(wù)器發(fā)送給同步方,同步方可根據(jù)業(yè)務(wù)需求處理沖突記錄,完成通訊錄數(shù)據(jù)同步的沖突控制。可選的,該方法所述判斷該上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)是否與現(xiàn)有通訊錄數(shù)據(jù)一致的過程包括統(tǒng)一通訊錄平臺(tái)系統(tǒng)判斷發(fā)送通訊錄數(shù)據(jù)上報(bào)請(qǐng)求的業(yè)務(wù)系統(tǒng)是否與上次請(qǐng)求更新的業(yè)務(wù)系統(tǒng)相同,如果是,則判定為一致;否則,繼續(xù)判斷該上報(bào)請(qǐng)求的通訊錄數(shù)據(jù)的版本號(hào)與當(dāng)前統(tǒng)一通訊錄平臺(tái)系統(tǒng)中通訊錄數(shù)據(jù)的版本號(hào)是否相同,如果是,則判定為一致,否則判定為不一致。可選的,該方法所述統(tǒng)一通訊錄平臺(tái)系統(tǒng)將更新后的通訊錄數(shù)據(jù)下發(fā)到其他業(yè)務(wù)系統(tǒng)的過程包括所述統(tǒng)一通訊錄平臺(tái)系統(tǒng)向其他業(yè)務(wù)系統(tǒng)發(fā)送通訊錄數(shù)據(jù)下行通知;收到該下行通知的業(yè)務(wù)服務(wù)器調(diào)用下行接口從統(tǒng)一通訊錄平臺(tái)系統(tǒng)獲取更新的通訊錄數(shù)據(jù); 業(yè)務(wù)服務(wù)器更新本地通訊錄數(shù)據(jù)和版本號(hào),調(diào)用下行反饋接口,將更新處理結(jié)果發(fā)送給所述統(tǒng)一通訊錄平臺(tái)系統(tǒng);所述統(tǒng)一通訊錄平臺(tái)系統(tǒng)向所有業(yè)務(wù)系統(tǒng)發(fā)送同步通知??蛇x的,該方法所述統(tǒng)一通訊錄平臺(tái)系統(tǒng)將更新后的通訊錄數(shù)據(jù)下發(fā)到其他業(yè)務(wù)系統(tǒng)后進(jìn)一步包括業(yè)務(wù)系統(tǒng)完成通訊錄數(shù)據(jù)更新后,通過通訊錄數(shù)據(jù)上報(bào)請(qǐng)求將更新的通訊錄數(shù)據(jù)上報(bào)到統(tǒng)一通訊錄平臺(tái)系統(tǒng)?;谏鲜瞿康模景l(fā)明提供的一種實(shí)現(xiàn)多個(gè)系統(tǒng)通訊錄數(shù)據(jù)融合的統(tǒng)一通訊錄平臺(tái)系統(tǒng),包括接口適配單元,用于提供與各業(yè)務(wù)系統(tǒng)耦合;數(shù)據(jù)存儲(chǔ)單元,用于保存通訊錄數(shù)據(jù),對(duì)通訊錄數(shù)據(jù)中的個(gè)人帳號(hào)與企業(yè)帳號(hào)分別保存在不同的帳號(hào)表中,將個(gè)人帳號(hào)與企業(yè)帳號(hào)的對(duì)應(yīng)關(guān)系保存在關(guān)系表中;應(yīng)用管理單元,用于在通過所述接口適配單元接收到業(yè)務(wù)系統(tǒng)發(fā)送的通訊錄數(shù)據(jù)上報(bào)請(qǐng)求后,判斷該上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)是否與本地現(xiàn)有通訊錄數(shù)據(jù)一致,如果一致, 則不作處理;如果不一致,則根據(jù)上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)更新現(xiàn)有通訊錄數(shù)據(jù),將更新后的通訊錄數(shù)據(jù)通過接口適配單元下發(fā)到其他業(yè)務(wù)系統(tǒng)。可選的,該系統(tǒng)所述數(shù)據(jù)存儲(chǔ)單元中,將帳號(hào)對(duì)應(yīng)的聯(lián)系人基礎(chǔ)信息存儲(chǔ)在一數(shù)據(jù)庫橫表中,將通訊錄聯(lián)系人的詳細(xì)信息保存在另一數(shù)據(jù)庫縱表中;聯(lián)系人屬性存放在聯(lián)系人屬性表中,通過制定統(tǒng)一的屬性規(guī)范,規(guī)定各個(gè)業(yè)務(wù)系統(tǒng)數(shù)據(jù)字段與統(tǒng)一通訊錄的屬性名之間的對(duì)應(yīng)關(guān)系。可選的,該系統(tǒng)如果所述通訊錄數(shù)據(jù)上報(bào)請(qǐng)求所請(qǐng)求的為新增或者刪除現(xiàn)有通訊錄數(shù)據(jù),則所述應(yīng)用管理單元直接對(duì)現(xiàn)有通訊錄數(shù)據(jù)執(zhí)行相應(yīng)的操作;如果所述通訊錄數(shù)據(jù)上報(bào)請(qǐng)求所請(qǐng)求的為對(duì)現(xiàn)有通訊錄數(shù)據(jù)進(jìn)行修改,則所述應(yīng)用管理單元將該上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)與現(xiàn)有通訊錄數(shù)據(jù)進(jìn)行字段合并,保存合并后的數(shù)據(jù),對(duì)無法合并的進(jìn)行沖突控制處理??蛇x的,該系統(tǒng)所述應(yīng)用管理單元中還包括安全控制模塊,用于通過SSL加密,保障數(shù)據(jù)通信的安全;通訊錄管理模塊,用于管理維護(hù)統(tǒng)一通信錄平臺(tái)內(nèi)的通信錄數(shù)據(jù),檢測(cè)數(shù)據(jù)的可靠性,保證數(shù)據(jù)可用性;用戶關(guān)系管理模塊,用于維護(hù)個(gè)人用戶與企業(yè)用戶之間的所屬關(guān)系,使得個(gè)人用戶可以通過接口查詢所屬企業(yè)的企業(yè)通信錄數(shù)據(jù);應(yīng)用管理模塊,用于管理接入統(tǒng)一通信錄平臺(tái)的各個(gè)業(yè)務(wù)系統(tǒng),確保各個(gè)業(yè)務(wù)系統(tǒng)只能同步和修改自己的數(shù)據(jù)??蛇x的,該系統(tǒng)所述業(yè)務(wù)系統(tǒng)包括應(yīng)用系統(tǒng)和移動(dòng)終端,所述接口適配單元與移動(dòng)終端之間通過SyncML協(xié)議實(shí)現(xiàn)通信;所述接口適配單元與應(yīng)用系統(tǒng)之間通過自適應(yīng)同步接口協(xié)議實(shí)現(xiàn)通信。可選的,在該系統(tǒng)中包括多個(gè)由所述數(shù)據(jù)存儲(chǔ)單元和應(yīng)用管理單元組成的節(jié)點(diǎn), 通訊錄數(shù)據(jù)分散存儲(chǔ)在不同的數(shù)據(jù)存儲(chǔ)單元中;所述接口適配單元中包括分發(fā)服務(wù)器和接口服務(wù)器,接口服務(wù)器接收業(yè)務(wù)系統(tǒng)發(fā)送的通訊錄數(shù)據(jù)上報(bào)請(qǐng)求后,發(fā)送給分發(fā)服務(wù)器,分發(fā)服務(wù)器通過Hash算法進(jìn)行二次路由后,發(fā)送到對(duì)應(yīng)節(jié)點(diǎn)的應(yīng)用管理單元進(jìn)行處理。從上面所述可以看出,本發(fā)明提供的實(shí)現(xiàn)多個(gè)系統(tǒng)通訊錄數(shù)據(jù)融合的方法及系統(tǒng),通過構(gòu)建統(tǒng)一通訊錄平臺(tái)系統(tǒng),為各個(gè)應(yīng)用平臺(tái)提供相應(yīng)的數(shù)據(jù)接口方式實(shí)現(xiàn)各個(gè)應(yīng)用間的數(shù)據(jù)融合和數(shù)據(jù)同步,形成一套集通信錄讀取、維護(hù)、優(yōu)化等功能的完整解決方案。 通過采用靈活和擴(kuò)展的數(shù)據(jù)模型及高效可變的接口通信協(xié)議,有效地融合各個(gè)應(yīng)用系統(tǒng)以及用戶手持終端中存儲(chǔ)的個(gè)人通訊錄數(shù)據(jù),實(shí)現(xiàn)個(gè)人通訊錄和企業(yè)通訊錄的整合,使得用戶在所有的終端和應(yīng)用系統(tǒng)中獲得統(tǒng)一的數(shù)據(jù)體驗(yàn)。具體具備如下優(yōu)點(diǎn)和效果1)可以實(shí)現(xiàn)多個(gè)應(yīng)用系統(tǒng)間通訊錄數(shù)據(jù)的同步,使得各個(gè)應(yīng)用系統(tǒng)的用戶能夠得到統(tǒng)一的數(shù)據(jù)體驗(yàn)。2)可以對(duì)用戶的個(gè)人通訊錄數(shù)據(jù)與企業(yè)通訊錄數(shù)據(jù)進(jìn)行融合,使得用戶可以在同一界面中同時(shí)訪問自己個(gè)人和企業(yè)通訊錄。3)通過采用可擴(kuò)展的數(shù)據(jù)模型,使得不同的應(yīng)用系統(tǒng)間數(shù)據(jù)可以有效整合并同
止
少ο4)通過采用可擴(kuò)展和可剪裁的同步接口協(xié)議,兼容了各個(gè)應(yīng)用系統(tǒng)數(shù)據(jù)模型的差異,保證了所有應(yīng)用系統(tǒng)提交數(shù)據(jù)的安全性,同時(shí)也大幅度減少了數(shù)據(jù)傳輸量,提高了系統(tǒng)響應(yīng)速度。5)通過分布式架構(gòu)來保證統(tǒng)一通訊錄平臺(tái)系統(tǒng)的事務(wù)處理能力。
圖1為本發(fā)明實(shí)施例帳號(hào)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)示意圖;圖2為本發(fā)明實(shí)施例聯(lián)系人數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例實(shí)現(xiàn)多個(gè)系統(tǒng)通訊錄數(shù)據(jù)融合方法的流程示意圖;圖4為本發(fā)明實(shí)施例統(tǒng)一通訊錄平臺(tái)系統(tǒng)結(jié)構(gòu)示意圖;圖5為本發(fā)明實(shí)施例統(tǒng)一通訊錄平臺(tái)系統(tǒng)部署結(jié)構(gòu)示意圖;圖6為本發(fā)明實(shí)施例字段合并處理過程的流程示意圖;圖7為本發(fā)明實(shí)施例沖突控制處理過程的流程示意圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。本發(fā)明提供的一種實(shí)現(xiàn)多個(gè)系統(tǒng)通訊錄數(shù)據(jù)融合的方法,主要包括設(shè)置保存有統(tǒng)一通訊錄的統(tǒng)一通訊錄平臺(tái)系統(tǒng);對(duì)通訊錄數(shù)據(jù)中的個(gè)人帳號(hào)與企業(yè)帳號(hào)分別保存在不同的帳號(hào)表中,將個(gè)人帳號(hào)與企業(yè)帳號(hào)的對(duì)應(yīng)關(guān)系保存在關(guān)系表中;在統(tǒng)一通訊錄平臺(tái)系統(tǒng)接收業(yè)務(wù)系統(tǒng)發(fā)送的通訊錄數(shù)據(jù)上報(bào)請(qǐng)求后,判斷該上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)是否與本地現(xiàn)有通訊錄數(shù)據(jù)一致,如果一致,則結(jié)束流程;如果不一致,則根據(jù)上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)更新現(xiàn)有通訊錄數(shù)據(jù),將更新后的通訊錄數(shù)據(jù)下發(fā)到其他業(yè)務(wù)系統(tǒng)。作為一個(gè)實(shí)施例,所述通訊錄數(shù)據(jù)可劃分為帳號(hào)數(shù)據(jù)和聯(lián)系人數(shù)據(jù),通過帳號(hào)數(shù)據(jù)可以索引到每個(gè)聯(lián)系人的聯(lián)系人數(shù)據(jù)。作為一個(gè)實(shí)施例,將帳號(hào)對(duì)應(yīng)的聯(lián)系人基礎(chǔ)信息存儲(chǔ)在一數(shù)據(jù)庫橫表中,將通訊錄聯(lián)系人的詳細(xì)信息保存在另一數(shù)據(jù)庫縱表中;聯(lián)系人屬性存放在聯(lián)系人屬性表中,通過制定統(tǒng)一的屬性規(guī)范,規(guī)定各個(gè)業(yè)務(wù)系統(tǒng)數(shù)據(jù)字段與統(tǒng)一通訊錄的屬性名之間的對(duì)應(yīng)關(guān)系。在數(shù)據(jù)同步的流程中作為一個(gè)實(shí)施例,如果所述通訊錄數(shù)據(jù)上報(bào)請(qǐng)求所請(qǐng)求的為新增或者刪除現(xiàn)有通訊錄數(shù)據(jù),則統(tǒng)一通訊錄平臺(tái)系統(tǒng)直接對(duì)現(xiàn)有通訊錄數(shù)據(jù)執(zhí)行相應(yīng)的操作;如果所述通訊錄數(shù)據(jù)上報(bào)請(qǐng)求所請(qǐng)求的為對(duì)現(xiàn)有通訊錄數(shù)據(jù)進(jìn)行修改,則將該上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)與現(xiàn)有通訊錄數(shù)據(jù)進(jìn)行字段合并,保存合并后的數(shù)據(jù),對(duì)無法合并的進(jìn)行沖突控制處理。作為一個(gè)實(shí)施例,所述判斷該上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)是否與現(xiàn)有通訊錄數(shù)據(jù)一致的過程包括統(tǒng)一通訊錄平臺(tái)系統(tǒng)判斷發(fā)送通訊錄數(shù)據(jù)上報(bào)請(qǐng)求的業(yè)務(wù)系統(tǒng)是否與上次請(qǐng)求更新的業(yè)務(wù)系統(tǒng)相同,如果是,則判定為一致;否則,繼續(xù)判斷該上報(bào)請(qǐng)求的通訊錄數(shù)據(jù)的版本號(hào)與當(dāng)前統(tǒng)一通訊錄平臺(tái)系統(tǒng)中通訊錄數(shù)據(jù)的版本號(hào)是否相同,如果是,則判定為一致,否則判定為不一致。作為一個(gè)實(shí)施例,所述統(tǒng)一通訊錄平臺(tái)系統(tǒng)將更新后的通訊錄數(shù)據(jù)下發(fā)到其他業(yè)務(wù)系統(tǒng)的過程包括所述統(tǒng)一通訊錄平臺(tái)系統(tǒng)向其他業(yè)務(wù)系統(tǒng)發(fā)送通訊錄數(shù)據(jù)下行通知; 收到該下行通知的業(yè)務(wù)服務(wù)器調(diào)用下行接口從統(tǒng)一通訊錄平臺(tái)系統(tǒng)獲取更新的通訊錄數(shù)據(jù);業(yè)務(wù)服務(wù)器更新本地通訊錄數(shù)據(jù)和版本號(hào),調(diào)用下行反饋接口,將更新處理結(jié)果發(fā)送給所述統(tǒng)一通訊錄平臺(tái)系統(tǒng);所述統(tǒng)一通訊錄平臺(tái)系統(tǒng)向所有業(yè)務(wù)系統(tǒng)發(fā)送同步通知。作為一個(gè)實(shí)施例,所述統(tǒng)一通訊錄平臺(tái)系統(tǒng)將更新后的通訊錄數(shù)據(jù)下發(fā)到其他業(yè)務(wù)系統(tǒng)后進(jìn)一步包括業(yè)務(wù)系統(tǒng)完成通訊錄數(shù)據(jù)更新后,通過通訊錄數(shù)據(jù)上報(bào)請(qǐng)求將更新的通訊錄數(shù)據(jù)上報(bào)到統(tǒng)一通訊錄平臺(tái)系統(tǒng)。其中,所述業(yè)務(wù)系統(tǒng)既可以是企業(yè)用戶等的應(yīng)用系統(tǒng),也可以是個(gè)人的移動(dòng)終端等設(shè)備,所述接口適配單元與移動(dòng)終端之間通過SyncML協(xié)議實(shí)現(xiàn)通信;所述接口適配單元與應(yīng)用系統(tǒng)之間通過自適應(yīng)同步接口協(xié)議實(shí)現(xiàn)通信。參見圖1所示,為保存有帳號(hào)數(shù)據(jù)的帳號(hào)表的示例。在該實(shí)施例中,帳號(hào)數(shù)據(jù)以橫表形式存放在數(shù)據(jù)庫中,個(gè)人帳號(hào)與企業(yè)帳號(hào)分表存放,并形成個(gè)人帳號(hào)表和企業(yè)帳號(hào)表。個(gè)人帳號(hào)表中的個(gè)人帳號(hào)與企業(yè)帳號(hào)表中的企業(yè)帳號(hào)的關(guān)系存放于另外一張數(shù)據(jù)庫表中,用于對(duì)應(yīng)個(gè)人與企業(yè)的關(guān)聯(lián)關(guān)系。通過對(duì)個(gè)人和企業(yè)帳號(hào)進(jìn)行關(guān)聯(lián),可以將不同類型應(yīng)用之間的數(shù)據(jù)進(jìn)行融合,使得個(gè)人用戶在使用任意應(yīng)用時(shí)均可以同時(shí)訪問到自己的公司通訊錄和個(gè)人通訊錄。
參見圖2所示,為保存聯(lián)系人數(shù)據(jù)的聯(lián)系人數(shù)據(jù)表的示例。在該實(shí)施例中,為了兼容已有及將來各個(gè)應(yīng)用和終端的通訊錄格式,本實(shí)施例采用了可擴(kuò)展的數(shù)據(jù)模型。通訊錄中聯(lián)系人的基礎(chǔ)信息(包括聯(lián)系人基本信息如姓名、性別、 生日等,以及系統(tǒng)信息如聯(lián)系人ID、所屬帳號(hào)、共享設(shè)置等)存儲(chǔ)在一張數(shù)據(jù)庫橫表中,聯(lián)系人詳細(xì)信息(如地址、電話等信息)存放在另外的一張數(shù)據(jù)庫縱表中。個(gè)人帳號(hào)聯(lián)系人數(shù)據(jù)與企業(yè)帳號(hào)聯(lián)系人數(shù)據(jù)分表存放。上述生成的數(shù)據(jù)庫橫表和數(shù)據(jù)庫縱表共同組成了圖 2所示的聯(lián)系人表。聯(lián)系人屬性存放在聯(lián)系人屬性表中,通過制定統(tǒng)一的屬性規(guī)范,規(guī)定各個(gè)應(yīng)用系統(tǒng)數(shù)據(jù)字段與統(tǒng)一通信錄的屬性名(Prop Name)之間的對(duì)應(yīng)關(guān)系,具有共性(在多個(gè)應(yīng)用系統(tǒng)中均存在)的屬性在各個(gè)應(yīng)用系統(tǒng)間同步,個(gè)性化數(shù)據(jù)(盡在某個(gè)應(yīng)用系統(tǒng)中存在) 則只有個(gè)別的應(yīng)用系統(tǒng)進(jìn)行同步。由于屬性表可以不斷擴(kuò)展,因此可以滿足所有應(yīng)用系統(tǒng)在聯(lián)系人數(shù)據(jù)模型方面的差異,從而解決了各個(gè)應(yīng)用系統(tǒng)間數(shù)據(jù)模型差異過大導(dǎo)致的同步困難。通過帳號(hào)表可以索引到聯(lián)系人表,通過聯(lián)系人表進(jìn)而可以索引到聯(lián)系人屬性表。 另外,為方便查找,帳號(hào)數(shù)據(jù)表也可以存儲(chǔ)一些用戶相關(guān)的資料,比如用戶的姓名、性別等個(gè)人資料。為了保證同步控制數(shù)據(jù),作為一個(gè)實(shí)施例可以采用如下方式通訊錄聯(lián)系人記錄的數(shù)據(jù)結(jié)構(gòu),用于保存當(dāng)前的聯(lián)系人記錄信息。包含表示聯(lián)系人基本信息的橫向結(jié)構(gòu),其中包括了一個(gè)記錄版本號(hào)字段,字段名定義為Version ;—個(gè)記錄最近一次更新該記錄的系統(tǒng)編號(hào),字段名定義為LastUpdateAppId ;—個(gè)表示記錄是否在多系統(tǒng)間共享的標(biāo)識(shí)字段,記為shared。該結(jié)構(gòu)還包含了表示聯(lián)系人聯(lián)系信息、擴(kuò)展信息的可伸縮的縱向結(jié)構(gòu)。通訊錄聯(lián)系人歷史記錄的數(shù)據(jù)結(jié)構(gòu),用于保存一個(gè)聯(lián)系人記錄上一個(gè)版本的信息。包含表示聯(lián)系人相關(guān)信息的若干字段;一個(gè)記錄版本號(hào)字段,字段名定義為Version。下行通知記錄的數(shù)據(jù)結(jié)構(gòu),用于保存業(yè)務(wù)系統(tǒng)需要下行的通訊錄數(shù)據(jù)記錄。數(shù)據(jù)同步接口協(xié)議由于各個(gè)應(yīng)用系統(tǒng)的數(shù)據(jù)模型均不相同,因此本發(fā)明采用了可擴(kuò)展和可剪裁的同步接口協(xié)議。接口可以采用JSON或XML等方式實(shí)現(xiàn),以下論述以JS0N+HTTP為例。提交的數(shù)據(jù)為一個(gè)JSON數(shù)據(jù)塊,其中包含了操作請(qǐng)求類型、操作數(shù)據(jù)等。如下數(shù)據(jù)塊為一個(gè)完整的新增聯(lián)系人請(qǐng)求{〃 cmd〃 〃 Member_UL〃,〃 parameter" {〃 itemlist" [{〃 birthday" ·.'’ 2009-08-17 15:36:00〃,〃 source_user_id〃 133xxxxxxx,〃 desc ““,“updatetime" “ 2009-08-17 15:36:21" , “ version" :0,“ fn"“張三〃,〃 optype" :1,〃 source_id〃 1,〃 prop" :[{〃 prop_name〃 1,〃 desc"“ 工作電話 1〃,〃 prop_content〃 ·.'’ 0203863xxxx〃 },{〃 prop_name“ :8,〃 desc" ·.'’ 移動(dòng)電話 1〃,〃 prop_content〃 ·.'’ 131xxxxxxxx〃 } {〃 prop_name“ :18,〃 desc" ·.'’ 個(gè)人愛好",〃 prop_content"“電影〃 }]}],〃 itemsize" :1,〃 appid" “ 1" }}該請(qǐng)求為appid為“1”的應(yīng)用系統(tǒng)提交,目的在于為“133XXXXXXX”這個(gè)帳號(hào)增加一個(gè)名為“張三”的聯(lián)系人,此人工作電話為“0203863ΧΧΧΧ”移動(dòng)電話為“ 131ΧΧΧΧΧΧΧΧ”個(gè)人愛好為“電影”。統(tǒng)一通信錄會(huì)在數(shù)據(jù)庫中為“133ΧΧΧΧΧΧΧ”這個(gè)帳號(hào)增加此聯(lián)系人,同時(shí)會(huì)將這個(gè)聯(lián)系人的信息通知其他應(yīng)用系統(tǒng)。如果appid為“2”的應(yīng)用系統(tǒng)沒有保存用戶的個(gè)人愛好,但是保存了用戶的家庭電話,則此請(qǐng)求變?yōu)閧〃 cmd〃 “ Member_UL〃,‘‘ parameter" {〃 itemlist" :[{ “birthday" 〃 2009-08-17 15:36:00" , “ source_user_id" :133xxxxxxx, “ desc “·.'’'’,“ updatetime" “ 2009-08-17 15:36:21" , “ version" :0,“ fn"“張三〃,〃 optype" :1,〃 source_id〃 1,〃 prop" :[{〃 prop_name〃 1,〃 desc"“ 工作電話 1〃,〃 prop_content〃 ·.'’ 0203863xxxx〃 },{〃 prop_name“ :8,〃 desc" ·.'’ 移動(dòng)電話 1〃,〃 prop_content〃 〃 131xxxxxxxx〃 } {〃 prop_name〃 5,〃 desc"〃 家庭電話〃,“prop_content 〃 ·.'’ 0208822xxxx 〃 }]}],“ itemsize" :1,“ appi d〃 〃 2〃 }}在修改聯(lián)系人數(shù)據(jù)時(shí),應(yīng)用系統(tǒng)僅提交本應(yīng)用系統(tǒng)保存的數(shù)據(jù),通過將內(nèi)容制空來刪除某屬性的數(shù)據(jù),如appid為1的應(yīng)用系統(tǒng)提交一個(gè)修改請(qǐng)求{" cmd" ·.'’ Member_U L〃,〃 parameter" {〃 itemlist" :[{〃 birthday" 〃 2009-08-17 15:36:00〃,〃 source_ user_id “ 133xxxxxxx, “ desc “ “ ", “ updatetime “ “ 2009-08-17 15:36:21",“ version “ :0,“ fn “〃 張三 〃,“optype “ :2,“ source_ id" :1,“ prop “ :[{〃 prop_name “ :1,“ desc"〃 工作電話 1〃,“ prop— content" 〃 0203554xxxx〃 },{〃 prop_name“ :18,〃 desc" 〃 個(gè)人愛好〃,〃 prop_ content" 〃 〃 }]}], “ itemsize" :1, “ appid" 〃 1〃 }}此請(qǐng)求的產(chǎn)生的結(jié)果是,統(tǒng)一通信錄會(huì)修改“張三”這個(gè)聯(lián)系人的數(shù)據(jù),將工作電話1改為“0203554XXXX”,刪除個(gè)人愛好的數(shù)據(jù),但不會(huì)修改之前appid為1的業(yè)務(wù)系統(tǒng)提交的移動(dòng)電話數(shù)據(jù),也不會(huì)修改appid為2的業(yè)務(wù)系統(tǒng)提交的家庭電話數(shù)據(jù)。通過可擴(kuò)展和可剪裁的接口協(xié)議,可以兼容各個(gè)應(yīng)用系統(tǒng)數(shù)據(jù)模型的差異,保證了所有應(yīng)用系統(tǒng)提交數(shù)據(jù)的安全性,同時(shí)也大幅度減少了數(shù)據(jù)傳輸量,提高了系統(tǒng)響應(yīng)速度。在數(shù)據(jù)同步的流程中參見圖3所示,以一個(gè)實(shí)施例詳細(xì)描述通訊錄同步處理流程。該流程可分為數(shù)據(jù)上行、數(shù)據(jù)下行以及下行反饋三個(gè)子流程,具體包含以下步驟定義當(dāng)前上行的通訊錄數(shù)據(jù)的版本為NewVer,統(tǒng)一通訊錄平臺(tái)當(dāng)前保存的版本為 CurVer,歷史版本為HisVer。作為一個(gè)實(shí)施例所述HisVer是CurVer之前的一次版本。步驟301,業(yè)務(wù)系統(tǒng)根據(jù)上行接口協(xié)議向統(tǒng)一通訊錄平臺(tái)系統(tǒng)發(fā)送通訊錄數(shù)據(jù)上報(bào)請(qǐng)求,發(fā)起請(qǐng)求的業(yè)務(wù)系統(tǒng)編號(hào)記為appid。步驟302,業(yè)務(wù)系統(tǒng)向統(tǒng)一通訊錄平臺(tái)系統(tǒng)傳送需要更新的通訊錄數(shù)據(jù)和當(dāng)前通訊錄數(shù)據(jù)的版本號(hào)。步驟303,統(tǒng)一通訊錄平臺(tái)系統(tǒng)判斷當(dāng)前請(qǐng)求上行數(shù)據(jù)的發(fā)起者是否與上次更新數(shù)據(jù)的業(yè)務(wù)系統(tǒng)相同,即是否appid = CurVer. LastUpdateAppId,如果當(dāng)前上行數(shù)據(jù)的發(fā)起者與上次更新數(shù)據(jù)的是同一業(yè)務(wù)系統(tǒng),則結(jié)束流程;否則進(jìn)入步驟304。步驟304,統(tǒng)一通訊錄平臺(tái)系統(tǒng)判斷當(dāng)前請(qǐng)求的上行數(shù)據(jù)版本號(hào)與本地當(dāng)前保存的通訊錄數(shù)據(jù)版本號(hào)是否相同,即NewVer版本號(hào)=CurVer版本號(hào),如果相同,則結(jié)束流程; 否則進(jìn)入步驟305。
步驟305,統(tǒng)一通訊錄平臺(tái)系統(tǒng)對(duì)于上行數(shù)據(jù)中的每一個(gè)聯(lián)系人記錄的新增、刪除操作直接按新增、刪除處理;對(duì)于聯(lián)系人記錄的修改操作,則統(tǒng)一通訊錄平臺(tái)系統(tǒng)比較三個(gè)版本NewVehCurVer、HisVer的各個(gè)字段,嘗試進(jìn)行字段合并,保存合并后的數(shù)據(jù)。對(duì)于無法合并的記錄,進(jìn)行沖突控制處理。步驟306,統(tǒng)一通訊錄平臺(tái)系統(tǒng)先將當(dāng)前版本CurVer保存為Hi sVer,之后將 NewVer保存為當(dāng)前版本CurVer,版本號(hào)增1,并為編號(hào)不等于appid的業(yè)務(wù)系統(tǒng)分別生成一條下行通知記錄。步驟307,業(yè)務(wù)系統(tǒng)調(diào)用下行接口,發(fā)起數(shù)據(jù)下行請(qǐng)求,從該統(tǒng)一通訊錄平臺(tái)系統(tǒng)獲取需要的通訊錄數(shù)據(jù)。步驟308,業(yè)務(wù)系統(tǒng)將獲取到的通訊錄數(shù)據(jù)更新到本地?fù)?jù),并將本地通訊錄數(shù)據(jù)的版本號(hào)加1更新本地通訊錄數(shù)據(jù)的版本號(hào)。步驟309,業(yè)務(wù)系統(tǒng)發(fā)起下行反饋請(qǐng)求,對(duì)每一個(gè)下行記錄的處理結(jié)果向統(tǒng)一通訊錄平臺(tái)系統(tǒng)進(jìn)行反饋。步驟310,統(tǒng)一通訊錄平臺(tái)系統(tǒng)根據(jù)保存的下行通知記錄,向需要進(jìn)行數(shù)據(jù)下行的業(yè)務(wù)系統(tǒng)發(fā)起同步通知。作為一個(gè)實(shí)施例,本步驟是在統(tǒng)一通訊錄平臺(tái)系統(tǒng)等待本地所有通訊錄數(shù)據(jù)的都同步完成以后,統(tǒng)一將步驟306中生成的各條下行通知記錄下發(fā)到需要進(jìn)行數(shù)據(jù)下行的業(yè)務(wù)系統(tǒng)。步驟311,接收到同步通知的業(yè)務(wù)系統(tǒng),向統(tǒng)一通訊錄平臺(tái)系統(tǒng)發(fā)送通訊錄數(shù)據(jù)上報(bào)請(qǐng)求按步驟301-310與統(tǒng)一通訊錄平臺(tái)系統(tǒng)進(jìn)行數(shù)據(jù)同步。通過步驟311可以確保業(yè)務(wù)系統(tǒng)與統(tǒng)一通訊錄平臺(tái)系統(tǒng)中的通訊錄數(shù)據(jù)保持同
止
少ο上述步驟305中,所述的字段合并處理過程,參見圖6所示,包括如下步驟步驟601,對(duì)于通訊錄數(shù)據(jù)中的一個(gè)字段f,判斷當(dāng)前上行通訊錄數(shù)據(jù)中的該字段f與統(tǒng)一通訊錄平臺(tái)系統(tǒng)中當(dāng)前保存的通訊錄數(shù)據(jù)中對(duì)應(yīng)的字段f是否相同,即是否 CurVer. f = NewVer. f,如果是,則直接進(jìn)入步驟603 ;否則進(jìn)入步驟602。步驟602,判斷當(dāng)前上行的通訊錄數(shù)據(jù)中的所述字段f與統(tǒng)一通訊錄平臺(tái)系統(tǒng)中對(duì)應(yīng)的歷史版本中的字段f是否相同,即是否CurVer. f = HisVer. f,如果是,則進(jìn)入步驟 603 ;否則,進(jìn)入步驟604。步驟603,對(duì)統(tǒng)一通訊錄平臺(tái)系統(tǒng)中的數(shù)據(jù)不作更新,以CurVer. f為準(zhǔn),將 NewVer. f修改為CurVer. f,然后直接進(jìn)入步驟607。步驟604,判斷統(tǒng)一通訊錄平臺(tái)系統(tǒng)中當(dāng)前保存的通訊錄數(shù)據(jù)版本中的f字段f與歷史版本中的f字段是否相同,即是否CurVer. f = HisVer. f,如果是,則進(jìn)入步驟605 ;否貝U,進(jìn)入步驟606。步驟605,對(duì)統(tǒng)一通訊錄平臺(tái)系統(tǒng)中數(shù)據(jù)的f字段以當(dāng)前上行通訊錄數(shù)據(jù)中的f字段為準(zhǔn),進(jìn)行更新,即保留NewVer. f值不變,進(jìn)入步驟607。步驟606,標(biāo)記該字段f的上行存在沖突,結(jié)束字段合并流程。步驟607,判斷是否還有沒進(jìn)行合并處理的字段,如果是,則返回步驟601對(duì)下一個(gè)字段執(zhí)行以上步驟,否則,結(jié)束字段合并流程。
上述步驟305中,所述的沖突控制處理過程,參見圖7所示,包括如下步驟步驟701,按照步驟601-607的方法比較NewVer、CurVer與HisVer三個(gè)記錄中每一個(gè)字段的內(nèi)容,進(jìn)行字段合并,具體可參見圖6所示。步驟702,判斷字段合并是否產(chǎn)生沖突,如果字段合并產(chǎn)生沖突則進(jìn)入步驟703, 否則進(jìn)入步驟704。步驟703,生成沖突記錄,保持同步服務(wù)器上的版本記錄不變,將當(dāng)前的NewVer轉(zhuǎn)換為新增聯(lián)系人并保存(其中該當(dāng)前的NewVer是指經(jīng)過步驟601-607處理后的),新增一個(gè)聯(lián)系人記錄,將其shared字段設(shè)置為非共享,并為其生成一個(gè)沖突通知記錄和一個(gè)下行通知記錄。沖突記錄在數(shù)據(jù)下行時(shí)由同步服務(wù)器發(fā)送給同步方,同步方可根據(jù)業(yè)務(wù)需求處理沖突記錄,完成通訊錄數(shù)據(jù)同步的沖突控制。其中,作為一個(gè)實(shí)施例本步驟702可以接在上述步驟604之后。步驟704,判斷字段內(nèi)容是否有更改,如果字段合并沒有發(fā)現(xiàn)字段內(nèi)容更改,無需更新。步驟705,如果字段合并發(fā)現(xiàn)字段內(nèi)容更改,但未產(chǎn)生沖突,則合并得到一個(gè)最終的聯(lián)系人記錄并更新為當(dāng)前記錄,該記錄的版本在原來的基礎(chǔ)上增1。在本發(fā)明的另一方面,還提供了一種實(shí)現(xiàn)多個(gè)系統(tǒng)通訊錄數(shù)據(jù)融合的統(tǒng)一通訊錄平臺(tái)系統(tǒng),參見圖4所示,包括接口適配單元,用于提供與各業(yè)務(wù)系統(tǒng)耦合;數(shù)據(jù)存儲(chǔ)單元,用于保存通訊錄數(shù)據(jù),對(duì)通訊錄數(shù)據(jù)中的個(gè)人帳號(hào)與企業(yè)帳號(hào)分別保存在不同的帳號(hào)表中,將個(gè)人帳號(hào)與企業(yè)帳號(hào)的對(duì)應(yīng)關(guān)系保存在關(guān)系表中;應(yīng)用管理單元,用于在通過所述接口適配單元接收到業(yè)務(wù)系統(tǒng)發(fā)送的通訊錄數(shù)據(jù)上報(bào)請(qǐng)求后,判斷該上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)是否與本地現(xiàn)有通訊錄數(shù)據(jù)一致,如果一致, 則不作處理;如果不一致,則根據(jù)上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)更新現(xiàn)有通訊錄數(shù)據(jù),將更新后的通訊錄數(shù)據(jù)通過接口適配單元下發(fā)到其他業(yè)務(wù)系統(tǒng)。作為一個(gè)實(shí)施例,所述數(shù)據(jù)存儲(chǔ)單元中,將帳號(hào)對(duì)應(yīng)的聯(lián)系人基礎(chǔ)信息存儲(chǔ)在一數(shù)據(jù)庫橫表中,將通訊錄聯(lián)系人的詳細(xì)信息保存在另一數(shù)據(jù)庫縱表中;聯(lián)系人屬性存放在聯(lián)系人屬性表中,通過制定統(tǒng)一的屬性規(guī)范,規(guī)定各個(gè)業(yè)務(wù)系統(tǒng)數(shù)據(jù)字段與統(tǒng)一通訊錄的屬性名之間的對(duì)應(yīng)關(guān)系。作為一個(gè)實(shí)施例,如果所述通訊錄數(shù)據(jù)上報(bào)請(qǐng)求所請(qǐng)求的為新增或者刪除現(xiàn)有通訊錄數(shù)據(jù),則所述應(yīng)用管理單元直接對(duì)現(xiàn)有通訊錄數(shù)據(jù)執(zhí)行相應(yīng)的操作;如果所述通訊錄數(shù)據(jù)上報(bào)請(qǐng)求所請(qǐng)求的為對(duì)現(xiàn)有通訊錄數(shù)據(jù)進(jìn)行修改,則所述應(yīng)用管理單元將該上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)與現(xiàn)有通訊錄數(shù)據(jù)進(jìn)行字段合并,保存合并后的數(shù)據(jù),對(duì)無法合并的進(jìn)行沖突控制處理。作為一個(gè)實(shí)施例,所述應(yīng)用管理單元中還包括安全控制模塊,通過SSL加密,保障數(shù)據(jù)通信的安全。通訊錄管理模塊,管理維護(hù)統(tǒng)一通信錄平臺(tái)內(nèi)的通信錄數(shù)據(jù),檢測(cè)數(shù)據(jù)的可靠性, 保證數(shù)據(jù)可用性。用戶關(guān)系管理模塊,維護(hù)個(gè)人用戶與企業(yè)用戶之間的所屬關(guān)系,使得個(gè)人用戶可以通過接口查詢所屬企業(yè)的企業(yè)通信錄數(shù)據(jù)。
應(yīng)用管理模塊,管理接入統(tǒng)一通信錄平臺(tái)的各個(gè)業(yè)務(wù)系統(tǒng),確保各個(gè)業(yè)務(wù)系統(tǒng)只能同步和修改自己的數(shù)據(jù)。作為一個(gè)實(shí)施例,所述業(yè)務(wù)系統(tǒng)包括業(yè)務(wù)系統(tǒng)和移動(dòng)終端,所述接口適配單元與移動(dòng)終端之間通過SyncML協(xié)議實(shí)現(xiàn)通信;所述接口適配單元與應(yīng)用系統(tǒng)之間通過自適應(yīng)同步接口協(xié)議實(shí)現(xiàn)通信。為了實(shí)現(xiàn)終端與應(yīng)用間的通訊錄數(shù)據(jù)同步,本實(shí)施例在統(tǒng)一通訊錄平臺(tái)系統(tǒng)中基于SyncML協(xié)議構(gòu)建了終端通訊錄同步接口。移動(dòng)終端與終端通訊錄服務(wù)接口之間的通信協(xié)議為標(biāo)準(zhǔn)的SyncML協(xié)議。從而保證了終端與各個(gè)應(yīng)用系統(tǒng)間的數(shù)據(jù)同步。統(tǒng)一通訊錄平臺(tái)系統(tǒng)集中了所有通訊錄相關(guān)應(yīng)用的數(shù)據(jù),形成一個(gè)統(tǒng)一的通訊錄數(shù)據(jù)庫。數(shù)據(jù)規(guī)模估算如下按500萬個(gè)人用戶和10萬企業(yè)用戶計(jì)算,平均每個(gè)個(gè)人擁有50條通訊錄記錄,一個(gè)企業(yè)擁有500條通訊錄記錄,則統(tǒng)一通訊錄總數(shù)據(jù)量達(dá)到500 X 50+10 X 500 = 30000 萬條以通訊錄年更新率30%計(jì)算,忙時(shí)8小時(shí),則平均每秒鐘處理請(qǐng)求(3X108X30% )/365/8/3600 8. 6 個(gè)鑒于統(tǒng)一通訊錄平臺(tái)系統(tǒng)需要處理海量的通訊錄數(shù)據(jù)及各個(gè)應(yīng)用系統(tǒng)大批量的數(shù)據(jù)操作請(qǐng)求,統(tǒng)一通訊錄平臺(tái)系統(tǒng)通過使用分布式架構(gòu)來保證事務(wù)處理能力。參見圖5所示,為此,在該統(tǒng)一通訊錄平臺(tái)系統(tǒng)中將所述數(shù)據(jù)存儲(chǔ)單元和應(yīng)用管理單元組成為一個(gè)節(jié)點(diǎn),整個(gè)系統(tǒng)可以由多個(gè)節(jié)點(diǎn)組成Node 0,Node 1……Node n,將通訊錄數(shù)據(jù)分散存儲(chǔ)在不同節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)單元中,較佳地可以平均分布在個(gè)節(jié)點(diǎn)中。所述接口適配單元中包括分發(fā)服務(wù)器(Dispatcher)和接口服務(wù)器(Interface Server),接口服務(wù)器接收業(yè)務(wù)系統(tǒng)發(fā)送的通訊錄數(shù)據(jù)上報(bào)請(qǐng)求后,發(fā)送給分發(fā)服務(wù)器,分發(fā)服務(wù)器通過Hash算法進(jìn)行二次路由后,發(fā)送到對(duì)應(yīng)節(jié)點(diǎn)的應(yīng)用管理單元進(jìn)行處理。統(tǒng)一通訊錄平臺(tái)系統(tǒng)規(guī)模可以通過不斷擴(kuò)展節(jié)點(diǎn)的方式得到平滑擴(kuò)展,從而保證了系統(tǒng)的處理能力及容量。統(tǒng)一通訊錄平臺(tái)系統(tǒng)中,所有的服務(wù)、數(shù)據(jù)均保證存在2份以上的實(shí)例,請(qǐng)求在多個(gè)實(shí)例中進(jìn)行負(fù)載均衡,當(dāng)任意一個(gè)實(shí)例出現(xiàn)故障后,系統(tǒng)會(huì)將請(qǐng)求自動(dòng)路由到正常的實(shí)例上,從而保證了系統(tǒng)的高可用特性。通過采用全文搜索引擎,保證了查詢事務(wù)的高性能及高靈活性。例如中國電信某省已經(jīng)根據(jù)本方案建設(shè)了統(tǒng)一通訊錄平臺(tái)系統(tǒng),數(shù)據(jù)分布在6 個(gè)節(jié)點(diǎn)上,每個(gè)節(jié)點(diǎn)使用一對(duì)(2個(gè))服務(wù)實(shí)例,數(shù)據(jù)在這一對(duì)服務(wù)實(shí)例中保持兩個(gè)拷貝,同時(shí)部署2臺(tái)請(qǐng)求分發(fā)服務(wù)器(Dispatcher)及2臺(tái)接口服務(wù)(Interface Server) 一共16 個(gè)服務(wù)實(shí)例,分布在4臺(tái)PC服務(wù)器主機(jī)上,形成一個(gè)完整的分布式應(yīng)用。統(tǒng)一通訊錄平臺(tái)系統(tǒng)已經(jīng)融合了該省的個(gè)人通信助理平臺(tái)及企業(yè)總機(jī)平臺(tái)通訊錄數(shù)據(jù),完成了個(gè)人通信錄數(shù)據(jù)與企業(yè)通訊錄數(shù)據(jù)的關(guān)聯(lián),已經(jīng)擁有企業(yè)用戶5萬余戶,個(gè)人用戶超過600萬戶,并整合了手機(jī)通信錄服務(wù)能力,為用戶提供了從終端到應(yīng)用的統(tǒng)一的通訊錄數(shù)據(jù)體驗(yàn)。統(tǒng)一通訊錄平臺(tái)系統(tǒng)正在對(duì)189郵箱、天翼live及綜合辦公等應(yīng)用系統(tǒng)的通訊錄數(shù)據(jù)進(jìn)行整合,并對(duì)更多的手持終端進(jìn)行適配,以期為更多的用戶提供融合的通訊錄服務(wù)。
應(yīng)該注意,本發(fā)明可在軟件和/或軟件和硬件的組合中實(shí)現(xiàn),例如用專用集成電路(ASIC)、通用計(jì)算機(jī)或其他硬件等同物來實(shí)現(xiàn)。在一個(gè)實(shí)施例中,模塊或進(jìn)程可被加載到存儲(chǔ)器中并由處理器執(zhí)行,以實(shí)現(xiàn)上述功能。這樣,本發(fā)明的進(jìn)程(包括相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu))可被存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)或載波上,例如RAM存儲(chǔ)器、磁驅(qū)動(dòng)或光驅(qū)動(dòng)或磁盤等等。所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種實(shí)現(xiàn)多個(gè)系統(tǒng)通訊錄數(shù)據(jù)融合的方法,其特征在于,包括 設(shè)置保存有統(tǒng)一通訊錄的統(tǒng)一通訊錄平臺(tái)系統(tǒng);對(duì)通訊錄數(shù)據(jù)中的個(gè)人帳號(hào)與企業(yè)帳號(hào)分別保存在不同的帳號(hào)表中,將個(gè)人帳號(hào)與企業(yè)帳號(hào)的對(duì)應(yīng)關(guān)系保存在關(guān)系表中;在統(tǒng)一通訊錄平臺(tái)系統(tǒng)接收業(yè)務(wù)系統(tǒng)發(fā)送的通訊錄數(shù)據(jù)上報(bào)請(qǐng)求后,判斷該上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)是否與本地現(xiàn)有通訊錄數(shù)據(jù)一致,如果一致,則結(jié)束流程;如果不一致,則根據(jù)上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)更新現(xiàn)有通訊錄數(shù)據(jù),將更新后的通訊錄數(shù)據(jù)下發(fā)到其他業(yè)務(wù)系統(tǒng)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,將帳號(hào)對(duì)應(yīng)的聯(lián)系人基礎(chǔ)信息存儲(chǔ)在一數(shù)據(jù)庫橫表中,將通訊錄聯(lián)系人的詳細(xì)信息保存在另一數(shù)據(jù)庫縱表中;聯(lián)系人屬性存放在聯(lián)系人屬性表中,通過制定統(tǒng)一的屬性規(guī)范,規(guī)定各個(gè)業(yè)務(wù)系統(tǒng)數(shù)據(jù)字段與統(tǒng)一通訊錄的屬性名之間的對(duì)應(yīng)關(guān)系。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,如果所述通訊錄數(shù)據(jù)上報(bào)請(qǐng)求所請(qǐng)求的為新增或者刪除現(xiàn)有通訊錄數(shù)據(jù),則統(tǒng)一通訊錄平臺(tái)系統(tǒng)直接對(duì)現(xiàn)有通訊錄數(shù)據(jù)執(zhí)行相應(yīng)的操作;如果所述通訊錄數(shù)據(jù)上報(bào)請(qǐng)求所請(qǐng)求的為對(duì)現(xiàn)有通訊錄數(shù)據(jù)進(jìn)行修改,則將該上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)與現(xiàn)有通訊錄數(shù)據(jù)進(jìn)行字段合并,保存合并后的數(shù)據(jù),對(duì)無法合并的進(jìn)行沖突控制處理。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述字段合并處理過程,包括如下步驟 步驟601,對(duì)于通訊錄數(shù)據(jù)中的一個(gè)字段f,判斷當(dāng)前上行通訊錄數(shù)據(jù)中的該字段f與統(tǒng)一通訊錄平臺(tái)系統(tǒng)中當(dāng)前保存的通訊錄數(shù)據(jù)中對(duì)應(yīng)的字段f是否相同,即是否CurVer. f =NewVer. f,如果是,則直接進(jìn)入步驟603 ;否則進(jìn)入步驟602 ;步驟602,判斷當(dāng)前上行的通訊錄數(shù)據(jù)中的所述字段f與統(tǒng)一通訊錄平臺(tái)系統(tǒng)中對(duì)應(yīng)的歷史版本中的字段f是否相同,即是否CurVer. f = HisVer. f,如果是,則進(jìn)入步驟603 ; 否則,進(jìn)入步驟604;步驟603,對(duì)統(tǒng)一通訊錄平臺(tái)系統(tǒng)中的數(shù)據(jù)不作更新,以CurVer. f為準(zhǔn),將NewVer. f修改為CurVer. f,然后直接進(jìn)入步驟607 ;步驟604,判斷統(tǒng)一通訊錄平臺(tái)系統(tǒng)中當(dāng)前保存的通訊錄數(shù)據(jù)版本中的f字段f與歷史版本中的f字段是否相同,即是否CurVer. f = HisVer. f,如果是,則進(jìn)入步驟605 ;否則,進(jìn)入步驟606 ;步驟605,對(duì)統(tǒng)一通訊錄平臺(tái)系統(tǒng)中數(shù)據(jù)的f字段以當(dāng)前上行通訊錄數(shù)據(jù)中的f字段為準(zhǔn),進(jìn)行更新,即保留NewVer. f值不變,進(jìn)入步驟607 ;步驟606,標(biāo)記該字段f的上行存在沖突,結(jié)束字段合并流程;步驟607,判斷是否還有沒進(jìn)行合并處理的字段,如果是,則返回步驟601對(duì)下一個(gè)字段執(zhí)行以上步驟,否則,結(jié)束字段合并流程; 所述的沖突控制處理過程,包括如下步驟步驟701,按照步驟601-607的方法比較NewVer、CurVer與HisVer三個(gè)記錄中每一個(gè)字段的內(nèi)容,進(jìn)行字段合并;步驟702,如果字段合并產(chǎn)生沖突,則生成沖突記錄保持同步服務(wù)器上的版本記錄不變,將NewVer轉(zhuǎn)換為新增聯(lián)系人操作,新增一個(gè)聯(lián)系人記錄,將其shared字段設(shè)置為非共享,并為其生成一個(gè)沖突通知記錄和一個(gè)下行通知記錄;步驟703,如果字段合并沒有發(fā)現(xiàn)字段內(nèi)容更改,無需更新;步驟704,如果字段合并發(fā)現(xiàn)字段內(nèi)容更改,但未產(chǎn)生沖突,則合并得到一個(gè)最終的聯(lián)系人記錄并更新為當(dāng)前記錄,該記錄的版本在原來的基礎(chǔ)上增1 ;步驟705,沖突記錄在數(shù)據(jù)下行時(shí)由同步服務(wù)器發(fā)送給同步方,同步方可根據(jù)業(yè)務(wù)需求處理沖突記錄,完成通訊錄數(shù)據(jù)同步的沖突控制。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述判斷該上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)是否與現(xiàn)有通訊錄數(shù)據(jù)一致的過程包括統(tǒng)一通訊錄平臺(tái)系統(tǒng)判斷發(fā)送通訊錄數(shù)據(jù)上報(bào)請(qǐng)求的業(yè)務(wù)系統(tǒng)是否與上次請(qǐng)求更新的業(yè)務(wù)系統(tǒng)相同,如果是,則判定為一致;否則,繼續(xù)判斷該上報(bào)請(qǐng)求的通訊錄數(shù)據(jù)的版本號(hào)與當(dāng)前統(tǒng)一通訊錄平臺(tái)系統(tǒng)中通訊錄數(shù)據(jù)的版本號(hào)是否相同,如果是,則判定為一致,否則判定為不一致。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述統(tǒng)一通訊錄平臺(tái)系統(tǒng)將更新后的通訊錄數(shù)據(jù)下發(fā)到其他業(yè)務(wù)系統(tǒng)的過程包括所述統(tǒng)一通訊錄平臺(tái)系統(tǒng)向其他業(yè)務(wù)系統(tǒng)發(fā)送通訊錄數(shù)據(jù)下行通知;收到該下行通知的業(yè)務(wù)服務(wù)器調(diào)用下行接口從統(tǒng)一通訊錄平臺(tái)系統(tǒng)獲取更新的通訊錄數(shù)據(jù);業(yè)務(wù)服務(wù)器更新本地通訊錄數(shù)據(jù)和版本號(hào),調(diào)用下行反饋接口,將更新處理結(jié)果發(fā)送給所述統(tǒng)一通訊錄平臺(tái)系統(tǒng);所述統(tǒng)一通訊錄平臺(tái)系統(tǒng)向所有業(yè)務(wù)系統(tǒng)發(fā)送同步通知。
7.根據(jù)權(quán)利要求1或5所述的方法,其特征在于,所述統(tǒng)一通訊錄平臺(tái)系統(tǒng)將更新后的通訊錄數(shù)據(jù)下發(fā)到其他業(yè)務(wù)系統(tǒng)后進(jìn)一步包括業(yè)務(wù)系統(tǒng)完成通訊錄數(shù)據(jù)更新后,通過通訊錄數(shù)據(jù)上報(bào)請(qǐng)求將更新的通訊錄數(shù)據(jù)上報(bào)到統(tǒng)一通訊錄平臺(tái)系統(tǒng)。
8.一種實(shí)現(xiàn)多個(gè)系統(tǒng)通訊錄數(shù)據(jù)融合的統(tǒng)一通訊錄平臺(tái)系統(tǒng),其特征在于,包括接口適配單元,用于提供與各業(yè)務(wù)系統(tǒng)耦合;數(shù)據(jù)存儲(chǔ)單元,用于保存通訊錄數(shù)據(jù),對(duì)通訊錄數(shù)據(jù)中的個(gè)人帳號(hào)與企業(yè)帳號(hào)分別保存在不同的帳號(hào)表中,將個(gè)人帳號(hào)與企業(yè)帳號(hào)的對(duì)應(yīng)關(guān)系保存在關(guān)系表中;應(yīng)用管理單元,用于在通過所述接口適配單元接收到業(yè)務(wù)系統(tǒng)發(fā)送的通訊錄數(shù)據(jù)上報(bào)請(qǐng)求后,判斷該上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)是否與本地現(xiàn)有通訊錄數(shù)據(jù)一致,如果一致,則不作處理;如果不一致,則根據(jù)上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)更新現(xiàn)有通訊錄數(shù)據(jù),將更新后的通訊錄數(shù)據(jù)通過接口適配單元下發(fā)到其他業(yè)務(wù)系統(tǒng)。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述數(shù)據(jù)存儲(chǔ)單元中,將帳號(hào)對(duì)應(yīng)的聯(lián)系人基礎(chǔ)信息存儲(chǔ)在一數(shù)據(jù)庫橫表中,將通訊錄聯(lián)系人的詳細(xì)信息保存在另一數(shù)據(jù)庫縱表中;聯(lián)系人屬性存放在聯(lián)系人屬性表中,通過制定統(tǒng)一的屬性規(guī)范,規(guī)定各個(gè)業(yè)務(wù)系統(tǒng)數(shù)據(jù)字段與統(tǒng)一通訊錄的屬性名之間的對(duì)應(yīng)關(guān)系。
10.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,如果所述通訊錄數(shù)據(jù)上報(bào)請(qǐng)求所請(qǐng)求的為新增或者刪除現(xiàn)有通訊錄數(shù)據(jù),則所述應(yīng)用管理單元直接對(duì)現(xiàn)有通訊錄數(shù)據(jù)執(zhí)行相應(yīng)的操作;如果所述通訊錄數(shù)據(jù)上報(bào)請(qǐng)求所請(qǐng)求的為對(duì)現(xiàn)有通訊錄數(shù)據(jù)進(jìn)行修改,則所述應(yīng)用管理單元將該上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)與現(xiàn)有通訊錄數(shù)據(jù)進(jìn)行字段合并,保存合并后的數(shù)據(jù),對(duì)無法合并的進(jìn)行沖突控制處理。
11.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述應(yīng)用管理單元中還包括 安全控制模塊,用于通過SSL加密,保障數(shù)據(jù)通信的安全;通訊錄管理模塊,用于管理維護(hù)統(tǒng)一通信錄平臺(tái)內(nèi)的通信錄數(shù)據(jù),檢測(cè)數(shù)據(jù)的可靠性, 保證數(shù)據(jù)可用性;用戶關(guān)系管理模塊,用于維護(hù)個(gè)人用戶與企業(yè)用戶之間的所屬關(guān)系,使得個(gè)人用戶可以通過接口查詢所屬企業(yè)的企業(yè)通信錄數(shù)據(jù);應(yīng)用管理模塊,用于管理接入統(tǒng)一通信錄平臺(tái)的各個(gè)業(yè)務(wù)系統(tǒng),確保各個(gè)業(yè)務(wù)系統(tǒng)只能同步和修改自己的數(shù)據(jù)。
12.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述業(yè)務(wù)系統(tǒng)包括應(yīng)用系統(tǒng)和移動(dòng)終端,所述接口適配單元與移動(dòng)終端之間通過SyncML協(xié)議實(shí)現(xiàn)通信;所述接口適配單元與應(yīng)用系統(tǒng)之間通過自適應(yīng)同步接口協(xié)議實(shí)現(xiàn)通信。
13.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,在該系統(tǒng)中包括多個(gè)由所述數(shù)據(jù)存儲(chǔ)單元和應(yīng)用管理單元組成的節(jié)點(diǎn),通訊錄數(shù)據(jù)分散存儲(chǔ)在不同的數(shù)據(jù)存儲(chǔ)單元中;所述接口適配單元中包括分發(fā)服務(wù)器和接口服務(wù)器,接口服務(wù)器接收業(yè)務(wù)系統(tǒng)發(fā)送的通訊錄數(shù)據(jù)上報(bào)請(qǐng)求后,發(fā)送給分發(fā)服務(wù)器,分發(fā)服務(wù)器通過Hash算法進(jìn)行二次路由后, 發(fā)送到對(duì)應(yīng)節(jié)點(diǎn)的應(yīng)用管理單元進(jìn)行處理。
全文摘要
本發(fā)明公開一種實(shí)現(xiàn)多個(gè)系統(tǒng)通訊錄數(shù)據(jù)融合的方法及系統(tǒng),包括設(shè)置保存有統(tǒng)一通訊錄的統(tǒng)一通訊錄平臺(tái)系統(tǒng);對(duì)通訊錄數(shù)據(jù)中的個(gè)人帳號(hào)與企業(yè)帳號(hào)分別保存在不同的帳號(hào)表中,將個(gè)人帳號(hào)與企業(yè)帳號(hào)的對(duì)應(yīng)關(guān)系保存在關(guān)系表中;在統(tǒng)一通訊錄平臺(tái)系統(tǒng)接收業(yè)務(wù)系統(tǒng)發(fā)送的通訊錄數(shù)據(jù)上報(bào)請(qǐng)求后,判斷該上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)是否與本地現(xiàn)有通訊錄數(shù)據(jù)一致,如果一致,則結(jié)束流程;如果不一致,則根據(jù)上報(bào)請(qǐng)求中的通訊錄數(shù)據(jù)更新現(xiàn)有通訊錄數(shù)據(jù),將更新后的通訊錄數(shù)據(jù)下發(fā)到其他業(yè)務(wù)系統(tǒng)。通過本發(fā)明能夠有效的融合各個(gè)應(yīng)用系統(tǒng)以及用戶終端中存儲(chǔ)的個(gè)人通訊錄數(shù)據(jù),實(shí)現(xiàn)個(gè)人通訊錄和企業(yè)通訊錄的整合。
文檔編號(hào)H04L29/08GK102469144SQ201010551068
公開日2012年5月23日 申請(qǐng)日期2010年11月19日 優(yōu)先權(quán)日2010年11月19日
發(fā)明者宋平波, 張玉忠, 徐雄, 楊翊平, 林全疆, 蔡堅(jiān)錚 申請(qǐng)人:中國電信股份有限公司