已阅读5页,还剩80页未读, 继续免费阅读
(计算机应用技术专业论文)基于mvc设计模式的系统框架研究与设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
江苏大学硕士学位论文 摘要 软件开发框架的研究一直是软件丌发者关注的课题。框架提供了大粒度软件复用的 新途径,提高了软件开发的效率。一种好的设计模式,一个好的可复用的系统架构设计 成为提高软件开发效率和开发质量的关键。因而如何设计并构建一个强健而稳定的框架 一直是众多软件专家致力研究的目标。 本文首先研究了j 2 e e 的多层体系结构并深入分析了j 2 e e 架构的不足之处,同时介 绍了m v c 设计模式。然后,对三个开源框架s t r u t s 、s p r i n g 和h i b e r n a t e 进行了分析。 通过具体分析各个框架在w e b 应用多层体系结构中的不同层上所发挥的作用,并结合 各框架的特点,给出了将三者整合的多层w e b 体系结构s s h 框架。其中,s t r u t s 主 要负责表现层,s p r i n g 主要负责业务逻辑层,h i b e r n a t e 主要负责数据持久层。整个架构 利用s p r i n g 的核心思想i o c 和a o p 进行整合,充分发挥s t r u t s 、s p r i n g 和h i b e r n a t e 框 架各自的优势,降低了各层间的耦合度,解决了w e b 应用系统开发过程中由于系统结 构复杂而带来的一些问题。在整合过程中,使用扩展的d e l e g a t i n g s t r u t s 改进了s p r i n g 与s t r u t s 的配置;对h i b e r n a t e 底层数据访问进行优化,进一步提高了效率。 本文结合江苏省国税政府信息公开系统的具体设计,详细论述了基于s s h 整合架 构的w e b 应用系统的多层体系结构及各层的实现策略。在总体框架设计的基础之上, 以文档管理模块为例详细叙述了系统在域模型层、表示层、业务层和数据持久化层的实 施过程,介绍了s t r u t s 配置文件s t r u t s - c o n f i g x m l 和s p r i n g 置文件a p p l i c a t i o n c o n t e x t x m l 的具体配置方法。最后,给出了系统的具体实现,着重阐述了如何运用i o c 和a o p 思 想将s p r i n g 与s t r u t s 和h i b e r n a t e 整合,以实现各组件、各框架之间的松散耦合。 论文结果表明,s s h 架构对于中小型企业w e b 应用系统具有一定的通用性,可以 大大提高软件开发效率,同时基于该整合架构的w e b 应用具有良好的可扩展性、可维 护性和可移植性。 关键词: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 ,整合框架 江苏大学硕士学位论文 a b s t r a c t t h er e s e a r c ho fs o f t w a r ed e v e l o p m e n tf r a m e w o r ki st h es u b j e c tw h i c hi sm o s tc o n c e r n e d b ys o f t w a r ed e v e l o p e r s t h ef r a m e w o r kp r o v i d e san e ww a yt os o f t w a r er e u s ei nl a r g es c a l e a n dp r o m o t e st h es o f t w a r ed e v e l o p m e n te f f i c i e n c y o n eg o o dd e s i g np a t t e r n ,a 8w e l la s ,a r e u s a b l es o f t w a r ea r c h i t e c t u r eb e c o m e st h ek e yf a c t o rt op r o m o t et h es o f t w a r ed e v e l o p m e n t e f f i c i e n c ya n ds o f t w a r eq u a l i t y s o ,h o wt ob u i l das t u r d ya n ds t a b l ef r a m e w o r ki st h ea i mo f m a n ys o f t w a r ea r c h i t e c t u r ee x p e r t s f i r s t ,t h i st h e s i ss t u d i e st h em u l t i t i e ra r c h i t e c t u r ej 2 e ep l a t f o r ma n di t sd e f e c t s t h e n ,i t d i s p l a y st h em v cd e s i g np a t t e r n a tt h es a m et i m e ,i ta n a l y s e st h es t r u t s ,s p r i n ga n d h i b e r n a t ea r c h i t e c t u r ew h i c ha r et h em e m b e r so fo p e ns o u r c ep r o j e c t t h e n ,i td e s i g n st h e c o m b i n a t i o no ft h et h r e ef r a m e w o r k sc a l l e ds s hf r a m e w o r k i nt h es s hf r a m e w o r k , e a c ho f t h et h r e ef r a m e w o r k sc a ns h o wi t so w n s u p e r i o r i t ya tt h ef i g h tt i e rt h a tp l a y e di nt h em u l t i t i e r w e ba p p l i c a t i o na r c h i t e c t u r e ,s t r u t st a k ec h a r g eo ft h ep r e s e n t a t i o nt i e r , s p r i n gt a k e sc h a r g eo f b u s i n e s sl o g i ct i e r , h i b e r n a t et a k e sc h a r g eo fd a t ap e r s i s t e n c el a y e rt i e r w eu s es p r i n gi o c a n da o p t e c h n o l o g yt oc o m b i n et h ef r a m e w o r k st o g e t h e r , t h e nt h ep r o b l e m sb r o u g h tb yt h e h i g hc o m p l e x i t yo ft h es y s t e ms t r u c t u r ed u r i n gw e ba p p l i c a t i o ns y s t e md e v e l o p m e n ta r e s o l v e d d u r i n gt h ec o m b i n a t i o n ,i tu s e st h em o d i f i e dc l a s sd e l e g a t i n g s t r u t st oi m p r o v et h e d e m p l o y m e n tp r o c e d u r e t h et h e s i sd e p i c t st h ed e s i g np r o c e d u r eo ft h eg o v e r n m e n ti n f o r m a t i o np u b l i c i t ys y s t e m a n dh o w a p p l y t h em u l t i t i e rw e ba p p l i c a t i o na r c h i t e c t u r es s hf r a m e w o r kt oi t b a s e do nt h e d e s i g n e df r a m e w o r k , t a k i n gt h ei m p l e m e n tp r o c e d u r eo fd o m a i nm o d e lt i e r , r e p r e s e n t a t i o nt i e r , b u s i n e s st i e ra n dd a t ap e r s i s t e n tt i e ro na r t i c l em a n a g e m e n tm o d u l e a tt h es a m et i m e ,g i v i n g t h ed e p l o y m e n tm e t h o do fs t r u t s - c o n f i g x m la n da p p l i c a t i o n c o n t e x t x m lw h i c ha r et h em o s t i m p o r t a n tp a r to fs e r v i c ed e p l o y m e n t a tl a s t ,w eg i v eo n eo ft h em o d u l e s i m p l e m e n ta st h e e x a m p l e t h em o s ti m p o r t a n tt h i n gi st od e m o n s t r a t eh o w t oc o m b i n es p r i n g ,s t r u t sa n d h i b e r n a t et o g e t h e rb yi o ca n da o pt e c h n o l o g ym a k i n gt h ec o u p l i n ga m o n gt h et i e r sa n dt h e f r a m e w o r k sr e d u c e d t h er e s u l t si n d i c a t et h es s hf r a m e w o r kh a si t so w nu n i v e r s a lp r o p e r t y a n dc a nm a k et h ed e v e l o p m e n tm o r ee f f e c t i v e ,t r a n s p l a n ta n dm a i n t a i n k e yw o r d s :j 2 e ea r c h i t e c t u r e ,d e s i g np a t t e r n ,s t r u t s ,s p r i n g ,h i b e r n a t e ,c o m b i n a t i v e f r a m e w o r k i 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定, 同意学位保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权江苏大学可以将本学位论文的全部 内容或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文。 本学位论文属于 学位论文作者签名: 2 0 0 9 年6 月6 日 保密口,在年解密后适用本授权书。 不保密曰。 象廖 指 独创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进 行研究工作所取得的成果。除文中已注明引用的内容以外,本论文不包含 任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重 要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声 明的法律结果由本人承担。 学位论文作者签名: 罢宴 日期:2 0 0 9 年钐月( 日 江苏大学硕士学位论文 第1 章绪论 随着软件系统规模的不断扩大以及复杂程度的增加,开发设计人员面临的问题也越 来越多,应用解决方案也相应地灵活多变。如何将新的设计和实现建立在原有的工作基 础之上,以及如何重用已有解决方案是设计开发人员亟待解决的问题。由此,设计模式 【1 1 、软件系统架构和框梨2 1 0 气r c h i t e c t u r e ) 设计显得越来越重要。设计模式研究的是一个设 计问题的解决方法,它可应用于不同的框架和被不同的语言所实现。软件系统的架构是 其从整体到部分的最高层次划分,它确定了系统整体结构、层次划分以及不同部分之间 的协作。工业化的软件复用己经从通用的类库进化到了面向领域的应用框架【3 1 。框架是 软件系统的设计、开发过程中的一个概念,它是可重用的、半成品的应用程序,可以用 来产生专门的定制程序,强调对已完成的设计、代码的重复使用,一个框架主要适用于 实现某一特定类型的软件架构【4 】。框架复用可大大提高软件的开发效率,保证软件质量。 1 1 研究背景 近年来,随着网络技术的迅速发展和应用需求的扩展,基于b s 模式的多层w e b 体系结构逐渐发展成熟,多层w e b 应用程序的丌发已成为主流。在多层w e b 体系结构 的设计中,即使现今广泛使用的j 2 e e 开发平台也普遍存在着多样化的用户需求、灵活 的业务模式、复杂的业务流程、众多的组织机构及层次、角色分工等问题。因此,在基 于组件的j 2 e e 平台充分内置了灵活的组件的情况下,如何组织应用程序以实现简单高 效的应用程序升级、维护和扩展,以及如何让不懂程序代码的人员避开程序数据【5 1 ,成 为我们首先要解决的问题。并且,应该实现多层体系结构中各个应用框架的组件内的高 内聚以及组件间的低耦合的优点,从而实现软件系统的高弹性、易维护。基于m v c 设 计模式的轻量级框架提供了较好的解决方案。 m v c ( m o d e l v i e w c o n t r o l l e r ,模型视图控制器) 是目前广泛流行的软件设计模 式。早在7 0 年代,i b m 就推出了著名的s a n f r o n s c i s i c o 项目计划,即m v c 设计模式的 研究。最初,m v c 只是t r y g v er e e n s k a u g 为编程语言s m a l l t a l k 一8 0 所发明的一种软件界 面设计模式 4 1 ,m i c r o s o f t 的m f c 基础类库也遵循了m v c 的思想。近年,随着网络w e b 应用的快速增长,m v c 在系统框架设计中大量采用。 s t r u t s 项目是一个基于j 2 e e 平台、实现m v c 设计模式的框架,由c r a i gr m c c l a n a h a n 于2 0 0 0 年5 月提出,目的是为j a v a 社区提供一个标准的m v c 框架。2 0 0 1 1 江苏大学硕士学位论文 年7 月,s t r u t s l 0 版本正式发布,成为a p a c h e 软件基金会的j a k a r t a 项目的一部分。s t r u t s 是m v c 模式的实现框架1 6 1 ,提供了一个强大的、通用的w r e b 应用框架。s p r i n gf r a m e w o r k 来源于r o dj o h n s o n 所著的( ( e x p e r to n e o n o n ej 2 e ed e s i g na n dd e v e l o p m e n t ) ) o v r o x , 2 0 0 2 ) 一书中的代码,是一个j a v a j 2 e e 分层应用平台。s p r i n g 是一个轻量级j 2 e e 应用 程序框架,旨在简化基于j 2 e e 的软件开发,降低j 2 e e 实施的难度,解决企业应用程序 开发复杂性而创建的。s p r i n g 希望实现的最终目标是一站式服务的框架整合方案 7 1 。2 0 0 1 年末,h i b e r n a t e 第一个正式版本对外发布,赢得了开源社区的一片赞誉。它是一个面向 j a v a 环境的对象关系数据库映射( o b j e c t r e l a t i o n a lm a p p i n g ) 工具,可以在应用e j b 的j 2 e e 架构中取代c m p ( c o n t a i n e r - m a n a g e dp e r s i s t e n c e ) ,完成数据持久化的重任。 随着系统规模的同益复杂,为了快速提高开发效率,将一些优秀的框架进行整合以 适应不同的应用需求已成为目前系统开发中流行的方向之一。 1 2 研究目的和意义 目前,国内的企业级应用系统开发大多采用平台无关性的j 2 e e 的架构。但是,传 统的j 2 e e 架构在w e b 应用解决方案中也存在诸多不足,如在j s p 文件中,h t m l 和j a v a 代码甚至是数据库访问代码都强耦合在一起【8 】;在e j b 中使用一些功能复杂的重量级封 装的实体b e a n ;同时用于部署e j b 的商用e j b 容器存在着价格昂贵【9 1 、开发周期长和 开发成本高的不足。 为了克服基于j 2 e e 架构的w e b 应用解决方案中存在的不足,论文旨在对开源框架 s t r u t s 、s p r i n g 和h i b e r n a t e 的优点和缺点进行深入的研究与分析,将这些框架无缝地整 合起来,充分发挥各个层次的框架的自身优势。同时,运用i o c 和a o p 思想,使用多 层体系结构解决方案进行w e b 应用程序开发,从而达到降低层次之间耦合、提高代码 重用率、减少丌发成本、缩短开发周期和提高系统性能的目的。 本文给出了基于m v c 设计模式的s s h 整合框架,并以江苏省国税政府信息公开系 统为例,详细讲解整合框架的实施过程和相关的关键技术,形成了一个适用于企业级应 用软件系统开发的软件框架。s s h 整合框架使得w e b 应用程序开发按照客户层、页面 表现层、业务逻辑层、数据持久层和域模型层的多层体系结构进行,从真正意义上提高 了软件的开发效率,缩短了软件的丌发周期,并提高了软件系统的质量。 2 江苏大学硕士学位论文 1 3 论文研究内容及组织结构 本文从j 2 e e 体系结构着手,分析了现在w e b 应用系统广泛采用的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 ,并应用到w e b 多层体系结构中的各层中,通过将三者整合给出了s s h 框 架。在江苏省政府信息公开系统项目中,使用模块化设计方案,将系统划分为政府信息 公开、依申请公开、信息管理和基础数据维护等四大模块。使用s s h 整合框架对系统 进行分层技术架构,将业务系统分为客户层、表现层、业务层、数据持久层和企业信息 系统层五层体系结构。整个开发过程按照系统总体框架分层进行,论文以政府信息公开 模块中的一个重要功能文章管理功能的实现过程为例,阐述体现系统的实现过程。 项目系统实施结果表明,s s h 整合框架表现出良好的可维护性、可移植性、可扩展性和 性能。 具体包括: ( 1 ) 深入研究了j 2 e e 多层体系结构和m v c 设计模式。 ( 2 ) 对三种优秀的开源框架s t r u t s 、s p r i n g 和h i b e r n a t e 进行了深入研究,给出了 基于三者的s s h 整合框架,并对其中整合各个部分的技术进行了详细的阐述。 ( 3 ) 提取背景项目江苏省国税政府信息公开系统功能需求,给出系统模块化设计 方案,并使用s s h 整合框架分层设计,给出系统的总体技术架构。 ( 4 ) 结合背景项目江苏省国税政府信息公开系统的详细设计与实现过程,以政府 信息公开模块中的文章管理功能实现过程为例展示系统模块化实现过程。最后,从移植 性、维护性、扩展性和性能四个方面分析了系统的优势。 本文的结构及内容安排如下: 第一章,阐述了本课题的研究背景,研究目的和意义,给出了研究的主要内容及结 构安排。 第二章,介绍了j 2 e e 体系结构和m v c 设计模式。首先,对j 2 e e 的主要组件以及 j 2 e e 架构存在的不足之处进行了详细的分析。然后,介绍了m v c 设计模式的概念。最 后,分析了基于j 2 e e 体系结构和m v c 设计模式的多层w e b 应用。 第三章,详细分析了三种轻量级开源框架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 和h i b e r n a t e 框架详细分析的基础之上,给出了 整合三者的s s h 整合框架。首先,在框架设计的总体原则下,设计出包含客户层、页 3 江苏大学硕士学位论文 面表现层、业务逻辑层、数据持久层和域模型层的多层s s h 整合框架。其次,解析了 整合框架的工作流程,以及s t r u t s 与s p r i n g 整合、s p r i n g 与h i b e r n a t e 整合的具体技术。 最后,综合分析了整合框架的优点。 第五章,利用前一章给出的s s h 整合框架对背景项目江苏省国税政府信息公开系统 进行设计,并给出了系统的总体设计框架。 第六章,在前一章设计的总体框架的基础之上,以文档管理模块为例详细叙述了系 统在域模型层、表示层、业务层和数据持久化层的实施过程,着重介绍了s t r u t s 配置文 件s t r u t s c o n f i g x m l 和s p r i n g 配置文件a p p l i c a t i o n c o n t e x t x m l 的具体配置方法。最后, 从移植性、扩展性、维护性和性能方面的综合评价了系统。 第七章,总结了全文的研究内容和成果,并展望了今后的研究工作。 4 江苏大学硕士学位论文 第2 章j 2 e e 体系结构与m v c 设计模式研究 本章主要介绍j 2 e e 体系结构和m v c 设计模式的概念及其在w e b 开发中的应用。 j 2 e e 体系结构是当i j i 企业级w e b 应用系统开发最常用的解决方案,虽然提供了灵活的 技术选择,但它只是一个应用开发架构【1 0 l ,系统的很多问题得不到解决。m v c 设计模 式已成为系统框架设计中广泛采用的一种框架设计模式,本文的整合框架也是基于此设 计模式。本章的最后,介绍了基于j 2 e e 体系框架和m v c 设计模式的w e b 应用。 2 1j 2 e e 体系结构 2 1 1j 2 e e 概述 j 2 e e ( j a v a2p l a t f o r me n t e r p r i s ee d i t i o n ) 是由s u n 公司开发的一套企业级应用规范, 该规范定义了一个多层企业信息系统的标准平台,旨在简化和规范企业级应用系统的开 发和部署。j 2 e e 技术的基础就是核心j a v a 或j a v a2 平台的标准版,j 2 e e 不仅巩固了标 准版中的许多优点,例如“编写一次、随处运行的特性、方便存取数据库的j d b c a p i , c o r b a 技术以及能够在i n t e r n e t 应用中保护数据的安全模式等,同时还提供了对 e j b ( e n t e r p r i s ej a v ab e a n s ) ,s e r v l e t ,j s p ( j a v as e r v e r p a g e s ) 以及x m l 技术的全面支持。 其最终目的就是成为一个能够使企业丌发者大幅缩短投放市场时间的体系结构。 j 2 e e 可以理解为一个企业级的中间件体系或平台,它把分散在网络上的多种资源 和应用连接起来,为构造和管理、运行可伸缩的企业级业务应用提供了一系列的应用组 件和一个运行环境。从物理上看,j 2 e e 环境可分布驻留到一个以上的服务器,单一的 业务应用能够以一组分布式组件的形式部署到网络上的一个或者多个服务器。 j 2 e e 提供了一个多层结构的分布式的应用程序模型,该模型具有重用组件的能力、 基于扩展标记语言( x m l ) 的数据交换、统一的安全模式和灵活的事务控制机制。在此体 系结构中,开发者的注意力可以集中在封装业务逻辑上,而由应用程序容器或者服务器 去处理与基础结构服务相关的问题以及底层分配问题。j 2 e e 提供了事务处理、对象生 存控制、状态维持、并发控制、资源共享等系统服务,而这些服务只要通过简单的配置 就可以实现,这使歼发者可以从复杂且困难的系统设计中解脱出来,将精力主要放在业 务逻辑上,提高丌发的质量,缩短项目开发的周期【1 1 】。 5 江苏大学硕士学位论文 2 1 2j 2 e e 体系结构 目前,j 2 e e 平台使用了一个多层的分布式的应用程序模型。应用程序的逻辑根据其 实现的不同功能被封装到组件中,组成j 2 e e 应用程序的大量应用程序组件根据其在多 层的j 2 e e 环境中所处的层被安装到不同的机器中【1 2 1 。j 2 e e 的体系结构如图2 1 所示1 1 3 1 。 图2 1 j 2 e e 体系结构 j 2 e e 平台由客户层( c l i e n tt i e r ) 、表现逻辑层( p r e s e n t a t i o nl o g i ct i e r ) 、业务逻辑层 ( b u s i n e s sl o g i ct i e r ) 和4 k x _ l k 信息系统层( e i s ,e n t e r p r i s ei n f o r m a t i o ns y s t e m st i e r ) 组成: ( 1 ) 客户层 客户层运行在客户端机器上,用于与企业信息系统的用户进行交互以及显示根据特 定业务规则进行计算后的结果。基于j 2 e e 规范的客户端可以是基于w e b 的应用,也可 以是独立应用程序。 在基于w e b 的j 2 e e 客户端应用中,浏览器负责显示由运行在w e b 层的w e b 组件 生成的包含各种标记语言( m a r i e x m l ,x s l 等1 的w e b 页面,它可以通过运行在w e b 层中的j s p 页面和s e r v l e t 与j 2 e e 服务器中的业务层进行通信。在不基于w e b 的j 2 e e 应用系统中,一个独立的客户端j a v a 程序可以通过r m i i i o p ( r e m o t em e t h o di n v o c a t i o n s o v e ri n t e r n e ti n t e r - o r bp r o t o c o l ,通过基于i n t e r n e t 的o r b 间协议的远程方法调用) 直接访问运行在e j b 容器中的e j b 组件。 ( 2 ) 表现逻辑层 表现逻辑层产生表示逻辑、并接受来自客户端的用户反馈,这些客户端通常为 h t m l 客户端、j a v aa p p l e t s 和其他的w e b 客户端。在所接收的客户端请求的基础上, 6 江苏大学硕士学位论文 w e b 层对用户的请求产生相应的响应。在j 2 e e 平台中,w e b 组件是由w e b 容器内的 s e r v l e t 和j s p 来实现的。w e b 层也可以包括一个j a v a b e a n s 类来管理用户输入,并将输 入发送到业务逻辑层中运行的e i b 对象末处理【1 4 1 。 基于m v c 模式w e b 层设计是较好的一种开发方法,后文将详细介绍m v c 模式。 在m v c 设计模式中,要求在应用程序开发中把业务逻辑、界面显示和数据进行分离, 提高内聚性,并降低和业务层的耦合,增强模块性和可重用性。 ( 3 ) 业务逻辑层 构成了应用的业务逻辑规则,是整个应用的核心部分。在j 2 e e 平台中,业务层通 常运行在e j b 服务器上,将解决或满足特定业务领域业务规则的代码构建成e j b 组件。 e j b 组件可以完成从客户端应用程序中接收数据,按照业务规则对数据进行处理,将处 理结果发送到企业信息系统层,从存储系统中检索数据以及将数据发送回客户端。 业务逻辑层位于应用服务器中,应用服务器中的e j b 容器提供了分布式计算中组件 所需要的组件生命周期的管理、数据库连接的管理、分布式事务管理、自动容错以及负 载的自动均衡能力等服务。 ( 4 ) 企业信息系统层 企业信息系统饵i s ,e n t e r p r i s ei n f o r m a t i o ns y s t e m ) 层主要是运行企业信息系统软件, 如企业资源计划( e r p ) 、客户关系管理( c r m ) 、数据库系统及其它构建j 2 e e 分布式应用 系统时已有的企业信息管理软件。 表现逻辑层和业务逻辑层属于应用服务器领域。所谓应用服务器,也就是j 2 e e 平 台的具体实现。这四层中的每一层都可以在物理上分布到多个机器,即使同属于应用服 务器领域的表现逻辑层和业务逻辑层,也可以驻留在不同的应用服务器上。 2 1 3j 2 e e 架构存在的不足 目前企业级应用软件的解决方案主要是j 2 e e 平台,解决方案如下: 表示层由j s p + w e b 服务器构成也就是面向客户端的一层:业务层由e j b 容器构成, 通常是应用服务器,这是中间的一层;持久层,主要通过写j d b c 代码来操作数据库的 形式实现。这种方案的不足有以下四点: ( 1 ) 成本高 由于e j b 容器不但需要组件供应商提供可以复用的商业组件和容器供应商提供e j b 应用运行所需要的底层运行环境,而且还需要服务器供应商提供应用服务器来管理、容 纳和部署组件,同时还需要系统部署人员将选定的组件部署到一个或多个应用服务器 7 江苏大学硕士学位论文 上,支出成本很大。 ( 2 ) e j b 规定的编程规范限制了开发思想 按照e j b 的机制,需要根据e j b 的编程规范来编写组件,然后部署到容器中运行。 例如,在编写组件的时,需要编写供用户访问的引导接口和远程接口,当用户访问这两 个接口的时候,容器会将访问拦截并接管,容器会调用b e a n s 所对应的方法来实现需要 的组件功能,而远程接e l 在编写的时候需要继承j a v a x e j b e j b o b j e c t 接i s l ,引导接口需 要继承j a v a x e j b e j b h o m e 接口。另外,在编写b e a n s 的过程中,实体b e a n 需要实现 j a v a x e j b e n t i t y b e a n 接口,会话b e a n 需要实现j a v a x e j b s e s s i o n b e a n 接口。这些只是e j b 的编程规范一部分,这在一定程度上限定了开发人员的自主性,使得解决问题的方式限 于一些条条框框之下。 ( 3 ) 事务处理方面的不足 事务处理是开发健壮性服务端程序和在数据库更新时保持持久性和一致性的关键 技术。e j b 事务管理的目的是,使得e j b 中的组件或者程序代码不直接与底层事务系 统耦合,不与事务管理和资源管理直接发生关系;同时,让开发人员只关心应用程序代 码的开发,而不用去关心底层或者后台的事务系统。在e j b 中,处理事务的方式有两种: 声明式事务管理和编程式事务管理。 虽然现有系统很多采用编程型事务处理方式,但是它使得编程人员必须将事务处理 的逻辑代码混入应用程序的逻辑代码中,必须发布一个事务开始和事务提交或者结束的 声明,这样做对于解耦不利,而且不利于代码复用。因此,应用前景并不乐观。 如果采取声明型的事务边界划分方式的话,那么,e j b 可以使开发者不必直接应对 事务a p i 进行编码。但是,目前越来越多的应用开发选择在应用服务器上为组件选择事 务的级别,这样会增加成本,而且这个选择的过程足个图形化界面,每个组件的事务级 别没有文本或相似类型的整个文件可以参考;如果组件很多的话,记忆和选择正确的事 务级别就会很费时间,同时也不灵活。e j bc m t ( c o n t a i n e r - m a n a g e dt r a n s a c t i o n ,容器 管理事务) 功能并不强大的,各种的锁策略不是所有事务处理情况的全集,功能上不及 b m t ( b e a n m a n a g e dt r a n s a c t i o n ) ,而且在一个系统中混合c m t 和b m t 是不可能的, 这是e j b 机制在事务管理和事务划分方式方面的不足。 ( 4 ) 持久化处理方面存在的不足 在e j b 中,提供了c m p ( c o n t a i n e r - m a n a g e dp e r s i s t e n c e ,容器管理持久化) 和 b m p ( b e a n m a n a g e dp e r s i s t e n c e ,b e a n 管理持久化) 两种持久化方式。在使用容器管理持 久化时,需要在b e a n 类里定义相应需要做持久化处理的字段的变量,并且在部署e n t i t y 8 江苏大学硕士学位论文 b e a n 的时候把需要做持久化的信息部署到容器或者应用服务器上,这样减少了工作量, 但是成本会很高,而且开始定制的需要持久化的字段后来要改变的话会很不灵活,功能 也不强大。在使用b e a n 管理持久化时,系统开发有更多的灵活性,但是需要写j d b c 代码,每次与数据库相关的操作都要写,这样增加了工作量,并且对业务逻辑代码的侵 入性也很强,对具体数据库也有要求,当数据源发生变化时,需要更改数据连接方式。 从上面的分析可以看出,e j b 这种机制对于系统的业务逻辑代码的侵入性很强,无 论对业务逻辑层的功能变化或者数据库变化的应变能力都是有限的,所以通过对这个问 题的分析,采用e j b 机制的持久化来解决方案有一定的不足。 运用j s p ,j a v as e r v l e t ,e j b 以及j d b c 构建企业级应用程序满足了当前的开发需 求,但是这种架构存在着一些弊端,伴随着软件开发技术的发展,在多层的软件开发项 目中,可复用、易扩展的,而且是经过良好测试的软件组件,越来越为开发者所青睐。 这意味着开发人员可以将充裕的时间用来分析、构建业务逻辑的应用上,而非繁杂的代 码工程。于是开发人员将相同类型问题的解决途径进行抽象,抽取成一个应用框架。用 这些框架构建的分布式应用程序可较完美地实现了应用程序高内聚,低耦合、高弹性、 易维护的优点。 基于上述原因,轻量级w e b 体系结构应运而生。 2 2m v c 设计模式 在面向对象的编程中,软件编程人员更加注重对已有代码的重用性和可维护性。设 计模式就是在一定的环境中解决某一问题的方案,是面向对象编程中使用的模式化方 法,它描述的是编程思想,而不是一种具体的技术。设计模式使得开发人员能够真正掌 握接口和抽象类的应用,尽量提高程序的重用率,让程序尽可能地可重用【1 5 】。 在实际的丌发过程中,人们经常会遇到一些相同或者相近的问题,每次都会去寻找 一个新的解决方法。为了节省时间提高效率,提供一些能够解决这些常见问题的、被证 实可行的方案,构成一个统一的资源库是非常必要的。一个设计模式描述了一个被证实 可行的方案。这些方案非常普通,是有完整定义的最常用的模式。这些模式可以被重用, 有良好的伸缩性1 1 6 1 。 2 。2 1 设计模式 设计模式是情境中标准设计问题的重复性解决方案1 1 7 1 。它是在解决问题的过程中, 9 江苏大学硕 士 学位论文 一些良好思路的经验集成,研究的是一个设定问题的解决方法。模式解决特定的问题, 使面向对象设计更灵活、更优雅,最终复用性更好。它帮助设计者将新的设计建立在以 往工作的基础上,复用以往成功的设计方案。 一般而言,一个模式有四个基本要素【1 8 】: ( 1 ) 模式名称( p a t t e r nn a m e ) 一个助记名,它用一两个词来描述模式的问题、解决方案和效果。基于一个模式词 汇表,可以通过命名新的模式增加词汇表。这样,开发者之间就可以讨论模式并在编写 文档时使用它们。模式名可以帮助人们思考,便于与其他人交流设计思想及设计结果。 找到恰当的模式名也是设计模式编目工作的难点之一。 ( 2 ) 问题( p r o b l e m ) 描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后果,它可能描 述了特定的设计问题,如怎样用对象表示算法等;也可能描述了导致不灵活设计的类或 对象结构。有时,问题部分也会包括使用模式必须满足的一系列先决条件。 ( 3 ) 解决方案( s o l u t i o n ) 描述了设计的组成部分,它们之间的相互关系及各自的职责和协作方式。因为模式 就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计 或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合( 类或对 象组合) 来解决问题。 ( 4 ) 效果( c o n s e q u e n c e ) 描述了模式应用的效果及使用模式应权衡的问题。尽管描述设计决策时,并不总提 到模式效果,但它们对于评价设计选择和理解使用模式的代价及好处具有重要意义。软 件效果大多关注对时问和空间的衡量,它们也表述了语占和实现问题。因为复用是面向 对象设计的要素之一,所以模式效果包括系统的灵活性、扩充性和可移植性的影响,显 式地列出这些效果对理解和评价这些模式很有帮助【1 9 1 。 从上面四个基本要素的描述可以看出,不同设计模式具有一些共性: ( 1 ) 设计模式是从实践中获得的。设计模式并非凭空想象产生的。实际上,设计 模式来源于实践,是对实践经验的总结和抽象描述。 ( 2 ) 设计模式可重用,可以避免无谓的重复劳动。 ( 3 ) 一个设计模式可应用于不同的框架并被不同的语言所实现。 ( 4 ) 多个设计模式可以一起用来解决更大的问题。孤立地使用某个设计模式还不 能够充分发挥设计模式的优势,通常将多个设计模式联合使用。 1 0 江苏大学硕士学位论文 ( 5 ) 设计模式存在于不同层次的抽象级别。设计模式存在不同的粒度,小到具体 的解决方案,大到通常的系统问题。 ( 6 ) 设计模式不断向前发展。设计模式使入们可以更加简单方便的复用成功的设 计和体系结构。将已证实的技术表达成设计模式会使新系统开发者更加容易理解其设计 思路。设计模式能够帮助做出有利于系统复用的选择,帮助设计者更快更好地完成系统 设计。 一个设计模式命名、抽象和确定了一个通用设计结构的主要方面,这些设计结构能 被用来构造可复用的面向对象设计。常用的设计模式有很多种,如抽象工厂模式 ( a b s t r a c tf a c t o r y ) 、适配器模式( a d a p t e r ) 、责任链模式( c h a i no fr e s p o n s i b i l i t y ,等。 综合来说,设计模式是可复用面向对象软件的基础,它可以帮助丌发者使用结构合 理、易于复用、易于维护的设计方法,使其更加简单方便地复用成功的设计和体系结构 【加1 。而m v c 设计模式就是一种非常有效并且广泛采用的设计模式。 2 2 2m v c 设计模式 模型视图控制器设计模式( m o d e l - v i e w c o n t r o l l e r ,简称m v o 是x e r o xp a r c 在 2 0 世纪8 0 年代为编程语言s m a l l t a l k8 0 发明的用于用户交互应用程序的一种软件设计 模式【2 1 】,至今已被广泛使用。它是第一个将表现逻辑和业务逻辑分开的设计模式。m v c 设计模式1 2 2 】的出现使得模型层、视图层和控制层各层层次分明,功能明确,各个模块之 间相互独立,提高了系统的灵活性和可重用性。m v c 设计模式的核心是实现三层甚至 多层的松散耦合,它将应用程序抽象为三个部分,三者既分工又合作地完成用户提交的 任务。m v c 结构如图2 2 所示。 v i e w i 。,用户请求 m o d e l 用户界面信息卜查婚黝黝业务流程处理 交互用户请求m o d e lj 业务状态改变 图2 2 眦结构图 1 1 江苏大学硕士学位论文 其组成的三部分具体介绍如下: ( 1 ) 模型( m o d e l ) 模型是m v c 设计模式的核心,是对业务流程、状态的处理以及业务规则的制定, 它封装了应用程序的状态。它接受视图请求的数据,并返回最终的处理结果,通知视图 作相应改变。而业务流程的处理过程对其它层来说则是黑箱操作。同时,模型还为视图 的显示提供数据,并可被多个视图所共用。 模型用于表述应用逻辑,相当于在企业应用里的业务层。模型通常用于先把源数据 处理成需要的信息,然后再传送到视图中显示出来。并常常通过封装对数据库进行查询, 这充分利用了抽象数据库类的优势。 ( 2 ) 视图( v i e w ) 视图提供模型的表示,是与用户交互的界面,是应用程序的外观展现。视图向用户 展示用户感兴趣的业务数据,以及用户的请求,而业务流程的处理则交给模型。视图可 以向模型查询业务数据,但不能直接改
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- EBZ230掘进机液压传动
- ESD静电防护知识培训
- LED技术培训之驱动原理详解
- hotoshopCS的菜单和工具箱网络
- 关于客服部人员试用期转正工作总结
- CAD绘图教程三维建模
- ESD术患者的护理查房
- 2026年计算机软件水平考试设计师试卷
- 安全生产管理交流报告
- 2026年桥梁设计师《桥梁制造》真题卷
- 交货方案及进度计划
- 放弃经济补偿协议书
- 《PLC应用项目工单实践教程》课件 模块4 S7-1500 PLC其它基础指令应用
- 血管导管相关感染预防与控制指南
- (高清版)DB42T 2179-2024 装配式建筑评价标准
- 12D401-3 爆炸危险环境电气线路和电气设备安装
- 保洁作业指导书
- GB/T 2910.11-2024纺织品定量化学分析第11部分:某些纤维素纤维与某些其他纤维的混合物(硫酸法)
- 四年级下册混合计算300道及答案
- 解分式方程50题八年级数学上册
- 给新员工纪检培训课件
评论
0/150
提交评论