基于JavaEE的电信计费系统设计与开发.docx
《基于JavaEE的电信计费系统设计与开发.docx》由会员分享,可在线阅读,更多相关《基于JavaEE的电信计费系统设计与开发.docx(30页珍藏版)》请在冰豆网上搜索。
基于JavaEE的电信计费系统设计与开发
摘要
在近几十年来,中国电信行业在客户群和规模的发展上有了比较大的突破。
伴随着电信行业、计算机水平和网络技术的高速发展,电信计费系统也在不断的完善进步。
电信是比较传统的固定网络运营商,要适应市场的转变来进一步提高和改革技术,从而来形成固定网络业务的多样化和综合服务化的转变。
在电信的业务中,有一种是实验室出租业务。
用户向电信的运营商申请一个账号,就可以远程登录使用实验室。
该电信计费系统是借助先进的现代计算机技术,对访问实验室的用户进行管理和计费,为电信其他各项业务的运营管理提供收费的依据。
使用了SSH(Spring+Struts2+Hibernate)、JavaScript、和Ajax异步交互等技术开发实现。
按照软件开发的一般流程:
需求分析、概要设计、详细设计、测试、发布运行等完成的,最终使该项目达到一个商业项目标准。
关键词:
电信计费系统,B/S模式,SSH
ABSTRACT
Inrecentdecades,China'stelecomindustryincustomerbaseandthescaleofdevelopmenthasabigbreakthrough.Withthetelecommunicationsindustry,computerlevelandthehigh-speednetworktechnologydevelopment,telecombillingsystemisalsoinconstantperfectprogress.
Telecommunicationsismoretraditionalfixednetworkoperators,toadapttomarketchangestofurtherimproveandreformtechniques,andtoformafixednetworkbusinessdiversificationandcomprehensiveservicetransformation.Inthetelecommunicationsbusiness,haveakindofisthelaboratoryrentalbusiness.Usersofthetelecomoperatorstoapplyforanaccount,youcanuseremoteloginlaboratory.
Thetelecombillingsystemisbymeansoftheadvancedmoderncomputertechnology,theuserstoaccesslaboratorymanagementandbilling,forallotherbusinessoperationoftelecommunicationstoprovidethebasisforthemanagementfee.UsedSSH(Spring+Struts2+Hibernate),JavaScript,andAjaxasynchronousinteractiontechnologydevelopmentrealized.Accordingtothesoftwaredevelopmentprocessofgeneral:
demandanalysis,generaldesign,detaileddesign,testingandpublishedbytheoperationofthecomplete,finallymaketheprojecttoacommercialprojectstandards.
Keywords:
Telecombillingsystem,B/Smodel,SSH
第1章引言
1.1背景
电信计费系统自从建设开始的阶段,因为计算机的硬件的集成与计算机的性能限制,再加上软件开发难度、成本都偏高,另外还有电信业务的国有垄断性的运营模式,导致电信计费系统完善的进度缓慢[1]。
从消费者的角度来讲,电信业务发展到今天,竞争格局的形成让消费者有了更多的选择,同时电信消费在整个消费比例中所占的比例也越来越大,消费者的消费心理日渐成熟,他们很关心电信业务的资费,希望了解每一个消费细节。
因此,电信运营商只有做到计费的准确无误,才能保证业务的正常发展,取得消费者的信任。
伴随着电信行业、计算机水平和网络技术的发展,电信计费系统也在不断的完善进步。
在近几十年来,中国电信行业在客户群和规模的发展上有了比较大的突破。
电信是比较传统的固定网络运营商,要适应市场的转变来进一步提高和改革技术,从而来形成固定网络业务的多样化和综合服务化的转变。
伴随着电信运营企业各大阵营的形成,电信业的竞争的白热化,以及“以业务为导向,以客户为中心”的理念的形成,电信业务正向多样化、个性化的方向发展,同时随着三网融合入的深入,3G网在全国部分省、区直辖市正如火如荼的展开,业务之间的交融也更加复杂,电信增值业务正在兴起,电信业务正向多样化、个性化的方向发展[2]。
这都对计费系统提出了新的更高的要求。
计费系统有效、安全地运行,在很大程度上影响着电信运营系统本身的运行效率和信誉[3]。
计费系统历来都是电信运营和管理部门重点建设和发展的系统之一。
电信的计费一直是电信行业的非常重要的核心业务,作为运营商组织和管理业务的重要支撑系统,计费系统要能为开展丰富的业务提供方便,并保持计费数据的准确无误,才能提高工作效率,降低维护成本,并为及时开展业务提供有效支撑。
1.2项目技术
1)实现此项目基于Mysql、Tomcat服务器,需要PowerDesigner、Eclipse等开发工具。
2)系统设计和实现采用B/S(Browser/Server)模型,使用Spring、Struts和Hibernate框架模式,涉及的知识点有:
Html、Css、Js、Ajax、Xml、Java、Jdbc、Properties等。
3)该系统被设计为基于Web的B/S模型。
系统分四层:
展现层,业务逻辑层,服务层和持久层。
展现层负责页面的展示,主要应用JSP进行实现;服务层位于业务逻辑层与持久层之间,由Spring、Struts和Hibernate框架完成对象持久化操作;数据库层则使用Mysql提供的数据库存储系统数据[3]。
1.3项目环境
1、开发环境
◆操作系统:
WINDOWSXP
◆虚拟机:
jdk-6-win-i586
◆浏览器:
FireFox2.0
◆Web服务器:
ApacheTomcat6.0
◆数据库:
Mysql5.5
◆设计工具:
IBMRose2003
◆IDE工具:
MyEclips6.0(集成Eclipse3.3)
2、发布环境
◆操作系统:
RedHadLinux9
◆虚拟机:
jdk-6-linux-i586
◆浏览器:
IE6
◆Web服务器:
ApacheTomcat6.0
◆数据库:
MySql5.5
1.4名词解释
DMS:
数据挖掘系统(DataMiningSystem)
业务流程:
描述系统工作的总体过程。
物理结构:
描述系统各功能模块与物理设备之间的联系。
系统模块:
描述系统的功能模块。
接口设计:
设计出系统与用户,系统与外部,系统各功能模块之间的依赖关系。
用户接口:
描述系统与用户交互的依赖关系。
外部接口:
描述系统与外部其他系统间的依赖关系。
内部接口:
描述系统内部各功能模块间的依赖关系。
用户:
需要使用Unix实验室出租业务的客户,用户通过电信公司提供的帐号和密码登录指定的Unix机器,并使用Unix服务。
终端机器:
用户通过一台本地终端机器来访问我们的Unix机器,并使用Unix服务,该本地终端就是我们所说的终端机器。
在我们的程序中要记录这一终端的IP,做为向用户收费的依据之一。
登录日志文件:
在Unix机器中自动记录用户登入/登出日志的文件,该文件为:
/var/adm/wtmpx;在我们的程序中该文件也可以是程序外部指定的另一个文件。
我们的程序需要提取该文件的数据来匹配出用户登入/登出的记录,并将其作为将来的收费依据。
用户登入记录:
在登录日志文件中记录的用户登入Unix系统的日志记录,该日志记录包含用户的登录名,用户登入Unix的时刻,登录的终端机器IP等信息。
用户登出记录:
在登录日志文件中记录的用户登出Unix系统的日志记录,该日志记录包含用户的登录名,用户登出Unix的时刻,登录的终端机器IP等信息。
我们需要将用户的登入记录和登出记录匹配起来,得到一条条完整的登录信息,并计算出用户本次登录的时长。
用户的登录记录:
将用户的登入记录和登出记录按照对应关系匹配起来,形成一条完整的登录记录,登录记录中包含以下信息:
用户登录名,登入时刻,登出时刻,登录时长,登录终端机器IP等。
匹配的登入/登出记录:
等同于用户的登录记录。
未匹配的登入记录:
在登录日志文件中理论上一条登入记录跟一条登出记录匹配,但有可能在我们采集数据时用户还没有登出,所以日志文件中可能出现没有登出记录与之匹配的登入记录,这些登入记录我们将其保存在一个指定的文件中,在下次采集时再读取。
用户登录记录明细:
用来记录所有用户登录所有实验室的登录记录明细的数据结构,当采集并匹配好的数据发送给服务器后以用户登录记录明细的方式保存下来。
该明细数据的主要数据项有:
用户ID,实验室IP,用户终端IP,登入时间,登出时间,登录时长等。
用户登录记录日报表:
按日统计的某个用户登录某个实验室的登录时长记录,该记录包含的主要数据项有:
用户ID,实验室IP,日登录时长,登录月份。
用户登录记录月报表:
按月统计的某个用户登录某个实验室的登录时长记录,该记录包含的主要数据项有:
用户ID,实验室IP,月登录时长,登录年份。
用户登录记录年报表:
按年统计的某个用户登录某个实验室的登录时长记录,该记录包含的主要数据项有:
用户ID,实验室IP,年登录时长,登录年份。
第2章系统功能概要
2.1后台数据服务
后台数据服务系统(简称DMS),采集Unix机器记录的用户登入和登出的原始记录,并将这些记录解析匹配成用户的登录记录,然后发送给数据采集服务器,在服务器端将这些数据以日期为单位保存在数据库中。
然后整合这些数据形成日报表、月报表和年报表。
2.1.1数据采集
任何用户登录Unix系统,Unix系统都会记录用户的登录信息,所有用户登入/登出的信息都保存在Unix的系统日志文件中。
数据采集系统就是通过读取Unix系统日志文件中用户登入/登出信息,并找出成对的登入/登出记录,得到用户登录实验室的登入时刻、登出时刻、登录时间长度等电信用户收费需要使用的数据,最后把匹配处理好的数据保存成电信工作人员可以阅读的文本文件然后将数据写入数据库日志表,做为电信收费依据。
用户登录Unix系统的日志记录文件在Unix的/var/adm目录下,文件名是wtmpx,日志记录文件是一个二进制文件,在Unix中可以使用last指令查看,last命令格式为:
last[-a][-nnumber|-number][-ffilename][name|tty]
wtmpx文件记录数据项格式说明如下表2-1所示:
表2-1:
用户登录记录数据项格式
位置范围
字节长度
数据含义
000-031
32
/*用户登录名*/
068-071
4
/*进程ID*/
072-073
2
/*登录类型7-登入,8登出*/
080-083
4
/*登录时刻*//*单位是秒*/
114-371
257
/*登录IP*/
2.1.2数据整合
用户登录各实验室的记录采集成用户登录明细表后,需要定期的将这些数据整理出日报表、月报表和年报表。
数据采集员需要每天采集上一天的数据集到日表,固定每月采集上月的用户登录明细数据到指定的月表,每年定期时间采集过去一年的用户登录数据形成年报表。
该模块的主要任务就是将数据库中保存的用户登录记录明细表中的数据整合成三十一张日报表、十二张月报表和年报表。
2.2前台营运管理
前台营运管理系统,主要为电信计费系统的超级管理员和管理员使用。
主要分成权限管理模块、管理员管理模块、用户管理模块、资费管理模块、账务查询模块和账单查询模块六个部分。
2.2.1权限管理模块
本系统的各个子系统的访问都是有权限控制的,权限说明了系统使用者可以执行的操作。
只有拥有了某个模块的使用权限,才可以执行该模块的下属操作。
目前该计费系统的权限有:
权限管理权限、管理员管理权限、资费管理权限、用户管理权限、账务查询权限、账单查询权限和用户自服务权限。
每个权限部分有相对应的模块操作。
系统在今后的升级中,可能会增加新的操作,则增加的操作就要对应到相应的权限中或增加新的权限,也有可能删除权限或对应的操作,因此,权限管理是为了对系统的使用权限进行灵活的管理。
权限管理部分也涵盖了系统使用群体的角色管理,角色与权限相对应,一种角色代表一组权限的集合,一个角色可含有多个权限,同时一种权限也可被多种角色拥有,通过权限管理也可以灵活的管理角色。
2.2.2管理员管理模块
系统分有超级管理员和普通管理员。
管理员管理模块,就是超级管理员来管理普通管理员的模块。
超级管理员登录系统后,可以对普通管理员进行管理,增加普通管理员的同时可以分配给他一些模块和操作的权限,修改普通管理员的信息,删除某些管理员,或者在所有管理员中查询某个管理员的信息。
2.2.3用户管理模块
用户管理子系统就是对用户的帐务帐号和业务帐号进行管理。
具有用户管理权限的管理员登陆成功后,首先可以开通帐务帐号,帐务帐号必须和用户的一些真实信息关联起来,如用户的真实姓名,身份证号码,联系电话等。
开通时,由用户提供这些信息,然后由管理员将信息录入到系统中并保存下来。
对于开通好的帐务帐号也是由具有用户管理权限的管理员来管理的,如暂停帐务帐号,恢复帐务账号,删除帐务账号,修改用户真实信息等。
由于用户的一个帐务帐号会对应多个业务帐号,所以对账务账号的操作会级联影响关联的所有业务帐号。
其次,具有用户管理权限的管理员还可以开通业务帐号,但用户要想开通一个业务帐号,前提是必须拥有一个帐务帐号。
在开通业务帐号时,先由用户为这个业务帐号选择一种资费方式,选择一台开放实验室,然后把选择好的信息提供给管理员,再由管理员将信息录入并保存,这个业务帐号会被保存到用户选择的开放实验室的服务器上,对于开通好的业务帐号也是由具有用户管理权限的管理员来管理的,如暂停业务帐号,恢复业务帐号,删除业务帐号,修改业务帐号密码。
电信运营商提供基于Unix平台的实验室环境,选择使用这种业务的用户能够远程登录到实验室中做基于这个实验室环境的一些工作和实验。
用户要想成功登陆到开放实验室中,事先必须要拥有一个这个开放实验室上的帐号,在本系统中此帐号称为业务帐号,每个开放实验室上的业务帐号的用户名是唯一的,不同的开放实验室上的业务帐号的用户名可以相同,这个帐号用户可以通过向本系统中具有用户管理权限的管理员去申请。
一个用户会有多种业务,如:
Email服务、Unix系统、代理主机服务等,每个业务我们都要收取一定的费用,如果我们以业务账户为单位来算总的费用,那么用户申请的每种业务都要单独交费,会给用户造成不便,所以我们又添加了帐务账户来统一管理每个用户所使用的所有业务账号上发生的费用,帐务帐号是要和用户的真实信息联系在一起的,所以每个用户只能有一个帐务帐号,但可以对应多个业务帐号。
2.2.4资费管理模块
使用服务,就要交纳费用,在这个系统中这个费用和两个因素有关:
一个是用户使用服务的时间长度、另一个是用户选择的收费标准。
如月租费为:
30元,每小时使用费为:
3元等。
这个收费的标准在本系统中称为资费。
资费管理子系统就是用来管理资费的。
具有资费管理权限的管理员登陆成功后,可以添加新的资费,查询所有的资费,可以修改现有的资费信息,还可以删除资费。
特别要注意的是:
由于对资费的修改会影响选择了这种资费的用户要交纳的费用,所以在修改资费信息前要事先通知所有已经选择了这个资费的用户;只有当没有任何用户选择某个资费了,这个资费才能被删除掉。
2.2.5账务查询模块
具有帐务查询的管理员可以使用此子系统对开放实验室的使用情况进行查询。
此子系统可以提供以月为周期的查询,也可以提供以年为周期的查询。
月帐务查询,具有账务查询角色的管理员进入本系统,登录成功后,可以执行如下查询操作:
根据输入的月份查询所有开放实验室这个月被使用的总的时长信息,在上一个查询的基础上查看某个实验室这个月每一天的时长信息;
年帐务查询,具有账务查询角色的管理员进入本系统,登录成功后,可以执行如下查询操作:
根据输入的年份查询所有开放实验室这一年被使用的总的时长信息,在上一个查询的基础上查看某个实验室这一年每个月的时长信息。
2.2.6账单查询模块
具有帐单查询权限的管理员可以利用此子系统对所有用户的月账单进行查询。
此子系统不仅提供对某个帐务帐号上产生的总的费用进行查询,还提供对某个帐务帐号上的每个业务帐号上产生的费用明细进行查询。
月账单查询,具有账单查询角色的管理员进入本系统,登录成功后,可以执行如下查询操作:
根据输入的月份查询所有用户这个月的费用信息(提供分页显示),根据输入的月份和其它组合条件查询符合条件的用户这个月的费用信息(提供分页显示),根据输入的月份和用户的帐务帐号的用户名查询某个用户这个月的费用信息;
月账单明细查询,具有账单查询角色的管理员进入本系统,登录成功后,首先查询出用户帐务帐号的合计费用信息,然后在这个信息上执行查询明细帐的操作,系统会显示该帐务帐号上所有业务帐号上发生的所有费用的明细信息。
2.3前台用户服务
前台用户自服务,是提供用户自服务的系统。
用户可自行用账务账号登录系统,查看自己账单和个人信息等操作。
2.3.1用户自服务模块
用户自服务模块可以方便地供用户查询自己的账单和修改自己的个人信息。
这个子系统是唯一的一个用户可以使用的子系统。
具体操作如下:
查询自己的月帐单,用户进入本系统,使用自己的帐务帐号登录成功后,可以执行如下查询操作,根据输入的月份查询自己这个月的费用信息,在上一个查询的基础上查看这个月费用明细;修改用户自己的个人信息。
第3章系统详细设计
3.1数据库设计
本项目包含三个子系统,共涉及到六十余张表。
3.1.1后台数据服务
1、logs
用户登录时长原始明细表,用来描述用户使用各实验室的数据库最原始的数据,如表3-1所示:
表3-1用户登录明细表
字段英文名
字段汉字名
数据类型
约束条件
说明
id
记录主键
int(11)
PKNOTNULL
无
logName
用户登录名
varchar(20)
NOTNULL
用户账务名
labIP
实验室IP
varchar(15)
NOTNULL
无
logIP
客户端IP
varchar(15)
NOTNULL
用户IP
loginTime
登入时间
datetime
NOTNULL
无
logoutTime
登出时间
datetime
NOTNULL
无
durations
登录时长
numeric(12)
NULL
无
2、logs_day*
用户登录日明细表,主要记录每个用户一天登录每个实验室的总时长,具体结构如表3-2所示:
表3-2用户登录日细表
字段英文名
字段汉字名
数据类型
约束条件
说明
id
记录主键
int(11)
PKNOTNULL
无
logName
用户登录名
varchar(32)
NOTNULL
用户账务名
labIP
实验室IP
varchar(15)
NOTNULL
无
logTime
登入时间
datetime
NOTNULL
最大登出值
durations
登录时长
numeric(15)
NULL
无
3、logs_month*
用户登录月明细表,主要记录每个用户一个月登录每个实验室的总时长,具体结构如表3-3所示:
表3-3用户登录月细表
字段英文名
字段汉字名
数据类型
约束条件
说明
id
记录主键
int(11)
PKNOTNULL
无
logName
用户登录名
varchar(32)
NOTNULL
用户账务名
labIP
实验室IP
varchar(15)
NOTNULL
无
logTime
登入时间
datetime
NOTNULL
最大登出值
durations
登录时长
numeric(15)
NULL
无
4、logs_year*
用户登录年明细表,主要记录每个用户一年内登录每个实验室的总时长,具体结构如表3-4所示:
表3-4用户登录年细表
字段英文名
字段汉字名
数据类型
约束条件
说明
id
记录主键
int(11)
PKNOTNULL
无
logName
用户登录名
varchar(32)
NOTNULL
用户账务名
labIP
实验室IP
varchar(15)
NOTNULL
无
logTime
登入时间
datetime
NOTNULL
最大登出值
durations
登录时长
numeric(15)
NULL
无
3.1.2前台运营管理
前台营运管理,含权限、管理员等模块,其各个表间实体关系如下图3-1所示:
图3-1权限与管理员数据实体关系图
1、admins
管理员表,主要用来存放管理员的详细信息表,包括超级管理员和普通管理员。
具体结构如表3-5所示:
表3-5管理员信息表
字段英文名
字段汉字名
数据类型
约束条件
说明
id
主键
int(11)
PKNOTNULL
无
name
管理真实名
varchar(20)
NOTNULL
真实名唯一
loginname
登录名称
varchar(20)
NOTNULL
唯一
loginpassword
登录密码
varchar(20)
NOTNULL
无
phone
管理员手机号
varchar(20)
NULL
无
email
管理员邮箱
varchar(30)
NULL
无
enrolldate
授权日期
varchar(30)
NULL
管理员授权
2、roles
管理员角色表,主要用来存放管理员角色类别的表,该系统目前有超级管理员和普通管理员。
具体结构如表3-6所示:
表3-6角色表
字段英文名
字段汉字名
数据类型
约束条件
说明
id
主键
int(11)
PKNOTNULL
无
name
角色名称
varchar(20)
NOTNULL
无
3、adminroles
管理员可以有多个角色,同时一个角色可以被多个管理员拥有。
此表将两表间