1、第 1 页 共 42 页基于 SSH 的电信计费系统摘 要:随着科技该系统采用由亚信公司提供的“电信用户管理和计费系统NetCT OSS”,该系统已经在中国共用互联网 ChinaNet和上海热线等多个大型软件工程中应用。该系统是一个典型的基于 Lunix平台、Oracle 数据库、Web 界面,融合 Java和 C+两种语言实现的大型软件项目。随着网络的普及,通过网络来使用电信公司提供的业务也越来越普遍。而上网就必然会产生费用。本系统就为电信 IP计费用设计的。针对 openlab出租服务器出租的业务进行开发的。该系统以 J2EE为开发平台,采用基于 B/S的多层次结构为开发模式,使用jsp+
2、struts+spring+hibernate相结合的技术作为开发基础,以 Eclipse、TomCat为开发工具。该系统在功能方面提供拉了以下几种:1:用户管理模块;2:管理员管理模块;3:资费管理模块;4:帐单管理模块;5:帐务管理模块;6:用户自服务模块;7:数据采集模块;8:数据整合模块;该系统界面美观、操作简单、使用方便。所用平台:Linux、 Apatch Tomcat服务器,Oracle 9i数据库,J2EE所用相关技术:JavaScript、Jsp、Struts、Hibernate、JavaBean、Spring;关键字:WEB;J2EE;jsp;struts;spring;h
3、ibernate第 2 页 共 41 页第 1 章 概述1.1 课题的背景及意义当前.在电信领域,由于电信市场的开放和市场竞争的日益激励,为了提高电信企业的服务水平,降低成本,提高效益和客户满意度,电信企业建设和投资的重点已经从网络基础设施转向以电信软件为核心的电信信息基础设施,其中电信运营支撑系统(OSS,Operation Support System)是建设和投资的重中之重。这也吸引拉越来越多的国内企业甚至国际上的专业公司投入到这个市场上来,带动拉电信运营支撑系统在技术上的飞速发展。电信运营支撑系统涉及计算机软件技术和通信技术的俩个科学领域,经过国内外几十年的发展,已经形成了自身比较完善
4、的体系结构。目前发展迅速,应用广泛,技术更新比较会,用“日新月异”来形容一点都不过分。其实电信运营支撑系统存在的问题归纳起来是缺乏理论的研究和指导,缺乏有效的技术支持,同时电信义务支撑本身又是研究的焦点。它需要计算机与通信技术的集合,需要具有深厚的通信义务基础的计算机软件人才的参加,电信运营支撑系统目前值得深入研究的内容很多,重点是在如何将最新的计算机软件技术用在电信义务支撑上。1.2 课题内容及目标将设备的话务控制功能与计费功能相分离,并建立了计费体制与会话/服务控制的直接交互,使计费完全参与到服务的使用过程中。在这样的体系下,既可以利用独立计费系统的强大能力以提供接近于 准实时计费系统的灵
5、活性,又可以利用参与使用过程的实时特性,将欠费成本将到最低。1.3 开发及运行环境本项目在开发时采用 B/S架构,使用 Myeclipce7.1的开发环境;服务器和客户机都采用 Windows XP操作系统;数据库服务器是 Oracle9i ;Web 服务器则选用了一个免费的应用服务器软件Tomcat6.0 绿色版。由于它们的源代码都是可以免费获得的,对于初学者很有帮助。第 3 页 共 41 页第 2 章 系统分析和设计2.1 系统设计思想本系统电信运营计费系统-NetCtoss是利用 J2EE平台下的 WEB技术设计和运行.通过利用 C+跟 PL/SQL从 AAA服务器上采集数据然后整和到中
6、央数据库里,供用户和管理员进行大量的查询帐单和帐户.其中持久层采用封装 JDBC的 Hibernate框架,数据库采用 Oracle9i,并用 Struts作为控制器,页面显示需要 JSP技术,并且用 Spring框架整和,完成企业级应用.2.1.1 系统业务模型系统业务模型如下 2-1图所示:图 2-1 系统业务模型图根据业务模型图我们可以清楚的了解整个系统的流程:客户通过网络登陆到服务器。服务器中含有一个配置文件,这个配置文件中包含用户的姓名和密码。然后服务器根据这个配置文件来验证用户的姓名和密码,每次用户登陆的时候,服务器就会自动在配置文件中查找,看有没有匹配的。如果有,则让其登入,没有
7、则不受理这个请求。与此同时,服务器中还有一个文件,是用来记录用户的登陆和退出的时间,和当前登陆的是哪个用户,以便后来在采集数据中使用。当用户登陆到出租的服务器后,用户就可以进行服务器所提供相应的操作了。第 4 页 共 41 页2.1.2 业务描述业务模型描述(3P 模型):Products(产品)Open Lab在线试验室出租业务Pricing(定价)定价一:Open Lab 月租费:30 元,使用费:3 元/小时定价二:Open Lab 月租费:50 元,使用费:2 元/小时定价三:Promotion(促销)例如:一次性购买 2年服务,Open Lab 月租费和使用费打八折Open Lab月
8、租费:24 元Open Lab使用费:2.4 元/小时2.2 系统的界面要求分析系统必须给出一个初始的管理员帐号跟密码,然后管理员在为其他的用户分配帐号跟密码,然后用户就可以登录系统,进入各自的操作界面,因此系统主页面应该能自动进行身份判别,按照访问者的身份自动进入其相应的操作界面。所以系统的登录截面应该提供最少俩种身份:1) 普通用户2) 管理员2.3 系统的角色及功能分析1netct_oss 系统应具有三个角色:(1).管理员(2).用户2netct_oss 系统角色的功能分析1、超级管理员应该具有的功能1) 管理员开通管理:管理用户登陆 NetCT OSS的帐号,包括帐号开通、暂停(加锁
9、)、恢复、删除。2) 管理员资料管理:管理管理员资料,包括姓名、身份证号码、住址等。3) 管理员权限管理:改变管理员的各类权限。2、普通管理员具有的功能增、删、改、查自己的信息,2)查看自己的权限,并且根据所具有的权限管理有关内容。3、用户应该具有的功能增、删、改、查用户信息第 5 页 共 41 页2.4 系统的总体流程总体流程图:2.5 系统的模块划分第 6 页 共 41 页2.6 NetCtoss 系统的功能要求1采集系统:功能描述:该系统主要功能是将电信服务器上的计费文件中所有用户的消费记录采集并且整理出来,然后插入到数据库中。从功能上讲,该系统共分为六个模块,分别是采集模块,入库模块,
10、配置模块,日志模块,备份模块和网络模块。从部署运行方面讲该采集系统分为客户端和服务器端两个部分。客户端部署在电信服务器上,用于采集和整理计费文件中的原始记录并把结果发送到服务器端。服务器端用于接收从客户端发送过来的数据,并持久化到数据库中相应的表中。2整和系统:功能描述:该系统负责将数据库中的用户原始的消费数据进行整合形成可供用户和管理查询的帐单,如日清单,月报表,年报表,以及仅供管理员查询的帐务清单,主要用于考察电信服务器的运行情况。3WEB系统:该系统可供用户和管理员查询相关内容。通过登录该系统,用户可以完成查询帐单,修改个人信息,浏览电信运营商提供的各种资费服务。管理员可以完成查询所有用
11、户帐单,修改管理员信息,对用户进行管理(开通,关闭,删除用户帐号),对管理员进行管理(开通,关闭,删除管理员帐号),修改资费项目,查看电信服务器运行情况。根据以上功能,该系统可分为六个模块,用户管理模块,管理员管理模块,用户自服务模块,帐单管理模块,资费管理模块,帐务管理模块。2.7 系统实体间的联系系统的实联系图为:第 7 页 共 41 页2.8 NetCtoss 系统的数据处理1: 采集与整合数据采集:资料信息:用户信息、管理员信息、资费信息、URL 信息数据存储:计费数据、故障数据、统计数据明细:日表、月表、年表整合:按小时合并清单表 t_detail_X生成所有用户记费数据日表 t_d
12、ay_X;按天合并日表 t_day_X生成所有用户记费数据月表 t_month_X;按月合并月表 t_month_X生成所有用户记费数据年表 t_year_X;按小时合并清单表 t_detail_X生成所有 Lab_IP数据日表 t_day;按天合并日表 t_day生成所有 Lab_IP数据月表 t_month;按月合并月表 t_month生成所有 Lab_IP数据年表 t_year;2: 用户帐务信息自查询(1)用户标识信息:帐单 ID,姓名、帐号、状态(正常/暂停/关闭)、开通日期。(2)帐务信息:日期、登录时长、本月费用(3)服务信息,各种服务信息查询(4)服务帮助,提供一个亲切的服务界
13、面(5)帐单明细:登录时间 退出时间 时长3: 用户开通管理:(1)管理用户登陆 Open Lab的帐号,包括帐号开通、暂停(加锁)、恢复、删除。(2)用户资料管理:管理用户资料,包括姓名(单位)、身份证号码、住址及资费信息第 8 页 共 41 页等4: 管理员管理:(1)管理员开通管理:管理用户登陆 NetCT OSS的帐号,包括帐号开通、暂停(加锁)、恢复、删除。(2)管理员资料管理:管理管理员资料,包括姓名、身份证号码、住址等。(3)管理员权限管理:改变管理员的各类权限。5:用户自服务管理用户标识信息:帐单 ID,姓名、帐号、状态(正常/暂停/关闭)、开通日帐务信息:日期、登录时长、本月
14、费用服务信息,各种服务信息查询服务帮助,提供一个亲切的服务界面帐单明细:登录时间 退出时间 时长6:帐单管理整合系统按月生成用户月帐单。用户标识信息:帐单 ID,姓名、帐号、状态(正常/暂停/关闭)、联系电话、Email、开通日期.帐务信息:帐号、日期、登录时长、本月费用帐单明细:登录时间 退出时间 时长第 3章 开发环境及开发工具的介绍3.1 JDK 概述JDK中包含了 Java开发中心必需的工具和 Java程序运行环境(JRE)。可以从 SUN公司网站 http:/ 免费下载 JDK1.4.2。 3.1.1 安装 JDKJDK的安装特别简单,和安装应用程序软件没什么区别,值得注意的是 JD
15、K的安装路径一定要设好,方便以后环境变量的设置。3.1.2 JDK 环境变量的配置安装好 JDK后,还需要在环境变量中进行对应的配置。就以本次毕业设计为例。JDK安装在 D:j2sdk1.4.2。主要进行以下配置:(1)设置 JAVA_HOME环境变量(2)设置 CLASSPATH环境变量(3)更新 PATH环境变量的值JAVA_HOME表示 Java安装目录,其他的应用程序如果需要使用 Java运行环境,首先获得 JAVA_HOME变量的信息,然后确定执行的路径。在鼠标右键单击“我的电脑”,在属性栏的高级选项中可以选择环境变量的设置,新建一个系统变量或者用户变量,名称为 JAVA_HOME,
16、它的值为 D:j2sdk1.4.2。如图:第 9 页 共 41 页图 2.1 JAVA_HOME变量设置然后建立一个 CLASSPATH的变量,它表示搜索 Java类的路径,这个路径可以包含一些 Jar归档文件,也可以是一个目录。在应用程序执行是,往往会动态地在CLASSPATH中添加一些自己需要的路径,本机上 CLASSPATH的值为“.;d:j2sdk1.4.2libtools.jar;d:j2sdk1.4.2libdt.jar;” (.;一定不能少)。图 2.2 CLASSPATH变量设置当以上都配置好了,我们可以测试下 Java环境是否配置成功。我们可以在运行中进入命令提示符 cmd下
17、面。输入 java version回车,看是否能看到当前 JDK的版本。如果看见就配置成功了。3.2 Eclipse 概述Eclipse是以个集成开发环境 (Integrated Development Environment)。其前身是 IBM的 Visual Age for Java(VA4J),IBM 投入了 3千万美元。Eclipse 是可扩展的体系结构,可以集成不同软件开发供应商开发的产品,将他们开发的工具和组件加入 到 Eclipse平台中。随 Java应用的广 泛,各大主要软件供应商都参与到 Eclipse架构开发中,使得Eclipse插件数量与日增加。其中,IBM 的 WebS
18、phere Studio Workbench是突出的例子。Eclipse 平台的免费,架构的成熟,行业协会 Eclipse基金会的支持,使得很多的Java开发采用了 Eclipse架构。如今,IBM 通过起附属的研发机构 Object Technologies International(OTI),继续引领 Eclipse开发。3.2.1 Eclipse 的结构和内核插件(plug- in)是遵循一定规范的应用程序结构编写出来的程序,也成为扩展,不同于组件。Eclipse 正是一个精心设计的、可扩展的核心结构。通过插件的形式,将 根据自己需要选择的扩展开发工具集成到 Eclipse平台核心。因
19、此使得可以避免因过去不兼容工具带来的麻烦,降低开发出成本,大幅度提高工作效率。第 10 页 共 41 页Eclipse本身作 为一个开放源码的软件项目,它主要包含 3个子项目:平台子项目,Java 开发工具(JDT-java)子项目,插件开发环境(PDE-plug- in)子项目。其中,Java 开发工具 JDT为开发人员提供大量的集成工具集,主要为 Java应用程序提供编程接口(API)。Eclipse 软件开发工 具箱(SDK)是主要有 Eclipse本身的项目软件和其他一些开发源吗的第三方软件组成。次者,插件开发环境(JDT)则为插件开发和测试提供相应的环 境,如:创建插件清单文件、定义
20、扩展点等。其他的 Java集成开发环境有 Jbuilder、WebSpher Studio、 NetBeans。然而Eclipse以其强大的可扩展性和开放性脱颖而出,拥有为数众多的支持者,也被许多大的企业所青睐。3.3 MyEclipse 的概述MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对 Eclipse IDE的扩展,利用它我们可以在数据库和 J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的 J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持 HTML,
21、Struts, JSF, CSS, Javascript, SQL, Hibernate。在结构上,MyEclipse 的特征可以被分为 7类:1. J2EE模型2. WEB开发工具3. EJB开发工具4. 应用程序服务器的连接器5. J2EE项目部署服务6. 数据库服务7. MyEclipse整合帮助对于以上每一种功能上的类别,在 Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse 结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。简单而言,MyEclipse 是 Eclipse的插件,也是一款功能强大的 J2EE集成开发环境,支持代码编写、配置、测试以及除错。