(计算机软件与理论专业论文)基于javarmi的分布对象负载均衡研究与实现.pdf_第1页
(计算机软件与理论专业论文)基于javarmi的分布对象负载均衡研究与实现.pdf_第2页
(计算机软件与理论专业论文)基于javarmi的分布对象负载均衡研究与实现.pdf_第3页
(计算机软件与理论专业论文)基于javarmi的分布对象负载均衡研究与实现.pdf_第4页
(计算机软件与理论专业论文)基于javarmi的分布对象负载均衡研究与实现.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机软件与理论专业论文)基于javarmi的分布对象负载均衡研究与实现.pdf.pdf 免费下载

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

文档简介

摘要 摘要 随着分布对象技术的发展,在对象层提供服务器群的负载均衡方案是当前研究 的重要方向。为了实现对采用j a v ar m l 分布对象技术构造的远程对象服务器进行 集群扩展,作者分析了r m l 分布对象技术特点,提出一个分布对象负载均衡模型 r m i d o l b ,并实现了r m i d o l b 系统。文中,基于j n d is p i 开发一个负载均衡命 名服务提供者,为客户端提供一个统一的符合j a v a 2 标准的访问r m i d o l b 系统的 接口。远程对象扩展部分采用r m i 可激活对象避免了可能出现的服务器资源的不 合理占用情况。r m i 负载均衡服务器在提供均衡服务的同时,提供对象级和主机级 的管理手段。采用r m i 作为r m i d o l b 系统的各个组成部分之间统一的通讯协议。 通过应用r m i d o l b 系统对r m i 方案的j a v a 中文平台进行多服务器扩展,实施了 r m i d o l b 的一次实际应用。 关键词:负载均衡,分布对象,j a v a ,r m i ,蜊涎 a b s t r a c t a b s t r a c t w i t ht h ed e v e l o p m e n to fd i s t r i b u t e do b j e c tt e c h n o l o g y , i t sa ni m p o r t a n tr e s e a r c h d i r e c t i o nt o p r o v i d el o a d 1 balancing s c h e m ef o rs e r v e rc l u s t e ro no b j e c te v e lt o c l u s t e rr e m o t eo b j e c ts e r v e r sw h i c ha r eb u i l tb a s e do nj a v ar m id i s t r i b u t e do b j e c t t e c l l l l o l o g y , t h e a u t h o r p r e s e n t s a l ld i s t r i b u t e d o b j e c t j o a db a l a n c i n gm o d e l r m i d o l ba f t e r a n a l y z i n gt h e c h a r a c t e r i s t i c so fj a v ar m i a n dc o m p l e t e st h e r m i d o l bs y s t e m i nt h i sp a p e r al o a db a l a n c i n gs e r v i c ep r o v i d e ri sd e v e l o p e du p o n j n d is p lt op r o v i d eaj a v a 2 c o l n p a t i b l eu n i f o r i l le n t r yt or m i d o l bs y s t e mf o r c l i e n t t h ee x t e n t i o no fr e n l o l e o b j e c ta d o p t sr m ia c t i v a t a b l eo b j e c t t ov o i d u n r e a s o n a b l e o c c u p y o fs y s t e m1 e s o u r c e ,r m ij o a db a l a n c i n gs e r v e r p r o v i d e s l o a dl 一一 rmidolb_balancing s e r v i c ea sw e la so b j e c tl e v e la n dh o s tl e v e lm a n a g e m e n t u s e sr m ia sc o m m u n i c a t i o np r o t o c o lb e t w e e ne v e r yp a r t s a tl a s t ,t h r o u g ha p p l y i n g r m i d o l bo nj a v ac h i n e s e p l a t f o r n l ,o n ep r a c t i c eo f r m i d o l bi ss h o w n k e y w o r d :l o a d b a l a n c i n g ,d i s t l i b u l c d0b j o c t ,j a v a ,r m i ,c l u s t e r 第一章绪论 第一章绪论 1 】引言 随着网络访问量的增加,服务器需要具备处理大量并发访问的能力。网络的 各个核心部分随着业务量的提高和数据流量的快速增长,其处理能力和计算强度 也要求相应增大,使得单设备根本无法承担。如果采取硬件设备升级方案,将 造成现有资源的浪费,同时单个硬件的能力有限,硬件升级方案不能根本解决这 类问题。一般来讲,一台p c 服务器所能提供的并发访问处理能力大约为1 0 0 0 个, 专用服务器能够支持3 0 0 0 5 0 0 0 个并发访问。由于关键业务的网络化和网络访问 的突发性特点,需要寻求强有力的方式来获取高可用性和可伸缩性的网络服务器。 负载均衡机制因此应运而生。 负载均衡建立在现有网络体系结构之上,它提供一种廉价有效透明的方法扩 展网络设备的带宽、增加吞吐量、加强数据处理能力、提高网络的灵活性和可用 性。负载均衡概念有两方面的含义。首先,大量的并发访问或数据流量分担到 多台节点设备上分别处理,减少用户等待响应的时间:其次,单个重负载的运算 分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返 回给用户,系统处理能力得到大幅度提高。本文所论述的负载均衡的概念是指的 第一方面的含义,即服务器群的负载均衡。 分布对象技术是伴随网络而发展起来的一种面向对象的技术。9 0 年代初 c o r b a1 0 标准的颁布,揭开了分布式对象计算的序幕。目前,分布式对象技术 已经成为建立应用框架和软件构件的核心技术,在开发大型分布式应用系统中表 现出强大的生命力,逐渐形成了3 种具有代表性的主流技术,即o m g 的c o b r a 技 术、s u n 公司的j a v a 技术和m i c r o s o f t 的c o m d c o m 技术。 分布对象技术作为现代构造软件系统的主要技术,给负载均衡也带来了新的 研究领域【3 1 。为了提高采用分布对象技术构造的系统性能,对提供远程对象服务 的服务器方采用负载均衡技术是必要的。基于分布对象技术的负载均衡,主要是 指将客户的请求在分布于不同主机和进程上的服务对象中进行分派。这点区别 于以前曾被大量研究的面向链路和面向连接的负载均衡,负载均衡的粒度转移至 对象。 在当前主流的分布对象技术中,c o r b a 和d c o m 的负载均衡都已有相当多的研 究。在些c o r b a 产品中直接提供了对负载均衡的支持。j a v a 分布对象技术通常 指r m i ( r e m o t em e t h o di n v o c a t i o n ,远程方法调用) 和e j 8 ( e n t e r p r is ej a v a b e a n , 企业级j a v a b e a n ) 。j a v ar m l 分布对象范型提供了一个j a v a 对象远程调用另一 2基于j a v ar m i 的分布对象负载均衡研究与实现 j a v a 对象的方法的能力f 4 1 。s u n 公司基于r m i ,提出了e n t e r p r i s ej a v a b e a n 。e j b 框架提供了像远程访问、安全、交易、持久和生命期管理等多种支持分布对象计 算的服务。在e j b 框架中,负载均衡策略可以在客户端实现,也可以在服务器端 实现。 当前,有些应用直接基于r m i 构造,具有简单、高效的特点。比如,j y r as e r v i c e m a n a g e m e n t 、n e t s u r f a c e t 8 1 ,r m i 方案的j a v a 中文支撑开发平台等。对于直接基 于r m i 构造的应用,e j b 框架中的负载均衡解决方案不能适用。因此,像其他分 布对象技术一样,基于j a v ar m i 的应用要求负载均衡解决方案。 1 2 研究现状 j a v ar m i 是j a v a 分布对象技术的重要组成部分。采用j a v ar m i 技术开发的 远程对象服务器,向客户端提供网络计算、数据处理或者其他的服务。 r m i 的服务器端对象绑定和客户端远程对象查找都是只提供确定处理策略,不 支持对象名到多重远程对象的灵活绑定。r m i 提供的是简单命名服务。 对r m i 提供多服务器扩展方案,是r m i 应用迫切需要的。当前对此的研究处 于比较薄弱的环节。s u n 使用j 2 e ep a t t e r n 的概念提出一个s e r v i c el o c a t o r , 但是,在此设计模式下没有提供扩展后的管理手段。另一种方案就是j a v a 服务器 端开发框架( f r 锄e w o r k ) 的概念1 9 1 ,这种开发框架是针对j a v a 应用,包括r m i , e j b ,j m s 等内容。对于r m i 扩展要求的一些能力没有提供,比如负载均衡策略, 仍然需要框架使用人员进行二次开发。 1 3 研究目的 为获得可管理、高可用性、高计算能力的r m i 远程对象服务器阵列,作者将 服务器群的负载均衡技术应用于r m i ,提出一个分布对象负载均衡模型 r m i d o l b ( d i s t r i b u t e do b j e c tl o a d b a l a n c i n gb a s e do nr m i ) 。 r m i d o l b 模型是一种面向j a v ar m i 的负载均衡解决方案,解决的是对采用 r m i 技术构造的远程对象服务器进行扩展的一类应用。 r m i 远程对象服务器的负载均衡建立在对象层,以j a v a 远程对象为均衡粒度, 能将负载均衡策略和后台服务自然融合,可以同时针对不同的服务类型提供均衡, 具有多应用服务器集群的内置性、自然性、可管理、易维护等特点。 1 4 论文工作背景 西安电子科技大学软件工程研究所受北京长城软件与系统有限公司的委托, 承担了国家“九五”重点科技攻关项目“面向i n t e r n e t 的中文信息处理应用平 第一章绪论 3 台”中的主体部分“面向i n t e r n e t 的中文应用支撑平台”的开发工作( 攻关项 目的专题代号为9 8 7 7 9 0 1 一0 1 ) 。现在,第一期工作已经完成,系统经过了多次 严格的模块测试、集成测试和系统调试。先后通过了中国软件评测中心的软件产 品鉴定测试、信息产业部组织的技术鉴定和科技部组织的项目验收。 为使得“面向i n t e r f l e t 的中文应用支撑平台”具有更高的实用性、可靠性, 要求对该中文应用支撑平台进行二期开发。工作的重点是采用业已成熟的r m l 分 布对象范型替换“面向i n t e r n e t 的中文应用支撑平台”中原有客户服务器端基 于s o c k e t 的自定义通讯协议,对系统进行重构造。进而,对服务器端实行扩展集 群处理,以获得一个高可靠性、高性能、易管理的远程中文服务器阵列。 在二期开发过程中,我们首先试验了r m i 用于“面向i n t e r n e t 的中文应用支 撑平台”的可行性。之后,我们脱离本中文平台的具体要求,提出了一个面向 般r m i 对象服务器的分布对象负载均衡模型。在模型实现后,我们将模型应用于 使用r m i 重构造的“面向i n t e r n e t 的中文应用支撑平台”,对模型做了一个实际 的应用和验证。 1 5 论文工作内容及各章节的安排 在项目的完成过程中,作者的工作是: j 采用j a v a l 3 开发平台,基于j a v ar m i 提出一个分布对象负载均衡模型。本 模型主要实现了远程对象服务器的扩展包和分布对象负载均衡服务器。同时, 基于j n d i ( j a v an a m i n g a n d d i r e c t o r yi n t e r f a c e ) 开发一个 l b s p ( l o a d _ b a l a n e i n gs e r v i c ep r e y i d e r ) ,为客户端访问负载均衡服务提 供一个规范、自然的接口。 2 采用r m i 更新原j a v a 中文平台的客户服务器端通信协议。应用分布对象负载 均衡模型对j a v a 中文平台进行多服务器的扩展,给出本模型的一个实际应用 过程。 本文各章节的基本内容是: 第二章首先给出了负载均衡的研究概述,接着讨论了分布对象负载均衡目前 的一般方法,分析了当前主流的分布对象技术中负载均衡方案的解决思路。最后, 指出了r m l 分布对象负载均衡方案的必要性。 第三章具体提出r m i d o l b 模型,包括模型给开发人员提供的编程接口,模型 的特点。 第四章详细讨论了r m i d o l b 系统的设计与实现。首先介绍了模型要求的j 2 e e 相关技术,包括j n o i ,r m i 激活框架,其次,给出了r m i - d o l b 系统的整体设计; 最后分三部分介绍了系统的详细设计与实现,包括l b s p 的设计与实现,l b s e r v e r 4基于j a v ar m i 的分布对象负载均衡研究与实现 的设计与实现,r o s e r v e r 的设计与实现。 第五章给出了j a v a 中文平台的r m i 方案,并应用r m i d o l b 对j a v a 中文平台 进行多服务器扩展。 第六章是结束语部分,主要给出了r m i d o l b 模型的一些评价、存在的问题及 以后的进一步工作。 第二章分布对象负载均衡一般方法 第二章分布对象负载均衡一般方法 2 1 负载均衡概述 负载均衡的概念有两方面的含义,服务器群的负载均衡和分布计算的负载均 衡。本文所论述的服务器群的负载均衡,主要是指在服务器群中所有服务器之间 分配负载的应用。 对于负载分担的解决思路,有两个方向:服务垂直划分、服务水平复制。 1 服务垂直划分是指使用多台服务器来分担负载,将不同的服务器用在不同 的方面。比如当前的w e b 服务器,按服务器的功能进行分割,将一台服务 器用于提供静态页面访问,而另一些用于提供c g i 、a s p 等需要大量消耗 资源的动态页面访问。然而由于网络访问的突发性,这种分割方法只能是 大方向的调整,对于大负载的网站,还是不能完全的解决问题。 2 服务水平复制是由多台服务器以对称的方式组成一个服务器集合,每台服 务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅 助。通过某种负载均衡策略,将外部发送来的请求分配到对称结构中的某 一台服务器上,而接收到请求的服务器独立地回应客户的请求。这种处理 方式就是服务器群的负载均衡的解决思路。 负载均衡,从结构上分为本地负载均衡( l o c a ll o a db a l a n c e ) 和全局负载均 衡( g i o b a ll o a db a l a n c e ) ,前一种是指对本地的服务器集群做负载均衡,后一种 是指对分别放置在不同的地理位置、在不同的网络及服务器群集之间作负载均衡。 本地负载均衡能有效地解决数据流量过大、网络负荷过重的问题,避免服务器单 点故障造成数据流量的损失。当前已有灵活多样的均衡策略把负载合理地分配给 服务器群内的服务器共同负担。当对系统扩展时,只是简单地增加一个新的服务 器到服务群中,而不需改变现有网络结构、停止现有的服务。全局负载均衡主要 用于在多个区域拥有自己服务器的站点,可以使用户只以一个i p 地址或域名就能 访问到离自己最近的服务器,从而获得最快的访问速度。 目前比较常用的负载均衡技术主要有: 1 基于d n s 的负载均衡 通过d n s 服务中的随机名字解析来实现负载均衡。在d n s 服务器中,可以为 多个不同的地址配置同个名字,而最终查询这个名字的客户机将在解析这个名 字时得到其中一个地址。因此,对于同一个名字,不同的客户机会得到不同的地 址,他们也就访问不同地址上的w e b 服务器,从而达到负载均衡的目的。 2 反向代理负载均衡 6基于j a v ar m i 的分布对象负载均衡研究与实现 使用代理服务器可以将请求转发给内部的w e b 服务器,让代理服务器将请求 均匀地转发给多台内部w e b 服务器之上,从而达到负载均衡的目的。标准代理方 式是客户使用代理访问多个外部w e b 服务器,而这种代理方式是多个客户使用它 访问内部w e b 服务器,因此被称为反向代理模式。 3 基于n a t 的负载均衡技术 网络地址转换为在内部地址和外部地址之间进行转换,以便具备内部地址的 计算机能访问外部网络,而当外部网络中的计算机访问地址转换网关拥有的某 外部地址时,地址转换网关能将其转发到一个映射的内部地址上。因此如果地址 转换网关能将每个连接均匀转换为不同的内部服务器地址,此后外部网络中的计 算机就各自与自己转换得到的地址上服务器进行通信,从而达到负载分担的目的。 4 协议内部支持 除了这三种负载均衡方式之外,有的协议内部支持与负载均衡相关的功能, 例如h t t p 协议中的重定向能力等。但这种方式依赖于特定协议,因此使用范围有 限。 不管负载均衡方案是采用花费较少的软件方式,还是购买花费较高的在性能 功能上更强的第四层交换机、负载均衡器等硬件方式来实现,亦或其他种类不同 的均衡技术,下面这几项都是我们在引入均衡方案时要考虑的问题: 1 性能:性能是我们在引入均衡方案时需要重点考虑的问题。性能的优劣与负载 均衡设备的处理能力和采用的均衡策略密切相关。首先。均衡方案对服务器群 整体的性能影响,这是响应客户端连接请求速度的关键;其次,负载均衡设备 自身的性能,避免有大量连接请求时自身性能不足而成为服务瓶颈。 2 可扩展性:合适的均衡解决方案应能满足系统扩展的需求,能均衡不同操作系 统和硬件平台之间的负载,并且能以对客户端完全透明的方式动态增加或删除 服务资源。 3 灵活性:均衡解决方案应能灵活地提供不同的应用需求,满足应用需求的不断 变化。在不同的服务器群有不同的应用需求时,应有多样的均衡策略提供更广 泛的选择。 4 可靠性:在对服务质量要求较高的站点,负载均衡解决方案应能为服务器群提 供完全的容错性和高可用性。在负载均衡设备自身出现故障时,应该有良好的 冗余解决方案,提高可靠性。 5 易管理性:不管是通过软件还是硬件方式的均衡解决方案,都需要有灵活、直 观和安全的管理方式。这样便于安装、配置、维护和监控,避免差错。 第二章分布对象负载均衡一般方法 2 2 分布对象技术与负载均衡 本节首先阐述了分布对象技术需要负载均衡方案,接着给出了分布对象负载 均衡的一般研究方法。最后讨论了当前三种主流分布对象技术的负载均衡解决思 路。 2 2 1 分布对象技术的负载均衡应用 进入九十年代以来,网络技术得到了迅猛的发展,面向对象技术也同趋成熟, 他们共同促进了分布对象技术的发展。目前,分布式对象技术逐渐形成了3 种具 有代表性的主流技术,即o m g 的c o b r a 技术、m i c r o s o f t 的c o m d c o m 技术和s u n 公司的f f a v a 技术。 分布对象技术作为构造现代软件系统的主要发展技术,给负载均衡也带来了 新的研究领域。一般说来,网络分布式应用的第一代模式称为c l i e n t s e r v e r 模 式,第二代称为3 层c l i e n t s e r v e r 模式,第三代为分布式对象模式。原有的负 载均衡的研究主要是解决第一、第二代网络应用模式。现在,第三代分布式对象 模式日益成为网络计算的主流发展方向,同时也对应用负载均衡技术提出了新的 要求。传统的基于s o c k e t 链接的负载均衡方案己不能处理分布对象负载均衡。同 时,分布对象负载均衡对服务器灵活配置的要求更高,管理的要求更复杂等等。 面对第三代分布式对象模式的需求,在分布对象层提供新的负载均衡方案已经成 为业界的共识。 应用分布对象技术的负载均衡,主要是指将客户的请求在分布于不同主机和 进程上的服务对象中进行分派。 , 2 2 2 分布对象负载均衡的一般研究方法 分布对象负载均衡的研究主要分为三个方面的内容i i o j 。 1 负载处理 负载处理包括负载划分和负载分配。负载划分是将组成服务器端应用的远程 对象部署到不同的主机上。负载分配是指对于客户端的请求,后台有多个服务器 可以提供服务,负载均衡依据一定的策略将客户端的请求分配到某一个服务器。 在这里,涉及到请求的迁移策略。迁移策略的作用是解决系统在什么时候选择一 个服务器,它控制负载均衡发生的粒度,主要包括了一下几个策略。 每个调用( p e r i n v o c a t i o n ) :对客户的每个远程方法调用,都需要首先 定位新的服务器,这种策略具有很好的可调粒度,但是其缺点也很明显, 频繁定位服务器的代价很大,同时保证操作问的状态依赖性很困难。 8 基于j a v ar m i 的分布对象负载均衡研究与实现 每个对象( p e r o b j e c t ) :分布对象系统中,一般一个对象提供多个方法 调用服务。而且,每个方法调用之间有着一定的联系,整个对象完成相对 独立的一组服务。为此,我们可以提出每个对象的迁移策略。即,在获得 对象引用的时候定位服务器,完成该对象上的一系列方法调用。 每个事务( p e r t r a n s a c t i o n ) :将一个完整的事务作为负载均衡的粒度, 每个事务可能包含多个服务调用操作。事务开始前,首先完成新服务器的 定位。 2 负载均衡组件 负载均衡组件包括负载均衡策略、负载监测组件和负载均衡控制器。 负载均衡策略主要指负载均衡算法。一直以来,均衡算法在负载均衡研究领 域被广泛讨论。当前已经实际应用于分布对象负载均衡的主要有随机均衡算法、 轮询算法、基于负载的均衡算法。 负载监测组件是负载均衡的一个子系统,其任务是收集负载信息并传递给负 载均衡策略使用。一般而言,负载监测组件位于终端服务器,一个服务器配置有 一个负载监测组件。 负载均衡控制器是负载均衡的协调部分,负责处理各个模块的相互工作。完 成服务器群的可管理、伸缩性的内容。 3 集成机制 负载均衡的集成机制,就是负载均衡功能在什么位置以什么样的方式嵌入原 来的分布对象系统。根据不同的分布对象技术的支持程度不同,集成机制会有所 不同。一般都会有: 客户端:在应用程序中由开发人员实现负载均衡。 中间层:在分布对象技术框架和应用程序之间实现一个中间层,专门提供 负载均衡的功能。 服务器端:在服务器端实现负载均衡功能。 2 2 3 主流分布对象技术的负载均衡讨论 2 2 3 1c o r b a 负载均衡的解决思路 c o r b a ( c o m m o no b j e c tr e q u e s tb r o k e ra r c h it e c t u r e 公共对象请求代理体 系结构) 是o m g 组织在1 9 9 1 年提出的公共对象请求代理体系结构技术规范。c o r b a 被设计和架构为服务于用不同程序语言书写、运行于不同平台上的对象系统。 c o r b a 的底层结构是基于面向对象模型的,由o m g 接口描述语言( o m g i n t e r f a c ed e f i n i t i o nl a n g u a g e ,o m gi d l ) 、对象请求代理( o b j e c tr e q u e s t 第二章分布对象负载均撕一般方法 9 b r o k e r ,o r b ) 和i i o p 标准协议( i n t e r n e ti n t e r o r bp r o t o c 0 1 ) 3 个关键模块 组成。 幽2ic o r b a 结构图 c o r b a 依赖于o r b 中问件在服务器和客户之间进行通信。o r b 扮演一个透明地 连接远程对象的对象。每个c o i b a 对象提供接口,并且有一系列的方法与之相 联。o r b 负责为请求发现相应的实现,并且把请求传递给c o r b a 服务器。o r b 为客 户提供透明服务,客户永远都不需要知道远程对象的位置以及用何种语言实现。 c o r b a 在不同对象请求代理之间使用i i o p ( i n t e r n e ti n t e r o r bp r o t o c 0 1 ) 进行通 信,使用t c p 作为网络通信协议。 c o r b a ,作为分布对琢应朋的工业标准,在现代软件技术中扮演着越来越重要 的角色。尽管负载均衡是分布对象计算的一个典型问题,但c o r b a 没有定义任何 标准方法对负载均衡予以支持。只是一部分c o r b a 兼容的产品提供了自己的负载 均衡支持,比如v i s i b r o k e r 。 在c o r b a 中实现负载均衡,有如下四个切入点: 应用程序:在应用程序中由开发人员实现负载均衡。 中间层:在o r b 接口和应用程序中间提供一个中间层,专门提供负载均衡 的功能,比如o r b i x 。 o r b 核心:有些c o r b a 供应商已经在自己的o r b 产品中提供了对负载均衡 的支持。 c o r b a 服务:c o r b aj j k 务是o m g 定义的一些基础对象服务,比如n a m i n g s e r v i c e ,l i f ec y c l es e r v i c e ,t r a d i n gs e r v i c e 等。在已存在的这些 c o r b a 服务中实现负载均衡,是一种比较常见的c o r b a 负载均衡方案,比 如,基于交易服务 的动态负载平衡系统1 3 j 。 2 2 3 2d c o m 负载均衡的解决思路 c o m d c o m 是微软公司提的分布式对象模型。c o m d c o m 的前身o l e ( o b j e c t l i n k i n ga n de m b e d d i n g ,列象链接和嵌入) 是用于在微软的w i n3 1 操作系统中 链接文档。开发c o m 是为了存一个单一的地址空间中,动态地集成组件。d c o m 是 0 基于1 a v ar m i 的分布对象负载均衡研究与实现 组件对象模型( c o m ) 的进一步扩展,支持基于网络的交互,允许通过网络进行进 程处理。图2 2 显示了d c o m 的整体结构:c o m 运行库向客户和组件提供了面向对 象的服务,并且使用r p c 和安全机制产生符合d c o m 线路协议标准的标准网络包。 “ “卜叫c o m p r u n - t i m er u n - t i m e o n e n i r “1 ” p s r 8 0 6 v ”i d “e y r d c er p cv p r o t 0 c 0 ls l a c k p s r 。o 。v “i d i e r d c er p clv d c o mn e t w o r k b r o t o c o i pr o t o c o fs t a c k 图2 2d c o m 结构图 c o r b a 依赖于i i o p 进行远程对象通信,d c o m 则依赖于对象远程处理过程调用 ( o r p c ) 以达到相同的目的。c o r b a 提供跨平台支持,c o m d c o m 则局限于微软操 作系统。d c o m 基于自然的二进制格式,因此执行较快,但是不适用于其它平台。 d c o m 没有透明地提供各种意义上的负载均衡,但是它为完成负载均衡提供支 持手段。d c o m 为支持负载平衡提供如下几种不同的技术:并行配置,分离关键组 件和连续进程的p i p e l i n i n g 技术。 通过并行配置技术,基于d c o m 的应用可以很容易地通过改变登记入口将其配 置到某些特定的服务器上运行,以实现静态负载均衡。 d c o m 提供了一个用来完成动态负载均衡的强大的底层结构。比如指示组件的 概念。指示组件驻留在一台为大家所共知的服务器中。客户组件首先和此组件连 接,请求一个指向它所需服务的索引,指示组件依据一定的策略选择服务器。指 示组件并不直接返回服务器名,它实际上建立了一个到服务器的连接并将此连接 直接传递给客户。然后d c o m 透明地将服务器和客户连接起来,这时指示组件的工 作就完成了。指示组件在连接时可以用来透明地完成动态服务器分配工作。 2 2 3 3e j b 负载均衡的解决思路 j a v a 分布对象技术通常指远程方法调用( r m i ) 和企业级j a v a b e a n ( e j b ) 。 r m i 为服务器和客户机进行通讯和信息传递提供了一种机制。s u n 公司基于 r m i ,提出了e j b 。基于j a v a 服务器端组件模型,e j b 框架提供了像远程访问、安 全、交易、持久和生命期管理等多种支持分布对象计算的服务。e j b 是用于开发 第二章分布对象负载均衡一般方法 j 和部署多层结构的、分布式的、面向对象的j a v a 应用系统的跨平台的构件体系结 构。使用e j b 结构编写的应用程序具有可扩展性、交互性以及多用户安全特性。 e j b 的负载均衡实现可以在客户端,也可以在服务器端。服务器端方案由 c o n t a i n e r 负责服务器的定位,一般都会是e j b 服务器制造商在c o n t a i n e r 中完成 均衡方案的实现。客户端方案由j n d i 服务提供者负责定位服务器。e j b 客户端使 用j n d i 来访问e n t e r p r is ej a v a b e a n s 组件。j n d i 是j 2 e e 中一项技术,以一种 统一的服务提供者的方式提供基层的名字和目录服务。为完成负载均衡,j n d i 需 要使用目录服务。因为目录服务中,可以根据目录属性来提取服务器端的主机负 载信息。因此,可以开发一个n a m ir i gd i r e c t o r ys e r v i c ep r o v i d e r 来提供e j b 负载均衡。 2 3j a v ar m l 分布对象机制 2 3 1j a v ar m i 概述 r m i ( 远程方法调用) 是j a v a 分布对象技术的主要组成部分。本节介绍了r m i 的原理、结构,以及r m i 与e j b 的关系。 2 3 1 1p u l i 原理 实现对象间网络通讯的方法有多种,传统方式是使用套接字( s o c k e t ) 和定 制协议来实现对象间通讯,在过去几年,远程过程调用( r p c ,r e m o t ep r o c e d u r e c a l l s ) 也曾经是一种流行的通讯机制。j a v a 则为远程对象间的通讯提供了另一 种机制,即远程方法调用( r m i ,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 虚拟机上的对象能够无缝地调用位于远程虚拟机 上另一对象的方法【”。通过使用r m i ,客户机可以象调用本地方法一样用相同的 语法调用远程对象的方法。 r m i 允许整个对象能被作为参数传递或返回,而不象许多基于远程过程调用 ( r p c ) 的机制,要求参数必须是原始数据类型或由原始数据类型构成的结构 ( s t r u c t u r e ) 。这就意味着任何j a v a 对象都能被作为参数传递,甚至是远程虚拟 机以前没有的类的实例对象。要使对象能作为参数或返回值在服务器与客户机问 传送,要求对参数和返回值进行串行化。s u n 开发了外部数据表示( x d r | ”,e x t e n d d a t ar e p r e s e n t a t i o n ) 系统来支持数据串行化。r p c 与r m i 之间的一个重要差别 是r p c 使用快速而不够可靠的u d p 协议,r m i 则使用低速而可靠的t c p 协议。 允许整个对象能被作为参数传递或返回是r m i 的重要特性,它意味着新的代 码能够通过网络发送,并被外部虚拟机在运行时动态加载,这使得j a v a 开发人员 基于j a v a r m i 肋分布对象负载均衡研究与实现 设计分布系统时有了更大的自由度。在与远程服务连接时,r m i 的客户机能够 问j a v a 服务所提供的新版本。代码刁i 仪能从本地或远程文件系统来访问,还可 过w e b 服务器来访问,这就使得分1 1 】! _ ! 为容易。r m l 支持登记,它允许客户寻 恃定的服务。使用r m i 时客户端建0 连接如图3 1 所示。首先,客户必须与 登记联系并请求服务的名字,客p 开1 i 知道r m i 服务确切的位置,但它知道 阿与服务的登记联系,从而定位陂t 似务,并访问该服务。由于服务定期更新, 而客户不需要有服务类的拷贝,客j 、公透明地自动从w e b 服务器上取得新类。 图2 3r m l 系j ;:r | 】、州构什间的交互 r m i 系统由三个独立的层次构段。j - 又j 框架层,远程引用层和传送层。由于 个层的边界是由专用接口或协议,jzr 1 ,因此各个层次之间相互独立,并可通 一个替换实现取而代之,不影响系统门其它层次。3 层问的关系如图3 2 所示。 应用程序 廊用挫序 r m i 使用标准机制,即端头框鞋j 远程对象通讯。端头作为远程对象在客 llillii;iilillilfllli 舞毛 第二章分布对象负载均衡一般方法 1 3 户机方的代理。调用者在本地端头上调用方法,端头负责在远程对象上执行该方 法调用。在r m i 中,远程对象的端头实现了远程对象实现的所有远程接f j 。当端 头的方法被调用时,它初始化一个与包含该远程对象的远程虚拟机j v m 的连接, 将参数数据串行化后传递到调动流,远程引用层r r l ( r e m o t er e f e r e n c el a y e r ) 用调动流与服务器方r r l 通讯。执行远程方法后,r r l 将串行化返回值送回端头, 出端头负责反串行化后将返回值返回给调用者。为了给调用者提供一种简单的调 用机制,端头隐藏了参数串行化和网络级通讯的细节。 在远程j v m 上,每一个远程对象都应有一个对应的框架。框架接受客户机方 r r l 的方法调用请求,并将请求分派给实际的远程对象实现。当框架接收到力法 调用时,它读取并反串行化调用远程方法的参数,在实际的远程对象实现上调用 该方法,等待接收来自远程对象的返回值或异常,然后将串行化的结果( 返回值 或异常) 调动到调动流中。 远程引用层r r l 负责维护不与具体端头或框架模型相关的独立引用协议。这 就使得r r l 的改变不会影响端头框架层及传送层。r r l 涉及低层传送接口,负责 向端头框架层提供流。r r l 通过传送层实现客户机方和服务器方构件通信。客户 机方构件包含远程服务器的特定信息。这个信息传递到服务器方构件,因此只依 赖于服务器方r r l 。服务器方r r l 负责引用语法和处理这些语法之后再向框架发 送远程方法调用。客户机和服务器方构件之问的通讯则由传送层处理。 传送层负责建立并维护客户机和服务器之i u j 的连接。它包括4 个抽象【7 j :端 点( e n d p o i n t ) 抽象用于引用包含j a v a 虚拟机( j v m ) 的地址空间,是具体传送 接口的引用;通道( c h a n n e l ) 抽象是两个地址空问之间的通路,负责管理客户机 和服务器之间的各种连接;连接( c o n n e c t i o n ) 抽象是客户机和服务器之间数据 ( 变元和返回值) 传送的抽象;传送( t r a n s p o r t ) 抽象负责建立本地地址空i d j 和 远程端点之间的通道,还负责接收到包含抽象的地址空间的输入连接。传送层建 立连接、管理现有连接,并处理其地址空间中的远程对象。 传送层接收客户方r r l 的请求时,它寻找请求的远程对象的r m i 服务器,然 后传送层建立到这个服务器的接插连接并将建立的该连接传递到客户机r r l ,同 时将远程对象的引用加入到内部表中。此时,客户机即连接到服务器上。传送层 监视连接的活动,如果较长时削该连接不使用,则传送层负责关闭陔连接。 2 3 1 3r m i 与e j b 的关系 1 ) 首先r m i 与e j b 位于软件体系结构的不同层次。r m i 实现了网络的对象问通信 协议,e j b 是基于r m i 上构造的服务器端框架。 2 ) r m i 定义的是面向通信的一种远程调用。它的重点在于定义并实现一种对象问 第二章分布对象负载均衡一般方法 j 和部署多层结构的、分布式的、面向对象的j a v a 应用系统的跨平台的构件体系结 构。使用e j b 结构编写的应用程序具有可扩展性、交互性以及多用户安全特性。 e j b 的负载均衡实现可以在客户端,也可以在服务器端。服务器端方案由 c o n t a i n e r 负责服务器的定位,一般都会是e j b 服务器制造商在c o n t a i n e r 中完成 均衡方案的实现。客户端方案由j n d i 服务提供者负责定位服务器。e j b 客户端使 用j n d i 来访问e n t e r p r is ej a v a b e a n s 组件。j n d i 是j 2 e e 中一项技术,以一种 统一的服务提供者的方式提供基层的名字和目录服务。为完成负载均衡,j n d i 需 要使用目录服务。因为目录服务中,可以根据目录属性来提取服务器端的主机负 载信息。因此,可以开发一个n a m ir i gd i r e c t o r ys e r v i c ep r o v i d e r 来提供e j b 负载均衡。 2 3j a v ar m l 分布对象机制 2 3 1j a v ar m i 概述 r m i ( 远程方法调用) 是j a v a 分布对象技术的主要组成部分。本节介绍了r m i 的原理、结构,以及r m i 与e j b 的关系。 2 3 1 1p u l i 原理 实现对象间网络通讯的方法有多种,传统方式是使用套接字( s o c k e t ) 和定 制协议来实现对象间通讯,在过去几年,远程过程调用( r p c ,r e m o t ep r o c e d u r e c a l l s ) 也曾经是一种流行的通讯机制。j a v a 则为远程对象间的通讯提供了另一 种机制,即远程方法调用( r m i ,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 虚拟机上的对象能够无缝地调用位于远程虚拟机 上另一对象的方法【”。通过使用r m i ,客户机可以象调用本地方法一样用相同的 语法调用远程对象的方法。 r m i 允许整个对象能被作为参数传递或返回,而不象许多基于远程过程调用 ( r p c ) 的机制,要求参数必须是原始数据类型或由原始数据类型构成的结构 ( s t r u c t u r e ) 。这就意味着任何j a v a 对象都能被作为参数传递,甚至是远程虚拟 机以前没有的类的实例对象。要使对象能作为参数或返回值在服务器与客户机问 传送,要求对参数和返回值进行串行化。s u n 开发了外部数据表示( x d r | ”,e x t e n d d a t ar e p r e s e n t a t i o n ) 系统来支持数据串行化。r p c 与r m i 之间的一个重要差别 是r p c 使用快速而不够可靠的u d p 协议,r m i 则使用低速而可靠的t c p 协议。 允许整个对象能被作为参数传递或返回是r m i 的重要特性,它意味着新的代 码能够通过网络发送,并被外部虚拟机在运行时动态加载,这使得j a v a 开发人员 基于j a v a r m i 肋分布对象负载均衡研究与实现 设计分布系统时有了更大的自由度。在与远程服务连接时,r m i 的客户机能够 问j a v a 服务所提供的新版本。代码刁i 仪能从本地或远程文件系统来访问,还可 过w e b 服务器来访问,这就使得分1 1 】! _ ! 为容易。r m l 支持登记,它允许客户寻 恃定的服务。使用r m i 时客户端建0 连接如图3 1 所示。首先,客户必须与 登记联系并请求服务的名字,客p 开1 i 知道r m i 服务确切的位置,但它知道 阿与服务的登记联系,从而定位陂t 似务,并访问该服务。由于服务定期更新, 而客户不需要有服务类的拷贝,客j 、公透明地自动从w e b 服务器上取得新类。 图2 3r m l 系j ;:r | 】、州构什间的交互 r m i 系统由三个独立的层次构段。j - 又j 框架层,远程引用层和传送层。由于 个层的边界是由专用接口或协议,jzr 1 ,因此各个层次之间相互独立,并可通 一个替换实现取而代之,不影响系统门其它层次。3 层问的关系如图

温馨提示

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

评论

0/150

提交评论