(计算机应用技术专业论文)基于strutshibernate的审计管理系统的研究与实现.pdf_第1页
(计算机应用技术专业论文)基于strutshibernate的审计管理系统的研究与实现.pdf_第2页
(计算机应用技术专业论文)基于strutshibernate的审计管理系统的研究与实现.pdf_第3页
(计算机应用技术专业论文)基于strutshibernate的审计管理系统的研究与实现.pdf_第4页
(计算机应用技术专业论文)基于strutshibernate的审计管理系统的研究与实现.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

(计算机应用技术专业论文)基于strutshibernate的审计管理系统的研究与实现.pdf.pdf 免费下载

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

文档简介

华北电力大学硕士学位论文 摘要 十一五期间,国家电网公司提出了建设s g l 8 6 信息化工程,来整合公司的八大 业务模块,通过统一的数据中心,形成总部、网省、地市三级应用。审计管理系统 是国家电网公司s g l 8 6 信息化工程的重要组成部分,本文根据审计业务的特点,依 照s g l 8 6 信息化工程的建设原则,并结合国家电网公司的具体情况,介绍了系统的 开发平台,系统详细设计,系统实现等内容。 课题首先分析了j 2 e e 平台,介绍了j 2 e e 的特点以及j 2 e e 的分层模型,并深 入的研究了基于m v c 设计模式的s t r u t s 构建w e b 应用层以及使用h i b e r n a t e 技术来 实现数据持久层。接下来,根据系统的需求分析,对系统的主要功能模块进行详细 设计并实现。最后,文章对审计管理系统中两级部署,三级应用涉及到的一些关键 技术作了深入的研究,并给出了详细的解决方案。 关键字:信息化,审计,j 2 e e ,两级部署 a b s t r a c t d u r i n gt h ef i f t e e n t hf i v ey e a rp l a n t h es g c c ( s t a t eg r i dc o r p o r a t i o no fc h i n a ) a d v a n c e t h es g l8 6i n f o r m a t i o np r o j e c t ,t oc o n f o r m i t yt h ee i g h to p e r a t i o nm o d u l e ,f o r m i n gt h et h r e e a p p l i c a t i o n so fh e a d q u a r t e r s ,p r o v i n c e ,a n de i t yt ot h eu n i f i e dd a t ac e n t e r t h ea u d i t m a n a g e m e n ts y s t e mi so n ei m p o r t a n tp a r to ft h es g l8 6 t h ea r t i c l ep r o d u c et h ed e v e l o p m e n t p l a f f o r i l l ,s y s t e r np a r t i c u l a rd e s i g n , s y s t e mi m p l e m e n te t c ,b a s eo nt h ec h a r a c t e r i s t i co ft h e a u d i t ,t h ec o n s t r u c tp r i n c i p l eo ft h es g l8 6a n dt h ei d i o 盯a p l l i cc o n d i t i o no f t h es g c c f i r s to fa 1 1 t h et h e s i sa n a l y z e st h ej 2 e ep l a t f o r m ;p r o d u c ei t sc h a r a c t e r i s t i ca n d d e l a m i n a t i n gm o d e l d e e p l yr e s e a r c ht h es t r u t sb u i l d i n gt h ew e ba p p l i c a t i o nl a y e rb a s e do n m v cm o d e ,a n du s i n gt h eh i b e r n a t et or e a l i z i n gt h ed a t ap e r m a n e n c el a y e r t h 饥,t h et h e s i s d e s i g nt h es y s t e ma m p l ya n dr e a l i z ei t i nt h ee n d ,t h et h e s i sr e s e a r c ht h ek e yt e c h n i q u ea b o u t t h et w ol e v e l d e p l o y ,t h r e el e v e la p p l i c a t i o n ,a n dg i v et h ed e t a i l e dr e s o l v es c h e m e m o y a n ( c o m p u t e ra p p l i c a t i o nt e c h n o l o g y ) d i r e c t e db yp r o f w a n gy i n g k e yw o r d s :i n f o r m a t i o n a l ,a u d i t ,j 2 e e ,t w ol e v e ld e p l o y 华北电力大学硕士学位论文 摘要 十一五期间,国家电网公司提出了建设s g l 8 6 信息化工程,来整合公司的八大 业务模块,通过统一的数据中心,形成总部、网省、地市三级应用。审计管理系统 是国家电网公司s g l 8 6 信息化工程的重要组成部分,本文根据审计业务的特点,依 照s g l 8 6 信息化工程的建设原则,并结合国家电网公司的具体情况,介绍了系统的 开发平台,系统详细设计,系统实现等内容。 课题首先分析了j 2 e e 平台,介绍了j 2 e e 的特点以及j 2 e e 的分层模型,并深 入的研究了基于m v c 设计模式的s t r u t s 构建w e b 应用层以及使用h i b e r n a t e 技术来 实现数据持久层。接下来,根据系统的需求分析,对系统的主要功能模块进行详细 设计并实现。最后,文章对审计管理系统中两级部署,三级应用涉及到的一些关键 技术作了深入的研究,并给出了详细的解决方案。 关键字:信息化,审计,j 2 e e ,两级部署 a b s t r a c t d u r i n gt h ef i f t e e n t hf i v ey e a rp l a n t h es g c c ( s t a t eg r i dc o r p o r a t i o no fc h i n a ) a d v a n c e t h es g l8 6i n f o r m a t i o np r o j e c t ,t oc o n f o r m i t yt h ee i g h to p e r a t i o nm o d u l e ,f o r m i n gt h et h r e e a p p l i c a t i o n so fh e a d q u a r t e r s ,p r o v i n c e ,a n de i t yt ot h eu n i f i e dd a t ac e n t e r t h ea u d i t m a n a g e m e n ts y s t e mi so n ei m p o r t a n tp a r to ft h es g l8 6 t h ea r t i c l ep r o d u c et h ed e v e l o p m e n t p l a f f o r i l l ,s y s t e r np a r t i c u l a rd e s i g n , s y s t e mi m p l e m e n te t c ,b a s eo nt h ec h a r a c t e r i s t i co ft h e a u d i t , t h ec o n s t r u c tp r i n c i p l eo f t h es g l8 6a n dt h ei d i o g r a p h i cc o n d i t i o no f t h es g c c f i r s to fa 1 1 t h et h e s i sa n a l y z e st h ej 2 e ep l a t f o r m ;p r o d u c ei t sc h a r a c t e r i s t i ca n d d e l a m i n a t i n gm o d e l d e e p l yr e s e a r c ht h es t r u t sb u i l d i n gt h ew e ba p p l i c a t i o nl a y e rb a s e do n m v cm o d e ,a n du s i n gt h eh i b e r n a t et or e a l i z i n gt h ed a t ap e r m a n e n c el a y e r t h 饥,t h et h e s i s d e s i g nt h es y s t e ma m p l ya n dr e a l i z ei t i nt h ee n d ,t h et h e s i sr e s e a r c ht h ek e yt e c h n i q u ea b o u t t h et w ol e v e ld e p l o y ,t h r e el e v e la p p l i c a t i o n ,a n dg i v et h ed e t a i l e dr e s o l v es c h e m e m oy a n ( c o m p u t e r a p p l i c a t i o nt e c h n o l o g y ) d i r e c t e db yp r o f w a n gy i n g k e yw o r d s :i n f o r m a t i o n a l ,a u d i t ,j 2 e e ,t w ol e v e ld e p l o y 声明户明 本人郑重声明:此处所提交的硕士学位论文基于s t r u t s + h i b e r n a t e 的审计管理系 统的研究与实现,是本人在华北电力大学攻读硕士学位期间,在导师指导下进行的研 究工作和取得的研究成果。据本人所知,除了文中特别加以标注和致谢之处外,论文中 不包含其他人已经发表或撰写过的研究成果,也不包含为获得华北电力大学或其他教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已 在论文中作了明确的说明并表示了谢意。 学位论文作者签名: 塞匝 日 期:望墨:i :! z 关于学位论文使用授权的说明 本人完全了解华北电力大学有关保留、使用学位论文的规定,即:学校有权保管、 并向有关部门送交学位论文的原件与复印件;学校可以采用影印、缩印或其它复制手 段复制并保存学位论文;学校可允许学位论文被查阅或借阅;学校可以学术交流为 目的,复制赠送和交换学位论文;同意学校可以用不同方式在不同媒体上发表、传播 学位论文的全部或部分内容。 ( 涉密的学位论文在解密后遵守此规定) 作者签名:墓匝 日期: 峻:! 士 翩签名:皇塾 日 期:始:主! 丝 华北电力大学硕士学位论文 1 1 研究背景及意义 第一章引言 随着信息化的普及和企业计算机技术的迅猛发展,越来越多的企业开始采用信 息化的管理方法管理企业内部的各项业务。国家电网公司对企业信息化应用也越来 越重视,“十五 期间,国家电网公司的信息化建设取得了很大进步。基本建成以 宽带网络为主要标志的电力信息基础设施,信息技术应用从生产自动化向企业信息 化全面发展和深化,逐步进入信息资源建设与管理并重阶段,信息安全初步纳入电 力安全生产体系,网络与信息系统的基础性、全局性作用日益增强。 根据国内电力行业信息化的发展现状,通过借鉴国外的电力企业信息化发展中 的一些成功经验,国家电网公司提出了建设s g l 8 6 信息化工程,s g l 8 6 信息化工程 指的是整合国家电网公司八大业务模块,通过统一的数据交换平台,形成八大业务 的三级( 国网总部,网省公司,地市公司) 应用。其中,审计管理系统是s g l 8 6 信 息化工程中的重要组成部分。 目前,国家与社会对审计工作越来越重视,审计工作在各行各业发挥的作用也 越来越大。在国家电网公司内部,审计工作的范围和复杂程度也在逐渐增强。随着 会计数据电子化和海量化的发展,在人力资源有限的情况下,凭借传统的手工方式 开展各种审计工作,已经远不能满足现代审计的需要。所以审计业务信息化的发展 也成为了大势所趋【lj 。 当前,国网的财务系统并不统一。在一些信息化较为发达的网省公司,财务系 统通过e r p 建设来实现,实现与物资、工程等业务的紧密耦合;对于大部分网省公 司,还是采用物理较独立的、功能较单一的独立财务核算软件进行财务数据的管理。 在被审计对象不断信息化的情况下,审计工作必须紧跟信息化建设的步伐,加快自 己的信息化建设。由于审计对象的广泛性,涉及业务的多样性,如财务、营销、工 程、物资采购等,如何建设高效、易用的审计工具成为审计信息化建设的重点与难 点。同时,必须建立完整的审计管理系统来管理审计日常事务,管理公司系统审计 决策、方向、重点、计划、日常事务等事项。在制度的约束下,大量审计工作在平 台上运行,达到信息共享,规范审计流程,提高审计效率,提高审计现代化水平的 作用。 华北电力大学硕士学位论文 1 2 国内外电力行业信息化的发展现状 1 2 1 国外电力行业信息化的发展现状 在国外的电力企业信息化发展中,美国、日本、德国的电力信息化水平发展最 好。这些经验对国内电力企业信息化建设具有很强的借鉴意义。 美国:目前,美国电力行业企业信息化应用水平是最先进的,从基础网络建设、 自动化系统建设、管理信息系统建设方面,美国电力企业信息化水平要超前五年以 上。尤其在国内应用比较薄弱的大型管理信息系统方面,如e r p 、c r m 、e c 等, 美国电力企业几乎1 0 0 都已经应用。而且,在系统集成方面,美国电力企业也远 远走在前面。例如美国太平洋煤气电力公司( p g & e ) 、纽约联合爱迪生公司曼哈顿调 度中心等,基本实现了s c a d a 与管理信息系统、电网分析系统等完全集成。另外, 在电力企业电子商务应用方面,美国电力企业远远走在了世界的前面,很多美国电 力公司实现了网上原材料招标采购,降低采购成本3 0 以上。同时,许多电力公司 准备建立具有竞争性质的b 2 b 电力交流平台,实现电力网上交易。 日本:同样,日本电力企业信息化建设水平与我们国家相近,但在管理信息化 方面比中国电力应用要深入先进。例如:东京电力公司1 9 6 0 一1 9 6 7 年运用计算机 处理公司人事、劳资、工资福利、医疗保健等业务工作:1 9 7 5 年一1 9 8 4 年实现内 部联网,建立客户综合信息处理系统;1 9 8 4 1 9 8 8 年实现电力设备及工程数据库系 统化;1 9 8 9 年实现公司系统一体化,并借助i n t e r n e t 和e d i 技术与外部系统实 现互联。又如:日本中部电力公司实现g i s 系统、自动化系统与管理信息系统的综 合运用,实现地图测绘、工程公司工程设计支援、停电信息区域分布处理、现场作 业信息支援、施工管理、配电自动化等功能。另外,日本电力企业一般都建立了自 己庞大的i t 支持人员队伍,直接参与本公司的信息化建设与管理服务。 德国:德国于1 9 9 9 年将电力市场进行了1 0 0 的开放,这是德国电力行业的重 大改革。当然,改革需要德国政府的大力支持,同时也与德国电力企业信息化的发 展分不开的。电力市场放开后,传统的经营管理方式、工作效率都不能满足企业的 需要。德国电力行业企业采用信息化技术,实现了电力电子商务、企业资源管理、 全面自动化系统建设。在基础网络建设方面,德国电力通讯也走在世界的前面。 1 2 2 国内电力行业信息化的发展现状 在我国,随着电信和民航市场的逐步放开,越来越多的人开始关注电力行业的 体制改革。我国的电力行业信息化建设起步较早,早在上世纪6 0 年代,电力行业 就已经将信息技术应用到生产过程自动化、发电厂自动监测监制以及变电站自动监 2 华北电力大学硕士学位论文 测监控方面。 但由于电力行业一直处于相对垄断地位,加之变革频繁,电力行业的关注点一 直处于如何贯彻体制改革和如何提高产能方面,所以整个电力行业的信息化应用水 平不高,整个行业缺乏统一性标准。电力行业目前在信息化建设方面存在三大结构 性问题: 第一、基础硬件投入偏多,软件投入相对不足。 没有软件系统的支持,硬件系统无法发挥出应有的效用,因此,在信息化建设 方面,电力行业的企业在信息化建设上,要坚决摒弃“信息化建设就是买设备”的想 法,做到统筹规划,避免信息化资源的盲目投入和浪费。 第二、专业系统众多,系统管理软件缺乏。 我国的电力行业信息化建设起步较早,但由于存在行业垄断,电力行业的主要 注意力多放在如何提高产能和安全生产上,因此,虽经过多年的信息化建设,目前 整个电力行业仍处于专业系统众多而系统管理软件缺乏的局面,生产自动化系统的 应用仍然是电力行业软件应用的主体,对于电力行业的产、输、配、售环节的过 程监控有余,但对于电力企业的管理决策的支持能力则严重不足。 第三、系统孤立,信息无法集中为资源。 在对电力行业软件使用情况中的分析中,我们发现,电力行业的管理软件使用 大多还处在财务系统、人力资源管理系统以及简单的o a 系统等单个管理信息化系 统的应用层面,有些电力企业尝试实施e r p 系统,但最后大多效果不佳。这主要因 为电力行业过去为垄断行业,在垄断的环境下,电力行业对于提升内部管理的需求 不高。 过去的经验告诉我们,通过流程优化( b p r ) ,可以很好的把企业变革和信息系 统建设统一在一起。因此,以流程优化来理顺电力行业各个孤立系统之间的关系, 流程优化虽然是个老生常谈的话题,但对于长期处于垄断地位得电力行业来说,以 流程优化来促进电力行业信息化的建设或许是电力行业信息化建设的一个突破。 此外,为了保障电力行业在信息、网络方面的可靠性与安全性,应该对电力系 统光纤通信网、数据网、信息网进行整合与统一。其次是管理信息系统等信息化应 用系统内部的整合。经过多年来持续不断的建设,电力行业内部各个子系统采用了 各种不同的平台和管理软件,这不利于使用操作、管理维护和整体效果的发挥,因 此要进行平台整合。 再就是各信息化应用系统间的整合。目前在电力系统的各专业应用了管理信息 系统、营销自动化系统( 包括客户服务中心) 、电力生产管理系统、电力市场技术支 持系统、物资采购系统、g i s 系统等,随着应用的普遍,各系统间也需要进行平台 及内部工作流程的整合与统一。电力信息化集成的基础是电力企业管理流程的优 化,没有流程优化,就无法从根本上明确电力企业各系统之间的运作关系,也就无 3 华北电力大学硕士学位论文 法实现系统的集成。总之,国内电力行业信息化建设的路还需要走很长一段时间, 面对变革,电力行业需要勇气,抓住变革的时机,利用流程优化来促进自身信息化 的建设,为迎接整个电力行业的市场化和规范化打好基础,做好准备。 1 3 课题主要研究内容 课题主要是对国家电网公司审计管理系统进行研究和设计,课题主要的研究内 容包括: 1 、深入的研究s t r u t s + h i b e r n a t e 设计模式。 2 、应用s t r u t s 架构,采用h i b e r n a t e 技术,解决了数据持久层中对象关系映射 问题。 3 、 习。 4 、 5 、 6 、 方案。 对w e b 应用框架下的s t r u t s 以及h i b e r n a t e 的体系结构做了深入的研究与学 系统总体框架的设计。 系统详细设计与实现。 针对国网公司的“s g l 8 6 工程 的建设原则及部署方式给出了具体的解决 4 华北电力大学硕士学位论文 第二章系统开发平台及关键技术简介 j 2 e e 平台在开发和部署方面具备高效、灵活、可伸缩、稳定等良好的性能,因 此,审计管理系统采用j 2 e e 体系结构来实现企业级的开发、部署和应用。其中, w e b 层主要通过s t r u t s 框架来实现。数据库采用o r a c l e 数据库。由于系统开发所使 用的j a v a 语言是面向对象的设计语言,而o r a c l e 数据库是关系数据库,面向对象设 计的机制与关系模型有很大的不同,这造成了面向对象设计与关系数据库设计之间 的不匹配,因此,系统使用h i b e r n a t e 技术来解决两种模型的不匹配问题,实现数据 持久化。 2 1j 2 e e 平台概述 j 2 e e 是一种利用j a v a2 平台来解决企业级方案的开发、部署和管理相关的复 杂问题的体系结构。j 2 e e 技术的基础就是核心j a v a 平台或j a v a2 平台的标准 版,j 2 e e 不仅巩固了标准版中的许多优点,如”编写一次、随处运行”的特性、方便 存取数据库的j d b ca p i 、c o r b a 技术以及能够在i n t e r a c t 应用中保护数据的安 全模式等等,同时还提供了对e j b ( e n t e r p r i s ej a v a b e a n s ) 、j a v as e r v l e t sa p i 、j s p ( j a v as e r v e rp a g e s ) 以及x m l 技术的全面支持【2 】。其最终目的就是成为一个能够 使企业开发者大幅缩短投放市场时间的体系结构。j 2 e e 体系结构提供中间层集成 框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需 求。通过提供统一的开发平台,j 2 e e 降低了开发多层应用的费用和复杂性,同时 提供对现有应用程序集成强有力支持,完全支持e n t e r p r i s ej a v a b e a n s ,有良好的向 导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。 2 1 1j 2 e e 的特点 j 2 e e 提供了一个企业级的计算模型和运行环境用于开发和部署多层体系结构 的应用,如图2 1 所示。它通过提供企业计算环境所必需的各种服务,使得部署在 j 2 e e 平台上的多层应用可以实现高可用性、安全性、可扩展性和可靠性【3 1 。 华北电力大学硕士学位论文 应用服务器 图2 - 1j 2 e e 架构 j 2 e e 的多层分布式体系结构,之所以具有高可用性、高可靠性以及可扩展性, 这是因为: 1 、j a v as e r v l e t 和j s p 都要编译为j a v ac l a s s 才作为s e r v l e t 运行,因此执 行性能会明显提高。 2 、j a v as e r v l e t 和j s p 中可以完全使用j a v a 进行编程,可以完成许多简单的 商业逻辑,特别是j s p ,可以直接书写h t m l ,因此简化了页面的输出,这样就保 留了脚本语言易于使用的优点。 3 、复杂的商业逻辑以组件的形式部署在e j bs e r v e r 中。由于e j b s e r v e r 提供 了多种组件事务服务,使系统更能够应付大量的并发用户和管理复杂的事务逻辑。 4 、e j bs e r v e r 中集成的组件命名服务可以使组件位置透明化,简化了组件的 部署和客户端应用的维护。 5 、开发过程易于分工,可以由专人负责编写组件,其他人组装页面。 6 、j 2 e e 平台全面支持和实施x m l ,这种强大的组合可使x m l 具备跨平台 的兼容性,甚至用于对x m l 代码进行语法检查和调试的工具也可与平台无关。 j 2 e e 技术和x m l 技术分别是企业开发的阴阳两极,因为x m l 可实施独立于平 台的数据,而j 2 e e 平台则可实施独立于平台的解决方案。x m l 可通过移植的方 式表现数据,因此就对j a v a 技术的可移植性构成了补充。 2 1 2j 2 e e 的分层模型 j 2 e e 使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组 件根据他们所在的层分布在不同的机器上。事实上,s u n 设计j 2 e e 的初衷正是 为了解决两层模式( c l i e n t s e r v e r ) 的弊端。在传统模式中,客户端担当了过多的角色 而显得臃肿。在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可 6 华北电力大学硕士学位论文 伸展性也不理想,而且是经常基于某种专有的协议,通常是某种数据库协议。它使 得重用业务逻辑和界面逻辑非常困难。 现在,j 2 e e 的多层企业级应用模型,将两层化模型中的不同层面切分成许多 层,一个多层化应用能够为不同的每种服务提供一个独立的层。以下是j 2 e e 典型 的三层结构: l 、运行在j 2 e e 服务器上的w e b 层组件。 2 、运行在j 2 e e 服务器上的业务逻辑层组件。 3 、运行在e i s 服务器上的基础构架层软件。 j 2 e e 应用程序是由各种不同的组件所构成。j 2 e e 组件是具有独立功能的软件 单元,它们通过相关的类和文件组装成j 2 e e 应用程序,并能与其他组件进行交互。 w e b 层组件可以是j s p 页面或s e r v l e t s 。按照j 2 e e 规范,静态的h t m l 页 面和a p p l e t s 不算是w e b 层组件。w e b 层可能包含某些j a v a b e a n 对象来处理用 户输入,并把输入发送给运行在业务层上的e n t e r p r i s eb e a n 来进行处理。业务层代 码的逻辑用来满足银行、零售、金融等特殊商务领域的需要,由运行在业务层上的 e n t e r p r i s eb e a n 进行处理。有三种企业级的b e a n :会话( s e s s i o n ) b e a n s 、实体( e n t i t y ) b e a n s 、和消息驱动( m e s s a g e d r i v e n ) b e a n s 。其中,会话b e a n 表示与客户端程序的临 时交互。当客户端程序执行完后,会话b e a n 和相关数据就会消失;实体b e a n 表 示数据库的表中一行永久的记录。当客户端程序中止或服务器关闭时,就会有潜在 的服务保证实体b e a n 的数据得以保存。消息驱动b e a n 结合了会话b e a n 和j m s ( j a v am e s s a g i n gs e r v i c e ,j a v a 消息服务) 的消息监听器的特性,允许一个业务层组 件异步接收j m s 消息。 2 2w c 模式与s t r u t s 框架 2 2 1h v c 设计模式简介 m v c 设计模式是m o d e l v i e w c o n t r o l l e r 的简称,即模型视图控制器。m v c 是一种被广泛使用的软件设计模式,它强制性地把应用程序的输入、处理和输出分 开。使用m v c 模式设计的应用程序被抽象成三个核心模块:模型( m o d e l ) 、视图 ( v i e w ) 和控sj j 器( c o n t r o l l e r ) ,它们分别担负不同的任务。 7 华北电力大学硕士学位论文 图2 - 2 m v c 设计模式 在m v c 结构中,模型代表应用程序的数据( d a t a ) 和用于控制访问和修改这些 数据的业务规贝j j ( b u s i n e s sr u l e ) 。当模型发生改变时,它会通知视图,并且为视图提 供查询模型相关状态的能力。同时,它也为控制器提供访问封装在模型内部的应用 程序功能的能力。一个视图用来组织模型的内容。它从模型那里获得数据并指定这 些数据的表现形式。当模型变化时,视图负责维护数据表现的一致性。同时,视图 将用户要求告知控制器。控制器定义了应用程序的行为;它负责对来自视图的用户 要求进行解释,并把这些要求映射成相应的行为,这些行为由模型负责实现。在一 个w e b 应用程序中,用户要求的表现形式可能是一些来自客户端的g e t 或 p o s t 的h t t p 请求。模型所实现的行为包括处理业务和修改模型的状态。根据用 户要求和模型行为的结果,控制器选择一个视图作为对用户请求的应答。通常一组 相关功能集对应一个控制器。图2 2 描述了一个m v c 应用程序中模型、视图、控 制器三部分的关系。从图2 2 中,可以看出m v c 模式的处理过程。首先,控制 器接收来自视图的用户请求,并决定调用哪一个模型来进行处理;然后模型根据经 过控制器过滤的用户请求来进行相应的业务逻辑处理,并返回数据。最后,控制器 调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。 2 2 2w c 设计模式的特点 m v c 设计模式的优势在于,它从根本上把业务逻辑和表示层分离开来,为构 建松耦合的应用程序奠定了基础。代表业务逻辑的模型与视图和控制器保持相对的 独立。一个模型可以被不同的视图复用,以此来实现数据不同的表现形式。利用这 种独立性,我们可以在不改变视图( 表示层) 的情况下修改模型( 业务逻辑) ,如变更业 务规则、将数据迁移到不同的数据库等;同样如果需要给用户提供新的数据表现形 式,我们也只需修改或增加视图即可,无须再修改模式。此外,控制器的使用提高 8 华北电力大学硕士学位论文 了应用程序的灵活性和可配置性。控制器既可以连接不同的模型和视图去完成用户 的需求,也为构造可配置的应用程序提供强有力的手段。给定一些可复用的模型和 视图,控制器可以根据用户的需求选择适当的模型进行处理,然后选择适当的视图 将处理结果显示给用户。 图2 3m v c m o d e l 2 体系结构图 j a v a 的j s pm o d e l2 体系结构如图2 3 所示,它是m v c 设计模式在j a v a 平台下的一个实现规范。j s pm o d e l2 吸取了j s p 和s e r v l e t 两种技术各自的优 点,用j s p 生成表示层的内容,让s e r v l e t 完成深层次的处理任务。在这里,s e r v l e t 充当控制器的角色,负责处理用户请求,根据用户请求选择合适的j s p 页面返回 给用户,在创建j s p 页面时需要使用j a v a b e a n s 对象。在j s p 页面内并没有处理 逻辑,它仅仅负责检索原先由s e r v l e t 创建的j a v a b e a n s 对象,从s e r v l e t 中提取 动态内容插入到静态摸板中。对于充当模型的j a v a b e a n s 而言,它即可以直接具体 的业务逻辑,包括对数据库的操作;也可以作为一个业务代理,间接地调用应用服 务器中的e j b 组件来实现核心的业务逻辑。后一种方式更适合于企业级的分布式 应用程序,因为这样做就将程序的工作流程控制和实际的业务规则实现细节分离开 来,可以更好地实现分布式的服务特性和可扩展性能【4 。6 】。 2 2 3 使用基于l i v e 的w e b 应用框架s t r u t s 构建w e b 层应用 对于开发w e b 应用,要从头设计并实现一个可靠、稳定的m v c 框架是一项 困难的任务。开发人员在实际的工作中,可以选择一个现有的、成熟的m v c 框架 作为基础来实现自己的w e b 应用开发任务。而s t r u t s 无疑是一个比较理想的解决 方案。s t r u t s 实质上就是在j s pm o d e l2 体系基础上实现的一个m v c 模式的 w e b 开发框架。它主要由视图、模型、控制器和配置文件四组成部分,如图2 - 4 所 示。 9 华北电力大学硕士学位论文 图2 - 4s t r u t s 实现的m v c 框架 其中,视图就是一组用于数据显示的j s p 文件。这些j s p 文件中并不包含业 务逻辑和模型信息,它们主要使用标准的j s p 标签( t a g ) 或客户化标签( 如s t r u t s 提 供的标签库中的标签) 来实现数据显示和页面布局。此外,s t r u t s 中的a c t i o n f o r m b e a n 通常也被划分到视图部分中【7 9 】。a c t i o n f o r mb e a n 也是标准的j a v a b e a n ,从 o r g a p a c h e s t r u t s a c t i o n a c t i o n f o r m 类扩展而来,它的属性和h t m l 表单中的数据 相对应,同时还包括了用于验证表单数据的方法。s t r u t s 将客户端提交的h t m l 表 单中的数据保存在a c t i o n f o r mb e a n 中,然后通过它来实现表单数据在视图和控制 器之间的传递。控制器可以对a c t i o n f o r mb e a n 中的数据进行修改,j s p 文件则使 用s t r u t s 提供的标签来读取被修改的a c t i o n f o r mb e a n 中的数据并依此来重置 h t m l 表单。控制器由s t r u t s 提供a c t i o n s e r v l e t ( o r g a p a c h e a c t i o n a c t i o n s e r v l e t ) 以 及负责具体业务逻辑处理的a c t i o n ( o r g a p a c h e a c t i o n a c t i o n 的子类) 实现。s t r u t s 的控制器在框架中担任了重要的角色,它接受所有来自客户端的请求,并根据系统 的配置文件( s t r u t s c o n f i g x m l ) 转发h t t p 请求到a c t i o n 对象。这些a c t i o n 对象 封装了业务逻辑的实现方式。一般来说,a c t i o n 对象充当用户请求和业务逻辑之间 的适配器( a d a p t o r ) ,其功能就是将请求与业务逻辑分开,以实现控制应用程序流程的 目的。从设计的角度来看,我们也可以把a c t i o n 对象看成是一组面向模型的业务 接口或业务代理。因此,其实现代码一般非常简洁,它只是简单的调用模型中的 j a v a b e a n s 和e j b 组件的业务方法来完成工作。等到业务处理完毕后, a c t i o n s e r v l e t 再根据预先的配置信息转向到适当的j s p 页面,将处理结果显示给 用户 1 0 14 1 。 l o 华北电力大学硕士学位论文 2 3 对象关系映射技术 2 3 1 对象关系映射技术综述 面向对象设计的机制与关系模型有很大的不同,这造成了面向对象设计与关系 数据库设计之间的不匹配。面向对象设计基于如耦合、聚合、封装等理论,而关系 模型基于数学原理。不同的理论基础导致了不同的优缺点。对象模型侧重于使用包 含数据和行为的对象来构建应用程序;关系模型则主要针对于数据的存储。面向对 象和关系模型可以说是完全不同的编程模式。当对象需要保存在关型数据库中的时 候,矛盾就出现了。此时我们需要的是在它们之间架起联系的桥梁。问题不仅集中 在数据映射的问题上,还有面向对象编程中的许多概念需要映射到关系型的表结构 中。他们包括:聚合( a g g r e g a t i o n ) 、继承( i n h e r i t a n c e ) 和多态( p o l y m o r p h i s m ) 、 类间的关联( a s s o c i a t i o n ) 、比s q l 数据类型更加灵活的数据类型。以上的每个概 念都会有不同的解决方法,我们将会把它们组织成为独立的模式【l 孓1 8 】。 2 3 2h i b e r n a t e 框架的体系结构 h i b e r n a t e 框架是一个面向j a v a 环境的对象关系数据库映射工具,它提供了一套 完整的基于面向对象的方式来操纵和管理关系型数据的解决方案。利用h i b e r n a t e 框架,开发人员可以迅速、高效地在应用程序中建立符合实际业务需求的持久化层。 h i b e r n a t e 不仅仅管理j a v a 类到数据库表的映射,还提供数据查询和获取数据的方 法,可以大幅度减少开发时人工使用s q l 和j d b c 处理数据的时间【l 9 1 。如图2 5 所 示的是h i b e r n a t e 框架的体系结构。 i圃 园圃i 图2 5h i b e r n a t e 框架的体系结构 华北电力大学硕士学位论文 它显示的是h i b e r n a t e 框架中的最主要的几个接口模块,这些接口模块分布在业 务逻辑层和持久化层中,为开发人员配置和使用h i b e r n a t e 提供了统一的a p i 接口。 其中,s e s s i o n 、t r a n s a c t i o n 和q u e r y 模块用来实现对数据库的一般操作( 如增加、删 除、更新等) 和查询功能,它们是开发人员利用h i b e r n a t e 完成具体的业务逻辑的核 心模块。c o n f i g u r a t i o n 模块用来配置h i b e r n a t e 的系统参数。而i n t e r c e p t o r 、l i f e c y c l e 和v a l i d a t a b l e 这些回调接口模块主要用来实现应用程序与h i b e r n a t e 内部的事件机 制进行交互。 在h i b e r n a t e 框架的底层,它调用了诸如j d b c 、j n d i 以及j t a 这些j a v a 现有的 a p i 。其中对j d b ca p i 的封装提供了与关系数据库通信的能力,使得h i b e r n a t e 可 以访问绝大多数支持j d b c 驱动的关系数据库。而对j n d i 和j t a 的封装可以使 h i b e r n a t e 框架能够被集成到支持j 2 e e 平台的应用程序中【2 0 也2 1 。 2 3 3 用h ib e r n a t e 实现数据持久化 要想在应用程序中使用h i b e r n a t e 框架构建自己的持久化层,除了需要下载并安 装h i b e r n a t e 类库外,开发人员必须配置h i b e r n a t e 的属性文件。h i b e r n a t e 提供了可 选的两种形式的属性文件。一种是以文本文件格式存在的h i b e m a t e p r o p e r t i e s ,另一 种是以x m l 格式存在的h i b e r n a t e c f g x m l 。属性文件均由一系列预先定义的属性和 值组合而成。开发人员通过指定这些属性的值来描述h i b e r n a t e 的配置信息,比如指 定数据库连接信息、在程序中用到的数据映射文件等。将配置好的属性文件放置在 应用程序的类路径下,在应用程序启动后,h i b e r n a t e 就会加载属性文件并读取系统 配置信息,完成必要的初始化工作。另外,也可以在程序中生成一个c o n f i g u r a t i o n 类的实例,并利用它通过编码的方式来自定义系统配置信息。 h i b e r n a t e 可以让普通的j a v a 对象( p l a i no l dj a v a0 b j e c t s ,p o j o s ,有时候也称作 p l a i n o r d i n a r yj a v ao b je c t s ) 变成持久化类( p e r s i s t e n c eo b je c t ) 。一个p o j o 很像 j a v a b e a n ,属性通过g e t t e r 和s e t t e r 方法访问,对外隐藏了内部实现的细节。h i b e r n a t e 对p o j o s 属性使用的类型不加限制。一个p o j o 代表了一个实际的业务逻辑对象, 它可以表示该对象的属性、行为以及与其他p o j o 的关联关系,并用来声明具体的 业务方法。数据映射文件采用x m l 格式,它包含了一组用于描述j a v a 类与数据表、 属性与列、关联关系与外键、j a v a 数据类型与s q l 数据类型之间对应关系等的映射 元数据( o b je c t r e l a t i o n a lm a p p i n gm e t a d a t a ) 。 在h i b e r n a t e 中,一个用来代表关系型数据的对象并不总是处于可持久化的状态 的。在一个对象的生存周期( p e r s i s t e n c el i f e c y c l e ) q h ,它需要经历三个状态,分别是 t r a n s i e n t 、p e r s i s t e n t 和d e t a c h e d ,如图2 6 所示: 1 2 华北电力大学硕士学位论文 嬲o i o o a 0 伯m l 稍c 咎静蛳 g 甜批啪 a l l o e t s 硝翻瞎t 粼鹳i ia $ 怕s i o n 图2 - 6h i b e r n a t e 中对象的生存周期 在h i b e r n a t e 中,可以使用两种方法产生处于p e r s i s t e n t 状态的对象实例。一种 是通过执行查询( q u e r y ) 方法如g e t ( ) 、l o a d ( ) 、f i n d ( ) 等来直接获得一个可持久化的对 象实例;另一种方法是通过调用s a v e ( ) 或s a v e o r u p d a t e 0 方法将一个处于t r

温馨提示

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

评论

0/150

提交评论