專利名稱::一種網絡業務虛連接模塊間數據同步的方法
技術領域:
:本發明涉及通信領域,更具體地涉及一種NS-VC(NetworkServiceVirtualConnection,網絡業務虛連接)模塊間數據同步的方法。
背景技術:
:Gb(Gbinterface)接口是移動通信領域SGSN(ServingGPRSSupportNode,GPRS服務支持節點)網元與BSS(BaseStationSystem,基站系統)之間的接口,其協議棧如圖1所示。NS-VC是SGSN與BSS進行通訊NS(NetworkService)層間的邏輯鏈路,鏈路狀態需要實時維護并通知使用鏈路的業務模塊。根據Gb接口3GPPTS48.016系列協議,SGSN向BSS進行數據分發時,SGSN需要根據一定規則從二者之間的所有NS-VC鏈路中選擇某一條NS-VC。因此對SGSN來說,NS-VC信息對于SGSN來說應該是全局信息.同樣地,NS-VC信息對BSS來說也是全局信息。由于單模塊處理能力有限,現在的SGSN/BSS體系架構大多是基于多模塊基礎之上。NS-VC管理目前比較流行的是采用集中式管理,集中管理模塊管理全局所有NS-VC并向其它模塊同步,其示意圖如圖2所示。SGSN的Gb接口NS-VC數據管理是整個系統比較重要的內容,現有技術大多采用集中式管理。在集中式管理中存在的問題是對集中式管理模塊性能要求較高,系統健壯性和可擴容性較差。大容量SGSN系統中,由于NS-VC鏈路管理及同步會對集中管理模塊形成巨大的沖擊,集中管理模塊最后成為系統擴容的瓶頸,如果集中管理模塊出現問題將導致整個系統不可用。對NS-VC鏈路信息采用分布式管理的方法是目前通用的一種方法,根據3GPPTS48.016系列協議,同一網絡服務實體下的NS-VC稱為NS-VC組.因此NS-VC的分布式管理可以通過網絡實體的分布式管理來體現,具體實現時可以通過一張NSEI(NetwrokServiceEntityIdentifier,網絡業務實體標識符)的負荷分擔的規則表來體現。具體來說,模塊上電時,根據NSEI和模塊的配置情況生成NSEI按模塊負荷分擔的規則表;當存在模塊宕機時,NSEI按模塊負荷分擔的規則表重新生成,能夠保證所有的NS-VC都有模塊管理。對于分布式管理,如果系統模塊之間的數據不能同步,就會導致系統在自動恢復的處理過程中出現不一致的現象。綜上所述,當前需要一種NS-VC模塊間數據同步的技術方案。
發明內容本發明所要解決的技術問題是提供一種網絡業務虛連接模塊間數據同步的方法,有效控制了系統中的消息量,對系統的沖擊降低;本發明的方法還能夠克服模塊間數據同步丟包問題,使系統能夠自動恢復處理系統中出現的不一致數據。為了解決上述問題,本發明提供了一種網絡業務虛連接NS-VC模塊間數據同步的方法,包括以下步驟,a、設置用于模塊間數據同步的循環定時器T1,初始化數據同步的緩沖區;b、NS-VC管理進程模塊檢測到NS-VC的歸屬模塊的NS-VC信息發生變化時,對NS-VC信息進行更新后,如果所述緩沖區已經填滿,則將緩沖區數據打包發給其它非歸屬模塊并清空緩沖區后,將更新后的所述NS-VC信息寫入所述緩沖區;c、如果NS-VC管理進程模塊收到所述循環定時器Tl的超時消息,則歸屬模塊將緩沖區數據打包發送給其它非歸屬模塊,非歸屬模塊收到歸屬模塊同步的NS-VC的數據包后,將數據包解包,更新本;f莫塊NS-VC對應的信息,完成模塊間數據同步。進一步地,上述方法還可包括,所述步驟a中包括,NS-VC管理進程模塊收到系統發送的上電消息后,設置用于模塊間數據同步的循環定時器Tl,初始化數據同步的緩沖區,同時設置用于網絡業務實體標識符NSEI對應的計數器的模塊間同步的循環定時器T2。進一步地,上述方法還可包括,所述步驟b中,NS-VC管理進程模塊檢測到NS-VC的歸屬模塊的NS-VC信息發生變化時,對NS-VC信息進行更新后將NSEI對應的計數器更新。進一步地,上述方法還可包括,所述步驟c中,如果NS-VC管理進程模塊收到所述循環定時器T1的超時消息,則歸屬模塊將緩沖區數據打包發送給其它非歸屬模塊,接著清空所述緩沖區。進一步地,上述方法還可包括,所述步驟c中,所述歸屬模塊將緩沖區數據打包發送給其它非歸屬模塊是單向廣播式,不需要其它非歸屬模塊的響應。進一步地,上述方法還可包括,所述步驟c中,所述非歸屬模塊收到歸屬模塊同步的NS-VC的數據包后,將數據包解包,更新本模塊NS-VC對應的信息,同時更新NSEI對應的計數器。進一步地,上述方法還可包括步驟,d、如果NS-VC管理進程模塊收到所述循環定時器T2的超時消息,則NSEI對應的計數器超時的歸屬模塊將所有該歸屬模塊負荷的NSEI對應的計數器打包發送給其它非歸屬模塊;e、其它非歸屬模塊收到歸屬模塊同步的NSEI對應的計數器后,首先將收到的計數器與本地計數器比較,如果不一致,則其它非歸屬模塊向歸屬模塊發送請求消息,請求同步該NSEI對應計數器下所有的NS-VC信息;f、歸屬模塊收到其它非歸屬模塊發送的請求消息后,從請求消息中解析出NSEI,然后將該NSEI的所有NS-VC信息和NSEI計數器,打包發給其它非歸屬模塊;g、其它非歸屬模塊收到歸屬模塊因NSEI計數器不一致而同步的NS-VC數據包后,更新本地的NS-VC信息,最后修改NSEI計數器與歸屬模塊的計數器一致。進一步地,上述方法還可包括,所述步驟e中,所述請求消息中攜帶單個NSEI或者多個NSEI。進一步地,上述方法還可包括,所述步驟e中,非歸屬模塊收到歸屬模塊同步的NSEI對應計數器后,將收到的計數器與本地計數器比較,如果一致則直接退出。與現有技術相比,應用本發明的數據同步方法有效控制了系統中的消息量,對系統的沖擊降低;本發明的方法還能夠克服模塊間數據同步丟包問題,使系統能夠自動恢復處理系統中出現的不一致數據。圖1是Gb接口協議棧示意圖;圖2是NS-VC集中式管理結構示意圖;圖3是本發明具體實施方式中NS-VC分布式管理的結構示意圖;圖4是本發明具體實施方式中NSEI的負荷分擔的規則表的生成流程圖;圖5是本發明具體實施方式中NS-VC分布式管理中模塊間數據同步的方法的流程圖。具體實施方式下面結合附圖和具體實施方式對本發明作進一步說明。本發明的主要構思是對NS-VC鏈路信息采用分布式管理的方法,根據3GPPTS.48.016系列協議,同一網絡服務實體下的NS-VC稱為NS-VC組.因此NS-VC的分布式管理可以通過網絡實體的分布式管理來體現,具體實現時可以通過一張NSEI(NetwrokServiceEntityIdentifier,網絡業務實體標識符)的負荷分擔的規則表來體現。具體來說,模塊上電時,根據NSEI和模塊的配置情況生成NSEI按模塊負荷分擔的規則表;當存在模塊宕機時,NSEI按模塊負荷分擔的規則表重新生成,能夠保證所有的NS-VC都有模塊管理。圖3是本發明具體實施方式中NS-VC分布式管理的結構示意圖,描述了NS-VC分布式管理的系統結構。圖4是本發明具體實施方式中NSEI的負荷分擔的規則表的生成流程,包括以下步驟,S401,NS-VC管理進程模塊收到系統控制發送的上電消息;S402,首先將配置的NSEI和模塊按先后順序分別排序,接著將排好序的NSEI寫入NSEI按模塊負荷分擔的NSEI的負荷分擔的規則表中,接著將排好序的模塊循環填入NSEI的負荷分擔的規則表中;首先將配置的NSEI和模塊按先后順序分別排序,以保證每個模塊上電生成的NSEI按模塊負荷分擔一致。如表1所示,4個NSEI和3個模塊生成的NSEI的負荷分擔的規則表如下;表1:<table>tableseeoriginaldocumentpage9</column></row><table>S403,NS-VC管理進程模塊收到模塊宕機或者模塊增加消息,重新生成NSEI的負荷分擔的規則表;當NS-VC管理進程模塊收到模塊宕機消息后,從原有模塊順序中將宕機模塊剔除,將剔除宕機模塊之后排好序的模塊循環填入所述NSEI的負荷分擔的規則表,重新生成NSEI的負荷分擔的規則表。如表2所示,3號模塊宕機重新生成的NSEI的負荷分擔的規則表如下表2:<table>tableseeoriginaldocumentpage9</column></row><table><table>tableseeoriginaldocumentpage10</column></row><table>當NS-VC管理進程模塊收到模塊增加消息后,所有模塊一起排序,將排好序的模塊循環填入所述NSEI的負荷分擔的規則表,重新生成NSEI的負荷分擔的規則表。如表3所示,新增4號模塊重新生成的NSEI的負荷分擔的規則表如下表3:<table>tableseeoriginaldocumentpage10</column></row><table>S404,NS-VC管理進程^t塊收到NSEI配置刪除或者增加消息,重新生成NSEI的負荷分擔的規則表。當NS-VC管理進程模塊收到NSEI配置刪除消息后,從原有NSEI順序中將需要刪除的NSEI剔除,將剔除需要刪除的NSEI之后排好序的NSEI寫入所述NSEI的負荷分擔的規則表,接著將先前排好序的模塊循環填入所述NSEI的負荷分擔的規則表,重新生成NSEI的負荷分擔的規則表。如表4所示,在S402的基礎上NSEI刪除3,重新生成的NSEI的負荷分擔的規則表如下表4:__<table>tableseeoriginaldocumentpage10</column></row><table><table>tableseeoriginaldocumentpage11</column></row><table>當NS-VC管理進程模塊收到NSEI配置增加消息后,將所有NSEI進行排序,將排好序的NSEI寫入所述NSEI的負荷分擔的規則表,,接著將先前排好序的模塊循環填入所述NSEI的負荷分擔的規則表,重新生成NSEI的負荷分擔的規則表。如表5所示,在S402的基礎上NSEI增加5,重新生成的NSEI的負荷分擔的規則表如下表5:<table>tableseeoriginaldocumentpage11</column></row><table>本發明提出的NS-VC分布式管理方法克服了集中式數據管理的各種弊端,系統擴容不再存在瓶頸,系統健壯性增強。NS-VC鏈路信息全局同步方法的主要構思是通過設計定時器加緩沖區的方式來保證歸屬模塊上的NS-VC信息變化時能夠及時同步到其它模塊;另外,針對每個NSEI每個模塊維護一個相應的計數器,使用該計數器能夠有效的恢復模塊間消息丟失帶來的全局數據不一致的問題。具體來說,在NSEI的歸屬模塊和非歸屬模塊都需要維護相應的計數器,該計數器NS-VC信息每次發生變化時隨之變化;歸屬模塊定時向非歸屬模塊同步NSEI計數器,非歸屬模塊如果發現NSEI計數器與本地不一致表明有數據包丟失,于是向歸屬模塊同步NS-VC信息以恢復全局數據的一致性。圖5是NS-VC分布式管理中NS-VC模塊間數據同步的方法的流程圖,描述了模塊間數據同步的整體機制和具體實施流程,具體步驟如下5501,NS-VC管理進程模塊收到系統發送的上電消息;5502,設置用于模塊間數據同步的循環定時器Tl,初始化數據同步的緩沖區;設置用于NSEI對應計數器的模塊間同步的循環定時器T2;設置循環定時器T2用于NSEI對應計數器的模塊間同步,模塊間丟包的概率比較小,所以循環定時器T2可以適當放長。循環定時器T2是用來解決模塊間由于數據丟包引起的模塊間數據不一致問題;在業務載荷正常的情況下,模塊數據基本不會丟包。只有在業務載荷過重,系統資源不夠的情況(比如消息隊列滿)才會產生數據丟包。由于業務載荷過重的情況出現概率較小,所以不用頻繁的通過NSEI對應計數器處理丟包問題。另外,T2時長太短會增加模塊間的消息流量。根據經驗值T2時長取30秒。S503,NS-VC管理進程模塊檢測到NS-VC的歸屬模塊的NS-VC信息發生變化,對NS-VC信息進行更新后將NSEI與之對應的計數器更新;接著判斷所述緩沖區是否已經填滿,如果是,則將緩沖區數據打包發給其它所有需要的模塊(其它非歸屬模塊)并清空緩沖區后,將更新后的所述NS-VC信息中NS-VC模塊需要同步的關鍵信息寫入所述緩沖區;S504,如果NS-VC管理進程模塊收到所述Tl的超時消息,則歸屬模塊將緩沖區數據打包發送給其它非歸屬模塊,接著清空緩沖區;此時,數據同步是單向廣播式的,不需要其它非歸屬模塊的響應。5505,非歸屬模塊收到歸屬模塊同步的NS-VC的數據包后,將數據包解包,更新本模塊NS-VC對應的信息,同時更新NSEI與之對應的計數器;5506,如果NS-VC管理進程模塊收到所述T2的超時消息,則NSEI對應計數器超時的歸屬模塊將所有該歸屬模塊負荷的NSEI對應計數器打包發送給其它非歸屬模塊;5507,非歸屬模塊收到歸屬模塊同步的NSEI對應計數器后,首先將收到的計數器與本地計數器比較,如果一致則直接退出;否則說明NSEI計數器不一致,非歸屬模塊向歸屬模塊發送請求消息,請求同步該NSEI對應計數器下所有的NS-VC信息;所述請求消息中可以攜帶單個NSEI或者多個NSEI。S508,歸屬模塊收到其它非歸屬模塊發送的請求消息后,首先從請求消息中解析出NSEI,然后將該NSEI的所有NS-VC信息(NS-VC組)和NSEI計數器打包發給其它非歸屬模塊;S509,其它非歸屬模塊收到歸屬模塊因NSEI計數器不一致而同步的NS-VC數據包后,更新本地的NS-VC信息,最后修改NSEI計數器與歸屬模塊的計數器一致。本發明的數據同步方法有效控制了系統中的消息量,對系統的沖擊降低;本發明的方法還能夠克服模塊間數據同步丟包問題,使系統能夠自動恢復處理系統中出現的不一致數據。以上所述,僅為本發明較佳的具體實施方式,但本發明的保護范圍并不局限于此,任何熟悉該技術的人在本發明所揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應該以權利要求的保護范圍為準。權利要求1、一種網絡業務虛連接NS-VC模塊間數據同步的方法,包括以下步驟,a、設置用于模塊間數據同步的循環定時器T1,初始化數據同步的緩沖區;b、NS-VC管理進程模塊檢測到NS-VC的歸屬模塊的NS-VC信息發生變化時,對NS-VC信息進行更新后,如果所述緩沖區已經填滿,則將緩沖區數據打包發給其它非歸屬模塊并清空緩沖區后,將更新后的所述NS-VC信息寫入所述緩沖區;c、如果NS-VC管理進程模塊收到所述循環定時器T1的超時消息,則歸屬模塊將緩沖區數據打包發送給其它非歸屬模塊,非歸屬模塊收到歸屬模塊同步的NS-VC的數據包后,將數據包解包,更新本模塊NS-VC對應的信息,完成模塊間數據同步。2、如權利要求l所述的方法,其特征在于,所述步驟a中包括,NS-VC管理進程模塊收到系統發送的上電消息后,設置用于模塊間數據同步的循環定時器Tl,初始化數據同步的緩沖區,同時設置用于網絡業務實體標識符NSEI對應的計數器的才莫塊間同步的循環定時器T2。3、如權利要求2所述的方法,其特征在于,所述步驟b中,NS-VC管理進程模塊檢測到NS-VC的歸屬模塊的NS-VC信息發生變化時,對NS-VC信息進行更新后將NSEI對應的計數器更新。4、如權利要求2所述的方法,其特征在于,所述步驟c中,如果NS-VC管理進程模塊收到所述循環定時器Tl的超時消息,則歸屬模塊將緩沖區數據打包發送給其它非歸屬模塊,接著清空所述緩沖區。5、如權利要求2所述的方法,其特征在于,所述步驟c中,所述歸屬模塊將緩沖區數據打包發送給其它非歸屬模塊是單向廣播式,不需要其它非歸屬模塊的響應。6、如權利要求2所述的方法,其特征在于,所述步驟c中,所述非歸屬模塊收到歸屬模塊同步的NS-VC的數據包后,將數據包解包,更新本模塊NS-VC對應的信息,同時更新NSEI對應的計數器。7、如權利要求2所述的方法,其特征在于,還包括步驟,d、如果NS-VC管理進程模塊收到所述循環定時器T2的超時消息,則NSEI對應的計數器超時的歸屬模塊將所有該歸屬模塊負荷的NSEI對應的計數器打包發送給其它非歸屬模塊;e、其它非歸屬模塊收到歸屬模塊同步的NSEI對應的計數器后,首先將收到的計數器與本地計數器比較,如果不一致,則其它非歸屬模塊向歸屬模塊發送請求消息,請求同步該NSEI對應計數器下所有的NS-VC信息;f、歸屬模塊收到其它非歸屬模塊發送的請求消息后,從請求消息中解析出NSEI,然后將該NSEI的所有NS-VC信息和NSEI計數器,打包發給其它非歸屬模塊;g、其它非歸屬模塊收到歸屬模塊因NSEI計數器不一致而同步的NS-VC數據包后,更新本地的NS-VC信息,最后修改NSEI計數器與歸屬模塊的計數器一致。8、如權利要求7所述的方法,其特征在于,所述步驟e中,所述請求消息中攜帶單個NSEI或者多個NSEI。9、如權利要求7所述的方法,其特征在于,所述步驟e中,非歸屬模塊收到歸屬模塊同步的NSEI對應計數器后,將收到的計數器與本地計數器比較,如果一致則直接退出。全文摘要一種NS-VC模塊間數據同步的方法,設置用于模塊間數據同步的循環定時器,初始化數據同步的緩沖區;NS-VC管理進程模塊檢測到NS-VC歸屬模塊的NS-VC信息發生變化時,對NS-VC信息更新后,若緩沖區已滿,則將緩沖區數據打包發給其它非歸屬模塊并清空緩沖區后,將更新的NS-VC信息寫入緩沖區;如果NS-VC管理進程模塊收到循環定時器的超時消息,則歸屬模塊將緩沖區數據打包發送給其它非歸屬模塊,非歸屬模塊收到歸屬模塊同步的NS-VC的數據包并解包后,更新本模塊NS-VC對應的信息,完成數據同步。本發明可有效控制系統消息量,降低對系統沖擊,克服模塊間數據同步丟包問題,自動恢復系統中出現的不一致數據。文檔編號H04L7/00GK101162989SQ200710187880公開日2008年4月16日申請日期2007年11月14日優先權日2007年11月14日發明者江熊申請人:中興通訊股份有限公司