(通信与信息系统专业论文)基于j2ee设计模式的铁路分局门户网站的实现.pdf_第1页
(通信与信息系统专业论文)基于j2ee设计模式的铁路分局门户网站的实现.pdf_第2页
(通信与信息系统专业论文)基于j2ee设计模式的铁路分局门户网站的实现.pdf_第3页
(通信与信息系统专业论文)基于j2ee设计模式的铁路分局门户网站的实现.pdf_第4页
(通信与信息系统专业论文)基于j2ee设计模式的铁路分局门户网站的实现.pdf_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

中文摘要 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 模式后系统各方面的性能变 化进行了分析,并对如何选择模式提出了几点看法。最后对这些模式在系统中的 具体应用给出了相应的u m l 图,和功能函数的重要的代码片断。 综上所述,在设计j 2 e e 应用程序的时候,应当选择适合系统规模是符合实 际设计要求的j 2 e e 设计模式以提高系统的服务质量。 关键词:j 2 e e ,e j b ,设计模式,u m l a b s t r a c t j 2 e ei sac u r r e n t l yp o p u l a rd e v e l o p i n g - p l a t f o r ms p e c i f i c a t i o nw h i c hs h o u l db e o b e y e di nd e v e l o p i n gt h ed i s t r i b u t e d n - t i e r , a n de n t e r p r i s en e t w o r ka p p l i c a t i o n w i t l l t h ed e v e l o p m e n to ft h ec o m p u t e rn e t w o r k ,t h 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 db yi t h a v ea c h i e v e dv e r ye x t e n s i v ea p p l i c a t i o ni ne - b u s i n e s s ,e - g o v e r n m e n ts p h e r e e f f i c i e n c yi sa ni m p o r t a n ti s s u ei na p p l i c a t i o no fj 2 e e s h o r t e n i n gt h er e s p o n s e t i m ec a u s e db yt h en e t w o r kt r a n s f e r sa n di m p r o v i n gt h ea b i l i t yo fa p p l i c a t i o nt o d i s p o s et h ea f f a i r si nu n i tt i m es h o u l db et a k e ni n t oc o n s i d e r a t i o nw h e nd e s i g n i n ga s y s t e m a n o t h e ri s s u ei sh o w t oi m p r o v et h er e u s e a b i l i t ya n dt h ee x t e n s i b i l i t yo ft h e s y s t e mm o d u l e sw h i c ha r et h en e c e s s a r yp e r f o r m a n c e st oi m p r o v et h es o f t w a r e q u a l i t ya n de x t e n di t sl i f e c y c l e j 2 e ep a u e m ss u m m a r i z e db ye a r l yd e v e l o p e r sh a v e b e e np r o v e du s e f u l ;t h e r e f o r e t h c yh a v eb e e na d o p t e di nt h ea u t h o r sw o r kt os o l v et h er e u s a b i l i t ya n de x t e n s i b i l i t y p r o b l e m si nd e v e l o p m e n to f t h er a i l w a ym i n i s t r yb r a n c h sp o r t a lw e b s i t e a tf i r s t ,s o m ee s s e n t i a lb a c k g o u n dk n o w l e d g ea n dt h eo v e r v i e wo ft h ep o r t a l w e b s i t eh a v eb e e ni n t r o d u c e d a f t e rt h ef u n c t i o n so ft h es y s t e mh a v eb e e na n a l y z e d a n di t se s s e n t i a ls u m m a r yd e s i g nb e e nm a d e ,t h ei m p l e m e n t a t i o no fs o m ea s ec a s eo f t h ew e b s i t ea r et a k e na se x a m p l e st os h o wh o wt oc h o o s ea n dm a k eu s eo f e j bd e s i g n p a r e m t h ev a r i o u si n f l u e n c e so nt h es y s t e mp e r f o r m a n c eb yu s i n gt h e s ed e s i g n p a t t e r n sa r ed e a l tw i t ha sw e l l t h ec h a r a c t e r i s t i c sa n dt h ea p p l i c a t i o nf i e l do ft h e d e s i g np a r e m sw i t i ls i m i l a rf u n c t i o n sa r ep r o b e di n t o a n ds o m ed e s i g np a t t e r n st h a t u s e di nt h es y s t e mh a v eb e e nc h o s e n v a r i o u sm e t h o d st oi m p r o v et h ep e r f o r m a n c eo f t h ea p p l i c a t i o ns y s t e ma r eg i v e nf r o mt h ea s p e c to fu s i n gj 2 e ep a r e m s a n dt h e i m p r o v e m e n to f t h es y s t e mp e r f o r m a n c ei sl i s t e da n ds o m ev i e w so nh o wt oc h o o s e t h ej 2 e ed e s i g np a t t e r n sa r ep r o p o s e d f i n a l l y ,t h ec o r r e s p o n d i n gi m p o a a n tc o d eo f s o m ef u n c t i o n sa n ds o m eu m l d i a g r a m su s i n gt h e s ep a t t e r n sa r ep r o v i d e d i nc o n c l u s i o n ,t od e v e l o pd i s t r i b u t e dn e t w o r ka p p l i c a t i o ne m p l o y i n gj 2 e e ,t h e d e s i g np a t t e r n sw h i c ha d a p t e dw e l lt ot h es c a l eo ft h ea p p l i c a t i o na n de n v i r o n m e n t s h o u l db ec h o s e na n dt h e s ep a t t e r n sc a ni m p r o v es o m ep e r f o r m a n c eo fa p p l i c a t i o n k e y w o r d s :j 2 e e ,e j b ,d e s i g np a r e r n ,u m l 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得鑫壅盘鲎或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名:盘n 窜 签字日期:z 。1 年 月2 1 日 学位论文版权使用授权书 本学位论文作者完全了解叁叠盘望有关保留、使用学位论文的规定。 特授权墨生盘堂可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:盘r 军导师签名棚 签字日期:2 0 。5 年2 月乙t 日签字日期:力归r 年2 月2 z 日 天津大学硕士学位论文第一章:绪论 1 1 研究背景 第一章绪论 j a v a2p l a f f o r l r le n t e r p r i s ee d i t i o n ( j 2 e e ) 即j a v a 2 平台企业版,是一个标 准中间件体系结构规范,它为企业级应用程序开发者提供了一种简单的、基于组 件创建企业联网和i n t e m e t 应用程序的方式。自从j 2 e e 在1 9 9 7 年被s u n m i c r o s y s t e m 公司提出后,经过数年的发展,已经成为开发企业级应用的工业标 准,在服务器端开发中的应用已经非常广泛。从一开始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 有着广泛的a p i ,甚至对于一个相对简单的j 2 e e 应用程序中都可以以 多种方式编写。例如可以直接在j s p 或s e r v l e t 中使用j d b c 和数据库连接,也 可以使用会话b e a n 来完成,在实体b e a n 中可以使用b m p ,也可以使用c m p 等。 甚至在使用同一种a p i 集合的时候,一个开发人员有可能已完全不同于别人的方 式使用它们。因此,不同的开发人员开发的j 2 e e 应用程序的代码不同,所带来 的性能的影响也各不相同。优秀的系统设计可以提高j 2 e e 应用程序本身的性能, 使它能支持更多的并发访问,而且运行速度相对更快。虽然e j b ( e n t e r p r i s e j a v a b e a n ,企业j a v a b e a n ) 组件技术只是构成j 2 e e 平台的技术之一,但是它们 通常被看作j 2 e e 平台的基础。e j b 组件模型在设计和实现中给j 2 e e 开发人员 提供了大量的灵活性选择。这些选择在不同程度上影响应用程序的整个性能。因 此,在设计j 2 e e 应用程序时,e j b 组件层的性能是作为性能优化的主要目标, 天津大学硕士学位论文第一章:绪论 本文所讨论的设计模式也以e j b 设计模式为主。 随着j 2 e e e j b 技术的日益流行,越来越多的企业选择使用j 2 e e e j b 技术来 架构系统。但是,j 2 e e e j b 技术比较复杂,如何构建高效的,安全和可靠的基 于j 2 e 髓旧的企业应用系统是软件开发者要面临的一个挑战。很多有经验的e j b 系统开发人员在他们的实践过程中总结出了许多可以提高系统性能的用于e j b 编程的可复用方法,从而形成了e j b 设计模式。这些设计模式可以帮助其他的 e j b 开发人员提高项目的质量,缩短项目的开发周期。 即使利用最先迸的软件平台j a v a 2p l a t f o r r ne n t e r p r i s ee d i t i o n ( j 2 e e ) ,开发 企业应用仍然是个难题。j 2 e e 通过a p i 提供为了优化e j b 的设计,除了遵循最 新的e j b 规范来设计接口以外,还要采取适当的体系结构来优化网络调用,改 善性能,这种方法就是使用设计模式。软件中的设计模式是众多优秀的开发人员 对于特定环境中的特定问题的解决方案的总结和综合。而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 2 e e 本身所带来的性能优势。 1 2 国内外发展状况 j 2 e e 被认为是成长最快的技术应用平台。但在中国,j 2 e e 在被广泛认可的 同时,由于受限于技术没有普及、开发平台的复杂难用、项目管理复杂、人力资 源稀缺等因素,j 2 e e 应用还不是十分普遍。但是从国内开始接触j 2 e e 起,我们 和世界都站在同一起跑线上,假以时日,其应用和研究必将随着国内信息化程度 天津大学硕士学位论文第一章:绪论 本文所讨论的设计模式也以e j b 设计模式为主。 随着j 2 e e e j b 技术的日益流行,越来越多的企业选择使用j 2 e e e j b 技术来 架构系统。但是,j 2 髓厄j b 技术比较复杂,如何构建高傲的,安全和可靠的基 于j 2 e e f e j b 的企业应用系统是软件开发者要面i 临的一个挑战。很多有经验的e j b 系统开发人员在他们的实践过程中总结出了许多可以提高系统性能的用于e j b 编程的可复用方法,从而形成了e j b 设计模式。这些设计模式可以帮助其他的 e j b 开发人员提高项目的质量,缩短项目的开发周期。 即使利用最先进的软件平台j a v a 2p l a t f o r me n t e r p r i s ee d i t i o l l ( j 2 e e ) ,开发 企业应用仍然是个难题。j 2 e e 通过a p i 提供为了优化e j b 的设计,除了遵循最 新的e j b 规范来设计接口以外,还要采取适当的体系结构束优化网络调用,改 善性能,这种方法就是使用设计模式。软件中的设计模式是众多优秀的开发人员 对于特定环境中的特定问题的解决方案的总结和综台。而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 2 e e 本身所带来的性能优势。 1 , 2 国内外发展状况 j 2 e e 被认为是成长最快的技术应用平台。但在中国,j 2 e e 在被广泛认可的 同时,由于受限于技术没有普及、开发平台的复杂难用、项目管理复杂、人力资 源稀缺等因素,j 2 e e 应用还不是十分普遍。但是从国内开始接触j 2 e e 起,我们 和世界都站在同一起跑线上,假以时日 和世界都站在同一起跑线上,假以时闩 其应用和研究必将随着国内信息化程度 其应用和研究必将随着国内信息化程度 天津大学硕士学位论文第一章:绪论 的提高而进一步发展。 设计模式同样起源于国外,现在j 2 e e 设计模式的研究工作也大都在国外的 机构、团体的站点找到。 s u nj a v ac e n t e r 的j 2 e ep a t t e r nc a t a l o g ,它包含了2 1 个核心j 2 e e 模式,是 从s u n 自己的咨询组织的经验中收集的。其书面出版物为j 2 e e 核心模式, 现在已经出了第二版【”1 ,在原来1 5 种设计模式的基础上,又增加了六种新的设 计模式。 s u n 的j a v a e n t e r p r i s eb l u e p r i n t s 中也提到了一部分j 2 e e 模式,其实例程序 就是众所周知的p e ts t o r e 应用程序。 t h e s e r v e r s i d e e o m 的模式仓库中有着更多的j 2 e e 模式,它包含了由许多积 极参与j 2 e e 项目的开发人员提交和讨论的模式。其书面出版物为 e j b 设计模 式吼 p o r t l a n dp a r e mr e p o s i t o r y 的e j bd e s i g np a t t e r n s 中也有着一部分j 2 e e 模 式,他们来自于设计模式运动中心的个开发人员团体【_ ” 而关于j a v a 语言本身的设计模式就更多了。其中 ( j a v a 与模式【9 】一书中 就总结了2 7 的j a v a 设计模式。 在我国,关于模式的研究相对滞后。尽管在国内著名的h u i h o o c o r n 和c s d n n e t 等程序员网站中都存在着许多关于设计模式的文档和讨论,但多为已有设计模式 的应用方面的讨论。同样,国内有关设计模式的书籍也大都为译作。从这点看来, 要赶上世界上的软件发达国家,我们还有很长的路要走。但是随着j 2 e e 在中国 的应用越来越广泛,国内的开发人员必将更多地参与到j 2 e e 的项目开发中。同 时,随着大师们的设计模式思想逐渐深入人心,中国的j 2 e e 模式的研究也必将 走上新的台阶。 1 3 作者的工作 本文工作主要分为以下几个部分: 1 ) 研究了j 2 e e 的各种模式,它们的应用隋景、所能够解决的问题、应用后的效 果。 2 ) 根据实际项目的需求,选取适当的模式,来满足系统的复用性,和可维护性。 3 ) 在项目中用编码实现设计模式,分析比较了应用设计模式后系统的性能指标。 天津大学硕士学位论文第一章:绪论 1 4 本文的组织结构 论文在第二章分别介绍了设计模式和j 2 e e 技术,以及它们的发展现状。第 三章根据作者本人亲自参加的一个项目阐述了如何在系统开发阶段运用设计模 式的思想对系统进行总体规划。第四章说明在项目开发过程中,涉及模式的实现。 在最后的第五章对全文进行总结,并对今后的研究和工作进行展望。 天津大学硕士学位论文 第二章设计模式和j 2 e e 概述 2 1 设计模式概述 第二章设计模式和j 2 e e 概述 近十年中,面向对象领域中的一个重要突破就是提出了设计模式的概念。设 计模式由于其实用性而受到欢迎:它们能够表达和复用专家的技术和经验;能进 行系统框架设计;而且在表达上既经济又清楚。 2 1 1 模式的产生 模式( p a t t e m ) 的概念最早由建筑大师c h r i s t o p h e r a l e x a n d e r 于二十世纪七 十年代提出,应用于建筑领域,八十年代中期由w a r dc u n r a n g h a l t l 和k e n t b e c k 将其思想引入到软件领域。在1 9 9 5 年,由于设计模式:可复用面向对象软件 的基础【7 j 一书的发表,设计模式在软件工程领域的研究和应用才得到广泛的关 注。而这本书的四位作者通常被戏称为g o f ( e r i c hg a m m a 、r i c h a r dh e l m 、r a l p h j o h n s o n 和j o h nv l i s s i d e s 四人,简称:g a n go f f o u r g o f l ) 。如今模式己成为软 件工程领域内的一个热门话题,其在计算机领域的影响远超过了在建筑界的影 响。 2 1 , 2 设计模式的涵义 建筑设计师c h r i s t o p h e ra l e x a n d e r 对模式的定义有如下概括:“每一个模式 描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这 样,你就能一次又次地使用该方案而不必作重复劳动。 l7 】上述的定义是对模 式的广义定义。尽管a l e x a n d e r 所指的是城市和建筑模式,但他的思想也同样 适用于软件工程领域的设计模式( d e s i g np a t t e m ) ,两类模式的核心都在于提供 了相关问题的解决方案。我们将其应用到面向对象软件的领域内,就形成了对设 计模式的狭义定义。 我们可以简单的认为:设计模式就是在某种特定的情境( c o n t e x t ) 下,某 个不断重复出现的特定的面向对象软件问题的解决方案。它是对于一些已经被证 明为优秀的解决方法的归类、总结,目的是为了复用该解决方案而不用做重复的 劳动趴。 一般而言,一个模式有四个基本要素【7 j : 天津大学硕士学位论文第二章设计模式和j 2 e e 概述 1 模式名称( p a t t e m n a m e ) 一个助记名,它用一两个词来描述模式的问题、解 决方案和效果。命名一个新的模式增加了我们的设计词汇。设计模式允许我们在 较高的抽象层次上进行设计。基于一个模式词汇表,我们自己以及同事之间就可 以讨论模式并在编写文档时使用它们。模式名可以帮助我们思考,便于我们与其 他人交流设计思想及设计结果。 2 问题0 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 s ) 描述了模式应用的效果及使用模式应权衡的问题。尽管我 们描述设计决策时,并不总提到模式效果,但它们对于评价设计选择和理解使用 模式的代价及好处具有重要意义。软件效果大多关注对时间和空间的衡量,它们 也表述了语言和实现问题。因为复用是面向对象设计的要素之,所以模式效果 包括它对系统的灵活性、扩充性或可移植性的影响,显式地列出这些效果对理解 和评价这些模式很有帮助。 2 1 3 模式的分类 在g o f 的书设计模式,可复用面向对象软件的基础 7 1 中根据两条准则对 模式进行分类。 第一是目的准则,即模式是用来完成什么工作的。模式依据其目的可分为创 建型( c r e a t i o n a l ) 、结构型( s t r u c t u r a l ) 、和行为型( b e h a v i o r a l ) 三种。创建型 模式与对象的创建有关;结构型模式处理类或对象的组合;行为型模式对类或对 象怎样交互和怎样分配职责进行描述。 创建型模式:该类型模式是对对象实例化过程的抽象,它通过采用抽象类所 定义的接口,封装了系统中对象如何创建、组合等信息,如f a c t o r y 模式和s i n g l e t o n 模式等 结构型模式:该类模式主要用于如何组合已有的类和对象以获得更大的结 构,般借鉴封装、代理、( 多) 继承等概念将一个或多个类或对象进行组合、 封装,以提供统一的外部视图或新的功能,如p r o x y 模式和f a g a d e 模式等。 天津大学硕士学位论文第二章设计模式和j 2 e e 概述 行为型模式:该类模式主要用于对象之间职责及其提供的服务的分配,它不 仅描述对象或类的模式,还描述它们之间的通信模式,特别是描述一组对等的对 象怎样相互协作以完成其中任一对象都无法单独完成的任务,如s 仃a t e g y 模式和 c o m m a n d 模式等。 第二是范围准则,指定模式主要是用于类还是用于对象。类模式处理类和子 类之间的关系,这些关系通过继承建立,是静态的,在编译时刻便确定下来了。 对象模式处理对象间的关系,这些关系在运行时刻是可以变化的,更具动态性。 从某种意义上来说,几乎所有模式都是使用继承机制,所以“类模式”只指那些 集中于处理类问关系的模式,而大部分模式都属于对象模式的范畴。 2 1 4 为什么要使用模式? 模式是被验证过的 模式反映了在项目中成功使用这些模式的开发者的经验、知识、和洞察力。 模式是可以复用的 模式对一些问题提供了一种现成的解决方案,可以经过必要的修改而应用到项目 中去。 模式是表达准确 模式提供了一个共同关于解决方案的词汇表,可以简洁地表示解决方法 2 1 5 反模式 设计模式文档记录经过证明的良好的设计方法,其中的模式能够达到目标。 也有一些不好的设计方法,不能够达到目标。人们很少提到这些应用程序的设计 与体系结构。这些应用程序的建筑师错在哪里呢? 记录这些错误决策有助于防止 在自己的应用程序中犯同样的错误。例如,当用细粒度接口建模实体b e a n 和直 接访问。这样就会增加大量的远程方法调用和事物管理开销,使应用程序的性能 与伸缩性很差。这类错误记录在反模式中。反模式描述不良方案,不良方案会造 成不理想和无法预见的不利结果。了解不良方案及其不利结果有助于今后避免重 走老路。反模式可以避免使用不良方案和恢复与纠正这些错误,因为反模式提供 了成功开发的因素改变方案。 因此,可以把反模式看成是与模式相对。模式标示可行的方案,而反模式标 识不可行的方案或用到错误情景中的方案。尽快标识错误是减少风险的关键,因 此,反模式对每个设计人员、架构师和开发人员都很重要。 天津大学硕士学位论文第二章设计模式和j 2 e e 概述 反模式和设计失误的区别在于,如同设计模式一样,反模式也是重复出现的。 2 2 u m l 语言 本文在后面会使用u m l ( 统一建模语言, u n i f i e dm o d e l i n gl a n g u a g e ) 来 说明模式的结构和各个示范系统的结构。 统一建模语言是由g r a d yb o o c h 等三人提出、o m g 认可为工业标准,目 前被广泛应用于面向对象建模的各个领域。作为一种建模语言,u m l 的定义包 括u m l 语义和u m l 表示法两个部分【2 0 l 。 ( 1 ) 切咀。语义:描述基于u m l 的精确元模型定义。元模型为u m l 的所有 元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义 上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外u m l 还支 持对元模型的扩展定义。 ( 2 ) u m l 表示法:定义u m l 符号的表示法,为开发者或开发工具使用这些 图形符号和文本语法,为系统建模提供了标准。这些图形符号和文字所表达的是 应用级的模型,在语义上它是u m l 元模型的实例。 u m l 的最重要的三个特点归结如下州。 ( 1 ) u m l 统一了b o o t h 、o m t 和o o s e 等方法中的基本概念。 ( 2 ) u m l 还吸取了面向对象技术领域中其他流派的长处,其中也包括非0 0 方法的影响。u m l 符号表示考虑了各种方法的图形表示,删掉了大量易引起混 乱的、多余的和极少使用的符号,也添加了一些新符号。因此,在u m l 中汇 入了面向对象领域中很多人的思想。这些思想并不是u m l 的开发者们发明的, 而是开发者们依据最优秀的0 0 方法和丰富的计算机科学实践经验综合提炼而 成的。 ( 3 ) u m l 在演变过程中还提出了一些新的概念。在u m l 标准中新加了模板 ( s t e r e o t y p e s ) 、职责( r e s p o n s i b i l i t i e s ) 、扩展机制( e x t e n s i b i l i t y m e c h a n i s m s ) 、 线程( t h r e a d s ) 、过程( p r o c e s s e s ) 、分布式( d i s t r i b u t i o n ) 、并发( c o n c u r r e n c y ) 、 模式( p a t t e r n s ) 、合作( c o l l a b o r a t i o n s ) 、活动图( a c t i v i t yd i a g r a m ) 等新概念, 并清晰地区分类型( t y p e ) 、类( c l a s s ) 和实例( i n s t a n c e ) 、细化( r e f i n e m e n t ) 、 接口( i m e r f a c e s ) 和组件( c o m p o n e n t s ) 等概念。 本节将简单介绍本文涉及到的u m l 技术 2 ”。 1 类图和对象图 类图( c l a s sd i a g r a m ) 和对象图( o b j e c td i a g r a m ) ,都属于静态视图( s t a t i c d i a g r a m ) 的一种。类图,用于描述系统的静态结构。对象图,用于描述系统在 天津大学硕士学位论文第二章设计模式和j 2 e e 概述 某个时刻的静态结构。类( 或对象) 图中的类( 或对象) ,可以包含类( 或对象) 的名字、属性、操作、可见性等信息。类( 或对象) 图可以描述类( 或对象) 间 的关联关系:普通、递归、限定、或关联、有序关联,关联类;聚合或组合:泛 化:普通、受限、依赖等关系。 在本文中我们用类图来说明模式解决方案的结构和实现策略的结构,为解决 方案提供了静态的图形化表示。 2 序列图( s e q u e n c ed i a g r a m ) 序列图,属于交互图( i n t e r a c t i v e d i a g r a m ) 的一种,用于按时问顺序描述系 统元素间的交互。 在本文中,我们用序列图展示了解决方案或策略中参与者之间的互动,为解 决方案提供的了动态的图形化表示。 3 用例图( u s ec a s ed i a g r a m ) 使用用例图描述一系列的角色和使用案例及它们之间的关系。可以用来对一 个系统的最基本的行为进行建模。 2 3j 2 e e 中的设计模式 2 3 。1j 2 e e 简介 j a v a 2 p l a t f o r m ,e n t e r p r i s e e d i t i o n ( j 2 e e ) 技术提供了一个基于组件的方法来 设计、开发、装配和部署企业级应用程序。j 2 e e 平台提供了一个多层结构的分 布式的应用程序模型,该模型具有复用组件的能力、基于扩展标记语言( x m l ) 的数据交换、统一的安全模式和灵活的事务控制。j 2 e e 提供构建中间件的功能。 中间件是在计算机硬件和操作系统之上,支持应用软件开发和运行并且独立于应 用软件的系统软件,它能够使应用软件相对独立于计算机硬件和操作系统平台, 为当今的大型分布式应用搭起一个标准的平台,把大型企业分散的系统技术组合 在一起,从而实现大型企业应用软件系统的集成。 天津大学硕士学位论文第二章设计模式和j 2 e e 概述 2 3 2j 2 e e 基本结构 浏览器f 习r l r 1 一1 。一 w e b 层 产 w e b :容器t l 厂 懑 客户端 l 应用程序l 一 匿匿i 应用层 数据库 客户端 应用程序容器 1 目目目圈 客户端机器 j 2 e e 服务器 客户层中间层e i s 层 图2 - 1j 2 e e 的多层结构 从上图中我们可以看出,j 2 e e 的基本体系结构由客户层、w e b 层、应用 层和e i s 层组成。w e bb r o w e r 和j a v ac l i e n t 组成客户层,用于显示用户界面。 w e b 容器存在于w e b 服务器上,为w e b 层;e j b 容器存在于应用程序服务 器上,为应用层。w e b 层和应用层合在一起组成了j 2 e e 体系结构的中间层, 用以完成企业计算的事务逻辑。数据层则是传统的大型数据库服务器。具体分析 如下: ( 1 ) 客户层是应用程序的显示部分,其主要功能是负责人机交互:显示美 观友好的界面,处理用户输入,进行输入数据校验,请求服务器的服务,显示由 服务器端返回的结果。有两类客户:基于w e bb r o w e r 的客户调用s e r v l e t j s p ( s e r v l e t j a v as e r v e rp a g e s ) 处理数据;纯j a v a 客户,可通过j n d i ( j a v a n a m i n gd i r e c t o r yi n t e r f a c e ) 直接访问e j b 或数据库资源。 ( 2 ) w e b 层由j s p 、s e r v l e t 和j a v ab e a n s 组件构成,存在于w e b 服 务器中,代表服务器端处理的显示逻辑。w e b 层的功能是当用户浏览器从w e b 服务器上请求j s p 文件时,w e b 服务器响应该h t t p 请求进行简单处理,再 调用e j b 进行商业逻辑处理,将结果组织成h t m l 形式发送回浏览器,还可 以通过j d b c ( j a v ad a t a b a s ec o n n e c t i v i t y ) 直接访问后台数据库系统。j s p 技术是 j 2 e e 标准中一项重要的技术,它将j a v a 和h t m l 语言结合起来为客户提供一 个可支持跨平台和跨w e b 服务器的动态网页页面,j s p 可以调用e j b 从而访 天津大学硕士学位论文第二章设计模式和j 2 e e 概述 问数据库。j s p 最大的优点就在于它将网页页面的动态内容同它的表示层分开, 也就是说,网站美工在修改网页内容时,丝毫不会对浏览器端产生影响。 ( 3 ) 应用层用e j b 封装应用领域的业务逻辑。e j b 容器存在于应用程序服务 器上,为应用层。j 2 e e 使用e j b 容器作为e j b 组件的部署环境,在e j b 容器中 提供了分布式计算中组件需要的所有服务,例如组件生命周期的管理、数据库连 接池的管理、分布式事务管理、组件的命名服务、自动容错以及负载的自动均衡 能力等。实现业务逻辑的e j b 组件可以更加高效的运行在应用程序服务器中, 支持多客户端的访问,h t t p 的客户端可先向运行在w e b 容器上的j a v as e r v l e t 或j s p 发出请求,在j s p 中嵌入的j a v a 代码调用运行在e j b 容器中的e j b 组 件,以实现复杂的事务逻辑,而其他的客户端可通过r m i i i o p ( r e m o t em e t h o d i n v o c a t i o n i n t e r n e ti n t e r o r bp r o t o c 0 1 ) 直接访问运行在e j b 容器中的e j b 组 件。 ( 4 ) e i s 层则是传统的大型数据库服务器。包括数据库系统、事务处理和 其他遗留信息系统。最终,客户在客户端通过w e b 浏览器等方式访问位于中 间层的w e b 服务器,w e b 服务器响应该请求,进行简单处理,再调用位于应 用程序服务器中的e j b 去访问和操纵后台的数据库服务器,用以完成复杂的商 业逻辑。 2 3 - 3j 2 e e 的核心a p i 与组件 j 2 e e 平台由一整套服务( s e r v i c e s ) 、应用程序接口( a p i s ) 和协议构成, 它对开发基于w e b 的多层应用提供了功能支持,下面对j 2 e e 中的几种关键技术 规范进行简单的描述: 1 j d b c ( j a v ad a t a b a s ec o n n e c t i v i t y ) : j d b ca p i 为访问不同的数据库提供了一种统一的途径,象o d b c 一样, j d b c 对开发者屏蔽了一些细节问题,另外,j d c b 对数据库的访问也具有 平台无关性。 2 j n d i ( j a v a n a m i n g a n dd i r e c t o r yi m e r f a c e ) - j n d ia p i 被用于执行命名和目录服务。它提供了一致的模型来存取和操作企 业级的资源如d n s 和l d a p ,本地文件系统,或应用服务器中的对象。 3 ,j s p ( j a v as e r v e rp a g e s ) : j s p 页面由h r i m l 代码和嵌入其中的j a v a 代码所组成。服务器在页面被客户 端所请求以后对这些j a v a 代码进行处理,然后将生成的h t m l 页面返回给 客户端的浏览器。 天津大学硕士学位论文第二章设计模式和j 2 e e 概述 4 j a v as e 】e t : s e r v l e t 是一种小型的j a v a 程序,它扩展了w e b 服务器的功能。作为一种服 务器端的应用,当被请求时开始执行,这和c g ip e r l 脚本很相似。s e r

温馨提示

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

评论

0/150

提交评论