《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于CORBA的電信計費系統(tǒng)的研究
基于CORBA的電信計費系統(tǒng)的研究
劉 艷1 覃中平1 史澤兵1 苗世洪1 宋宇鵬2
1. 武漢華中科技大學(xué)(430074); 2. 深圳傲天信息技術(shù)(深圳)有限公司(518057)
摘要: 提出了一種新型的基于CORBA的分布式開放多層體系結(jié)構(gòu)的計費系統(tǒng)設(shè)計方案,給出了詳細的智能代理設(shè)計過程和負載平衡策略。
Abstract:
Key words :

摘   要: 提出了一種新型的基于CORBA的分布式開放多層體系結(jié)構(gòu)的計費系統(tǒng)設(shè)計方案,給出了詳細的智能代理設(shè)計過程和負載平衡策略。
關(guān)鍵詞: 計費系統(tǒng)  CORBA技術(shù)  智能代理  負載平衡

  隨著電信行業(yè)市場的快速發(fā)展,電信技術(shù)日新月異,用戶群體及其相應(yīng)的通信需求快速增長,這使得國內(nèi)電信計費系統(tǒng)面臨著巨大的壓力。傳統(tǒng)模式的計費系統(tǒng)在實際應(yīng)用中已暴露出一些問題。如:系統(tǒng)的負載不均衡,面對業(yè)務(wù)量迅猛增加,系統(tǒng)的數(shù)據(jù)流量和計算強度也會相應(yīng)增大,從而使計費系統(tǒng)的性能降低,影響電信業(yè)務(wù)服務(wù)的質(zhì)量;系統(tǒng)的可擴展性較差,不支持廣闊的通信方式和具有明確潛在發(fā)展需求的業(yè)務(wù),一旦現(xiàn)有的機制發(fā)生改變,系統(tǒng)將很難滿足電信運營商提出的需求。為此,本文提出一種基于CORBA的分布式開放多層體系結(jié)構(gòu)的新一代電信計費系統(tǒng)。這種系統(tǒng)不僅具有良好的可擴展性和靈活性,而且實現(xiàn)了系統(tǒng)的負載平衡,從而能夠滿足服務(wù)客戶和自身管理的需求,提高電信企業(yè)的綜合素質(zhì)。
1  計費系統(tǒng)的功能結(jié)構(gòu)
  電信計費系統(tǒng)按模塊化的組件思想來設(shè)計,根據(jù)各功能模塊所起作用可將它們分為四個層次:網(wǎng)絡(luò)設(shè)備層、系統(tǒng)設(shè)備接口支持層、系統(tǒng)業(yè)務(wù)處理層和系統(tǒng)管理層。圖1為系統(tǒng)功能結(jié)構(gòu)。

  (1)網(wǎng)絡(luò)設(shè)備層主要是各種各樣的網(wǎng)絡(luò)設(shè)備、連接設(shè)備等,它們是生產(chǎn)系統(tǒng)的組成部分,用來處理各種業(yè)務(wù)的原始數(shù)據(jù)。(2)系統(tǒng)設(shè)備接口支持層主要負責(zé)對各種設(shè)備提交的業(yè)務(wù)請求進行響應(yīng)(如RADIUS服務(wù)器)。(3)系統(tǒng)業(yè)務(wù)處理層主要處理各種業(yè)務(wù)數(shù)據(jù),包括數(shù)據(jù)庫、計費子系統(tǒng)和賬務(wù)子系統(tǒng)等。這些子系統(tǒng)又分別包含了對業(yè)務(wù)的支持功能模塊,它們與具體的業(yè)務(wù)操作設(shè)備相連,通過Mediation對上層提供一致的數(shù)據(jù)格式和控制接口。(4)系統(tǒng)管理層主要處理業(yè)務(wù)的統(tǒng)計分析、業(yè)務(wù)的快速生成、整個系統(tǒng)的運行管理和維護以及用戶的業(yè)務(wù)受理等,為系統(tǒng)提供外部的應(yīng)用接口。
  由圖1可以看出計費系統(tǒng)的規(guī)模大,處理流程十分復(fù)雜;承載的業(yè)務(wù)種類多,涉及眾多網(wǎng)絡(luò)設(shè)備及相關(guān)協(xié)議;數(shù)據(jù)的處理量大,模塊的相互調(diào)用相當(dāng)頻繁等。這些都是傳統(tǒng)模式的計費系統(tǒng)很難實現(xiàn)的。
