專利名稱:一種客戶系統與服務系統數據同步的方法及系統的制作方法
技術領域:
本發明涉及通訊技術領域,尤其涉及一種數據同步的方法及系統。
背景技術:
目前在多個客戶系統使用同一個服務系統的情況下,多客戶系統間存在數據不能同步的問題;如圖1所示,兩個客戶系統之間不存在任何聯系,假定最初的時候兩個客戶系統上的配置數據都和服務系統是一致的,如果這時當一個客戶系統A的用戶對服務系統進行了一些操作,修改了服務系統上的配置數據,這樣就會造成客戶系統B上的數據和服務系統上的數據不一致,此時客戶系統B的用戶看到的是在客戶系統A用戶修改前的信息,由此客戶系統B做的進一步的操作可能就會是錯誤的。
發明內容
本發明的目的在于提供一種客戶系統與服務系統數據同步的方法及系統,當服務系統配置的數據變更時,將所述數據變更的消息廣播給客戶系統,通知所有客戶系統有數據發生了變更,達到客戶系統與服務系統數據同步的目的。
本發明的目的是通過以下技術方案實現的一種客戶系統與服務系統數據同步的系統,包括服務系統及客戶系統,服務系統側設置有緩沖區、消息同步模塊;
所述緩沖區,用于存儲數據變更消息;所述消息同步模塊,用于將緩沖區中緩存的數據變更消息同步到各客戶系統。
所述服務系統側還設置有數據變更通知消息的操作集合,用于設置需要進行數據同步的所有操作。
所述緩沖區中數據變更消息具體包括變更消息在緩沖區中的位置序號、數據變更所操作對象的唯一標識、觸發此數據變更的用戶標識ID、數據變更發生的時間信息、數據變更涉及的原子操作數目、變更數據的詳細操作信息。
客戶系統側設置有位置信息存儲模塊,用于保存位置信息,所述位置信息用于記錄上次同步數據的位置,作為下次進行同步操作的起點。
所述客戶系統上設置有查詢服務系統中數據變更消息的接口及查詢服務系統上最后一個數據變更消息的位置消息的接口。
一種客戶系統與服務系統數據同步的方法,包括A、將服務系統中需要同步到客戶系統的數據保存在緩沖區中;B、將緩存區中的數據同步到客戶系統。
執行所述步驟A前還包括客戶系統與服務系統間進行數據一致性檢測,判斷是否需要執行數據同步操作。
所述客戶系統與服務系統間進行數據一致性檢測的方法包括服務系統上報機制、客戶系統主動檢測機制、用戶人為檢測機制。
所述服務系統上報機制具體包括服務系統接收到客戶系統的操作命令后,查找服務系統中的操作集合,判斷所述操作是否需要進行數據同步操作。
所述客戶系統主動檢測機制具體包括
當客戶系統重新登錄服務系統時,或者用定時器來控制,由客戶系統主動發起,利用位置信息,定時查詢服務系統當前數據更新位置是否與客戶系統中保存的位置信息一致,來進行數據一致性檢測。
所述用戶人為檢測機制具體包括用戶觸發客戶系統執行一致性校驗,由客戶系統返回校驗結果顯示給用戶。
所述步驟B中數據同步操作包括半自動數據同步和自動數據同步。
所述半自動數據同步包括用客戶系統的數據覆蓋服務系統來同步和從服務系統同步,所述從服務系統同步包括增量同步和全量同步。
所述適用全量同步的條件包括服務系統中需要處理的同步消息在緩沖區中已經繞接或異常丟失,造成無法進行增量同步;或,其它客戶系統用戶對服務系統做過配置數據清除或者全量下載同步操作;或,其它客戶系統用戶對服務系統做過的修改數量超過規定門限;或,客戶系統第一次連接上服務系統或和服務系統間通信異常中斷后重新連接上服務系統。
所述增量同步的方法具體包括查找到服務系統上對應的數據同步流程,依次對所有消息調用數據同步流程中每一項的預處理函數,按照數據同步流程執行每一個功能項的同步函數,若執行成功,則更新已同步消息位置信息,作為下次進行同步操作的起點;或,若沒有未處理的消息事件,則修改客戶系統的標志為一致態。
所述步驟B具體包括B1、服務系統提供數據變更信息給客戶系統,不包含數據變更的具體內容;
B2、用戶收到此消息后,通過查詢或同步命令接口來查看或同步數據變更消息的詳細信息。
所述步驟B還包括在數據同步過程中鎖定服務系統,整個同步操作完成后對服務系統解鎖。
所述鎖定服務系統的方法包括使服務系統處于單用戶模式。
由上述本發明提供的技術方案可以看出,本發明實現了當服務系統配置的數據變更時,可以將數據變更的消息同步到所有客戶系統,達到客戶系統與服務系統數據同步的目的,避免了單個客戶系統的操作而改變服務系統配置數據時引起的其他客戶系統的操作錯誤,并且可以根據用戶的選擇執行同步操作,靈活性強。
圖1為現有技術兩個客戶系統使用同一個服務系統示意圖;圖2為本發明所述系統一種實施例架構示意圖;圖3為本發明執行數據一致性檢測中采用服務系統上報機制一種實施例操作流程;圖4為本發明執行數據一致性檢測中采用客戶系統主動檢測機制一種實施例操作流程;圖5為本發明執行數據一致性檢測中采用人為檢測一種實施例操作流程;圖6為本發明從服務系統同步數據一種實施例操作流程;圖7為本發明按服務系統增量同步數據一種實施例操作流程;圖8為本發明按客戶系統同步數據一種實施例操作流程。
具體實施例方式
本發明的核心思想是提供一種客戶系統與服務系統數據同步的方法及系統,當服務系統配置的數據變更時,將所述數據變更的消息保存在一個緩沖區Buffer中,并同時生成一個數據變更通知消息DATA_CHANGED,廣播給客戶系統,通知所有客戶系統有數據發生了變更,達到客戶系統與服務系統數據同步的目的。
本發明提供一種客戶系統與服務系統數據同步的系統,一種實施例架構示意圖如圖2所示,所述系統在服務系統側設置有緩沖區Buffer,用于存儲數據變更的消息。在緩沖區中數據變更消息具體包括變更消息在Buffer中的位置序號、數據變更所操作對象的唯一標識ID、觸發此數據變更的用戶ID、數據變更發生的時間信息、數據變更涉及的原子操作數目wOpCnt、變更數據的詳細操作信息OpList[wOpCnt]等;其中所述OpList是操作的詳細信息,由1~wOpCnt個原子操作組成,包括原子操作、操作附帶參數長度、操作參數的指針等;服務系統側還設置有消息同步模塊,用于將緩沖區中緩存的數據變更消息同步到各客戶系統,該模塊主要通過客戶系統提供的位置信息來控制每次同步的數據,即,每次同步操作完成后,客戶系統上記錄當前完成的同步數據的位置信息,用于下次進行同步操作的起點,以減少系統工作量;服務系統側還設置有數據變更通知消息的操作集合,用于設置需要進行數據同步的所有操作;由于每一條系統命令,都可以采用如下方式表達Somebody+Do+Something+Attribute;所述的Somebody是服務系統上管理的對象,每個對象都有一個唯一的全局編號ID,本實施例在對象中增加一個變量來標識該對象的操作是否需要上報,缺省都為不上報,對于系統中比較重要的對象,則修改上報標志為需要上報;
所述的Do是對應客戶系統下發的具體操作,可以分為三類,包括設置set、查詢get和操作act;對于所述查詢get命令,不會對服務系統中的數據產生影響,不需要上報數據變更消息;對于設置set和操作act命令,一般會直接變更服務系統上的數據,但是為了避免數據變更消息過于頻繁而對客戶系統和服務系統間的正常通信造成影響,需要根據此操作的重要性和操作的影響范圍大小來設置是否需要進行數據同步;所述Something表示針對Somebody具體的操作,即是Somebody最終被操作的對象;所述Attribute表示此操作的附帶屬性,如操作命令的參數等;對于一些特殊情況需要進行優化設置,如一些具有關聯關系的操作,包括針對某對象多次重復的操作,多次重復操作后的結果和最初的數據是一樣的,或在對某對象進行了一系列的操作后,接著又刪除了此對象的情況;對于這些較為特殊的情況,只需要上報整個操作的最后結果,則這些命令之間的關聯信息就需要在設置時加以描述,如可以在發現有命令變更了對象的數據時,增加短時的等待,如1分鐘,如果這段時間內該對象的數據沒有再發生變更則進行同步操作,否則繼續等待一段時間,直到最后所有操作完成后只執行一次同步操作;服務系統上也可以忽略操作的中間影響,只需保存最終的操作結果;本發明所述系統在客戶系統側保存有位置信息,用于記錄上次同步數據的位置;客戶系統側還設置有是否與服務系統信息一致的標志。
客戶系統上查詢服務系統中數據變更消息的接口的定義如下表
所說的單位時間,可以根據實際需要確定,通常指一天。
所說的時間段通常為10天以內,在實際應用中選擇3至7天較為合適。
假設某個小區級無線資源對象A發生故障,在過去的3天時間內,與該無線資源對象A相關的異常原因有硬切換異常、軟切換異常、業務協商異常、等待超時、分配資源異常等十一個,統計這3天時間內這十一個異常原因每天出現的次數,其中,硬切換異常在三天內出現的次數依次為2685、2388和3391;軟交換異常在三天內出現的次數依次為2、0和5;等等。
為了記錄方便,將異常原因用代碼表示,比如用KA1至KA11分別表示硬切換異常、軟切換異常、業務協商異常、等待超時、分配資源異常等十一個異常原因,相應異常原因每天出現的次數統計如表1所示。
表1為某3天時間內某個小區級無線資源對象A相關的異常原因每天出現<p>
本發明提供一種客戶系統與服務系統數據同步的方法,所述方法一種實施例操作流程如下所述首先,步驟1客戶系統與服務系統間進行數據一致性檢測,若需要執行數據同步操作,則將變更的數據保存在緩沖區中;該一致性檢測的方法包括服務系統上報機制、客戶系統主動檢測機制、用戶人為檢測機制;所述服務系統上報機制是正常運行時的檢測流程,在客戶系統對服務系統進行操作時,服務系統接收到客戶系統的操作命令后,查找服務系統中的操作集合,判斷所述操作是否需要進行數據同步操作,當需要同步操作時,將該操作變更的數據存入緩沖區,上報數據變更消息DATA_CHANGED,如圖3所示,客戶系統顯示數據不一致,從而用戶得知服務系統與客戶系統的數據不一致消息;所述客戶系統主動檢測機制是服務系統上報機制的補充,如圖4所示,其觸發條件是客戶系統重新登錄服務系統,或者用定時器來控制,由客戶系統主動發起,定時查詢服務系統當前數據更新位置,判斷是否與所述客戶系統中保存的位置信息一致,將查詢結果顯示給用戶,并確定有無數據變更;客戶系統上要保存上次同步成功時消息在服務系統Buffer中的位置信息,以便客戶系統通過查詢數據變更詳細信息接口得到詳細信息或從服務系統上同步數據;所述用戶人為檢測機制如圖5所示,是用戶主動進行客戶系統和服務系統的數據一致性校驗,用戶觸發客戶系統執行一致性校驗,由客戶系統返回校驗結果顯示給用戶;
若不需要執行數據同步操作,則繼續進行檢測操作;步驟2若需要執行數據同步操作,則消息同步模塊將緩存區中的數據同步到客戶系統;消息同步模塊主要通過客戶系統提供的位置信息來控制每次同步的數據,即,每次同步操作完成后,客戶系統上記錄當前完成的同步數據的位置信息,用于下次進行同步操作的起點,以減少系統工作量;服務系統和客戶系統之間的數據同步可以分為兩種半自動數據同步和自動數據同步;所述半自動數據同步是指服務系統上報數據變更消息后,在用戶干預下進行同步,包括從服務系統同步和用客戶系統的數據覆蓋服務系統來同步,所述從服務系統同步包括增量同步和全量同步;所述自動數據同步是指完全不需要用戶參與,每隔一段時間,如果檢測到客戶系統數據和服務系統數據不一致,客戶系統自動對數據不一致的服務系統發起同步操作請求;用戶可以根據需要選擇是否使用自動數據同步的功能,考慮到數據的正確性和安全性,自動數據同步功能缺省為不使能;使用自動數據同步不影響半自動數據同步,在定時間隔沒到的情況下用戶可以使用半自動同步的功能提前同步。
從服務系統同步數據的操作如圖6所示,表示用戶接受服務系統的配置數據變更,客戶系統從服務系統上同步數據;包括增量同步和全量同步兩種;滿足下面任何一條情況,就應該使用全量同步策略1)服務系統中需要處理的同步消息在Buffer中已經繞接或異常丟失,造成無法進行增量同步;
2)其它客戶系統用戶對服務系統做過配置數據清除或者全量下載同步操作;3)其它客戶系統用戶對服務系統做過一些影響較大的修改,或以門限值來限定,當修改量超過規定門限值時;4)客戶系統第一次連接上服務系統或和服務系統間通信異常中斷后重新連接上服務系統。
按服務系統增量同步的操作流程如圖7所示,具體操作包括首先查詢服務系統上當前變更消息在Buffer中的位置,判斷是否符合全量同步條件,若符合全量同步條件,則執行全量同步上載;若不符合,則查找到服務系統上對應的數據同步流程,依次對所有消息調用數據同步流程中每一項的預處理函數,當存在功能項需要上載時,執行全量上載同步;否則按照數據同步流程執行每一個功能項的同步函數,若執行成功,則更新已同步消息位置信息,若沒有未處理的消息事件,修改客戶系統的標志為一致態;不論是采用增量同步還是全量同步的方式,都可能會在同步的過程中再生成了新的DATA_CHANGED消息,為此可以在同步時鎖定服務系統,直到整個同步完成后才對服務系統解鎖,這就要求服務系統在整個同步過程中不處理其它客戶系統的任何操作,可行的辦法就是在同步過程中使服務系統處于單用戶模式。若同步過程中不能鎖定服務系統,則需要容忍數據同步之后馬上再次變成不一致的狀態,或者采用逐步逼近策略,同步完成之后要檢查是否還有新的事件,若有則再同步一次,直到沒有新的事件為止;所述用客戶系統的數據覆蓋服務系統同步機制,如圖8所示,是在用戶不接受服務系統的配置變更情況下執行的,使用全量下載同步;消息同步模塊發送至客戶系統的數據變更消息包括服務系統ID、數據變更消息在消息Buffer中的位置序號、觸發數據變更的用戶ID、數據變更發生的時間信息等;
為了避免每次上報變更消息的數據量過大而可能對服務系統和客戶系統之間的正常通信造成影響,因此,上報的消息中只包含了一些最基本的信息,并不包含數據變更的具體內容,即具體每個命令字及其詳細的參數等信息;用戶收到此消息后,可以進一步通過查詢或同步命令接口來查看或同步數據變更消息的詳細信息。
綜上所述,本發明實現了當服務系統配置的數據變更時,可以將數據變更的消息同步到所有客戶系統,達到客戶系統與服務系統數據同步的目的。
以上所述,僅為本發明較佳的具體實施方式
,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應該以權利要求的保護范圍為準。
權利要求
1.一種客戶系統與服務系統數據同步的系統,包括服務系統及客戶系統,其特征在于,服務系統側設置有緩沖區、消息同步模塊;所述緩沖區,用于存儲數據變更消息;所述消息同步模塊,用于將緩沖區中緩存的數據變更消息同步到各客戶系統。
2.如權利要求1所述的一種客戶系統與服務系統數據同步的系統,其特征在于,所述服務系統側還設置有數據變更通知消息的操作集合,用于設置需要進行數據同步的所有操作。
3.如權利要求1所述的一種客戶系統與服務系統數據同步的系統,其特征在于,所述緩沖區中數據變更消息具體包括變更消息在緩沖區中的位置序號、數據變更所操作對象的唯一標識、觸發此數據變更的用戶標識ID、數據變更發生的時間信息、數據變更涉及的原子操作數目、變更數據的詳細操作信息。
4.如權利要求1所述的一種客戶系統與服務系統數據同步的系統,其特征在于,客戶系統側設置有位置信息存儲模塊,用于保存位置信息,所述位置信息用于記錄上次同步數據的位置,作為下次進行同步操作的起點。
5.如權利要求1所述的一種客戶系統與服務系統數據同步的系統,其特征在于,所述客戶系統上設置有查詢服務系統中數據變更消息的接口及查詢服務系統上最后一個數據變更消息的位置消息的接口。
6.一種客戶系統與服務系統數據同步的方法,其特征在于,包括A、將服務系統中需要同步到客戶系統的數據保存在緩沖區中;B、將緩存區中的數據同步到客戶系統。
7.如權利要求6所述的一種客戶系統與服務系統數據同步的方法,其特征在于,執行所述步驟A前還包括客戶系統與服務系統間進行數據一致性檢測,判斷是否需要執行數據同步操作。
8.如權利要求7所述的一種客戶系統與服務系統數據同步的方法,其特征在于,所述客戶系統與服務系統間進行數據一致性檢測的方法包括服務系統上報機制、客戶系統主動檢測機制、用戶人為檢測機制。
9.如權利要求8所述的一種客戶系統與服務系統數據同步的方法,其特征在于,所述服務系統上報機制具體包括服務系統接收到客戶系統的操作命令后,查找服務系統中的操作集合,判斷所述操作是否需要進行數據同步操作。
10.如權利要求8所述的一種客戶系統與服務系統數據同步的方法,其特征在于,所述客戶系統主動檢測機制具體包括當客戶系統重新登錄服務系統時,或者用定時器來控制,由客戶系統主動發起,利用位置信息,定時查詢服務系統當前數據更新位置是否與客戶系統中保存的位置信息一致,來進行數據一致性檢測。
11.如權利要求8所述的一種客戶系統與服務系統數據同步的方法,其特征在于,所述用戶人為檢測機制具體包括用戶觸發客戶系統執行一致性校驗,由客戶系統返回校驗結果顯示給用戶。
12.如權利要求6所述的一種客戶系統與服務系統數據同步的方法,其特征在于,所述步驟B中數據同步操作包括半自動數據同步和自動數據同步。
13.如權利要求6所述的一種客戶系統與服務系統數據同步的方法,其特征在于,所述半自動數據同步包括用客戶系統的數據覆蓋服務系統來同步和從服務系統同步,所述從服務系統同步包括增量同步和全量同步。
14.如權利要求13所述的一種客戶系統與服務系統數據同步的方法,其特征在于,所述適用全量同步的條件包括服務系統中需要處理的同步消息在緩沖區中已經繞接或異常丟失,造成無法進行增量同步;或,其它客戶系統用戶對服務系統做過配置數據清除或者全量下載同步操作;或,其它客戶系統用戶對服務系統做過的修改數量超過規定門限;或,客戶系統第一次連接上服務系統或和服務系統間通信異常中斷后重新連接上服務系統。
15.如權利要求13所述的一種客戶系統與服務系統數據同步的方法,其特征在于,所述增量同步的方法具體包括查找到服務系統上對應的數據同步流程,依次對所有消息調用數據同步流程中每一項的預處理函數,按照數據同步流程執行每一個功能項的同步函數,若執行成功,則更新已同步消息位置信息,作為下次進行同步操作的起點;或,若沒有未處理的消息事件,則修改客戶系統的標志為一致態。
16.如權利要求6所述的一種客戶系統與服務系統數據同步的方法,其特征在于,所述步驟B具體包括B1、服務系統提供數據變更信息給客戶系統,不包含數據變更的具體內容;B2、用戶收到此消息后,通過查詢或同步命令接口來查看或同步數據變更消息的詳細信息。
17.如權利要求6所述的一種客戶系統與服務系統數據同步的方法,其特征在于,所述步驟B還包括在數據同步過程中鎖定服務系統,整個同步操作完成后對服務系統解鎖。
18.如權利要求17所述的一種客戶系統與服務系統數據同步的方法,其特征在于,所述鎖定服務系統的方法包括使服務系統處于單用戶模式。
全文摘要
本發明涉及通訊技術領域中一種客戶系統與服務系統數據同步的方法及系統。所述方法主要包括首先,客戶系統與服務系統間進行數據一致性檢測,將服務系統中需要同步到客戶系統的數據保存在緩沖區中;將緩存區中的數據同步到客戶系統。本發明實現了當服務系統配置的數據變更時,可以將數據變更的消息同步到所有客戶系統,達到客戶系統與服務系統數據同步的目的,避免了單個客戶系統的操作而改變服務系統配置數據時引起的其他客戶系統的操作錯誤,并且可以根據用戶的選擇執行同步操作,靈活性強。
文檔編號H04L29/06GK1866961SQ20061005740
公開日2006年11月22日 申請日期2006年3月13日 優先權日2006年3月13日
發明者陳虹兵 申請人:華為技術有限公司