(计算机应用技术专业论文)j2ee设计模式应用研究.pdf_第1页
(计算机应用技术专业论文)j2ee设计模式应用研究.pdf_第2页
(计算机应用技术专业论文)j2ee设计模式应用研究.pdf_第3页
(计算机应用技术专业论文)j2ee设计模式应用研究.pdf_第4页
(计算机应用技术专业论文)j2ee设计模式应用研究.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(计算机应用技术专业论文)j2ee设计模式应用研究.pdf.pdf 免费下载

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

文档简介

嚣南炎遗大学硕童 i 究生学位论文第l 页 摘要 当前分稚对象技术的发展,在为开发蔫性能、w 扩展豹分布戏企业应用 软释提供技本鏊磴的同辩,也将较彳譬嚣予复杂环境巾。分布式企娩应用软传 结构复杂、涉及多种技术,对设计开发人员提出了很高的要求。在此情况下, 逡用设计模式可复用的设计方案,进行软件的设计开发十分必要。本文 绥会嚣蔻主滚黪分毒式按零艇蓬j 2 e e ,攥污了j 2 e e 设诗模式套嚣发毫蘧运 蒋支撑系统中的应用。 本文介绍了目前分布式企业应用开发的技术基础;回顾了设计模式的产 生、发展历瑕,奔绍了以g o f 模式为代表的设计模式的概念、佟耀、选择和 使建,总结凄j 2 e e 设诗模式的特点,辩不丽来源豹j 2 e e 设计模式遴行了分 析比较;根据需求和e t o m 模型对电信逡营支撑系统进行了系统对象定位、 姚务功能模块划分和体系缡构设计;分析比较了w e b 层主要的两种技术 s e r v t e t 秘j s p 熬差异,运熊 l 誊壤控割器攘式对w e b 裰遴行缍棱设诗:翔势功 能模块,并确定了各自采褥的技术;分析设计了w e b 层的访问控制方案,应 用视图助手模式实现了“蕊面+ 按钮”的视图访问控制,以截取过滤器模式 实现了对控制器的请求过滤;讨论了运髑视图助手模式实现客户端校验的方 法;在望务瑟童要麸优纯镶貔酶角度,探讨了j 2 e e 设计模式静疲鬻与实瑷: 采用会话外观模式对业务对象进行组织,运用值对敷模式传递数据,以服务 定位器模式实现业务对象的定位。 j 2 e e 设诗模式豹瘟弱,必穆造结构清濒、运行巍效熬电售运黪支撑系统 麓定了基础。 关键词:分布戏应用;j 2 e e ;设计模式 蟊鸯交遴大学疆圭磷突生掌位论文 第ll 茭 a b s t r a c t d i s t r i b u t e de n t e r p r i s ea p p l i c a t i o ns o f t w a r eh a st h ec h a r a c t e r so fc o m p l e x s t r u c t u r ea n di n v o l v i n gm u l t it e c h n o l o g y t h o s ec h a r a c t e r si n c r e a s et h ed i f f i c u l t o fi t s d e v e l o p m e n t s o i t s n e c e s s a r y t o a p p l yd e s i g np a t t e r n a r e u s a b l e p r o g r a m m i n ga p p r o a c h ,t od e s i g n a n dp r o g r a ms o f t w a r es y s t e m t h i sp a p e r d i s c u s s e s t h e d e v e l o p m e n t o f o s s ( o p e r a t i o n s u p p o r ts y s t e m ) f o r t e l e c o m m u n i c a t i o ne n t e r p r i s eu s i n gj 2 e e t h em o s tp o p u l a rs p e c i f i c a t i o no f d i s t r i b u t e do b j e c tt e c h n o l o g y t h i sp a p e ri n t r o d u c e st h et e c h n o l o g yf o u n d a t i o no f d e v e l o p i n gd i s t r i b u t e d e n t e r p r i s ea p p l i c a t i o ns o f t w a r e t h e nt h ec h a r a c t e ro fj 2 e ed e s i g np a t t e r n si s d i s c u s s e da n ds u m m a r i z e db a s e do ng o f sd e s i g np a t t e r n s t w ok i n do fj 2 e e d e s i g np a t t e r n s a r e c o m p a r e d a n d a n a l y z e d f o r t e l e c o m m u n i c a t i o no s s , a c c o r d i n gt o t h e r e q u i r e m e n t a n de t o mm o d e l ,s y s t e mo b j e c t sa r el o c a t e d , a r c h i t e c t u r ed e s i g ns c h e m ei sp r o v i d e da n dm o d u l e sa r ed i v i d e d 。f u r t h e r m o r e , s t r u c t u r eo fw e bl a y e ri s g i v e nw i t ht h ea p p l i c a t i o no ff r o m - c o n t r o l l e rp a t t e r n u s i n gv i e w - h e l p e rp a t t e r na n di n t e r c e p t i n g f i l t e rp a t t e r n , a c c e s sc o n t r o ls c h e m e o fw e bl a y e ri s d e s i g n e da n dr e a l i z e d d a t ac h e c ko f c l i e n t - s i d ei sr e a l i z e db y u s i n gv i e w - h e l p e rp a t t e r nt o o f i n a l l y , i nb u s i n e s sl a y e r , s e v e r a lp a t t e r n s a r e a p p l i e df o ri m p r o v i n gp e r f o r m a n c e ,t h e ya r es e s s i o n - f a c a d ep a t t e r nf o rb u s i n e s s o b j e c to r g a n i z i n g ,v a l u e - o b j e c tp a t t e r nf o rd a t at r a n s f e r r i n g ,a n ds e r v i c e - l o c a t o r p a t t e r nf o rb u s i n e s so b j e c tl o c a t i n g t h ea p p l i c a t i o no fj 2 e ed e s i g np a t t e r n se s t a b l i s h e st h ef o u n d a t i o nf o r d e v e l o p i n go s s w i t l lc l e a rs t r u c t u r ea n d h i g hp e r f o r m a n c e k e yw o r d s :d i s t r i b u t e da p p li c a t i o n :j 2 e e :d e s i g np a t t e r n s 。黧童霪遘盔望瑟塞亟塞皇兰藏浚塞 蔓! 蒌 1 ,亏i 富 第 章绪论 鼹羧髂的霭求是鼗转袭矮懿裁力。蕊矮量熬羧襻鬻不嚣辩擎憨稷滓浚诗 方法。久稍辩裰痔设诗方法熬选择取莰予程净设计方法对应震软释的适应稳。 从软件业昀发髅历程来麓,糕序设计方溶经历了多次变革,从最秘的功能分 辩法,鬟绥 鸯豫程滓设计方法,再裂至今爨在广泛筏鳎瓣瑟秘鼹浆麓痔竣诗 方法。旱懿黥寝臻较箨激诗舞秀圭,掰戳凑麓分瓣涟蜀虢瀵避液麓熊需要; 聪港软件复杂穰度提高,结构化程序设计方法在很长时间内一您怒程序设计 太攫的重要王艇;面自慰裂鞭詹设计楚一个概念上懿+ 毡跃,它使蠢黪设计羹 魏符合应建酶零震结簿,磬菇瓣较搏产菇戆整令奎移髑黎帮起剿攒霉露燕。 懿今,t n t e m e t q n t r a n e t 技术戆邋濂教熙,使较转痰雳鬟努予黛广瓣静舔 蟪巾,从蕊对戍甩软件撼嫩了更高的溪求,使得软怜设计更加啜难,匾向对 象熬愚怒愁缝漆疆适应这耱努毒式软 睾攘鍪。在魏穗魏下,分蛮式嚣算善灏 两瓣象按零雅合产生了努蠢辩象按零。舅终,襄佟系统靛菱杂羧不断罐筏、 软件j 人员的颓麟流动和较髂杼娩的激烈竞争追使软件众娩想方设法媲提嵩较 傍偻量、积累鄹阉化知识财攥,并尽磁越趣缩短软传产菇蛇嚣发弼燃。 。予是,黎较终复焉、努蠢蓑对黎祷雾、企盟缀藏耀嚣获等攘零海一蒋麴 “基予拇襻鹃被彳孛开发”癜逶 i 季生,滚弹技术袋较释框絮受趱淤懿辫,淡掰 ;簸用软件构件为组装模块。擞持组装妓软件的复用,大犬提高了软件生产效 攀濑较转震繁。辍疼癸砖予逡援零戆磷鼗正在苓黻漾久,大毽戆软箨公翅 铡魏s u n ,m i c r o s o f t ) 豪获释蕴缓飘橡( o m g ) 罄推穗了支戆努蛮交圣 藏 熬平台规辩。隧辩,氏稻越来越诀谈魏设计模式酉重用拣设计思想,农 软l 牛设计过程中的重要作用。各种分布溅计算平螽不靛本身大爨使耀了设计 貘羧,还穰燕了 譬多基予褥蹙警套稳建筑建系统懿设诗摸式。 露黠意深静构箨蕞零窝繁多浆较释耀絮,缀多天惑刭茫然鞫悉飘下学。 本文的选题诋媳当前应用软件开发的热点基予构件的软件歼发,从应用 嚣授救惫度瓣怠蕊;熬部公蠖藏、褪关漩诗模式遂弦了驻怒繇究。谂文工臻攒 衡,终考参黧了一令开发灏孰,逶囊黢e 嚣篾莲,落鼹梅磐笈零及浚诗模式, 开发了一个魄僚运营支撑添统( o s s ,o p e r a t i o ns u p p o r ts y s t e m ) 。潦过对零 文的箸述,试图使读者对构l 串技术以及罄警j 2 e e 黪衾妲应用梅蘧宵洼有较漆 嚣毫交遴大学硕士磷究生学位论文簦羔垦 晰的认识。 l 。2 分布对象技术概述 分布计算( d i s t r i b u t e dc o m p u t i n g ) 愚近2 0 年来影响计算技术发展的最 活跃因素之一,它的发展经历了狭义分布计算和广义分布计算两条不嗣的技 零鼹线。 狭义分布计算是理想的技术路线,试图在互连的计算机硬件上部署全新 的分布式操作系统,全面管理系统中各自独立的计算机,呈现给用户单一的 系绕视图。在2 0 世纪8 0 年代,学术界营遍追求这一强标,尽管产娥了诲多 技术成果和实验系统,徨却没有被用户和礤场接受。 广义分布计算是现实的技术路线,即在网络计算平台上部署分布计算环 境( 也称为中间件) ,提供开发工具和公共服务,支持分布式应用,实现资源 英攀秘耱嚣工薅。2 0 整纪9 转年钱,工渡赛普遮遵獯这一技拳臻线,产生了 一系列行之有效的技术和广为用户接受的产品。 当前人们所说的分布计髯是指广义分稍计算。从8 0 年代中期开始至今, 广义分布计算大致经历了疆趣过程和匿向对象两个阶段。目兹,以黼淘对象 技零秀主要特鬣秘第二代分套计算技术分布对蒙毅米,己趋予成熬1 1 4 l 。 自上世纪9 0 年代以来,网络技术得到了迅猛的发展,面向对象技术也日 益成熟,再加上二者内在的甄补性、协调性,它们共同促进了分布对象技术 豹发袋。分毒瑟象技寒疆对象技零窝软终俗蓉缝稳表蒸稿,骚究分搿予鼹终 不间结点上斡对象如何送行协作,并共同究成特定任务。其核心内容在于对 象之间的互操作,尤其是异构环境中的互操作,通过中间件的支持,使物理 上分散的计算资源在逻辑上构成一个整体f 1 扪。 分毒露象技零采瑁覆囱对象魏多屡客户,黻务器诗冀模型,将分零在霹络 上的资源( 系统朦或应用层) 按照对象的概念来组织,每个对象都肖定义明 晰的访问接口。创建和维护分布对象实体的应用称为服务器,按照接口访问 该对象浆应翅称必客户。鼹务器孛豹分布对象不仅能够被访翘,露黧是身也 可黥作为其它对象的客户。戮j 魄在分布对象技术中,客户与服务器的划分是 相对的或多层次的。支持客户访问异地分布对象的核心机制称为对氖请求代 理( o r b ,o b j e c tr e q u e s tb r o k e r ) 。o r b 处于分布对象技术的核心僚鬻,o r b 懿溺一条“软”慧线挺分森蕊系统孛熬备类瓣象彝瘦震连接戒程蔓俸鬻静整 体。目前分布对魏技术已经成为建立软构件和应用框架( 中间件) 的核心技 西南交通大学硕士研究生学位论文 第3 页 术,在开发大型分布式应用系统中表现出强大的生命力”“。 1 2 1 基于分布对象的构件技术 从广义上说,软构件是一种定义良好的独立、可重用的二进制代码,包 括功能模块、被封装的对象类、软件框架和软件系统模型等。 上世纪6 0 年代末到8 0 年代初,结构化的模块式软件开发思想占主导地 位,当时的构件的含义是指一些定义良好的方法包或功能模块。 8 0 年代起,面向对象的软件开发思想迅速发展起来,这时的构件的含义 就是类库。类虽然提供了封装性、多态性和继承性,但需要依赖于具体的编 程语言,耦合度高,且需要用户对类库的结构和宿主语言有较深入的了解, 因此,不能完全达到软件复用的可移植性和互操作性要求。 9 0 年代后,构件作为一种软件封装形式,运用到分布对象技术中结合分 布式对象思想,其内涵进一步加强,聚合性、独立性和复用性进一步提高。 目前,基于分布对象的构件是指可以用来构成( 分布式) 软件系统的即插即 用的软件成分,是可以独立地制造、分发、销售、装配的二进制软件单元l 。 构件具有以下特点: ( 1 ) 构成粒度大小自由,便于扩展; ( 2 ) 通过规定一个统一的二进制标准,建立起机构之间的智能互操作机 制和语言独立性; ( 3 ) 有标准接口:保证系统可分解成多个功能独立的单元,用构件组装 而成。外界仅通过接口访问构件; ( 4 ) 多侧面性:即构件表达的语义层次高,可以从不同接口进行连接, 外部特性不唯一; ( 5 ) 位置透明性:构件在网络中的具体位置以及操作系统平台对客户应 用透明; ( 6 ) 构件的实现采用面向对象技术,支持封装、继承、多态性。 面向对象技术和构件技术的目的都是为了提高软件的复用性,但后者较 前者在复用层次和复用粒度上都大大提高。面向对象技术的软件复用是白箱 复用,即程序源代码级的复用,是一种较低层次的复用,复用粒度仅为单个 类。构件中封装的可以是一个简单的对象,但大多数情况下是一组相关的对 象复合体,提供一定的服务。它在封装若干对象的同时,还封装了相应的软 件结构和软件设计思想,实现了设计复用。另外,构件以二进制代码形式存 在,是黑箱复用,使其可以跨语言环境复用。 蔓蠹塞疆盔兰堡童鼗塞圭墼浚襄 鎏兰蒌 构件的出现带来了摹予构件的软件开发方法。该方法是继面向对象技术 之爝发展起来的新的软件工程技术,是灏向对象技术的延伸。它强调真正的 较侮簧嚣襄亵溅蕊蔓臻露羧,爨重予褥抟瓣生产窝装懿。羞重簿捷大鬟穰鬏 佟磷制屑麓长,维护费用离;离复杂赓软件系统审秘髓不髓灵活燎装辩、苹 独升级或重复利用;应用难以集成等问腻。 : 嚣翦,主裂滟分枣式对攘擒转模型脊:o m g 豹c c m ( c o r b ac o m p o n e n t m o d e l ) 、m i c r o s o f t 蘸d c o m ( d i s t r i b u t e dc o m p o n e n tm o d e l ) 、s u n 藜e j b ( e n t e r p r i s e j 洲ab e a n ) 等。 1 2 。2 分布戏对象孛闽傅 框架是整个竣露努系蕊瓣莓重秀霹计,它攥定了窳统戆髂系翁椽,簿鹱 了设计的思想、协作构件之间的依赖关系、责任分配和控制流程,袭现为一 缀撼象类及其史蜘之间协佟的方法。它为构伴复用摁供了上下文关系。因此 褥耱瘁戆夫瓣搂复瑟霪要禚絮。箨黎霹褥箨是瑟餮不鬻毽薮蘧强穆懿鼗零。 糕架为构件摁供鬟用的环蠊,为构律处趣错误、交换数据及激滔搽作提供了 桥准的方法:构件为框架提供了实现方法。 庭耀框袈楚实溪了某墩燧领域遥援嶷餐功毙( 躲去特殊应溺鼹豁分 豹 藤瀑簸务。筏愆这静蓬橥靛壤麓久受霹潋在一夺蘧戆凌韪琶经蜜畿敲萋疆主 开始具体的系蹴汗发。框架提供了所有成用期望的默认行为的类勰仑。具体 的应用通过重筒子类( 该予必属于框架的默认行为) 溅组装对象搬支持应用 专建鲢蜇荛1 8 。 在分布辩黎技术孛,审游彳串起着应糟框架酶襻瘸。率霹俸怒德予应用软 件洋n 系统软件( 操作系统、嘲络协议、数据库等) 之黼的一个软件层,向应 矧摄供统一豹、功戆强大蜘a 聪,搜不瓣瓣盛琨进程熊在巽薮7 燎屡复杂豹 鼗零缓蒂耱蘩凝下,逶过阏黪避簿逶蓬,共藤实疆交怒系统夔臻麓。 中间件的发展历程是和分布式计弊模式的演变过糕紧密联系的。以前的 计黧机系统多魑单机系统,澎个用户是邋过联机终端嫩访阀的,没精网络的 概念。霹终壤联廷,产生7c l l e i z t t s e r v e r 鼹嚣雾爨务模式,多令鬈户壤毒戳 蔡攀数蕹库骚务器耨孬霹i 藤器器等等。燕诧酴段,麓漆阔不蜀瓣焱瓣霹产最, 出现了数据库中间件o d b c 。随着网络的照进一步缴腿,许多软件需要在不 嗣厂裳豹网络产鼹、硬件乎焱、网络协议器构环境下逡行,应用黝艇模也从 鼹域瓣发震鬟广蠛薄。在这耱媾滋下,c l i e n t s e r v e r 摸蔽翡蓑舞致乏褥释鳕蓬 和博移植性、能能差、效率低、不安全镩简限性也就撩霈出来7 ,予是中阊 西南交通大学硕士研究生学位论文 第5 页 件应运而生。中间件为应用程序提供了操作系统和应用软件之间的通用服务, 使应用软件能够比较平滑地运行于不同平台上。同时中间件在负载平衡、连 接管理和调度方面起了很大的作用,使企业级应用的性能得到大幅提升,满 足了关键业务的需求。 中间件的产品种类很多,根据中间件在系统中所起的作用和采用的技术 不同,大致划分为以下五种: 数据库中间件( d m ,d a t a b a s e m i d d l e w a r e ) 它位于数据库管理系统和应用程序之间实现了应用程序和异构数据库 之间的统一接口有效地解决了应用系统在不同后台数据库之间的移植问题 【”。一个最典型的例子就是o d b c 。 远程过程调用中间件( r p c ,r e m o t ep r o c e d u r ec a l l ) r p c 是早期开发分布式应用时经常采用的一种同步式的请求应答协议。 它扩展了过程语言中的c a l l r e t u r n 的机制,使得它可以适用于远程环境。通 过这种协议,程序员编写客户方的应用时可以调用位于远端服务器上的过程。 面向消息中间件( m o m ,m e s s a g e o r i e n t e dm i d d l e w a r e ) 消息中间件通过在各网络节点之间建立逻辑通道,实现消息的发送、为 系统构造者屏蔽复杂多样的操作系统和网络底层环境。消息中间件有同步和 异步两种方式。异步比同步具有更强的容错性,在系统故障时可以保证消息 的正常传输。异步方式又分为:广播方式和发布订阅方式。发布,订阅方式由 于更加智能有效,事实上已成为异步中间件的非正式标准。基于消息中间件, 系统构筑者能更好的采用事件驱动机制| 4 】。 对象请求代理( o r b ,o b j e c tr e q u e s tb r o k e r ) 中间件 o r b 是一种管理对象间通信和数据交换的中间件技术。o r b 促进了分布 式对象在系统间的互操作,因为它使得用户可以通过组合对象( 可以来自不 同提供商) 来构建系统,这些对象间通过o r b 相互通信。o r b 技术促进了 跨计算机、跨软件、跨提供商的对象通信。与该技术相关的功能有:接口定 义;远程对象定位和可能的激活;客户和对象间的通信1 5 】。 事务处理中间件( t p m ,t r a n s a c t i o np r o c e s s i n gm o n i t o r ) 分布式事务需要处理大量并发过程,处理并发涉及到操作系统、文件系 统、编程语言、数据通讯、数据库系统、系统管理及应用软件,是一个相当 艰巨的任务。但是工作的难度可以通过使用事务处理中间件得到简化,由它 来保证分布式事务的a c i d 属性。常见的功能包括全局事务协调、事务的分 布式两段提交、资源管理器支持、故障恢复、高可靠性、网络负载平衡等等。 西南交通大学硕士研究生学位论文第6 页 世界著名的咨询机构s t a n d i s hg r o u p 在一份研究报告中归纳了中间件的 十大优越性:缩短应用的开发周期:节约应用的开发成本:系统初期 的建设成本;减少降低应用开发的失败率;保护已有的投资;简化应 用集成:减少维护费用;提高应用的开发质量;保证技术进步的连续 性;增强应用的生命力。 具体地说,中间件屏蔽了底层环境的复杂性,使程序员面对一个简单而 统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上, 不必再为系统的移植而重复工作,从而大大减少了技术上的负担。 s t a n d i s h 的调查报告显示,由于采用了中间件技术,应用系统的总建设 费用可以减少5 0 左右。在网络经济、电子商务大发展的今天,从中间件获 得利益的不只是l t 厂商,i t 用户同样是赢家,并且是更有把握的赢家。 中间件作为新层次的基础软件,其应用集成作用,使得在技术不断发展 之后,我们以往在应用软件上的劳动成果仍然物有所用,节约了大量的人力、 财力投入。 1 2 3 分布对象技术规范 当前主流的分布对象技术规范,有o m g 的c o r b a 、m i c r o s o f t 的 d n a n e t 和s u n 的j 2 e e 。它们都支持服务端中间件的开发,都有其各自的 特点。 c o r b a c o r b a ( c o m m o n o b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e ) 是最早出现的分 布式对象计算模型,1 9 9 1 年o m g 就颁布了c o r b a1 0 标准,目前的版本是 3 0 。c o r b a 的主要目标是解决面向对象的异构应用之间的互操作问题,并 提供分布式计算所需的一些其它服务【6 1 。o r b 是c o r b a 平台的核心,它用于屏 蔽与底层平台有关的细节,c o r b a 对象通过o r b 进行交互。c o r b a 分布计算 技术,是由绝大多数分布计算平台厂商所支持和遵循的系统规范技术,具有 模型完整、先进,独立于系统平台和开发语言,被支持程度广泛的特点,已 逐渐成为分布计算技术的标准。c o r b a 的缺点是庞大而复杂,并且技术和标 准的更新相对较慢。在构建完整的企业级计算平台方面,使用得不是很多。 d n a ,n e t d n a ( d i s t r i b u t e d i n t e r n e t a p p l i c a t i o n s ) 是m i c r o s o f t 推出的一个完整的、 多层结构的分布计算体系结构和规范。它将整个应用程序分为多个层次,客 户端在最上层,数据端在最底层,其核心是在应用系统的中间层使用事务对 西南交通大学硕士研究生学位论文第7 页 象。d n a 融合了先进的分布计算理论和思想,如事务处理、可伸缩性、异步 消息队列、集群等内容,使得运用d c o m 构件模型开发基于m i c r o s o f t 平台 的服务器端构件应用时,其中的数据库事务服务、异步通讯服务和安全服务 等,可由底层的分布对象系统提供。n e t 是从d n a 演进而来的,克服了d n a 的一些缺陷( r p c 和d c o m 要求端口在防火墙内部、使用c o m d c o m 需要 注册或者发布、a s p 中程序脚本和h t m l 混杂在一起等) ,并提供了通用语 言执行环境、n e t 编程平台、n e t 企业服务器,以及w e b s e r v i c e 等新产品、 新技术。 d n a n e t 在技术结构上有着巨大的优越性。一方面,由于m i c r o s o f t 是 操作系统平台厂商,d n a n e t 技术可得到底层操作系统平台的强大支持;另 一方面,由于m i c r o s o f t 的操作系统平台应用广泛,在实际应用中,d n a n e t 得到了众多应用开发商的采用和支持l ”。d n a n e t 的不足是依赖于m i c r o s o f t 的操作系统平台,在其它系统平台( 如u n i x 、l i n u x ) 上无法使用。而且,它 们是平台规范与产品的统一体,被m i c r o s o f t 所垄断。 j 2 e e 为了推动基于j a v a 的服务器端应用开发,s u n 于1 9 9 9 年底推出了j a v a 2 技术及相关的j 2 e e 规范。j 2 e e 的目标是:为企业应用系统提供一个底层无 关的、可移植的、支持并发访问的、安全的平台。在这个平台上,可以容易、 快速地建立融合了i n t e m e t 技术的多层分布式企业应用。 j 2 e e 定义了一个基于构件的多级应用体系,包括以下几部分: ( 1 ) 客户层:j 2 e e 应用可以是基于w e b 的也可以不是。w e b 应用中, 用户通过本地浏览器进行访问;否则,通过本地的j a v a 应用程序直接访问e j b 对象: ( 2 ) w e b 层:在w e b 服务器中运用了s e r v l e t 和j s p ( j a v as e r v e rp a g e ) 技术。s e r v l e t 和j s p 是运行在w e b 服务端的服务器构件,在多个客户和后 台应用系统之间形成桥梁; ( 3 ) 业务层:企业应用的业务逻辑是由运行在业务层的e j b 对象执行的, 从客户端接收数据,对数据进行处理后,再将其发往企业信息系统层存储。 e j b 是服务端的构件模型,形成了j 2 e e 平台的基础。它为开发部署可复用的 j a v a 服务器定义模型并提供标准的编程接口: ( 4 ) 企业信息系统层:该层运行企业信息系统软件,j 2 e e 应用组件因 某种原因( 如访问数据库) 可能需要访问该层。 j 2 e e 平台的实现运用了4 个方面的技术:j a v a 技术、构件技术、服务技 西南交通大学硕士研究生学位论文第8 页 术和通信技术。 j 2 e e 平台的基础是j a v a 技术。j a v a 技术从本质上说是一个可移植的面向 对象的环境。它的j v m ( j a v a v i r t u a lm a c h i n e ) 令用j a v a 语言写的程序具有 “编写一次,随处运行”的特性。因此,要达到j 2 e e 的高度可移植性目标, j a v a 技术具有得天独厚的先天优势。另外,j 2 e e 本身作为一个规范,没有定 义实现方法。它通过j a v a 语言的a p i 接口来定义规范,任何与j 2 e e 规范兼 容的产品自己去实现这些接口。为了保证产品的兼容性,规范中包括了一个 兼容性测试套件:j 2 e ec o m p a t i b i l i t yt e s ts u i t e ,以便检测。 构件技术是目前软件界流行的一种软件复用技术。在j 2 e e 平台上的企业 应用系统实际上就是许多实现了业务逻辑和用户界面的j 2 e e 构件的集合。 j 2 e e 平台支持的构件类型有:a p p l e t 、客户端应用程序、j s p s e r v l e t 和e j b 。 这些构件都在各自的容器内运行。容器作为j 2 e e 平台提供的系统级软件,为 在其中的构件提供生命周期管理、安全控制、事务管理及线程管理等运行时 服务。这样,许多的构件特性可以在构件被组装、配置到容器内时描述性地 指定,由容器自动替它们完成,而不用这构件内通过编程实现。这大大减轻 了构件编写者的负担,使他们可以专注于构件内业务逻辑的编写。 j 2 e e 规范定义了企业应用系统需要的一些基本的服务,如数据库存取服 务、事务服务、命名与目录服务、消息服务等。提供这些服务将简化分布式 企业应用系统的建设。 j 2 e e 作为一个分布式计算环境的规范,必然需要定义一些通信协议用于 各层、各构件之间的通讯,以及实现与其它系统的互操作。这些协议有:i n t e m e t 协议,包括t c p i p 、h t t p 、s s l ;r m i ( r e m o t em e t h o di n v o c a t i o n ) 协议, 用于j a v a 语言中不同地址空间内的对象方法调用,它使用j a v a 的串行化技术 和j r m p ( j a v ar e m o t em e t h o dp r o t o c 0 1 ) 协议在本地调用和远程调用之间转 化;c o r b a 协议,包括j a v ai d l 和i i o p ( i n t e r n e ti n t e r - o r bp r o t o c 0 1 ) 协议, 用于实现j 2 e e 平台内的构件与c o r b a 对象的互操作【”。 相对c o r b a 而言,j 2 e e 得到了许多有实力公司的大力支持;相对 m i c r o s o f t 的d n a n e t ,j 2 e e 具有平台无关性。服务器市场的主流还是大型 机和u n i x 平台,这意味着以j a v a 开发构件,能够做到“一次编写,随处运 行”,符合j 2 e e 规范的应用可以配置到包括w i n d o w s 平台在内的任何服务器 端环境中去。 登壹塞遵盔皇壅圭遂塞皇兰壁鲨塞 蓬! 垂 1 2 4 应用服务器与j 2 e e 前文按功能划分介绍了巾间件的主要炎别及其提供的服务。但是,在实 际疲翔中,往往要求中阗箨产鑫戆够提供多静骚务。特别是对分程焱企业应 用支撑平台,不仅要提供完势的服务,还翳求易于管瑗、可复屠、掰伸缩、 健、壮。于是,出现了应用服务器。应用服务器实际上就是一个涵盖了多种中 间件产品特征的综合中间件产品嘲。它为企业计算构筑强大豹网络髑务基础 平念。, t 应用服务器娥个基于构件的中间层榘成框架,它为构件的运行提供运 行时环境、基础服务和管理功能。构件封装业务逻辑和业务数据并依赖于应 赐暇务器丽工捧。应用服务嚣耱构件各司其职,完成套囊戆t 终。慰爝服务 器帮构侔之阕膏萌确规定驽酶接日用于篱瑷构释。虚用服务器位予多层模式 的中间层,支持多操作系统平台,可提供分布处理支撑功能,在煎与w e b s e r v e r 集成后,就形成了完整的基于w e b 的分布式应用运行环境“0 1 。 j 2 e e 箨秀令分毒对象鼓本平台援菠,漶额熬定义了分毒式企鼗疰蔼擒 架,在过去的几年里,已经被证明是一个稳定的、可扩展的、成熟的规范。 其开放性使得不同的厂家可以实现自己的符合j 2 e e 规范的产品,而胤它支持 跨平台鹣开发。缀丽,许多大豹分布计算警台厂囊都支持与j 2 e e 兼容技术。 嚣蘸,j 2 e e 已或麓w e b 应麓服务器静照赛标准。郡黧羧采蘑最多的应用服 务器软件均基于j 2 e e ,包括i p l a n e t 应用服务器、b e a 的w e b l o g i c 、i b m 的 w e b s p h e r e 、a t g 的d y n a m o 、o r a c l e9 i 以及s i l v e r s t r e a m 应用服务器( 这里 仅列窭足个鬻受魏) 。 本项目选用了b e a 公司的w e b l o g i c s e r v e r 6 1 谢t hs p 3 ,它是一个j a v a 应用服务器,支持企业级的、多层次的和究全分布式的w e b 应用,在业界得 到了广泛豹认可。其主要功能包括:维护和管理各种客户帆熬应用逻辑和业 务麓瓣;支持较佟集群技术,确缳了驻务嚣静可靠侄、霹扩震毪积离瞧能; 完全实现j 2 e e1 3 版的各种协议。 1 。3 本文研究戆主要内容 从上面的论述可以看出,当前的企业缀分布计算已转向分布对氖技术。 企业应用的开发以在应用服务器上集成购买或自行开发的构件的方式进行。 痤麓羧务器帮稳孛爨是瑟逡霹象菠零熬延 枣,淤据裹软锌复矮层次稀篱纯应 用开发为共同目的。 西南交通大学硕士研究生学位论文第10 页 然而,简化是相对的,分布对象技术是一个庞大的技术集合,设计、开 发人员要掌握它,并运用其中的各种技术构造出灵活、高效的企业应用系统, 仍是有相当难度的。长期的软件工程实践告诉人们设计模式是可复用的设计, 能有效地帮助设计开发人员快速掌握构建应用的有效方法。 本文就基于目前流行的分布对象技术规范j 2 e e 之上的设计模式进行了 分析研究,并结合o s s 项目的开发探讨了设计模式在分布式应用的各层及层 间通信中的应用。 至童蠢瀵奏兰墼壁塞塞茎壁鲨塞 整! ! 垂 第2 奄设计横式与j 2 e e 2 ,模式的起源 王程学科申蟪一太蓦裂怒总缮经验和裂耀实羧遥鹅卷效熬方案。经验是 可戳复露戆,鸯勒予更浃、鼹蹶繇建建立楚磐方寨,献褥节终成零、褥离震 量。经验可以是岛己的直撼缀验,也可以怒别人的间赎经验。然而,如何描 述疑验以利予熟传播和学习孵? 多年来,模式己成为收嶷、规范卿分析特定 蘧蒙孛零嚣窝熬瓣瓣凌嘉秦 鬻羟鍪熬露羧方法。 模式的研究越源于建筑工程设计大邸c h r i s t o p h e l a l e x a n d e r 瀚凝予城市 规划和建筑设计的著作。a l e x a n d e r 在1 9 7 9 年出版的( t h et i m e l e s sw a yo f b u i t d i n g ;孛蕊先搀窭了搂裁熬穰念,辘试海:每一耱模式接述了个在我嚣3 趱懑不断重菱发生翡藤瑟,黻及该瓣蘧翁解决方案翡梭,豁。速襻,露藏麓一 次又次地使用谶方案,丽不必重复劳动。尽管他的辫作是针对城市规划和 建蠛设计豹,假建其观点实际上适用于所肖的工程设计领域,包括软件开发 浚诗簇壤。 瓷软件领域,受瑟蛰添认蘑静模蕊定义是臻淡谯r i e h l e 辩h e i n z z u u i g h o v e n 在“u n d e r s t a n d i n g a n d u 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 ”中 绘融静:敬搏模式是指从菜个典髂麴影戏串得到豹一种挞象,在特殊嚣棼 壬 塞熬琢囊孛,谈形式军繇熬黎复窭蓼擎8 。 般而言,个模式有娴个基本要索o ( 1 ) 模式镐称:一个助记名,它用蹦个词来描述模式的问题、解决方 案帮教暴。它爱人察霹瑟在受舞瑟熬象瑟次主避器设谤嚣交藏爱诗艨憋; ( 2 ) 霞惩:接述应该纛衙露捷蘑模蔽。它瓣鬻了设诗霞蓬窝海禳存在黪 前闲后果,还可能括模式的能用条件; ( 3 ) 缌决方粱:撼述了设计纳组成溅矜,它们之嘲的相互关焱歉各自的 酝爨零登嫠方式。蘧嚣蓬式藏豫一譬覆教,霹蠹凄予多辩李露囊螽,舞鑫簿 决方案劳不描谶个特定而熊体的设计或窝现,丽怒展示怎样用一个其有一 般懑义的元素组合( 如:类溅对象组合) 涞解决问题。 ( 毒) 效暴:摇述了摸武斑臻嚣鼗暴浸使羹搂蓑斑彀楚瑟瑟瑟 1 j 。 款待模式涉及获释王舔鹣备拿方霹,发震窭穰多举阉类鍪,英串,蓑重 要也是应用最广泛的是设计横式,其它樾溅还有分析模式、过程椭趟:等。同 嚣枣交瀵大学硕士磷突生学位论文第 2 页 时,与软件模式相对地出现了软件反模式。 2 2 设计模式概述 设计模式在软件业中的出现始于1 9 8 7 年。那时,w a r dc u n n i n g h a m 和 k e n t b e c k 在一起用s m a l l t a l k 设计用户界髓。他们决定使用a l e x a n d e r 的理论 发矮蹬一耱毒五个模式懿滔蠢采指导s m a l l t a l k 耨手,梵戴毽霞写戏了一篇 “u s i n gp a t t e r nl a n g u a g e sf o r o b j e c t - o r i e n t e dp r o g r a m s ”的论文。 不久以后,j i m c o p l i e n 开始搜集c + + 谮吉习惯用法的目录,并发表在1 9 9 1 年出叛的“a d v a n c e d c + + p r o g r a m m i n gs t y l e sa n d i d i o m s ”一书中。 扶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 两j o h n s o n 移 j o h n v l i s s i d e s ( 即所谓的“四人组”,g o f :g a n go f f o u r ) 合作开展了设计模 式编目工作。e r i c h g a m m a ( 1 9 9 2 ) 在其博士学位论文中作了一些开创性工作, 总缕、麴鬃了当辩抟设诗模式,并应翅到g u i 框檠基- 峥孛,迸一疹雄动了 设计模式的发展。 在1 9 9 3 年8 月份,k e n tb e c k 和g r a d yb o o c h 主持了一个在科罗拉多的 山区发假村召开豹关于设计模式的会议。此次会议奠定了著名的“出坡组” ( h i l l s i d eg r o u p ) 静基稻。1 9 锵年4 胃懿o o p s l a 9 3 会议上,“电城缱”孬 次汇集到一起,策划了第一届p l o p ( p a t t e r n l a n g u a g eo f p r o g r a m m i n g ) 会议, 即谢关设计模式的研究会。 1 9 9 5 年,g o f 熬“d e s i g n p a t t e r n s :e l e m e n t s o f r 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 ”一书发表,成为了设计模式方面的经典著作。该书促进了模式概念 在软件业的普及,同时带动了对模式的研究和应用。 2 。2 1 设计模式的概念 软件设计模式代表了默成功的系统设计中分离出来的可复用的优秀设计 经验,描述如何襁特定情境中解决一般设计问题。一个设计模式抽歙、命名 和确定了一个遵月设谤缋构的主要方葱。 g o f 默面商对象设计的角度,将设计模式定义兔:为解决特定场景下酶 一般设计问题,对相关的类和相互通信的对象的描述。设计模式确定了所包 含的类和对象,它们的角色、协作方式和职责分配;集中于特定的蕊向对象 设诗阉蘧或设诗蘩点,摇透了锷辩蒙霜它,在勇一些浚诗终寒条传下是否还 能使用,以及使用的效果和如何取舍。 吾赢交通大学硕士辩究生学位论文 露 3 页 从不同的角艘分析设计模式,就有不同的描述方法。图形符号,如u m l , 可以将设计结果简单记录为淡和对象之间的关系,但邀远远不够。为了达到 设诗重鼹,还须谗蒙谩诗方案产生靛凌定过程、遥器过程帮毅饔迸徭,瑷爱 具体静铡予 。o o f 提供静横式描述模扳,扶1 4 个方蕊对设计模式遗行了接 述:模式名、分类、意图、别名、动机、邋用性、结构、参与者、协作、效 果、实现、代粥示例、已知斑用、相关模式。这样有助予设诗人员学习、毙 鞍帮使溪设诗横茂。 设计模式在粒度、抽象朦次上各不相黼。为了将众多的设计模式组织起 来,o o f 提出了2 条模式分必准则。目的准则,即模式是用来窕成什么工 菸豹。撂魏,霹将设诗模式分麓袋建型、结橡型、孬为囊3 释。剖建塑模式 与辩象戆截建商关;结褐型模式处理类或辩象静缝合;行为型模式描述类凌 对激怎样交互和分配职责。范围准则,即模式是主暌用于类还熄对象。类 模戏处理类和予类间的静态必系;对象模妓处理对象间的动态关系。 2 2 2 设计攘式黪作用 + 设计模式可以帮助设计人员更好地避 行软件设计。g o f 收集、髅避的设 计模式采强多种方法解决了诲多露自对象设计所嚣雅静闯题。 ( 1 ) 运矮复躁祝裁 面向对象系统中功能复用的两种最常用技术是类继承和对象缀合。对象 组龠相对类继承丽言,具有以下优点;由于对象只能邋过接口访问,澍象组 台不酸舔鹭装靛;只要蔹强弱类墅参冤瓣1 ) 一致,霹在运雩亍时刻透露对 象替搽;对象瀚实现基于接秘编写,对象之瓣在实现上依赖关系较少;每个 类被集中在单个任务上,使得类和类继承层次保持较小舰模,不太可能增长 为不可控制的庞然丈物;系统行为蔹赖于对象闽的关系,弑不是定义农类中。 毒霓霹霓,依簇薅蒙塞会按术缒交谤爨其复蘑经。予是暑窭了可复霉獒 面向对象设计原则:优先使嗣对象组合,而不是类继承。设计模式中再应 用了对象组合技术。 ( 2 ) 寻我合适懿对象 鬻离难蒙蔽诗申的许多对象来源于褒实缝赛静分析模鳖。餐设诗络莱拳 会戗含一些在现实世界中没有对应物的粪,有些是像数组之类的低胺类,而 另魑层次较离。而且,严格按照现实世界建模得到的系统不一定畿适应籍 来豹变纯。设诗中翡箍蒙是健系统灵活静关键。设诗模式藏霄囊予筛定不鹱 显的捆象和褶麻的对象。例如,s t r a t e g y 模式描述了怎样实现可互换的辣法簇; 亘壹奎堂盔雯塑主丛窒生兰焦迨窒 蔓! ! 夏 s t a t e 模式将实体的每个状态描述为一个对象;c o m p o s i

温馨提示

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

最新文档

评论

0/150

提交评论