(计算机应用技术专业论文)基于j2ee架构网管平台集群系统的研究与实现.pdf_第1页
(计算机应用技术专业论文)基于j2ee架构网管平台集群系统的研究与实现.pdf_第2页
(计算机应用技术专业论文)基于j2ee架构网管平台集群系统的研究与实现.pdf_第3页
(计算机应用技术专业论文)基于j2ee架构网管平台集群系统的研究与实现.pdf_第4页
(计算机应用技术专业论文)基于j2ee架构网管平台集群系统的研究与实现.pdf_第5页
已阅读5页,还剩79页未读 继续免费阅读

(计算机应用技术专业论文)基于j2ee架构网管平台集群系统的研究与实现.pdf.pdf 免费下载

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

文档简介

南京航空航天大学硕士学位论文 摘要 论文主要研究了j 2 e e 体系结构中的集群技术实现。集群技术是实现企业级 系统高可用性和稳定性的一种有效解决方案,j 2 e e 中集群功能的实现是众多国 内外服务器开发商研究的重点。目前国内自主研发的j 2 e e 服务器在技术方面尚 未成熟,对于其中集群功能的研究实现仍处于起步阶段。本文的研究目标就是 针对j 2 e e 架构自主的实现集群功能。论文在对j 2 e e 架构深入分析的基础上, 结合技术的先进性和实用性给出了集群功能的设计实现,其中包括了当前j a v a 开发的前沿技术和理念,并使用了在客户端提供集群逻辑以提高集群性能的没 计方法,可以为国内j 2 e e 服务器自主研究开发提供参考。 论文首先介绍了集群技术的主要概念和特征以及j 2 e e 平台相关技术背景, 然后主要围绕一个基于j 2 e e 的4 层w e b 应用网管系统的集群功能实现展开。论 文分析了该网管系统的架构提出集群功能需求和设计实现目标,然后主要论 述了该网管系统的网络服务层和应用服务层的集群核心功能负载平衡和失败转 发的详细设计方案与实现技术。网络服务层的集群实现主要针对h t t p 请求进行 集群,应用服务层集群实现主要针对j 2 e e 服务器中对e j b 容器进行集群,论文 结合静态类设计图和动态顺序图详细论述r 集群功能的设计原理和具体实现。 关键词:j 2 e e :e j - b i 集群;服务器:高可用性 基于j 2 e e 架构网管平台集群系统的研究与实现 a b s t r a c t t h i st h e s i sm a i n l yf o c u s e do i lt h ec l u s t e rt e c hr e s e a r c hi nj 2 e ea r c h i t e c t u r e c l u s t e rt e c h n o l o g yi sp r o v e dt ob eah i g h l ys t a b l e ,a p p l i c a b l ea n do n eo ft h em o s t e f f e c t i v es o l u t i o n sf o r i m p l e m e n t a t i o n a t e n t e r p r i s el e v e l m a n y o v e r s e as e r v e r d e v e l o p m e n tc o m p a n i e sh a v ef o c u s e d t h e i rr e s e a r c ho nv a r i o u sm e t h o d st oi m p l e m e n t t h ec l u s m r t e c h u s i n gj 2 e e c o n c u r r e n t l y ,t h ed o m e s t i cr e s e a r c h a n d d e v e l o p m e n t o f j 2 e es e r v e ri ss t i l li np r o g r e s s ,t h ei m p l e m e n t a t i o no fc l u s t e rt e e hh a se v e nj u s t s t a r t e d t h i st h e s i sm a i n l yd e a l sw i t ht h i st o p i c b a s e do nt h ei n - d e p t ha n a l y s i so f j 2 e e ,i tp r e s e n t sac l u s t e rt e c hd e s i g nc o m b i n i n gb o t ht h ea d v a n c e dt e c h n o l o g ya n d r e a l i z a b l et e c h n o l o g y i ti n c l u d e sn o to n l ys t a t e o f - a r tt e c h n o l o g yb u ta l s ot h en o t i o n o fj a v ad e v e l o p m e n t b yu s i n gd e s i g ns c h e m eo fr e a l i z a t i o nc l u s t e rl o g i ca tc l i e n t s i d e ,i th a ss u c c e s s f u l l ye n h a n c e dt h ep e r f o r m a n c eo ft h ec l u s t e r 。i nt h ea u t h o r s o p i n i o n i t j sh o p e dt h a tt h i st h e s i sc a l lb er e f e r r e df o rd o m e s t i cr & dj 2 e es e r v e t h i st h e s i ss t a r t sw i t ha ni n t r o d u c t i o no fc l u s t e rt e c ha n dj 2 e ei ti sf o l l o w e d w i t had i s c u s s i o no faj 2 e eb a s e d ,4l a y e rw e b a p p l i c a b l en e t w o r ka d m i n i s t r a t i o n s y s t e mc l u s t e rt e c hi m p l e m e n t a t i o n i n t h i sp a r to f t h e s i s ,i tg i v e sad e t a i l e ds t r u c t u r e a n a l y s i so f t h en e t w o r ka d m i n i s t r a t i o ns y s t e m t h en e e da n d a i mo f t h ed e s i g ni sa l s o p r e s e n t e d i tt h e nd i s c u s s e dt h ed e s i g nr e a l i z a t i o na n dc o r et e c h n i q u e sa b o u tl o a d b a l a n c ea n df a i l o v e ro fc l u s t e r sn e ts e r v e rt i e ra n da p p l i c a t i o ns e r v e rt i e ro ft h e n e t w o r ka d m i n i s t r a t i o ns y s t e mt h ec l u s t e rr e a l i z a t i o no fn e ts e r v e rt i e re m p h a s i z e s o nh t 仲r e q u e s tc l u s t e r i n gw h i l ec l u s t e rr e a l i z a t i o no fa p p l i c a t i o ns e r v e rt i e r e m p h a s i z e s o ne j bc o n t a i n e r c l u s t e r i n gi nj 2 e e s e r v e r t oc l a r i f yt h ei m p l e m e n t a t i o n i nd e t a i l s ,i ti sc l a s s i f i e di n3c a t e g o r i e s :t h e o r y , s t a t i cd e s i g nc h a r ta n dd y n a m i c f l o wc h a r t k e yw o r d s :j 2 e e ;e j b ;c l u s t e r ;s e r v e r :h i g ha v a i l a b i l i t y 承诺书 本人郑重声明:所呈交的学位论文,是本人在导师指导“f ,独立 进行研究工作所取得的成果。尽我所知,除文中已经注明引用的内容 外,本学位论文的研究成果不包含任何他人享有著作权的内容。对本 论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明 确方式标明。 本人授权南京航空航天大学可以有权保留送交论文的复印件,允 许论文被查阅和借阅,可以将学位论文的全部或部分内容编入有关数 据库进行检索,可以采用影印、缩印或其他复制手段保存论文。 作者签名: 日期: 牲务弛 南京航空航天大学硕士学位论文 1 1 引言 第一章绪论 对现代企业而言,利用计算机系统来提供及时可靠的信息和服务是必不可 少的:然而。计算机硬件和软件都不可避免的会产生故障,从而导致整个服务 的终止,网络的瘫痪等而给企业带来较大的损失。因此,企业的关键应用必须 有适当的措施来确保系统提供7 x 2 4 不间断的服务,以避免单点失效造成系统崩 溃的情况,保证系统长时间可用,这就对企业系统提出了高可用性的要求。信 息系统的可用性通常在两种情况下会受到影响,一种是系统崩溃、错误操作和 管理引起的异常服务失败,另一种是由于系统维护和升级,需要安装新的硬件 或软件而正常关机。具有高可用性的系统必须能在两种情况下继续提供不问断 的系统服务。通常的系统没有容错功能,也没有特殊的软件来做出错处理,系 统的错误检查和恢复完全依靠系统管理员来完成,而高可用性系统可以监测系 统的运行状态,在一台服务器出现故障的情况下,自动把设定的服务转到另一 台服务器上。随着网络技术的进步以及处理器性能的提高,越来越多的人开始 使用相对廉价的以太网把相对便宜的服务器,工作站连接起来组成集群( c l u s t e r l 使用,从而以较少的代价获得较高的性能,因而集群技术已成为实现高可用性 系统的一种有效方式。p 1 集群系统技术的一直在不断发展和成熟。一个集群包含多台拥有共享数据 存储空间的服务器,各服务器通过内部局域网相互通信。集群技术的出发点是 保证高可用性、可伸缩性、出错恢复。集群一组协同和并行的服务能够使网络 客户连接到一个有多个节点组成的服务器系统上,这样系统运行的可靠性和稳 定性就能保证,并能有效利用系统资源以提高系统运行效率从而大大提高了系 统的可用性。当系统中某一节点的服务发生故障时,集群系统就会将运行在发 生故障节点上的任务分散到其他正常节点上,继续完成其工作。本文将就集群技 术及其实现展开讨论。 基于j 2 e e 架构网管平台集群系统的研究与实现 1 2 集群技术 1 2 1 概述 集群技术可队定义为一组相互独立的服务器在网络中表现为单一的系统并 以单一系统的模式加以管理。此单一系统为客户工作站提供高可靠性的服务。 大多数模式下,集群内任一系统上运行的服务可被所有的网络客户所使用。 c l u s t e r 必须可以协调管理各分离的组件的错误和失败,并可透明地向c l u s t e r 中加入组件。一个c l u s t e r 包含多台( 至少二台) 拥有共享数据存储空间的服务 器。任何一台服务器运行一个应用时,应用数据被存储在共享的数据空间内。 每台服务器的操作系统和应用程序文件存储在其各自的本地存储空间上。 c l u s t e r 内各节点服务器通过一内部局域网相互通讯。当一台节点服务器发生故 障时,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管。当 一个应用服务发生故障时,应用服务将被重新启动或集群是对客户提供统一服 务的松散连接的一组服务器。使用部署在集群中的服务的客户通常感觉不到他 们的请求是通过集群来实现的,并且客户不能由哪一台服务器来处理它的请求。 在集群中的服务器可能使用一台或多台计算机,每台计算机有一个或多个处理 器。 根据所要完成地任务的不同,集群通常分为以下几种类型: 1 ) 科学计算集群 主要用于进行大规模数值计算,解决复杂的科学问题。 在这种集群上运行的是专门开发的并行应用程序,它可以把一个问题的数 据分布到多台计算机上,利用这些计算机的共同资源来完成计算任务,从而可 以解决单机不能胜任的工作( 如问题规模太大,单机计算速度太慢) 。 这种集群主要应用在需要大规模数值计算的环境中,如天气预报、石油勘 探与油藏模拟、分子模拟、生物计算等。这些应用通常在并行通讯环境中开发。 2 ) 高可用集群 主要功能就是利用集群系统的容错性对外提供7 x 2 4 小时不问断的服务,如 高可用的文件服务器、数据库服务器等关键应用。 3 ) 负载均衡集群 南京航空航天大学硕士学位论文 使任务可以在集群中尽可能平均地分摊到不同地计算机进行处理,充分利 刚集群地处理能力,提高对任务地处理效率。 由于完成的任务不同,负载均衡集群又可进一步分类,如批处理型与网络 流量型。 4 ) 网络负载均衡集群 该集群主要面向网络服务。随i n t e m e t 的普及与发展,i n t e m e t 服务器的数量 在不断增加,其中一些服务器经常需要处理大量用户的请求,如h t t p 、m a i l p o p 3 服务,当用户的请求超过系统的响应能力时,系统响应速度就会变慢甚至不能 正常处理,这时就需要对服务器进行升级来满足需要。直接的解决办法是使用 更高性能的服务器系统,这种方式的费用较高而且可扩展性能较差。 在实际应用中几种集群类型可能会混合使用,以提供更加高效稳定的服务。 如在一个实用的网络流量负载均衡集群中,就会包含高可用的网络文件系统、 高可用的网络服务。当前从科学计算到网络服务、事务处理,集群的应用范围 在不断的扩大。使用集群有下面一些优点: i ) 成本低 集群都是将普通p c 工作站、工作站或服务器通过某种方式连接起来构成的 多机系统,通常的连接方式是采用网络适配器和网络集线器交换机,这种集群 与性能相当的服务器相比价格通常便宣很多。 2 ) 可用性好 集群系统具有良好的可用性,能够在集群的某部分资源出故障的情况下继 续为用户提供持续的服务。由于集群内各节点都是独立的计算机,某些部分的 故障不会影响其它计算机的正常工作,集群系统的服务可以保持,从而可使故 障造成的损失最小化。同样的服务可以由多个服务实体提供。如果一个服务实 体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出错的 服务实体恢复到另一个服务实体的功能增强了应用的可用性。 3 ) 可扩展性好 集群系统有良好的可扩展性,只需很少的配置工作就可以方便地向集群中 加入或删除工作节点。当现有集群不能满足需求时,一个简单地方法就是在集 群中增加新的服务器来扩充集群地处理能力或增加新的功能。 4 ) 利用率高 集群系统提供受载平衡,它能够通过监视集群中地实际节点地负载情况并 基于j 2 e e 架构网管平台集群系统的研究与实现 动态地进行调度,并最大程度地利用集群中地一切资源。 1 2 2 主要特征 从前面的介绍可知实现高可用性系统必须保证系统的稳定性和可靠性,冈 而使用集群技术实现的高可用性系统都具有负载平衡和失败转发两个主要特 征。 ( 1 ) 负载平衡 负载平衡是指在大型应用中海量客户交易下,能提供一种透明机制将客户 请求负载分布到多个计算节点上,避免单节点计算造成的系统瓶颈。 常见的负载平衡选择策略包括随机法、轮转法、加权轮转法咀及带会话亲 和度的加权轮转法等等。这里对常见的平衡选择策略作一些简单描述,为了方 便描述,假设对每个参与集群的成员容器都有一个唯一编号l ,2 ,3 ,n 。 随机法策略的含义是,在进行成员节点选择的时候,根据一种随机函数生 成机制产生从1 到n 之间的一个数,编号为该数的容器就是选定节点。如果随 机函数的随机序列产生具有足够的随机度,按照随机分布的概率特定,编号从1 到n 的所有容器都能在随机时刻被选中成为服务容器,从而系统在一定时间段 过后,总体负载能基本达到平均分布在每个容器上。 轮转法策略的含义是,从容器1 开始,顺序选择下一个编号的容器来提供 服务,当选择容器编号达到集群中最大编号n 时,选择重新从1 号容器开始, 这样所有容器形成了一个环,该选择过程如此循环。这种选择策略总是不遗漏 的顺序选择,从负载上来说,对容器k 而言,它的负载总是比刚剐选择的容器 k l 轻( 从请求处理数而言) ,当请求到来,它具有比k - 1 的容器更大的优先权, 这反映了负载平衡的基本思想,即让轻负载的容器接受请求。 加权轮转法策略是轮转法的一种扩展,在原来轮转的基础上,加入了优先 级的概念。加权轮转法策略除了对系统中的容器进行编号,还分别对每个容器 赋予了一个权值,也就是优先级别。系统中所有的容器都按照优先级权值进行 分组,同样优先级的容器顺序构成一个相同优先级的队列,当进行选择的时候, 先找到优先级最高的组,对其中所有容器构成的队列使用轮转法选择,选定容 器权值递减,放到下一优先级组的队列尾部,参与下次选择。 带会话亲和度的加权轮转法是加权轮转法的进一步扩展,它表示在选择的 南京航空航天大学硕士学位论文 时候客户可以强制指定某个容器提供服务,只有在该容器不可用的时候才采用 加权轮转法选择其他容器来处理客户请求。 轮转法和随机法相比,需要额外记录上次选择的位置,以便知道下一个容 器编号:而加权轮转法不仅对每个优先级都要记录上次选择的位置,还必须考 虑特定容器一次响应完成后,容器优先级权值可能需要回复到一个较高级别。 而带会话亲和度的加权轮转法策略需要更多精力来识别请求是否属于指定服务 容器的请求。还需要考虑重试以便确认容器不可用,这里涉及到复杂的可用性 判别问题。在一般的系统重,轮转算法已经能够达到大部分的负载平衡需要, 而在系统由多种不同性能机器组成的操作环境中,性能较高的机器应该能负担 更多分额的系统负载,这时就需要能够指定选择优先级权值,使用加权轮转算 法。 ( 2 ) 失败转发 失败转发是指由于某种原因,执行某个任务的资源出现故障,另一服务实 体中执行同一任务的资源接着完成任务。这种由于一个实体中的资源不能工作, 另一个实体中的资源透明的继续完成任务的过程。 1 3 课题研究内容 本文的主要研究内容是基于j 2 e e 的分布式系统集群技术的实现。从一开始 选题时,考虑的比较多的就是课题必须具有实用性价值,并且要符合当前技术 发展的需要,因而将重点放在了企业级分布式系统开发上面,目标是如何实现 企业级分布式系统的集群技术。当前主流的分布式开发标准主要有三种,分别 是m i e r o s o f t 的n e t 、o m g 的c o r b r a 、以及s u n 公司提出的j 2 e e 标准。之所以 选择j 2 e e 作为集群功能实现的研究对象,是考虑到j 2 e e 具有跨平台、功能强 大、并且应用和配置灵活等诸多的优点,后面的章节将会对j 2 e e 技术做更加详 细的介绍。 本课题的实现目标是在j 2 e e 系统框架中集成集群功能。j 2 e e 体系结构为多 层结构,在课题研究阶段,随着对集群技术和j 2 e e 技术的不断深入学习和理解, 逐渐的将研究重点放在了j 2 e e 系统核心层次网络服务层和应用服务层。网络服 务层主要提供对h t t p 请求的响应,也即通常所说的w e b 服务器层;应用服务层 是商业逻辑层,主要用玎b 组件技术对逻辑运算提供封装。因而,课题实现的 基于j 2 e e 架构网管平台集群系统的研究与实现 目标就集中在如何实现这两个层次的集群功能。因为这两个层次的功能差别比 较大,所以在实现集群功能时必须分别加以讨论。 现在一些主流的j 2 e e 应用服务器产品如i b m 的w e b s p h e r e 、b e a 的 w e b l o g i c 已经集成了集群功能,并且功能在不断变强,这也显示对集群技术的 研究在日益的深入和成熟。但是,由于集群功能本身的复杂性,很少有开放源 码的容器实现支持集群功能,目前比较具有参考价值的只有开源的j b o s s 服务器。 国内中间件公司在研发时没有可借鉴的参考实现,而商品化的j 2 e e 产品的内部 集群实现,也是不透明的,所以,作为国内中间件开发商,必须自行研究如何 来从多种层次支持e j b 容器的集群,从而使得拥有自主产权的j 2 e e 应用服务器 产品能具备支持真正企业级应用的高可伸缩性和高可用性,真正能在w e b 应用 服务器市场上和国外的j 2 e e 产品竞争。 j 2 e e 体系架构下的集群功能并不象j 2 e e 中的其他技术那样有一个统一的 标准,因此对于集群功能具体所包括的范畴和实现方法,各主流服务器也各不 相同。国内的某些j 2 e e 应用服务器虽然已经开始具有了集群功能,但往往这种 集群是通过从w e b 服务器或w e b 容器的级别上,利用w e b 服务器扩展来实现的, 也即基本上只对网络服务层提供了集群。目前国内在e j b 集群技术方面进行深 入研究的还不是很多,主要偏向于基于e j b 系统的开发和应用。在对课题进行 深入的分析和研究过程中,本人对e j b 集群的基本实现技术进行较为深入的研 究,主要方向偏重于对e j b 主根采用智能代理的方法来实现集群逻辑,从而实 现应用层的集群功能。本文的主要章节将围绕一个基于j 2 e e 四层体系结构的网 管系统的集群功能实现原型展开讨论。通过论文讨论,可以对整个课题研究进 行总结,也即如何把集群功能集成到企业级分布式系统开发当中,以及相关的 系统设计思想。希望可以为自主开发j 2 e e 服务器并实现其中的集群功能作一个 参考。 1 4 本文的主要内容和组织结构 本文共分六章: 第一章:绪论。介绍了集群技术以及目前的应用状况,本课题的来源,研究 的应用价值,本文所讨论的主要内容。 第二章:相关技术背景。介绍了j 2 e e 体系的相关技术。 6 南京航空航天大学硕士学位论文 第三章:系统需求分析和总体设计。对网管系统集群的进行需求分析,并 提出解决方案和总体设计。 第四章:网络服务层的集群详细设计。对网管系统的网络服务层集群方案 作出了详细分析和设计。 第五章:应用服务层的集群洋细设计。对网管系统的应用服务层集群方案 作出了洋细分析和设计。 第六章:总结与展望。 7 基于j 2 e e 桨构网管平台集群系统的研究与实现 2 。1j 2 e e 技术 2 1 1j 2 e e 平台 第二章j 2 e e 技术背景 1 ) j 2 e e 的产生 过去,二层体系结构应用( 通常被称为c “e n t s e r v e r 应用) 是大家谈论的 最多的。图2 1 刻画了典型的二层体系结构。在很多情况下,服务器提供的唯 一服务就是数据库服务。在这种解决方案中,客户端程序负责数据访问、实现 业务逻辑、用满足要求的样式显示结果、弹出预设的用户界面、接受用户输入 等。c l i e n t s e r v e r 结构通常在第一次部署的时候比较容易,但难于升级或改进, 它使得重用业务逻辑和界面逻辑非常困难【1 8 1 。更重要的是,在广泛应用w e b 的时 代,c 1 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 的部分起因就是想解决二层体系结构的缺陷i 2 0 。 f i r e w 划1 e n t e r p r m e i n o r m a t i o n c l i e n t 1 。甲。:、 s y s t e m s r c l i e n t 【各 ( r d b m s , e r p , 仅 心a n l e g a c y 、 a p p l i c a t i o n s ) c 1 1 e n t i l w e b 1 1 _ c o n t a m e r j n d i , ( s e r v l e t s , j m s j s pp a g e s , i jj a v a m a i l c l e n t1 1h t m l c i 坞n t k i e rm i d d l et i c re i s t i e r 图2 1j 2 e e 应用系统主结构 南京航空航天大学硕士学位论文 因而s u n 公司对j 2 e e 做了定义,一种利用j a v a 2 平台来简化企业解决方案 的开发、部署和管理相关的复杂问题的体系结构。该体系结构提供中间层集成 框架用来满足没有太多费用而又需要高可用性、高可靠性以及可扩展性的应用 的需求 1 “。j 2 e e 规范包含大量的各种应用的结构,j 2 e e 体系结构通常包含最基 本的w e b 容器、e j b 容器。图2 2 反映了一些关键的构造。在应用这种体系结构 的基础上,各公司可以更为方便地在中间层加速分布式部署。在企业开发工作 中利用这种体系结构,开发者将不必担心运行关键商务应用所需的“管道工 程”,从而可以集中精力重视商业逻辑的设计和应用的表示。 2 ) j 2 e e 模型 建立访问和管理来自各种各样的企业资源的数据和应用所需的中间层管道 工程往往需要耗费大量时间和金钱。 1 2 e e 的应用编程模型( 也叫j 2 e eb l u e p r i n t s ) 提供了一种包含用于实施 基于j 2 e e 的多层应用的文档和实例套件的体系模型,部分的简化了这项复杂的 工作。它被用作开发人员设计和优化组件的原则,以便从策略上对开发工作进 行分工,分配技术资源。j 2 e e 应用编程模型要求开发者将自己的工作分成两类: 商业逻辑和表示逻辑。其余则由系统资源自动处理。不必为中间层管道进行编 码,从而能将更多的时间花在商业和表示逻辑上1 1 5 】。 3 ) j 2 e e 平台 j 2 e e 平台是运行j 2 e e 应用的标准环境。它由j 2 e e 部署规范( 一套所有j 2 e e 平台产品都必须支持的标准) 、i e t f 标准集和c o r b a 标准组成1 9 1 。最新的j 2 e e 平台还添加了j a v a b e a n 组件模型。开发人员可以利用j a v a b e a n 组件模型来自 定义j a y a 类实例,并可通过已定义的事件访问j a v a 类。 j 2 e e 支持e j b ( 即e n t e r p r i s ej a v a b e a n s 的简称) ,当在j 2 e e 服务器上运 行时,e n t e r p r i s ej a v a b e a n s 将应用逻辑分成可利用和可扩展的代码段。 e n t e r p r i s ej a v a b e a n s 并非j 2 e e 的新特征,但是j 2 e e 通过定义标准客户端和 服务a p i 供使用,增强了它们的能力和可移植性。e j b 在服务器的一个容器内运 行,它提供所有典型的中间层服务,如事务管理、安全、远程客户连接、生存 周期管理和数据库连接缓冲。为了让事务系统在存在e j b 容器的情况下运行, 开发人员只需在部署描述文件中定义b e a n s 的事务属性。这样,就不必开发代 码来管理易于出错的事务边界。 。 j 2 e e 平台由一整套服务( s e r v i c e s ) 、应用程序接口( a p i s ) 和协议构成, 它对开发基于w e b 的多层应用提供了功能支持。其中构成j 2 e e 包含1 3 种核心 技术一- - j d b c ,j n p r ,e j b s ,r m i ,j s p ,j a v as e r v l e t s ,x m l ,j 骼,j a v a d l , 9 基于j 2 e e 架构网管平台集群系统的研究与实现 j t s ,j t a ,j a v m ) a i l 和j a f 它们分别适用于不同的场合,起着不同重要的功 能,同时各种技术之间可以灵活通信e ”j 。 4 ) , 1 2 e e 服务器 当应用运行在j 2 e e 平台上,s u n 的j 2 e e 服务器通过j a v a 命名和目录接口 ( i n d i ) 、认证、h t t p 及与e n t e r p r i s ej a v a b e a n s 兼容的能力,提供命名和目 录服务。i n d i 是1 a v a 平台的一种标准扩展版,向企业内的命名和目录服务提供 具有j a v a 功能的带有统一接口的应用,包括l d a p 。 j 2 e e 服务器还利用了j a v as e r v l e t 技术。s e r v l e t ( 可以看作是运行在服 务器上的一个小程序) 向开发人员提供以组件为基础、创建基于w e b 的应用的 独立于平台的方法,它不像利用c g i 程序等其它方式那样具有性能局限。s e r v l e t 是一种扩展w e b 服务器功能的简单而相似的技巧,而且,由于它是用j a v a 编写 的,因而,能够访问整个j a v aa p i 库,包括用于访问企业数据库的j d b ca p 1 8 1 。 总之,j 2 e e 使项目的应用以相容的方式建立,即具有可伸缩性、可靠性并 与其它企业应用兼容。它拥有快捷的部署及部署技巧、快速的执行速度及在安 全方面的改进,能够承载企业应用框架。它能够减轻某些中间层管道工程的负 担,加速分布式应用系统的开发,以上这些方面可以归纳如下: 1 简单的结构和开发 j 2 e e 平台支持简单的组件开发模式,因为是基于j a v a 语言和j 2 e e 的,所 以这种模式提供了一次编写、处处执行的可移植。 2 可伸缩性 i 2 髓容器提供一种机制支持分布应用系统的可伸缩性,应用系统开发团队 不需花费任何其它劳动。 j 2 e e 容器提供组件以支持事务、数据库连接、生命周期管理和其它的服务, 这些服务可影响系统的性能,在这些领域提供可伸缩性。 3 与已存在系统的集成 j 2 e e 包含大量的工业标准a p i ,用以对企业遗留信息系统的访问,主要有: j d b c 是从j a v a 访问关系数据的a p i ; j a v a 事务a p i ( j t a ) 是管理和协调异种企业信息系统的事务a p i ; l a v a 名字与目录接口( j n d i ) 是访问企业名字和目录服务信息的 a p i ; j a v a 消息服务( j m s ) 是发送和接收消息的a p i j a v a m a i l 是发送和接收e m a i l 的a p i ; j a v a d l 是调用c o r b a 服务的a p i : 1 0 南京航空航天大学硕士学位论文 此外,对企业资源计划和大型机系统的访问将在以后的j 2 e e 中通过连接器 结构得到实现,随着j 2 e e 的发展,e j b 将能利用连接器访问对企业遗留信息系 统以完成商务功能; 4 可自由选择服务器、工具和组件 j 2 e e 标准使创建服务器、开发工具和组件的市场成为可能。 服务器选择:应用程序开发组织能根据自己的硬件平台、操作系统和服务器 配置,从各种不同的公司选择提供实现j 2 e e 规范的平台,现有i b m 的w e b s p h e r e , b e a 公司的w e b l o g i c 服务器等阴。 设计工具的支持:有各种各样的工具可以帮助组件开发人员编写和调试代 码,应用程序开发者可选择适合自己的工具进行编程和组装组件。 组件市场:基于组件的设计使得有许多行为是标准的,被打包且可被重用。 组件公司将提供市场大量具有各种强大功能的组件,包括计算b e a n s 、用户界面 模扳甚至具体工业领域的商务功能,1 2 e e 标准使得这些组件是兼容的,这可极 大的节约组件开发者的投资。 5 简单和统一的安全模式 组件开发者能在方法级说明安全要求,可保证仅仅有适当权限的用户能访问 特定的数据操作。e j b 和s e r v l e ta p i 都提供建立安全检查的机制,基本的方法 是对用户进行角色管理,并在应用程序发布时得到实现,这样便提供了更灵活 和更安全的控制机制瞄i 。 2 1 2e m j 2 e e 技术之所以赢得某体广泛重视的原因之一就是e j b 。e j b 作为j 2 e e 架构中最重要的组成部分,是服务器端分布式计算模型的核心。该技术提供了 一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和 高度复杂的企业级应用的开发。e j b 规范定义了e j b 组件在何时如何与它们的 容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安 全性、资源缓冲池以及容错性。 1 1e j b 概述 e j b 是用于开发和部署多层结构的、分布式的、面向对象的j a v a 应用系统 的跨平台的构件体系结构。e j b 其实是j a v a 服务器端服务框架的规范,软件厂 商根据它来实现e j b 服务器。应用程序开发者可以专注于支持应用所需的商业 逻辑,而不用担心周围框架的实现问题。 基于j 2 e e 架构网管平台集群系统的研究与实现 采用e j b 可以使开发商业应用系统变得容易,应用系统可以在一个支持e j b 的环境中开发,开发完之后部署在其它的环境中,随着需求的改变,应用系统 可以不加修改地迁移到其它功能更强、更复杂的服务器上。同时,使用e j b 简 化了多层体系结构应用系统的开发过程。在分布式应用系统的开发中,采用多 层体系结构的方法有很多优点,如增加了应用系统的可伸缩性、可靠性、灵活 性等。因为服务器端构件可以根据应用需求迅速地加以修改,且构件在网络中 的位置是透明的,因此系统管理员可以很容易地重新分配系统的负载。 2 ) e j b 容器 e j b 服务器是e j b 的容器,控制e j b 的运行,并且为它提供重要的系统级 的服务一事务处理、安全、远程客户端访问、生命周期管理、数据库连接池、 永久存储管理等 2 6 1 。这样对开发者来说,只需关注与业务逻辑相关的组件程序, 在e j b 规范中定义了e j b 组件在何时如何与它们的容器进行交互作用。 3 ) 目r b 服务器 f a b 服务器管理e j b 容器的高端进程或应用程序,并提供对系统服务的访 问。e j b 服务器也可以提供厂商自己的特性,如优化的数据库访问接口,对其他 服务( 如c o r b a 服务) 的访问。一个e j b 服务器必须提供对可访问j n d i 的名 字服务和事务服务支持。 4 ) e j b 的类型: e n t e r p r i s ej a v a b e a n 规范将e n t e r p r i s eb e a n s 分为两种:会话b e a n ( s e s s i o n b e a n ) j f t l 实体b e a n ( e n t i t yb e a n l 。 s e s s i o n b e a n 表示的是调用它的客户端代码所要完成的工作,是一种商业处 理过程对象。它实现商业逻辑,商业规则以及工作流程,例如:报价,订单处 理,视频压缩,股票交易等。s e s s i o n b e a n 又分为两种:无状态b e a n ( s t a t e l e s s ) 和有状态b e a n ( s t a t e f u l ) 。 s t a t e l e s ss e s s i o nb e a n s 提供某种单一的服务,不维持任何状态,在服务器故 障发生时无法继续存在生命期相对较短。例如,一个s t a t e l e s ss e s s i o nb e a n 可 能被用于执行温度转换计算。s t a t e l e s ss e s s i o nb e a n 主要用于客户调用方法期间 不用维护任何状态信息。 s t a t e f u ls e s s i o nb e a n 提供了与客户端的会话交互,可以存储状态从而代表一 个客户。典型例子是购物车。s t a t e f u ls e s s i o n b e a n 在服务器故障时无法继续生存, 生命气相对较短。每一个实例只用于一个单个的线程。s t a t e f u ls e s s i o nb e a n 主要 用于贯穿多个方法请求和事务的商业过程。 e n t i t yb e a n s 提供了一致性数据的表示( 通常存放在数据库中) 在服务器故 1 2 南京航空航天大学硕士学位论文 障发生后能继续存在。多用户情况下可以使用e j b 来表示相同的数据。e n t i t y e j b 的一个典型例子是客户的帐号信息。e n t i t yb e a n 主要用寒代表商业过程中处理 的永久性的数据。 5 ) e j b 特点 e j b 结构体系是j a v a 平台j 二的服务器端组件模型。设计e j b 结构体系的目 的是,使企业开发人员将注意力只集中于编写商务逻辑。e j b 技术取消了编写” 全程( p l u m b i n g ) ”码的要求。例如,企业开发人员不再需要编写那些处理事务行为、 安全、连接共享或线程的代码,因为e j b 规范定义了e j b 组件在何时如何与它 们的容器进行交互作用,由容器负责提供公用的服务,例如目录服务、事务管 理、安全性、资源缓冲池以及容错性。因而采用e j b 技术大大减轻开发服务器 端应用系统的工作量。使服务器端仅写一次即可随处运行( s e r v e r s i d ew r i t e o n c e , r u n a n y w h e r e ) :通过对j a v a 平台的支持,e j b 技术将”仅写一次,随处 运行”的概念提高到了一个新的水平。它可以保证一个e j b 应用程序可运行于任 何服务器,只要这个服务器能够真正提供企业j a v a b e a n sa p i s 。 2 1 3j a v a 名字和目录服务接口j n d l 名字服务( n a m i n gs e r v i c e ) 是计算机系统中的一个基本功能。名字服务是 将名字和计算机重的一个对象相关联,通过名字可以方便地找到对应地对象。 例如,计算机中地文件系统就包含了一个名字服务。可以通过文件名找到对应 地文件对象。目录服务( d i r e c t o r ys e r v i c e ) 是名字服务地延伸,目录服务不只 保存对象和对象名地匹配,而且保存这个对象地各种属性,可以对这些属性进 行查淘、修改、增加、删除操作。 j n d i ( j a v an a m i n g a n dd i r e c t o r yi n t e r f a c e ) 是一些标准a p i 接口,j a v a 程序通 过这些a p i 可以访问名字目录服务。j n d i 的定义不依赖于任何独立的名字目录 服务提供者,对于各种名字目录服务器,都可通过统一的j n d i 接口调用。 j n d i 结构包括两组a p i :j n d i a p i ( 应用编程接口,a p p l i c a t i o np r o g r a m m i n g i n t e r f a c e ) 和y n d is p i ( 服务提供者接口,s e r v i c ep r o v i d e ri n t e r f a c e ) 。j a v a 应用 程序通过j n d i a p i 访问各种名字目录服务。j n d i s p i 使得各种名字目录服务透 明地加入到j n d i 结构中,如上图中的l d a p 、d n s 、n i s 等服务通过庙is p i 加入到j n d i 结构中,从丽使j a v a 应用程序能够通过n d 【a p 访问这些服务。 j n 上下文( d d ic o n t e x t ) 是一系列名字到对象绑定的集合,c o n t e x t 提 供以下主要接口访问名字服务: 基fj 2 e e 架构阿管平台集群系统的研究与实现 b i n d ( n a m en a m e ,o b j e c to b j ) 建立一个名字到一个对象的匹配关系,也叫绑定 l o o k u p ( s t i m gn a m e ) 通过名字查找其对应的对象 r e b i n d ( n a m en a m e ,o b j e c to b j ) 重新绑定一个名字到对象,覆盖原来的绑定 u n b i n d ( n a m en a m e l 解除这个名字到其匹配对象的绑定关系 使用j n d i 过程如下: 首先,通过h a s h 表中的环境变量值传递j n d 调用参数,取得j n d i 上下文, 各参数说明如下: c o n t e x t i n i t i a lc o n t e x tf a c t o r y :指定j n d i 上下文工厂。 c o n t e x t p r o d e ru r l :指定名字服务提供者的u r l ,格式为:r m i :l o c a l h o s t :1 0 9 9 。 然后,通过j n d i 初始上下文进行名字服务相关操作。 2 2 远程方法调用r m l 规范 2 2 1r m i 概述 j a v a 平台的远程方法调用系统( r e m o t em e t h o di n v o c a t i o n ,r m i ) 是专门为在 j a v a 应用环境中操作的分布式通信机制,它假定分布式系统在一个j a v a 虚拟机 组成的同构环境中,这样系统能够充分利用j a v a 平台的对象模型的优点。 为了在j a v a 语言中支持分布式对象,r m i 设计为满足下列系统目标: 1 ) 支持无缝远程调用不同的j a v a 虚拟机内对象的方法 2

温馨提示

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

评论

0/150

提交评论