




已阅读5页,还剩69页未读, 继续免费阅读
(计算机软件与理论专业论文)基于j2ee分层结构的cg动漫制作项目管理系统.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
硕士论文 基于j 2 e e 分层结构的c g 动漫制作项目管理系统 摘要 随着j 2 e e 技术平台下的j a v aw e b 技术的不断发展,出现了越来越多基于b s 架 构和w e b 技术的j 2 e e 企业应用。然而,随着企业应用规模的不断扩大,业务逻辑的 日益复杂,客户对系统开发周期、维护性能等方面的要求越来越高,使得对基于j a v a w e b 技术企业应用的结构优化和性能提升问题越来越受到开发者和企业客户的关注。 j 2 e e 分层结构下的系统开发方法为基于j a v aw e b 技术的企业应用提供了一种良 好的优化策略。论文通过对j 2 e e 分层结构的概念、分层规范以及实现技术的介绍, 阐述了一种通过应用开源框架组合实现j 2 e e 分层结构下w e b 应用的开发方法,并且 通过对层次内部j 2 e e 核心模式下组件化开发方法的分析,介绍了在j a v aw e b 环境下 轻量级框架对j 2 e e 核心模式的实现方式。在此基础上,论文结合c g 动漫制作项目 管理系统的设计与结构优化,在需求分析与系统模块化功能设计的基础上,采用 s t r u t s 、s p r i n g 、h i b e r n a t e 的框架组合实现了对c g 动漫制作管理系统服务器端表示层、 业务逻辑层和持久化层的详细设计,同时采用a j a x 技术对系统中对应客户端层的浏 览器端进行了性能优化。实践证明,采用j 2 e e 分层结构及模块化设计的开发方法能 够有效地优化系统结构,提高系统的可维护性、扩展性、和系统组件的复用性。 关键词: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 ,c g 项目管理 a b s t r a c t 硕士论文 a b s t r a c t w i t ht h ed e v v e l o p m e n to fj a v aw e bt e c h n o l o g y , w h i c hb a s e do nj 2 e et e c h n o l o g y p l a t f o r m ,m o r ea n dm o r ee n t e r p r i s ea p p l i c a t i o n sd e v e l o p e d 谢t l lj a v aw e bt e c h n o l o g ya n d o r g a n i z e di nb s a r c h i t e c t u r e i nn o w a d a y s ,h o w e v e r , w i t ht h es c a l eo ft h ee n t e r p r i s e a p p l i c a t i o n sc o n s t a n t l ye x p a n d i n ga n db u s i n e s sl o g i c sa r ei n c r e a s i n g l yc o m p l i c a t e d , c u s t o m e r sh a v eh i g h e rd e m a n di nd e v e l o p m e n tc y c l ea n dm a i n t a i n a b i l i t yo fa p p l i c a t i o n s t h e r e f o r e , m o r ea n dm o r e d e v e l o p e rt u r n e d t of o c u so nt h ei s s u e so fs t r u c t u r a l o p t i m i z a t i o na n dp e r f o r m a n c ep r o m o t i o no f j a v aw 曲a p p l i c a t i o n sd e v e l o p m e n t t h es y s t e md e v e l o p m e n ts t r a t e g yw h i c hb a s e do nj 2 e et i e r e dm o d e lp r o v i d ea o p t i m i z a t i o ns t r a t e g yt ot h ed e v e l o p m e n to fe n t e r p r i s ea p p l i c a t i o n s t h r o u g hai n t r o d u c t i o n o ft h ec o n c e p to fj 2 e et i e r e dm o d e l ,t h es t a n d a r do ft i e r sd i v i d i n ga n dt i e r s r e a l i z a t i o n t e c h n o l o g y , t h i sa r t i c l ee x p a t i a t e dae x p l i c i td e v e l o pm e t h o dw h i c hi su s i n go p e ns o u r c e f r a m e w o r k st oi m p l e m e n tj 2 e et i e r e dm o d e l m e a n w h i l e ,t h r o u g ht h ej 2 e ec o r ep a t t e r n s a n a l y s i sf o re v e r yt i e r si n n e rr e a l i z a t i o n ,t h ea r t i c l ee x p a t i a t e dh o wt ou s ef r a m e w o r k st o f o u n de v e r yt i e r 、i t l lao p t i m i z a t i o ns t r a t e g yw h i c hi sb a s eo nj 2 e ec o r ep a t t e r n s o nt h i s b a s i s ,c o m b i n e dw i t ht h ed e v e l o p m e n to fc ga n i m a t i o np r o d u c t i o np r o j e c tm a n a g e m e n t s y s t e m ,a st h ep r e r e q u i s i t et ot h ed e m a n da n a l y s i sa n ds y s t e m sm o d u l a rd e s i g n ,t h ea r t i c l e m a d ead e t a i ld e s i g nf o rs e r v e rr 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 dp e r s i s t a n tt i e ro fc g p r o j e c tm a n a g e m e n ts y s t e m ,o nt h eu s eo faf r a m e w o r k sa s s e m b l yw h i c hc o n t a i n e ds t r u t s , s p r i n g ,a n dh i b e r n a t ef r a m w o r k s ,m e a n w h i l em a d eap e r f o r m a n c eo p t i m i z a t i o nf o rt h e b r o w s e rt i e rw i t ha ja xt e c h n o l o g y p r a c t i c e sh a dp r o v e dt h a tw i t ht h eu s i n go fj 2 e et i e r m o d e la n dm o d u l a rd e s i g no fs y s t e m ,t h ea r c h i t e c t u r eo fa p p l i c a t i o nh a db e e ne f f e c t i v e l y o p t i m i z e da n dt h em a i n t a i n a b i l i t y , s c a l a b i l i t y , a n dt h er e u s i n go fs y s t e mc o m p o n e n t sh a d b e e ns i g n i f i c a n t l yi m p r o v e d k e yw o r d :j 2 e et i e rm o d e l ,j 2 e ec o r ep a t t e r n s ,s t r u t s ,s p r i n g ,h i b e r n a t e ,c gp r o j e c t m a n a g e m e n t 声明户i明 本学位论文是我在导师的指导下取得的研究成果,尽我所知,在 本学位论文中,除了加以标注和致谢的部分外,不包含其他人已经发 表或公布过的研究成果,也不包含我为获得任何教育机构的学位或学 历而使用过的材料。与我一同工作的同事对本学位论文做出的贡献均 已在论文中作了明确的说明。 研究生签名:兰锄 神歹月锣日 学位论文使用授权声明 南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅 或上网公布本学位论文的部分或全部内容,可以向有关部门或机构送 交并授权其保存、借阅或上网公布本学位论文的部分或全部内容。对 于保密论文,按保密的有关规定和程序处理。 研究生签名:缝二蜩坼钼彩日 硕士论文 基于j 2 e e 分层结构的c g 动漫制作项目管理系统 1 绪论 1 1 课题背景及意义 c g ( c o m p u t e rg r a p h i c s ,计算机图形图像,简称c g ) 动画制作与开发是指借助 计算机技术来进行动画、电影等影视作品与场景特效等视觉效果的设计制作。如今, 从电影电视作品中的电脑特效制作到纯粹的c g 动画制作这项技术如今已被广泛应 用于影视作品的各个方面,创造出了无数华丽而震撼的视觉效果。然而,一个c g 制 作项目,无论是作为一部单独的电影电视,还是为电影电视制作特效,通常都需要大 量的行政人员及开发人员,硬件设备,资源素材等生产资料,与此同时,大量的资金 投入,较长的执行周期,复杂的项目管理也使其在管理控制上存在诸多难题。我国的 c g 产业经过了起步时期之后近几年进入了蓬勃发展的时期,但是由于资金、设备等 方面的限制以及各种资源协调管理上的困难,难以形成较大的规模,这些因素从某种 程度上限制了c g 制作企业的进一步发展。综合分析这些问题不难发现,系统的、有 效的企业项目管理系统将有利于对c g 动画制作项目进行管理;对合理计划、提前预 见问题、细分任务成本也将是非常有效的控制手段。同时,不同的c g 项目之间由于 侧重点不同,项目的流程以及相应的管理也有所不同,需要管理者根据这些不同点能 够做出灵活调整。因此,开发一套灵活有效的用于c g 动漫项目中各个环节制作流程 与资源配置的管理系统就显得尤为重要。 1 2 课题技术平台与发展现状 作为一种以标准化服务为基础,以企业级应用为面向对象的技术平台,j 2 e e 在 基于i n t e m e t 的企业应用开发中得到了广泛的使用。而j 2 e e 中以j s p 和s e r v l e t 技术 为基础的j a v aw e b 技术的实现使得原有的基于c s 架构下的企业应用开发逐渐被更 具灵活性和跨平台性的b s 架构所取代比叫。然而,基于w e b 技术开发的j 2 e e 系统往 往存在着视图组件与业务逻辑混杂,业务模型缺乏独立性与可复用性,持久化逻辑与 业务逻辑耦合等问题。这些问题不仅给系统设计开发带来极大困难,也使得各个组件 的开发团队之间相互依赖,无法并行开发,导致系统某一环节出现问题时可能涉及所 有团队,使整个系统变得脆弱切不可维护。而且,目前企业应用的需求越来越复杂, 开发周期越来越紧迫,对系统的稳定性、扩展性和可维护性要求也越来越高,简单的 b s 结构已经无法满足企业应用的需要,因此如何改变软件结构混杂的状况,使企业 应用各个组件之间相互独立又能良好协作就显得尤为重要。j 2 e e 平台下的分层结构 系统设计思想为设计者们提供了一种良好的设计思路:将整个系统按组件职能自上而 下划分为若干层次,每个层次实现系统特定的职能,相邻层次之间通过a p i 进行交互, 并且层次之间为单向的依赖关系,只有上层组件的实现依赖下层a p i 。基于这种思路, 1 绪论硕士论文 传统的w e b 应用开发逐渐演化为针对不同层次的系统开发以及层次之间的整合。这 种设计方式不仅降低了软件各个部分之间的耦合度,使各职能之间更具独立性,也大 大促进了层次内部设计的内举行与可复用性,为具有灵活性和可复用的软件设计创造 了条件。 由于j 2 e e 分层结构系统具有层次之间的独立性和层次内部的高内聚和可复用的 特点,使得开发者能够集中精力于某一特定的层面的设计。在这种针对特定层次的开 发经历了相当长时间的发展之后,开发者们通过对开发实践与开发文档的总结,归纳 出一些在特定层次中反复出现的相似问题,而对这些问题的解决方案也都大致相同。 为了能够实现对这些成功的解决方案的反复使用,开发者们逐步用更通用的模式概念 对其加以阐述,产生了一套基于分层架构的j 2 e e 核心模式。这些模式是通过对j 2 e e 平台下提供的各种技术与服务规范加以整合后的最佳实践,提供给开发者一套规范化 的实现策略,开发者通过在开发中实现这些策略来达到在系统中应用最佳实践的效果 u 。然而,j 2 e e 分层式体系结构下核心模式的的实现往往具有很大难度,不仅需要 程序员清晰地理解模式的含义及基本原则,更会带来大量反复的编码工作,且不同的 开发者之间难以形成一致的标准。因此j 2 e e 标准下出现了大量针对特定层次的实现 技术与框架供开发者使用,这些技术或框架通过半成品的形式“驯实现了其对应层次 下的j 2 e e 核心模式,使开发者能够通过这些组件的组合实现规范化的分层结构。应 用框架的出现极大地促进了j 2 e e 分层结构系统的开发,使开发者能够以最高效的手 段开发出符合j 2 e e 核心模式与最佳实践的应用系统。这些框架在实现自身功能的同 时还需要负责与其他层次之间的良好衔接,这种衔接不仅需要符合j 2 e e 分层结构的 接口规范,更要保证整个系统自上而下接口的一致性,因此,这些框架的出现使开发 者的关注点由层次内部的开发转向了业务逻辑的开发和系统整体的整合,而选择良好 的架构策略,使用合理的实现技术与框架的组合对于分层结构系统的实现尤为重要。 1 3 论文结构及主要内容 根据上述j 2 e e 分层结构下w e b 应用开发的特点和所存在的问题,结合c g 动画 项目制作管理系统的开发,文章主要围绕以下几方面展开研究: 第二章对j 2 e e 分层体系结构的基本模型、设计规范以及这种模型的优势进行 了阐述,对j 2 e e 分层结构下每一层的功能,使用的j 2 e e 平台的技术做了简要介绍。 对当前针对j 2 e e 分层结构中每个层次的实现技术作了简要介绍。 第三章对j 2 e e 分层结构中使用的服务器端表示层、业务逻辑层、持久化层的 核心模式作了选择性介绍,并介绍了s p r i n g 、s t r u t s 、h i b e r n a t e 等框架和相应的开发 技术对这些模式的实现方法。 第四章在对c g 动漫项目制作管理系统进行需求分析与概念模型定义的基础上 2 硕士论文基于j 2 e e 分层结构的c g 动漫制作项目管理系统 按照组织管理、项目管理和素材库管理的总体划分对各个模块的总体设计和功能定义 进行了介绍。 第五章选择项目管理模块作为范例,介绍s p r i n g 、s t r u t s 、h i b e r n a t e 框架组合下 的系统详细设计,并介绍了框架之间的整合方式及实现的关键技术。 第六章简要介绍了a j a x 技术,并结合内容分块模式以及缓存控制器机制的具体 实例介绍了a j a x 技术在c g 项目管理系统中的具体使用。 第七章对论文进行总结,并对将来发展作出展望。 2j 2 e e 平台下的分层结构 硕士论文 2j 2 e e 平台下的分层结构 2 1j 2 e e 规范下的分层结构模型 j 2 e e 架构作为一种用来开发分布式企业软件应用系统的技术平台,由于其开放 的标准规范、跨平台的特性以及成熟的技术等优势获得了广泛的接纳,并正在经历着 巨大的发展。j 2 e e 平台由一系列规范化的企业级服务a p i 组成,他们包括用于创建 w e b 用户界面的j s p s e r v l e ta p i ,用于管理分布式对象组件及其业务逻辑的 e j b ( e n t e r p r i s ej a v a b c a n ) ,用于标识资源的j n d i ( j a v a 命名和目录接口) ,用于点对点 消息通信的j a v a m a i la p i ( j a v a 电子邮件) ,用于集成面向消息中间件的消息服务接口 j m s ( j a v am e s s a g es e r v i c e ) 以及用于事务管理的j a v a 事务接i ( j a v at r a n s a c t i o na p t ) 。 同时j 2 e e 还向下支持j 2 s e 的全部a p i 集合,包括用于数据库访问的j d b c a p i ( j a v a d a t a b a s ec o n n e c t o r ) 。j 2 e e 应用通常运行在j 2 e e 服务器下,并且由于j 2 e e 的跨平台 特性,一次开发的j 2 e e 应用可以部署在任何一种j 2 e e 服务器中,因此j 2 e e 应用具 有通常所说的“一次开发,到处运行 的特点引。常见的j 2 e e 服务器有b e a w e b l o g i e 、 i b mw e b s p h e r e 等,近几年随着开源软件的发展,也涌现出一些开源j 2 e e 服务器, 诸如j b o s s 、a p a c h eg e r o n i m o 等。 在j 2 e e 规范下,所有的企业应用都被划分为一定的层次,即一些彼此之间低耦 合的逻辑功能区间。尽管由于各个软件需求上的差异,没有一个适用于所有软件的统 一的层次结构,但是软件的各个层次之间仍需要具有一定的特征: ( 1 ) 每一个层次的内部是高内聚的,由一组相关联的组件相互协作,共同实现特 定的功能。 ( 2 ) 层与层之间是低耦合的,每个层次仅对外公开a p i ,而层次内部的具体实现则 对外透明。层次内部实现的修改不影响到其它层次的实现。 ( 3 ) 层与层之间存在自上而下的依赖关系,即上层组件访问下层a p i ,而下层组件 不依赖上层组件。 因此,在分层结构下的应用中,每一层次可以看作由特定的组件实现,这些组件 具有特定的作用域,并为外部定义了一系列的接u i u 副。 在j 2 e e 规范下通常采用的分层软件模型中,一个应用可以分为如下层次:表示 层、业务逻辑层和资源层( 数据库层) 。其中由于j s p 和s e r v l e t 等w e b 技术的应用, 一部分表示层实现由客户端转移到了服务器上,因此产生了客户端表示层和服务器端 表示层。资源层通常是由数据库系统实现的,但在某些分布式的大型系统中,资源层 往往还包括一些外部系统和遗留资源。随着企业应用和数据库平台的不断发展,在业 务逻辑层与资源层之间还出现了集成层,用来负责管理与资源层系统的通信。这一层 4 硕士论文基于j 2 e e 分层结构的c g 动漫制作项目管理系统 中通常使用各种连接驱动或一些专有中间件实现。在某些采用了对象持久化技术来实 现数据库通信管理的应用中,还会采用某些持久化工具,用来管理应用的数据库联接 和封装数据访问的细节,而具有对象持久化功能的集成层也被称为持久化层。每个层 次的具体功能与实现技术如下u 引: 客户端表示层:该层包括了访问系统或应用的所有设备或系统客户端。这种客户 端可以是w e b 浏览器、j a v a 应用程序或其他程序、j a v a a p p l e t 、网络应用程序或其他 诸如手机之类的设备,甚至可以是一个批处理过程。随着a j a x 技术的广泛使用,基 于b s 结构下的浏览器端开发成为了客户端表示层设计的主流。 服务器端表示层:这一层封装了服务用于访问系统客户端的所有表现逻辑。服务 器端表示层拦截客户端的请求,提供单一的登录入口、构造了会话管理、控制对业务 服务的访问,构造了服务器响应并负责传递回客户端。s e r v l e t 与j s p 技术被应用于该 层,作为产生用户视图的逻辑。 业务逻辑层:提供了表示层需要的各种业务服务,包含业务逻辑和业务数据,应 用系统中大多数业务处理都集中于这一层。传统的基于分布式思想的j 2 e e 应用使用 e j b 组件实现这一层,随着轻量级开源框架的出现,一种基于轻量级容器和集中式数 据访问的实现策略在j a v aw e b 应用中被广泛采用。 集成层:这一层负责与外部资源或外部系统通信,通常是对数据库的访问与操作。 这一层通常采用j d b c 或j 2 e e 连接器技术实现,随着许多集成了j d b c 的使用o r m 技术的框架的出现,面向j a v a 对象的持久化技术在这一层中被广泛使用。 资源层:包含业务数据与外部资源的外部系统,通常是指数据库管理系统,也可 以是其它的遗留系统等。 一个j 2 e e 分层结构的实现模型通常如下图所示: 5 2j 2 e e 平台下的分层结构 硕士论文 图2 1 1 j 2 e e 下分层体系结构示意图 2 2j 2 e e 分层结构的优点 将软件分为如此众多的层次,无疑增加了软件结构上的复杂程度,之所以这种复 杂的分层结构仍会被广泛的接纳并采用,是因为恰当的软件分层将为软件带来性能上 的显著提高,主要体现在以下几个方面: 1 、提高了软件伸缩性。分层结构的软件中,不同层次的服务可以分布到不同的 服务器上,为表示层,业务逻辑层,数据库层分别配置单独的服务器。这样当用户数 量大幅增加时,分担到各个层次的服务器资源占有量将大幅减少,并且可以根据不同 层次的资源占有量进行有针对性的服务器拓展。同时,某些层次( 如数据库层) 还可 以采用资源池机制,用少量的数据连接为多个用户提供数据服务,节省了服务器资源。 2 、提高了软件可维护性与可扩展性。由于层次之间是低耦合的,对某一层次内 部的修改只要不改变其对上一层次的a p i ,就不会影响其它层次的实现代码。同时, 这种低耦合的特性,使每一个层次都可以作为软件的扩展点,针对某一个层次的功能 拓展不会影响软件其它部分的结构。 3 、提高了软件可重用性。由于层次时间是自上而下的依赖关系,下层的实现可 以被多个不同的上层实现共享。例如业务逻辑层的实现既支持g u i 的表示层实现, 又可以支持基于w e b 的表示层实现。 2 3j 2 e e 分层结构的构建工具 由于分层结构提高了软件结构的复杂度,为避免出现缺乏规范性的分层结构实 6 硕士论文基于j 2 e e 分层结构的c g 动漫制作项目管理系统 现,减轻开发人员的工作量,j 2 e e 架构所集成的任何一个服务组件都只针对某一个 层次,通过这些组件的组合使用来构建规范化的分层结构应用。层次与组件之间的对 应关系如下: 客户端表示层中j 2 e e 规范没有固定的客户端设计要求,开发者提可以进行灵活 的选择。客户端可以是简单的w e b 浏览器,j a v a a p p l e t ,也可以是功能相对完善的胖 客户端。j 2 e e 自身也提供了应用客户端组件( a p p l i c a t i o nc l i e n tc o m p o n e n t ) 。 j s p s e r v l e t a p i 应用于服务器端表示层。s e r v l e t 规范定义了一个服务器端组件模 型,运行于服务器供应商提供的w e b 容器中,它提供了一种功能强大的a p i ,主要 用于处理来自客户端的h t t p 请求,并动态生成w e b 页面。在处理请求的过程中,s e r v l e t 可以使用其它任何j 2 e e 服务。j s p ( j a v as e r v e rp a g e ) 贝u 是对s e r v l e t 的一种扩展,允许 开发人员以一种类似于脚本语言的方式在h t m l 编码中直接嵌入j a v a 代码,嵌入的 j a v a 代码会被编译成j a v as e r v l e t 并运行于w e b 容器中。由于j s p 和s e r v l e t 技术提供 了一种j 2 e e 下进行基于w e b 的企业应用开发的规范,借助j 2 e e 的广泛使用,这种 技术成为w e b 应用开发中最流行的规范之一。近几年,随着m v c 模式被广泛使用和 s t r u t s 、w e bw o r k 、t a p e s t r y 等一系列表示层框架的出现使得j s p 与s e r v l e t 技术与业 务逻辑层实现了良好的分离与服用性能,极大地提高了基于w e b 的系统开发水平, 使表示层设计向着规范化、模式化的方向迈出了一大步。 e j b 组件应用于业务逻辑层。e j b 将不同实体的业务逻辑封装为组件,运行在 e j b 容器之中。作为传统j 2 e e 应用中的骨干技术,e j b 几乎集成了j 2 e e 架构中规定 的所有服务组件,包括j m s 、j n d i 、j t a 等。同时,e j b 提供了以e n t i t yb e a n 为接 口的数据访问机制,并且在e j b3 0 中增加了进行持久化服务的e n t i t ym a n a g e r 。然 而,随着开发的深入,e j b 也逐渐暴露出诸如编写规范导致的开发效率低下、服务器 资源占用高等一系列问题,尤其是e j b 依赖于重量级的j 2 e e 服务器( e j b 容器) 的运 行机制更是导致其高昂的使用和开发代价。因此近几年来逐渐出现了使用轻量级框架 开发的业务逻辑层,并且出现了s p r i n g 等优秀的轻量级框架。轻量级框架在支持了 j 2 e e 规范服务组件基础上摆脱了e j b 容器的束缚,允许业务逻辑直接运行在w e b 容 器之中,并且由于是轻量级服务,允许开发者根据需要进行取舍,提高了系统效率。 j d b ca p i 应用于集成层。j d b c 作为j 2 e e 应用的数据库的连接器,负责业务逻 辑层与数据库层的通信。它提供了一套数据库编程接口a p i 函数,实现了业务逻辑对 数据库操作的完整的方法集合。j d b c 作为j 2 e e 一个用的数据库通用接口,得到了 几乎所有的数据库厂家的支持,使得j d b c 可以应用于各种数据库之上。随着持久化 技术的发展,大量集成了j d b c 的面向对象持久化工具成为了数据库操作的主要工 具,包括j d o 、h i b e r n a t e 、t o p l i n k 等,e j b 中的e n t i t yb e a n 也提供了数据持久化功 能。 7 2j 2 e e 平台下的分层结构 硕士论文 j 2 e e 分层体系结构并不强制要求系统对每一个规定的层次都加以实现,而是由 开发者根据实际需求灵活组织,对需要的层次进行分层化的设计与实现。对每一个层 次内部的实现也具有相当的灵活性,理论上只要符合j 2 e e 分层架构的设计规范即可。 然而在实际的设计过程中,为了达到分层结构所呈现出的层次内部高内聚、层次之间 低耦合的效果,真正实现分层结构软件的组件重用方便、伸缩性强、可维护性与可扩 展性良好的优点,分层结构中每一层次的设计就必须遵循一定的设计方法与规范。这 些设计规范由开发者们根据长期的开发经验,通过对各种技术文档和开发实践的归纳 和总结,提出的一系列基于j 2 e e 架构下的设计模式。这些设计模式将每一个层次的 具体功能归纳为一种由多种组件按照一定协作关系按时序分步骤完成的工作。 8 硕士论文基于j 2 e e 分层结构的c g 动漫制作项目管理系统 3 开源框架的j 2 e e 核心模式的分析 j 2 e e 核心模式是一系列以j 2 e e 分层体系结构为抽象层次,对各个层次开发中的 设计考虑与设计实践进行总结后由开发者们以特定的模版总结出来的优良的设计策 略。每一个模式都属于某个特定层次,针对一种具体的开发需求,但所有的模式都出 于优化j 2 e e 服务器端的设计开发的目的。作为开发者经验与实践的总结,这种模式 的目录及其内容仍在更新,目前的模式目录包含三个层次2 1 个模式,具体列表如下: 表3 1 1j 2 e e 核心模式列表1 3 3 层次模式 表示层( 服务器端) 拦截过滤器( i n t e r c e p t i n gf i l t e o p r e s e n t a t i o nt i e r 前端控制器( f r o n tc o n t r o l l e r ) c o n t e x t 对象( c o n t e x to b j e c t ) 应用控制器( a p p l i c a t i o nc o n t r o l l e r ) 复合视i 蛩( c o m p o s i t ev i e w ) 视图助手( v i e wh e l p e r ) 服务到工作者( s e r v i c et ow o r k e r ) 分配器视图( d i s p a t c h e rv i e w ) 业务逻辑层 业务代表( b u s i n e s sd e l e g a t e ) b u s i n e s st i e r 服务定位器( s e r v i c el o c a t o r ) 会话门面( s e s s i o nf a q a d e ) 应用服务( a p p l i c a t i o ns e r v i c e ) 业务对象( b u s i n e s so b j e c t ) 复合实体( c o m p o s i t ee n t i t y ) 传输对象( t r a n s f e ro b j e c t ) 传输对象组装器( t r a n s f e ro b j e c t ) 值列表处理器( v a l u el i s th a n d l e r ) 业务逻辑层 数据访问对象( d a t aa c c e s so b j e c t ) i n t e g r a t i o nt i e r 服务激活器( s e r v i c ea c t i v a t o r ) 业务领域存储( d o m a i ns t o r e ) w e bs e r v i c e 中转( w e bs e r v i c eb r o k e r ) 这些模式为开发者提供了良好的实现策略,然而并不意味着实际应用中开发者需 9 3 开源框架的j 2 e e 核心模式的分析硕士论文 要实现全部的模式,事实上很多模式需要根据开发中的具体情况来进行考虑,包括系 统的整体架构、可扩展性要求、系统的可集成性等方面,某些情况下不当地使用模式 甚至会造成反模式的效果,因此开发者需要在需求的基础上选择其中合适的模式进行 开发。 在实际应用中基于j 2 e e 平台的系统开发往往需要若干组件的协作来完成,这些 组件如果由开发者自己开发将会导致极大的工作量和系统的不稳定性,因此j 2 e e 提 供了一些集成了j 2 e e 规范服务的组件或接口供开发者使用。其中e j b 组件作为j 2 e e 平台下的核心技术被广泛应用于各种分布式应用系统的开发之中,它为开发者们提供 了现成的按照模式要求关联的组件,开发者只需使用这些组件就能实现开发过程,这 种基于标准化组件的开发使得j 2 e e 核心模式能够地被广泛应用到j 2 e e 企业应用的 开发之中。随着近几年j a v aw e b 技术的成熟和基于w e b 容器开发的应用系统越来越 多地涌现,e j b 开始暴露出一些与基于w e b 开发的集中式数据系统的比较而言的劣 势,于是开发者们希望能够把j 2 e e 核心模式应用于以j a v aw e b 容器为核心的j 2 e e 分层结构的系统中,因此,出现了很多参照了核心模式的应用框架。这些软件每一个 都被应用于单一的j 2 e e 层次中,并根据w e b 应用的特点按照该层次对应的某些层次 加以实现。大量的开发实践这些框架能够有效地优化w e b 应用在各个层次上的结构, 提高系统的可维护性和可扩展性,提高软件的性能。这些框架中较为出色的有应用于 表示层的s t r u t s 、w e b w o r k 、j s f 等;应用于业务逻辑层的s p r i n g ;应用于持久化层 的h i b e r n a t e 、j d o 、i b a t i s 等,而s p r i n g 、s t r u t s 、h i b e r n a t e 的框架组合由于其分层架 构实现上的完整性、优良的可扩展性和出色的层次间整合机制成为了基于j a v aw e b 开发的首选。下面将对这三个框架结合j 2 e e 核心模式进行原理分析。 3 1s t r u t s 框架原理分析 3 1 1m v c 模式与j s pm o d e l2 模型 m v c 设计模式即模型- 视图控制器模式( m o d e l - v i e w - c o n t r o l l e r ) ,它将用户接口 问题分为三个截然不同的部分:模型存储应用状态;视图解释模型中的数据并将其展 示给用户;控制器处理用户的输入并更新模型或产生新的视图。其模式框图如图3 1 1 所示 1 0 硕士论文 基于j 2 e e 分层结构的c g 动漫制作项目管理系统 图3 1 1m v c 模式框图 在m v c 设计模式中,三个部分的具体功能如下u 副: 控制器是与请求发生关系的起点。它负责协调请求处理、将用户输入转变为模型 更新和视图。一个应用可以有多个控制器,每个控制器可以负责应用的某个特定领域。 通过协调用户请求的应答,控制器管理全部的应用流转。 模型的作用是管理对应用状态数据的访问,为视图和控制器提供统一的接口。由 于模型是数据的一种抽象,因此会实现和增强一些关于数据如何访问的方法或者对数 据进行格式化的封装。因为m v c 模式中模型被视图和控制器访问,而可能会有多个 视图和控制器对模型进行访问,因此模型中也可能存在线程和事务管理,以实现线程 安全。视图从模型中读取数据,并使用这些数据生成应答。 视图本身不参与数据访问或请求处理,它仅负责根据客户端数据显示的需要来获 取数据并生成应答,因此视图是一个状态无关的组件。视图可以被复合使用,即在试 图中包含若干子视图,每个子视图处理不同模型中的数据。 m v c 模式的关键在于每个组件都具有简单的结构和定义良好的接口,正是因为 这些接口的存在才使得各个部分的组件可以独立地改变,使他们具有良好的共享与重 用特性。 3 1 2j 2 e e 平台下m v c 模式的实现 在j 2 e e 应用中,服务器端表示层承担了应用复杂功能中的绝大部分工作。由于 表示层直接关系着用户的体验,因此常常会出现需求的变更,因此,表示层的j a v a s e r v l e t 、j s p 及h t m l 页面需要尽可能完整的定义并不断的演进以满足用户需求。在 被称为j s pm o d e ll 的传统j s p 实现模型中,业务逻辑的j a v a 代码嵌入在h t m l 页 面中,通过j a v a 代码控制h t m l 页面的生成,以至于表示层的页面在业务逻辑完成 之前无法完整的定义,更会因为修改页面而影响业务逻辑实现从而违背分层结构中自 上而下的依赖关系。针对这些缺点,j 2 e e 应用的开发之中逐渐融入了m v c 设计模 式,并出现了基于m v c 模式的j s pm o d e l2 模型。如图3 1 2 所示: 3 开源框架的j 2 e e 核心模式的分析硕士论文 e v e n t 紫 c o n t r o l l e r s e f 谢e t d i s p a t c h f n a r dl 觚警嘲雾x m l 制鲨二愕 h t t p 。0 s p 1 1仫也 r e s p o n 。 。 b u s l n e s sl o g i c a c 6 0 n 。m o d e l 一? a p p l i c a l i s t a t e 图3 1 2 j s pm o d e l2 2 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 作为控制器,处理控制逻辑和请求; 使用j a v a b e a n 、e j b 、p o j o 等模型接口,与模型对象进行交互。相比较m o d e l1 结 构,m o d e l2 结构改变了处理用户请求的位置,将控制业务流程与处理用户请求的功 能从j s p 页面中独立出来,由s e r v l e t 完成;s e r v l e t 还担任着访问模型的职责,创建 j s p 页面所需的模型对象;j s p 页面仅负责获取模型并将所需的动态内容插入静态模 版,生成视图页面。在这种结构下,原先嵌入j s p 页面的j a v a 代码被分离出来,控 制逻辑和业务逻辑分别由不同的组件完成,实现了m v c 设计模式中的模型视图控 制器三者的分离。这样不仅降低了各个功能组件之间的耦合性,同时提高了组件的可 维护性与复用性。然而,由于必须基于m v c 组件的方式重新思考和设计应用结构, 原来通过建立一个简单的j s p 页面就能实现的应用现在变成了多个步骤的设计和实 现过程,因此提高了开发的复杂性。出于这个原因,出现了众多应用于j 2 e e 表示层 中框架( 如s t r u t s 、w e b w o r k 、s p d n gm v c 、j s f 等) ,协助开发者完成m v c 模式下 的表示层开发,而s t r u t s 框架则是其中技术最为成熟,应用最为广泛的开源m v c 框 架。 3 1 3 使用s t r u t s 框架实现m o d e l2 模型 s t r u t s 框架通过对服务到工作者( s e r v i c et ow o r k e r ) 模式的支持来实现m v c 模式, 主要实现了m v c 模式中的控制器和视图。服务到工作者( s e r v i c e t ow o r k e r ) 模式是一 种基于m v c 设计模式的j 2 e e 核心模式,它通过前端控制器、应用控制器、a c t i o n 组件等控制器组件以及视图模版、视图助手等试图组件实现了集中控制、请求处理和 视图创建等功能u 引。其模式类图如图3 1 3 所示 1 2 硕士论文基于j 2 e e 分层结构的c g 动漫制作项目管理系统 臣丽囵 崮 晌k 日喀 目一一留 单p n o v i d e e l 钺娜l sl 一一二一j 图3 1 3 服务到工作者模式类图 在这个模式下前端控制器负责接受请求,并将请求委派给应用控制器。应用控制 器执行操作管理,把请求解析到相应的动作( a c t i o n c o m m a n d ) 。动作调用业务逻辑, 访问数据模型,并返回一个表现模型。此时应用控制器再执行视图管理,将返回的表 现模型分派到相应的视图模版,通过视图助手将表现模型转化为视图。其中前端控制 器和应用控制器实现了m v c 模式中的控制器部分,视图助手实现了视图部分。服务 到工作者模式的时序图如图3 1 4 : 图目目口田口固固 图3 1 4 服务到工作者模式时序图 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 框架控 制器的核心,在一个使用s t r u t s 框架的应用中只有一个a c t i o n s e r v l e t 实例,并在应用 被w e b 容器装载时初始化。它扮演前端控制器( f r o n tc o n t r o l l e r ) 的角色,为系统提供 了一个集中的访问点,由于a c t i o n s e r v l e t 是h t t p s e r v l e t 类的子类,所以能够集中接 受用户发送来的所有h t t p 请求信息。a c t i o n s e r v l e t 中包含s t r u t s 框架的所有初始化工 作,并在a c t i o n s e r v l e t 被实例化的时候完成这些工作,包括注册w e b x m l 与 s t r u t s c o n f i g x m l 配置文件,加载并解析子应用模块的配置文件,初始化各个自应用 3 开源框架的j 2 e e 核心模式的分析硕士论文 模块的消息源( m e s s a g er e s u o r c e ) 和数据源( d a t as o u r c e ) 以及初始化子应用模块中的 所有插件。实例化的a c t i o n s e r v l e t 将接受h t t p 请求并负责选择恰当的子应用模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年奥特莱斯行业当前发展趋势与投资机遇洞察报告
- 2025年别墅行业当前发展趋势与投资机遇洞察报告
- 2025年额温枪行业当前发展现状及增长策略研究报告
- 2025年专业技术人员继续教育公需科目考试试题及答案
- (2025)辐射安全与防护培训考试题库及参考答案
- 2025年贵州省六盘水市国家公务员公共基础知识预测试题含答案
- 2025年保育员(高级)操作证考试试题及答案
- 2024年湖南街道解放里社区工作人员考试模拟试题及答案
- 摩托车基础知识培训课件
- 2025至2030年中国化妆工具套装市场竞争态势及行业投资潜力预测报告
- 2025年住培结业考试题库及答案
- 写字楼租赁合同法律风险及防范指南
- DB42∕T 2151-2023 应急物资储备库建设规范
- 精神患者家属健康教育讲座
- 养老机构医养结合交流合作总结范文
- 分包招采培训课件
- 神经刺激器行业深度调研及发展项目商业计划书
- 公司全员销售管理办法
- 考试真题及答案解析注册安全工程师
- 丙酮出入库管理制度
- 工贸行业重大事故隐患判定标准安全试题及答案
评论
0/150
提交评论