(计算机应用技术专业论文)高考报名系统架构的研究与设计.pdf_第1页
(计算机应用技术专业论文)高考报名系统架构的研究与设计.pdf_第2页
(计算机应用技术专业论文)高考报名系统架构的研究与设计.pdf_第3页
(计算机应用技术专业论文)高考报名系统架构的研究与设计.pdf_第4页
(计算机应用技术专业论文)高考报名系统架构的研究与设计.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 随着网络技术和i n t e m e t 的迅速发展,基于b s 结构的服务端应用程序得到 了广泛的应用。而j 2 e e 平台的成熟以及各种开源框架的发展,为w e b 应用程序 更进一步的发展提供了更广阔的空间。s t r u t s 是一个实现了m v c 模式的w e b 应 用框架,有效分离了模型、视图、控制器,全面减轻了构建多层w e b 应用的负 担。s p r i n g 是一个应用于j 2 e e 领域的轻量级框架,是为解决企业应用程序开发 复杂性而创建的。s p r m g 使用依赖注入的设计原理,促进系统业务组件之间的松 散耦合。还提供了a o p 实现对系统级服务的支持h i b e r n a t e 对j d b c 进行了轻 量级封装,提供了强大的面向对象查询语言对数据库进行操作,使系统具有更好 的性能和移植性。框架技术与设计模式是j 2 e e 中重要的软件重用技术。随着软 件规模的不断扩大、业务需求的不断变化,如何选择框架并对多种框架进行有效 整合,以构建一个具有高伸缩性、可扩展、可重用、高效灵活的多层w e b 通用 架构,对系统设计人员提出了更高的要求。 本文首先对高考报名系统现有架构进行分析,指出该架构存在的不足。在对 系统进行功能性和非功能性需求分析的基础上,提出了架构设计的总体目标。采 用领域驱动设计方法对系统进行业务领域建模。接着采用分层架构模式对系统的 架构进行分层,对不同层之间的数据传递进行了规约。针对架构各层选取合适的 框架,提出了基于s t r u t s 、s p n n g 、h i b e r n a t e 这三个框架的集成架构。分析了这 三个框架各自的优点与缺点,并对这三个框架如何进行有效整合进行了探讨,包 括s t r u t s 和s p r i n g 之间的解耦、s p r m g 和h i b e r n a t e 之间的集成等,以构建一个 开发迅速、具有高伸缩性、可重用的集成架构。对系统架构各层进行了详细设计 重点对如何设计可重用性高,与表示层和持久层松散耦合的业务层进行研究,包 括领域模型设计、抽取公共服务,面向接口的设计,使用s p r i n g 的a o p 进行事 务管理,统一的异常处理体系,基于s p r i n g 的依赖注入机制促进业务组件之间 的松散耦合等。总结了新设计的集成架构的特点。最后对系统关键技术进行分析 与设计,包括w e b 缓存的设计、基于异构环境下的网上摄像的设计 关键字:高考报名系统;架构;框架:设计模式 奎三些奎耋三耋矍圭兰竺鎏三 a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to f n e t w o r kt e c h n o l o g ye n di n t e m e t t h ea p p l i c a t i o n p r o g r a mo fs e n 惯b a s e do nb r o w s e r s e r v e ri sw i d e l yu s e d t h em a t u r a t i o no fj 2 e e p l a t f o r me n dt h ed e v e l o p m e n to fv a r i o u so p e ns o u r c ef r a m e w o r k sp r o v i d eb r o a d e r s p a c ef o rt h ef u r t h e rd e v e l o p m e n to fw e ba p p l i c a t i o n 。s t r u t si saw e bf r a m e w o r k w h i c hi m p l e m e n t e dm v cd e s i g np a t t e r na n di te f f e c t i v e l ys e p a r a t e dt h em o d e l 、v i e w a n dc o n t r o l l e ra n dl e s s e nt h eb u r d e no f b u i l d i n gm u l t i - t i e rw e b a p p l i c a t i o n s p r i n gi sa l i g h t w e i g h t 丘m n c w o r ku s e di nj 2 e ef i e l d w h i c hi sd e s i g n e dt os o l v et h ec o m p l e x i t y o fd e v e l o p i n ge n t e r p r i s ea p p l i c a t i o np r o g r a m 。w i t hd e p e n d e n c yi n j e c t i o n , s p r i n g m a d em a i nb u s i n e s sc o m p o n e n t sl o o s ec o u p l i n gd y n a m i c a l l y a n di t s u p p l y f o r a s p e c t - o r i e n t e dp r o g r a m m i n go nar e a l i z a t i o no fs y s t e m - l e v e ls u p p o r ts e r v i c e s f u r t h e r m o r e h i b e r n a t ee n c a p s u l a t e l i g h t w e i g h tj d b c ,a n dp r o v i d eap o w e r f u l o b j e c t - o r i e n t e dq u e r yl a n g u a g ef o rd a t a b a s eo p e r a t i o n , s ot h a te n h a n c e dt h ee f f i c i e n c y o fd a t aa c c e s sa n dm a d es y s t e mp o r t a b l e f r a m e w o r k sa n dd e s i g np a t t e r n sa r ev e r y i m p o r t a n ts o f t w a r er e u s et e c h n o l o g yi nj 2 e ef i e l d w i t ht h ee n l a r g eo fs o f t w a r es c a l e a n df r e q u e n tc h a n g eo fb u s i n e s sr e q u i r e m e n t s ,h o wt oc h o o s ef r a m e w o r k sa n dn l a k e e f f e c t i v ei n t e g r a t i o no ff r a m e w o r k si no r d e rt ob u i l dam u l t i - t i e rw e bg e n e r i c a r c h i t e c t u r ew h i c hi sh i g l l l yf l e x i b l e ,s o a h b l e ,r e u s a b l ea n de f f i c i e n tc h a l l e n g e d e v e l o p e r s t h i sp a p e ra n a l y s i st h eo r i g i n a la r c h i t e c t u r eo ft h ec o l l e g ee n t r e n c ee x a m i n a t i o n s y s t e mf i r s t l y , e n dt h e ne x p o u n d e dt h ed e f i c i e n c i e so ft h ea r c h i t e c t a r e b a s e do nt h e a n a l y s i so ff u n c t i o n a la n dn o n - f i m c t i o n a lr e q u i r e m e n t so fs y s t e m , t h ep a p e rp u t f o r w a r da r c h i t e c t u r ed e s i g ng o a l s u s ed o m a i n - d r i v e nd e s i g nm e t h o df o rb u s i n e s s a r e a sm o d e l i n g t h e ns t r a t i f i e ds t l - u g t eo f t h es y s t e mb yt h el a y e rp a t t e r na n dm a d e r u l eo nd a t at r a n s f e rb e t w e e nd i f f e r e n tl a y e r s t oa d d r e s ss y s t e mo ne a c ht i e rs u i t a b l e f r a m e w o r k , a n dp u tf o r w a r dt h ei n t e g r a t e da r c h i t e c t u r ew h i c hi sb a s e do ns t r u t s , s p r i n ga n dh i b e r n a t ef r a m e w o r k a n a l y s i st h e i rr e s p e c t i v ea d v a n t a g e sa n dd r a w b a c k s o ft h et h r e ef r a m e w o r k , a sw e l la sg i v i n gd i s c u s s i o n so nh o wt oe f f e c t i v e l yi n t e g r a t e t h et h r e ef r a m e w o r k s ,i n c l u d i n gd e c o u p l i n gs t r u t sa n ds p r i i l gf r a m e w o r k s , i n t e g r a t i n g s p r i n ga n dh i b e r n a t ea n ds oo n , i no r d e rt oc r e a t ear a p i dd e v e l o p m e n t ,w i t hh i g h s c a l a b i l i t y , r e u s a b l ei n t e g r a t i o na r c h i t e c t u r e d ot h ed e t a i l e dd e s i g nf o re a c hl a y e ro f t h es y s t e ma r c h i t e c t u r e s t u d ys p e c i a l l yo nh o wt od e s i g nt h eb u s i n e s sl a y e rw h i c hi s r e u s a b l ea n dh a sl o o s e l yc o u p l ew i t h p r e s e n t a t i o nl a y e ra n dp e r s i s t e n c el a y e r , i n c l u d i n gd o m a i nm o d e ld e s i g n , e x t r a c tp u b l i cs e r v i c e s ,t h ei n t e r f a c e - o r i e n t e dd e s i g n , u s es p r i n ga o pr e s p o n s i b l ef o rt h et r a n s a c t i o nm a n a g e m e n t , u n i f i e de x c e p t i o n h a n d l i n gs y s t e m , b a s e do nt h es p r i n gi n v e r s i o no fc o n t r o lm e c h a n i s m st op r o m o t e l o o s e l yc o u p l e db e t w e e nb u s i n e s sc o m p o n e n t s r e v i s i n gt h ec h a r a c t e r i s t i c so fn e w l y d e s i g n e di n t e g r a t e da r c h i t e c t u r e f i n a l l y , a n a l y s i sa n dd e s i g nt h ek e yt e c h n o l o g i e sf o r s y s t e m , i n c l u d i n gt h ed e s i g no fw e bc a c h i n g ,b a s e d0 1 1h e t e r o g e n e o u se n v i r o n m e n t o n l i n ep h o t od e s i g n k e y w o r d s :c o l l e g e e n t r a n c ee x a m i n a t i o ns y s t e m ;a r c h i t e c t u r e ;f r a m e w o r k ;d e s i g np a t t e r n m 独创性声明 独创性声明 秉承学校严谨的学风与优良的科学道德,本人声明所呈交的论文是我个人在 导师的指导下进行的研究工作及所取得的研究成果。尽我所知,除了文中特别加 以标注和致谢的地方外,论文中不包含其他人已经发表或者撰写过的研究成果, 不包含本人或其他用途使用过的成果。与我一同工作过的同志对本研究所做的任 何贡献均已在论文中作了明确的说明,并表示了谢意。 本学位论文成果是本人在广东工业大学读书期间在导师的指导下取得的。论 文成果归广东工业大学所有。 申请学位论文与资料若有不实之处,本人承担一切相关责任, 指导老师签字: 论文作者签字:建麴晖 2 0 0 7 年岁月7 日 飙孙 龇专 第一章绪论 第一章绪论 i n t e r n e t 的迅猛发展正以前所未有的广度和深度影响和改变着人类生活的各 个方面。越来越多的人开始意识到i n t e m e t 所蕴含的巨大经济价值和无穷商机。 w e b 应用也如雨后春笋,蓬勃发展。在这数字化、网络化、信息化的时代,传统 的以纸介质为主的招生报名模式显然已经不能满足高效率、快节奏的现代工作和 生活的需要。如何实现信息处理的自动化和招生业务“无纸化”逐步得到了教育 部门的重视。 本章介绍了课题来源与研究意义,国内外研究现状,论文的研究内容和目标, 论文的特色,以及论文的内容安排。 1 1 课题来源与研究意义 随着网络技术的提高和i n t e m e t 的普及,高速度的信息传递技术,高效率、 高质量的信息查询技术,在变革了人们生产、收集、组织、传递和使用知识信息 的方式的同时,也使信息服务的机制、结构以及服务手段发生了巨大的变化。越 来越多的系统都要求采用基于w e b 的b s 架构来实现。 传统的普通高考报名业务模式是以纸介质为主的,考生需要手工填写大量的 报名信息,还要小心翼翼的涂好每张卡。各个报名点要进行汇总考生的报名表和 卡,手工统计考生的报考情况,检查考生的信息是否完整等各种业务操作。在这 数字化、网络化、信息化的时代,这种模式显然已经不能满足高效率、快节奏的 现代工作和生活的需要。如何实现信息处理的自动化和招生业务“无纸化”逐步 得到了教育部门的重视。 正是在这样一种需求与环境的要求下,由广东工业大学计算机学院工程研发 中心主持研发了高考报名系统项目。该系统已经正式投入使用3 年了,基本上满 足了报名业务的功能需求,也达到了既定的性能要求。该系统使考生报名数据一 次性统一到省考试中心,减少了中间的周转环节,实现了对高考报名全过程的动 态管理,加强了省级招办与各市招办以及报名学校有关部门的联系,降低了各级 广东工业大学工学硕士学位论文 考试招生部门的工作量,提高了工作效率,同时方便考生报名,减少考生数据出 错几率,实现了考生报名数据的实时更新,统一管理。 在研究生学习阶段,我参加了连续两届对高考报名系统的修改工作。这几年 招生考试政策一直在变化,2 0 0 6 年的高考考生是实行3 + x 的方案,不分文科和 理科,每个考生必考科目是:语文、数学、英语、综合科,另外再选专业科。2 0 0 7 年实行高考改革的新方案,考生分为文科和理科。文科考生必考科目是:语文、 数学( 文科) 、外语、文科基础;理科考生必考科目是:语文、数学( 理科) 、外语、 理科基础。文、理科的考生必考的数学和综合科目是不同的。由于具体的招生考 试政策文件经过多级部门的审批,往往出台的比较迟,距离高考报名工作的开始 只有很短的一段时间。加上系统现有架构的可维护性和扩展性都比较差,而需求 的变化又比较大,从而给高考报名系统的修改工作带来了很大的压力。为了适应 需求的变化,在不改变系统原有架构的基础上,每年都得花大力气对系统进行修 改,从而耗费诸多的人力、物力。另一方面,由于高考报名系统的架构可重用性 比较差,因此很多其它类似的报名业务,比如本科插班生报名,针对港澳台侨高 考考生的报名,都重新开发了一套自己的报名系统,造成了类似系统之间的信息 孤岛。 由于普通高考的招生考试政策性较强,相应的决定了为其服务的报名信息的 设定,因此系统应能够在可预见的将来,对可预测的政策性变动做出必要的功能 保留,以便能够在一定时间内适应一定的普高报名工作。当报名的业务模式改变 时,系统能够最快的响应业务的需求,而不需要修改系统的基础架构。随着招生 考试政策的不断变化,现有的高考报名系统架构已经不能适应需求的变化了。因 此对高考报名系统的架构进行研究和设计,以构建一个开发迅速、重用性高、可 扩展,可维护的架构具有很重要的现实意义。 1 2 国内外研究现状 随着网络技术、应用开发技术不断的蓬勃发展,各种需求开始不断出现,应 用系统的功能需要变的更加强大,而且应用系统的开发和维护则需要不断的降低 其成本。目前很多应用系统是建立在w e b 基础上,建立依托w e b 的企业应用平 台已经成为目前大部分企业应用的首要选择,b s 框架成为目前主流的企业应用 2 第一章绪论 系统的开发体系,基于b s 结构的w e b 应用程序也成为i n t e m e t 上使用最为广泛 的应用开发技术,因其具有易用性、通用性和良好的可扩展性等优点而迅速发展, 它支持实时的信息发布,动态的用户交互及与后台系统灵活安全的连接。随着业 务需求的快速变化和交付时间的不断伸缩,企业应用系统的开发面临着重大挑 战:一方面,企业应用系统面对的是一个异构的分布式环境,它必须支持与已有 系统的集成性和与其他系统的互操作性;另一方面,作为为客户、合作伙伴和企 业内部提供信息服务的平台,企业系统还必须具有高可用性、安全性、可靠性和 可伸缩性。因此构造功能更加强大、应用更为灵活的、开发更为简便的w e b 应 用程序成为当前i n t e r n e t 技术发展的热点。 j 2 e e 提供了一个企业级计算模型和运行环境,用于开发和部署多层体系结 构的应用。它通过提供企业计算环境所需要的各种服务,使得部署在j 2 e e 平台 上的多层应用可以实现高可用性、安全性、可扩展性和可靠性。它的优越性在于: 计算平台支持j a v a 语言,使得基于j 2 e e 标准开发的应用可以跨平台移植;j a v a 语言非常严格、安全,这使得开发者可以开发出非常可靠的代码;j 2 e e 提供了 企业计算中需要的所有服务,且更加易用;j 2 e e 中多数标准定义了接口,例如 j n d i ( j a v a n a m i n ga n d d i r e c t o r y i n t e r f a c e ) 、j d b c 、j a v a m a i l 等,因此可以和许 多厂商的产品配合,容易得到广泛的支持;j 2 e e 树立了一个广泛而通用的标准, 大大简化了应用开发和移植的过程。 1 3 研究内容和目标 1 3 1 系统现有架构分析 在对“高考报名系统”项目进行修改的工作中,我主要负责对整个系统修改的 进度进行控制,参与报名管理模块、数据查询模块的设计与开发,同时对整个系 统进行功能测试和压力测试,因此对整个系统需要实现的功能以及业务逻辑处理 有比较深刻的了解,对于影响系统架构的因素有了一定的了解。下面对高考报名 系统的现有架构进行分析 现有的高考报名系统是采用s u n 公司制定的规范j s pm o d e l 的体系结构, 如图1 1 所示。在这种架构中,表示层、业务逻辑层、和数据库层之间没有明显 3 广东工业大学工学硕士学位论文 的分层结构。j s p 既要负责业务流程控制,又要负责响应用户请求并将处理结果 返回用户,同时充当视图和控制器。这给w e b 开发带来一系列的问题: j s p 页面嵌入了大量控制业务逻辑的j a v a 代码,导致表示层臃肿, 业务层不能发挥主导作用,系统的可重用性差。 表示逻辑和业务逻辑混合在一起,导致角色定义不清和职责分配 不明,不利于开发人员的分工。而且对j s p 的开发人员要求较高, 既要设计网页,还要熟悉j a v a 编程。 系统的业务逻辑内嵌在j s p 页面中,要理解系统的整个流程,必 须测览所有的页面,增加了系统维护的难度。 一个j s p 文件中同时含有h t m l 代码、j s p 标签、j a v a 代码和 j a v a s c r i p t 代码,使得调试变得相当困难,同时也增加了系统的开 发时间。 j s p 页面之间是一种强耦合的关系,当系统的业务逻辑改变时, 需要同时修改多个j s p 页面,系统的可修改性差。 浏 览 器 请 响 厂竹e d 月随j 疗雨哥 、 hj s p 口 坚一 3 一d 1 3 2 研究内容和目标 图1 1 j s p m o d e l f i g u r e1 - 1 j s pm o d e l 为了构建一个具有高伸缩性、可扩展、可重用、能够快速响应需求变化的架 构,本文将从以下几个方面进行研讨: 1 对系统的原有架构进行分析,指出该架构存在的不足,进行功能性需求 4 ) ) ) ) ) n q o “ 6 第一章绪论 分析、非功能性需求分析,从而提出系统架构的设计目标。 2 分析数据库驱动的分析设计方法和面向对象的分析设计方法存在的不 足,引入了领域驱动设计方法对系统进行业务领域建模。 3 采用架构模式中的层模式对系统进行合理的分层,并对每一层之间的数 据传递进行规约。 4 针对架构的每一层选择合适的框架技术,并探讨这些框架应该怎样进行 集成,以形成一个层之间的耦合性低、可扩展的灵活的架构。 5 对架构的业务逻辑层的设计进行了重点探讨,包括业务逻辑模式设计, 抽取公共服务、采用a o p 进行事务管理等方面的设计,以形成具有高重 用性、能够灵活适应业务需求变化的业务层。 6 对系统的关键技术进行探讨,包括缓存管理和异构环境下网上摄像的分 析与设计。 通过对上述内容的研究,本文确定了以下的研究目标: 设计一种具有良好的可扩展性和重用性的高效灵活的多层架构,包括采用领 域驱动设计方法对系统进行业务领域建模,利用层模式对架构进行分层,针对每 一层选择合适的框架技术,并对这些框架进行有效整合,对架构的每一层进行了 详细设计。使构建的报名系统架构不仅可以满足功能上的需要,还同时具有较高 的性能以满足不断增长的应用需求,并为类似w e b 应用的j a v a 通用架构提供一 定的借鉴。 1 4 论文的特色 l 、设计了一个具有良好的可扩展性和重用性的基于框架技术的多层架构, 表示层采用s t r u t s ,业务层采用s p r i n g ,持久层采用h i b e r n a t e 。对这三 种框架各自的优缺点进行了分析,并对这三种框架如何进行有效整合进 行了探讨,包括s t r u t s 和s p r i n g 之间的解耦、s p r m g 和h i b e r n a t e 之间的 集成等。 2 、引入了领域驱动的设计方法对系统进行业务领域建模,并对领域模型的 设计进行探讨,重点对如何设计可重用性高,可扩展、与表示层和持久 层松散耦合,能够灵活适应业务需求变化的的业务层进行研究,包括业 5 广东工业大学工学硕士学位论文 务逻辑模式设计、抽取公共服务,面向接口的设计,使用s p r i n g 的a o p 进行事务管理,统一的异常处理体系,利用s p r i n g 的i o c 容器促进业务 b e a n 的松散耦合等。 1 5 论文内容安排 本文共分为五章。 第一章:绪论。首先阐述了课题的来源与研究意义,接着分别阐述了国内外 相关技术的研究现状以及本文的研究内容与目标,最后简述了系统的解决方案和 特色。 第二章:框架技术介绍。首先介绍了j 2 e e 的分层结构以及j 2 e e 各层现有 的框架,接着对表示层框架s t r u t s 、业务逻辑层框架s p r i n g 和数据持久层框架 h i b e r n a t e 进行了阐述,为下一章系统架构的设计提供了理论基础。 第三章:总体架构设计。首先介绍了架构的定义、架构风格和架构的评估。 对系统进行了功能性和非功能性需求分析,提出架构设计的总体目标。接着在分 析数据库驱动的、面向对象的、领域驱动的这三种分析设计方法的基础上,引入 领域驱动设计方法对系统进行业务领域建模。采用层模式对系统的架构进行分 层,对层间的数据传递进行了规约。针对架构各层选取合适的框架技术,提出了 基于s t r u t s 、s p r m g 和h i b e r n a t e 的集成架构。分析了这三种框架各自的特点,并 对这三种框架如何进行有效整合进行了探讨,以构建一个开发迅速、具有高伸缩 性、可重用的多层架构。最后进行了系统的网络拓扑结构设计。 第四章:架构详细设计。首先介绍了如何利用s t r u t s 进行表示层设计,接着 进行领域模型设计,并分析了不同模型的优缺点。重点对如何设计可重用性高, 与表示层和持久层松散耦合,可扩展的业务层进行研究,包括业务逻辑模式设计、 抽取公共服务,面向接口的设计,使用s p r i n g 的a o p 进行事务管理,统一的异 常处理体系,利用s p r i n g 的i o c 容器促进业务b e a n 的松散耦合等。然后介绍了 如何利用h i b e r n a t e 进行持久层的设计。最后对设计的系统集成架构具有的特点 进行分析。 第五章:系统关键技术。介绍了为什么使用w e b 缓存,接着进行了w e b 缓 存设计。然后对异构环境下的网上摄像技术进行了探讨,包括网上摄像的流程以 6 第一章绪论 及网上摄像的设计。 结论。对本文的研究工作进行总结,并指出进一步研究的方向。 7 广东工业大学工学硕士学位论文 第二章框架技术介绍 本章首先介绍了j 2 e e 平台的多层结构以及各层现有的框架。重点对目前最 为流行的表现层框架s t r u t s 、业务层框架s p r i n g 、和持久层框架h i b e r n a t e 分别进 行了介绍,为下文基于多种框架的系统集成架构提供了理论依据。 2 1j 2 e e 平台 j 2 e e 嘲( j a v a 2p l a t f o r m ,e n t e r p r i s ee d i t i o n ) 是s u n 公司定义的一个开发分 布式企业级应用的规范。j 2 e e 为设计、开发、装配和部署企业级应用程序提供 了一个基于组件的解决方案。使用j 2 e e 可以有效减少费用,快速设计和开发企 业级的应用程序。j 2 e e 平台提供了一个多层结构的分布式的应用程序模型,该 模型具有重用组件的能力、基于扩展标记语言( 儿) 的数据交换、统一的安 全模式和灵活的事务控制。 1 j 2 e e 分层架构 j 2 e e 平台使用了一个多层的分布式的应用程序模型。应用程序的逻辑根据 其实现的不同功能被封装到组件中,组成j 2 e e 应用程序的大量应用程序组件根 据在其所属的多层的j 2 e e 的环境中所处的层被安装到不同的机器中。图2 1 表 示了多层结构的应用程序。 图2 1 多层结构的应用程序 f i g u r e2 - 1m u l t i - t i e ra p p l i c a t i o n 客户层组件主要用于人机交互,向服务器端发送请求。w e b 层组件主要接收 8 第二章框架技术介绍 客户的请求,调用商业层组件并将结果返回到客户层。商业层组件主要负责应用 逻辑的实现,数据库访问和事务处理等。数据库层则主要负责数据的存储和组织、 数据库的分布管理、数据库备份和同步等等。 j 2 e e 平台的优点是: lj 越,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 a s 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 bs e r v e r 提供 了多种组件服务,使得系统更能应付大量的并发用户和管理复杂的事务 逻辑。 4 j 2 e e 的分层结构,有利于开发角色的分工,易于成组开发,可以一部分 人编写组件,一部分人撰写页面,从而发挥开发人员各自的专长。 5 具有跨平台性和可移植性。由于j 2 e e 本身是一系列规范,任何符合这 一规范的产品都是j 2 e e 兼容的,这使得j 2 e e 从制订之初就得到了广泛 的支持。几乎所有的主流操作系统都提供了对j 2 e e 的支持。 6 j 2 e e 平台全面支持和实施x m l ,拥有用于专门检查和调试x m l 代码 的工具。x m l 处理独立于平台的数据,而j 2 e e 则开发独立于平台的应 用,两者完美结合。 在应用开发时,j 2 e e 定义的四层模型可根据实际情况灵活运用。由于除了 a p p l e t 外其他的组件都可以访问数据库、e j b 组件和企业信息系统,所以通过不 同层的取舍及组合,可以衍生出许多应用软件开发模型,如基于w e b 的四层模 型、基于桌面应用的三层模型( 不包括w e b 层) 、b 2 b 模型( 不包括客户层) 等。 如果应用系统比较简单,一般不用e j b 作为逻辑层,而直接用w e b 组件来实现 商业逻辑和数据访问,毕竟e j b 的开发和部署费用还相当高。 2 j 2 e e 各层现有框架 目前针对j 2 e e 多层结构,在表示层、业务层和数据持久层都已经开发出了 很多框架。框架是项目软件开发过程中提取特定领域软件的共性部分,它是由一 组紧密关联的类组成,强调类彼此的配合来完成某种可以重复运用的设计概念。 9 广东工业大学工学硕士学位论文 这些类之间以特定的方式合作,彼此不可或缺。由于框架提取了特定领域软件的 共性部分,因此在此领域内新项目的开发过程中代码不需要从头编写,只需要在 框架的基础上进行一些开发和调整便可满足要求。对于开发过程而言,这样做会 提高软件的质量,缩短开发时间,降低开发成本。随着框架技术的成熟,开发者 可以将不同层上的框架整合到一起,从而能够从繁杂的底层编码中解脱出来,大 大减轻开发人员的负担。目前表现层的框架主要有s t r u t s 、t u r b i n e 、c o c o o n 和 j a t o 。持久层的框架主要有h i b e r n a t e 、i b a t i s 、d o 。业务层的框架主要有s p r i n g 、 w r a f 和p i c o c o n t a i n e r 。 2 2s t r u t s 概述 s t r u t s 是a 口a c h e 组织的一个开放源码项目,通过把s e r v l e t 、j s p 、j a v ab e a n s 、 白定义标签和信息资源整合到一个统一的框架中,为w e b 开发人员提供了具有 高可配置性的m v c ( m o d d - v i e w - c o n t r o l l e r ) 开发模式。s t r u t s 实现了业务逻辑与 用户界面的分离,将模型和视图从底层事务处理分割开来,不仅使每个模块都能 独立完成单一的功能,而且使系统更加易于开发、维护和更新,同时,它提供了 大量自定义标记库,可以在j s p 页面中分离显示逻辑与静态h t m l ,使页面代码 更清晰,可读性提高,从而简化j 2 e e 的w e b 应用开发。 在s t r u t s 框架中,模型由实现业务逻辑的j a v a b e a n 或e j b 组件构成,控制 器由a c t i o n s e r v l e t 和a c t i o n 来实现,视图由一组j s p 文件构成。图2 - 2 显示了 s t r u t s 实现的m v c 框架。作为一个m v c 的框架,s t r u t s 对m o d e l 、v i e w 和 c o n t r o l l e r 都提供了对应的实现组件。下面将分别进行介绍,并且看看它们是如 何结合在一起的。 1 0 第二章框架技术介绍 广 it a gl i b r a r i e sl i 。一 图2 2 p js t r u t s 实现的m v c 框架 f i g u r e2 - 2 p 1 s t r u t sm v c s t r u t s 的处理流程:c o n t r o l l e ra c t i o n s e r v l e t 处理客户请求,利用配置的 a c t i o n m a p p i n g 对象把请求映射到a c t i o n 处理器对象进行处理。a c t i o n 处理对象 访问a c t i o n f o r m 中的数据,处理和响应客户请求,它还调用后台的b e a n 组件, 7 这些组件封装了具体的业务逻辑。a c t i o n 处理器对象根据处理结果通知 c o n t r o l l e r ,c o n t r o l l e r 进行下一步的处理。 c o n t r o l l e r :控制器的作用是从客户端接受请求,并且选择执行相应的业务逻 辑,然后把响应结果送回到客户端。在s t r u t s 中c o n t r o l l e r 功能由图中a c t i o n s e r v l e t 和a c t i o n m a p p i n g 对象构成。a c t i o n s e r v l e t 包括一组基于配置的a c t i o n m a p p i n g 对象,每个a c t i o n m a p p i n g 对象实现了一个请求到一个具体的m o d e l 部分中 a c t i o n 处理器对象之间的映射。 m o d e l :s t r u t s 为m o d e l 部分提供了a c t i o n 和a c t i o n f o r m 对象。a c t i o n 处 理器对象封装了具体的处理逻辑,调用业务逻辑模块,并且把响应提交到合适的 v i e w 组件以产生响应。a c t i o n f o r m 组件对象负责保持一个应用系统的消息转移 ( 或者说状态转移) 的非持久性数据存储。通过定义属性可以描述客户端表单数 据。通过a c t i o n f o r m 组件对象实现了对v i e w 和m o d e l 之间交互的支持。 v i e w :s t r u t s 应用中的v i e w 部分是通过j s p 技术实现的。s t r u t s 提供了自定 义的标记库可以使用,通过这些自定义标记可以非常好地和系统的m o d e l 部分交 广东工业大学工学硕士学位论文 互,通过使用这些自定义标记创建的j s p 表单,可以实现和m o d e l 部分中的 a c t i o n f o r m 的映射,完成对用户数据的封装,同时这些自定义标记还提供了像 模板定制等多种显示功能。 s t r u t s 的核心是控制器a c t i o n s e r v l e t ,而a c t i o n s e r v l e t 的核心是配置文件 s t r u t s - c o n f i g x m l ,该配置文件的主要作用是建立控制器,模型及其视图之间的联 系。它描述了控制器将客户请求映射到对应a c t i o n 类处理的法则,同时还定义 了用户输入数据与a c t i o n f o r m 组件的对应关系,是整个系统的导航。 2 3s p ri n g s p r i n g 是一个开源框架,它由r o dj o h n s o n 创建。它是为了解决企业应用开 发的复杂性而创建的。s p r i n g 是一个轻量级的i o c ( i n v e r s i o no f c o n t r o l ,控制反 转) 和a o p ( a s p e c t - o r i e n t e dp r o g r a m m i n g ,面向切面) 的容器框架“1 。 1 ) 轻量级:从大小和开销两方面而言s p r i n g 都是轻量的。完整的s p r i n g 框 架可以在一个大小只有1 m b 多的j a r 文件里发布。并且s p r i n g 所需的处理开销 也是微不足道的。此外,s p r i n g 是非侵入式的;典型地,s p r i n g 应用中的对象不 依赖于s p r i n g 的特定类。 2 ) 控制反转:是一个用于“基于组件的体系结构”的设计模式,它将“判 断依赖关系”的职责移交给容器,而不是由组件本身来判断彼此之间的依赖关系。 s p r i n g 通过一种称作控制反转( i o c ) 的技术促进了松耦合。当应用了i o c ,一 个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或 者查找依赖对象。可以认为i o c 与j n d i 相反不是对象从容器中查找依赖, 而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 3 ) 面向切面:s p r i n g 提供了面向切面编程的丰富支持,允许通过分离应用 的业务逻辑与系统级服务( 例如审计和事务管理) 进行内聚性的开发。应用对象 只实现它们应该做的一一完成业务逻辑。它们并不负责其它的系统问题,例如日 志或事务支持。 4 ) 容器:s p r i n g 包含并管理应用对象的配置和生命周期,在这个意义上它 是一种容器。可以通过配置来设定系统中的b e a n 是单一实例,还是每次请求都 产生一个实例,以及设定它们之间的关联关系。s p r i n g 不应该被混同于传统的重 1 2 第二章框架技术介绍 量级的e j b 容器,它们经常是庞大与笨重的,难以使用。 5 ) 框架s p r i n g 实现了使用简单的组件配置组合成一个复杂的系统。在s p r i n g 中,系统中的对象是通过x m l 文件配置组合起来的,并且s p r i n g 提供了很多基 础功能( 事务管理、持久层集成等) ,使得开发人员能够专注于系统业务逻辑的 开发。 2 3 1s l a t i n g 的组成 s p r i n g 是一个应用于j 2 e e 领域的轻量应用程序框架,其核心是一个i o c 容 器以及a o p 实现,在核心上面的一个主要部件是数据访问d a o 框架,包括一 个自己的j d b c 数据访问封装以及对众多o r m 系统的集成支持。s p r i n g 还内置 一个功能强大、灵活的w e bm v c 框架,以提供快速的j a v aw e b 应用程序开发, 同时s p r i n g 还提供了以其它各种m v c 框架或视图技术的集成。通过s p r i n g 的核 心容器及a o p 的应用,s p r i n g 提供了统一的声明式系统级服务支持。 框架的主要优势之一就是其分层结构,分层结构允许您选择使用哪一个组 件,同时为j 2 e e 应用程序开发提供集成的框架。s p r i n g 框架是一个分层结构, 由7 个定义良好的模块组成,如图2 3 所示。 图2 - 3 “s p r i n g 组成结构 f i g u r e2 - 3 “s p r i n gs t n l c n m 组成s p r i n g 框架的每个模块( 或组件) 都可以单独存在,或者与其他一个 或多个模块联合实现。每个模块的功能如下: 广东工业大学工学硕士学位论文 ( 1 ) 核心容器;这个模块是s p d n g 的最基础部分,提供i o c 和依赖注入特性。 主要组件是b e a n f a c t o r y ,采用了工厂设计模式,负责创建和分发各

温馨提示

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

评论

0/150

提交评论