




已阅读5页,还剩66页未读, 继续免费阅读
(计算机软件与理论专业论文)j2ee群集负载均衡的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 j 2 e e 规范定义了一套标准来简化n 层企业级应用的开发;j 2 e e 服务器 提供了交易处理服务、数据存取服务、j a v a 消息服务( j m s ) 、安全性服 务等执行环境和系统服务。j 2 e e 的最大优点是,与操作系统平台无关, 这意味着以j a v a 开发的构件,能够做到“w r i t eonce,runa n y w h e r e ”, 开发的应用可以配置到包括w n d o w s 平台在内的任何服务器端环境中去。 随着i n t e r n e t i n t r a n e t 网络的普及,符合j2 e e 规范的网络应用服务器需 要为越来越多的用户提供服务,在这种情况下,即使单台服务器性能再 高,所能提供的服务也是有限的,且存在单点失效等问题,为此应用服 务器群集技术和负载均衡技术成了研究如何提高j 2 e ej 务器整体性能的 新课题。 j 2 e e 服务器群集主要有三个特性:负载均衡( l o a db a l a n c i n g ,l b ) 、 高可用性( t t ig ha v a i l a b i l i t y ,h a ) 和失败接管( f a i l o v e r ) 。系统资 源的有效利用是群集系统的关键问题,负载平衡是实现资源有效利用的 重要手段。当前e j b 和s e r r l e t j s p 一起成为新一代应用服务器的技术 标准:e j b 是业务逻辑层的中间件技术,与j a r a b e a n s 不同,它提供了事 务处理的能力,从数据存储层分离,并取代了存储层的大部分地位; s e r v le j s p 负责与客户端通信,访问e j b ,并把结果通过j s p 产生页面传 回客户端。因而,群集机制可以提供在w e b 容器层( 传递请求到几个 s e r v le t j s p 引擎实体) 、e j b 容器实体层( 传递处理e j b 请求到几个e j b 容器实体) 和数据库层。e j b 容器层的群集是基于组件的,在实现负载均 衡等方面有别于一般的w e b 服务器群集技术。 本论文在研究总结了j 2 e e 及j 2 e e 群集的主要实现技术后,给出了 当前流行的j 2 e e 服务器b e aw e b l o g ic 和开源j b o s s 在实现群集负载均 衡的细节,并针对“远程答疑系统”项目实现了基于r u l e 的h t t p s e r v l e t 负载均衡,提出和实现了e j b 层的分组爿负载均衡算法。最后,给出了 所实现算法跟现存算法的比较,提出下一步工作。 关键字:j 2 f e ;群集:负载均衡;失效恢复 华南理工大学硕士学位论文 a b s tr a c t j 2 e es p e c i f i c a t io nm a k e st h en t ie r e n t e r p r i s e a p p l i c a t i o n d e v e l o p m e n tm u c h m o r ee a s i e r ,a n dt h e s e r ve r sb a s e do ni to f f e r th er u n n jn ge n v ir o n m e n ta n ds y s te mse r v i c ess u c ha st r a n s a c t i o n , d a t a b a s ea c c e ss in g , j m s8 n ds e c u r i t yse r v i c e t h em a j o ra d v a n t a g e o fj 2 e eisi ts“w r i t eo n c e ,r u na n y w h e r e ” j a v ac o m p o n e n ts ,w h ic h m e a nst h a tjtisin d e p e n d e n to ft h eo p e r a t i o ns y s t e m ,a n dt h ej 2 e e p r o d u c t i o n sc a n b e d e p l o y e dt oa n yj 2 e e se r v e rs i n c l u d i n gt h e s e rv e rinn t s y s t e me n v i r o n m e n t w i t ht h e q u i c kd ev e l o p jn go f t n t e r n e ta n di n t r a n e t ,t h en e t w o r ka p p l jc a t io n st h a tm e e tt h ej 2 e e s p e c i f i c a t i o n s u p p o r ts 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 h c a s e , t h es i n 9 1 eo n es e r v e rs e e m st ob el i m i 乞e da n dc a nb e c o m et h e s i n g l ep o i n to 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 ft h es e r v e r ism u c hh i g h e r s o ,t h et e c h n i q u e so fc l u s t e r i n ga n d1o a db a l a n c i n g b e c o m et h eh o t t o p c o fin c r e a s i n g t h ew h o l es y s t e mp e r f o r m a n c e in j 2 e ea p p l ic a t i o nse r v e rs t h r e em a j o rc h a r a c t e r is t ic so fj 2 e ec l u s t e ra r el o a db a l a n c i n g ( l b ) ,h i g ha v a i l a b i l i t y( h a )a n d f a i l o v e r t h eke yt oc lu s t e r s y s t e m s ist h ee f f ic i e n tu t i l iz a t io no f s ys t e mr es o u r c e sa n dw e c a na c h ie v et h a tg o a lb yu s i n gl o a db a l a n c i n g e j ba n ds e r v le t j s p h a v eb e c o m et h en e ws p e c i f ic a t i o nf o rn e wg e n e r a t i o no fa p p 】ic a t io n s e r v e r sn o w : e j b i st h et e c h n i q u e o fm i d d le c o m p o n e n t s f o r c o m m e r c a 11o g jc ,d i f f e r e n tf r o m j a v a b e a n s , f o ri t s u p p o r t s t r a n s a c t i o n m a n a g e ,a n d i ta 1s os u b s t i t u t esf o rt h ed a t a b a s e s t o r a g e l e v e lt os o m e e x t e n t :s e r v le t j s pa r er es p o n s i b lef o r c o i n 【n u n ic a t i n gw i t ht h ec l ie n ta n de j b ,a n dr e t u r nt h er e s u l t t o t h ec l ie n tj 九 j s pp a g e f r o m a b o v e , w ek n o wt h a tt h ec 1u s t e r m e c h a n is mc a nb es u p p o r t e di nt h ew e bc o n t a i n e ro rt h ee j bc o n t a i n e r o rt h ed a t a b a s e】e v e 】 i n m yp a p e r ,a f t e rc o n c l u d i n gt h e jm p l e m e n t i n gt e c h n i q u e s a ss o c i a t e dw i t hl o a db a l a n c i n g jn j 2 e ec l us te r , t h e i m p le m e n t i n g d e t a i s0 f1 0 a db a l a n e i n gi nt w e1 3 0 p u l 8 r3 2 e es e r v e r s b e aw e b lo g ic a n dj b o s s ,a r eg i v e n a n dt h e nd r 0 1 3 0 s ea n dr n a k et h er u l e b a s e dl o a d b a la n c i n gf o rh t t p s e r v le t1 e v e lw o r k a ndt h en e x tc o m eo u tw i t h th e a l g o r i t h m 0 fg r o u p b a , z e d 彳1 0 a db a l a n c i n gf o re j bc e n t a in ef , a t1 a s t ,t h et h e s isd r a w sac 0 n c l u s i 0 nb yc o m p a r i l q gt h isa r i t h m e t ic w i t hc u r r e n te x i t i n ga 1 9 0 r t h m sa n dp r 0 s p e c t st h ef u t u r ew o r kf o r t h iss u b e c t 。 k e y w o r d s :j 2 e e :c 1 u s te r :l o a db a l a n c i n g :f a i lo v e r l i i 华南理工大学 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进 行研究所取得的研究成果。除了文中特别加以标注引用的内容外, 本论文不包含任何其他个人或集体已经发表或撰写的成果作品。 对本文的研究做出重要贡献的个人和集体,均已在文中以明确方 式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:彩 、开多夸 日期:。 缉月,日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规 定,同意学校保留并向国家有关部门或机构送交论文的复印件和 电子版,允许论文被查阅和借阅。本人授权华南理工大学可以将 本学位论文的全部或部分内容编入有关数据库进行检索,可以采 用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书。 本学位论文属于 不保密口。 ( 请在以上相应方框内打“”) 作者签名: 导师签名: 日期:大,垆年月,石日 日期:a 加年占月c _ - h 勰勺 柑图 绪论 第一章绪论 1 1 研究背景 1 1 1 中间件技术的现状 2 0 世纪9 0 年代末,面向对象的中间件技术成为中间件平台的主流技术,出现了以s u n 公司的e j b j 2 e e 、m i c r o s o f t 的c o m + d n a 和o m g 的c o r b a o m a 为代表的三个技术分支。其 研究热点是建立标准化的对象请求代理,屏蔽网络环境下计算平台、操作系统、编程语 言、网络协议的异构性和复杂性,使分布在网络上的应用系统能够协同工作,为网络应 用提供通用的高级网络管理服务以及与应用领域相关的增值服务。进入新世纪,随着电 子商务需求的发展,企业计算面临企业间的信息共享和协同工作问题,融合w e b 的企业 计算解决方案成为热点,为此w 3 c 提出了w e bs e r v i c e 技术体系,m i c r o s o f t 推出n e t 技 术,s u n 推出s u no n e 架构,企业应用全面进入i n t e r n e t 时i l j 。 1 1 2 三种基于组件的多层体系技术架构比较 目前,针对各种分布计算平台技术,出现了相似的且具有可比性的分布式构件,即 c o r b ac 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 ( e n t e r p r i s ej a v a b e a n ) 技术和d n a 2 0 0 0 中的c o m d c 0 m c o m + 技。对于以上三种技术从集成性、可用性和可扩展性三种标准 进行比较分析,比较结果如下图表( 图卜1 ) 。 虽然这三种平台因为其形成的历史背景和商业背景有所不同,各自有自己的侧重和 特点,其实在它们之间也有很大的相通性和互补性。例如,e j b 提供了一个概念清晰、 结构紧凑的分布计算模型和构件互操作的方法,为构件应用开发提供了相当的灵活性。 但由于它还处于发展初期,其形态很难界定。c o r b ac c m 是一种集成技术,而不是编程技 术。它提供了对各种功能模块进行构件化处理并将它们捆绑在一起的粘合剂。e j b 和 c o r b a 在很大的程度是可以看作为互补的。这个适应w e b 应用的发展要求,许多厂商非常 重视促进e j b 和c o r b a 技术的结合,建立r m i i i o p 通信协议。c o r b a 不只是对象请求代 理o r b ,也是一个非常完整的分布式对象平台。c o r b a 可以扩展e j b 在网络、语言、组件 边界、操作系统中的各种应用。目前许多平台都能实现e j b 构件和c o r b a 构件的互操作。 同e j b 和c o r b a 相互之间方便的互操作性相比,d c o m 和c o r b a 之间的互操作性要相对复 杂些,虽然d c o m 和c o r b a 极其类似。 华南理工大学硕士学位论文 c o f t a e c m l u 丑d e o 鲥 纛藏饿 跨器奢性能差( 限于j a v a )好 好 瞥警台筏巍奸差稼于 好w i n d o w s ) 飘缮激谶好般 好 公共务辑好一鹱 件好 霹用挂 囊势始衰鼹簸 好 祷基舞殿簸 毅 安垒务好黢 好 翻最务酸艇 好 客案性一黢黢 黢 较翳开发霸变 好好 掩藏一黢 产溺癔慕俄黢黢好 耳r 囊性好黢 安 图i - i 三种技术比较【2 】 随着w e b 应用的深入发展,具有可伸缩性、灵活性、易维护性的多层体系结构是当 今w e b 应用的主流模式,通过以上对比,至少目前,j 2 e e 仍占有优势,而且可以肯定, 采用j 2 e e 架构具有切实的可行性,拥有良好的应用前景,是w e b 应用系统研究和开发中 的一个正确方向。 1 1 。3 j 2 e e 群集及其负载均衡技术国内外研究现状 在i n t e r n e t 飞速发展的今天,网络应用服务融入了人们的生活中。随着访问用户的 猛增,单服务器往往无法及时处理完所有收到的大量请求,从而造成应答的滞后、请 求的丢失等情况,也存在单点失效等严重问题。 群集技术及负载均衡技术f 是基于上述原因诞生的。群集技术可以使整个系统免于 瘫痪以及很好地解决操作系统和应用层次的故障,服务器群集包含多台服务器节点,当 2 绪论 其中一台服务器发生故障时,它所运行的应用程序将由群集中其它服务器自动接管,实 现高可用性,解决单点失效问题:廉价的基于p c 的服务器的成本达到了历史较低水平 ( 而每台服务器的c p u 处理能力则持续增长) ,使得群集的成本比以前更加可以承受。 负载均衡主要是请求报文和各服务器当前的负载情况,将到达的大量请求报文分配到不 同的服务器处理,以减轻单个服务器处理报文的负担,通过引入负载均衡,可以使 t n t e r n e t 上和各种资源得到最大效率的使用。 由于j 2 e e ( j a v a2 ,e n t e r p r i s ee d il i o n ) 的优点多,在w e b 应用上,企业正在选 择它产生他们关键性任务的应用。在j 2 e e 框架里,群集提供了保证最少下载时间和最 大伸缩性的关键性任务服务。j 2 e e 群集是在一组应用服务器上运行j 2 e e 应用,在用户 看来,它就象一台服务器一样,对于其伸缩来说,可在群集里灵活地引入额外的机器或 服务器实例;确定群集的每个组件都是冗余的,来保证最少的下载时间,也保证了群集 的高可用性。另外,大多j 2 e e 服务器群集都提供了失效恢复的功能。 j 2 e e 群集实现中的e j b 群集是基于组件的一种群集方式,和普通w e bs e r v e r 群集 技术有很大的不同。实现的方法也不相同。又由于e j b 规范中没有提供任何有关支持群 集的标准,即使有的厂商在e j b 服务器中提供了群集特性,但如何具体实现群集是由厂 商自己确定的,实现的方法也各不相同。为此,如何实现j 2 e e 群集,以提高整个j 2 e e 系统的性能成了研究的热点。另外,j 2 e e 服务器群集设计中,负载均衡( l o a db a l a n c e ) , e j b 群集和h t t p s e s s i o n 群集技术是其所涉及到的主要关键技术。 目前,大多数j 2 e e 应用服务器都提供了群集功能,如b e aw e b l o g i c 应用服务器, 开放源码的j b o s s 应用服务器,i b m 的w e b s p h e r e ,s y b a s e 公司提供的j 2 e e 应用服务器 等都提供了群集功能。在j 2 e e 服务器群集设计的主要技术中,e j b 群集的实现是整个系 统实现的核心,毕竟当前j 2 e ew e b 层容器的实现技术己比较成熟,并且它们的状态管 理和操作模型也得到了较好的规范和理解。通过在一群服务器之间复制w e b 层容器的 状态,可以实现可伸缩的服务解决方案。 在均衡算法的实现上,目前主流w e b 应用服务器,如b e aw e b l o g i c ,j b o s s 等仅 支持一些简单的偏静态的负载平衡算法,大多采用轮询( 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 ) 等算法,显然这些算法不能感知后端服务器的状态, 从而不能根据服务器当前运行的负载信息进行决策,也不能进行负载反馈,不具有自适 应控制能力。一些动态负载算法,如最少连接、加权最少连接等,只考虑服务器的访问 连接情况,没办法解决部署在不同群集服务器中的e j b 组件访问的平衡。 c o r b a 应用多种模式设计了一种自适应的负载平衡服务口1 ,能根据系统运行状态信 鼠进行负载分配,负载粒度是对象级的,只是该服务依赖于c o r b a 规范的 3 华南理工大学硕士学位论文 r e q u e s t f o r w a r d in g 机制,不能直接应用到3 2 e e 应用服务器。 中国科学院也在研究开发自己的j 2 e e 服务器,论文“w e b 应用服务器自适应负载平 衡服务”f 4 】中,阐述了在j 2 e e 应用服务器w e b f r a m e 2 0 上实现自适应负载均衡的若干关 键技术及其解决办法,包括可热插拔、负载策略可替换、负载反馈与自适应控制、状态 迁移以及容错技术等,但其负载平衡的实现方法带来的额外开销大,在响应时间、吞吐 量等方面的性能还有待进一步验证。 西安交大研究开发x8 6 3 应用服务器,在实现e j b 群集负载方面也提出了新的均衡算 法,算法叫容器集群动态负载均衡的分组状态驱动自适应( g s d a :g r o u p i n gs t a t e d r i v e a d a p t a t i o n ) 算法,这种算法在实现均衡方面主要是通过负载迁移来实现;但这种算法 没考虑到移动负载的收益有可能不能抵消通信、决策等产生的额外开销,反而得不偿失。 1 2 课题来源及主要研究内容 课题来自广东省高新科技项目之“红棉远程答疑系统”的一个子课题。这个项目用j 2 e e 技术开发,在单个服务器实例上已投入运行,但单一服务器实例毕竟存在单点失效等不 足的地方,为了提高整个系统的性能,能使系统处理成千上万的学生和教师的答疑,并 为联合答疑创造高可用性的环境,构建该系统的群集环境成了必要性。 主要研究内容包括: 1 j 2 e e 的主要实现技术及其容器的实现 2 j 2 e e 群集的拓扑实现结构 3 j 2 e e 群集中成员的管理和组件的访问 4 j 2 e e 群集中的状态复制 5 j 2 e e 群集中的负载均衡实现技术及其算法和失效恢复处理过程 1 3 课题意义 本论文对j 2 e e 的群集技术进入了深入的研究,比较各种实现的利弊,同时就商用 服务器b e aw e b l o g i c 和代码开源的服务器j b o s s 给出了各自在群集负载均衡实现上的 细节,为提高j 2 e e 应用系统的整体性能提供了很好的参考价值,对构建答疑系统的分 布式环境提供了技术支持。另外,在本论文中还实现了基于规则的h t t p s e r v l e t 群集 方案,对e j b 负载均衡提出了分组的彳均衡算法。 1 4 论文内容按排 本论文围绕实现“远程答疑系统”群集出发,对j 2 e e 群集技术进行深入的研究和 4 绪论 分析,并分别给出w e b l o g i c 和j b o s s 的具体实现方案,最后给出了基于规则的舯均 衡实现方案和分组的d 均衡算法。本文 第一章绪论概括说明了课题的背景和研究内容。 第二章介绍了j 2 e e 服务器的主要技术实现 第三章介绍了j 2 e e 群集的主要技术实现 第四章详细研究了w e b l o i g c 及j b o s s 在群集负载均衡方面实现 第五章给出基于规则的m 田负载均衡实现方案 第六章给出了分组的均衡算法的描述和具体实现 最后对本论文进行小结,提出下一步工作 1 5 本章节小结 本章给出了论文研究的背景和实现现状,简要介绍了本论文的研究内容、选题意义 及论文的章节安排。 5 华南理工大学硕士学位论文 第二章j 2 e e 及其相关技术 2 1 j 2 e e 应用服务器 j 2 e e 足由s u n 公司开发的一套企业级应用规范,当前最高版本是1 4 。j 2 e e 应用 服务器( j 2 e ea p p l i c a t i o ns e r v e r ) 是基于j 2 e e 规范的中间层集成框架,它为j 2 e e 组件的运行提供了运行时环境、基础服务和管理等功能。 它采用目前国际最先进的开发理念、拥有许多适合基于w e b 的应用系统需求的特 点:n 层结构【5 】体系虽适合i n t e r n e t 环境,可以使系统有很强的可扩展性和可管理 性;分布式环境一可以保证系统的稳定性,同时拥有较高的性能; 面向对象的模块化 组件设计可以提高开发速度,降低开发成本;采用j a v a 技术完全跨平台,适应 i n t e r n e t 需要,并能得到大多数厂商支持。j 2 e e 应用服务器的这些特点和优势使其普 遍为业界所看好,并成为软件市场新一轮竞争的热点。 当前支持j 2 e e 的应用服务器主要有i b mw e b s p h e r ea p p l i c a t i o ns e r v e r ,b e a w e b i 。o g i cs e r v e r ,j b o s s ,o r a c i ea p p l i c a t i o ns e r v e r ,s u no n ea p p l i c a t i o ns e r v e r 等。 2 2j 2 e e 的n 层应用体系结构 在j 2 e e 规范中,应用逻辑按功能不同可以划分为不同类型的组件,各组件根据它们 所在的层分布在不同的服务器或服务器实例上,共同组成一个基于组件的分布式多层应 用体系架构。如图2 1 所示。 将图21 中间部分的w e b 容器和e j b 容器进一步划分,则可得到j 2 e e 的一个典型的四 层结构,分别是客户端层、w e b 层、业务逻辑层和信息系统层。其中业务逻辑层也q e j b 层,它由应用服务器和e j b 组件组成。一般情况下,许多开发商把w e b 服务器和e j b 服务 器产品结合在一起发布,称为应用服务器。e j b 层用来实现企业级信息系统的业务逻辑, 是企业级应用的核心,由运行在业务逻辑层中的e j b 组件来处理。一一个b e a n 从客户端接 收数据、处理,然后把数据送到信息系统层存储起来。同样,一个b e a n 也可以从信息系 统层取出数据,发送到客户端程序。业务逻辑层中的e j b 组件运行在容器中,容器解决 了底层的问题,如事务处理、生命周期、状态管理、多线程、安全管理、资源池等。 6 第二章j 2 e e 及其相关技术 v c b 锑嚣 疆m l ,jj ,1 潮| ; ;b p 一劈 三竺? “一; 撵i 季 目; a l m l 矗l 。 。j e j r 二; | i 一一趔蕴2 l ;一 i ;掉嚣 补,4 师f i 矗i i i 弛! l 。 会露。”文体8 “。黼磐“ 引要;蘑;手; 幽2 一lj 2 e e 的n 一层结构图 2 3j 2 e e 应用组件及企业服务 j 2 e e 应用组件主要包括客户层的a p p l e t 和j a v a b e a n ,表示逻辑层的s e r v l e t 、j s p ( j a v as e f y e rp a g e ) 、j a v a b e a n 和j s t l ( j a v as e r v e rp a g e ss t a n d a r dt a gl i b r a r y ) 以及 业务逻辑层的e i 8 1 6 1 ( 包括有状态会话e j b ,无状态会话e ,b ,实体e l i b 和捎息e j b ) 。e j b 是j 2 e e 平台的核心,也是j 2 e e 得到业界广泛关注和支持的主要原因。j 2 e e 的一个主要 目的就是简化企业应用系统的开发。e j b 正是基于这种思想的服务器端技术,它的核心 思想是将商业逻辑与底层的系统逻辑分开,使开发者是需关,心商业逻辑,使程序员将主 要精力放在商业逻辑的开发上,而由e j b 容器实现目录服务、事务处理、持久性、安全 性等底层系统逻辑。e j b 本身也是一一种规范,该规范定义了一个可重用的组件框架来实 现分布式的、面向对象的商业逻辑。j 2 e e 各席用组件在各个层中连接松散,以此在互操 作的同时能保持自身的灵活性和可重用性。 除了企业的业务逻辑外,还需要提供对一些基本服务的支持,j 2 e e 环境的另大特 色就在于它提供了完善的企业级服务,以满足各类应用的需要。这些服务主要包括: 连通性鼹务 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 ) 提供数据库连接和访问服务。与o d b c 类似,j d b c 提供了一个标准的、透明的数据 库连接的公共编程接口,各开发商根据j d b c i 举j 标准来实现其底层的驱动程序。j 2 e e 2 h 件通过统一的接u 访问不同种类的关系型数据库。 7 华南理工大学硕士学位论文 j c a ( j a v ac o n n e c t o ra r c h i t e c t u r e ) 用来连接j 2 e e 应用程序和e i s 体系结构,如e r p 、大型机事务处理、数据库以及其 他遗留信息系统等,帮助开发者进行不同种类的e i s 之间的无缝集成。j c a i 奎接器一方面 与j 2 e e 应用服务器建立系统级连接,另一方面与访i h e i s 资源的应用组件建立应用级连 接。 通信服务 _ j a v a 消息服务j m s ( j a v am e s s a g i n gs e r v i c e ) 提供消息传递服务。j m s a p i 实现了消息服务产品调用的标准化,目前市场上此类 产品主要有i b m 的m qs e r i e s 、微软的m s m q 、t i b c o 的r e n d e z v o u s 。j m s 在这些产品各 自的消息a p i 调用之上附加定义了一层,将所有这些产品统一于个接口。这样,j 2 e e 应用就可以与特定的开发商产品实施保持相对独立。 - 电子邮件服务( j a f j a v a m a i 1 ) 提供电子邮件服务。它位于s m t p 和p o p 3 之类特定邮件服务实施上层,为所有公共 服务,如电子邮件格式识别、邮件收发和判断是否有附件等,提供统一访问接口。 j a v ai d l r m i 1 1 0 p c o r b a 兼容接口,提供j 2 e e 与c o r b a 的通信服务。j a v a1 d l 是推荐使用的在j 2 e e 环境 中访问c o r b a 对象的方法;反之,r m i - i i o p 则是在c o r b a 客户程序中调用j 2 e e 组件 的方法。 j a x ( j a v ax m la p i s ) 提供x m l 语法分析绑定服务。j a v ax 池a p i 方便使用者在j 2 e e 环境中调用x m l 文档, 提供的服务包括x m l 语法分析( s a x 和d o m ) ,x m l 与j a v a 对象的绑定,x m l 消息发送和x s l t 转换等。j g x 支持w e b 服务,方便j 2 e e 业务逻辑组件适用于各种不同环境。 以笾嬲 j n d i ( j a v an u n i n g a n dd i r e c t o r yi n t e r f a c e ) 提供分布式命名和目录服务。在分布式环境中,命名和目录服务使得资源在全网络 范围内的合理分布成为可能。每个资源在分布式层次树形结构中都具有唯一的名字。客 户程序通过访问目录服务获得所需资源的旬柄。j n n 为企业命名目录服务调用制定标 准,提出了一些统一的接口,由各开发商对这些接口加以实现。当前市场上目录服务产 8 第二章j 2 e e 及其相关技术 品主要有l d a p 、n o v e l l 目录服务和a c t i v e 目录服务等,j n d i 在这些开发商产品之上定义 了一个服务层,使用者可以通过统一的界面去访问底层的各种服务。 其他缀务 j t s j t a ( j a v at r a n s a c t i o ns e r v i c e ,j a v at r a n s a c t i o na p i ) 提供事务处理监控服务。j t s 是c o r b ao t s 事务监控的基本实现。j t s 规定了事务管 理器的实现方式。该事务管理器是在高层支持j t a 规范,并且在较底层实现o m 6o t s s p e c i f i c a t i o n 的j a v a 映像。j t s 事务管理器为应用服务器、资源管理器、独立的应用以 及通信资源管理器提供了事务服务。 j a a s ( j 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 ns e r v i c e ) :提供访问控制等安全 服务 j m x ( j a v am a n a g e m e n te x t e n s i o n s ) :资源的管理和监控。通过m b e a n s e r v e r 来注册 管理m b e a n 对象。 2 4j 2 e e 容器 j 2 e e 是一个基于组件一容器模型的系统平台,其核心概念是容器。容器【7 】足指为特 定组件提供服务的一个标准化的运行时环境,j a v a 虚拟机就是一个典型的容器。组件是 个可以部署的程序单元,它以某种方式运行在容器中,容器封装了j 2 e e 底层的a p i , 为组件提供事务处理、数据访问、安全性、持久性、组件部署、发布和生命周期管理等 服务。在j 2 e e 中组件和组件之f 碰并不直接访问,而是通过容器提供的协议和方法来相 瓦调用。组件和容器间的关系通过“协议”来定义。容器的底层是j 2 e e 服务器,它为 容器提供j 2 e e 中定义的各种服务和a p i 。一个j 2 e e 服务器可以支持一种或多种容器。 根据j 2 e e 标准,共定义了四种容器【9 l ,应用组件可通过配置工具部署到对应的容器中; a p p l e t 容器,运行a p p l e t 程序;客户端应用程序容器,运行标准客户端j a v a 应用程序, 包括基于s w i n g 的6 e i 客户端应用程序;w e b 容器,运行表示逻辑层的s e r v l e t 和j s p : e j b 容器,运行业务逻辑层的企业j a v a b e a n 。本论文主要则重于后两者。其中e j b 容器 又可根据e f t ) 类型戈分为实体b e a n 容器和会话b e a n 容器等。 2 4 1 s e r v i e t 容器 s e r v l e t 是j a v a 动态处理h t t p 请求和生成网页的类( c l a s s ) 。每个s e r v e t 就是一 个在j 2 e e 应用服务器w e b 容器( 又称w e h 服务器) 里的程序构件。这种构件有效地利用 了w e b 服务器的h t t p 通信功能。w e b 服务器负责将w e b 请求传递给s e r v l e t 。 i n i t 、s e r v i c e 和d e s t r o y 方法是s e r v l e t 生命周期的方法。当s e r v j e t 类实例 9 华南理工大学硕士学位论文 化后,容器加载i n i t ,以通知s e r v l e t 它已进入服务行列。i n i t 方法必须被加载, s e r v e l t 才能接收和处理请求,如在i n i t 中载入数据库驱动程序、初始化一些值等等。 s e r v i c e方法由s e r v l e t容器调用,s e r v l e t容器传递 j a v a x s e r v l e t s e r v l e t r e q u e s t 对象和j a v a 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 t t p 请求信息,s e r v l e t r e s p o n s e 则封装s e r v l e t 响应。从s e r v i c e 中删除s e r v l e t 实例之前,容器调用d e s t r o y 方法,在s e r v le t 容器 关闭或s e r v l e t 容器需要更多的内存时,也调用它。这个方法只有在s e r v l e t 的s e r v i c e 方法内的所有线程都退出的时候,或在超时的时候才会被调用。在s e r v l e t 容器调用 d e s t r o y 方法之后,它将不能再调用s e r v l e t 的s e r v i c e 方法。d e s t r o y 方法给了 s e r v l e t 机会,来清除所有h o l d 住的资源,比如:内存、文件处理和线程等,以确保 在内存中所有的持续状态和s e r v l e t 的当前状态是同步的。 2 4 2 e j b 容器 业务逻辑因企业的业务性质而异,它由e j b 构件在j 2 e ew e 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 则实现了客户和服务器更松散的方法调用,利用消息服务器有其特定的 优势,一个消息驱动b e a n 能让客户和服务器之间进行异步( a s y n c h r o n o u s ) 通信,服务 器并不要求立刻响应;当j a v a 消息服务器( j a v am e s s a g es e r v e r ) 收到从客户端发来的 消息时,消息驱动b e a n 被激活,并不像使用会话b e a n 那样直接调用b e a n ,这样客户不 必要知道消息驱动b e a n 中具体有什么方法可以调用。 以上的e j b 组件部署在称为e j b 容器的应用服务器中,由e j b 容器提供e j b 组件的 状态管理、事务管理、线程管理、远程数据资源访问、连接管理、安全性管理和生命周 期管理( 包括e j b 的创建、删除、激活、去活) 等系统级服务。可以说容器是e j b 里面最 重要的概念,e j b 容器逻辑框架如图2 2 : 1 0 第二章j 2 e e 及其相关技术 图2 - 2e j b 容器逻辑框图【8 l 每个e j b 一般由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 、定位现存e j b 、销毁e t b 的方法。r e m o t e 接i _ _ 申明e j b 在运彳亍时j a v a 客户所调用的商务方法。b e a n 类封装e j b 的应用逻辑并实 现了r e m o t e 接口中申明的业务逻辑方法。配置描述文件是以 ( m l 形式存在的文件,用 于描述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 h a cc i v a t e ( ) 和 e j b p a s s j v a t e ( ) 等方法来实现。客户端应用程序调用部署在e j b 服务器中e j b 组件的方法,其实质i 二不是直接调用组件类中定义的方法,而是通过e j b 组件 的h o m e 接口和r e m o t e 接l 在e j b 容器中的映射由e j b 容器采用代理方式或存 根方式调用e j b 组件类中的业务逻辑方法或者生命期方法 w e b 容器和e j b 容器在原理上是大体相同的,主要区别是被隔离的外界环境。w e b 容器更多的是跟基于h t t p 的请求打交道。而e j b 容器,它则更多的跟数据库、其它服 务打交道。各自实现了与外界的交互,从而减轻应用程序的负担。例如s e r v l e t 不用关 心h t t 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 或j n l p 等通信协议;对移动电 话或p d a 等客户端,则使用无线访问协议w a p ( w i r e e s sa c c e s sp r o t o c 0 1 ) 与w e b 1 1 华南理工大学硕士学位论文 容器进行通信。 2 5 本章小结 1 2 e e 标准提供了一个基于组件的方法,来设计、开发,装配以及部署企业应用程序, 组件主要有s e r v l e l 、j s p 、e j b 等,每个组件都在复杂的分布式应用系统中扮演一个特 定的角色。j 2 e e 企业服务a p i 统一了开发商服务产品和j 2 e e 组件之间的接口,这些接 口均在产品实现上层定义标准a p i 调用。 第三章j 2 e e 群集相关技术介绍 第三章j 2 e e 群集相关技术介绍 3 1 群集拓扑 随着i n t e r n e t 的快速发展,商业站点会有成千上万的并发用户,应用服务器必须
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江西吉安市泰和县上圯水厂面向社会招聘5人考前自测高频考点模拟试题及答案详解(必刷)
- 2025河南郑州联勤保障中心二季度社会人才招聘132人考前自测高频考点模拟试题及答案详解(夺冠)
- 2025年国家知识产权局知识产权检索咨询中心社会招聘(16人)考前自测高频考点模拟试题及完整答案详解
- 2025快递站点租赁合同
- 2025广东汕头市潮阳区教育局属下学校外出招聘硕士研究生18人模拟试卷及答案详解(新)
- 2025年阜阳颍州区选调区内乡镇在编在岗教师60人模拟试卷附答案详解(典型题)
- 2025年安徽艺术学院高层次人才招聘30人考前自测高频考点模拟试题有完整答案详解
- 2025年临沂市罗庄区兴罗资本投资有限公司公开招聘职业经理人模拟试卷及完整答案详解一套
- 2025北京大学未来技术学院招聘1名劳动合同制工作人员模拟试卷及答案详解(名校卷)
- 2025湖南邵阳市洞口县教育局所属事业单位招聘39人模拟试卷带答案详解
- 头道汤的课件
- 护肤品分析与讲解
- 2025年中国药典培训试题及答案
- Q-JJJ 9002-2025 铁路建设项目安全穿透式管理实施指南
- 2025年新闻记者从业资格证考试题库(附含答案)
- 制药设备改造管理制度
- DB31/T 1013-2016城市轨道交通地下车站环境质量要求
- 【义乌小商品市场出口贸易的现状与对策探析8100字(论文)】
- 沟通的艺术智慧树知到期末考试答案章节答案2024年湖南师范大学
- 城轨专业职业生涯规划
- 高海拔地区常见疾病与适应措施
评论
0/150
提交评论