2  基于CORBA的計費系統(tǒng)軟件架構(gòu)
  CORBA是一種異構(gòu)平臺下的語言無關(guān)的對象互操作模型。它通過ORB屏蔽了底層的通信細節(jié),實現(xiàn)真正的跨平臺;通過IDL(Interface Definition Language)接口定義語言,實現(xiàn)語言無關(guān)性?;贑ORBA的計費系統(tǒng)軟件架構(gòu)如圖2所示。

  整個系統(tǒng)按照請求/服務(wù)的方式進行設(shè)計,各核心功能模塊統(tǒng)一中間層(Mediation Service Component)、業(yè)務(wù)處理層(Billing Service Component)、外部接口OMS(Out Interface Management Service)、數(shù)據(jù)訪問平臺DAP(Data Access Platform),以組件的方式連接在CORBA上,通過CORBA自身的分布式對象服務(wù)支持的功能,實現(xiàn)分布環(huán)境中的透明對象服務(wù),保證系統(tǒng)的開放性和擴展性。同時,圖中各組件之間的接口功能簡單,有利于實現(xiàn)系統(tǒng)的邊緣智能化和功能的任意組合。各核心功能模塊關(guān)鍵技術(shù)的設(shè)計思路如下:
  (1)統(tǒng)一中間層可實現(xiàn)系統(tǒng)對業(yè)務(wù)的靈活支持。前端各種業(yè)務(wù)的生產(chǎn)數(shù)據(jù)采集器Agent將采集到的由不同協(xié)議封裝的各種不同數(shù)據(jù)格式的原始設(shè)備數(shù)據(jù)提交給統(tǒng)一中間層,由統(tǒng)一中間層依據(jù)對業(yè)務(wù)分析的理解,生成統(tǒng)一的系統(tǒng)處理數(shù)據(jù)格式XDR(extended Detailed Record),即擴展的詳細記錄,從而提高系統(tǒng)運行層資源的計算能力。(2)數(shù)據(jù)訪問平臺DAP作為數(shù)據(jù)庫中間件和一組服務(wù)的集成,位于數(shù)據(jù)庫和CORBA數(shù)據(jù)總線之間,是數(shù)據(jù)操作的統(tǒng)一通道。DAP通過實現(xiàn)數(shù)據(jù)存儲與業(yè)務(wù)處理邏輯相分離,保證數(shù)據(jù)存儲與業(yè)務(wù)的無關(guān)性,有利于實現(xiàn)高性能的數(shù)據(jù)存儲事務(wù)操作。同時,該系統(tǒng)可根據(jù)需要連接多個DAP在CORBA總線上,使其能夠自動有效地實現(xiàn)負載平衡。(3)業(yè)務(wù)處理是計費系統(tǒng)的重要部分,主要包括計費管理、結(jié)算管理、賬務(wù)管理和信用管理等功能模塊。這些模塊構(gòu)建在CORBA總線上,在邏輯上和物理上是對等的,具有可重復(fù)性,可以實現(xiàn)業(yè)務(wù)處理的均衡負載,有助于新業(yè)務(wù)的擴展。(4)外部接口是一系列面向系統(tǒng)管理員、操作員和最終用戶的輔助工具集,主要提供統(tǒng)計、查詢、出賬、結(jié)算和系統(tǒng)配置等功能。因為CORBA具有語言無關(guān)性,開發(fā)人員可使用熟悉或高效的語言進行開發(fā)和實現(xiàn)外部接口,從而提高開發(fā)的效率和降低開發(fā)人員的勞動強度。同時這種語言無關(guān)的特性也有利于實現(xiàn)計費系統(tǒng)的無縫集成。(5)CORBA中間件作為計費系統(tǒng)的核心模塊,主要負責(zé)各主機間的連接和通信。在該系統(tǒng)架構(gòu)中,CORBA中間件擔(dān)當(dāng)對象Servent資源管理器的角色,為分布式應(yīng)用提供實時的、高效的、可靠的、跨越不同操作系統(tǒng)、不同網(wǎng)絡(luò)環(huán)境、不同編程語言的對象傳送服務(wù)。
  同時,CORBA中間件還構(gòu)造了一個多層結(jié)構(gòu)的應(yīng)用和開發(fā)平臺,其主要組成部分包括應(yīng)用程序開發(fā)接口SmartAgent、運行核心、負載平衡等。SmartAgent是一組功能完善的函數(shù),應(yīng)用程序通過此組函數(shù)與各個節(jié)點上的對象交換信息,獲取該節(jié)點對象提供的服務(wù);運行核心是給應(yīng)用進程提供服務(wù),對網(wǎng)絡(luò)狀態(tài)進行監(jiān)控,處理各種異常情況;負載平衡允許動態(tài)加載模塊等。
