




已阅读5页,还剩70页未读, 继续免费阅读
(计算机软件与理论专业论文)协同设计平台中核心设计模式的研究与原型实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着国际化分工和合作的深入,建筑设计逐渐发展成跨区域的多学科协作。在这种 形势下,建筑叻、同设计的计算机支持平台的重要作用不言而喻。 本课题的目标就是研究如何设计实现个建筑协同设讨平台以支持建筑设计这一多 人协作的团队设计活动。近年来i n t e r n e t 的迅猛发展和i n t e r n e t 技术的广泛应用,必 然要求建筑协同设计平台应当是一个基1 二w e b 的分布式结构。冈此,选用j 2 e e 技术架 构并恰当的运用j 2 e e 核心模式来设计和实现,可以让功能丌发人员将精力主要集中在 如何开发业务逻辑上,以降低开发的难度,相应缩短开发的周期。 本文首先详细分析了设计中采用的几种主要的j 2 e e 核心设计模式,如会话外观、值 对象、 i a 0 等,针对其中存在的问题提出一系列富于创新的相应 r f t 策略和指导原则: 使用多重外观米实现层层抽象,设计值对象必须考虑w e b 负担和大量数据一次传输的权 衡,等等。特别提出箍于j m s 的消息模式,包括基于j m s 的消息收发模式和基十j m s 的 消息驱动模式,并对设计消息模式时会碰到的棘手问题给出可靠有效的解决方案,如: 使用b e a n 管理的事务并配置应用服务器的重发延迟特性来解决毒消息,在j m s 服务器 中配置并部署永久的响应主题来将结果返回给消息生产者等。然后仔细研究了模式问的 笑系、模式对其所在各层模型的改善,讨论了模式组合的必要性。最后,结合协同设计 平台原型系统的构建实现,分析晚明如何将多种核心模式进行有机组合来优化设计和完 善应用系统,完成了本次课题研究的预定目标。 关键词协同设计平台;j 2 e e 核心设计模式;j m s ;模式组合 华南t 1 2 i 大学硕士学位论文 a b s t r a c t b u i l d i n gs c h e m ed e s i g nh a sg r a d u a l l yp r o g r e s s e dt o b eam u l t i - s u b j e c tc o l l a b o r a t i o n o v e rd i f f e r e n tr e g i o n sw i t ht h ei n - d e p t hd e v e l o p m e n to fi n t e r n a t i o n a lw o r k - - d i v i d ea n d c o o p e r a t i o n t h ei m p o r t a n c eo fc o m p u t e rs u p p o r t e dc o o p e r a t i v ep l a t f o r mf o rb u i l d i n g s c h e m ed e s i g ni ss e l f - e v i d e n ti nt h i si n s t a n c e t h i sp a p e rt r i e st oa p p r o a c ht h ep r o b l e mo fh o wt od e s i g na n dr e a l i z et h ec o o p e r a t i v e p l a t f o r mf o rb u i l d i n gs c h e m ed e s i g n t h er a p i dd e v e l o p m e n to fi n t e r n e ta n dt h ew i d e l y u s i n go fi n t e r n e tt e c h n o l o g yi nt h e s ey e a r sh a v er e q u i r e dt h ep l a t f o r mt o b eaw e b b a s e d d i s t r i b u t e ds t r u c t u r e s o ,c h o o s i n gj 2 e ea n dm a n a g i n gj 2 e ec o r ep a t t e r n sc o r r e c t l yt od e s i g n a n dr e a l i z ec a nm a k et h ef u n c t i o n - d e v e l o p e r sf o c u so nh o wt oc a r r yo u tt h eb u s i n e s sl o g i c , w h i c kw i l lr e d u c et h ed i f f i c u l t ya n ds h o r t e nt h ed e v e l o p m e n tc y c l ea c c o r d i n g l y t h i sp a p e rf i r s t l ya n a l y z e si nd e t a i ls e v e r a lp r i m a r yj 2 e ec o r ed e s i g np a t t e r n su s e d d u r i n gt h ed e s i g n ,s u c ha ss e s s i o nf a c a d e ,v a l u eo b j e c t ,d a o ,e t c a n db r i n g sf o r w a r da s e r i e so fi n n o v a t i v ed e s i g ns t r a t e g i e sa n di n s t r u c t i o n a lp r i n c i p l e s a i m i n ga tt h ee x i s t e n t p r o b l e m s ,f o ri n s t a n c e ,u s i n gm u l t i f a c a d et oi m p l e m e n tf u r t h e ra b s t r a c t ,d e s i g n i n gv o s h o u l d t h i n ka b o u tw e bb u r d e na n dm a s st r a n s m i s s i o n i ta l s op u t sf o r w a r dt h ej m s b a s e dm e s s a g e p a t t e r ns p e c i a l l y ,a n dp r o v i d e sr e l i a b l ea n de f f e c t i v es o l u t i o n st os o l v et h ed i f f i c u l tp r o b l e m s d u r i n gd e s i g n i n gm e s s a g ep a t t e r n ,c h a n g i n gt ob e a nm a n a g e dt r a n s a c t i o nt o s o l v ep o i s o n m e s s a g e ,f o re x a m p l e w h e r e a f t e r , t h i sp a p e rc a r e f u l l ys t u d i e st h er e l a t i o n sb e t w e e nt h e p a t t e r n sa n dh o wp a t t e r n si m p r o v et h e i ro w nl a y m o d e l ,t h e nd i s c u s s e st h en e c e s s i t yo f p a t t e r nc o m b i n a t i o n f i n a l l y ,a s s o c i a t i n gw i t ht h ep r a c t i c et h a tc o n s t r u c t i n gap r o t o t y p eo f c o o p e r a t i v ep l a t f o r mf o rd e s i g n ,i t a n a l y z e s t o e x p l a i nh o wt o c o m b i n ec o r ep a t t e r n s o r g a n i c a l l yt oo p t i m i z et h ed e s i g ne v e nt op e r f e c tt h ea p p l i c a t i o n ,w h i c ka c h i e v e st h ed e s t i n e d p u r p o s eo ft h i sr e s e a r c h , k e y w o r d sc o o p e r a t i v ep l a t f o r mf o rd e s i g n ;j 2 e ec o r ed e s i g np a t t e r n ;j m s p a t t e r nc o m b i n a t i o n i i 华南理工大学 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导卜独立进行研究所 取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任 何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡 献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的 法律后果由本人承担。 作者签名: 日期:凇d g 年么月日 学位论文版权使用授权书 本学位论文作者完全r 解学校有关保留、使用学位论文的规定,同意 学校保留并向圈家有关部门或机构送交论文的复印件和电子版,允许论文 被查阅和借蒯。本人授权华南理工人学可以将本学位论文的全部或部分内 容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存 和汇编本学位论文。 保密讶,在二年解密后适用本授权书。 本学位论文属丁- 不保密口。 ( 请在以上相应方框内打“”) 作者签名:日期:2 f 年么月j 目 日期a 步年占月f 日 第一章绪论 1 1 课题的提出 第一章绪论 1 1 1 开发建筑协同设计平台 建筑设计牵涉到多学科的合作,是一项团队工作。从了解用户需求开始,建筑师给 出初步的建筑方案,随后结构工程师完成结构设计,接着设备工程师开始水、暖、电等 系统的设计,最后概预算人员还要进行成本分析和控制。这种多学科的合作需要反复修 改和协同以获得满足用户需求的最优设计方案。实际上,由于种种因素的制约,目前建 筑设计过程并没有真正体现这种协同思想,以致经常出现方案冲突,甚至在施工时需要 更改图纸,严重影响了工程质量。导致这种现象的客观根源在于缺乏支持协同设计的计 算机平台。随着国际化分工和合作的深入发展,建筑设计逐步发展成跨区域、跨国的多 学科协作。在这种形势下,建筑协同设计的支持平台的重要作用就不言而喻了。w 本研究课题正是直接来源于此协同平台的原型设计和开发。 1 1 2 国内外研究现状分析 上世纪8 0 年代后期,国际上开始出现集成化的建筑方案设计平台的研究。这类集成 没计的共同特点是将各种有关的分析模拟软件集成在一个环境下,建立统一的数据库, 各个软件通过与统一数据库传输数据,从而达到交换数据的目的。 1 9 8 4 年,m i t 的i r e n g r i e f 和d e c 的p a u l c a s h m a n 正式提出了计算机支持的协同工 作( c o m p u t e rs u p p o r t e dc o o p e r a t i r ew o r k ,c s c w ) 的概念。c s c w 技术的实质和曰的 足:利用计算机技术、多媒体技术和通信技术建立一个协同工作的环境,在此环境中人 们可以相互合作,共同工作于一个产品,一个研究领域或一个项目,或求解一个学术上 的难题。由于建筑方案设计过程具有群体性、交互性、分布性和协作性等特点,非常适 合应用计算机支持的协同工作技术。 近年来,随着i n t e r n e t 的迅猛发展以及i n t e r n e t 技术的广泛应用,建筑设计这一 已经发展成时间 二分离、空间上分布的多人协作的团队设计活动,必然要求其协同设计 华南理工大学硕士学位论文 环境应当是一个基于w e b 的分布式结构,因此采用多层的系统体系结构和j 2 e e 技术来 开发是一个比较好的选择。 1 1 ,3j 2 e e 与设计模式的结合 j 2 e e 技术作为实现企业应用的标准平台逐渐成熟,该平台为企业应用的开发和部署 提供了坚实和稳固的服务。1 面向服务器端的j 2 e e 为当今逐渐流行的n 层体系结构提供了一个标准的j a v a 计算 平台,为开发复杂的、分布式企业级j a v a 应用定义了一套体系结构。j 2 e e 让开发人员 关注开发业务逻辑,不用预先详细了解执行环境而把精力放到实现系统和创建在硬件平 台和操作系统间更容易衔接的系统。j 2 e e 的目标是为企业应用系统提供一个底层无关 的、可移植的、支持并发访问的、安全的平台。在这个平台上,可以容易、快速地建立 融合了i n t e r n e t 技术的多层分布式企业应用。 同时应该注意到,企业应用具有高复杂性,因此,开发者希望在开发过程中选择一 个好的设计模型以简化开发过程。利用已经被证实足高效的软件体系结构进行软件重 用,这样不仅会大幅度的减少丌发的工作量,也会为以后整个系统的维护和升级打下一 个坚实的基础。实际上,很多业务复用成功的例子都发生在用户接口领域,而不是业务 组件领域,而后者才是设计者应该努力的目标。业务系统的没计力求促进复用,j 2 e e 设计模式证明了它是一种提供复用层次的极好方法。”3 但是,每种模式有它自身的特点和应用场合,不存在一个“适合所有情况”的模式。 开发者需要根据特定的项目,权衡代价和利益,选取有效合适的模式,而不是运用越多 的模式越有效。如果一味追求模式、硬套模式,反而使得系统复杂化、庞大、不易扩展, 取得反而的效果。因此,开发人员需要通过深入的学习和研究,对这些模式进行全面深 入的掌握,理解其设计思路,才能够做出有利于系统重用的选择,避免设计损害了系统 的蕈用性,使模式更好的运用在项目中。 建筑协同设计平台是基于w e b 的分布式企业级应用,要求支持异构的环境,系统不 依赖特定的操作系统和硬件,因此选用j 2 e e 平台并恰当的运用j 2 e e 设计模式可以让丌 发人员将精力集中在如何开发业务逻辑上,大大降低了开发的难度,相应的缩短了开发 的周期。 蔓二兰垡堡 。_-_。_。-_。_。-。_。一 1 2 主要研究内容 通过直接使用现有的被证实是f 确的模式,可以编写更少的软件来降低软件风险。 本文详细的分析了项目中应用较为广泛的几种j 2 e e 核心设计模式,讨论了它们的定义、 问题、动机、设计策略和解决方案等方面,帮助开发者全面的理解这些模式、在项目中 f 确的选择和使用这些模式,从而简化开发过程,提高系统的可维护性和可扩展性。 同时,模式不是单独孤立存在的,它们只有在其它模式的相互支持下,才能更加体 现出其涵义和用处。模式的多种组合,为解决问题提供了很有效的方法。通过选用不同 的模式或者与已经使用的模式一起结合其它的模式,可以解决新的更复杂的问题。因此, 在对单个设计模式进行分析研究、选择了系统需要的模式后,接下来面临的问题就是如 何将这些模式进行有机的组合、恰当的重构代码和应用模式,从而完善应用。 1 3 论文的组织结构 论文共分六章 第一章:绪论。介绍课题的研究背景、主要研究内容。 第二章: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 平台消息机制的设计模式的研究。本章涵盖了论文的 主要创新点。 第四章:阐述模式间的关系,给出关系图;研究属于不同层的模式对它们各层模型 的改善;讨论模式组合的必要性。有效组合模式,可以改善系统的设计架构,最大程度 的完善系统。 第五章:结合课题直接来源的原型项目实例,分析浣明如何将j 2 e e 的多种核一t l , 设计 模式进行有效的选择并最终整合以设计、优化完善直至实现项目的原型应用系统。这章 与上章也包括了本文的其他几个创新点。 第六章:本文的总结及展望。 华南理人学硕士学位论文 第二章j 2 e e 与设计模式 本章首先介绍j 2 e e 的背景知识,阐述设计模式的概念和思想;其次,探讨j 2 e e 和 设计模式结合的思想。 2 1j 2 e e 2 1 1j 2 e e 的产生 过去,二层体系结构应用( 通常被称为c 1 i e n t s e r v e r 应用) 是大家谈论的最多的。 图2 一l 刻画了典型的二层体系结构。在很多情况下,服务器提供的唯一服务就是数据库 服务。在这种解决方案中,客户端程序负责数据访问、实现业务逻辑、用满足要求的样 式显示结果、弹出颓设的用户界面、接受用户输入等。c 1 l e n t s e r v e r 结构通常在第一 次部署的时候比较容易,但难于升级或改进,它使得重用业务逻辑非常困难。- ,更重要 的是,在广泛应用w e b 的时代,c l i e n t s e r v e r 结构通常矸;能体现出很好的伸缩性,因 而很难适应i n t e r n e t 的要求。s u n 设计j 2 e e 的部分起因就是想解决二层体系结构的缺 陷。= 5 1 c l i e n ts e r v e r ( p r e s e n t a t i o nl o g i c )( b u s i n e s sl o g i c ) ( b u s i n e s sl o g i c ) ( d a t aa c c e s sl o g i c ) ( d a t aa c c e s sl o g i c ) 图2 一l二层应用体系结构 s u n 公司对j 2 e e 做了定义:一种利用j a v a 2 平台来简化企业解决方案的开发、部署 和管理相关的复杂问题的体系结构。n , j 2 e e 使用多层分布式应用架构模型,根据功能的不同把应用组件划分到不同的层 面。这些层分别是客户层、w e b 层、业务层、数据访问层、数据库层企业信息系统层( e i s ) , 如图2 2 所示。 4 第二章j 2 e e 与设计模式 客户层( c l l e n tt i e r ) j 2 e e 应用可以是基于w e b 的,也可以是不基于w e b 的。在一个基于w e b 的7 2 e e 应用中,用户的浏览器在客户层中运行。在一个不基于w e b 的5 2 e e 应用中,一个独 立客户程序( 或者一个a p p l e t 程序) 在客户层运行,并在不经过w e b 层的情况下访 问业务层构件e j b 。 w e b 层( w e bt i e r ) j 2 e e 的w e b 组件可以由j s p 页面、基于w e b 的a p p l e t 以及显示h t m l 页面的 s e t v l e t 组成。w e b 层可能包含一个j a v a b e a n 来管理用户的输入,并将输入发送给 在业务层中运行的e j b 来处理。w e b 层也称为表示层( 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 r ) 作为满足某个特定业务领域需要的业务逻辑代码由运行在业务层的e j b 来执行。 一个e j b 从客户程序处接收数据,( 若需要) 对数据进行处理,再将数据发送到数据 库e i s 层存储。一个e j b 还从存储中检索数据,并将数据送回客户程序。运行在业 务层的e j b 依赖于容器提供诸如事务、生命周期、状态管理、多线程及资源缓冲池 等十分复杂的系统级功能。业务层也称e j b 层( e j bt i e r ) 。 业务层和w e b 层一起构成了j 2 9 9 应用的中间层( m i d d l et i e r ) 。 数据访问层( d a t aa c c e s st i e r ) 数据访问层负责系统对数据库的访问。一般在数据访问层采用j d b c 技术来实现 对数据库的存取操作。 华南理工火学硕士学位论文 数据库e i s 层( d a t a b a s e e i st i e r ) 企业信息系统层运行企业信息系统软件,这层包括企业基础设施系统,例如企业 资源计划( e r p ) 、大型机事务处理( m a i n f r a m et r a n s a c t i o np r o c e s s i n g ) 、数据库 系统以及其他遗留信息系统( l e g a c yi n f o r m a t i o ns y s t e m ) 。 j 2 e e 体系结构提供了中间层集成框架用来满足低成本、高可用、高可靠以及可扩展 应用的需求。通过提供统一的开发平台,j 2 e e 降低了开发多层应用的费用和复杂性, 同时提供集成现有应用程序的能力。在企业级应用开发工作中采用这种体系结构,开发 者将不必担心运行关键商务应用所需的“管道工程”,从而可以集中精力重视商业逻辑 的设计。 2 1 2 j 2 e e 技术 j 2 e e 提供了一套完整的开发多层分布式应用的技术和设施( 服务a p i ) ,是为当今众 多厂商支持的多层分布式应用的标准,为快速灵活的建立大规模的分布式企业应用提供 了高效的解决方案。n 企业级j a v a b e a n ( e j b )e j b 定义了如何编写服务器端组件,并且为服务器端组 件和管理这些组件的应用服务器之问提供了标准的协议。e j b 是j 2 e e 中的重要组成部 分,并且使用了其他的j 2 e e 技术。 j a v a 远程方法调用( r m i ) 和r m i i i o pr m i 是j a v a 语言咱身提供的用来在分布式 对象之间的通信的机制,例如运行在两台0 i 同的机器上的两个不同对象之间。r m i i i o p 是r m i 可移植的扩展,它可以应用i n t e r n e ti n t e r o r b 协议,并能够用来与c o r b a 集 成。r m i 1 1 0 p ( 不是r m i ) 是用于j 2 e e 的正式a p i 。 j a v a 命名和目录接口( j n d i )j n d i 用于访问命名和目录系统。可能出于很多目 的,在代码中使用了j n d i ,例如在网络中连接e j b 组件和其他资源,或者访问存储于如 微软e x c h a n g e 和l o t u sn o t e s 之类命名服务中的用户数据。 j a v a 数据库连接( j d b c )j d b c 是访问关系型数据库的a p i 。j d b c 的价值在于允 许用户访问任何关系型数据库都使用相同的a p i 。 j a v a 事务处理a p i ( j t a ) 和j a v a 事务处理服务( j t s )j t a 和j t s 规范为组件提 供了可靠的事务处理支持。 第二章j 2 e e 与垃汁模式 j a v a 消息服务( j m s )j m s 允许用户的j 2 e e 部署通过消息进行通信。用户可在他 的j 2 e e 系统中使用消息来通信,也可以在他的j 2 e e 系统之外使用它。例如,用户可以 连接到已有的面向消息的中间件( m e s s a g e o r i e n t e dm i d d l e w a r e ,m o m ) 系统,比如说, i b m 的m q s e r i e s 或者m i c r o s o f tm e s s a g i n gq u e u e ( m s m q ) 。m e s s a g i n g 与r m i - i i o p 有 时是可以交替使用的。当然,有其优点和缺点。 j a v as e r v l e ts e r v l e t 是一些用来扩展w e b 服务器功能的网络组件,它基于请求 响应( r e q u e s t r e s p o n s e ) 机制。s e r v l e t 从客户端( 例如w e b 浏览器) 获得请求,然 后,将向应结果返回客户端。s e r v l e t 的这种特点使它非常适合于w e b 任务,例如,显 示h t m l 页面。 j a v a 页面( j s p ) j s p 和s e r v l e t 非常相似,事实上,j s p 脚本可以编译为s e r v l e t 。 两者阳j 最大的不同是j s p 并不是纯j a v a 代码,它们注重解决客户端的外表和显示的问 题。 j a v ai d lj a v ai d l 是s u n 的基于j a v a 的对c o r b a 规范的实现,j a v ai d l 允许与 其他语言集成。而且它能够让分布式对象利用c o r b a 提供的全面服务。所以,j 2 e e 和 c o r b a 是完全兼容的。 j a v a m a i l j a v a m a i l 服务可以使j a v a 应用程序以一种平台无关、协议无关的方式 发送电子邮件。 j 2 e e 连接器构架j 2 e e 连接器构架使用户可以从一个j 2 e e 部署访问现有企业信息 系统。这些现有系统包括运行着高端事务处理的大型机系统( 诸如i b m 的c i c s 和i m s 、 b e a 的t u x e d o 等共同部署的大型机系统) ,企业资源计划系统( e r p ) 或用户自己的专有 系统。 x m lj a v aa p i ( t h ej a v aa p if o rx m lp a r s i n g ,j a x p ) 在j 2 e e 中有很多x m l 的应用。在一个j 2 e e 部署中,j a x p 实际上是分析x m l 文档的a p i ,而且它也是一个x m l 分析器的中性实现接口。 j a v a 的验证和授权服务( t h ej a v aa u t h e n t i c a t i o na n da u t h o r i z a t i o n ,j a a s ) 在 j 2 e e 中,j a a s 是执行与安全相关的操作的标准a p i 。从概念上讲,j a a s 可以使用户在 一个j 2 e e 部署中嵌入一个安全系统。 华南理工大学硕士学位论文 2 1 3j 2 e e 优势 j 2 e e 使项目的应用以相容的方式建立,即具有可伸缩性、可靠性并与其它企业应用 兼容。它拥有快捷的部署及部署技巧、快速的执行速度及在安全方面的改进,能够承载 企业应用框架。它能够减轻某些中间层管道工程的负担,加速分布式应用系统的开发, 以上这些方面可以归纳如下: 1 简单的结构和丌发 5 2 e e 平台支持简单的组件开发模式,因为是基于j a v a 语言和j 2 e e 的,所以这种模 式提供了一次编写、处处执行的可移植。 2 可伸缩性 j 2 e e 容器提供组件以支持事务、数据库连接、生命周期管理和其它的服务,这些服 务可影响系统的性能。在这些领域提供了可伸缩性。 3 与已存在系统的集成 j 2 e e 包含大量的工业标准a p i ,用以对企业遗留信息系统的访问:j d b c 、j t a 、j n d i 、 j m s 、j a v a a i l 、j a v ai d l 等等。此外,埘企、资源计划和大型机系统的访问也通过连 接器结构得到实现。 4 一j 。自由选择服务器、工具和组件 j 2 e e 标准使创建服务器、丌发工具和组件的市场成为可能。 服务器选择:j 、蔓用开发组织能根据自己的硬件平台、操作系统和服务器配置,从各 种不同的公司选择提供实现j 2 e e 规范的平台,现有i b m 的w e b s p h e r e ,b e a 的w e b l o g i c 服务器等。 设计工具的支持:有各种各样的工具可以帮助组件,f 发人员编写和调试代码,应用 开发者可选择适合自己的工具进行编写和组装组件。 组件市场:基于组件的没计使得有许多行为是标准的,被打包且可被重用。组件公司 将提供大量具有各种强大功能的组件,包括计算b e a n s 、用户界面模板甚至具体行业领 域的商务功能。j 2 e e 标准使得这些组件是兼容的,这极大的节约了组件丌发者的投资。 5 简单和统一的安全模式 组件开发者能在方法级说明安全要求,可保证只有拥有适当权限的用户能访问特定 的数据操作。e j b 和s e r v l e t 都提供建立安全检查的机制,基本的方法是对用户进行角 色管理并在应用程序发布时得剑实现,这样便提供了更灵活和更安全的控制机制。 第二章j 2 e e 与设计模式 2 2 设计模式背景知识 由上述可见,j 2 e e 为搭建具有可伸缩性、灵活性、易维护性的企业系统提供了良好 的机制。与此同时,随着软件系统的规模和复杂性的增加,人们对软件的可靠性、可扩 展性、可复用性和可维护性也提出了更高的要求。软件的设计模式( d e s i g np a t t e r n ) 是一种表达、记录和重用软件设计结构和设计经验的新方法,它使得软件具备良好的可 靠性、可扩展性、可复用性和可维护性,它已经成为现代软件: 程系统设计的重要研究 对象。m 2 2 1 设计模式概述 他山之石,可以攻玉。设计模式的思想最初来源于建筑领域。建筑工程设计大师 c h r i s t o p h e ra l e x a n d e r 在1 9 7 9 年出版的关于城市规划和建筑设计的著作t h e t i m e l e s sw a yo fb u i l d i n g ( 建筑的永恒之道) 中首先提出了模式的概念,他认为: 每一种模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核 心。这样,你就能一次又一次地使用该方案,而不必重复劳动。尽管他的著作是针对城 市规划和建筑设计的,但是其观点实际匕适_ 日= j 于所有的工程设计领域,包括软件开发设 汁领域。 在软件领域,受到普遍认可的模式定义是由d i r kr i e h l e 和h e i n zz u il i g h o v e n 在 “u n d e r s t a n d i n ga n du s i n gp a t t e r n si ns o f t w a r ed e v e l o p m e n t ”中给出的:软件模 式是指从某个具体的形式中得到的一种抽象,在特殊而非任意的环境中,该形式不断的 重复出现。4 从1 9 9 0 到1 9 9 2 年,e r i c hg a m m a 、r i c h a r dh e l m 、r a l p hj o h n s o n 和1 0 h nv l is s i d e s ( 即所谓的“四人组”,g o f :g a n go ff o u r ) 合作开展了设计模式编目工作。e r i c hg a m m a 于1 9 9 2 年在其博士学位论文中作了些开创性工作,总结、归纳了当时的设计模式, 并应用到g u i 框架e t + 十中,进一步推动了设计模式的发展。 1 9 9 5 年,g o f 的“d e s i g np a t t e r n s :e l e m e n t so fr e u s a b l eo b j e c t o r i e n t e d s o f t w a r e ”一书发表,成为了设计模式方面的经典著作。该书促进了模式概念在软件业 的普及,同时带动了对模式的研究和应用。 软件设计模式代表了从成功的系统设计中分离出来的可复用的优秀设计经验,描述 华南理: 大学硕士学位论文 如何在特定情境中解决一般设计问题。一个设计模式抽象、命名和确定了一个通用设计 结构的主要方面。 g o f 从面向对象设计的角度,将设计模式定义为:为解决特定场景下的一股设计问 题,对相关的类和相互通信的对象的描述。设计模式确定了所包含的类和对象,它们的 角色、协作方式和职责分配;集中于特定的面向对象设计问题或设计要点,描述了何时 使用它,在另一些设计约束条件下是否还能使用,以及使用的效果和如何取舍。m , 可以总结一个公式:设计模式= 问题+ 特定环境下的解决方案。 2 2 2 设计模式基本要素 由设计模式的定义可以看出,设计模式使丌发者可以更加简单方便地复用成功的设 计和体系结构。将己证实的技术表述成设计模式也会使新系统开发者更加容易理解其设 计思路,并且能帮助其做出有利于系统重用的选择,避免设计损害了系统重用性。m 】因 此,为了更全面的表述设计模式,方便后来新系统开发者理解它,设计模式提出了基本 要素的概念。它是构成一个没计模式的基本要素,使开发者更全面的掌握这个模式,能 够在适当的环境下,用模式去解决适当的问题。 一般而言,一个殴计模式有四个基本要素: 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 ) 描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。因为模式 就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计 或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合( 类或对 1 0 第二章j 2 e e 与设计模式 象组合) 来解决这个问题。 4 效果( c o n s e q u e n c e s ) 描述了模式应用的效果及使用模式应权衡的问题。尽管描述设计决策时,并不总提 到模式效果,但它们对于评价设计选择和理解使用模式的代价及好处具有重要意义。软 件效果大多关注对时问和空间的衡量,它们也表述了语言和实现问题。因为复用是面向 对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性或可移植性的影响, 显式的列出这些效果对理解和评价这些模式很有帮助。 这四个基本要素的核心是问题描述和解决方案。它帮助设计者在特定的环境下,对 是否选择这种特定模式进行判断,并且帮助没计者给出该环境下问题的解决方案。 不同的设计模式具有一些共性:“ 1 设计模式是从实践中获得的。设计模式并非凭空想象产生的。实际上,它们大都 来自于实践,是被“发现( d i s c o v e r ) ”而不是“写作( w r i t e ) ”出来的。 2 设计模式表达好的设计。设计模式并不仅是关于对象的设计,而且关于对象间的 通信。因此有时也称为“通信模式”。正是简单而不乏优雅的通信方法设计使得设计模 式变得如此重要。 3 设计模式避免无谓的重复劳动。 4 设汁模式可重用。 5 多个设计模式可以一起用来解决更大的问题。孤立地使用某个设计模式还不能够 充分发挥设计模式的优势,通常将多个设计模式联合使用。 6 设计模式存在于不同层次的抽象级别。设计模式存在于不同的粒度 ( g r a n u a r i t y ) ,小到具体的解决方案,大到通常的系统问题。 7 模式不断向前发展。 使用发计模式可以为软件系统的没计带来如下几点主要的好处:m 一 设计模式为开发者提供了一个很好的没计经验,模式中所描述的解决方案是人 们从不同角度对一个问题进行研究,然后得出来最通用、最灵活的解决方案,其有效性 是经过大量实践检验的。 设计模式为软件重用提供了一条途径。每个设计模式都可以是软件设计中的可 重用元素或单元。多个模式可以组合起来构成完整的系统。这种基于模式的设计具有更 华南理工大学硕士学位论文 大的灵活性、可扩展性和更好的可重用性。 设计模式的基本思想是将程序中的可变部分与不变部分进行分离,尽量减少对 象之削的耦合度,从而某一个对象的修改,不会导致其它对象的变动,使得由于修改而 带来的影响范围达到最小化。 2 3j 2 e e 与设计模式结合 由上可见,j 2 e e 通过a p i 提供技术与服务的高层抽象,使企业开发得到简化。然而 要在这个强壮的平台上实现分布式的多层企业级应用,仅仅知道j 2 e ea p 是不够的。 开发者需要设计良好的体系结构,才能得到更高质量的应用程序。 开发者希望利用已经被证实是高效的软件体系结构进行软件重用来简化丌发过程。 至今设计者追求软件复用的目标已经多年,但没有取得很大的成功。实际上,很多业务 复用成功的例子都发生在用户接口领域,而不是业务组件领域,而后者才是设计者应该 努力的目标。业务系统的设计力求促进复用,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 开发的好处, 这些模式专门针对j 2 e e ,从而简化了特定系统和应用中的标识、使用与适配。 相对于g o f 整理的经典的面向对象设讣方面的模式,j 2 e e 模式有以下几个特点:m 一 ( 1 ) 与平台、语言相关:g o f 模式不与特定语言、平台相关联。而j 2 e e 模式则相反, 它描述的是在j 2 e e 平台上利用j a v a 编程语言如何解决设计问题,适用范围相对较窄。 ( 2 ) 所解决问题的规模较大:g o f 模式主要解决的是软件中较小型的设计。其特征是 一些协作对象的集合,明确定义了协作对象之间的关系;其目标是复用被封装的构件。 j 2 e e 模式则是在j 2 e e 框架的基础上,解决构件技术的选择、构件之间的协作等问题。 ( 3 ) 模式抽象层次较高:j 2 e e 模式领域采用较高的抽象层次来捕述每一个模式。但 每个模式应包含解的细节,于是模式中提供了若干具体实现的细节,称为策略。模式与 策略的关系如下:模式相对策略的抽象层次高;模式包含策略:策略为模式提供扩展点, 开发者发现、创造新的方式来实现模式,为模式生成新的策略:策略通过为解决方案的 低层方面提供名称,增强沟通。 第二章j 2 e e 与设计模式 ( 4 ) 注重性能的优化:在分布式平台上,存在着大量的远程方法调用。这种调用是实 现分布式计算的基础,但开销很大。过多的远程方法调用会严重影响系统的性能。于是, j 2 e e 模式在与g o f 模式一样关注灵活性和可扩展性的同时,特别注重如何减少远程方法 调用,提高系统性能。 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 设计模式可以从不同方面进行分类。最常见的是依照j 2 e e 的分层结构将模式 按层分类归档。“”一般常将j 2 e e 的企业信息系统层分成集成层( 包含j m s 、j d b c 、连接 器) 和资源层( 包含数据库、外部系统、遗留系统) ,以分别表达它们的需求,达到更 好的效果。j 2 e e 设计模式集中作用于表示层、业务层和集成层,表示层模式包含与 s e r v l e t 、j s p 技术相关的模式,业务层模式包含与e j b 相关的模式,集成层模式包含与 j m s 、j d b c 相关的模式。本文对作为j 2 e e 核心的业务层和集成层模式做了重点研究,是 为j 2 e e 核心设计模式。 2 4 本章小结 采用j 2 e e 体系结构进行企业级应用开发,可高效的开发和发布分布式的应用系统。 运用设计模式思想,通过对系统各问题领域的分析、分解,找到和要解决的问题匹配的 模式,对该模式进行定制应用到系统中来,对整个系统模型进行优化和重构,可提高企 业级应用系统的性能和效率,同时对系统的可维护性和可扩充性也有极大的改善。 华南理1 :大学硕七学位论文 第三章j 2 e e 核心设计模式的研究分析 上一章阐述了设计模式和j 2 e e 的相关背景知识,讨论了j 2 e e 核心设计模式为系统 开发带来的优势。本章重点分析项目中应用较为广泛的几种j 2 e e 核心设计模式,研究 总结它们的最佳实践、设计策略和解决方案。主要包括业务层模式( 会话外观、业务代 表、服务定位器、值对象) 和集成层模式( d a o 、基于j m s 的消息) 。 3 1 会话外观模式 会话外观模式( s e s s i o nf a c a d e ) 是开发者现在最常使用的e j b 模式之,这是一 个让很多丌发者都受益匪浅的既强大又非
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年环境监测工程师职业水平测验试题及答案解析
- 2025年绿化主管招聘面试问题集
- 2025年护理学专业技能考试试题及答案解析
- 2025年安全用电知识竞赛题及答案
- 2025年初创企业高管职位面试指南与预测题集萃
- 2025年机械伤害应急处理手册及测试题
- 2025年物业安保主管面试常见问题集锦
- 2025年工程设计师执业能力评价试卷及答案解析
- 2025年财务管理主管实战面试题集
- 2025年建筑员笔试高频题解析
- 保安员在岗培训法律-2
- 初中英语中考专题训练阅读理解-应用文篇
- 《古文观止 上下 》读书笔记思维导图PPT模板下载
- YC/T 210.2-2006烟叶代码第2部分:烟叶形态代码
- GB/T 20671.1-2006非金属垫片材料分类体系及试验方法第1部分:非金属垫片材料分类体系
- 熵权法教学讲解课件
- 医师病理知识定期考核试题与答案
- 课堂因“融错·容错·溶措”而精彩
- 阳光晾衣房钢结构专项施工方案
- 安宁疗护服务流程
- 热分析DSC培训new
评论
0/150
提交评论