電信計費綜合管理系統在電信市話業務綜合管理系統中占有著重要的地位。傳統的計費系統針對不同的業務開發相應的計費軟件,當費率調整或計費規則發生變化時,必須對原有軟件做大的修改。當業務擴充時,則要重新開發相應的軟件功能模塊。軟件維護人員工作量大,系統容易出現差錯。這種系統已經不能適應電信業務飛速發展的需要。針對這種狀況,銀川市電信局在"九七"工程實施時,重新開發了滿足"九七"工程技術規范的新計費系統。對計費系統的設計,要求它形成一個綜合計費平臺,不僅能為用戶提供全方位的計費服務,同時還必須適應電信業務發展的需要,滿足電信業務種類繁多、新業務增加快等發展要求,因此系統必須具備靈活性和易擴充性,功能涵蓋所有的電信業務,最終實現對所有業務的統一計費結算。
1 計費系統的功能結構
電信計費系統按模塊化的組件思想來設計,根據各功能模塊所起作用可將它們分為四個層次:網絡設備層、系統設備接口支持層、系統業務處理層和系統管理層。圖1為系統功能結構。
(1)網絡設備層主要是各種各樣的網絡設備、連接設備等,它們是生產系統的組成部分,用來處理各種業務的原始數據。(2)系統設備接口支持層主要負責對各種設備提交的業務請求進行響應(如RADIUS服務器)。(3)系統業務處理層主要處理各種業務數據,包括數據庫、計費子系統和賬務子系統等。這些子系統又分別包含了對業務的支持功能模塊,它們與具體的業務操作設備相連,通過Mediation對上層提供一致的數據格式和控制接口。(4)系統管理層主要處理業務的統計分析、業務的快速生成、整個系統的運行管理和維護以及用戶的業務受理等,為系統提供外部的應用接口。
由圖1可以看出計費系統的規模大,處理流程十分復雜;承載的業務種類多,涉及眾多網絡設備及相關協議;數據的處理量大,模塊的相互調用相當頻繁等。這些都是傳統模式的計費系統很難實現的。
2 基于CORBA的計費系統軟件架構
CORBA(Common Object Request Broker Architecture,公共對象請求代理體系結構,通用對象請求代理體系結構)是由OMG組織制訂的一種標準的面向對象應用程 序體系規范。或者說 CORBA體系結構是對象管理組織(OMG)為解決分布式處理環境(DCE)中,硬件和軟件系統的互連而提出的一種解決方案;OMG組織是一個國際性的非盈利組織,其職責是為應用開發提供一個公共框架,制訂工業指南和對象管理規范,加快對象技術的發展。
CORBA是一種異構平臺下的語言無關的對象互操作模型。它通過ORB屏蔽了底層的通信細節,實現真正的跨平臺;通過IDL(Interface Definition Language)接口定義語言,實現語言無關性?;贑ORBA的計費系統軟件架構如圖2所示。
整個系統按照請求/服務的方式進行設計,各核心功能模塊統一中間層(Mediation Service Component)、業務處理層(Billing Service Component)、外部接口OMS(Out Interface Management Service)、數據訪問平臺DAP(Data Access Platform),以組件的方式連接在CORBA上,通過CORBA自身的分布式對象服務支持的功能,實現分布環境中的透明對象服務,保證系統的開放性和擴展性。同時,圖中各組件之間的接口功能簡單,有利于實現系統的邊緣智能化和功能的任意組合。各核心功能模塊關鍵技術的設計思路如下:
(1)統一中間層可實現系統對業務的靈活支持。前端各種業務的生產數據采集器Agent將采集到的由不同協議封裝的各種不同數據格式的原始設備數據提交給統一中間層,由統一中間層依據對業務分析的理解,生成統一的系統處理數據格式XDR(extended Detailed Record),即擴展的詳細記錄,從而提高系統運行層資源的計算能力。(2)數據訪問平臺DAP作為數據庫中間件和一組服務的集成,位于數據庫和CORBA數據總線之間,是數據操作的統一通道。DAP通過實現數據存儲與業務處理邏輯相分離,保證數據存儲與業務的無關性,有利于實現高性能的數據存儲事務操作。同時,該系統可根據需要連接多個DAP在CORBA總線上,使其能夠自動有效地實現負載平衡。(3)業務處理是計費系統的重要部分,主要包括計費管理、結算管理、賬務管理和信用管理等功能模塊。這些模塊構建在CORBA總線上,在邏輯上和物理上是對等的,具有可重復性,可以實現業務處理的均衡負載,有助于新業務的擴展。(4)外部接口是一系列面向系統管理員、操作員和最終用戶的輔助工具集,主要提供統計、查詢、出賬、結算和系統配置等功能。因為CORBA具有語言無關性,開發人員可使用熟悉或高效的語言進行開發和實現外部接口,從而提高開發的效率和降低開發人員的勞動強度。同時這種語言無關的特性也有利于實現計費系統的無縫集成。(5)CORBA中間件作為計費系統的核心模塊,主要負責各主機間的連接和通信。在該系統架構中,CORBA中間件擔當對象Servent資源管理器的角色,為分布式應用提供實時的、高效的、可靠的、跨越不同操作系統、不同網絡環境、不同編程語言的對象傳送服務。
同時,CORBA中間件還構造了一個多層結構的應用和開發平臺,其主要組成部分包括應用程序開發接口SmartAgent、運行核心、負載平衡等。SmartAgent是一組功能完善的函數,應用程序通過此組函數與各個節點上的對象交換信息,獲取該節點對象提供的服務;運行核心是給應用進程提供服務,對網絡狀態進行監控,處理各種異常情況;負載平衡允許動態加載模塊等。
3 SmartAgent和負載平衡策略
3.1 SmartAgent
CORBA中間件提供的是一個開發平臺,與一般的應用程序不同,其表現形式主要是通過API或Class來給客戶程序調用。在基于CORBA計費系統中,所有服務和調用都是基于對象的,而這些對象服務程序分布在網絡上的大量節點上,因此當一個節點要獲取另外一個節點的計算結果時,只需要獲取這個節點的對象服務程序的引用。依據這些特點設計了SmartAgent類圖,如圖3所示。
圖3說明了一個節點通過SmartAgent獲得另外一個節點的引用過程。在SmartAgent類中存在一個Object_Group_Factory的對象,此對象封裝了"各類對象引用集合"的管理和操作,其中resolve( )可以得到一個"引用集合"的指針,Make_group( )可以創建一個"引用集合".而"引用集合"Object_Group負責同一類引用的管理和操作,其中Resolve_with_id( )可以獲得該集合中的一個元素,Bind( )可以將一個元素插入到該集合中,Unbind( )可以把一個元素從該集合中刪除。
SmartAgent的作用主要有二點:(1)屏蔽底層ORB的編程細節。當客戶端要獲得一個引用時,客戶程序不需要了解CORBA編程細節和底層通信問題,只需調用SmartAgent的resolve( )方法就可得到,或直接利用數據路由調用SmartAgent的Do( )方法。(2)為實現靈活的負載平衡策略提供條件。SmartAgent在初始化時和各個需要通信的模塊預先建立多個數據通道,此數據通道的表現形式為Object_Group_
Factory類。當客戶端請求和另外的模塊進行通信時,SmartAgent自動從自己的對象引用池中根據系統配置的負載平衡策略找出空閑的引用,交給客戶程序使用。若客戶程序發現引用已失效,SmartAgent將自動從LoadBalance服務器中重新取得對象引用。
3.2 負載平衡策略
負載均衡 NAT(Network Address Translation 網絡地址轉換)簡單地說就是將一個IP地址轉換為另一個IP地址,一般用于未經注冊的內部地址與合法的、已獲注冊的Internet IP地址間進行轉換。適用于解決Internet IP地址緊張、不想讓網絡外部知道內部網絡結構等的場合下。
基于CORBA中間件的負載平衡策略如下:所有服務接口在"LoadBalance服務器中注冊",對每個Servent的method都有一個負載因子??蛻舳嗽诔跏蓟瘯r,一次性調用SmartAgent從LoadBalance獲得所需要的所有服務對象引用。其中,每個Servent的負載情況算法為:interface的負載因子=(各個method的負載系數?鄢單位時間內調用次數)?鄢硬件系數。每個Interface會在單位時間內將自己的負載情況統計出來。當SmartAgent從LoadBalance獲取引用時,LoadBalance根據各個Servent的負載因子分配相應的引用。
負載平衡策略的IDL描述如下:
module LoadBalance{
typedef string Member_ID;
typedef sequence Member_ID_List;
struct ObjMember {
Object obj;
Member_ID id; };
typedef string Group_ID;
typedef sequence 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 結 論
綜上所述,基于CORBA的電信計費系統有如下特點:支持跨平臺和語言無關的特性,能夠滿足電信級的多平臺、多語言的復雜分布式計算環境的要求;具有良好的可擴展性和靈活性,不僅有利于滿足電信用戶的新需求,而且有利于電信運營商自身推廣新業務和改善經營機制;靈活有效的負載平衡策略,使系統自動實現了負載的均衡,有助于增強系統的穩定性和提高系統的性能。統的完整性體現為建設一個面向所有電信業務的、覆蓋全本地網的計費系統,提供可供用戶選擇的、形式多樣的繳費方式,多渠道的話費查詢手段。避免帳務處理中人工與自動并行的現象,實現所有業務一張帳單結算。
-
封裝
+關注
關注
126文章
7793瀏覽量
142738 -
網絡
+關注
關注
14文章
7522瀏覽量
88645 -
數據采集器
+關注
關注
1文章
129瀏覽量
14897
發布評論請先 登錄
相關推薦
評論