




已阅读5页,还剩59页未读, 继续免费阅读
(计算机应用技术专业论文)web应用服务器集群性能研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
w e b 应用服务器集群性能研究 陈晓玲( 计算机应用技术) 指导教师:纪友芳( 高级工程师) 吴少刚( 副教授) 摘要 随着i n t e m e t 的迅猛发展,应用服务器需要为越来越多的用户提供服 务,在这种情况下,即使单台服务器性能再高,所能提供的服务也是有 限的,且存在单点失效等问题。目前,j 2 e e 己成为设计开发企业级应用 的流行技术,j 2 e e 集群是实现企业级应用可伸缩性和高可用性的一种有 效方案。为此,负载平衡、故障转移和j 2 e e 应用部署模式成为研究如何 提高基于j 2 e e 规范的w e b 应用服务器集群性能的新课题。 本文首先介绍了j 2 e e 分布式多层应用程序模型和核心技术在此基 础上分层阐述了j 2 e e 集群的关键技术及其实现。然后,以开源应用服务 器j b o s s 为基础,进行性能量化分析和j 2 e e 应用的架构研究。针对全局 s e s s i o n 复制开销大的问题,提出了2 n 拓扑结构集群机制,实验证明该 结构有效的降低了系统开销、提高了性能。通过性能测试和理论研究, 论证了e j b 在性能上存在的问题,阐述了e j b 技术和分布式部署对j 2 e e 应用的性能及可伸缩性的影响。最后将平均响应时间和加权连接结合, 提出了w e b 层混合因予动态负载平衡算法,并实验证明了它的有效性。 关键词:j 2 e e ,集群,负载平衡,故障转移,性能 r e s e a r c ho nc l u s t e r i n gp e r f o r m a n c eo fw e b a p p l i c a t i o n s e r v e r s c h e nx i a o - l i n g ( c o m p u t e ra p p l i c a t i o nt e c h n o l o g y ) d i r e c t e db ys e n i o re n g i n e e rj ly o u - f a n g ,a s s o c i a t ep r o f b s o rw u s h a o - g a n g a b s t r a c t w i t ht h ed e v e l o p m e n to fi n t e r n e t ,t h ea p p l i c a t i o ns e r v e r sp r o v i d e s e r v i c e sf o rm o r ea n dm o r eu s e r s i ns u c hc a s e ,t h es i n g l es e r v e rs e c n l st ob e l i m i t e da n dm a yb e c o m et h es i n g l ep o i mo ff a i l u r e ,e v e nt h o u g ht h e c a p a b i l i t yo f t h es e r v e ri sq u i t ep o w e r f u l a tp r e s e n t , j 2 e eh a sb e e no n eo f t h em o s tp o p u l a rt e c h n o l o g i e su s e di ne n t e r p r i s ea p p l i c a t i o n sf o rt h ed e s i g n a n dt h ed e v e l o p m e n t ,a n dj 2 e ec l u s t e r i n gc a np r o v i d ee n t e r p r i s ea p p l i c a t i o n s w i t hs e a l a b l ea n dh i 曲a v a i l a b l es e r v i c e s t h e r e f o r e ,l o a db a l a n c i n g ,f a i l o v e r a n dj 2 e ea p p l i c a t i o nd e p l o y m e n tp a a e mb e c o m et h eh o tt o p i c so f i n c r e a s i n g t h ec l u s t e r i n gp e r f o r m a n c ef o rj 2 e ea p p l i c a t i o ns e r v e r s a tf i r s t ,j 2 e ed i s t r i b u t e dm u l t i t i e r e da p p l i c a t i o nm o d e la n dc o r e t e c h n o l o g i e sa l ei n 仃o d u c e di n t h i sp a p e r , a n dt h e nj 2 e ec l u s t e r i n gk e y t e c h n o l o g i e sa n di m p l e m e n t a t i o n si nd i f f e r e n tt i e r sa r es u m m a r i z e d b e s i d e s c l u s t e r i n gp e r f o r m a n c ei sq u a n t i t a t i v e l yr e s e a r c h e da n dj 2 e ea p p l i c a t i o n s a r c h i t e c t u r ei ss t u d i e db a s e do nj - b o s s ,w h i c hi sa no p e ns o t a c ew e b a p p l i c a t i o ns e e r c o n s i d e r i n gt h eh i 出c o s to fg l o b a ls e s s i o nr e p l i c a t i o n , a 2 x nt o p o l o g ya r c h i t e c t u r ei sp r e s e n t e d t h ee x p e r i m e n tr e s u l ts h o w st h a tt h e c l u s t e r i n gt o p o l o g yc a l lr e d u c et h eh t t p s e s s i o nr e p l i c a t i o nc o s ta n di m p r o v e i i j t h es y s t e mp e r f o r m a n c e p e r f o r m a n c et e s ta n dt h e o r ys t u d yp r o v et h a tt h e p e r f o r m a n c eo fe j bi sw e a k , f u r t h e r l t l o r e ,t h ep e r f o r m a n c ea n ds c a l a b i l i t yo f j 2 e ea p p l i c a t i o n sa r ca f f e c t e db ye j bt e c h n o l o g ya n dd i s t r i b u t e ds t r u c t u r e a tl a s t , b yc o m b i n i n gt h ea v e r a g er e s p o n s et i m e w i t l l w e i g h t - b a s e d c o n n e c t i o n ad y n a f i el o a db a l a n c ea l g o r i t h m 耐t i lm i x e df a c t o ri sp u t f o r w a r di nw e bt i e r t h ee x p e r i m e n tr e s u l ts h o w st h a tt h i sa l g o r i t h mi s u s e f u l k e yw o r d s :j 2 e e ,c l u s t e r i n g ,l o a db a l a n c e ,f a i l o v e r , p e r f o r m a n c e 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取 得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论 文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得中国 石油大学或其它教育机构的学位或证书而使用过的材料。与我一同工作 的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了 谢意。 签名: 2 _ 7 年牟月f 日 关于论文使用授权的说明 本人完全了解中国石油大学有关保留、使用学位论文的规定,即: 学校有权保留送交论文的复印件及电子版,允许论文被查阅和借阅;学 校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手 段保存论文。 ( 保密论文在解密后应遵守此规定) 学生签名: 导师签名: 唧年4 月fe l o 。哆年q - 月f 日 中国石油大学( 华东) 硕士论文第1 章前言 第1 章前言 1 1 课题的提出、目的及意义 随着i n t e m e t 的深入发展,w e b 应用已经提高了服务标准。用户愈加 期盼服务2 4 x 7 的可用性和即时性。随着业务范围的扩展和市场竞争的加 剧,企业也需要降低自身经营成本,缩短与客户和市场之间的响应时间, 在企业、合作伙伴和雇员之间提供便捷、快速的服务。分布式计算技术 的发展为企业的应用环境向i n t e r n e t i n t r a n e t 环境转移提供了条件,企业 级应用需要系统具有高可用性、安全性、可依赖性和可扩展性等特征, 而集群技术为这种分布式应用系统提供了必要的支持。 具有可伸缩性、灵活性、易维护性的多层体系结构是当今w e b 应用 的主流模式,采用j 2 e e 架构具有切实的可行性,拥有良好的应用前景, 是w e b 应用系统研究和开发中的一个正确方向。在当今动态的业务环境 中,企业使用w e b 应用服务器,为客户和自身开发、部署高度可伸缩和 可靠的应用程序。企业应用必须能够动态地提高处理能力以满足需求。 支持这种应用程序的基础结构必须具备高度可伸缩性,在不必改变硬件 或者软件的情况下,尽可能不受限制的增长。 目前,主流商业w e b 应用服务器价格昂贵,一般机构难以负担,使 用开源的j b o s s 应用服务器成为一个理想的选择。例如,需要提供一定 规模w e b 服务而财力又不充裕的小型企业或科研机构,可以将自己的 w e b 服务建立在j b o s s 服务器集群上,为访问者提供服务,减少投资风 险,获得较高的性价比。因此,通过分析、测试研究这种分布式应用系 统的集群性能,对指导分布式应用系统的开发很有意义。 中国石油大学( 华东) 硕士论文第1 章前言 1 2 国内外研究现状 1 2 1w 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 ( 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 ) 、m i c r o s o f t 的c o m + d n a ( 或n e t ) 和o m g 的c o r b a o m a 三个技术分支i ”。 1 9 9 8 年人们提出了应用服务器的概念,即在面向i n t e r n e t 的w e b 计 算环境下,为开发、部署、运行、集成、维护和管理中问层应用服务提 供一个通用运行环境,用户只需关心中间层应用服务的业务逻辑,而中 间层应用服务的其他功能则由w e b 应用服务器提供。相对于传统中间件, w e b 应用服务器被认为是在w e b 计算环境中产生的新一代中间件【2 1 。 就w e b 应用服务器遵循的标准和规范来看,主要有j 2 e e 和微软n e t 两大类。 j 2 e e 提供了一个分布式多层应用程序模型,分为客户层、w e b 层、 业务逻辑层( e j b 层) 和企业信息系统层。j 2 e e 为事务性w e b 应用的开 发、部署、运行和管理提供一系列的规范,主要包括s e r v l e t 、j s p 、e j b 、 j n d i 、j d b c 、r v l l 、j c a 、j m x 、j m s 、j 弘打 i s 、j a v am a i l 等。这些 规范为应用服务器的实现提供了一个完整的底层框架和标准,为不同厂 商的应用服务器产品的标准化提供了一条可行途径。在不同的j 2 e e 应用 服务器之上的应用组件也可以互操作,移植的风险和代价较小。j 2 e e 应 用服务器一般包含w e b 容器和e j b 容器。 微软将其操作系统( w i n d o w sn t 2 0 0 0 x p ) 看作其应用服务器的基 础,通过附加一系列具备中间件功能的软件包来提供应用服务器的相应 功髓。微软n e t 构建在w i n d o w sd n a 技术f 如m t s ,c o m + ,m s m q , s q ls e r v e r 数据库等) 基础上,在n e t 中提供了一系列企业级应用服务, 2 中国石油大学( 华东) 硕士论文第l 章前言 为部署、管理和建立基于x m l 和w e b 的应用构筑了n e t 服务器结构, 包括a p p l i c a t i o nc e n t e r ,b i z t a l ks e r v e r ,c o l n n l e r c es e r v e r ,e x c h a n g e s e r v e r 等,它们结合w i n d o w s 平台上一系列的开发工具和技术( 包括 v i s u a ls t u d i o n e t ,a s e n e t 等1 ,提供了强有力的应用服务器解决方案。 虽然j 2 e e 和n e t 势均力敌,但是j 2 e e 作为一种规范,具有n e t 无 可比拟的跨平台、企业应用集成能力以及可扩展性和开放性,得到了众 多厂商的支持,被广大研发人员和企业所接受,是w e b 应用服务器研究 和开发的一个方向。 国外众多计算机公司和开放源码组织纷纷推出了各自实现j 2 e e 规 范的应用服务器,如i b mw e b s p h e r e | ”、b e aw e b l o g i c l 4 j 、o r a e l e 9 i a s 、 s u nj a v as y s t e m a p p l i c a t i o ns e r v e 一5 1 、开源的j b o s s l 6 1 、j o n a s r 、t o m c a t s j 等。这些服务器中商业服务器具有明显的性能优势且功能完整强大,但 价格昂贵;开源j 2 e e 应用服务器因具有较高的性价比目前颇受人青睐。 国内在j 2 e e 应用服务器的研发上也取得了显著进展,如北京大学的 p k u a s 9 1 、中国科学院软件研究所的w e b f r a m e | 1 0 l ,西安交通大学的 x 8 6 3 1 1 】等。除p k u a s 能应用特定框架整合t o m c a t 作为w e b 容裂1 2 】 外,其他国内的应用服务器基本上都只是e j b 服务器( 即e j b 容器) 。 1 2 2j 2 e e 集群技术概述 集群是一组协同工作的服务实体,用来提供比单一服务器更具有扩 展性和可用性的服务平台。在商业领域,j 2 e e 的w e b 应用服务器供应商 把集群定义为一组计算机一起工作,提供透明的企业级服务,支持j n d i 、 e j b 、j s p 、s e r v l e t 、h t t r i s e s s i o n 等组件的负载平衡和故障恢复等。 集群技术起源于对并行处理的研究,早在二十世纪七十年代计算机 厂商和研究机构就开始了对集群的研究和开发,主要用于科学工程计算。 在商业计算特别是商业应用日益普及的今天,众多企业选择j 2 e e 来开发 它们的网上应用。在j 2 e e 框架中,集群技术能保证最少的宕机时间和最 大的伸缩性。集群技术提供的可扩展性、高可用性和高性能正是企业级 应用系统所追求的目标。与单一服务实体相比,集群提供两大关键特性: 可伸缩性( s c a l a b i l i t y ) :指一个应用程序能支持不断增长的用户数 中国石油大学( 华东) 硕十论文第1 章前言 量的能力。集群通过增加服务器来提供额外的工作能力,从而保证了可 伸缩性。集群技术给系统提供了根据业务环境变化易于扩展的能力,既 增加了性能又保护了投资。 高可用性( h i g ha v a i l a b i l i t y ) :指一个集群用很多机器提供服务请 求,即使一台机器崩溃了,其它机器也可透明地接过任务。在许多特定 商业应用领域,系统宕机是不可容忍的事件,通过集群技术可以使系统 的整体服务尽可能可用,有效消除系统中可能的单点故障。 上述两个特性基于集群的两大能力:负载平衡( l o a db a l a n c i n g ) 和故 障转移( f a i l o v e r ) 。 负载平衡指系统负载可以分配给不同的计算机处理,该负载可以 是应用系统的计算负载,也可以是网络流量负载。这种集群模式非常适 合于企业级应用系统的大量用户访问,每个节点负责处理一部份负载, 负载任务量基于专门的调度算法在各节点之间均衡分配。 故障转移是指由于某种原因执行某个任务的资源出现故障时,另 一服务实体中执行同一任务的资源接着完成任务,这种故障转移能力需 要建立在集群节点间的状态复制和故障检测技术的基础上。 j 2 e e 规范没有提供有关支持集群的标准,即使有的厂商在w e b 应用 服务器中提供了集群特性,但如何具体实现集群是由厂商自己确定的, 实现的方法各不相同,可获取的资料也比较有限。j 2 e e 应用服务器集群 设计中,w e b 层、e j b 、j n d i 等集群技术是其涉及到的主要方面。 1 、国外j 2 e e w e b 应用服务器 主流、常用的j 2 e e 应用服务器b e a w e b l o g i e 、j b o s s 、i b m w e b s p h e r e 等都支持集群。文献 1 3 1 1 1 4 1 中对它们的集群功能在负载平衡和故障转移 方面做了较详细的比较说明。 ( 1 ) 负载平衡 w e b 层集群可采用d n s 或负载平衡器实现负载平衡,由于d n s 存 在缺陷( 不支持粘性会话) ,一般多使用负载平衡器( 负载平衡器可以是硬 件,也可软件实现,它们具有一定的共同点) ;j n d i 有全局共享j n d i 树、 独立j n d i 树和集中式j n d i 树三种集群方式:通过j n d i 查找e j b h o m c 时会发生负载平衡和故障转移,当用户对e j bs t u b s 进行方法调用时,又 4 中国石油大学( 华东) 硕十论文第1 章前言 有智能s t u b 、i i o p 运行库、拦截机代理等方法实现e j b 的负载平衡和 f a i l o v e r t l3 1 。 w e b l o g i e 的w e b 负载平衡支持d n s 、软件硬件均衡器三种方式, j n d i 集群采用全局共享j n d i 树的方式,e j b 集群使用智能s t u b ,文献 4 1 i s 对w e b l o g i e 的负载平衡做了具体阐述。 j b o s s 的w e b 负载平衡官方推荐使用a p a c h e + m o d - j k 软件实现,j n d i 集群和e j b 集群方式原理上与w e b l o g i c 相同,具体可参考文献【6 】。 在负载平衡调度策略的实现上,国外j 2 e ew e b 应用服务器基本上仅 支持一些偏静态的算法,如w e b l o g i e 、i b mw e b s p h e r e 支持r o u n d r o b i n 、 w e i g h t b a s e d 、r a n d o m 等算法,而j b o s s 支持r o u n d r o b i n 、f i r s ta v a i l a b l e 和f i r s t a v a i l a b l ei d e n t i c a l a l lp r o x i e s 算法。 ( 2 ) f a i l o v e r f a i l o v e r 主要是w e b 层h t t p s e s s i o nf a i l o v e r 和e j b 层s t a t e f u ls e s s i o n b e a nf a i l o v e r 。f a i l o v e r 的关键是复制s e s s i o n 信息,有数据库存储和内 存复制两种方式【1 3 1 1 1 4 1 。而内存复制也有不同的策略,j b o s s 和t o m c a t 是 全局复制,w e b l o g i e 和w e b s p h e r e 的配对服务器复制,此外w e b s p h e r e 还有中央状态服务器策略等。 2 、国内j 2 e e w e b 应用服务器 北京大学的p k u a s 实现的是e j b 层集群。文献 9 1 详细介绍了p k u a s 采用命名服务和客户代理请求转发两种方案实现e j b 层负载平衡,它们的 实质其实就是全局共享j n d i 树和智能s t u b 。p k u a s 仅支持r o u n d r o b i n 、 r a n d o m 、和w e i g h t - b a s e d = 种静态平衡算法。 中科院的w e b f r a m e 2 0 实现了e j b 容器集群。为使一组服务器成为 一个有机的整体并协调工作,w e b f r a m e 2 0 设计了一个集群插件模块 【16 】【埘,该模块实现了自适应负载平衡的若干关键技术及其解决办法,包 括可热插拔、负载策略可替换、负载反馈与自适应控制、状态迁移以及 容错技术等。 西安交大x - 8 6 3 应用服务器也实现了e j b 集群功能。在e j b 集群负 载平衡方面提出一种算法容器集群动态负载平衡的分组状态驱动自 适应( g s d a ,g r o u p i n gs t a t e - d r i v ea d a p t a t i o n ) 算法【l l 】,这种算法在实现负 中国石油大学( 华东) 硕士论文第1 章前言 载平衡方面主要是通过负载迁移来实现。 1 3 研究内容与思路 本文对基于j 2 e e 规范的w e b 应用服务器的集群性能进行研究,主要 涉及以下几个方面: l 、j 2 e e 体系结构及其核心技术。由于在j 2 e e 框架中,能够被集群 的组件对象包括j s p 、s e r v l e t 、e j b 、j n d i 等,所以深入学习j 2 e e 体系结 构、组件技术和j 2 e e 容器,对了解j 2 e e 的集群实现和后续的性能分析优 化很有帮助。 2 、j 2 e ew e b 应用服务器的集群实现机制。基于j 2 e e 的分布式应用 系统是多层的,通常包括w e b 层、业务逻辑层( e j b 层) 和数据库层,集群 技术可以在其中任何一层实现。我们将用分层的观点,着重分析w e b 层、 j n d i 、e j b 层的集群机制,包括集群的拓扑架构、集群中成员的通信、 组件负载平衡、状态复制等内容。 3 、j b o s s 服务器的性能分析评价( 包括单机服务器和服务器集群) ,研 究适合集群特点的j 2 e e 应用的部署模式。 4 、根据j 2 e e 集群架构和性能,部署j 2 e e 应用,提出基于层间协作 的负载平衡策略。 1 4 论文的组织结构 本文的组织结构如下: 第l 章主要介绍本课题的提出、目的及意义,总结了当前基于j 2 e e 规范的w e b 应用服务器和j 2 e e 集群技术的国内外研究现状,并提出本 文w e b 应用服务器集群性能研究的内容与思路。 第2 章详细说明了j 2 e e 的体系结构和容器概念,介绍了j 2 e e 的核 心技术和组件服务。 第3 章详细阐述了j 2 e ew 曲应用服务器集群的实现机制。包括集群 架构,集群成员通信,重点分析了主流w e b 应用服务器在w e b 层集群、 6 中国石油大学( 华东) 硕士论文第1 章前言 j n d i 集群、e j b 集群中负载平衡和f a i l o v e r 的实现。 第4 章在研究性能分析方法和掌握性能测试工具的基础上,对j b o s s 应用服务器在w e b 层和e j b 层进行性能量化分析。针对全局s e s s i o n 复 制消耗大量资源影响系统性能的问题,提出了2 x n 拓扑结构,实验验证 它有效的提高了系统性能。通过实验和理论研究,从逻辑架构和物理架 构两方面讨论说明了e j b 技术和分布式部署对j 2 e e 应用的性能影响, 给出了使用建议。 第5 章提出了w e b 层混合因子动态负载平衡算法。将加权连接和平 均响应时间结合,形成负载平衡混合因子进行动态负载平衡,设计实现 了负载平衡服务,并实验评估了它的有效性。 第6 章总结本文的工作和创新点,并给出进一步研究的内容和方向。 中国石油大学( 华东) 硕士论文第2 章j 2 e e 平台及其核心技术 第2 章j 2 e e 平台及其核心技术 s u n 公司推出的j 2 e e 技术提供了一种基于组件的多层分布式应用程 序模型来设计、开发、装配和部署企业应用,该模型具有重用组件的能 力、基于x m l 的数据交换、统一的安全模式和灵活的事务控制。由于采 用j a v a 技术,独立于平台的j 2 e e 解决方案不受供应商的产品和a p i s 的限 制,开发人员可自由选择适合自身业务和技术要求的产品与组件。 2 1 分布式多层应用程序模型 随着企业应用环境逐渐向i n t e m e t i n t r a n e t 环境转移,应用需求和规 模不断扩大,企业应用要求具有可伸缩性、安全性、高可用性等特点。 最初,这些应用服务是由两层c s ( c l i e n t s e r v e r ) 模式实现的。在c s 模式中,服务器往往只提供唯一的服务即数据库服务,客户端因担当了 过多的角色而显得臃肿。c s 模式在第一次部署的时比较容易,但难于 升级或改进,而且服务通常基于某种专有的协议( 如某种数据库协议) ,使 得重用业务逻辑和界面逻辑非常困难。在广泛应用w e b 的时代,c s 模 式不能体现出很好的伸缩性,因而很难适应i n t e m e t 的要求。 为了解决c s 模式的弊端,j 2 e e 定义了一种可伸缩、易访问、易管 理的模型来实现多层应用程序服务。在j 2 e e 应用中,应用逻辑按功能划 分为不同的组件,各组件根据它们所在的层分布在不同的服务器上,共 同组成个基于组件的分布式多层应用程序模型。图2 1 描述了两个“经 典的”( s u n 公司所提倡的) j 2 e e 应用程序,可以分为以下几层: 客户层:包含运行在客户机中的客户层组件。 w e b 层:包含运行在j 2 e e 应用服务器中的w e b 层组件。 业务逻辑层:包含运行在j 2 e e 应用服务器中的业务逻辑层组件。 企业信息系统( e i s ) 层:包含运行在e i s 服务器中的软件。 从图2 1 中可以看到,j 2 e e 应用程序既可以是三层结构,也可以是 四层结构,其中业务逻辑层也叫e j b ( e n t e r p r i s ej a v a b e a n ) 层。通常,我 中国石油大学( 华东) 硕士论文第2 章j 2 e e 平台及其核心技术 们将j 2 e e 应用程序的多层结构考虑为三层,这是因为: ( 1 ) 一般情况下开发商把w e b 服务器和e j b 服务器产品结合在一起 发布,称为应用服务器。这样,j 2 e e 应用程序就分布在客户机、j 2 e e 应用服务器和后端的数据库服务器三个不同的位置中; ( 2 ) j 2 e e 应用在实现时,w e b 层组件和e j b 层组件技术的使用会有 所取舍。 j 2 e ej 2 e e a p p l i c a t i o n1 a p p l i c a t i o n2 俞、 、! ! ! 竺:二! 兰 。盐 五五 k e n t e r p d s eb e a n s , k e n t e r p d s eb e a n s , 客户层 目目脚层 2 2d 2 e e 容器 2 2 1 容器 图2 - ij 2 e e 多层结构模型 客户机 j 2 e e 应用 服务器 数据库 服务器 j 2 e e 是一个基于组件一容器模型的系统平台,j 2 e e 应用服务器 以容器的形式为每一个组件类型提供底层服务。 容器是一个组件和支持组件的底层平台特定功能之间的接口,或者 说是为特定组件提供服务的一个标准化的运行环境。组件是一个可部署 的程序单元,它以某种方式运行在容器中,容器封装了j 2 e e 底层的a p i 为组件提供事务处理、数据访问、安全性、j a v a 命名目录接d ( j n d i ) 搜 9 i 叫 层 辑 b 吣 翘业 中国石油大学( 华东) 硕士论文第2 章j 2 e e 平台及其核心技术 寻、远端程序连接、组件部署发布和生命周期管理等服务。在j 2 e e 中, 组件和组件之间并不直接访问,而是通过容器提供的协议和方法来相互 调用。组件和容器间的关系通过“协议”来定义。容器的底层是j 2 e e 服务器,它为容器提供j 2 e e 中定义的各种服务和a p i 。 2 2 2 容器类型 j 2 e e 程序部署时会将组件安装到对应的容器中,j 2 e e 标准共定义 了五种容器p j : j 2 e e 服务器:即应用服务器,它是j 2 e e 产品的运行部分。一个 j 2 e e 服务器可以支持一种或多种容器,通常它会同时提供w e b 容器和 e j b 容器,但像t o m c a t 和j e t t y 这样的服务器只提供w e b 容器。 w e b 容器:管理j 2 e e 应用程序的j s p 页面和s e r v l e t 组件的执行。 w e b 组件和它的容器运行在j 2 e e 服务器中。w e b 容器主要由遵循j 2 e e 规范中的w e b a p p l i c a t i o n 标准的w e b 服务器实现。 e j b 容器:e j b 容器负责管理j 2 e e 应用程序的e j b 的执行。e j b 和它的容器也运行在j 2 e e 服务器中。 客户端应用程序容器:管理应用程序客户端组件的运行。应用程 序客户端和它的容器运行在客户端中。 a p p l e t 容器:管理a p p l e t 的执行。 2 2 3w e b 容器与组件 j 2 e e 的w e b 层组件可以是s e r v l e t 或j s p 页面。基本上j s p 提供了与 s e r v l e t 同样的功能,客户第一次请求j s p 时,w e b 容器会将j s p 转换成 s e r v l e t ,然后使用这个s e r v l e t 为客户端提供服务。这些组件有效地利用了 w e b j 务器( 1 l o w e b 容器) 的h r r p 通信功能,w e b 容器负责将w e b 请求传 递给它们。 一个s e r v l e t 至少有四个方法组成【i 引,在s e r v l e t 的生命周期中要调用 每一个方法。这些方法是i a i t ( ) 、s e r v i c e ( ) 、相应的请求方法和d e s t r o y ( ) 。 当s e r v l e t 类实例化后,容器加载i n i t ( ) ,以通知s e r v l e t 它已进入服务行列。 对w e b 服务器上的s e r v l e t 发出请求时,w e b 容器调用s e r v i c e ( ) 方法。请求 l o 中国石油大学( 华东) 硕士论文第2 章j 2 e e 平台及其核心技术 会产生新的线程或从线程池中获取未使用的线程。s e r v i c e ( ) 方法检查 h t t p 请求类型并调用相应的请求方法。s e r v l e t 容器传j 勘a v a x s e r v l e t s e t v l e t r e q u e s t 对象和j a v b x ,s e r v l e t s e r v l e t r e s p o n s e 对象。s e r v l e t r e q u e s t 对象 包含客户端h 1 v r p 请求信息,s e r v l e t r e s p o n s e 贝l j 封装s e r v l c t 响应。从内存 中删除s e r v l e t 实例之前,容器调用d e s t r o y ( ) ,在w e b 容器关闭或容器需要 更多的内存时也调用它。此外,d e s t r o y ( ) 给s e r v l e t 机会来释放所占用 的资源。 请求j s p 或中止j s p 时容器会自动调用三个方法j s p i n t ( ) 、s e r v i c e ( ) 和j s p d e s t r o y ( ) ,它们与s e r v l e t 中相对应的方法作用相同。 2 2 4e j b 容器与组件 业务逻辑因企业的业务性质而有所差异,可以由e j b 组件在j 2 e e 程 序中实现。e j b 包括会话b e a n ( 分有状态和无状态) 、实体b e a n 和消息驱动 b e a n 。一般来讲,会话b e a n 用于商业逻辑计算,实体b e a n 用于封装数据 库访问。当客户机和服务器建立连接后,有状态会话b e a n ( s t a t e f u ls e s s i o n b e a n ) 在客户机和服务器之间保持着用户的某个状态:无状态会话b e a n ( s t a t e l e s ss e s s i o nb e 卸) 则处理单一的用户请求或商务过程,它不需要从 以前的请求中提取任何状态。当客户端的执行完成后,会话b e a n 和它的 数据都将消失。实体b e a n 只是数据模型,描述了存储在数据库表中的一 行持久稳固的数据,它不包括商务逻辑,如果客户端终止或者服务结束, 底层的服务会负责实体b e a n 数据的存储。消息驱动b e a n 结合了会话b e a n 和j a v a 消息服务( j m s ) 消息监听者的功能,它允许一个商业组件异步地发 送或接收j m s 消息。 e j b 组件部署在e j b 容器中,由容器提供e j b 组件的状态管理、事务 管理、线程管理、远程数据资源访问、连接管理、安全性管理和生命周 期管理等系统级服务。每个e 帕一般由4 部分组成:h o m e 接口、r e m o t e 接 口、b e a n 类和x m l 配置描述文件。h o m e 接口申明j a v a , :户用于创建新 e j b 、定位现存f a b 、销毁e j b 的方法。r e m o t e 接口申明e j b 在运行时j a v a 客户所调用的业务方法。b e a n 类封装e j b 的应用逻辑并实现_ r e m o t e 接口 中申明的业务逻辑方法。配置描述文件以x m l 形式存在的文件,用于描 中国石油大学( 华东) 硕士论文第2 章j 2 e e 平台及其核心技术 述e j b ,并给出e j b 运行时属性,这种属性依赖于目标服务器。所有的e j b 组件实例都运行在e j b 容器中,由e j b 容器调用业务逻辑方法和控制着 e j b 组件的生命期。对象生存周期通过调用e j b c r e a t e ( ) 、e j b a c t i v a t e ( ) 和 e j b p a s s i v a t e ( ) 等方法来实现。客户端应用程序调用部署在e j b 容器中e j b 组件的方法,实际上不是直接调用组件类中定义的方法,而是通过e j b 组件的h o m e 接口和r e m o t e 接口在e j b 容器中的映射,由e j b 容器采用代理 方式或存根方式调用e j b 组件类中的业务逻辑方法或者生命期方法。 2 2 5w e b 容器与e j b 容器的比较 w e b 容器和e j b 容器在原理上大致相同,主要区别是被隔离的外界环 境【j9 】。w e b 容器更多的是跟基于h r r p 的请求进行交互,而e j b 容器则更 多的跟数据库和其它服务打交道。它们各自实现与外界的交互,从而减 轻应用程序的负担。例如s e r v l e t 不用关心h r r p 的细节,直接引用环境变 量s e s s i o n 、r e q u e s t 、r e s p o n s e 就行;e j b 不用关心数据库连接速度、各种 事务控制,直接由容器来完成。 多种客户端可通过多种不同的协议来访问中间层各容器的j 2 e e , 眼 务,根据具体应用环境的不同可选择h t t p ( s ) 、r m i i i o p 等通信协议; 对移动设备等客户端,则使用w a p 协议与w e b 容器进行通信。 2 3j 2 e e 核心技术 1 、e j b 技术 e j b 是一个技术规范。它提供了一个框架来开发和实施分布式商务 逻辑,由此简化了具有可伸缩性和高度复杂的企业级应用的开发;此外 它还定义了e j b 组件在何时、如何与e j b 容器进行交互,容器负责提供 公用的服务,例如目录服务、事务管理、安全性、资源缓冲池等。 e j b 的分类和e j b 容器对组件的管理前文已有说明,不再赘述。 客户机应用程序并不直接与e n t e r p r i s eb e a n 进行交互,对客户端而 言e j b 容器是透明的;e j b 的客户端可以是s e r v l e t 、j s p 、应用程序或 其它b e a n ,客户端可以通过j n d i 来查找e j b h o m e 接口。 中国石油大学( 华东) 硕士论文第2 章j 2 e e 平台及其核心技术 2 、s e r v l e t 技术 。 j a v as e r v l e t 是一些运行于w 曲服务器端的程序。是j a v a 动态处理 h t t p 请求和生成网页的类,用来扩展w 曲服务器的功能。s e r v l e t 采用j a v a 编写,用于编写s e r v l e t 的s e r v l e t a p i 对服务器环境和协议没有特殊要求, 所以s e r v l c t 具有很强的可移植性,也不像利用c g i 程序等其他方式那样具 有性能局限。s e r v i e t 使用h 1 v r p 协议与客户端进行通信,最常用的子集是 “哪s e r v l e t s ”。与其他动态页面相比,s c r v l e t 优点主要在于平台无关性。 3 、j s p 技术 j s p 是编写动态页面的服务器端语言,其底层实现是j a v as c r v l e t j s p 提供的功能大多与s e r v l e t 类似,但实现的方式不同。s e r v l e t 全部由j a v a 编写并生成h t m l ,j s p 通常是大多数h t m l 代码中嵌入少量j a v a 代码。 j s p 为w e b 开发提供了一个框架,使用这个框架可以在服务器上使用 h t m l 、x m l 和j a v a 代码建立安全、快速和独立于平台的动态内容。使 用j s p 可以把表示逻辑和业务逻辑分离,比s e r v l e t 更利于编写动态页面。 4 、j d b c j d b c a p i 以一个统一的方式访问各种数据库。与o d b c 类似,j d b c 提供了一个标准的、透明的数据库连接的公共编程接口,各开发商根据 j d b c 的标准来实现其底层的驱动程序;j d b c 将开发者和私有数据库之 间的问题隔离开来。由于建立在j a v a 上,j d b c 可提供与平台无关的数 据库访问。 j d b c 定义了4 种不同的驱动,分别是j d b c o d b c 桥、j d b c n a t i v e 驱动桥、j d b c n e t w o r k 桥和纯j a v a 驱动。 5 、j n d i ( j a v an a m i n ga n dd i r e c t o r yi n t e r f a c e ) j n d i 提供分布式命名和目录服务,为应用程序提供标准的目录操作 方法,例如获得对象的关联属性、根据它们的属性搜索对象等。使用 j n d i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地铁建造工程节点方案(3篇)
- 丰台工程用井方案(3篇)
- 农业无人机租赁市场用户满意度调查与2025年服务质量提升策略
- 农业无人机监测与遥感技术在2025年产量预测中的应用分析报告
- 牧童谣课件教学课件
- 矿业会计面试题及答案解析
- 安全教育培训评估意见课件
- 风电叶片回收处理技术现状分析及2025年产业化前景展望报告
- 2025年电力行业市场前瞻:电力物联网技术创新投资战略分析
- 停车场租赁书
- 加油站安全费用提取、使用台账
- 译林版小学英语二年级上册全册课件
- 2024年卷烟封装设备操作工职业鉴定考试题库(浓缩500题)
- 近代中国交通工具变迁史说课材料
- 人教版九年级化学上册《第一、二单元》综合测试卷(附答案)
- 《第3课 数据的价值》参考课件1
- 2024年四川省大竹县级机关和事业单位考调人员75人历年(高频重点提升专题训练)共500题附带答案详解
- 湖南省建筑工程定额
- 《外科护理》课程标准
- 党风监督员培训课件
- (2024年)人才培养计划方案
评论
0/150
提交评论