基于mvc模式电信ip网计费系统_第1页
基于mvc模式电信ip网计费系统_第2页
基于mvc模式电信ip网计费系统_第3页
基于mvc模式电信ip网计费系统_第4页
基于mvc模式电信ip网计费系统_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于MVC模式电信IP网/计费系统NETCTOSS摘要运营支撑系统(OPERATIONSUPPORTSYSTEM,缩写成OSS)已经成为电信运营管理不可缺少的组成部分。它是借助IT手段实现对电信网络和电信业务的管理,以达到支撑运营和改善运营的目标。近几年OSS得到了业界的极大关注,曾被多家主流媒体列为几大流行技术之一。本系统采用由亚信公司提供的“电信用户管理和计费系统NETCTOSS”,该系统已经在中国共用互联网CHINANET和上海热线等多个大型软件工程中应用。该系统是基于B/S模式的MVC架构,在模块于模块之间达到了高内聚和低偶合的软件设计要求,该系统的另一特点是底层由C跟PROC实现的C/S模式,这样可以达到在数据根采集和整合上的效率,该系统是一个典型的基于UNIX平台、ORACLE数据库、WEB界面,融合JAVA和C两种语言实现的大型软件项目。关键词C/S;MVC;ORACLE;JAVA,C和PROC;NETCTOSS;目录第一章绪论3第二章开发环境及开发工具的介绍421JDK概述4211安装JDK4212JDK环境变量的配置422ECLIPSE概述5221ECLIPSE的结构和内核523MYECLIPSE的概述624TOMCAT概述6241安装和配置TOMCAT725ORACLE的概述8251ORACLE9I的特性8第三章完成电信运营支撑系统所用到的技术831JSP概述8311JSP的功能8312JSP的特点932STRUTS概述10321STRUTS的体系结构10322使用STRUTS的主要优点与缺点1133SPRING概述11331SPRING的简介12332SPRING的架构性的好处1234HIBERNATE概述12341HIBERNATE技术12342HIBERNATE的工作方式13第四章系统需求分析1441系统设计思想1452业务描述1553系统的界面要求分析1554系统的角色及功能分析15第五章系统总体设计1751系统的总体流程1752系统的模块划分1853NETCTOSS系统的功能要求1854系统实体间的联系1955NETCTOSS系统的数据处理19第五章NETCTOSS详细设计2151数据库设计2152模块的具体实现2653遇到的问题40结论与体会40致谢41参考文献41附录一英文资料原文42附录二英语资料译文68第一章绪论当前在电信领域,由于电信市场的开放和市场竞争的日益激励,为了提高电信企业的服务水平,降低成本,提高效益和客户满意度,电信企业建设和投资的重点已经从网络基础设施转向以电信软件为核心的电信信息基础设施,其中电信运营支撑系统OSS,OPERATIONSUPPORTSYSTEM是建设和投资的重中之重。这也吸引拉越来越多的国内企业甚至国际上的专业公司投入到这个市场上来,带动拉电信运营支撑系统在技术上的飞速发展。电信运营支撑系统涉及计算机软件技术和通信技术的俩个科学领域,经过国内外几十年的发展,已经形成了自身比较完善的体系结构。目前发展迅速,应用广泛,技术更新比较会,用“日新月异”来形容一点都不过分。其实电信运营支撑系统存在的问题归纳起来是缺乏理论的研究和指导,缺乏有效的技术支持,同时电信义务支撑本身又是研究的焦点。它需要计算机与通信技术的集合,需要具有深厚的通信义务基础的计算机软件人才的参加,电信运营支撑系统目前值得深入研究的内容很多,重点是在如何将最新的计算机软件技术用在电信义务支撑上。第二章开发环境及开发工具的介绍21JDK概述JDK中包含了JAVA开发中心必需的工具和JAVA程序运行环境JRE。可以从SUN公司网站HTTP/JAVASUNCOM免费下载JDK142。211安装JDKJDK的安装特别简单,和安装应用程序软件没什么区别,值得注意的是JDK的安装路径一定要设好,方便以后环境变量的设置。212JDK环境变量的配置安装好JDK后,还需要在环境变量中进行对应的配置。就以本次毕业设计为例。JDK安装在DJ2SDK142。主要进行以下配置(1)设置JAVA_HOME环境变量(2)设置CLASSPATH环境变量(3)更新PATH环境变量的值JAVA_HOME表示JAVA安装目录,其他的应用程序如果需要使用JAVA运行环境,首先获得JAVA_HOME变量的信息,然后确定执行的路径。在鼠标右键单击“我的电脑”,在属性栏的高级选项中可以选择环境变量的设置,新建一个系统变量或者用户变量,名称为JAVA_HOME,它的值为DJ2SDK142。如图图21JAVA_HOME变量设置然后建立一个CLASSPATH的变量,它表示搜索JAVA类的路径,这个路径可以包含一些JAR归档文件,也可以是一个目录。在应用程序执行是,往往会动态地在CLASSPATH中添加一些自己需要的路径,本机上CLASSPATH的值为“DJ2SDK142LIBTOOLSJARDJ2SDK142LIBDTJAR”(一定不能少)。图22CLASSPATH变量设置当以上都配置好了,我们可以测试下JAVA环境是否配置成功。我们可以在运行中进入命令提示符CMD下面。输入JAVAVERSION回车,看是否能看到当前JDK的版本。如果看见就配置成功了。22ECLIPSE概述ECLIPSE是以个集成开发环境(INTEGRATEDDEVELOPMENTENVIRONMENT)。其前身是IBM的VISUALAGEFORJAVAVA4J,IBM投入了3千万美元。ECLIPSE是可扩展的体系结构,可以集成不同软件开发供应商开发的产品,将他们开发的工具和组件加入到ECLIPSE平台中。随JAVA应用的广泛,各大主要软件供应商都参与到ECLIPSE架构开发中,使得ECLIPSE插件数量与日增加。其中,IBM的WEBSPHERESTUDIOWORKBENCH是突出的例子。ECLIPSE平台的免费,架构的成熟,行业协会ECLIPSE基金会的支持,使得很多的JAVA开发采用了ECLIPSE架构。如今,IBM通过起附属的研发机构OBJECTTECHNOLOGIESINTERNATIONALOTI,继续引领ECLIPSE开发。221ECLIPSE的结构和内核插件(PLUGIN)是遵循一定规范的应用程序结构编写出来的程序,也成为扩展,不同于组件。ECLIPSE正是一个精心设计的、可扩展的核心结构。通过插件的形式,将根据自己需要选择的扩展开发工具集成到ECLIPSE平台核心。因此使得可以避免因过去不兼容工具带来的麻烦,降低开发出成本,大幅度提高工作效率。ECLIPSE本身作为一个开放源码的软件项目,它主要包含3个子项目平台子项目,JAVA开发工具JDTJAVA子项目,插件开发环境PDEPLUGIN子项目。其中,JAVA开发工具JDT为开发人员提供大量的集成工具集,主要为JAVA应用程序提供编程接口API。ECLIPSE软件开发工具箱SDK是主要有ECLIPSE本身的项目软件和其他一些开发源吗的第三方软件组成。次者,插件开发环境JDT则为插件开发和测试提供相应的环境,如创建插件清单文件、定义扩展点等。其他的JAVA集成开发环境有JBUILDER、WEBSPHERSTUDIO、NETBEANS。然而ECLIPSE以其强大的可扩展性和开放性脱颖而出,拥有为数众多的支持者,也被许多大的企业所青睐。23MYECLIPSE的概述MYECLIPSE企业级工作平台(MYECLIPSEENTERPRISEWORKBENCH,简称MYECLIPSE)是对ECLIPSEIDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,STRUTS,JSF,CSS,JAVASCRIPT,SQL,HIBERNATE。在结构上,MYECLIPSE的特征可以被分为7类1J2EE模型2WEB开发工具3EJB开发工具4应用程序服务器的连接器5J2EE项目部署服务6数据库服务7MYECLIPSE整合帮助对于以上每一种功能上的类别,在ECLIPSE中都有相应的功能部件,并通过一系列的插件来实现它们。MYECLIPSE结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。简单而言,MYECLIPSE是ECLIPSE的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。24TOMCAT概述TOMCAT服务器是当今使用最广泛的SERVLET/JSP服务器。它运行稳定,性能可靠,是学习和中小企业的最佳选择,而且是开源程序,下载免费,大大降低系统的开发成本。我们可以从HTTP/JAKARTAAPACHEORG/TOMCAT下载TOMCAT50服务器。241安装和配置TOMCATTOMCAT安装也很方便。跟其他的安装软件差不多,主要是TOMCAT环境的配置,本次设计TOMCAT安装目录是DTOMCAT。安装完成以后,把TOMCAT里面的类包(JAR文件)包含到环境变量的CLASSPATH里面。这些JAR文件都在DTOMCATCOMMONLIB目录下。然后运行TOMCAT程序,启动TOMCAT。在IE中,输入HTTP/1270018080或者HTTP/LOCALHOST8080。如果出现TOMCAT的欢迎页面,就表示TOMCAT的安装和配置是正确的。测试TOMCAT是否安装成功当TOMCAT配置成功以后,就要在TOMCAT目录下的WEBAPPS下面建立一个虚拟目录,来方便将来程序的开发。本次设计是电信运营支撑系统,所以我们在WEBAPPS下面新建立一个叫NETCTOSS的文件夹,然后使用TOMCATADMINISTRATORTOOLS来建立关于NETCTOSS的虚拟目录。这样以后我们的程序就可以在NETCTOSS文件夹下面进行,当设计完成以后,只要在IE里面输入HTTP/LOCALHOST8080/NETCTOSS就可以看到你所设计的系统程序的实现了3。图24TOMCATADMINISTRATORTOOL页面和HOSPITAL的虚拟目录25ORACLE的概述ORACLE9I是以高级结构化查询语言SQL为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的客户/服务器CLIENT/SERVER体系结构的数据库之一。251ORACLE9I的特性ORACLE9I作为第一套完整、简单的软件基层结构,展现了前所未有的可扩展性、高性能和应用程序所需要的稳定性,是专门为因特网系统提供的新一代智能型集成应用软件。ORACLE9I增强了ORACLE的能力,使之在低档软硬件平台上用较少的资源就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。它提供了基于角色ROLE分工的安全保密管理。在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。支持大量多媒体数据,如二进制图形、声音、动画以及多维数据结构等。提供了与第三代高级语言的接口软件PRO系列,能在C,C等主语言中嵌入SQL语句及过程化PL/SQL语句,对数据库中的数据进行操纵。加上它有许多优秀的前台开发工具如POWERBUILD、SQLFORMS、VISIABASIC等,可以快速开发生成基于客户端PC平台的应用程序,并具有良好的移植性。ORACLE9I数据库在物理上是存储于硬盘的各种文件。它是活动的,可扩充的,随着数据的添加和应用程序的增大而变化。在逻辑上是由许多表空间构成。主要分为系统表空间和非系统表空间。非系统表空间内存储着各项应用的数据、索引、程序等相关信息。第三章完成电信运营支撑系统所用到的技术31JSP概述JSP(IAVASERVERPAGES)是由SUN公司在JAVA语言上开发出来的一种动态网页制作技术,其可使您可以将网页中的动态部分和静态的HTML相分离。您可以使用平常得心应手的工具并按照平常的方式来书写HTML语句。然后,将动态部分用特殊的标记嵌入即可,这些标记常常以“”开始并以“”结束311JSP的功能JSP技术是由SERVLET技术发展起来的,自从有了JSP后,在JAVA服务器端编程中普遍采用的就是JSP,而不是SERVLET。因为JSP在编写表示页面时远远比SERVLET简单,并且不需要手工编译,目前SERVLET主要用于做视图控制器,处理后台应用等。由于JSP构建在SERVLET上。所以它有SERVLET所有强大的功能。在传统的网页HTML文件(HTM,HTML)中加入JAVA程序片段(SCRIPTLET)和JSP标记,就构成了JSP网页(JSP)。JSP基于强大的JAVA语言,具有良好的伸缩性,与JAVAENTERPRISEAPI紧密地集成在一起,在网络数据库应用开发领域具有得天独厚的优势,基于JAVA平台构建网络程序已经被越来越多的人认为是未来最有发展前途的技术。从JSP这几年的发展来看,JSP已经获得了巨大的成功,它通过和EJB等J2EE组件进行集成,可以编写出处理具有大的伸缩性,高负载的企业级应用。JSP技术在多个方面加速了动态WEB页面的开发。312JSP的特点1将内容的生成和显示进行分离使用JSP技术,WEB页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JAVABEAN组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和BEAN中,那么其他人,如WEB管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本中,生成所请求的内容,并且将结果以HTML页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保护任何基于HTML的WEB浏览器的完全可用性。(2)生成可重用的组件绝大多数JSP页面依赖于可重用的,跨平台的组件来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使用这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。(3)采用标识简化页面开发WEB页面开发人员不一定都熟悉脚本语言的编程人员。JAVASERVERPAGE技术封装了许多功能,这些功能是在易用的,与JSP相关的XML标识中进行动态内容生成是所需要的。标准的JSP标识能够访问和实例化JAVABEAN组件,设置或者检索组件属性,下载APPLET,以及执行同其他方法更难于编码或耗时的功能。通过开发定制标识库。这使得WEB页面开发人员能够使用熟悉的工具和如同标识一样执行特定功能的构件来工作。(4)JSP能提供所有的SERVLETS功能与SERVLET相比,JSP能提供所有的SERVLETS功能,它比用PRINTLN书写和修改HTML更加方便。此外,您可以更明确地进行分工,WEB页面设计人员编写HTML,只需要留出空间让SERVLETS程序员插入动态部分即可。(5)健壮的存储管理和安全性由于JSP页面内置脚本语言是基于JAVA编程语言的,而且所有的JSP页面都被编译成为JAVASERVLET,JSP页面就具有JAVA技术的所有优点,包括健壮的存储管理和安全性。(6)一次编写,随处运行作为JAVA平台的一部分,JSP拥有JAVA编程语言“一次编写,随处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,但并不影响当前的应用。(7)JSP的平台适应性更广这是JSP与ASP的优越之处。几乎所有的平台都支持JAVA,JSPBEANS,它们可以在任何平台下通行无阻。WINDOWSNT下的IIS通过一个插件就能支持JSP,例如JRUN或者SERVLETEXEC,著名的WEB服务器APACHE已经能够支持JSP。由于APACHE广泛应用在WINDOWSNT,UNIX和LINUX上,因此JSP有更广泛的运行平台。从一个平台移植到另一个平台,JSP和JAVABEANS甚至不用重新编译,因为JAVA字节码都是标准的字节码,与平台无关。(8)简单易学随着JSP20中标签语言的出现,即使不懂JAVA的程序员也能编写出功能完善的JSP应用。32STRUTS概述STRUTS就是在JSPMODEL2的基础实现了MVC设计模式的WEBFRAMEWORK。基于STRUTS构架的WEB应用程序基本上符合JSPMODEL2的设计标准,可以说是MVC设计模式的一种变化类型。整个STRUTS大约有15包,近200个类所组成。STRUTS这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了帮助你减少在运用MVC设计模型来开发WEB应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。如果想混合使用SERVLETS和JSP的优点来建立可扩展的应用,STRUTS是一个不错的选择。321STRUTS的体系结构STRUTS有其自己的控制器(CONTROLLER),同时整合了其他的一些技术去实现模型层(MODEL)和视图层(VIEW)。在模型层,STRUTS可以很容易的与数据访问技术相结合,包括EJB,JDBC和OBJECTRELATIONBRIDGE。在视图层,STRUTS能够与JSP,VELOCITYTEMPLATES,XSL等等这些表示层组件想结合。STRUTSFRAMEWORK是MVC模式的体现,下面我们就从分别从模型、视图、控制来看看STRUTS的体系结构(ARCHITECTURE)。下图显示了STRUTSFRAMEWORK的体系结构响应客户请求时候,各个部分工作的原理。1从视图角度(VIEW)主要由JSP建立,STRUTS自身包含了一组可扩展的自定义标签库(TAGLIB),可以简化创建用户界面的过程。目前包括BEANTAGS,HTMLTAGS,LOGICTAGS,NESTEDTAGS,TEMPLATETAGS这几个TAGLIB。有关它们的详细资料请参考STRUTS用户手册2从模型角度(MODEL)模型主要是表示一个系统的状态(有时候,改变系统状态的业务逻辑操作也也划分到模型中)。在STRUTS中,系统的状态主要有ACTIOMFORMBEAN体现,一般情况下,这些状态是非持久性的。如果需要将这些状态转化为持久性数据存储,STRUTS本身也提供了UTITLE包,可以方便的与数据库操作3从控制器角度(CONTROLLER)在STRUTSFRAMEWORK中,CONTROLLER主要是ACTIONSERVLET,但是对于业务逻辑的操作则主要由ACTION、ACTIONMAPPING、ACTIONFORWARD这几个组件协调完成(也许这几个组件,应该划分到模型中的业务逻辑一块)。其中,ACTION扮演了真正的业务逻辑的实现者,而ACTIONMAPPING和ACTIONFORWARD则指定了不同业务逻辑或流程的运行方向。322使用STRUTS的主要优点与缺点优点STRUTS跟TOMCAT、TURBINE等诸多APACHE项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解其内部实现机制。除此之外,STRUTS的优点主要集中体现在两个方面TAGLIB和页面导航。TAGLIB是STRUTS的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许STRUTS是一个很好的起点。关于页面导航使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。缺点TAGLIB是STRUTS的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至还会打乱网页编写的习惯,但是当你习惯了它时,你会觉得它真的很棒;STRUTS将MVC的CONTROLLER一分为三,在获得结构更加清晰的同时,也增加了系统的复杂度;它对类和一些属性、参数的命名显得有些随意,给使用带来一些不便;33SPRING概述SPRING的核心是个轻量级容器(CONTAINER),实现了IOC(INVERSIONOFCONTROL)模式的容器,SPRING的目标是实现一个全方位的整合框架,在SPRING框架下实现多个子框架的组合,这些子框架之间彼此可以独立,也可以使用其它的框架方案加以替代,SPRING希望提供ONESTOPSHOP的框架整合方案。331SPRING的简介SPRING定位的领域是许多其他流行的FRAMEWORK没有的。SPRING关注提供一种方法管理你的业务对象。SPRING是全面的和模块化的。SPRING有分层的体系结构,这意味着你能选择使用它孤立的任何部分,它的架构仍然是内在稳定的。因此从你的学习中,你可得到最大的价值。例如,你可能选择仅仅使用SPRING来简单化JDBC的使用,或用来管理所有的业务对象。它的设计从底部帮助你编写易于测试的代码。SPRING是用于测试驱动工程的理想的FRAMEWORK。SPRING对你的工程来说,它不需要一个以上的FRAMEWORK。SPRING是潜在地一站式解决方案,定位于与典型应用相关的大部分基础结构。它也涉及到其他FRAMEWORK没有考虑到的内容。尽管它仅仅是一个从2003年2月才开始的开源工程,但SPRING有较长的历史根基。这个开源工程是起源自我在2002年后期出版的EXPERTONEONONEJ2EE设计与开发书中的基础代码。这本书展示了SPRING背后的基础架构。然而,这个基础架构的概念要追溯到2000年的早些时候,并且反映了我为一系列成功的商业工程开发基础结构的经验。从2003年1月,SPRING已经落户于SOURCEFORGE上。现在有10个开发人员,其中6是高度投入的积极分子。332SPRING的架构性的好处SPRING能有效地组织你的中间层对象,无论你是否选择使用了EJB。如果你仅仅使用了STRUTS或其他的包含了J2EE特有APIS的FRAMEWORK,你会发现SPRING关注了遗留下的问题。SPRING能消除在许多工程上对SINGLETON的过多使用。根据我的经验,这是一个主要的问题,它减少了系统的可测试性和面向对象特性。SPRING能消除使用各种各样格式的属性定制文件的需要,在整个应用和工程中,可通过一种一致的方法来进行配置。曾经感到迷惑,一个特定类要查找迷幻般的属性关键字或系统属性,为此不得不读JAVADOC乃至源编码吗有了SPRING,你可很简单地看到类的JAVABEAN属性。倒置控制的使用在下面讨论帮助完成这种简化。SPRING能通过接口而不是类促进好的编程习惯,减少编程代价到几乎为零。SPRING被设计为让使用它创建的应用尽可能少的依赖于他的APIS。在SPRING应用中的大多数业务对象没有依赖于SPRING。使用SPRING构建的应用程序易于单元测试。SPRING能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOS或LOCALEJBS来实现业务接口,却不会影响调用代码。SPRING帮助你解决许多问题而无需使用EJB。SPRING能提供一种EJB的替换物,它们适于许多WEB应用。例如,SPRING能使用AOP提供声明性事务而不通过使用EJB容器,如果你仅仅需要与单个的数据库打交道,甚至不需要JTA实现SPRING为数据存取提供了一致的框架,不论是使用JDBC或O/RMAPPING产品(如HIBERNATE)。SPRING确实使你能通过最简单可行的解决办法解决你的问题。这些特性是有很大价值的。34HIBERNATE概述HIBERNATE在对象和关系型之间建立起一座桥梁,使得开发人员可以方便、快捷地进行持久化开发。HIBERNATE的第一个正式版本发布于2001年末;2003年6月HIBERNATE2发布,这一版本提供了对大多数数据库的支持;2003年末HIBERNATE被JBOSS吸纳;2005年3月HIBERNATE3正式发布,至此,HIBERNATE获得了巨大的成功。HIBERNATE使用起来非常简单,这也是HIBERNATE作者GAVINKING的一贯思想。341HIBERNATE技术大多数应用程序都需要处理数据。JAVA应用程序运行时,往往把数据封装为相互连接的对象网络,但是当程序结束时,这些对象就会消失在一团逻辑中,所以需要有一些保存它们的方法。有时候,甚至在编写应用程序之前,数据就已经存在了,所以需要有读入它们和将其表示为对象的方法。手动编写代码来执行这些任务不仅单调乏味、易于出错,而且会占用整个应用程序的很大一部分开发工作量。优秀的面向对象开发人员厌倦了这种重复性的劳动,他们开始采用通常的“积极”偷懒做法,即,创建工具,使整个过程自动化。对于关系数据库来说,这种努力的最大成果就是对象/关系映射ORM工具。这类工具有很多,从昂贵的商业产品到内置于J2EE中的EJB标准。然而,在很多情况下,这些工具具有自身的复杂性,使得开发人员必须学习使用它们的详细规则,并修改组成应用程序的类以满足映射系统的需要。由于这些工具为应付更加严格和复杂的企业需求而不断发展,于是在比较简单和常见的场景中,使用它们所面临的复杂性反而盖过了所能获得的好处。这引起了一场革命,促进了轻量级解决方案的出现,而HIBERNATE就是这样的一个例子。342HIBERNATE的工作方式HIBERNATE不会对您造成妨碍,也不会强迫您修改对象的行为方式。它们不需要实现任何不可思议的接口以便能够持续存在。惟一需要做的就是创建一份XML“映射文档”,告诉HIBERNATE您希望能够保存在数据库中的类,以及它们如何关联到该数据库中的表和列,然后就可以要求它以对象的形式获取数据,或者把对象保存为数据。与其他解决方案相比,它几乎已经很完美了。它实际上相当直观。应用程序对象中的属性以一种简单而自然的方式与正确的数据库结构相关联。运行时,HIBERNATE读取映射文档,然后动态构建JAVA类,以便管理数据库与JAVA之间的转换。在HIBERNATE中有一个简单而直观的API,用于对数据库所表示的对象执行查询。要修改这些对象,(一般情况下)只需在程序中与它们进行交互,然后告诉HIBERNATE保存修改即可。类似地,创建新对象也很简单;只需以常规方式创建它们,然后告诉HIBERNATE有关它们的信息,这样就能在数据库中保存它们。HIBERNATEAPI学习起来很简单,而且它与程序流的交互相当自然。在适当的位置调用它,就可以达成目的。它带来了很多自动化和代码节省方面的好处,所以花一点时间学习它是值得的。而且还可以获得另一个好处,即代码不用关心要使用的数据库种类(否则的话甚至必须知道)。有的公司就曾有过在开发过程后期被迫更换数据库厂商的经历。这会造成巨大的灾难,但是借助于HIBERNATE,只需要简单地修改HIBERNATE配置文件即可。这里的讨论假定您已经通过创建HIBERNATE映射文档,建立了一个关系数据库,并且拥有要映射的JAVA类。有一个HIBERNATE“工具集”可在编译时使用,以支持不同的工作流。例如,如果您已经拥有JAVA类和映射文档,HIBERNATE可以为您创建(或更新)必需的数据库表。或者,仅仅从映射文档开始,HIBERNATE也能够生成数据类。或者,它可以反向设计您的数据库和类,从而拟定映射文档。还有一些用于ECLIPSE的ALPHA插件,它们可以在IDE中提供智能的编辑支持以及对这些工具的图形访问。如果您使用的是HIBERNATE2环境,这些工具鲜有提供,但是存在可用的第三方工具。第四章系统需求分析41系统设计思想电信运营计费系统NETCTOSS是利用J2EE平台下的WEB技术设计和运行通过利用C跟PL/SQL从AAA服务器上采集数据然后整和到中央数据库里,供用户和管理员进行大量的查询帐单和帐户其中持久层采用封装JDBC的HIBERNATE框架,数据库采用ORACLE9I,并用STRUTS作为控制器,页面显示需要JSP技术,并且用SPRING框架整和,完成企业级应用系统业务模型如下根据业务模型图我们可以清楚的了解整个系统的流程客户通过网络登陆到服务器。服务器中含有一个配置文件,这个配置文件中包含用户的姓名和密码。然后服务器根据这个配置文件来验证用户的姓名和密码,每次用户登陆的时候,服务器就会自动在配置文件中查找,看有没有匹配的。如果有,则让其登入,没有则不受理这个请求。与加工处理计费信息统计信息WEB查询WEB查询MIBWEB管理WEB管理因特网AAA配置信息LOGINNAME按天合并日表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_YEAR2用户帐务信息自查询1用户标识信息帐单ID,姓名、帐号、状态(正常/暂停/关闭)、开通日期。2帐务信息日期、登录时长、本月费用3服务信息,各种服务信息查询4服务帮助,提供一个亲切的服务界面5帐单明细登录时间退出时间时长3用户开通管理1管理用户登陆OPENLAB的帐号,包括帐号开通、暂停(加锁)、恢复、删除。2用户资料管理管理用户资料,包括姓名(单位)、身份证号码、住址及资费信息等4管理员管理1管理员开通管理管理用户登陆NETCTOSS的帐号,包括帐号开通、暂停(加锁)、恢复、删除。2管理员资料管理管理管理员资料,包括姓名、身份证号码、住址等。3管理员权限管理改变管理员的各类权限。5用户自服务管理用户标识信息帐单ID,姓名、帐号、状态(正常/暂停/关闭)、开通日帐务信息日期、登录时长、本月费用服务信息,各种服务信息查询服务帮助,提供一个亲切的服务界面帐单明细登录时间退出时间时长6帐单管理整合系统按月生成用户月帐单。用户标识信息帐单ID,姓名、帐号、状态(正常/暂停/关闭)、联系电话、EMAIL、开通日期帐务信息帐号、日期、登录时长、本月费用帐单明细登录时间退出时间时长第五章NETCTOSS详细设计管理员管理模块,帐单管理模块51数据库设计由于电信运营支撑系统功能非常复杂,并且要存取的数据较多,因此简单地使用文件来存储数据库和管理显然是不合适的。所以本系统使用ORACLE数据库来存储数据。根据系统需求分析需要创建以下的数据表来存储数据。1T_ADM表用于保存管理员的信息设计出的表如下所示T_ADM表NAMENULLTYPEIDNOTNULLNUMBERNAMEVARCHAR232LOGIN_NAMENOTNULLVARCHAR210LOGIN_PASSWORDVARCHAR232PHONEVARCHAR232EMAILVARCHAR232ENROLL_DATEDATECLOSE_DATEDATE对应的数据库建表语句为DROPTABLET_ADMCREATETABLET_ADMIDNUMBERPRIMARYKEY,管理员编码NAMEVARCHAR232,管理员姓名LOGIN_NAMEVARCHAR210UNIQUENOTNULL,登录名LOGIN_PASSWORDVARCHAR232,登录密码PHONEVARCHAR232,联系电话EMAILVARCHAR232,EMAILENROLL_DATEDATE,注册日期CLOSE_DATEDATE不用字段2T_MODULE模块表(用于保存模块信息)并对应于管理员的权限设计的表如下所示NAMENULLTYPEIDNOTNULLNUMBERNAMEVARCHAR232USER_FLAGCHAR1对应的数据库建表语句为DROPTABLET_MODULECREATETABLET_MODULEIDNUMBERPRIMARYKEY,模块编号NAMEVARCHAR232,模块名称USER_FLAGCHAR使用者标记0管理员;1用户;3T_ADM_RIGHTS管理员权限表(用于保存管理员对模块的访问权限)设计的表如下所示NAMENULLTYPEADM_IDNOTNULLNUMBERMODULE_IDNOTNULLNUMBER对应的数据库建表语句为DROPTABLET_ADM_RIGHTSCREATETABLET_ADM_RIGHTSADM_IDNUMBERREFERENCEST_ADMID,管理员编码MODULE_IDNUMBERREFERENCEST_MODULEID,模块编号PRIMARYKEYADM_ID,MODULE_ID4T_USERS用户表(用于保存用户账务帐号信息及个人信息)设计的表如下所示NAMENULLTYPEIDNOTNULLNUMBER32NAMENOTNULLVARCHAR232LOGIN_NAMEVARCHAR210LOGIN_PASSWORDNOTNULLVARCHAR232STATUSNOTNULLNUMBER2PHONEVARCHAR232EMAILVARCHAR232ENROLL_DATEDATECLOSE_DATEDATEPAYMENT_STYLENUMBER2CAREERVARCHAR232NATIONALITYVARCHAR232GENDERVARCHAR28COMPANYVARCHAR232ADDRESSVARCHAR232POST_CODEVARCHAR216对应的数据库建表语句为CREATETABLET_USERS/用户表(用于保存用户账务帐号信息及个人信息)IDNUMBER32PRIMARYKEY,主键编码NAMEVARCHAR232NOTNULL,用户姓名LOGIN_NAMEVARCHAR210UNIQUE,用户账务帐号(对应多个业务帐号)LOGIN_PASSWORDVARCHAR232NOTNULL,用户账务帐号密码STATUSNUMBER2NOTNULL,账务帐号状态(0开通;1暂停;2删除)PHONEVARCHAR232,联系电话EMAILVARCHAR232,EMAILENROLL_DATEDATE,开通日期CLOSE_DATEDATE,暂停日期PAYMENT_STYLENUMBER2,付款方式0现金;1银行转帐;2邮局汇款;3其他CAREERVARCHAR232,职业NATIONALITYVARCHAR232,国籍系统中在本字段记录省份GENDERVARCHAR28,性别COMPANYVARCHAR232,公司名称ADDRESSVARCHAR232,地址POST_CODEVARCHAR216邮编5用户业务帐号表(用于保存用户业务帐号信息)设计的表如下所示NAMENULLTYPEIDNOTNULLNUMBER32USER_IDNUMBER32LAB_LOGIN_NAMEVARCHAR210LAB_LOGIN_PASSWORDVARCHAR232LAB_IPNOTNULLVARCHAR232USER_STATUSNUMBER2PRICING_IDNUMBERENROLL_DATEDATECLOSE_DATEDATE对应的数据库建表语句为CREATETABLET_USER_SERVICESIDNUMBER32PRIMARYKEY,主键编码USER_IDNUMBER32REFERENCEST_USERSID,用户表主键编码LAB_LOGIN_NAMEVARCHAR210,用户业务帐号LAB_LOGIN_PASSWORDVARCHAR232,用户业务帐号密码LAB_IPVARCHAR232NOTNULL,服务器编码USER_STATUSNUMBER2,业务帐号状态(0正常;1暂停;2删除)PRICING_IDNUMBERREFERENCEST_PRICINGPRICING_ID,资费编码ENROLL_DATEDATE,开通日期CLOSE_DATEDATE暂停日期5T_PRICING资费表设计的表如下所示NAMENULLTYPEPRICING_IDNOTNULLNUMBER10PRICING_NAMEVARCHAR2255CHARBASE_FEEFLOAT126RATE_FEEFLOAT126PRICING_DESCVARCHAR2255CHAR对应的数据库建表语句为CREATETABLET_PRICINGPRICING_IDNUMBERPRIMARYKEY,资费编码PKPRICING_NAMEVARCHAR232NOTNULLUNIQUE,资费名称BASE_FEENUMBER5,2,月租费RATE_FEENUMBER4,2,每小时费用PRICING_DESCVARCHAR264资费描述6T_DETAIL_X(X月中的第几天,取值范围131)设计的表如下所示NAMENULLTYPELOGIN_NAMEVARCHAR210LOGIN_IPVARCHAR232LOGIN_DATEDATELOGOUT_DATEDATELAB_IPVARCHAR232TIME_DURATIONNUMBER10对应的数据库建表语句为CREATETABLET_DETAIL_XLOGIN_NAMEVARCHAR210,用户名LOGIN_IPVARCHAR232,用户登录IPLOGIN_DATEDATE,登录时间LOGOUT_DATEDATE,退出时间LAB_IPVARCHAR232,服务器IPTIME_DURATIONNUMBER10时长7T_DAY_X(X月中的第几天,取值范围131)用户计费数据日表(统计当天每小时每个服务器上的每个用户的总时长)每条数据记录的是一个服务器上的一个用户某一小时的总时长对于一个服务器上的一个用户,最多有24条记录设计的表如下所示NAMENULLTYPELOGIN_NAMENOTNULLVARCHAR210LOGIN_IPVARCHAR232LOGOUT_DATENOTNULLDATELAB_IPNOTNULLVARCHAR232TIME_DURATIONNUMBER10对应的数据库建表语句为CREATETABLET_DAY_XLOGIN_NAMEVARCHAR210,用户名LOGIN_IPVARCHAR232,用户登录IPLOGOUT_DATEDATE,统计时间格式YYYYMMDDHH240000LAB_IPVARCHAR232,服务器IPTIME_DURATIONNUMBER10,时长PRIMARYKEYLOGIN_NAME,LAB_IP,LOGOUT_DATE8T_MONTH_X(X月份,取值范围112)用户计费数据月表(统计当月每天每个服务器上的每个用户的总时长)每条数据记录的是一个服务器上的一个用户某一天的总对于一个服务器上的一个用户,最多有31条记录设计的表如下所示NAMENULLTYPELOGIN_NAMENOTNULLVARCHAR210LOGIN_IPVARCHAR232LOGOUT_DATENOTNULLDATELAB_IPNOTNULLVARCHAR232TIME_DURATIONNUMBER10对应的数据库建表语句为CREATETABLET_MONTH_XLOGIN_NAMEVARCHAR210,用户名LOGIN_IPVARCHAR232,用户登录IPLOGOUT_DATEDATE,统计日期(格式YYYYMMDD000000)LAB_IPVARCHAR232,服务器IPTIME_DURATIONNUMBER10,时长PRIMARYKEYLOGIN_NAME,LAB_IP,LOGOUT_DATE52模块的具体实现1管理员管理模块用例图业业业业业业业业业业业业业业业业业业业业业业业业业业业业业业业业业业业业业用例描述用例名称查询所有管理员(管理员列表)描述超级管理员可以查看所有管理员信息用例参与者超级管理员前置条件超级管理员已经登录成功基本事件流登录成功后,管理员进入系统主页面,在主页面的导航菜单中点击管理员管理链接,页面就显示出系统中所有管理员的信息其他事件流登录成功后,管理员进入系统主页面,在主页面的导航菜单中点击管理员管理链接,进入管理员列表里可以进入添加管理员、管理员信息修改和修改自己的信息的页面,在这三个页面中点击管理员列表链接,可以到管理员列表页面异常事件流无后置条件无用例名称增加管理员描述超级管理员增加管理员用例参与者超级管理员前置条件超级管理员已经登录成功基本事件流登录成功后,管理员进入系统主页面,在主页面的导航菜单中点击管理员管理链接,页面就显示出系统中所有管理员的信息,在管理员列表页面中点击增加管理员链接,会跳转到添加管理员页面,在本页面中填好必要的信息点击提交按钮通过验证后,来完成添加管理员,操作完成到管理员列表页面其他事件流在修改页面也可以点击增加管理员,跳转到添加管理员页面也能完成添加管理员功能异常事件流如果验证未通过会提示信息,添加的管理员没保存到系统中后置条件刚添加的管理员信息就保存到本系统中用例名称删除管理员描述超级管理员删除管理员用例参与者超级管理员前置条件超级管理员已经登录成功基本事件流登录成功后,管理员进入系统主页面,在主页面的导航菜单中点击管理员管理链接,页面就显示出系统中所有管理员的信息,选中要删除的管理员前面的复选框,点击删除按钮进行删除,一次可以删除多个管理员,操作完成到管理员列表页面其他事件流无异常事件流无后置条件删除完成以后此管理员就从系统里被删掉了,下回就不能用这个管理员进行登录管理了用例名称修改管理员信息描述超级管理员修改管理员信息用例参与者超级管理员前置条件超级管理员已经登录成功基本事件流登录成功后,管理员进入系统主页面,在主页面的导航菜单中点击管理员管理链接,页面就显示出系统中所有管理员的信息,在每个管理员信息的最后一列里都会有一个修改的链接,要想修改某个管理员就直接点击转到修改页面,在修改页面直接对想修改的信息进行修改,最后点击修改按钮通过验证就修改完成,操作完成到管理员列表页面其他事件流无异常事件流如果验证未通过会提示信息,修改后的信息不会被保存后置条件修改信息以后修改的信息会保存到系统中用例名称修改本管理员信息描述超级管理员修改本管理员信息用例参与者超级管理员前置条件超级管理员已经登录成功基本事件流登录成功后,管理员进入系统主页面,在主页面的导航菜单中点击管理员管理链接,页面就显示出系统中所有管理员的信息,修改自己的信息就点击私人信息就直接点击转到修改页面,在修改页面直接对想修改的信息进行修改,最后点击修改按钮通过验证就修改完成,操作完成到管理员列表页面其他事件流还可在列表中找到自己信息那行点击修改,也能完成此功能异常事件流如果验证未通过会提示信息,修改后的信息不会被保存后置条件修改信息以后修改的信息会保存到系统中类图时序图CLIENTACTIONSERVLETACTIONADMMANGEBIZIMPLHIBERNATEADMMANGEDAOJSPREQUESTEXCUTEBUSINESMETHODBUSINESMETHODIMPLRETURNPROCESRESULTFORWARDRESPONSE组件图业业业WEB业业业业业业业业DAO业业业BEAN业管理员管理模块的界面如下所示登陆界面这个是登录界面,用户在这个上面可以选择管理员登录和用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论