3  SmartAgent和負載平衡策略
3.1 SmartAgent
  CORBA中間件提供的是一個開發(fā)平臺,與一般的應(yīng)用程序不同,其表現(xiàn)形式主要是通過API或Class來給客戶程序調(diào)用。在基于CORBA計費系統(tǒng)中,所有服務(wù)和調(diào)用都是基于對象的,而這些對象服務(wù)程序分布在網(wǎng)絡(luò)上的大量節(jié)點上,因此當(dāng)一個節(jié)點要獲取另外一個節(jié)點的計算結(jié)果時,只需要獲取這個節(jié)點的對象服務(wù)程序的引用。依據(jù)這些特點設(shè)計了SmartAgent類圖,如圖3所示。

  圖3說明了一個節(jié)點通過SmartAgent獲得另外一個節(jié)點的引用過程。在SmartAgent類中存在一個Object_Group_Factory的對象,此對象封裝了“各類對象引用集合”的管理和操作,其中resolve( )可以得到一個“引用集合”的指針,Make_group( )可以創(chuàng)建一個“引用集合”。而“引用集合”Object_Group負責(zé)同一類引用的管理和操作,其中Resolve_with_id( )可以獲得該集合中的一個元素,Bind( )可以將一個元素插入到該集合中,Unbind( )可以把一個元素從該集合中刪除。
  SmartAgent的作用主要有二點:(1)屏蔽底層ORB的編程細節(jié)。當(dāng)客戶端要獲得一個引用時,客戶程序不需要了解CORBA編程細節(jié)和底層通信問題,只需調(diào)用SmartAgent的resolve( )方法就可得到,或直接利用數(shù)據(jù)路由調(diào)用SmartAgent的Do( )方法。(2)為實現(xiàn)靈活的負載平衡策略提供條件。SmartAgent在初始化時和各個需要通信的模塊預(yù)先建立多個數(shù)據(jù)通道,此數(shù)據(jù)通道的表現(xiàn)形式為Object_Group_
Factory類。當(dāng)客戶端請求和另外的模塊進行通信時,SmartAgent自動從自己的對象引用池中根據(jù)系統(tǒng)配置的負載平衡策略找出空閑的引用,交給客戶程序使用。若客戶程序發(fā)現(xiàn)引用已失效,SmartAgent將自動從LoadBalance服務(wù)器中重新取得對象引用。
3.2 負載平衡策略
  負載平衡策略是解決分布式系統(tǒng)可擴展性的有效方法之一,它主要對已分配給各節(jié)點的任務(wù)進行重新調(diào)度,并通過進程遷移(又稱任務(wù)遷移),使各節(jié)點負載大致相等。
  基于CORBA中間件的負載平衡策略如下:所有服務(wù)接口在“LoadBalance服務(wù)器中注冊”,對每個Servent的method都有一個負載因子??蛻舳嗽诔跏蓟瘯r,一次性調(diào)用SmartAgent從LoadBalance獲得所需要的所有服務(wù)對象引用。其中,每個Servent的負載情況算法為:interface的負載因子=(各個method的負載系數(shù)?鄢單位時間內(nèi)調(diào)用次數(shù))?鄢硬件系數(shù)。每個Interface會在單位時間內(nèi)將自己的負載情況統(tǒng)計出來。當(dāng)SmartAgent從LoadBalance獲取引用時,LoadBalance根據(jù)各個Servent的負載因子分配相應(yīng)的引用。
  負載平衡策略的IDL描述如下:
      module LoadBalance{
      typedef string Member_ID;
      typedef sequence<Member_ID> Member_ID_List;
      struct ObjMember {
      Object obj;
  Member_ID id; };
  typedef string Group_ID;
  typedef sequence<Group_ID> Group_List;
  interface Object_Chain;
  interface Object_Chain_Store{
  Object_Chain make(in Group_ID);
  Object_Chain resolve(in Group_ID) raise (no_such_group);
  Group_List List( ); };
  interface Object_Chain{
  readonly attribute string id;
  void bind (in Member member_) raises (duplicate_member);
  void unbind (in Member_ID id) raises (no_such_member);
  Object resolve( ) raises (no_such_member);
  Object resolve_with_id (in Member_ID id) raises (no_such_member);
  Member_ID_List members( );
  void destroy( ); }; }
4  結(jié)  論
  綜上所述,基于CORBA的電信計費系統(tǒng)有如下特點:支持跨平臺和語言無關(guān)的特性,能夠滿足電信級的多平臺、多語言的復(fù)雜分布式計算環(huán)境的要求;具有良好的可擴展性和靈活性,不僅有利于滿足電信用戶的新需求,而且有利于電信運營商自身推廣新業(yè)務(wù)和改善經(jīng)營機制;靈活有效的負載平衡策略,使系統(tǒng)自動實現(xiàn)了負載的均衡,有助于增強系統(tǒng)的穩(wěn)定性和提高系統(tǒng)的性能。目前,該系統(tǒng)已經(jīng)在湖北聯(lián)通運營,效果良好。
參考文獻
1   李光.計費系統(tǒng).電信企業(yè)競爭的焦點.軟件世界,2002;(1)
2   Otte R著,李師賢譯校.CORBA教程:公共對象請求代理體系結(jié)構(gòu).北京:清華大學(xué)出版社,1999
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。