基于CORBA模型下的电信计费系统设计方案

描述

电信计费综合管理系统在电信市话业务综合管理系统中占有着重要的地位。传统的计费系统针对不同的业务开发相应的计费软件,当费率调整或计费规则发生变化时,必须对原有软件做大的修改。当业务扩充时,则要重新开发相应的软件功能模块。软件维护人员工作量大,系统容易出现差错。这种系统已经不能适应电信业务飞速发展的需要。针对这种状况,银川市电信局在"九七"工程实施时,重新开发了满足"九七"工程技术规范的新计费系统。对计费系统的设计,要求它形成一个综合计费平台,不仅能为用户提供全方位的计费服务,同时还必须适应电信业务发展的需要,满足电信业务种类繁多、新业务增加快等发展要求,因此系统必须具备灵活性和易扩充性,功能涵盖所有的电信业务,最终实现对所有业务的统一计费结算。

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)接口定义语言,实现语言无关性。基于CORBA的计费系统软件架构如图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都有一个负载因子。客户端在初始化时,一次性调用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的电信计费系统有如下特点:支持跨平台和语言无关的特性,能够满足电信级的多平台、多语言的复杂分布式计算环境的要求;具有良好的可扩展性和灵活性,不仅有利于满足电信用户的新需求,而且有利于电信运营商自身推广新业务和改善经营机制;灵活有效的负载平衡策略,使系统自动实现了负载的均衡,有助于增强系统的稳定性和提高系统的性能。统的完整性体现为建设一个面向所有电信业务的、覆盖全本地网的计费系统,提供可供用户选择的、形式多样的缴费方式,多渠道的话费查询手段。避免帐务处理中人工与自动并行的现象,实现所有业务一张帐单结算。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分