(计算机应用技术专业论文)钱塘应用服务器ejb容器集群服务设计与实现.pdf_第1页
(计算机应用技术专业论文)钱塘应用服务器ejb容器集群服务设计与实现.pdf_第2页
(计算机应用技术专业论文)钱塘应用服务器ejb容器集群服务设计与实现.pdf_第3页
(计算机应用技术专业论文)钱塘应用服务器ejb容器集群服务设计与实现.pdf_第4页
(计算机应用技术专业论文)钱塘应用服务器ejb容器集群服务设计与实现.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

摘要 随着信息技术的应用在深度和广度上的扩展,应用系统的通用性、可订制性、 高性能和高可靠性越来越受到人们的关注,中间件技术能很好的提高计算机软件 开发灵活性,减少冗余和缩短开发周期,与操作系统和数据库管理系统一齐并称 企业应用软件的三架马车。 钱塘应用服务器( j gs e r v e r ) 是2 0 0 4 年浙江省科技厅重大科技攻关项目 支持下的研制成果,是一个轻量级j 2 e e 应用服务器,该应用服务器提供中间件 技术中的多项功能,包括h b 容器服务、j m s 服务、j d b c 及连接池服务、j t s 服务、j n d i 、j m x 及动态部署等。e j b 服务器是中间件技术中的关键组件之一, 玎b 服务器的性能很大程度上影响整个应用服务的性能,在j 髓n g 中间件e j b 服 务器应用集群技术,可以为j t 粕g 应用服务器提供高性能、高可靠的大型企业级 服务。 论文首先介绍集群技术中几项关键技术。包括负载平衡和失效转移等相关技 术。在分析j b o s s 的u b 集群客户端和服务端等相关技术的基础上,针对 j t a n g 邵b 容器的特点,总结出集群负载平衡端放置在客户端的优势和实现方法, 论文接着提出j t 柚ge i b 集群平台服务端框架和各组件的结构:节点集群服务端 模型主要分为五层,分别是基础通讯层、分组层、内存数据共享层、恢复管理层, 应用管理层。各层的设计都是基于i o c 管理框架,应用服务器管理框架可以方 便的进行监控和配置。论文详细分析了基础层上j g r o u d s 通信机制,分组层上节 点分组服务、内存数据共享层的节点间数据和全局数据共享服务、恢复管理层上 的节点复制和恢复管理服务,根据集群平台中内存节点相关数据共享二维数据结 构,进一步分析通过内存共享来实现h a j n d i 的关键过程和算法,实现在j t a g 应用服务器下e j b 的集群技术。 论文最后列出架构设计的实现类图、t a n g 服务器的多域概念和集群控制管 理界面等,通过比较集群技术使用前后j 1 壮g 应用服务器性能的差异,分析j t 蹰g 服务器可b 集群的特点及性能优势,指出j 胁g 应用服务器中的e j b 集群技术 存在的不足之处,并提出以后的工作目标。 关键词:集群,负载平衡,中间件,日b ,钱塘应用服务器 浙江大学硕士学位论文 a b s t r a c t c i u s t e re n a b l e sa g r o u po fi o e i y u p l e d m p u t e 瞎w o r kt o g e t h e rc i o s e i ya t t h ee x p e n s eo fs i o w e rc o m m u n l c a t i o nb e t w e e np m s s o 陷c i u s t e rc o m p u t i n 口 h a sb e e ni n c r e a s i n 口i yp o p u i a ri nt r 忙i a s td e c a d e 。f o rni e a d s 七oac h e a pw a vt o d r o d u c eh i g hd e | o r m a n c ea n dh i g ha v a i l a b i i i t yc o m p u t e r s a n dc l u s t e r t e c h n o k g yi sb e i n 口w i d e l yu s e di n 、,a n o u sk i n d so fa p p i i c a t i o n se s p e c i a yi n m i d d i e w a r e m i d d l e 、忸怕i si n t e r | n e d l a ws o f t v i ,a 他a pp i i c a t i o nw h i c ha a t sa sm i d d l ei a y e r b e t w e e ns y 8 t e m ss o f t i 限怕a n da p p i i c a t l o n s :m i d d l 勖憾怕i sn e t w o 瞅c o n n e c t e d s 湘甜et h a tp r o 岍d e ss e i c e ss u c ha si d e m 怖c a i t i o n a u t h e n _ t i c a t o n 。 a u 廿1 0 n z a t i o n ,d i 怕咖r i e s 。 a n ds e c u r e t c m i d d i e 、f 旧悖c a nr e d u c e d e v e i o p m e mc y c l e ,r e i e 鹊et h eb u r d e no fp 嘲r a m m e 惜a n dh e i pd e v e l o p e r st o b u i l du pa f i e x i b i e 。h i g he 竹i c i e n c y ,a n d m p i e xa p p i i c a 稿o n s j _ f 鲁i n gm i d d l e w a r ei sal i g h ta p p i i c a t i o ns e r v e ra c c o 州d i n gt oj 2 e es p e c f i c a t i o n p r o v i d i n ge j b 。j m s ,j d b ca n dc o n n e c t i o np o o i ,j t s 。j n d l ,j m sa n dd y n a n l i c d e p l o y m e n ts e m c e s ,r a n gh a sap e r f e c t n i u n c b o no fa p a c h e1 - o m c a tw h i c h s u p p o r t ss e l e t sa n dj s p s i n s i d et h ea p p l i c a m o ns e n ,e le j bc o n t a j n e ri sa k e yc o m p o n e n ta n dt h ep e 哟n t l a n c ei sc r n j c a it ot h eq u a i i t yo fs e r v i c e s t h i sp a p e ri si n t e n d e dt od e s i g na n dj m p l e m e n t 廿1 ee j bc l u s 勺b n n 口e j b c o n 协i n e rf o rj 1 _ a n gm i d d l e w a 怕f i 例y ,t h i sp a p e rd e s c r - b e st h ec o m m o n t e c h n o i o g yo fl o a d - b a l a n c ea n df a u t o r r e n ti nc i u s t e r i n g 。a n da n a i y z e st h e e j bc i u s t er - n gs 仃u c t u r eo fap o p u i a ro p e n - s o u 门a p p i i c a t i o nj b o 鲻声rt h a t t h i sp a p e rj n t r o d u c e st h ee o ba r c h i 由e c t u r eo fj 。胁ge j bc o n t a j n e la n da n o v e r v i e wf u n c t i o no fd 砌e r e mc o m p o n e n ti ne j bc o m a i n e ri sa i v e n f o c u s j n go nt h eh i g hp r e c i s ea n di n d e p e n d e mi o a db a l a n c e ,t h i sp a p e ra d o p t s ad y n a m i ci o a db a i a n c es t r a t e g y 鲫dp u t t i n gt h ea d d 怕s so ft a r g e tn o d e c h o o s i n gi n c i i e m ss t u b s ,a n d 廿1 e n 廿1 i sp a p e ra i v e st h es e r v e r 。ss i d e a r c h i t e c t u 怕o fe j bc l u s t e r t h ea r c h i t e 曲j r eu s i o cf 限m e w o r k 锄dj g r o u d s f o r b ec o m m u n i c a t j n g i tp m v j d e ss o m es e i s u c h 鹊g r o u ps e n ,i c e 。 m e m o r yd a t as h a 陀s e r v i c e ,陀p 畦c a 鲫d 怕c a v e r ys e r v i c e t h i sp a p e rd e v c n e s ag 怕a to fm a t e r i a it od e s c r i b i n gt h ek e yp r o c e s sa n da l g o r i t h m so fd m 色r e n t i 鼬,e lt h i sp a p e rp u t sf o n a r dt h eh a _ j n d lc o n c e p ta n di m p i e m e n t e st h e m e m o r yd a 忸s h a 陀s e i c e i nt h ei a s tc h a p e a 伽rl i s n gm a i nc l a s sd i a g r a m sa n dt h eu s e rm a i n t a j n i n a i n t e 玎a c e ,t h l sp a p e rg i v e ss o m ef _ g u 怕st os h o wt h ep e r 6 d r m a n c et e s to ft h e i m p l e m e n t a t i o n i th a s b e e np r o v e d 电0a c h i e v et h eh i g hp e b r m a n c ea n dh i a h a v a _ i a b i 盯t yob j e c t i v e s ,a ti a s tt h i sp a p e rc o nc j u d e st h ew o r k 。a n dd r o p o s e s s o m ei m d r o v e m e n ti nt h ef u t u r e k e y w o r d s :c l u s t e i o a db a i a n c e ,m i d d i e w a r e ,e j b ,j 。r a n gs e n ,e r m 1 1 引言 第一章绪论 二十一世纪是科技信息快速发展的时代,也给计算机发展创造了史无前例 的机遇。在军工,航天,航空,气象,医学等各个研究领域上,计算机发挥越 来越多的作用。与此同时人们对计算机提供的服务性能和质量要求也越来越高。 举例来说,计算机网络得到迅速发展,网络信息以几何的速度增长,能在海量 数据中找到用户所需要的信息并及时反馈给用户是当前h i t e m e t 公共服务中的 一个突出问题。 硬件方面技术人员不断利用超级计算机来提高单机的性能,硬件发展日新 月异,英特尔公司创始人戈登摩尔在4 0 年前提出的一个摩尔定律【4 】 电脑 芯片中的晶体管的数量每1 8 个月将翻一番。至今这个神话般的预测一直影响着 半导体芯片的发展,即使在这个强大的摩尔定律支持下,软件应用领域对计算 能力强的计算机的需求依然未能满足,毕竟仅仅依靠提高硬件的c p u 主频和总 线带宽来提升系统性能的作用非常有限是有限的。 而且频繁更换超级计算机以换取性能,并不一个合理的解决方案,计算机 硬件的高速发展进步也就意味着高速更换频率,这需要巨大的成本预算。 计算机应用迫切需要低成本,响应速度快,i ,0 吞吐量大,容错性能好,稳 定性可靠性都比单一计算机高的系统。 在这种情况下,集群( a u s t e r ) 技术渐渐引起了人们的注意,集群系统就 是通过软件和网络把独立的计算机连接起来成为一个统一的对外系统,系统里 面的计算机节点可以共享磁盘,存储等设备。多台计算机通过网络连接起来后 组成一个系统拓扑图,每个计算机的地位都是等同的,都可以对外提供相同的 服务。利用集群的多台计算机来分担系统的负荷,可以及时高效地满足大量并 发访问,消除单机响应处理的瓶颈。实践说明,集群技术能以低廉的成本,快 速的提高系统的性能,满足系统的需要。 总的来说集群技术有以下优势: 对外系统可靠性高。包括硬件可靠性。集群中的某一个节点硬件出现问 题,不会影响其他节点的工作。操作系统和应用程序可靠性,各个节点 运行的都是操作系统和应用程序的复制,软件层面的耦合性低,因此其 中某一软件出现异常也不会影响其他节点上运行软件。 高可伸缩性。集群系统可以随时根据系统需求在网络上添加节点或者删 浙江大学硕士学位论文 除节点。 高性能。一个设计完美的集群系统的性能应当是所有节点性能的总和。 对外透明性。集群系统暴露外面的是一个统一的服务端,整个系统的建 立和运作不需要客户端改动来提供额外的支持,对于客户端来说,集群 系统里面的节点是透明的,客户端不需要了解集群系统里面的内在运行 机制。 图l 一1 计算机发展趋势 第一个集群的产品是d a t a p o i n t 在1 9 7 7 年开发的a r c n c t 后来d e c 在8 0 年代为x 、,v m s 操作系统发布了一个垅集群,可以很好的应用于商业领 域。随着网络技术的成熟,集群计算机技术得到很大的发展和广泛的应用,图 1 1 是计算机的发展趋势。现在的集群系统按主要用途可以分为两类,高可用性 m 曲a v a i l a b i l i t y ( h a ) 集群和高性能h i 曲p e 哟衄a n c ec d m p u t i n go 口c ) 集群。高 可用性集群专注于提供可靠性的服务,系统中存在冗余的节点,当系统的某一 节点崩溃后,冗余的节点将激活并加入系统替换崩溃节点。由此可知一个高可 用性集群至少有两个节点,一个冗余的节点是另一个的备份。高可用性集群可 以消除节点失效的影响,现在软件产品有很多实现高可用性集群功能,比如 l j n u x 下的】i n u x h a 项目3 5 1 。 2 浙江大学硕士学位论文 高性能集群侧重性能上的提升,一般的做法是把客户请求的复杂的计算任 务分发到系统不同节点,通过不同节点的分工合作,高性能集群普遍适用于科 学计算。通常,高性能集群是用软件来实现并行计算,i j n u 】【下的b e o w l l l f 并 行集群就是一个很好的例子【3 5 】。 商业上已经有很多成熟的集群产品,比如m i c r 吣。置t 的w i n d o w ss e e r t * 2 0 0 3e n t e r p r i s ee d i t i o n ,支持网络负载平衡( n l b ) 群集和服务器群集,s u 公司开发出一套j a v a 可靠包( j a v aa v a i l a b m t ys u i t e ) ,把应用程序和服务集群 软件技术加进到s o l a 出e m c r 硼s es y s t 啪中,用户只要利用其中提供的开发工 具,即可轻松实现软件上的集群。 集群技术作为一门热门的技术,在全球里很多大学可开源组织设立了应用 研究项目,下面是一些研究和商业项目列表【5 】: b e o w u 忏( c a 丌- e c ha n dn a s a ) - u s a c c s ( c o m p u t i n gc e r i t r es o 矗w a r e ) - p a d e r b o r n ,g e r m a n y c o n d o r - w i s c o n s i ns t a t eu n i v e 倦i t v :u s a d q s d i s t n b u t e dq u e u l n gs y s t e m ) - f i o r i d as t a t eu n i v e r s 计y ;u s e a s y a r g o n n en a 船o n a lk i b 。u s a h p v m 一( h i g hp e r f o r m a n c e r t u a lm a c h j n e ) ,u i u c & n o wu c s b ,u s f a 卜u n i v e r s 时o fl i v e r p o o i 。u k g a r d e n s - q u e e n s i a n du n i v e r s j t yo ft b c h n o i o g y la u s t 隐a m o s | x - h e b 洲u n i v e 隋时o fj e r u s a i e m ,i s 限e l m p l ( m p if o r u m 。m p l c hi so n e a ft h ep o p u i a ri m p i e m e n t a _ t i o n s ) n a w ( n e t w o r k 0 fw o r k s t a t o n s ) b e r l ( e i e y ,u s a n l m r o d - m 0 n a s hu n i v e 惜i t v ia u s b a i i a n e t s o l v e u n j v e 惜时o ft e n n e 筠e e u s a p b s ( p o r 妇b l eb a t c hs y s t e m ) n a s aa m e sa n dl l n l u s a p v m - o a kr i d g en a 庀i o n a il a b u t k ,e m o r y ,u s a c o d i n e ( c o m p u t i n gi n d i s t r b u t e dn e t 、 o r ke n v i r o n m e n t ) g e n l a s g m b h ,g e m a n y l o a d l e v e i e r _ 旧mc o 币,u s a l s f ( l o a ds h a r i n gf a c m m - p l a 响r h lc o m p u t n g ,c a n a d a n q e ( n e t w o r kq u e u i n ge n v i r o n m e n t ) c 阳y s o f tc o r p ,u s a o p e n f r a m e - c e n t r ef o rd e v e l o p m e mo fa d v a n c e dc o m p u t i n q ,l n d i a r 、i f p c ( r e a iw o n dc o m p u t i n gp a n n e r s h i p ) 。j a p a n u n j x w a r e ( s c o s a n t ac r u zo p e r a t i o n s ,) ,u s a 【5 】 还有很多基础软件比如中间件,也开始提供集群的功能,可以预测在未来 浙江大学硕士学位论文 集群技术会大大得到推广,软件行业也会从中受益。 1 2 中间件技术简介 1 2 1 产生的背景 根据商业软件联盟和国际数据公司统计。目前,全球有1 1 0 万家信息技术 类企业,雇用员工约1 1 0 0 万人,年产值1 万亿美元、年上交税收9 0 0 0 亿美元。 就亚太地区而言,有超过3 4 万家该类企业,雇用员工4 7 0 万人,每年创造税收 1 2 0 0 亿美元【2 8 】。2 0 0 0 年至2 0 0 4 年,皿太地区信息技术产业的规模从1 8 9 0 亿 美元增加到1 9 5 0 亿美元。信息技术产业已经成为全球经济增长的一个发动机。 由于信息技术及其应用在深度和广度上的飞速发展,软件行业带来不断的 技术需求,基于网络的信息系统的规模尺度和复杂程度的剧增,下一代信息网 络的发展、0 n t o l o g y 、a g e n t 等智能技术的逐渐成熟,对信息安全、确认和验证 技术的需求日趋强烈等。【2 9 】 软件危机的主要原因系统高复杂度带来的低可维护和可复用性。如图1 2 某个系统的模型,系统不断设计模块来提供各种各样的功能,但是系统的功能 越强大,系统带来的灵活性和维护性就越复杂。如果此时用户的需求不断变更, 则可能会因为某一次需求的不能满足,而导致整个系统设计失败。 1 2 2 中间件技术 图1 2 某系统的架构设计 世界著名的咨询机构1 1 l es t a n d i s hg r o u p 分析了1 0 0 个关键应用系统中的 4 浙江大学硕士学位论文 业务、应用逻辑程序及基础程序所占的比例;其中基础程序占了7 0 ,而业务 逻辑程序和应用逻辑程序仅占总程序量的3 0 【2 7 】,应用软件的基础软件的开 发是一件耗时繁琐的工作,如果每次都花大量的时间和经历在基础软件开发中 既浪费了时间也浪费精力,丽且相应也增加了巨大的软件风险。 因此有必要开发处于中间位置的这一部分基础软件,通过提供各类一定的 标准公共服务,对上层的应用运行、开发、部署、管理等全生命周期的支持。 这也就是中间件提出的初衷。据统计,若使用标准商业中间件可缩短开发周期 5 0 一7 5 ,节省2 5 一6 0 的应用开发费用【2 7 】。 中间件是继操作系统和数据库管理系统之后随着网络的兴起和发展而新兴 的一种基础软件于操作系统【2 5 】,数据库管理系统一起被称为基础系统软件领 域的”三架马车”f 2 6 1 。 中间件目前还处于发展阶段而且所涵盖的范围十分广泛,因此尚未有精确 的定义,国际数据公司( c ) 指出中间件是一种独立的系统软件或服务程序, 分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于服务器 的操作系统之上,管理计算资源和网络通信【2 6 l 。按i n t e m e t 2m i d d l e w a 陀 “t i a t i v e 所述,中间件是位于网络和应用程序层之间的应用,可以提供标识, 认证,授权,目录和安全的服务【8 】。总体而言,中间件在操作系统和应用软件 之间起一个承上启下的作用,中问件在操作系统、数据库和网络上层,应用软 件的下层( 如下图) ,支撑应用软件开发运行的产品软件的环境,帮助用户灵活、 高效地开发和集成复杂的应用软件。通过标准化的协同合作,中间件可以为网 络开发应用程序提供便利,因为在当今因特网,如果应用程序都要自己提供这 种服务,会导致研发人员不得不注重各种繁琐的细节,延长开发周期。 图l _ 3 中间件架构的位置 中间件按照功能上分,可以分为以下几类: 基础中间件【2 6 】:对象中间件、消息中间件、事务中间件、p 0 n a ls e r v e r 、 w 曲s e r v e r 等; 服务中间件:流程控制、集成共享、数据访问、安全控制、数据展示、数 5 浙江大学硕士学位论文 据分析、网格服务、p 2 p 中间件等。 行业中间件:j 2 m e 、机顶盒中间件、移动中间件、电子商务中间件、电子 政务中间件、制造业信息化中间件、金融中间件、证券中间件等。 1 2 3j n n g 中间件服务器 中间件是大型项目的必需支撑软件,曾被称为软件业的“核动力”,誉 为一个国家软件业的“国之利器”。 从7 0 年代中间件出现至今,中间件软件的收入一直在增加。2 0 0 5 年,国内 中间件产品市场规模达到8 7 5 亿元,比2 0 0 4 年同期增长2 3 9 ,增长势头明显。 近几年来中国中间件市场的增长率呈不断上升之势,表明中国中间件软件市场 正在快速成长,中间件产业正处于规模发展阶段【3 0 1 。据预测国内中问件市场 在未来的几年将会得到更多的发展和机遇。 在这背景下,钱塘中间件平台软件( j t 柚gs e f v e r ) 是2 0 0 4 年浙江省科技厅 重大科技攻关项目支持下的研制成果。j t 觚g s c r v 盱的目标是建立一个完全具有 自主知识产权的轻量级j 2 e e 应用服务器,在此之上提供数据访问、流程控制等 各种增值服务。j gs c e r 整个项目从2 0 0 4 年1 0 月开始启动,作者参与了 w b 容器的设计开发,于2 0 0 5 年1 0 月完成第一个版本。第二个版本的测试结 果显示:系统运行稳定,可提供7 x 2 4 小时不问断服务:在e j b 服务中,玎a z s e r v e r 表现优异的性能,5 0 0 个并发性能相当于w 曲l o g i c 性能的9 5 ;j m s 服 务比w 曲l d g i c 提高3 0 。 6 浙江大学硕士学位论文 1 3 刚b 容器 1 3 1e j b 简介 图1 - 4 软件设计模型 如图卜4 ,在互联网时代,随着企业应用越做越大,软件的设计也带来越来 越多的问题。比如,如何解决地域上分布的部门之间业务流程的交互? 如何解 决企业各部门交互过程中存在的底层操作系统平台、数据库平台及应用平台之 间的差异? 如何实现业务流程在部门之间的灵活部署和迁移? j 2 e e 规范【5 】提出多层的概念来简化系统各部分的耦合性,通过系统各层的 分工合作,来为系统提供了良好的灵活性和扩展性,以方便开发、维护和升级。 过去的客户端,服务端两层结构中,客户端程序负责显示界面、接受用户输入、 实现业务逻辑、数据访问、返回用户数据等。两层结构适用于小规模、用户较 少、单一数据库,而且升级扩展和维护都非常困难,因为界面逻辑和业务逻辑 混和在一起难以重用。 客户层。客户运行的浏览器,负责检查用户数据并显示返回信息。 w 曲层。负责接受客户请求弗返回响应。w 曲层组件有j s p ,s e l e t s 。 业务层。负责业务逻辑,通常由彤b ( e n t e r p r i s ej a v a b e a n s ) 处理。 企业信息系统层。运行企业信息系统软件,包括例如数据库等企业基础设 施系统。 7 浙江大学硕士学位论文 图1 - 5j 2 e e 分层概念 在业务逻辑层里,主张用e j b 组件封装了客户程序与服务器的交互过程, 完成商业逻辑、商业规则和工作流程。 e j b 最早出现在1 9 9 7 年起草的规范中,1 9 9 8 年三月正式发布1 o 版本,是 s u n 公司推出的基于j a v a 的服务器端构件规范j 2 e e 的一部分。自j 2 e e 推出 e j b 2 o 版本后,得到了广泛的发展,已经成为应用服务器端的标准技术。 j 2 e e 规范中定义了e j b 六种角色 5 :e j b 开发者,应用组装者,部署者, e j b 服务器提供者,e j b 容器提供者,系统管理员。( 如图卜6 ) e j b 服务跫供君 图1 - 6 e j b 中的六种角色 尽管e j b 体系结构复杂,但是由于e j b 规范里面标准化了e j b 的接口,规 范里面的六个角色各自分工合作,由e j b 容器能够管理线程、安全性、事务等 基础设施,开发人员也不需要解决诸如处理网络连接和服务等问题,简化应用 开发者的很多工作,开发人员可以把精力放在业务逻辑上。真正使得j a v a 程序 的一次编写、到处运行( w r i t eo n c e ,r u na n y w h e r e ) 的特性向前迈进了一大步。 e j b 组件分为会话b e a n ( s e s s i o nb e a n ) 、消息驱动b e a n ( m e s s a g e d r i v e n b e a n ) 、和实体b e a n ( e n t i t y b e a n ) 三种 5 ,其中会话b e a n 和实体b e a n 是e j b 1 o 规范提出,消息驱动b e a n 在e j b2 0 规范中提出。 会话b e a n 封装了客户程序与服务器的交互过程,完成商业逻辑、商业规则 和工作流程。会话b e a n 通常执行的是一个动作,可以是计算结果,访问数据库, 调用其他e j b 等等。它可分为有状态的会话b e a n 和无状态的会话b e a n 。有状 8 浙江大学硕士学位论文 态的会话b e a n 保存客户的状态信息,后面的调用会受前面调用的影响,每个实 例对应不同的调用。而无状态的会话b e a n 不保存状态,每个实例适用任意次连 接。 实体b e a n 的意思更像是一个系统名词 1 ,它代表的是数据库上一条记录, 由它来负责数据的持久化。比如一条用户信息,一条订单记录,一样物体信息, 都可以是实体b e a n ,同样实体b e a n 之间也可以维持着数据库中表之问一样的 关系。实体b e a n 中又分为b e a n 管理持久化( b e a n l a n a g e dp e r s i s t e n t ,b m p ) 和容器管理持久化( c o n t a i n e rm a n a g e dp e r s i s t e n t ,c 咿) 两种,b m p 是由b e a n 的提供者来管理持久化,b e a n 中必须插入访问数据库的代码;c i p 则由容器来 管理持久化,数据库访问的操作由容器来实现。状态b e a n 通常会调用实体b e a n 来实现商务逻辑。 消息驱动b e a n 。消息驱动b e a n 和状态b e a n 很相似,因为结果都是执行一 个动作 1 。消息驱动b e a n 是设计用来专门处理基于消息请求的组件,并且整 合了j m s ,为需要异步消息支持的组件开发者提供了一种简化的解决方案:客 户可以在同一个强健的、基于组件的基础结构中处理这些消息。消息驱动b e a n 并不是由客户端直接调用的,但是客户端可以通过发送消息来触发消息驱动 b e a n 。当消息到达后,容器会调用消息驱动b e a n 的方法,来处理客户发送过来 的消息。 1 3 2e j b 容器的功能 e j b 容器是应用服务器的核心实现,是实现了e j b 规范的e j b 开发、部署 和运行时管理的环境。e j b 通过容器的协议或方法和其他的叮b 或标准服务组 件交互,并在交互过程中插入容器作为中介的结构,使用户能够根据组件部署 时的配置描述文件,为组件透明地提供各种服务,如分布式远程方法调用、声 明性事务管理、声明性访问控制检测、环境资源引用、组件实例池策略、缓存 策略、状态管理等。 e j b 服务器提供e j b 容器需要的应用服务。 9 浙江大学硕士学位论文 图1 - 7e i b 和容器关系。 1 4 文章研究内容和目标 随着e j b 组件技术的广泛应用,单一e j b 服务器的处理能力不能满足多并 发请求处理的问题日益暴露在开发者面前,另外单一服务器e j b 服务器也不能 提供的高稳定性,开发一个h b 的集群平台被提到日程上来。论文主要针对 j 1 h g 中间件应用服务器,研究实现一个满足负载平衡机制的、可扩展的、高性 能高可用的玎b 应用集群平台。 固 ,e j b 容器 固 e m 容器 i 固一 e j b 容器 客户端 图1 - 8 脚e j b 集群图例 e j b 集群 论文的研究内容和组织结构具体如下: 1 ) 介绍集群技术的分类,具体分析集中集群技术的负载平衡算法,分析 集群中失效转移的功能和要处理的细节,提出容错处理中对象复制的 核心算法思想。最后分析当今流行开源应用服务器j b o s s 在e j b 集群 的方面实现的核心技术。( 第二章) 2 ) 首先述说了勘b 相关技术,接着简单分析j t h g 服务器的功能,根据 浙江大学硕士学位论文 m n ge j b 架构说明架构里面的部分模块的结构和功能。其中重点分析 集群相关的脚b 部署和调用关键过程,为j 1 h gd b 容器盼集群做好 准备。( 第三章) 3 ) 根据j 胁g 彤b 容器的设计,针对各种负载平衡的优缺点最后选择动 态负载平衡算法,对三种不同负载平衡点的放置点,提出客户端实现 负载平衡的优势和算法思想,接着在服务端提出基于i o c 的集群系统 的整体架构,并详细论述架构中的层次关系,一一设计每层的服务关 键过程和算法。( 第四章) 4 ) 系统的性能测试部分。首先介绍集群的主要实现类图,提出j g 的集 群多域概念和管理晃面。接着提出系统的测试内容和模型,并根据系 统的性能测试结果验证e j b 集群系统可以达到高性能高可用目标。( 第 五章) 5 ) 最后对本文的研究进行总结,并提出不足之处和以后需要努力和改进 的地方。( 第六章) 1 5 本章总结 本章介绍了集群技术的特点和优势,简要介绍软件集群商业产品和研究项 目。同时也介绍了中间件技术定义、特点及符合j 2 e e 规范的j g 中间件应用 服务器及口b 容器。最后,提出论文的研究内容及目标,介绍论文的组织结构。 1 l 塑望查堂堡主兰堡丝壅 一 第二章集群技术分析 集群技术中的负载平衡算法很大程度上影响到系统的性能,而容错处理则 关系到可靠的服务,在这一章,我们主要提出当前集群中负载平衡的普遍算法 思想,还有容错复制的两种策略,通过分析它们的算法来总结各自的特点优劣, 并借以j b o s s 的例子来说明算法的适用范围。首先,我们会对集群的分类有一 个简单的介绍。 2 1 集群的分类 根据集群系统的不同特征可以有多种分类方法,在关注的目标上可以分为 两种:高性能科学群集和高可用性群集【3 5 】。 高性能科学集群( 蛳g hp e f f o m 壮c e ) 是以解决复杂的科学计算问题为目的 的集群系统。高性能科学集群涉及为群集开发并行编程应用程序,以解决复杂 的科学问题,是并行计算的基础。计算机集群其处理能力与真正超级并行机相 等,并且具有优良的性价比。 高可用集群( h i 曲a v a i l a b i l i t y ) 致力于提供高度可靠的服务,高可用集群 通过冗余镜像备份保证集群整体服务的高可用。如果高可用性群集中的某个节 点发生了故障,那么将由另外的节点代替它,由于其他节点是崩溃节点的镜像, 因此替换节点可以完全接管其身份,而且这个替换动作对外是透明的。客户端 完全不需要理解其中细节即可享受高可用集群提供的服务。 实际运用中,这两种集群的技术可能是混合在一起的。 2 2 负载平衡( i o a db a i a n c e ) 负载平衡是实现集群的关键核心技术之一,负载平衡在集群中主要是负责 请求调度的工作。负载平衡可以改进系统的整体性能,合适负载平衡策略通过 请求的重新定向,把请求分配到负载量相对比较小的结点,能够在实现集群系 统中各节点接近均衡运作,从而保证整个集群系统能高效的提供服务。 负载平衡技术负责请求的分配,以w e b 服务为例,集群系统通过负载平衡 技术可以处理爆炸般增长的因特网用户访问需求是系统。当用户请求发往负载 平衡控制机后,负载平衡控制通过一种策略把用户得请求转移到负载够轻的计 算机来处理请求,处理完毕后再返回用户。当并发用户数量多起来时,由于整 个系统得到多台计算机的分担,性能上可以得到数倍的提升。 浙江大学硕士学位论文 负载平衡可以做到以下方面: 提高整个系统吞吐量和并发性能 消除网络瓶颈,提高网络的灵活性和可靠性 解决网络拥塞问题,服务就近提供,实现地理位置无关性【3 7 】 为用户提供更好的访问质量 提高服务器响应速度 提高服务器及其他资源的利用效率 2 2 1 负载平衡的分类 按照不同的需要,负载平衡的分类也不同。 硬件负载平衡和软件负载平衡【柏】 硬件负载平衡。在客户端和服务端之间安装一个硬件设备由它来负载客 户端和服务端的交互,比较普遍的做法是用网关或专门的负载均衡器来实 现负载平衡。 h t t p 请求 口口口 节点a 节点b节点c 图2 ,1 d n s 负载平衡例子 如图2 l ,这是一个w e b 访问应用例子,客户端每一个请求都经由负载平衡 器处理,负载平衡器用地址转换技术,将一个外部口地址映射为多个内部 i p 地址,对每次t c p 连接请求动态使用其中一个内部地址,达到负载均衡 的目的。 因为负载平衡器独立于每个节点,而且负载的策略也是由硬件来实现, 所以不占用集群系统的资源,所以在功能和应用上优于软件负载平衡,但 鬟豢 浙江大学硕士学位论文 是成本昂贵,而且硬件一旦出现问题会严重影响整个集群系统的运作,甚 至于令整个系统崩溃。 软件负载平衡。软件负载平衡是指在一台或多台服务器相应的操作系统上 安装一个或多个附加软件,由附加软件来实现负载均衡。 本地负载平衡和全局负载平衡【柏】 这是从地理结构对负载平衡进行分类划分。前一种负载均衡是指对本地 的服务器群做负载均衡,全局负载均衡是指在不同地理位置、有不同网络 结构的服务器群间做负载均衡。 2 2 2 负载平衡的策略 负载平衡策略主要分为静态和动态两种【1 4 】。静态和动态的区别是,静态负 载平衡不收集客户端和服务端的信息,每次请求过来都按照固定的算法来分配 给节点,而动态负载平衡策略需要额外收集信息和维持负载的状态。显然而见, 静态负载平衡的好处时不用消耗资源在负载的动态计算中,而动态负载平衡则 能更接近的实现更公平的负载平衡。 在动态负载平衡可以按照客户信息动态负载平衡( c l i e n t i n f o 彻a t i o n a w a r e i l 髂s ) 和服务端信息动态负载平衡( s e r v e ri n f o m a i o n a w 盯c n e s s ) 细分下去【1 4 】。客户信息动态负载平衡是指负载平衡策略考虑的是客户端方面 的信息,比如是客户请求的i p 地址还有端口,根据客户端请求过来的基本信息 来决定集群系统中响应的节点。对应服务端信息动态负载平衡( s e c r i n f o m a i o n - a w a r e s s ) 则主要搜集服务端的节点的信息来决定负载平衡策略,这 些信息可是是当前和以前的负载信息,网络延时,可靠性等。图2 2 是负载平 衡算法的划分。 图2 - 2 负载平衡算法的划分 1 4 i p 选择算法 端口选择算法 最少连接算法 权重轮询算法 浙江大学硕士学位论文 现在常用的算法是轮循算法,基于d n s 算法,随机算法,权重轮询算法, 最少连接数均衡算法,最快反应算法,处理能力均衡算法【4 0 】等等。下面是对 这些算法的简单介绍: 2 2 2 1 轮循算法( r o u n d b i n ) 每次网络请求都按照公平的待遇来分配到各个节点,每个节点轮流来完成 客户端发送过来的请求,比如节点有n 个则请求是从1 到n 分配,当请求有n k 个时,每个节点都能获得相当平均的k 个请求【删。对于轮循法每次的选择, 取决有用的信息只是上次选择节点,因此通常会用个循环的数组,再用指针 指向上次选择的节点就能实现该算法。循环法比较适合于群集中的服务器节点 具有相同处理能力的情况;否则如果每个服务器节点都公平对待的话,一些服 务器节点收到的请求可能会超过它们的处理能力,而其他高处理能力服务器节 点却富有余力。 2 2 2 2 基于d n s 算法 这个算法常用于i n t 锄c t 的h n p 服务中,客户端一般通过域名名字服务 ( d o m a i nn a m es e r v i c e ,d n s ) 来获取服务端的口地址,可以在d n s 的这一层 作出负载平衡的决定。比如d n s 负载均衡的一大缺点是:一旦某个服务器出现 故障,即使及时修改了d n s 设置,还是要等待足够的时间( 因为d n s - 需要一 定的刷新时间) 才能发挥作用,在此期间,有些客户端用户访问仍旧将发送故 障服务器上。 2 2 2 3 随机算法( r a n d o m ) 既不考虑客户端的来源也不考虑服务端的节点的性能和负荷,每次外部过 来的请求集群系统里面选择的处理节点是随机的。这个算法是最简单的一种, 很少应用在实际情况上。 2 2 2 4 权重轮循( w e i g h t e dr o u n dr o b i n )算法 根据服务器节点不同的计算能力,分配对应的权重。服务器节点根据不同 的权重分别接受对应比例的客户请求【4 0 】。比如有三个服务器a ,b ,c ,对应 权重是2 ,3 ,5 。则服务器节点a 接受2 0 客户请求,b 接受3 0 请求,c 接 浙江大学硕士学位论文 受5 0 请求。 2 2 2 5 最少连接数均衡( l e a 蚍c o n n e c t i o n ) 算法 客户端在每个请求逗留在服务端的时间可能比较长,如果单纯的按照轮循 或者随机算法分配任务并不公平,因为客户端的每个请求是不一样的,有可能 有节点会一直分配到持续连接的请求,最小连接数均衡算法在做判断时考虑当 前每个节点的连接数,选择连接数最少的节点来处理下一个请求。纯粹的最小 连接数均衡算法把每个节点都等同处理了,对

温馨提示

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

评论

0/150

提交评论