(计算机应用技术专业论文)基于j2ee创建高效web系统的应用研究.pdf_第1页
(计算机应用技术专业论文)基于j2ee创建高效web系统的应用研究.pdf_第2页
(计算机应用技术专业论文)基于j2ee创建高效web系统的应用研究.pdf_第3页
(计算机应用技术专业论文)基于j2ee创建高效web系统的应用研究.pdf_第4页
(计算机应用技术专业论文)基于j2ee创建高效web系统的应用研究.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(计算机应用技术专业论文)基于j2ee创建高效web系统的应用研究.pdf.pdf 免费下载

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

文档简介

河海大学硕士学位论文 摘要 摘要 随着近年来网络技术的发展,构建企业分布式应用技术日趋成熟,其中s u n 公司推出的j 2 e e 技术被证明是成功的,被应用于越来越多的企业系统建设中。 但由于j 2 e e 技术本身的复杂性与多样性,一个系统可由许多不同技术组合而 成,致使技术人员在处理问题时常常不知道如何运用技术,如果技术运用不当, 虽然实现了业务功能,但在这背后可能会隐藏着很多缺陷,例如性能低下、层与 层之间紧密耦合、伸缩性差。根本谈不上软件复用等,因此如何合理组合j 2 e e 技术而得到可扩展的、易维护的体系结构和高性能、高质量的应用程序是本文拟 解决的问题。 由于j 2 e ew e b 应用是由组件组成,因此为了解决上述问题,实现高效的 应用,本文首先从如何合理组合组件入手,找到种方法使各组件能具体分工而 又紧密合作,在深入研究各组件基础上,根据m v c 模提出了e j s m v c 模型概 念,指出可按此模型组合各层组件,该模型可以解决传统w e b 开发中存在的问 题,而且具有系统流程与系统功能划分清晰,可扩展性、可维护性强等优点,另 外由于控制器是e j s m v c 模型的重中之重,它起到承上启下的作用,它设计好 坏直接关系到整个应用的性能、伸缩性与扩展性,因此又探讨了控制器设计的有 关问题:另外如果模型设计不当的话,对系统性能造成的影响可能是致命的,因 此本文又从e j b 组件选择、e j b 调优设计、数据库访问和设计模式等方面对e j b 技术作了全面的分析研究,指出在业务层中如何避免太多网络远程调用和提高业 务层性能,特别是根据前面的分析总结出了业务层的优化分层组合模型,这个模 型的使用无疑会使业务层具有较高的性能与伸缩性;最后选择一个业务逻辑较简 单的系统,使注意力集中到运用的j 2 e e 技术上来,按照e j s m v c 模型与软件 工程流程以及本论文所提出的方法与策略实现业务逻辑,在实现过程中具体探讨 如何合理运用组合技术,就多层j 2 e e 体系结构的设计思想作深入的探讨实践, 为实现高效、灵活的多层j 2 e e 应用提供一种新的思路及方法。 【关键词】:j 2 e e ,e j b ,w e b 层,设计模式,e j s _ m v c 模型,业务层,r m 塑塑盔兰堡主兰垡鲨皇j 堕堕 a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fn e t w o r kt e c h n o l o g y ,t e c h n o l o g yb u i l d i n g e n t e r p r i s ed i s t r i b u t e da p p l i c a t i o nh a s b e c o m em o r em a t u r e ,i np a r t i c u l a r ,n t i e r f r a m ea n dj 2 e et e c h n o l o g yp r o p o s e db ys u nt h a th a v eb e e na p p l i e di nt h e c o n f o r m a t i o no fm 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 ns y s t e m b u td u e t ot h e c o m p l e x i t ya n dd i v e r s i t yo f t h ej 2 e e t e c h n o l o g y ,t h et e c h n i c i a n s o f t e nd i dn o t k n o wh o wt o a p p l ya n da s s e m b l et e c h n o l o g y i ft h e t e c h n i c i a n sa p p l i e d t e c h n o l o g y i nt h ew r o n g ,e v e na c h i e v i n gt h eb u s i n e s sl o g i c ,b u tp r o b a b l y l e a d i n g t o m a n yv i c e si n c l u d i n g l o w p e r f o r m a n c e ,l o ws c a l a b i l i t y ,c l o s e c o u p l i n g 1 0 w s o f t w a r ed u p l i c a t i o n s oh o wt oa s s e m b l et h ej 2 e et e c h n o l o g y r e a s o n a b l ea n da c h i e v eas y s t e mw i t hh i g hp e r f o r m a n c ea n dh i g he x p a n s i b i l i t y i sm yr e s e a r c he m p h a s i si nt h et h e s i s i no r d e rt os o l v et h ep r o b l e m sa n di m p l e m e n te f f i c i e n tw e b a p p l i c a t i o n , t h ep a p e rp u tf o r w a r de j s _ m v cm o d e la c c o r d i n gm v cp a t t e r na n dw ec a n a s s e m b l ec o m p o n e n t b yu s i n ge j s _ m v c m o d e l ,i tc a ns o l v em a n yp r o b l e m s o fw e b a p p l i c a t i o na n di m p r o v i n gs y s t e mw i t hc l e a rf l o wa n dc l e a rf u n c t i o n p a r t i t i o n ,i na d d i t i o n ,d u e t oc o n t r o l l e ri st h em o s ti m p o r t a n c ei nt h ee j s _ m v c m o d e l ,s ot h et h e s i sa l s od i s c u s ss o m ep r o b l e m sa b o u tc o n t r o l l e rd e s i g mi ft h e m o d e li sn o td e s i g n e da c c u r a t e l y ,s y s t e mp e r f o r m a n c ew i l le n c o u n t e rf a t a l i n f l u e n c e 。s ot h ea r t i c l el u c u b r a t ee j bt e c h n o l o g yf r o me j bc h o i c e ,e j b o p t i m i z e dd e s i g n ,d a t a b a s ea c c e s s ,d e s i g np a t t e r ne t ca n db r i n gf o r w a r d s o m e s t r a t e g i e sa n d m e t h o d sa b o u th o wt ob u i l de f f i c i e n tb u s i n e s st i e n f i n a l l yb a s e d o n e j s m v c m o d e l ,ae x a m p l et h a tc o n t a i n s s i m p l e b u s i n e s s l o g i c i s d e v e l o p e da c c o r d i n gt ot h eo b j e c t - o r i e n ts o f t w a r ee n g i n e e r i n gt h i n k i n ga n d s o m es t r a t e g i e sa n dm e t h o d sp r o p o s e d b yt h et h e s i s ,i n t h e p r o c e s so f a c h i e v i n gs y s t e m f u n c t i o n ,t h ee m p h a s i si sp r o b i n gi n t oh o wt oa s s e m b l ea n d a p p l yt e c h n o l o g yr e a s o n a b l ea n dp r o v i d i n gan e wt h i n k i n gt h r e a da n dm e t h o d c o n t r i b u t i n gt ob u i l dh i g he f f e c t i v ea n d f l e x i b l ej 2 e e a p p l i c a t i o n 【k e yw o r d s ;j 2 e e ,e j b ,w e bt i e r ,d e s i g np a t t e r n ,e j s _ m v c m o d e l , b u s i n e s st i e r ,r m l 、 河海大学硕士学位论文 第一章绪论 1 1 研究背景 第一章绪论 很难想象,如果这个世界没有了w e b ,它会变成什么样子? 仅仅是在几年之间,在世界范围内,无论是信息的提供方式还是使用方 式都因i n t e r n e t 而发生了改变,其硬件和软件技术使得每个人不仅能够成为信 息的使用者,同时也能作为信息的提供者。i n t e r n e t 特别是w o r l dw i d ew e b 在非常短的时间内就已经被公众认为是重要的信息共享平台。对企业来讲, 网络为企业跨越地理空间的限制,迅速进入国际市场提供了方便与廉价的途 径。哪个企业在这个方面走在前面,那么它就会在激烈竞争中取得更多的优 势。对于应用互联网的企业,可以使企业的影响扩展到很远的地方,过去需 要很多资金和时间投入的市场宣传、客户服务以及客户联系,现在都可以通 过网络进行。一个企业在互联网中是否拥有自己的空间,已经成为国内外企 业都非常重视的问题。现在,很多企业在进行市场信息采集和分析方面已经 充分利用网络,很多客户在寻找为其服务的商家时也是通过互联网进行搜索。 如果一个企业在互联网中没有身影,将会丧失很多机会,对于企业来讲,良 好的外部信息化可以使企业获得更多的商机,可以对客户有更好更快更多的 反馈和服务。 随着i t ( i n f o r m a t i o nt e c h n o l o g y ) 技术与i n t e r n e t 技术的迅猛发展,在给 企业带来更多机会的同时也使得企业应用面临了更加复杂的需求。随着全球 经济一体化和电子商务的发展,传统的w e b 技术已不能适应企业快速重组和 电子商务内部逻辑的复杂性、安全性以及商务形式变化快的特性。人们迫切 需要一种新的w e b 计算平台去解决构建分布式w e b 系统中遇到的难题。在 这种情况下,一种满足这种需要的新的企业解决方案便应用而生,这就是 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 公司于1 9 9 9 年推出的j 2 e e 技术经过这几年的改进,无疑是最成功的、最有竞争力的技术之一,它符合 当今分布式设计框架与组件复用的思想,更重要的特征在于它是以j a v a 语言 为基础的,而j a v a 语言一开始设计就是基于对i n t e m e t 的支持,而且j a v a 的“编写一次,到处可运行”的技术使得开发者可以在许多不同的平台上部 署相同的j s p 、s e r v l e t 、e j b 等,切换应用程序的工作平台就像将文件复制 到合适的目录中一样简单,其它任何开发分布式应用的方案都不能提供如此 的灵活性。 河海大学硕士学位论文 第一章绪论 j 2 e e 平台规范是一个由s u n 公司定义的用于简化分布式企业级应用开 发与部署的基于组件( c o m p o n e n t ) 的开发框架,它提供了一个多层次的分 布式应用模型和一系列开发技术规范【0 1 】。多层次分布式应用模型是根据功能 把应用逻辑分成多个层次,每个层次支持相应的服务器和组件,组件在分布 式服务器的组件容器中运行,如s e r v l e t 组件在s e r v l e t 容器上运行,e j b 组 件在e j b 容器上运行,容器间通过相关的协议进行通讯,实现组件间的相互 调用。这种以应用服务器技术为特点的多层分布式计算模型( m u l t i - t i e r s d i s t r i b u t e dm o d e l ) ,适应了企业应用的发展要求,使企业计算具有良好的伸 缩性、可靠性、稳定性、安全性等优点。同时,通过组件技术进行代码重用, 简化了系统开发的周期和效率,大大降低了企业应用系统开发的复杂度。根 据美国g i g a 公司的市场预测,基于j 2 e e 平台的w e b 应用服务器软件市场 将由1 9 9 9 年的5 8 亿美元上升到2 0 0 3 年的9 0 亿美元 0 2 】。全球主要的商业 网站和管理信息系统大多采用j 2 e e 平台作为首选的w e b 开发技术。 虽然j 2 e e 技术的出现的确使开发多层分布式系统得到了简化,可是使用 j 2 e e 技术实现业务功能是一回事,而让它们迅速而高效地实现业务功能却又 是另外一回事。也就是说用j 2 e e 技术开发w e b 应用与开发高效w e b 应用 是不一样的,在实际开发中,一些公司或个人运用j 2 e e 技术开发w e b 应用 追求的是只要完成业务功能就行,其实在这些系统的背后可能会隐藏着许多 缺陷,例如性能低下、层与层之间紧密耦合、伸缩性差,根本谈不上软件复 用等等,在实际应用中可能会成为一个失败的系统。其实要设计性能良好的、 可扩展的、易维护的高效j 2 e ew e b 应用程序,在某种程度上实现组件复用, 应该说是比较困难的,这时仅仅知道j 2 e e a p i 一般应用是不够的,就要知道 何时如何正确使用和组装j 2 e e 技术。研究探索如何怎样设计出高效的j 2 e e w e b 应用是本论文研究的内容。 1 2 技术背景 1 2 1 分布式对象技术 分布式对象技术( d o t ) 是伴随网络而发展起来的一种面向对象( o o ) 的技术,是分布式计算技术与面向对象技术的融合,它带来了位置的透明和 不同技术的无缝集成p 3 。简而言之,d o t 是将数据和函数封装入对象,并 且迸一步将位置封装进对象。把分布式对象技术运用到实际应用系统中包括 三个基本方面:客户,服务器和网络。其中客户就是用户界面,就是计算机, 是寻找对象服务的入口。服务器是分布式对象环境的处理中心,它们是信息 2 河海大学硕士学位论文 第一章绪论 存储和共享的地方。对于任何面向对象的服务器,一个很重要的功能是如何 进行数据的存储和查找。网络不只是客户与服务器的简单聚集,它必须提供 定位服务并引导对象的请求到服务器。由此可见,分布式对象技术是由三个 关键部分构成的,从开发者角度来说,封装性提供了信息隐藏,这对信息系 统的开发来说是十分重要的,因为他们只需要依次去修改构件,而不需要重 新设计整个系统,这无疑会为今后的维护带来极大的方便。 1 2 2 组件技术 目前,在软件开发领域,一场新的革命正在悄悄兴起,这是由日趋成熟 的组件技术引发的。所谓的组件方法是指用可重用的软件组件来构造应用程 序 0 4 】。软件的组件化不需要代码的重新编译和连接,而是直接作为功能模块 在二迸制代码级用于软件系统的装配。几年以前,当微软公司首先使用0 l e 的时候,其初衷是为了增强软件的互操作性,然而在使用过程中,人们逐渐 认识到这技术背后的实质性内容和它在软件开发中所扮演的重要角色。组 件技术将以前所未有的方式提高软件产业的生产效率,这一点已逐步成为软 件开发人员的共识。由于组件技术的出现,软件开发的方式有了很大的变化, 可以把软件开发的内容分成若干个层次,将每个层次封装成一个个的组件, 在构建应用系统时,将这些组件有机的组装起来就成为一个系统,就像是用 零件组装出一台机器一样。我们可以按需要设计出许多组件,在构建应用系 统时可以根据自己的应用需求选择需要的组件,若发现某个组件有问题,只 需要对它进行修改或替换掉就行了,而不必像传统开发方法那样对整个系统 进行重构,同时。一个组件可以被多个应用系统使用。可以看出,组件技术 的应用,可以使软件的可维护性和可重用性大大提高,显著地减少了应用软 件开发的复杂度,避免了软件资源的极大浪费。目前市场上主要存在着o m g 的c c m ( c o r b ac o m p o n e n tm o d e l ) ,s u n 的e j b ,m i c r o s o f t 的 c o m d c o m ( d i s t d b u t e dc o m p o n e n t0 b j e c tm o d e l ) _ 三大主流的组件模型。 1 2 3j 2 e e 技术 构建多层分布式企业应用时,会遇到一个最基本的问题,就是开发应用 的选择实在太多,“条条大路通罗马”。但是在所有选择中,s u n 公司的j 2 e e 技术无疑是最成功的。最受欢迎的。为了帮助进行n 层应用程序开发,s u n 微系统公司设计了基于j a v a 平台的新型企业体系结构,这种新的体系结构称 为j 2 e e ( j a v a 2p l a t f o r m ,e n t e r p r i s ee d i t i o n ) 【0 1 】【0 5 】,它提供了一个多层 3 河海大学硕士学位论文 第一章绪论 次的分布式应用模型和一系列开发技术规范。多层次分布式应用模型是根据 功能把应用逻辑分成多个层次,每个层次支持相应的服务器和组件,组件在 分布式服务器的组件容器中运行( 如s e r v l e t 组件在s e r v l e t 容器上运行,e j b 组件在e j b 容器上运行) ,容器间通过相关的协议进行通讯,实现组件间的相 互调用。经过这几年不断的完善,j 2 e e 技术已经成为开发多层分布式企业应 用的首先技术,它的主要技术目标可以概括为:为企业应用系统提供一个具 有高度的可移植性和兼容性的平台,在这个平台上可以容易、快速的建立融 合i n t e m e t 技术,尤其是w e b 技术。j 2 e e 应用具有标准的,基于组件的结 构,图1 1 示意了j 2 e e 平台的基本体系结构【0 6 】【0 7 】【0 8 】。 从图1 1 可以看出j 2 e e 应用是由组件组成:组件是独立的功能软件单元, 可以把它们的相关类和文件组装为j 2 e e 应用,这些组件之间相互通信。j 2 e e 规范定义了下列组件: 客户组件应用客户和a p p l e t 。 w e b 组件_ j a v as e r v l e t 和j a v a 服务器页面( j s p ) 技术。 业务组件企业j a v a b e a n s ( e j b ) 组件。 这些组件用j a v a 语言编写,使用同其他j a v a 程序相同的方法编译。 圈1 - 1j 2 e e 平台基本体系结构 j 2 e e 平台规范通过组件技术为企业应用系统搭建了一个高度灵活的基 础平台。j 2 e ew e b 应用由捆绑成模块的组件构成,所以在多个应用中可以 方便的重复使用组件,省时省力,且可以快速交付应用。这种灵活性将使企 业的应用系统能够不断的适应快速变化的市场需求和层出不穷的新技术,从 而使企业保持强劲的竞争力。 4 鎏查盔堂堡主堂篁兰壅l 至! 生堕鱼 1 3 本文拟解决的问题 随着新技术的不断完善,j 2 e e 技术己成为企业构建w e b 应用的首选技 术,很多人都在学 - jj 2 e e 技术并用它来构建w e b 应用系统,可是创建系统 与创建高效系统是不一样的,特别是对于运用j 2 e e 技术创建w e b 系统来讲, 这是因为j 2 e e 标准包含多种技术,致使人们在使用j 2 e e 技术过程中会面临 如何选择技术、正确使用和组合技术等问题,如果这些问题处理不好会,即 使实现了系统功能,可这些系统的背后可能隐藏着性能低下、层与层之间紧 密耦合、伸缩性差等问题。因此如何合理使用技术和组合技术设计出良好性 能的、可扩展的、易维护的j 2 e ew e b 应用是本文拟解决的问题。 1 4 本文的主要工作及组织结构 本文的主要工作可以概括如下:如何设计高效的j 2 e ew e b 应用程序是 本论文研究的内容。本文从体系结构入手,根据m v c 模式与j 2 e ew e b 应用 的特点,提出了e j s m v c 模型概念,指出可按e j s 模型组合、_mvce j b j s p 、s e r v l e t 技术,并着重探讨有关模型的优化设计问题,最后根据本论文 的研究成果实现了网上购书实例系统。本文由六部分组成: 第一章绪论介绍了本文的研究背景、技术背景、主要工作内容及全文 组织结构。 第二章基于j 2 e e 平台的w e b 应用解决方案首先介绍了现在流行的构 建企业应用的体系结构,然后分析了j 2 e e 技术( 以业务层为中心的方案) 作 为创建多层分布式系统的巨大优势所在,紧接着指出了目前在运用j 2 e e 技术 时存在的问题并指出从哪方面入手创建高效系统。 第三章组件组合方法研究对w e b 层组件作详细研究基础上,根据m v c 模式提出了e j s _ m v c 模型概念,指出可以按照e j $模型组合、_mvc j s p s e r v l e t 和e j b 技术并探讨了几种控制器设计方法。 第四章业务层模型调优设计的方法与策略首先分析了造成e j b 性能问 题的原因,然后从e j b 组件选择、e j b 调优设计、数据库访问和设计模式应 用等方面作了全面的分析研究,指出在业务层中如何避免太多网络远程调用 和提高业务层性能最后总结得出了业务层的优化分层组合模型,这个模型 的使用无疑会使业务层具有较高的性能与伸缩性。 第五章实例系统的高效实现选择一个业务逻辑较简单的系统,使注意 力集中到运用的j 2 e e 技术上来,按照e j sm v c 模型与软件工程流程以及 本论文所提出的方法与策略实现业务逻辑。 5 河海大学硕士学位论文 第一章绪论 第六章总结与展望对全文进行总结,说明有待进一步进行研究的问题。 6 塑坚查堂堡主兰竺兰奎 墨三童薹王! ! ! ! 兰鱼盟型! ! 壅旦竖堡! 壅 第二章基于j 2 e e 平台的w e b 应用解决方案 计算机网络技术的发展和成熟,特别是i n t e m e t 的普及,将应用扩展到局 域网、广域网甚至i n t e r n e t 上已经成为企业发展的必然需求,企业迫切需要有 效地实施企业系统的开发,构建出高质量结构、高度可用的、高效的企业应 用,具备与网络时代相适应的特点,具有集成i n t e r n e t 的能力。在传统的企业 应用中,主要采用分布式计算环境中最为流行的c s 计算模型。然而c s 计 算模型在大型网络中存在着可扩充性差、可维护性差及客户端负担过重等缺 点。随着网络迅速普及,各种新的随络技术( 其中包括w e b 技术和分布式对 象技术) 不断出现并得到完善,为企业应用开发注入了新的动力。随着w e b 技术、分布式对象技术两者的有机结合,导致了整个应用系统的体系结构从 过去流行的c s ( 两层或三层) 主从结构向灵活的基于b r o w s e d s e r v e r 的多 层分布式w e b 计算模型演变。 2 1 基于b s 的多层分布式结构 现在由于互联网技术的发展,网络用户的数据急剧增长,应用目趋复杂, 传统的c ,s 结构有着它天然的局限性,正在被b s 结构所取代。基于b s 的 分布式体系结构,以组件开发,利用b r o w s e r 作为最终用户界面的解决方案 己成为今后企业应用软件开发的方向。b ,s 模型实质上也是一种三层客户朋匿 务器模型,图2 1 显示了三层b s 结构。只不过在b s 结构下,客户端只需 安装浏览器,它运行显示逻辑,以便用户和服务器进行交互,而中间层处理 大部分业务逻辑,如对客户端的请求进行处理,完成对数据库的访问,并将 结果返回给客户端。 图2 1 三层b s 结构 7 河海大学硕士学位论文 第二章基于j 2 e e 平台的w e b 应用解决方粜 但是随着i n t e r n e t 的普及与发展,对w e b 应用开发的要求越来越复杂, 一个w e b 应用的开发不仅仅局限于创建h t m l 文件和简单的c g i 脚本,而 且涉及到怎样创建一个高性能、可伸缩性、高健壮性和易管理性等非常尖锐 的问题,而传统的b s 结构不能解决上述问题。为了弥补b s 结构的缺陷, 技术人员提出了n 层结构的概念,n 层结构是把传统b s 三层结构的中间层 进一步划分成许多独立的组件层( 如图2 - 2 所示) ,分布在许多不同的机器上, 可能使用c o r b a 、e j b 、或者d c o m ,因此又可以称为多层分布式结构【0 9 】。 实际上这种结构还是以三层结构作为基本模式,只不过在中间层可以用分布 结构同时使用多个服务器的资源。 图2 - 2 基于b s 的多层分布式结构 这种基于b s 的多层分布式结构真正实现了“做什么”与“怎么做”的 分离,它的优点如下【1 0 】: 1 、经济性、可维护性。在客户端只有简单的浏览器,这样在企业内部部 署硬件时客户端有时仅需要简单的网络计算机n c 即可,大大降低了成本。由 于浏览器执行的应用程序( 如j a v aa p p l e t ) 是从w e b 服务器上下载来的,因此 客户端不必安装及配置应用软件,而系统维护人员只需要在服务器端对服务 器进行集中的维护。这给应用软件的维护、升级带来了巨大的好处; 2 、可伸缩性。在设计中使用这种结构可将复杂的业务处理分割成相互之 间可交互调用和通信的若干业务功能部件或对象,并可将其分配到多个网络 互联的应用服务器中实现负荷分担。这些应用服务器还具备对分布对象管理 和实时调度的功能,能够迅速地将请求交给当时可用的对象并随着请求的 增多调用更多驻留在其他应用服务器上的对象,从而只要通过添加应用服务 器便能满足日益增长的业务处理需要; 3 、强壮性。当某台应用服务器发生故障或失效时,分布式系统会自动把 8 河海大学硕士学位论文第二章基于j 2 e e 平台的w e b 应用解决方案 该应用服务器正在处理的事务请求移交给另外一台工作正常的服务器; 4 、软件重用及可裁剪性。业务处理是由许多分布式对象交互协作完成的。 将来会出现更高层次的分布式对象组件和商务对象组件,可以针对每个企业 的具体情况量体裁衣,选用不同的分布式商务对象组件来构筑应用系统; 5 、兼容性。由于对象可以建成与现有系统接合的方式,所以分布式对象 是可以与现有系统一道工作。一个对象如果具有现有系统的接口,就可以在 分布式系统中调用以前的程序,同时,使用分布式对象时,不必重建传统的 应用程序。这样便大大加快了系统的开发速度,也节省了大量资金: 6 、异构性。网络分布的业务处理对象可访问不同的后台数据库,适合多 种异构数据库环境,达到分布数据开放的效果; 7 、安全性。严密的安全管理。对业务处理对象的调用和数据库的存取权 限是按层次设置的。即使外部入侵者突破了客户机层的安全防线,若在应用 服务器层中备有另外的安全机构,系统也可阻止入侵者进入其他部分; 8 、独立性。在多层结构中,各层都具有相对独立性,于是每一层都可选 取各自的最优解决方案。 随着基于w e b 的瘦客户机结构的发展,基于b s 的多层分布式体系结构 在今后一段时间内将成为企业应用开发的主流。b s 计算模型可以克服c s 计算模型的可扩充性差、可维护性差及客户端负载过重的缺点,因此基于b s 的多层分布体系的应用将会越来越广泛,而中间件作为分布体系应用的关键 技术以其独特的优势为各种分布式应用的开发注入了强大动力,极大地推 动了应用系统集成的发展。 2 2j 2 e ew e b 应用多层结构 本文第一章简要介绍了j 2 e e 技术( 也可以称为一种规范或平台) ,它作 为一种可扩展的、全功能的平台,可将企业应用扩展到w e b 上并可适应多种 不同的i n t e r n e t 数据流、可连接到几乎任一种传统数据库和已存的系统上,企 业技术人员可使用不同厂家所提供的产品和技术来开发和部署企业应用,进 而可降低开发网络化应用的费用和复杂性,目前j 2 e e 技术已经取得巨大成 功。 s u n 设计j 2 e e 的初衷是为了解决两层模式的弊端。在传统的两层模式 中,客户端担当了过多的角色而显得臃肿。在这种模式中,第一次部署的时 候比较容易,但难于升级于改进,可扩展性也不理想,而且经常基于某种专 有的协议通常是某种数据库协议,它使得重用业务逻辑和界面逻辑非常 困难。现在,j 2 e e 的多层企业级应用模型将两层化模型中的不同层面切分成 9 河海大学坝上学位论文第二二章基十j 2 e e 十弁的w e b 心用斛决方案 和s e r v l e t 组成,业务层主要由e j b 组成。这些层可以看成一个堆,与相邻层 松散耦合。这样,一层接受一层的输入,并提供给另一层的输出。如图2 3 所示。 图2 - 3 体系结构的分层 实际上要从物理上再考虑分层的话,就会真正理解n 层的含义,不同的 客户请求得到处理之前所经过的区域即称为层【1 1 】。每个层都与一个或多个逻 辑相关联,例如表示、业务或数据访问等等。两层应用一般由表示层和数据 层组成例如,一个直接访问服务器端数据库的客户应用程序。三层应用 则更迸一步存在一个更瘦的客户端与某个s e r v l e t 或c g i 程序相联系,而后 者再与数据库通信,表示层和数据层更明显地被分离,而服务器端也从数据 访问逻辑中区别出了业务逻辑。一个n 层应用则包括更复杂的处理路径,其 中可能涉及到更多的远程方法调用。对此可以举一个例子,一个客户与某个 s e r v l e t ( 或j s p ) 联系,而s e r v l e t 则与一组应用服务器通信( 包括各种类型 的e j b ) ,每个应用服务器均可以访问数据库,当前的许多w e b 应用系统都 是n 层的。 2 3 基于j 2 e e 的多层w e b 应用实现方法及比较 j 2 e e 技术本身包括许多不同技术,因此可以通过不同的技术组合方式实 珊, w e b 应用,基于j 2 e e 的多层w e b 应用主要有两种实现方法,一种以w 曲层 为中心的w 曲应用,一种是以业务层为中心的w e b 应用【1 1 】【1 2 】【1 3 】。 2 3 1 以w e b 层为中心 以w 曲层为中心的企业w e b 应用,表示和业务逻辑都位于v v e b 容器中, 通过j d b c 和c o n n e c t o r 访问e i s 资源。 、 e b 层几乎实现所有的功能,如访f n e i s ,接受和解释来自客户端的输入、 1 0 河海大学硕士学位论文 第二章基于j 2 e e 平台的w e b 应用解决方案 2 3 1 以w e b 层为中心 以w e b 层为中心的企业w e b 应用,表示和业务逻辑都位于w e b 容器中, 通过j d b c 和c o n n e c t o r 访问e i s 资源。 w e b 层几乎实现所有的功能,如访问e i s ,接受和解释来自客户端的输入、 生成动态内容和分配资源等,由于w e b 层需要完成的功能太多,很容易在系 统中造成很大的瓶颈,而且以w e b 层为中心的系统有集成化的倾向,随着软 件复杂性的增加,j s p 页面将充斥大量h t m l 标志和j a v a 代码,业务逻辑一点 改变都会大面积修改源程序,后期维护工作无法想象,另外由于许多模块不 能复用。致使系统扩展性能较差,而且j 2 e e 的s e r v l e t 和j s p 虽然是j 2 e e 中用 来开发服务器端动态网页的主要技术,但是它只适合网络流量较小的数据存 取,对于网络流量较大的且复杂的多笔数据存取交易就会显得比较难以应付, 即使勉强使用,在实现上的难度亦颇高,比如说维护交易纪录一致性、多个 客户端同时存取数据纪录的情况,以及必须应付数量无法预知的客户端请求 等。如图2 4 所示。 图2 - 4 以w e b 层为中心的w e b 应用 2 。3 。2 以业务层为中心 另一种以业务层为中心的企业w e b 应用,位于w e b 容器里的w e b 组件专 门处理应用的表示逻辑,由j s p 和s e r v i e t 负责产生动态的w e b 内容。并将其传 送到客户机( w e b 浏览器) 。驻留在e j b 容器中的业务逻辑组件,一方面响应 w e b 层的请求,另一方面访问e i s 资源,把数据访问和终端用户的交互分离开 来。 运行在应用服务器中的e j b 承担核心业务逻辑的实现及与e l s 的通信, 河海大学硕士学位论文 第二章基于j 2 e e 平台的w e b 应用解决方案 w e b 层通过业务层访i h 日e i s ,这样绝大多数的核心功能转移到业务层,w e b 层 只是负责接收客户的请求和给客户显示h t m l 应答页面,由于业务层能够和许 多企业级的服务交互,极大地降低了系统的开发难度,另一方面f h 于业务层 中的e j b 容器提供了一个高度结构化的开发环境,使得开发人员可以完全集中 于业务问题本身的研究,e j b 容器提供的这些标准化的服务使得系统具有更好 的可靠性。并且业务层的结构鼓励封装和组件化设计原则,避免把业务逻辑 暴露给客户,便于日后应用系统的维护和升级。如图2 - 5 所示。 w 如层业务层 图2 5 以业务层为中心的w e b 应用 两种方案比较,虽然以w e b 层为中心的应用系统可以在较短的时间内完 成,但是在构建大型的企业应用系统,比较合适采用以业务层为中心的设计。 本论文主要是研究以业务层为中心的应用结构。在以业务层为中心的方案中, 运行在e j b 服务器上的e n t e r p r i s ej a v a b e a n s 封装了企业信息系统资源和核 心的应用程序逻辑。w e b 层与业务层通讯,而不是直接访问企业信息系统资 源,这种方法将大多数核心应用程序功能转移到业务层,w e b 层仅仅作为前 端使用,接受客户机的w e b 请求,并将h t m l 响应发给客户机。这种方法的 主要优点是e j b 访问广泛的企业层的服务,企业应用做成e j b 组件,可以重 复利用,这样既封装了某些关键的操作,叉方便了开发者,提高了开发速度, 应用的伸缩性、安全性也得到了很好的处理。e j b 容器会处理系统层的细节, 这些标准化的容器提供服务还可以提高软件的可靠性。另外本论文是从高效 角度展开探讨研究的,高效包含性能、扩展性、伸缩性、易维护性等特性, 很明显,以w e b 层为中心的方法不可能比以业务层为中心的方法更能实现高 效的应用。但在实际系统开发中,这两种方法可以相成相辅。 j 2 e e 技术目前得到了广泛的应用,它提供的中间层集成框架可以满足无 河海大学硕士学位论文第二章基于j 2 e e 平台的w e b 应用解决方案 需太多费用而又需要高可用性、高可靠性和可扩展性的应用的需求。 2 4 以业务层为中心的w e b 应用开发过程 以业务层为中心的w e b 应用经历了下列开发过程 1 2 】: 业务层e j b 的创建 w e b 层w e b 组件的创建 应用组装 应用部署 业务层e j b 的创建是由软件开发人员执行。他们负责编写和编译e j b 需 要的j a v a 源代码,为e j b 指定部署描述符,并把c l a s s 文件和部署描述符捆 绑为一个e j b j a r 文件。而w e b 设计人员连同软件开发人员一起创建w e b 组 件,w e b 设计人员创建j s p 组件,而软件开发人员负责创建s e r v l e t 。通过 编写和编译s e r v l e t 的源代码、编写j s p 和h t m l 文件、指定w e b 组件的部 署描述符,把c l a s s 、j s p 、h t m l 和部署描述文件捆绑为w a r 文件。最后 应用程序组装人员负责获得企业j a v a b e a n s ( e j b j a r ) 和w e b 组件( w a r ) , 并把它们组装为一个j 2 e e 企业文档或者e a r 文件。图2 6 显示了j 2 e e 应 用的开发阶段。 图2 - 6j 2 e ew e b 应用的开发过程 在较大的组织中,不同的个人或团体可以执行其中的一个阶段。每个阶 段创建可移植的文件输出,可以实现人员的分离。前阶段文件包含了后续阶 段的输入,例如,在企业b e a n 创建阶段,开发人员提交e j b 的j a r 文件。在 1 3 河海大学硕士学位论文 第二章基于j 2 e e 平台的w e b 应用解决方案 应用过程中,其他开发人员把这些文件合并为一个单独的j 2 e e 应用,保存 在e a r 文件中。最后,客户站点的系统管理员使用这个e a r 文件,在部署时把 j 2 e e 应用安装到应用服务器上。 2 。5 开发高效j 2 e ew e b 应用存在的难点 从j 2 e ew e b 应用开发过程来看,开发一个j 2 e e w e b 应用中最重要的 环节是e j b 的创建和w e b 组件的创建,因此设计一个高效的基于j 2 e e 平台 的应用程序关键是把这两层的组件设计好,但由于设计分布式系统有其天然 的复杂性且由于j 2 e e 平台提供了多种组件技术,这使我们在设计系统时会遇 至0 很多问题,比如: 特定任务最适合哪种企业b e a n 如何设计e j b 以达到性能和伸缩性的要求 如何充分利用容器管理事物、持久性和安全性 是否每次查找组件或存储引用 把会话数据存放在哪里 用j s p 还是用s e r v l e t 是否分别处理内容与表示 谁负责数据验证 如何定义实体b e a n 之间的有效关系 如何减少远程方法调用 层与层之间要发送多少数据 如果想设计出高效的系统,这些问题都是必须解决的,可是解决这些问 题并不是只是知道j 2 e ea p i 就行的,需要深入的研究各个组件。况且j 2 e e 技术比较复杂难懂,它牵扯到的w e b 和j a v a 技术五花八门,而且学习技术 与学会设计高效系统是不一样的,因为在设计分布式多层体系时,为了使系 统具有良好的伸缩性,既要充分考虑到各层之间密切的内在联系,又要使各 层的开发相对独立。设计出来的系统要求开发简单迅速,响应速度快,后期 维护灵活,还能实现一定的软件复用等。如果设计不好必然导致层与层之间 紧密耦合,不但谈不上软件的复用,就单个的项目来说,如果需求有变化, 会导致各层的大面积修改后期维护工作将不堪想象,失去了分布式的意义。 而且由于在设计j 2 e e 应用时,对于一个相对简单的j 2 e e 应用程序都可以以 多种方式编写。例如,如果设计一个简单的数据库访问应用程序,从前端开 始,你可以有一组j s p 和s e r v l e t 处理与终端用户或客户端的通信,该前端使 用j d b c 可以直接和数据库通信。然而,你也可以选择该前端调用一个无状 1 4 河海大学硕士学位论文 第二章基于j 2 e e 平台的w e b 应用解决方案 态的会话b e a n 。然后该无状态会话b e a n 使用j d b c a p i 与数据库通信,或 者是将该访问委托给一个实体b e a n ,实体b e a n 可以使用容器管理的持久性 ( c m p ) 或b e a n 管理的持久性( b m p ) 等等。甚至在使用同一个a p i 集合 的时候,一个开发人员也可能以完全不同于别人的方式使用它们,由此可见, 一个系统可以以许多不同技术组合加以实现,但实际上不同的方式会对系统 的性能、扩展性和伸缩性产生不同的影响,有些方式会极大的提高系统的性 能与伸缩性,而有些方式虽然实现了系统功能,但却影响了系统的性能与伸 缩性。所以必须明白使用j 2 e e 技术实现业务功能是一回事。而让它们迅速而 高效地实现业务功能却又是另外一回事,在实际开发中,一些人混淆它们之 间的界限,所以在他们看来,使用j 2 e e 技术的确可以很快很轻松实现系统的 功能,其实在这背后隐藏着很多缺陷,例如性能低下、层与层之间紧密耦合、 伸缩性差等,在实际应用中可能是个失败的系统。其实要设计良好的、可扩 展的、易维护的体系结构。得到高性能、高质量的应用程序,在某种程度上 实现组件复用,仅仅知道j 2 e ea p i 是不够的,就要知道如何设计才能尽量避 免性能问题并在设计模式指导下正确使用和组装j 2 e e 组件。 由于j 2 e e 应用是由组件构成的,所以设计一个良好的高性能的基于 j 2 e e 平台的w e b 应用关键是把w e b 层与业务层的组件设计好,在下面几章 中,本文将重点探讨一下如何才能优化各层的设计和合理的组合j

温馨提示

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

评论

0/150

提交评论