电信运营支撑系统(netctoss)_第1页
电信运营支撑系统(netctoss)_第2页
电信运营支撑系统(netctoss)_第3页
电信运营支撑系统(netctoss)_第4页
电信运营支撑系统(netctoss)_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

摘要该系统采用由亚信公司提供的“电信用户管理和计费系统NETCTOSS”,该系统已经在中国共用互联网CHINANET和上海热线等多个大型软件工程中应用。该系统是一个典型的基于LNIX平台、ORACLE数据库、WEB界面,融合JAVA和C两种语言实现的大型软件项目。随着网络的普及,通过网络来使用电信公司提供的业务也越来越普遍。而上网就必然会产生费用。本系统就为电信IP计费用设计的。针对OPENLAB出租服务器出租的业务进行开发的。该系统以J2EE为开发平台,采用基于B/S的多层次结构为开发模式,使用JSPSTRUTSSPRINGHIBERNATE相结合的技术作为开发基础,以ECLIPSE、TOMCAT为开发工具。该系统在功能方面提供拉了以下几种1,用户管理模块;2,管理员管理模块;3,资费管理模块;4,帐单管理模块;5,帐务管理模块;6;用户自服务模块;7,数据采集模块;8,数据整合模块;该系统界面美观、操作简单、使用方便。所用平台LINUX、APATCHTOMCAT服务器,ORACLE9I数据库,J2EE所用相关技术JAVASCRIPT、JSP、STRUTS、HIBERNATE、JAVABEAN、SPRING;关键字WEB,J2EE,JSP,STRUTS,SPRING,HIBERNATEABSTRACTTHESYSTEMUSEDBYASIAINFOTOPROVIDE“TELECOMMUNICATIONSUSERMANAGEMENTANDBILLINGSYSTEMNETCTOSS“,THESYSTEMHASBEENINCHINATOSHAREEACHOTHERCHINANETNETWORKANDSHANGHAIHOTLINE,ANDOTHERBIGSOFTWAREPROJECTSINTHEAPPLICATIONTHESYSTEMISATYPICALUNIXBASEDPLATFORM,ORACLEDATABASE,WEBINTERFACE,THEINTEGRATIONOFJAVAANDCLANGUAGEOFTHETWOMAJORSOFTWAREPROJECTSWITHTHEPOPULARITYOFTHENETWORKS,THROUGHTHEUSEOFTELECOMMUNICATIONSNETWORKSTOPROVIDEBUSINESSMOREANDMORECOMMONANDTHEINTERNETWILLHAVEACOSTTHESYSTEMISDESIGNEDFORTHECOSTOFIPTELECOMMUNICATIONSOPENLABFORRENTALSERVERRENTALBUSINESSDEVELOPMENTTHESYSTEMTOJ2EEPLATFORMFORTHEDEVELOPMENT,ALSOTHESYSTEMISBASEONB/SOFTHEMULTISTOREYSTRCTUREFORTHEDEVELOPMENTOFMODEL,USEJSPSTRUTSSPRINGHIBERNATECOMBINATIONOFTECHNOLOGYDEVELOPMENTASABASISFORTHEDEVELOPMENTOFTOOLSTOECLIPSEANDTOMCATTHESYSTEMFEATURESAPULLTOPROVIDETHEFOLLOWING1,THEUSERMANAGEMENTMODULE,2,THEADMINISTRATORMANAGEMENTMODULE3,FEEMANAGEMENTMODULE4,BILLINGMANAGEMENTMODULE5,REVENUEMANAGEMENTMODULE6USERSERVICESMODULE7,DATAACQUISITIONMODULE8,DATAINTEGRATIONMODULEUSEDBYTHEPLATFORMLINUX,APATCHTOMCATSERVER,ORACLE9IDATABASE,J2EERELATEDTECHNOLOGYUSEDJAVASCRIPT,JSP,STRUTS,HIBERNATE,JAVABEAN,SPRINGTHESYSTEMINTERFACEBEAUTIFUL,SIMPLE,EASYTOUSEKEYWORDSWEB,J2EE,JSP,STRUTS,SPRING,HIBERNATE目录目录3第一章绪论5第二章开发环境621JAVA2SDK软件安装说明6第三章开发技术及开发工具介绍931HIBERNATE9311HIBERNATE技术概述9312HIBERNATE工作原理9313HIBERNATE的映射关系1032JSP10321JSP技术概述10322JSP工作原理11323JSP中的标识11324EL12325JSTL1333STRUTS13331STRUTS技术概述13332STRUTS基本体系结构14333STRUTS工作原理1434SPRING15341SPRING技术概述15342SPRING框架介绍15343IOC和AOP1635MYECLIPSE17351MYECLIPSE简介17352MYECLIPSE的安装1736TOMCAT18361TOMCAT简介18362TOMCAT的安装19第四章ORACLE数据库2241ORACLE简介22第五章NETCT_OSS系统的需求分析2351系统的设计思想2352业务模型分析2453系统的界面要求分析2454系统的角色及功能分析25第六章NETCT_OSS系统的总体设计2661系统的总体架构2662系统的模块划分2763系统的功能要求2864系统实体间的联系2965系统数据库总体设计30第七章NETCT_OSS系统的详细设计3271系统的数据库表详细设计3372系统模块的具体实现3475系统测试4775遇到的问题48总结与体会49致谢50参考文献51附录一J2EE介绍52附录二MVC框架介绍54附录三英文资料原文56附录四英文资料译文70第一章绪论随着网络的演进和电信市场竞争的加剧,电信计费系统也在逐步发生着变革。在网络能力方面,计费系统需要不断满足固网、PHS、GSM移动网、宽带网,以及3G移动网等各种网络业务的计费需求;而在市场需求方面,预付费用户比例的急速上升对计费系统应对欠费风险的能力提出了巨大挑战。同时,业务发展的多样性也要求计费系统不再只是针对单系统、单业务的简单计费,而必须要具备全业务、跨网络业务捆绑和组合的融合计费能力,才能有效支撑灵活多样的计费需求和市场推广策略。传统计费的演进上世纪80年代初,电信的网络规模较小,所有的计费功能都基于交换机实现。由于交换机的呼叫功能与计费功能结合过于紧密,资费配置、计费批价等功能也被分散在网络侧交换机上,在网络规模扩大和业务种类增多时,网络的维护工作量就会急剧增长。到了80年代末,电信运营商开始采用交换机生成通话的原始信息(CDR),再由后台的计费帐务系统(离线计费)集中进行计费批价的方式,从而提高了系统的灵活性和资费的易维护性。在预付费业务开展过程中,运营商为了提高业务开展和计费的灵活性,在离线计费的基础上引入了HOTBILLING准实时计费方式。采用离线方式(计费结果不影响用户通话),可以充分地进行交叉捆绑,支撑市场的各种组合营销方案,实现比较简单,在建网或业务发展初期较容易被接受和采纳。然而,离线方式计费不参与使用过程,而是基于使用记录的后处理方式,这就决定了准实时计费方案不可避免地会产生不同程度的欠费,难以防范用户的恶意欠费,也无法很好地支撑高风险、高额度业务(如长途、漫游等)的开展。同时在用户体验方面也存在问题(如无法提供通话前的资费提醒等)。随着网络演进,出现了基于IP的IMS网络,种类繁多的业务对计费系统提出了更高的要求。一方面大量的增值业务(如小额支付、网上交易等)需要实时的鉴权、计费,从而避免运营商较大的欠费风险和损失;另一方面很多的业务引擎及业务平台都有自己单一业务的实时计费平台,造成了计费能力的分散、客户资料不能集中、交叉捆绑能力差、市场营销不灵活等问题。因此3GPP组织提出了具有开放性和通用性的实时计费系统框架,支持基于承载、会话和内容事件的统一计费。这一框架将设备的话务控制功能与计费功能相分离,并建立了计费体制与会话/服务控制的直接交互,使计费完全参与到服务的使用过程中。在这样的体系下,既可以利用独立计费系统的强大能力以提供接近于准实时计费系统的灵活性,又可以利用参与使用过程的实时特性,将欠费成本将到最低。第二章开发环境21JAVA2SDK软件安装说明在下面的步骤中,你将运行自安装可执行程序来安装JAVA2SDK软件包。注意在安装完成后,你应该重新启动计算机,以便完成对注册表的修改,这样在以后卸载安装分为以下几步1检查下载文件的大小2运行安装程序3删除下载的文件可选项4设置更新PATH环境变量5检查更新CLASSPATH环境变量6使用SDK工具如果你遇到困难,可一看问题处理部分注意本文中任何部分出现如下记号,你必须用相应的版本号来代替此符号。例如,如果你下载的安装文件版本号为131_01,那么下面的文件J2SDK1_3_1_WINEXE你应将其替换为J2SDK1_3_1_01WINEXE1检查下载文件的大小在下载前,注意由下载页面提供的文件大小信息。下载完毕后,检查文件是否全部下载完毕。2运行JAVA2SDK安装文件文件J2SDK1_3_1_WINEXE是安装程序。在该文件图标上双击,然后按照安装程序给出提示完成安装。安装完成后可以删除该文件,以释放该磁盘空间。安装后的目录结构如下所示3删除下载的文件(可选项)删除下载的文件可释放硬盘空间,但对JDK运行环境无影响。4设置更新PATH环境变量不设置PATH环境变量你也可以运行JAVA2SDK,但为了方便最好进行设置。A必要进行PATH的设置么如果你想在任何目录下都可以直接方便的运行诸如JAVACEXE,JAVAEXE,JAVADOCEXE的命令行文件,而不必给出其完全路径,就应该设置PATH环境变量。如果你没有设置该变量,那么你在执行这些程序时每次都必须给出此文件所在的完全路径。例如CJDK131_INJAVACMYCLASSJAVA设置永久的PATH变量时很有用的,这样在重启动后该设置依然存在。B怎样设置PATH变量呢为了永久的设置PATH变量,只需把JDK131_IN目录的完全路径赋值给PATH变量即可典型的完全路径类似于CJDK131_IN不同操作系统下的设置方法在下面给出。WINDOWSNT和WINDOWS2000系统下依次选择设置,控制面板,系统。在WINDOWSNT下,选择环境标签;在WINDOWS2000下选择高级标签。在环境变量和用户变量中找到“PATH“,在用户变量中的“PATH“右面追加路径值。比较典型的PATH值可能是CJDK131_IN大小写没有影响。然后单击“设置“,“确定“或“应用“;PATH的值是一系列由分号(;隔开的路径。WINDOWS操作系统按照从左到右的顺序搜索该值。在一个运行环境下只能有一个JDK的BIN路径,所以如果已经存在一个了,那么可以把它更新为JDK131IN的全路径。2新的“PATH“变量设置不必重启动,就能生WINDOWS98,95下进行设置打开AUTOEXECBAT文件,按下面步骤进行设置A依次选择开始,运行,输入SYSEDIT,确定,此后有SYSEDIT打开几个窗口,激活AUTOEXECBAT窗口。B找到PATH这行(如果没有,可以加一个),其方式是在原来的路径后追加一个,比如PATHCWINDOWSCWINDOWSCOMMANDCJDK121BIN粉色部分为后追加的内容,注意不要丢掉起分隔作用的分号啊C在命令行中运行CAUTOEXECBAT可以运行CPATH来查看设置。WINDOWSME中设置PATH变量开始菜单,程序,附件,系统工具,系统信息,此时出现标题为“MISROSOFT帮助与支持“的窗口,从这个窗口中,选择工具菜单,然后选择系统配置工具,选择环境标签,PATH然后按编辑按钮,现在就可以将你的路径CJDK121IN设置为PATH的值了。保存变动,重起计算机。在WINDOWSXP下设置PATH变量开始菜单,控制面板,系统,高级,环境变量,选择PATH,追加你的JDKBIN的路径,保存设置,重新启动。5设置CLASSPATH变量CLASSPATH变量告诉JAVA应用程序在那里找到用户类。如果在你的计算机上没有CLASSPATH这个变量就可以忽略不管它。在命令行中输入CSET如果CLASSPATH没有出现在设置列表中,就不用设置了。如果需要设置,该怎么办呢在WINDOWS95,98中,也是在AUTOEXECBAT中作修改,和PATH的设置方法相同。在WIDOWSNT中,在控制面板中,系统,环境标签,用户变量,CLASSPATH,就可以进行设置了。在WINDOWS2000中,控制面板,系统,高级,环境标签,系统变量,CLASSPATH,就可以设置了。6运行JAVA2SDK程序。第三章开发技术及开发工具介绍31HIBERNATE311HIBERNATE技术概述HIBERNATE是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得JAVA程序员可以随心所欲的使用对象编程思维来操纵数据库。HIBERNATE可以应用在任何使用JDBC的场合,既可以在JAVA的客户端程序实用,也可以在SERVLET/JSP的WEB应用中使用,最具革命意义的是,HIBERNATE可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。HIBERNATE是JAVA应用和关系数据库之间的桥梁,它负责JAVA对象和关系数据之间的映射。HIBERNATE内部封装了通过JDBC访问数据库的操作,向上层应用提供了面向对象的数据访问API。312HIBERNATE工作原理HIBERNATE工作原理图313HIBERNATE的映射关系HIBERNATE包含多种映射关系一对多,多对多,继承,组件等等。32JSP321JSP技术概述JAVASERVERPAGESTMJSP技术为创建显示动态生成内容的WEB页面提供了一个简捷而快速的方法。JSP技术的设计目的是使得构造基于WEB的应用程序更加容易和快捷,而这些应用程序能够与各种WEB服务器,应用服务器,浏览器和开发工具共同工作。JSP是建立在JAVASERVLETS模型之上的表达层技术,它使编写HTML变得更简单。像SSJS一样,它也允许你将静态HTML内容与服务器端脚本混合起来生成动态输出。JSP把JAVA作为默认的脚本语言,然而,就像ASP可以使用其他语言(如JAVASCRIPT和VBSCRIPT)一样,JSP规范也允许使用其他语言。它以JAVABEANS和ENTERPRISEJAVABEANS(EJB)组件包含商务和数据逻辑的模型为基础,提供大量标签和一个脚本平台用来在HTML页中显示由JAVABEANS产生或回送的内容。由于JSP的以组件为中心的性质,他可以被JAVA和非JAVA开发者同样使用。非JAVA开发者可以通过JSP的标签(TAGS)来使用高级JAVA开发者创建的JAVABEANS。JAVA开发者不仅可以创建和使用JAVABEANS,还能在JSP页中使用JAVA语言来更精密地控制基于底层JAVABEANS的表达逻辑。322JSP工作原理在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个SERVLET而这个引擎本身也是一个SERVLET,在TOMCAT或WEBLOGIC服务器中,它就是JSPSERVLETJSP引擎先把该JSP文件转换成一个JAVA源文件,在转换时如果发现JSP文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息如果转换成功,JSP引擎用JAVAC把该JAVA源文件编译成相应的CLASS文件然后创建一个该SERVLET的实例,该SERVLET的JSPINIT方法被执行,JSPINIT方法在SERVLET的生命周期中只被执行一次然后JSPSERVICE方法被调用来处理客户端的请求对每一个请求,JSP引擎创建一个新的线程来处理该请求如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程每个客户端请求对应一个线程以多线程方式执行可大大降低对系统的资源需求,提高系统的并发量及响应时间但应该注意多线程的编程限制,由于该SERVLET始终驻于内存,所以响应是非常快的如果JSP文件被修改了,服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则将编译结果取代内存中的SERVLET,并继续上述处理过程,323JSP中的标识绝大多数JSP处理将通过与JSP相关的基于XML的标识完成。JSP10中包含大量标准标识,这些标识作为核心标识包括JSPUSEBEAN这个标识声明对一个JAVABEANS组件实例的使用。如果该组件的实例不存在,JAVABEANS组件将实例化和注册这个标识。JSPSETPROPERTY这个标识在组件的实例中设置一个属性的值。JSPGETPROPERTY这个标识获取一个组件的实例的属性值,将其转化为字符串,并且将它放入隐含对象“OUT“中。JSPINCLUDEJSPFORWARD标识的好处在于它们易于在应用程序间使用和共享。基于标识的语法的真正威力来自于客户标识库的开发,使得工具供应商或其他人员能够为特定的要求创建和分派标识。324ELEL语言是JSTL输出(输入)一个JAVA表达式的表示形式。在JSTL中,EL语言只能在属性值中使用。EL语言只能通过建立表达式来进行调用。在属性值中使用表达式有三种方式。1、VALUE属性包含一个表达式在这种情况下,表达式值被计算出来并根据类型转换规则赋值给VALUE属性。比如中的就是一个EL,它相当于JSP语句或2、VALUE属性包含一个或多个属性,这些属性被文本分割或围绕在这种情况下,表达式从左到右进行计算,并将结果转换为字符串型(根据类型转换规则),并将结果赋值给VALUE属性3、VALUE属性仅仅包含文本在这种情况下,字符串型属性VALUE将根据类型转换规则转换为标签所希望的类型。EL语言的操作符取得某个对象或集合中的属性值为了获得集合中的属性,EL支持以下两种操作1使用操作符来获得有名字的属性。例如表达式表明对象USER的USERNAME属性2使用操作符来获得有名字或按数字排列的属性。表达式和表达式含义相同表达式表明ROW集合的第一个条目。在这里USER是一个类的对象,它的属性USERNAME必须符合标准JAVABEAN的规范,即必须为USERNAME属性定义相应的GETTER、SETTER方法。EMPTY操作符空值检查使用EMPTY操作符来决定对象、集合或字符串变量是否为空或NULL。例如TRUE如果REQUEST的参数列表中的USERNAME值为NULL,则表达式的值为TRUE。EL也可以直接使用比较操作符与NULL进行比较。如TRUE。比较操作符操作符描述或EQ相等检查或NE不等检查或GT大于检查或GE大于等于检查325JSTLJSTL是一个不断完善的开放源代码的JSP标签库,是由APACHE的JAKARTA小组来维护的。JSTL只能运行在支持JSP12和SERVLET23规范的容器上,如TOMCAT4X。但是在即将推出的JSP20中是作为标准支持的。JSTL包含两个部分标签库和EL(EXPRESSIONLANGUAGE表达式语言)语言。标签库目前支持四种标签标签URI前缀示例COREHTTP/JAVASUNCOM/JSTL/CORECXMLPROCESSINGHTTP/JAVASUNCOM/JSTL/XMLXI18NCAPABLEFORMATTINGHTTP/JAVASUNCOM/JSTL/FMTFMTDATABASEACCESSSQLHTTP/JAVASUNCOM/JSTL/SQLSQLCORE支持JSP中的一些基本的操作;XMLPROCESSING支持XML文档的处理;I18NCAPABLEFORMATTING支持对JSP页面的国际化;DATABASEACCESSSQL支持JSP对数据库的操作。33STRUTS331STRUTS技术概述STRUTS最早是作为APACHEJAKARTA项目的组成部分问世运作。项目的创立者希望通过对该项目的研究,改进和提高JAVASERVERPAGES、SERVLET、标签库以及面向对象的技术水准。STRUTS这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了减少在运用MVC设计模型来开发WEB应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作STRUTS跟TOMCAT、TURBINE等诸多APACHE项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。除此之外,STRUTS的优点主要集中体现在两个方面TAGLIB和页面导航。TAGLIB是STRUTS的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许STRUTS是一个很好的起点。332STRUTS基本体系结构让我们从MVC角度观察STRUTS框架中的组件框架中三个部分模型,视窗和控制器。模型在STRUTS框架中,模型分为两个部分系统的内部状态可以改变状态的操作(事务逻辑)内部状态通常由一组ACTINFORMJAVABEAN表示。根据设计或应用程序复杂度的不同,这些BEAN可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的BEAN调用。比如购物车BEAN,它拥有用户购买商品的信息,可能还有CHECKOUT方法用来检查用户的信用卡,并向仓库发定货信息。小型程序中,操作可能会被内嵌在ACTION类,它是STRUTS框架中控制器角色的一部分。当逻辑简单时这个方法很适合。建议用户将事务逻辑(要做什么)与ACTION类所扮演的角色(决定做什么)分开。视窗由JSP建立,STRUTS包含扩展自定义标签库,可以简化创建完全国际化用户界面的过程。控制器STRUTS中,基本的控制器组件是ACTIONSERVLET类中的实例SERVELT,实际使用的SERVLET在配置文件中由一组映射(由ACTIONMAPPING类进行描述)进行定义。3STRUTS框架中的组件由于ROSE工具还未能下载,只能找来这幅图,它说明了一定问题,特别是ACTIONERRORS,但它并没有将ACTIONMAPPING,JSP和TAGLIBRARY包含进来,有时间作完替换框架中所使用的组件ACTIONSERVLET控制器,ACTIONCLASS包含事务逻辑,ACTIONFORM显示模块数据,ACTIONMAPPING帮助控制器将请求映射到操作,ACTIONFORWARD用来指示操作转移的对象ACTIONERROR用来存储和回收错误,STRUTS标记库可以减轻开发显示层次的工作333STRUTS工作原理STRUTS使用MODEL2架构。STRUTS的ACTIONSERVLET控制导航流。其他STRUTS类,比如ACTION,用来访问业务逻辑类。当ACTIONSERVLET从容器接收到一个请求,它使用URI或者路径“PATH“来决定那个ACTION将用来处理请求。一个ACTION可以校验输入,并且访问业务层以从数据库或其他数据服务中检索信息。为校验输入或者使用输入来更新数据库,ACTION需要知道什么指被提交上来。并不是强制每个ACTION从请求中抓取这些值,而是由ACTIONSERVLET将输入绑定到JAVABEAN中。输入BEAN是STRUTSACTIONFORMC类的子类。ACTIONSERVLET通过查找请求的路径可以决定使用哪个ACTIONFORM,ACTION也是通过同样的方法选取的。ACTIONFORM扩展ORGAPACHESTRUTSACTIONACTIONFORM类。每个都必须以HTTP响应进行应答。通常,STRUTSACTION并不自行加工响应信息,而是将请求转发到其他资源,比如JSP页面。STRUTS提供一个ACTIONFORWARD类,用来将一个页面的路径存储为逻辑名称。当完成业务逻辑后,ACTION选择并向SERVLET返回一个ACTIONFORWARD。SERVLET然后使用存储在ACTIONFORWARD对象中的路径来调用页面完成响应。STRUTS将这些细节都绑定在一个ACTIONMAPPING对象中。每个ACTIONMAPPING相对于一个特定的路径。当某个路径被请求时,SERVLET就查询ACTIONMAPPING对象。ACTIONMAPPING对象告诉SERVLET,哪个ACTIONS,ACTIONFORMS,和ACTIONFORWARDS将被使用。所有这些细节,关于ACTION,ACTIONFORM,ACTIONFORWARD,ACTIONMAPPING,以及其他一些东西,都在STRUTSCONFIGXML文件中定义。ACTIONSERVLET在启动时读取这个配置文件,并创建一个配置对象数据库。在运行时,STRUTS应用根据文件创建的配置对象,而不是文件本身34SPRING341SPRING技术概述SPRING是一个开源框架,它由RODJOHNSON创建。它是为了解决企业应用开发的复杂性而创建的。SPRING使用基本的JAVABEAN来完成以前只可能由EJB完成的事情。然而,SPRING的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何JAVA应用都可以从SPRING中受益。SPRING是一个开源框架,它由RODJOHNSON创建。它是为了解决企业应用开发的复杂性而创建的。SPRING使用基本的JAVABEAN来完成以前只可能由EJB完成的事情。然而,SPRING的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何JAVA应用都可以从SPRING中受益。目的解决企业应用开发的复杂性功能使用基本的JAVABEAN代替EJB,并提供了更多的企业应用功能范围任何JAVA应用简单来说,SPRING是一个轻量级的控制反转IOC和面向切面AOP的容器框架。342SPRING框架介绍组成SPRING框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下核心容器核心容器提供SPRING框架的基本功能。核心容器的主要组件是BEANFACTORY,它是工厂模式的实现。BEANFACTORY使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。SPRING上下文SPRING上下文是一个配置文件,向SPRING框架提供上下文信息。SPRING上下文包括企业服务,例如JNDI、EJB、电子邮件、国际化、校验和调度功能。SPRINGAOP通过配置管理特性,SPRINGAOP模块直接将面向方面的编程功能集成到了SPRING框架中。所以,可以很容易地使SPRING框架管理的任何对象支持AOP。SPRINGAOP模块为基于SPRING的应用程序中的对象提供了事务管理服务。通过使用SPRINGAOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中。SPRINGDAOJDBCDAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。SPRINGDAO的面向JDBC的异常遵从通用的DAO异常层次结构。SPRINGORMSPRING框架插入了若干个ORM框架,从而提供了ORM的对象关系工具,其中包括JDO、HIBERNATE和IBATISSQLMAP。所有这些都遵从SPRING的通用事务和DAO异常层次结构。SPRINGWEB模块WEB上下文模块建立在应用程序上下文模块之上,为基于WEB的应用程序提供了上下文。所以,SPRING框架支持与JAKARTASTRUTS的集成。WEB模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。SPRINGMVC框架MVC框架是一个全功能的构建WEB应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置的,MVC容纳了大量视图技术,其中包括JSP、VELOCITY、TILES、ITEXT和POI。SPRING框架的功能可以用在任何J2EE服务器中,大多数功能也适用于不受管理的环境。SPRING的核心要点是支持不绑定到特定J2EE服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同J2EE环境(WEB或EJB)、独立应用程序、测试环境之间重用。343IOC和AOP控制反转模式(也称作依赖性介入)的基本概念是不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器(在SPRING框架中是IOC容器)负责将这些联系在一起。在典型的IOC场景中,容器创建了所有对象,并设置必要的属性将它们连接在一起,决定什么时间调用方法。下表列出了IOC的一个实现模式。类型1服务需要实现专门的接口,通过接口,由对象提供这些服务,可以从对象查询依赖性(例如,需要的附加服务)类型2通过JAVABEAN的属性(例如SETTER方法)分配依赖性类型3依赖性以构造函数的形式提供,不以JAVABEAN属性的形式公开SPRING框架的IOC容器采用类型2和类型3实现。面向方面的编程面向方面的编程,即AOP,是一种编程技术,它允许程序员对横切关注点或横切典型的职责分界线的行为(例如日志和事务管理)进行模块化。AOP的核心构造是方面,它将那些影响多个类的行为封装到可重用的模块中。AOP和IOC是补充性的技术,它们都运用模块化方式解决企业应用程序开发中的复杂问题。在典型的面向对象开发方式中,可能要将日志记录语句放在所有方法和JAVA类中才能实现日志功能。在AOP方式中,可以反过来将日志服务模块化,并以声明的方式将它们应用到需要日志的组件上。当然,优势就是JAVA类不需要知道日志服务的存在,也不需要考虑相关的代码。所以,用SPRINGAOP编写的应用程序代码是松散耦合的。AOP的功能完全集成到了SPRING事务管理、日志和其他各种特性的上下文中。35MYECLIPSE351MYECLIPSE简介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有两种下载方式,一种是PLUGINS,另一种是ALLINONE,后一种方式包括ECLIPSE平台了,所以这种方式不需要事先安ECLIPSE,而前一种方式需要另外的ECLIPSE352MYECLIPSE的安装首先下载“MYECLIPSEENTERPRISEWORKBENCH551GAFORWINDOWS98/2000/NT/XP/VISTA”然后安装“MYECLIPSE_551GA_E322_FULLSTACKINSTALLEREXE”。注意当安装到下图所示的步骤的时候要选择ECLIPSE的安装路径(如图),其他选项保持默认。安装完毕之后,这时候可以直接运行ECLIPSE平台,查看MYECLIPSE是否安装成功。看到MYELIPSE菜单,MYECLIPSE算是安装完毕注因为MYECLIPSE是ECLIPSE的插件,所以也可以将MYECLIPSE安装目录下FEATURES和PLUGINS这2个目录的文件,拷贝到ECLIPSE的相应目录下,ECLIPSE会自动认出这些插件。删除LINKS目录内对应链接文件“ECLIPSELINKSCOMGENUITECECLIPSEMYECLIPSELINK”,修改“ECLIPSEECLIPSEINI”文件可去除MYECLIPSE引导LOGO,运行ECLIPSE平台,查看MYECLIPSE是否安装成功。成功可以将刚才安装的MYECLIPSE卸载。注册MYECLIPSEMYECLIPSE不是免费的,30天免费试用输入注册名,生成序列号。运行ECLIPSEEXE(首次运行要求指定WORKSPACE),依次点击窗口首选项MYECLIPSESUBSCRIPTIONENTERSUBSCRIPTION,输入注册名以及注册码。MYECLIPSE注册完毕。36TOMCAT361TOMCAT简介TOMCAT40X中采用了新的SERVLET容器CATALINA,完整的实现了SERVLET23和JSP12规范。TOMCAT提供了各种平台的版本供下载,可以从其官方网站上下载其源代码版或者二进制版。由于JAVA的跨平台特性,基于JAVA的TOMCAT也具有跨平台性。与传统的桌面应用程序不同,TOMCAT中的应用程序是一个WAR(WEBARCHIVE)文件。WAR是SUN提出的一种WEB应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织通常其根目录下包含有HTML和JSP文件或者包含这两种文件的目录,另外还会有一个WEBINF目录,这个目录很重要。通常在WEBINF目录下有一个WEBXML文件和一个CLASSES目录,WEBXML是这个应用的配置文件,而CLASSES目录下则包含编译好的SERVLET类和JSP或SERVLET所依赖的其它类(如JAVABEAN)。通常这些所依赖的类也可以打包成JAR放到WEBINF下的LIB目录下,当然也可以放到系统的CLASSPATH中,但那样移植和管理起来不方便。在TOMCAT中,应用程序的部署很简单,你只需将你的WAR放到TOMCAT的WEBAPP目录下,TOMCAT会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的JSP时,通常第一次会很慢,因为TOMCAT要将JSP转化为SERVLET文件,然后编译。编译以后,访问将会很快。另外TOMCAT也提供了一个应用MANAGER,访问这个应用需要用户名和密码,用户名和密码存储在一个XML文件中。通过这个应用,辅助于FTP,你可以在远程通过WEB部署和撤销应用。当然本地也可以。TOMCAT不仅仅是一个SERVLET容器,它也具有传统的WEB服务器的功能处理HTML页面。但是与APACHE相比,它的处理静态HTML的能力就不如APACHE我们可以将TOMCAT和APACHE集成到一块,让APACHE处理静态HTML,而TOMCAT处理JSP和SERVLET这种集成只需要修改一下APACHE和TOMCAT的配置文件即可。另外,TOMCAT提供REALM支持。REALM类似于UNIX里面的GROUP在UNIX中,一个GROUP对应着系统的一定资源,某个GROUP不能访问不属于它的资源。TOMCAT用REALM来对不同的应用(类似系统资源)赋给不同的用户(类似GROUP)。没有权限的用户则不能访问这个应用。TOMCAT提供三种REALM,1JDBCREALM,这个REALM将用户信息存在数据库里,通过JDBC获得用户信息来进行验证。2JNDIREALM,用户信息存在基于LDAP的服务器里,通过JNDI获取用户信息。3MEMORYREALM,用户信息存在一个XML文件里面,上面讲的MANAGER应用验证用户时即使用此种REALM通过REALM我们可以方便地对访问某个应用的客户进行验证。在TOMCAT4中,你还可以利用SERVLET23提供的事件监听器功能,来对你的应用或者SESSION实行监听。TOMCAT也提供其它的一些特征,如与SSL集成到一块,实现安全传输。还有TOMCAT也提供JNDI支持,这与那些J2EE应用服务器提供的是一致的。说到这里我们要介绍一下通常所说的应用服务器(如WEBLOGIC)与TOMCAT有何区别。应用服务器提供更多的J2EE特征,如EJB,JMS,JAAS等,同时也支持JSP和SERVLET而TOMCAT则功能没有那么强大,它不提供EJB等支持。但如果与JBOSS(一个开源的应用服务器)集成到一块,则可以实现J2EE的全部功能。既然应用服务器具有TOMCAT的功能,那么TOMCAT有没有存在的必要呢事实上,我们的很多中小应用不需要采用EJB等技术,JSP和SERVLET已经足够,这时如果用应用服务器就有些浪费了。而TOMCAT短小精悍,配置方便,能满足我们的需求,这种情况下我们自然会选择TOMCAT基于TOMCAT的开发其实主要是JSP和SERVLET的开发,开发JSP和SERVLET非常简单,你可以用普通的文本编辑器或者IDE,然后将其打包成WAR即可。我们这里要提到另外一个工具ANT,ANT也是JAKARTA中的一个子项目,它所实现的功能类似于UNIX中的MAKE你需要写一个BUILDXML文件,然后运行ANT就可以完成XML文件中定义的工作,这个工具对于一个大的应用来说非常好,我们只需在XML中写很少的东西就可以将其编译并打包成WAR事实上,在很多应用服务器的发布中都包含了ANT另外,在JSP12中,可以利用标签库实现JAVA代码与HTML文件的分离,使JSP的维护更方便。TOMCAT也可以与其它一些软件集成起来实现更多的功能。如与上面提到的JBOSS集成起来开发EJB,与COCOON(APACHE的另外一个项目)集成起来开发基于XML的应用,与OPENJMS集成起来开发JMS应用,除了我们提到的这几种,可以与TOMCAT集成的软件还有很多。362TOMCAT的安装当MYECLIPSE安装完成后,可以在MYECLIPSE继承TOMCAT,具体步骤如下接252MYECLIPSE安装完成后JAVAJ2SDK1_4_2_06WINDOWSI586PEXETOMCATJAKARTATOMCAT5028EXEECLIPSEECLIPSESDK31WIN32ZIPMYECLIPSEENTERPRISEWORKBENCHINSTALLER_40GA_E31EXELOMBOZLOMBOZ31RC2ZIP1首先安装JAVA的J2SDK和TOMCAT到指定位置并测试成功2安装ECLIPSE到你指定的目录(在C盘建立一个JAVA的目录把JAVA和TOMCAT及ECLIPSE安装在一起)3安装MYECLIPSE默认安装)4安装LOMBOZ到ECLIPSE的目录里5安装完成后运行MYECLIPSE,打开WINDOW/PREFERENCES图一安装J2SDK7开启JDK指向的J2SKD的路径(图三)8程序安装完成后新建工程(图四)9启动TOMCAT(图五)10TOMCAT启动工程(图六)安装完毕。第四章ORACLE数据库41ORACLE简介ORACLE数据库产品是当前数据库技术的典型代表,她的产品除了数据库系统外,还有应用系统、开发工具等。ORACLE是以高级结构化查询语言SQL为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的客户/服务器CLIENT/SERVER体系结构的数据库之一。ORACLE7X以来引入了共享SQL和多线索服务器体系结构。这减少了ORACLE的资源占用,并增强了ORACLE的能力,使之在低档软硬件平台上用较少的资源就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。ORACLE提供了基于角色ROLE分工的安全保密管理。在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。支持大量多媒体数据,如二进制图形、声音、动画以及多维数据结构等。ORACLE提供了与第三代高级语言的接口软件PRO系列,能在C,C等主语言中嵌入SQL语句及过程化PL/SQL语句,对数据库中的数据进行操纵。加上它有许多优秀的前台开发工具如POWERBUILD、SQLFORMS、VISIABASIC等,可以快速开发生成基于客户端PC平台的应用程序,并具有良好的移植性。ORACLE提供了新的分布式数据库能力。可通过网络较方便地读写远端数据库里的数据,并有对称复制的技术。ORACLE存储结构1、物理结构ORACLE数据库在物理上是存储于硬盘的各种文件。它是活动的,可扩充的,随着数据的添加和应用程序的增大而变化。2、逻辑结构ORACLE数据库在逻辑上是由许多表空间构成。主要分为系统表空间和非系统表空间。非系统表空间内存储着各项应用的数据、索引、程序等相关信息。我们准备上马一个较大的ORACLE应用系统时,应该创建它所独占的表空间,同时定义物理文件的存放路径和所占硬盘的大小。第五章NETCT_OSS系统的需求分析51系统的设计思想电信运营计费系统NETCTOSS是利用J2EE平台下的WEB技术设计和运行通过利用PL/SQL从AAA服务器上采集数据然后整和到中央数据库里,供用户和管理员进行大量的查询帐单和帐户其中持久层采用封装JDBC的HIBERNATE框架,数据库采用ORACLE10I,并用STRUTS作为控制器,页面显示需要JSP技术,并且用SPRING框架整和,完成企业级应用系统业务模型如下A从上图我们可以清楚的了解整个系统的流程客户通过网络登陆到服务器。然后服务器要验证用户的姓名和密码,服务器中含有一个配置文件,这个文件中包含了用户的姓名和密码信息,每次用户登陆的时候,服务器就会自动在配置文件中查找,看有没有匹配的。如果有,则让其登入,没有则不受理这个请求。与此同时,服务器会把用户的登陆信息,登陆时间记录到一个文件中,当用户退出的时候,也会记录用户退出时的时间,保存到LOGFILLE文件中。当用户登陆到系统出租的服务器后,用户就可以进加工处理工单处理计费信息网管信息统计信息页面报警MAIL报警声音报警WEB查询WEB查询管理员大客户MIBWEB管理WEB管理IP网用户网AA配置信息LOGINNAME用户业务帐号表NET_SERVICE(用于保存用户业务帐号信息),该表引用用户表的主键为外键,并引用资费表的主键为外键。具体建表语句如下CREATETABLET_USER_SERVICESIDNUMBER32PRIMARYKEY,主键编码USER_IDNUMBER32REFERENCEST_USERSID,用户表主键编码LAB_LOGIN_NAMEVARCHAR210,用户业务帐号LAB_LOGIN_PASSWORDVARCHAR232,用户业务帐号密码LAB_IPVARCHAR232NOTNULL,服务器编码USER_STATUSNUMBER2,业务帐号状态(0正常;1暂停;2删除)PRICING_IDNUMBERREFERENCEST_PRICIN

温馨提示

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

评论

0/150

提交评论