电信计费系统的设计与实现.docx
《电信计费系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《电信计费系统的设计与实现.docx(43页珍藏版)》请在冰豆网上搜索。
电信计费系统的设计与实现
本科毕业设计说明书
题目:
电信计费系统的设计与实现
院(部):
计算机科学与技术学院
专业:
网络工程
班级:
姓名:
学号:
指导教师:
完成日期:
摘要
在电信运营系统中,电信计费系统是主要的支撑系统,占有重要地位。
计费系统能否有效、安全地运行,在很大程度上影响着电信运营系统本身的运行效率和信誉。
计费系统历来都是电信运营和管理部门重点建设和发展的系统之一。
电信计费系统是一个大型项目,分为九个模块,提供了强大的权限管理、用户管理、账单管理和资费管理。
在这个项目中,本人主要负责资费管理模块的设计与实现工作。
为了使程序更加高效,数据库采用的是轻量级的MYSQL,在程序中除了实现了资费的浏览、增加、查询、修改、删除等功能,还用Hibernate实现了分页功能。
同时,为了给程序解耦合,采用了Spring的架构。
关键字:
电信计费;资费管理;MYSQL;Hibernate;Spring
TheSystemofTelecommunicationBilling
ABSTRACT
TelecommunicationschargingsystemisamajorsupportandimportsystemintheTelecommunicationsOperationChargingManagementSystem.TheefficiencyandcredibilityoftherunningofTelecommunicationsOperationChargingManagementSystemisdeeplyinfluencedbytheavailabilityandsecurityofthechargingsystem,whichisoneofthemostimportantsystemconstructedbyTelecommunicationsOperationandManagementdepartment.
Telecommunicationschargingsystemisalarge-scaleprojectwithninemodulesprovidinguserswithsuchpowerfulfunctionsaspermissionmanagement,usermanagement,billingmanagementandchargingmanagement.Iamresponsibleforthedesignandimplementationofchargingmanagementmoduleinthisproject.
Inordertomakethewholesystemmoreefficiently,lightweightMYSQLischosenasit’sDBMSandpagingfunctionisrealizedbytheHibernateframeworkandtheSpringframeworkisusedtouncoupleproceduresoftheprogramexceptforsuchoperationsasbrowsing,adding,querying,modifyinganddeletingofthetelecommunicationschargingandsoon.
KeyWords:
TelecomCharging;FeesManagement;MYSQL;Hibernate;Spring
1前言
1.1背景
我国目前对电信业务的计费处理在体制上多是以分散处理方式进行的,在技术上是以脱机按月处理方式进行的。
随着电信业务量的急剧增长,电信网中各种新业务不断开放,使得老的电信计费处理方式即脱机计费和分散计费愈来愈显露出一些矛盾。
脱机按月处理维护管理水平低、处理时间长、自动化程度差、计费错误多;同种业务分散处理设备重复投资、结算困难、管理复杂、管理部门难以掌握大网的运营状况;同一地区多种业务分散处理造成多种收费面对用户,难以使用户获得满意的服务;多个计费系统难以协调统一,不能灵活适应业务变化及开发新业务的要求。
另外,近年来邮电体制进行改革,分散计费也不利于未来各种电信业务专营公司和各地电信公司之间的摊分结算。
解决上述计费中的矛盾要从两方面下手,一是建立集中计费体制,二是变脱机按月计费为联机实时计费。
而集中计费需要联机计费这一技术手段来实现。
原邮电部电信总局针对这种情况,并为适应电信业务未来发展的需要,决定建立“全国电信计费结算中心和各省计费结算中心”,用集中计费结算的方式解决目前分专业分散计费结算中存在的问题,并为开发各种新业务打下基础。
此外,电总还准备出台关于联机集中计费的一系列技术体制和技术规范,指导计费体制上和技术上的变革。
1.2改进
旧有的计费系统面临着如下的挑战:
业务对象日新月异和数量的急剧膨胀,以及随之而来的技术手段的重大革新。
业务的多样性使得计费需要处理的业务对象从数量上急剧扩大,同时,用户规模持续增长也是显见的,日处理单据亿级的系统成为处理的基本要求。
传统上,解决集中海量数据计费的技术手段基本上采取了以文件为操作对象,通过串行逻辑、行处理的方式来加大批处理能力,然而这样的做法也日显力不从心。
这许许多多的矛盾不断地挤压着旧有计费体系已然脆弱的架构。
新一代的计费已从被动的后台系统即网络上的所有活动完成之后才开始工作发展成为在提供服务和从服务中获得收益以及降低成本与提高运行效率方面扮演更为主动的角色。
运营商、内容提供商和分销商需要投资这样的系统,从而在瞬息万变的市场中有效地开展竞争。
电信计费系统已不再是被动的后台系统,而其作为整个电信行业的核心竞争力所在的地位日益巩固,已经成为整个电信系统的灵魂。
它能有效地提供服务,降低运营成本,提高运营效率。
无论是运营商、内容提供商还是各分销商必须给予它足够的重视,才能在群雄逐鹿中占居有利地位。
1.3意义
伴随着电信运营企业各大阵营的形成,电信业的竞争的白热化,以及"以业务为导向,以客户为中心"的理念的形成,电信业务正向多样化、个性化的方向发展,同时随着三网融合的深入,3G网在全国部分省、区直辖市正如火如荼的展开,业务之间的交融也更加复杂,电信增值业务正在兴起,电信业务正向多样化、个性化的方向发展。
这都对计费系统提出了新的更高的要求。
作为运营商组织和管理业务的重要支撑系统,计费系统要能为开展丰富的业务提供方便,并保持计费数据的准确无误,才能提高工作效率,降低维护成本,并为及时开展业务提供有效支撑。
从消费者的角度来讲,电信业务发展到今天,竞争格局的形成让消费者有了更多的选择,同时电信消费在整个消费比例中所占的比例也越来越大,消费者的消费心理日渐成熟,他们很关心电信业务的资费,希望了解每一个消费细节。
因此,电信运营商只有做到计费的准确无误,才能保证业务的正常发展,取得消费者的信任。
如今,计费系统已经成为反馈用户信息最直接、信息量最大的信息源。
计费系统与网管系统、CRM系统等之间的联系日益紧密,成为这些系统的重要信息源,因此计费系统还应该能与这些系统无缝连接,是电信支撑系统中的重要一环。
本课题所要研究的电信计费系统之资费管理模块,正是以此为出发点,通过对这一课题的学习和研究,可以将电信计费系统资费管理的基本原理、实现流程等展现出来,并可作为对新的综合电信计费系统软件资费管理的一种探索来学习和研究,也可以顺带了解整个电信实时计费的工作流程,具有一定的现实意义。
1.4章节安排
本文的章节安排如下:
第一章:
前言,本章主要介绍了整个项目的背景、作用及意义。
第二章:
系统分析,本章主要介绍了整个项目的技术可行性、经济可行性及用到的开发技术。
第三章:
系统需求,本章主要对项目进行了总体介绍、介绍了各模块的功能。
第四章:
系统总体设计,本章主要介绍了整个项目的数据实体设计、数据库设计及架构设计。
第五章:
详细设计,本章主要介绍了资费管理模块的设计与实现。
第六章:
系统测试,本章主要介绍了测试目的、测试用例和测试结果及分析。
第七章:
总结。
2系统分析
2.1技术可行性
2.1.1企业目前系统环境
结构:
后台服务+B/S结构
操作系统:
window/Unix/Linux任意操作系统支持
浏览器:
主流浏览器支持
数据库:
MySQL/Oracle任意数据库支持
应用服务器:
Tomcat/Weblogic/Websphere任意应用服务器支持
2.1.2系统开发环境
结构:
后台服务+B/S结构
操作系统:
Linux
浏览器:
主流浏览器(IE,firefox等)
数据库:
MYSQL
应用服务器:
UNIX
开发工具:
MyEclipse
开发语言:
JAVA
2.2经济可行性
2.2.1服务器
本系统采用UNIX操作系统,UNIX操作系统是一个开源的安全系统,正版价格的产品,连一般普通客户都可以负担。
企业可以根据自己的具体情况购买适合自己的主机服务器。
这需要一定的花费。
2.2.2数据库
对于本系统,因为没有特殊需求,免费的MYSQL数据库足以支持。
这也为项目节省了一定的费用。
2.2.3应用软件开发
随着消费者对于电信服务的要求越来越高,业务对系统的要求也不断提升,包括交互界面的人性化处理和前台子服务系统的业务要求。
因此需要功能强、效率高的现在电信计费系统。
综上所述,计费系统已经成为反馈用户信息最直接、信息量最大的信息源,作出上述的花费对于面对当今电信行业的白热化竞争,是值得的。
2.3开发技术简介
(1)数据库:
MYSQL
MYSQL是一个小型关系型数据库管理系统。
MYSQL被广泛地应用在Internet上的中小型网站中。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MYSQL作为网站数据库。
(2)开发工具:
MyEclipse
使用MyEclipse做开发,为编程人员带来了很多方便,使用MyEclipse软件不需要对程序进行编译,该工具在做保存时自动进行编译。
MyEclipse还可以打开数据库的连接,只需加入相应的jar包就可以对软件进行开发。
(3)开发语言:
JAVA
选择JAVA语言进行开发,JAVA是面向对象的语言,是对现实生活的抽象。
JAVA语言是现实世界模型的自然延伸。
现实世界中任何实体都可以看作是对象。
对象之间通过消息相互作用。
JAVA语言的三大特性:
封装、多态性和继承。
JAVA是一种跨平台,适合于分布式计算环境的面向对象编程语言。
(4)Struts架构
Struts是一个为开发基于模型(Model)-视图(View)-控制器(Controller)(MVC)模式的应用架构的开源框架,是利用JavaServlet和JSP构建Web应用的一项非常有用的技术。
由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,因而吸引了众多的开发人员的关注。
首先事件是指从客户端页面(浏览器)由用户操作触发的事件,Struts使用Action来接受浏览器表单提交的事件,这里使用了Command模式,每个继承Action的子类都必须实现一个方法execute。
Struts是一个基于SunJ2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。
Struts把Servlet、JSP、自定义标签和信息资源(messageresources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间。
(5)Spring框架
Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。
框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。
它是一个基于IoC和AOP的构架多层j2ee系统的框架,但它不强迫你必须在每一层中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;它实现了很优雅的MVC,对不同的数据访问技术提供了统一的接口,采用IoC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现TranscationManagement。
Spring能消除使用各种各样格式的属性定制文件的需要,在整个应用和工程中,可通过一种一致的方法来进行配置。
曾经感到迷惑,一个特定类要查找迷幻般的属性关键字或系统属性,为此不得不读Javadoc乃至源编码吗?
有了Spring,你可以很简单地看到类的JavaBean属性。
倒置控制的使用(在下面讨论)帮助完成这种简化。
(6)Hibernate框架
Hibernate是一种Java语言下的对象关系映射解决方案。
它是一种自由、开源的软件。
它用来把对象模型表示的对象映射到基于SQL的关系模型结构中去,为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。
Hibernate不仅管理Java类到数据库表的映射(包括从Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间。
它的设计目标是将软件开发人员从大量相同的数据持久层相关编程工作中解放出来。
无论是从设计草案还是从一个遗留数据库开始,开发人员都可以采用Hibernate。
Hibernate对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,它既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。
最具革命意义的是,Hibernate可以在应用EJB(EnterpriseJavaBeans是Java应用于企业计算的框架)的J2EE架构中取代CMP,完成数据持久化的重任。
Hibernate使用Java反射机制而不是字节码增强程序来实现透明性。
Hibernate的性能非常好,因为它是个轻量级框架。
映射的灵活性很出色。
它支持各种关系数据库,从一对一到多对多的各种复杂关系。
3系统需求
3.1项目总体介绍
中国电信运营商新增一项OpenLab(开放实验室)出租业务,即该电信运营商提供基于Unix平台的实验室环境,选择使用这种业务的用户能够远程登录到实验室中做基于这个实验室环境的一些工作和实验。
运营商希望借助先进的计算机技术对访问实验室的用户进行管理和计费,由此实现对此项业务运营的支持与管理。
3.2系统部署结构模型
图3.2系统部署结构模型图
3.3功能模块结构模型
图3.3电信营运功能需求结构图
3.4操作功能菜单结构模型
图3.4操作功能菜单结构模型
3.5系统功能具体描述
系统的各个模块以及它们的子模块的功能做具体的描述如下:
3.5.1采集系统
本系统是一个计费的系统,要想对用户进行准确的收费,首先必须能够获得用户使用开放实验室的准确的使用记录,采集子系统正是为了获取这些记录而提供的。
获取用户使用实验室的准确记录有三种情况:
(1)利用操作系统的自身功能:
开放实验室是一个Unix服务器,Unix服务器本身就具有记录系统日志的功能。
用户每次登录和退出Unix服务器的信息都会被自动保存到一个在线日志文件/var/adm/wtmpx中。
采集系统通过调用Unix系统函数来读取这个日志文件中的内容,然后对读取到的内容进行整理,整理为方便计费的数据,其中包括登录名、登录时间或登出时间等作为计费依据的数据。
最后把这些数据存入数据库中,以备其他系统使用。
为了使读取的数据量不至于过大,采集系统会每小时定时执行一次,每次只采集上一个小时时间段之内的数据。
(2)利用开放实验室的个人web主页功能(personalwebhosting):
只要用户在其主目录(home)下创建了public_html目录,采集系统通过扫描目录public_html就可以产生计费依据。
访问开放实验室的web信息:
用户每次访问web服务器,web服务器都会在access.log中记录下相应的信息,如客户端的ip和被访问的URL等。
通过分析web服务器的访问日志产生计费依据。
(3)使用开放实验室的e-mail功能:
根据邮箱的个数产生计费依据。
说明:
(2),(3)的情况目前不做处理,提供扩展接口便于今后扩展。
3.5.2整合系统
采集系统定时将用户使用服务器的数据存入到了数据库中,但这些数据都是流水帐的数据,是用户每次使用UNIX操作系统的用时。
如果用户量大,用户频繁地登入/出,将产生大量的数据,不便于将来生成用户的月账单和对开放实验室的使用情况进行月统计和年统计,因此,出现了整合系统。
整合是将某个用户在某一时段内所用机时求和后形成一条记录。
整合系统具体整合规则如下:
(1)每小时定时整合一次,生成以小时为单位统计的数据,程序总是每小时定时整合前一小时的数据。
(2)每天定时整合一次,生成以天为单位统计的数据,程序总是每天定时整合前一天的数据.
(3)每个月定时整合一次,生成以月为单位统计的数据,程序总是每个月定时整合前一个月的数据。
3.5.3用户管理系统
用户管理子系统就是对用户的帐务帐号和业务帐号进行管理。
具有用户管理权限的管理员登陆成功后,首先可以开通帐务帐号,暂停帐务帐号,恢复帐务账号,删除帐务账号,修改用户真实信息等。
由于用户的一个帐务帐号会对应多个业务帐号,所以对账务账号的操作会级联影响关联的所有业务帐号。
其次,具有用户管理权限的管理员还可以开通业务帐号,但用户要想开通一个业务帐号,前提是必须拥有一个帐务帐号。
在开通业务帐号时,先由用户为这个业务帐号选择一种资费方式,选择一台开放实验室,然后把选择好的信息提供给管理员,再由管理员将信息录入并保存,这个业务帐号会被保存到用户选择的开放实验室的服务器上,对于开通好的业务帐号也是由具有用户管理权限的管理员来管理的,如暂停业务帐号,恢复业务帐号,删除业务帐号,修改业务帐号密码。
3.5.4资费管理系统
使用服务,就要交纳费用,这是天经地义的事情。
那么对于开放实验室的用户也不例外,他们使用了开放实验室服务,同样要交费。
在我们这个系统中这个费用会和两个因素有关:
一个是用户使用服务的时间长度,
另一个是用户选择的收费标准,如月租费为:
30元,每小时使用费为:
3元等。
这个收费的标准在本系统中称为资费。
资费管理子系统就是用来管理资费的。
具有资费管理权限的管理员登陆成功后,可以添加新的资费,查询所有的资费,可以修改现有的资费信息,还可以删除资费。
特别要注意的是:
由于对资费的修改会影响选择了这种资费的用户要交纳的费用,所以在修改资费信息前要事先通知所有已经选择了这个资费的用户;只有当没有任何用户选择某个资费了,这个资费才能被删除掉。
3.5.5管理员管理系统
对本系统的各个子系统的访问都是受权限控制的,只有拥有了访问权限,才能使用子系统。
在本系统中存在着三类使用者:
其一是用户,即使用开放实验室的人,他们默认具有使用用户自服务系统的权限。
其二是超级管理员,即对本系统进行管理的人,并具有最高的管理权限,他可以使用除用户自服务以外的所有子系统。
这个超级管理员只有一个,是系统初始建立时就提供好的。
其三是普通管理员,即对本系统中的部分子系统进行管理的人,这些人是由超级管理员进行管理的,他们具有的权限也是由超级管理员赋予的。
管理员管理系统就是超级管理员来管理普通管理员。
超级管理员登陆成功后,可以增加新的普通管理员,同时为他分配一些权限,可以修改普通管理员的信息,可以查询所有的管理员信息,可以删除某些管理员。
3.5.6帐单查询系统
具有帐单查询权限的管理员可以利用此子系统对所有用户的月账单进行查询。
此子系统不仅提供对某个帐务帐号上产生的总的费用进行查询,还提供对某个帐务帐号上的每个业务帐号上产生的费用明细进行查询。
具体操作如下:
(1)月账单查询
具有账单查询角色的管理员进入本系统,登录成功后,可以执行如下查询操作:
根据输入的月份查询所有用户这个月的费用信息(提供分页显示)。
根据输入的月份和其它组合条件查询符合条件的用户这个月的费用信息(提供分页显示)。
根据输入的月份和用户的帐务帐号的用户名查询某个用户这个月的费用信息。
(2)月账单明细查询
具有账单查询角色的管理员进入本系统,登录成功后,首先查询出用户帐务帐号的合计费用信息,然后在这个信息上执行查询明细的操作,系统会显示该帐务帐号上所有业务帐号上发生的所有费用的明细信息。
3.5.7帐务查询系统
具有帐务查询的管理员可以使用此子系统对开放实验室的使用情况进行查询。
此子系统可以提供以月为周期的查询,也可以提供以年为周期的查询。
具体操作如下:
月帐务查询:
具有月账务查询角色的管理员进入本系统,登录成功后,可以执行如下查询操作:
(1)根据输入的月份查询所有开放实验室这个月被使用的总的时长信息。
(2)在上一个查询的基础上查看某个实验室这个月每一天的时长信息。
年帐务查询:
具有年账务查询角色的管理员进入本系统,登录成功后,可以执行如下查询操作:
(1)根据输入的年份查询所有开放实验室这一年被使用的总的时长信息。
(2)在上一个查询的基础上查看某个实验室这一年每个月的时长信息。
3.5.8用户自服务系统
用户自服务系统可以方便地供用户查询自己的账单和修改自己的个人信息。
这个子系统是唯一的一个用户可以使用的子系统。
具体操作如下:
查询自己的月帐单:
用户进入本系统,使用自己的帐务帐号登录成功后,可以执行如下查询操作:
(1)根据输入的月份查询自己这个月的费用信息。
(2)在上一个查询的基础上查看这个月费用明细。
修改自己的个人信息:
用户进入本系统,使用自己的帐务帐号登录成功后,可以自行修改自己的个人信息。
3.5.9权限管理系统
对本系统的各个子系统的访问都是受权限控制的,权限决定了使用者可以执行的操作,如一个使用者拥有用户管理权限,他就可以执行用户管理的操作。
目前系统已有的权限包括:
用户管理权限,资费管理权限,管理员管理权限,账单管理权限,帐务管理权限,用户自服务权限,权限管理权限。
今后,系统可能会扩展新的功能,也就会增加新的操作,这个操作就要对应一种新的权限;也有可能删除某一项不再被使用的操作,这样,对应的权限也应该被删除。
因此,为了对权限能够进行灵活的管理,本系统中就提供了权限管理系统。
在本系统中,一些使用者拥有相同的角色,拥有相同的权限,如张三和李四都是前台操作人员,都拥有用户管理权限和帐单管理权限。
角色代表着一组权限的集合。
目前系统中已有的角色包括:
用户、普通管理员和超级管理员。
今后,要想根据需要灵活地管理角色,也是通过权限管理系统完成的。
4系统总体设计
4.1软件结构图
图4.1软件结构图
4.2数据实体设计
4.2.1权限与管理员数据实体类图
图4.2权限与管理员数据实体类图
类说明:
Module类,系统模块信息实体,modules表
Operation类,模块操作信息实体,operations表
Right类,权限信息实体,由模块与操作构成rights表
Role类,角色信息实体,roles表
RoleRight类,角色权限信息实