(计算机系统结构专业论文)基于j2ee平台的集群服务负载均衡的研究.pdf_第1页
(计算机系统结构专业论文)基于j2ee平台的集群服务负载均衡的研究.pdf_第2页
(计算机系统结构专业论文)基于j2ee平台的集群服务负载均衡的研究.pdf_第3页
(计算机系统结构专业论文)基于j2ee平台的集群服务负载均衡的研究.pdf_第4页
(计算机系统结构专业论文)基于j2ee平台的集群服务负载均衡的研究.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

(计算机系统结构专业论文)基于j2ee平台的集群服务负载均衡的研究.pdf.pdf 免费下载

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

文档简介

华中科技大学硕士学位论文 摘要 随着计算机技术的发展,信息技术的应用越来越普及,企业计算向网络组件方式 发展,目前存在三种组件平台技术: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 r a r c h i t e c t u r e ) 、c o m + ( c o m p o n e n t o b j e c t m o d e l + ) 、j 2 e e ( j a v a2 p l a t f o r m e m e r p r i s e e d i t i o 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 平台集群负载均衡提高了企业计算的有 效性和可伸缩性。 关键词:企业计算,j a v a2 企业版,集群,负载均衡 i 华中科技大学硕士学位论文 a b s t r a c t w i t ht h e d e v e l o p m e n t o fc o m p u t e r t e c h n o l o g y , t h ea p p l i c a t i o n o fi n f o r m a t i o n t e c h n o l o g y i sm o r ea n dm o r e p o p u l a r e n t e r p r i s ec o m p n t i n g i s a d v a n c i n g o n c o m p o n e n t n o wt h e r ea r et h r e ec o m p o n e n tp l a t f o r mt e c h n o l o g i e s :c o r b a ( c o m m o n o b j e c tr e q u e s tb r o k e r a r c h i t e c t u r e ) 、c o m + ( c o m p o n e n to b j e c tm o d e l + ) 、j 2 e e ( j a v a 2p l a t f o r me n t e r p r i s ee d i t i o n ) t h et e c h n o l o g yo fj 2 e ep l a t f o r mg r a d u a l l yb e c o m et h e f a c ts t a n d a r do f e n t e r p r i s ec o m p o n e n td e p l o y m e n t a s e x p a n d o f e n t e r p r i s ea p p l i c a t i o n ,t h em i d d l et i e r ( b u s i n e s st i e r ) o f a r c h i t e c t u r ei s m o r ea n dm o r ec o m p l e x t h ea p p l i c a t i o nb o t t l e n e c ko fj 2 e ei ss e r v e rt i e r t h ec l u s t e r i sas c a l a b l ep a r a l l e lc o m p u t i n gw i t hg o o dp e r f o r m a n c ea n dp r i c er a t i o t h ec l u s t e r b a s e dj 2 e ei se n t e r p r i s ea p p l i c a t i o no fg o o df o r e g r o u n d t h ec l u s t e rm a k e sag r o u po f s e r v e r so ri n s t a n c e st oc o o p e r a t ea n ds h a r ei n t e r i o ri n f o r m a t i o n ,w h i c hc a nr e d i s t r i b u t e a n db a l a n c el o a d t h eh i g hu s a b i l i t yp r o v i d e db yt h ec l u s t e rc a nc h e c kt h ef a i ln o d e a u t o m a t i c a l l ya n dt r a n s m i tt h er e q u e s tt oo t h e rn o d e i nj 2 e ep l a t f o r mt h e r ep r o v i d e m a n ys e r v i c e sa n dh a v ec o r r e s p o n d i n gm e t h o dt o d i v e r s es e r v i c e w en e e do p t i m i z e c l u s t e rp e r f o r m a n c e a tt h eb a s i so f r e s e a r c h i n g a l ls e r v i c e sc l u s t e rc h a r a c t e r i s t i co fj 2 e e p l a t f o r m t h e r e i sa na p p l i c a t i o no fg r o u pf i n a n c es o f t w a r eb a s e dj 2 e e a sa ni n c r e a s ei nb u s i n e s si n a p p l i c a t i o n ,t h eo l ds y s t e mc a n ts a r i s f yt h ef a c tr e q u i r e m e n t w er e l i e v et h es t r e s so f b u s i n e s st i e rb yc l u s t e rb a s e dj 2 e ea n dc o n f i g u r ec l u s t e ra p p l i c a t i o na tt h eb a s eo ft h e l o a db a l a n c i n gr e s e a r c ho fc l u s t e rb a s e dj 2 e e w eh a v eas t r e s st e s tt ov a l i d a t et h a t v a l i dm e t h o do fc l u s t e rl o a db a l a n c i n gc a na d v a n c et h em o s tc o o r d i n a t ea m o u n t ,w h i c h c a na u t o m a t i c a l l yb a l a n c ea l ln o d el o a d i tc a no p t i m i z el o a d b a l a n c ee f f i c i e n c y t h e a n a l y s i si n d i c a t e st h a tt h ec l u s t e rl o a db a l a n c i n gi nj 2 e ep l a t f o r mc a nm a x i m i z et h e s c a l a b i l i t ya n da v a i l a b i l i t yo fe n t e r p r i s ec o m p u t i n ga p p l i c a t i o n s k e y w o r d s :e n t e r p r i s ec o m p u t i n g ,j a v a 2e n t e r p r i s ee d i t i o n ,c l u s t e r ,l o a db a l a n c i n g 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他 个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集 体,均已在文中以明确方式标明。本人完全意识到,本声明的法律结果由本人承 担。 学位论文作者签名:俐荔 日期0 “侔歹月弦日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有 权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和 借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书。 本论文属于 不保密一 ( 请在以上方框内打“”) 学位论文作者签名奠枷器 日期沪悼j 月i 2 e | l 褥溯魏胖 日期洲年d 阳 f 华中科技大学硕士学位论文 1 1 课题背景及意义 绪论 本课题是作者参加了j 2 e e 平台应用项目后的分析工作的一部分。该项目的主要 任务是研究企业计算平台j 2 e e 的相关应用。本课题主要研究基于j 2 e e 平台的集群 负载均衡的规范及应用性能。 企业计算是以实现大型组织内部和组织之间的信息共享和协同工作为主要需求 而形成的网络计算技术。 j 2 e e 是由s u n 公司推出的一种全新概念的模型,是在分布式环境中的一种体系 结构,它提供了一种基于组件的设计、开发、集成、部署企业应用系统的方法。j 2 e e 平台提供了多层分布式的应用系统模型、可重用组件、统一的安全模型和灵活的事务 控制。基于组件的j 2 e e 企业应用系统具有平台独立性,所以不受任何软件产品和任 何软件厂家a p i 的约束。 j 2 e e 已成为企业级应用、电子商务交易的主要开发平台。符合j 2 e e 标准的产品 有b e a 公司的w e b l o g i c 、i b m 的w e b s p h e r e 、以及开放源代码组织的j b o s s ( 开放源 代码) 等,还有包括著名数据库厂家o r a c l e 、s y b a s e 在内的上百个产品( 具体信息请 参见链接h t t p :j a v a ,s u n c o r n j 2 e e i n d u s t r y h t m l ) 。它们基本上都是应用服务器产品,因 此j 2 e e 平台通常指的是应用服务器的平台。 在过去的四年中,j 2 e e 已经被证明是一个稳定的、可扩展的、成熟的平台【1 1 。它 具有平台独立的特性: j 2 e e 平台独立的特性包括两个方面,一是j a v a 语言本身的平台独立性,二是 j 2 e e 标准的平台独立性 2 】。j a v a 是一个跨平台的语言,在任何平台上,只要有j a v a v i r t u a lm a c h i n e ,就能在不同平台上执行间一个j a v a 程序。例如,b e a 的w e b l o g i c 在任何平台下部是同样的产品。因为它是1 0 0 纯j a v a 的。 另外,j 2 e e 标准的平台独立性使得任何符合j 2 e e 标准的应用服务器之阿可以共 华中科技大学硕士学位论文 用标准的组件。也就是说,在w e b l o g i c 下开发的组件也能用于w 曲s p h e r e 中。这样,在 电子商务应用的开发中可以任意选择或购买符合标准的通用组件,加快开发的过程。 j 2 e e 的平台独立性使程序的移植变得轻松简单。在j 2 e e 中,你可以把一个 w e b l o g i c + o r a c l e 的应用程序移植到w e b s p h e r e + i n f o r m i x 上,不需要改动任何源码, 只需要进行一些不算复杂的配置即可,这也是j 2 e e 为何如此流行的主要原因之一。 1 2 企业计算平台的发展概况 1 2 1 传统的应用体系结构 传统的应用体系结构主要有两种:c s ( c l i c e n t s e r v e r ) 模式与b i s ( b r o w s e s e r v e r ) 模式。 ( 1 ) c s ( 客户机朋艮务器) 模式: 图1 1 客户机服务器 目前绝大多数网络应用都采用这种方式,它将访问数据库的操作放在客户端程序 执行,即客户端通过应用程序直接对数据库进行操作。一般的企业m i s 系统都采用 这种结构。 ( 2 ) b s ( 浏览器朋艮务器) 模式: 图1 2 浏览器,服务器 可以看作是c s 模式的一种,访问数据库的操作由客户端的浏览器( i e n e t s c a p e ) 2 华中科技大学硕士学位论文 完成,不必安装特定的程序。随着n t e m e f f n t r a n e t 技术的普及和发展,网络应用中客户 端零管理成了众多企业的需求,所以这种体系结构正在越来越多地被应用推广起来。 1 2 2 多层应用体系结构 多层应用体系结构就是传统的两层结构的客户端与数据库之间加入一中间层,我 们称之为应用层【3 】。应用程序服务器就放在该层。 应用程序服务器( a p p l i c a t i o ns e r v e r ) 是驻留在服务器上的程序,为各种应用提 供了商业逻辑。服务器可以是网络的一个组成部分,尤其是分布式的网络 4 】。服务器 程序为客户机上的程序提供了各种服务。 a p p l i c a t i o ns e r v e r 最常用的场合是基于w e b 的具有三层结构的应用。 第1 层( 前端) :- b r o w s e r 测盟器( t h i nc l i e n t ,瘦客户机) ,为用户提供的g u i 图形接口 第2 层( 中间层) : 一a p p l i c a t i o ns e r v e r - 应用服务器 第3 层( 后端) :d a t a b a s es e r v e r 数据库服务器 a p p l i c a t i o ns e r v e r 处于3 层结构的第2 层,可以说,它是3 层体系中的集成部分, 和w e bs e r v e r 联合在一起处理客户端的各种请求。 图1 ,3 多层应用体系结构 a p p l i c a t i o ns e r v e r 的基本功能包括: 华中科技大学硕士学位论文 ( 1 ) 组件管理 提供管理工具来处理所有组件和运行时服务( r u nt i m es e r v i c e ) 【5 3 如s e s s i o n 管 理,同步异步客户端通知以及执行服务器上的商业逻辑( b u s i n e s sl o g i c ) 。 ( 2 ) 容错 提供没有任何单点( s i n g l ep o i m ) 错误的性能,定义出错恢复的策略以防止某个 对象或对象组出现问题。 ( 3 ) 负载均衡 根据服务器的当前负载及可用性,将请求提交给不同的服务器。 ( 4 ) 事务处理 ( 5 ) 管理控制台m a n a g e m e n tc o n s o l e 单点( s i n g l ep o i n t ) 图形管理界面,用于监控远端客户及服务器集群管理。 ( 6 ) 安全性 提供应用的安全性。 1 3j 2 e e 平台的发展概况 1 3 1j 2 e e 的内容 j 2 e e 是s u nm i c r o s y s t e m 公司提供的旨在为支持j a v a 语言服务器端部署而提供平 台无关的、可移植的、多用户的、安全的和标准的企业级平台1 。j 2 e e 作为一个规 范,包括如下几个部分: ( 1 ) 企业级j a v a b e a n s ( e j b ,e n t e r p r i s ej a v a t 3 e a n s ) :e j b 定义了如何编写服务器 端组件,并且为服务器端组件和管理这些组件的应用服务器之间提供了标准的协议。 e j b 是j 2 e e 中的重要组成部分,并且使用了其他的j 2 e e 技术。 ( 2 ) j a v a 远程方法调用( g 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 i i o p ( r e m o t e m e t h o di n v o c a t i o no v e rt h ei n t e m e ti n t e r - o r bp r o t o c 0 1 ) :r m i 是j a v a 语言自身提供的 用来在分布式对象之间的通信的机制,例如运行在两个不同的机器上的两个不同的对 4 华中科技大学硕士学位论文 象之间。 ( 3 ) j a v a 命名和目录接n ( s r , m i ,j a v a n a m i n ga n d d i r e c t o r y i n t e r f a c e ) :j n d i 用 于访问命名和目录系统。 ( 4 ) j a v a 数据库连接( 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 ) :j d b c 是访问关系型 的数据库的a p i 。 ( 5 ) j a v a 事务处理a p i ( j t a ,j a v a t r a n s a c t i o n a p i ) 幂dj a v a 事务处理服务( j t s ,j a v a t r a n s a c t i o ns e r v i c e ) :j t a 和j t s 规范为组件提供了可靠的事务处理支持a ( 6 ) j a v a 消息服务( j m s ,j a v a m e s s a g es e r v i c e ) :j m s 允许j 2 e e 部署通过消息 进行通信。 ( 7 ) j a v as e r v l e t :s e r v l e t 是一些用来扩展w e b 服务器功能的网络组件,它基于 请求响应( r e q u e s 仇t e s p o n s e ) 机制。 ( 8 ) j a v as e r v e rp a g e s ( j s p ) 等。 1 3 2 基于j 2 e e 平台的部署方案( 如下图所示) 图1 5 基于j 2 e e 平台的部署方案 5 华中科技大学硕士学位论文 = ;= = = = = = = # = = = = = = = = = = = = = = = = = = = = = = = = = 一: 1 3 3j 2 e e 应用服务器 包括b e a 公司的w e b l o g i c 、i p l a n e t 公司的i p l a n e t 、i b m 公司的w e b s p h e r e 、o r a c l e 公司的o r a c l e9 i 、m i c r o m e d i a 公司的j r u n 、p e r s i s t e n c e 公司的p o w e r t i e r 、b r o k a t 公 司的g e m s t o n e j 、h p 公司的b l u e s t o n e 、i o n a 公司的i p r o t a l 、b o r l a n d 公司的a p p s e r v e r 和j b o s s 源代码公开的应用服务器等。这些都是符合j 2 e e 标准中的应用服务器,很 好地支持了e 旧、j n d f 等j 2 e e 标准中的核心技术。 图1 6j 2 e e 平台应用服务器部署结构 j 2 e e 定义了下列组件: ( 1 ) 客户层:a p p l i c a t i o n ( 2 ) w e b 层:j a v as e r v l e t 和j s p 组件。 ( 3 ) 业务处理层:e j b 其结构如图所示,下面简要介绍各元素的主要功能: ( 1 ) e j b 容器 e n t e r p r i s ej a v ab e a n 实例运行于一个e j b 容器中。该容器是控制e n t e r p r i s eb e a n 并为其提供重要的系统级服务的运行环境。即你可以不用自己开发这些服务,而完全 华中科技大学硕士学位论文 集中在e n t e r p r i s eb e a n 的业务方法上。该容器为e n t e r p r i s eb e a n 提供如下服务: 1 ) 事务管理( t r a n s a c t i o nm a n a g e m e n t ) 事务是企业计算中的关键部分,j a v at r a n s a c t i o na p i ( j t a ) 给开发人员提供使用一 组简单的面向事务命令,在j a v a 代码中轻松可靠地控制事务。这些事务包括e j b 方 法调用、j d b c 数据库操作、j m s 消息系统以及对任何其他提供事务支持的计算源的 操作。 2 ) 安全( s e c u r i t y ) 容器允许只有被授权的用户才能激活e n t e r p r i s eb e a n 的方法。每一客户属于个 特别的角色,而每个角色只允许激活特定的方法。你应该在e n t e r p r i s eb e a n 的布置描 述中声明角色和可被激活的方法。由于这种声明的方法,你可以不必编写加强安全性 的规则。 3 ) 远程客户连接( r e m o t ec l i e mc o n n e c t i v i t y ) 容器负责管理在客户端及e n t e r p r i s e b e a n 之间的底层的交流。e n t e r p r i s e b e a n 被创 建后,客户端可以像在同一虚拟机中一样对e n t e r p r i s e b e a n 激活其方法。 4 ) 生存周期管理( l i f ec y c l e m a n a g e m e n t ) 一个e n t e r p r i s eb e a n 在其生存周期中将会历经几种状态。容器创建e n t e r p r i s e b e a n ,并在可用实例池与活动状态中移动它,而最终将其从容器中移去。即使可以调 用e n t e r p r i s eb e a n 的c r e a t e 及r e m o v e 方法,容器也将会在后台执行这些任务。 5 ) 数据库连接池( d a t a b a s ec o n n e x i o np o o l i n g ) 数据库连接池是一个有价值的资源。获取数据库连接是一项耗时的工作,而且连 接数据非常有限。容器通过管理连接池来缓和这些问题。e n t e r p r i s eb e a n 可从池中迅 速获取连接。在b e a n 释放连接后可为其他b e a n 使用。 ( 2 ) w e b 容器 w 曲容器是j s p 和s e r v l e t 的运行时环境。尽管w e b 组件是j 2 e e 中的一个重要部 分,我们将集中在e n t e r p r i s eb e a n 。更多地开发w e b 组件的信息,请参看有关j s p 及 华中科技大学硕士学位论文 s e r v l e t 的主页。 1 4 国内外的研发现状与动态 1 4 13 2 e e 应用服务器动态 美国m e t ag r o u p 发表了关于j 2 e e 应用服务器市场的调查结果。结果显示,今 后j 2 e e 应用服务器将仍然是i t 支出中的主要投资对象。但m e t a g r o u p 同时指出“虽 然有很多企业选择j a v a 作为战略性平台,但由于j 2 e e 过于复杂而难以引进的状况仍 然没有改变”。 关于j 2 e e 应用服务器市场,该公司表示“增长和集中同时进行”、“由于j 2 e e 应 用服务器日趋成熟,因此竞争关键在于可以支持多种平台的开发能力。尤其是拓展 w e b 服务、应用软件开发、面向企业用户的应用集成、业务流程自动化、门户、内容 管理等领域更为重要”。 在今后两年内,j 2 e e 市场上开放源码应用服务器的比例将会增加,其结果就是厂商 间的联合。2 0 0 6 年j 2 e e 的运行环境方面,l i n u x 将受青睐。由于j 2 e e 应用服务器的软 件堆栈已经相对稳定,产品间的差异较少,不同平台间的代码转换也非常容易” 7 】。 其它主要调查结果如下: ( 1 ) 目前,美国i b m 和美国b e a s y s t e m s 处于优势地位。m m 在知名度、战略 眼光、多种平台、提供能力方面拥有优势,而b e a 的强项在于技术和销售渠道方面。 ( 2 ) 美国甲骨文正在威胁i b m 和b e a 的领先地位。在过去的1 8 个月中,该公 司大幅缩小了与上述两公司间的差距,在今后的6 - - 9 个月内差距将进步缩小。 1 4 2 应用服务器集群负载均衡研究动态 对于j 2 e e 应用服务器集群的研究与对j 2 e e 平台中间件的研发不同,基于j 2 e e 平 台的中间件有明确的规范可以遵守,因此主要工作在于实现细节的差异和随之而来的性 能不同,而对于e j b 容器的集群研究则不同,因为没有任何规范可以遵守,所以单从集 群要达到的最终效果而言,每个应用服务器提供商对集群的理解是不同的。 华中科技大学硕士学位论文 作为e j b 容器集群,现在大部分主流的j 2 e e 应用服务器产品都提供了该功能,如 w e b l o g i c 、w e b s p h e r e 、o r a c l ei a s 等。如果从技术角度而言,该技术属于比较成熟的 技术。但是,很少有开发源码的容器实现集群功能,国内中间件公司在研发时没有可借 鉴的参考实现,而商品化的j 2 e e 产品的内部集群实现,也是不透明的。目前国内的j 2 e e 应用服务器虽然都号称具有集群功能,但往往这种集群是通过从w e b 服务器或w e b 容 器的级别上,利用w e b 服务器扩展来实现的,不是真正意义上的e j b 容器集群。 因此,通过对应用服务器集群的基本技术研究与探讨,着重对集群负载均衡的研究 对j 2 e e 平台应用服务器的集群有一定的推动作用和应用价值。 1 5 本文主要研究内容 随着企业应用的扩展,对系统的可靠性、可扩展性和可维护性的要求越来越高。 虽然并行计算机、巨型机能够在一定程度上满足上述要求,但是随着p c 机性能的不 断提高,基于p c 服务器的集群也是一种高性价比的解决方案,已越来越受到人们的 关注。 作为企业计算事实上的平台标准j 2 e e ,提高j 2 e e 平台集群的应用效率具有非常 现实的意义。 本文拟通过研究j 2 e e 平台中集群的负载均衡,并在实际的项目中进行应用,其 研究工作包括: ( i ) j 2 e e 平台的集群服务: ( 2 ) 在研究了j 2 e e 平台各类服务的基础上,针对不同类型服务研究其集群负载 均衡策略; ( 3 ) 基于j 2 e e 平台集团财务软件的应用; ( 4 ) 随着集团财务软件应用的扩展,系统运行中存在应用服务器瓶颈问题,因 此采用了高性价比的集群解决方案,随之而来的集群负载均衡问题的解决,从实践中 阐述集群负载均衡的实际意义: 9 华中科技大学硕士学位论文 ( 5 ) 对集群负载均衡进行理论分析,并通过模拟客户访问来测试集群负载均衡 的性能,从理论上和实验中得出负载均衡策略的有效性结论。 1 0 华中科技大学硕士学位论文 2j 2 e e 平台的研究 j 2 e e 平台作为事实上的企业开发标准,已受到越来越多的人的关注。为了有效的 进行j 2 e e 平台的集群分析,需要了解j 2 e e 平台技术的发展概况。本章首先从平台 发展的角度对软件技术进行了简要的描述,然后着重对分布式组件技术进行分析,然 后研究分布式组件技术的重要分支j 2 e e 平台。 2 1 平台技术发展综述 2 1 1 面向对象技术 面向对象技术包括面向对象编程语言,面向对象的分析o o a ( o b j e c t e d o r i e n t e d a n a l y s i s ) 与面向对象设计o o d ( o b j e c t - o r i e n t e dd e s i g n ) 、对象建模技术o m t ( o b j e c t m o d e l i n gt e c h n i q u e ) 和面向对象的软件工程o o s e ( o b j e c t - o r i e n t e ds o f t w a r e e n g i n e e r i n g ) 几个方面,相对于面向过程的语言及面向过程的分析与设计、其更与现 实世界的事物相接近。 传统的面向过程技术,主要适应于设计大量计算的算法类问题,在应用到企业应 用系统时,往往是在功能分析和数据分析的基础上,把算法作为基本构造单元。采用 这种技术设计的系统在早期还可以满足要求,但是在越来越复杂和易变的非数值计算 的系统中存在如下不足: ( 1 ) 功能与数据分离的软件设计结构和人的自然思维不一致,不能正确反映现 实环境的应用系统对象,对于现实世界的认识与编程语言之间无任何关联。 ( 2 ) 系统实现往往围绕如何实现一定的行为进行,当系统行为易变时修改非常 困难。 ( 3 ) 自顶向下的功能分解的分析方法极大的限制了软件的可重用性,导致对同 样对象的大量重复性工作。 面向对象技术把功能与数据看成是高度统一的,它有如下优点: 华中科技大学硕士学位论文 ( 1 ) 使用各种类型的抽象、将应用系统的实体映射成对象,使系统设计更能反 映需求。 ( 2 ) 通过形成更抽象、聚集度更高的模块、提高了软件模块化,由于对象的扩 展性能较好的处理软件规模和复杂性不断提高带来的问题。 ( 3 ) 当面向对象的设计语言与面向对象的数据库相结合使用时,能大大减少代 码的规模,提高开发效率。 商业对象( b u s i n e s so b j e c t ) 是应用系统在设计时使用面向对象的分析与设计方 法抽取的对象,商业对象在实现时通常采用面向对象的语言及组件对象模型。采用面 向对象的方法来设计商业对象的优点是能够将用户和应用系统结合,这种方法对商业 逻辑进行模拟。不需要关心系统的拓扑结构和系统类型。用户能够通过使用公布的接 口在任何需要的地方调用商业对象,当需求使商业对象发生改变时,如果原始的对象 接口保持不变,则无需改变客户端程序代码。 2 1 2 分布式技术 分布式应用系统是由一组逻辑上或物理上分离的部件组成的,部件通常在各自的 平台的运行环境中运行,平台可以是异构的,平台间通过网络连接。 典型的分布式应用系统是两层的c s ( 客户机朋艮务器c l i e n t - s e r v e r ) 和多层的客 户,多层中间件多层服务器( c l i e n t - m u l t i p l em i d d l e w a r e m u l t i p l es e r v e r s ) 结构。分布式 技术并非只包含有客户机连结服务器这样一种简单的技术,包含于分布式系统中的服 务器可以分散布置于网络中,每个服务器实现单独的功能,并且有和其他分布式系统 集成在一起,这样就能够根据服务器的性能及业务需要将软件的不同功能分散布置于 网络中。分布式技术的另一个用途就是将不同的系统集成起来。 多层结构分布式环境是一组网络、数据和应用的集合,其中客户机和服务器可以 动态地建立或断开连接以满足用户的需求。这种模式下,用户可以在任何时间、任何 地点存取数据及应用,其优点是:无论何时对组件或子件进行简单或复杂的修改,都 不会对其他组件造成影响。多层结构分布式计算环境仍是客户机服务器模式的一种 1 2 华中科技大学硕士学位论文 扩展,因为在层与层之间仍然是以客户机请求服务和服务器提供服务的方式完成对 话。 2 1 3 组件技术 组件( c o m p o n e n t ) 又称为构件是可重用和可部署的软件模块,内部实现特定的 功能或封装了特定的商业逻辑,对外公布一系列接口供存取,通过组件重用开发人员 能够快速构造企业应用,提高代码利用率。分布式应用特别要求不同网络节点上的组 件能相互通信,互相协作完成特定任务。 组件对象模型是关于开发可重用组件和组件之间相互通信的一组标准,为开发者 定义组件的体系结构和a p i 集合,使开发者可通过组件的动态组合来建立应用系统。 组件模型有组件及容器两个主要组成部分:组件是具有可重用特性的基本软件部件; 容器用于存放和安排组件甜。管理和实现组件间的交互,容器也可以作为另个容器 的组件使用。通过重用已有的组件,软件开发者可以快速构造应用程序,这样不仅可 以节省时问和费用,提高工作效率,而且可以构建更加规范、可靠、易维护的应用系 统。 2 1 4 中间件技术 为了适应大型企业对多层分布式计算结构的需要,保证在异构、分布的环境中完 成各类企业数据的可靠性传输与处理,实现各类资源的共享,需要一种软件将所有的 应用连在同一个平台上,这样的软件就叫中间件( m i d d l e w a r e ) 。中间件具有把大型 系统中分散的系统资源组合在一起的能力。中间件位于硬件、操作系统平台和应用程 序之间,具有标准的应用程序接口,可实现不同硬件和操作系统平台上的数据共享和 应用互操作。允许跨平台客户应用程序在企业范围内定位、访问、操纵和移动数据, 而不必考虑企业信息系统和网络本身。 从概念上理解中间件有以下几种: ( 1 ) 据库访问中间件:对异构环境下的数据库实现连接,能够建立数据资源的 1 3 华中科技大学硕士学位论文 互操作如:o r a c l e d bi n t e g r a t o r s 。 ( 2 ) 消息中间件:消息中间件通过消息队列接口位程序提供一种异步通信方式, 她不需要应用程序和通信介质( 或网络) 以及远程应用系统之间的耦合,也不需要进 行通信的应用程序同时运行,如:i b mm q s e r i e s 。 ( 3 ) 通信中间件:用来屏蔽各种平台及协议之间的差异,实现应用程序之间的 协同通信,如:r m u i l o p 。 ( 4 ) 分布式交易处理中间件:在分布异构环境下提供保证交易完整性和数据完 整性的一种中间件,如b e at u x e d o 、m i c r o s o f td t c ( d i s t r i b u t e dt r a n s a c t i o n c o o r d i n a t o r ) 等。 ( 5 ) 组件对象中间件:在分布、异构的网络计算环境中,可以将各种分布式组 件有机地组合在一起,完成系统的快速集成。 应用服务器可以是具有上述功能的中间件的组合,它通过把用户接1 :3 、商业逻辑 与服务器端的服务分割开来为开发者提供一种创建、部署和维护企业规模应用的模块 化方式。应用服务器提供事务管理服务、目录服务、安全服务、数据库连接服务及组 件对象的管理等服务。 2 2 分布式组件对象模型分析 2 2 1 分布式组件对象模型概述 组件对象模型是关于组件与组件之间以及组件与容器之间相互通信遵循的规范。 分布式组件对象允许和远程客户交互,客户可以是一个应用也可以是其他远程对象。 应用时通常在服务器端刨建一些远程对象,并且允许客户端应用获得远程对象的引 用,客户端应用获得引用后就可以调用远程对象公布的方法。 分布式应用设计中一个重要部分就是选择分布式组件对象模型。目前广泛采用的 分布式组件对象模型有m i c r o s o f t 的d c o m ( 分布式组件对象模型d i s t r i b u t e d c o m p o n e n to b j e c tm o d e l ) c o m + 、o m g 的公共对象请求代理模型c o r b a t 9 1 和s u n 1 4 华中科技大学硕士学位论文 公司的e j b 模型。 d c o m 是m i c r o s o f t 的分布式组件对象模型,是组件对象模型c o m 在分布式环 境下的扩展,c o m 则是从o l e 发展而来的,c o m + 贝, j 是d c o m 与m t s 的集成扩展, 并提供一些特殊管理功能,是m i c r o s o f t 的最新组件平台标准。d c o m c o m + 组件间 的互操作基于指针进行,十分依赖于操作系统的a p i ,目前d c o m c o m + 与w i n d o w s 操作系统紧密集成在一起,仅限于m i c r o s o f t 提供的系统平台1 0 1 。下面主要介绍 c o r b a 与e j b 模型。 2 2 2c o r b a ( 1 ) c o r b a 概述 o m g 于1 9 9 0 年提出o m a ( 对象管理架构o b j e c tm a n a g e m e n t a r c h i t e c t u r e ) 并在 此基础上提出公共对象请求代理程序体系结构( c o r b a ) ,目前已公布了c o r b a 3 0 【1 1 。在j a v a 出现以前c o r b a 一直是高端的分布式组件对象模型,并获得了众多 平台的支持,如:n o v e l l 、u n i x 等。c o r b a 模型有四部分组成: 1 ) o r b :对象相互通信的软总线。 2 ) c o r b a 服务:定义了附加到o r b 的系统级服务,包括名称服务( c o s ,c o m m o n o b j e c ts e r v i c e s ) 、事务服务( o t s ,o b j e c t t r a n s a c t i o ns e r v i c e ) 及安全服务、生命周 期服务。 3 ) c o r b a 设施:定义应用程序级服务,为许多不同应用程序提供一套一般用途 的功能如:复合文档管理工具、数据库存取工具、文件打印工具等。 4 ) 商业对象:定义应用环境中的对象和应用,为最终用户提供一套完成特定任 务的对象。 四个部分的关系如下: 1 5 华中科技大学硕士学位论文 图2 1c o r b a 模型 ( 2 ) 接口定义语言i d l i d l ( i n t e r f a c ed e f i n e dl a n g u a g e ) 是定义部件接口的中介语言,用i d l 定义的部 件可以在不同语言、工具、操作系统和网络问移植,并且能够通过任何厂商提供的 o r b 实现部件间的互操作。i d l 是一种描述语言,只能用来描述对象的接口,不能 用来具体实现对象的接口。c o r b a 对象本身可以用诸多语言实现( 如:c + + 、 s m a l l t a l k 、a d a 、j a v a ) ,只要有i d l 到这些语言的映射机制:i d l 编译器。编译器根 据接口定义文件( 扩展名为i d l ) 生成服务端框架( s k e l e t o n ) 和客户端代码( s t u b ) , 通过与服务方、客户方代码联编即可生成最终的服务器端和客户端系统。 ( 3 ) 对象请求代理o r b o r b 是c o r b a 中最重要的部分。o r b 最基本的功能是对应用程序或其他o r b 的请求给予响应,包括:查找并调用远程计算机上的对象,负责不同编程语言间的参 数转换( 当使用不同语言编写c o r b a 对象时) ,自动激活一个当前没有装入内存的 对象,用动态方法调用激活远程对象,用下载的代码中描述的静态方法调用去激活远 程对象中的方法等。 当客户端向服务器端发送请求时,客户端不许了解远程c o r b a 对象的位置和实 现细节而由客户端s t u b 作为远程方法的代理。只需在本地系统包含对远程对象的引 华中科技大学硕士学位论文 用,客户通过对象引用调用s t u b 方法( s t u b 方法在o r b 中) ,o r b 把对s t u b 方法的 调用传递到服务器端,服务器端o r b 把远程调用利用框架代码转换成对服务器端本 地对象的调用。 c o r b a 对象相互通信以o r b 为中介,o r b 问的互操作基于o m g 的g i o p ( g e n e r a li n t e r - o r bp r o t o c 0 1 ) 协议,g i o p 定义了传输语法和任何面向连接的o r b 互操作的信息格式。为了使c o r b a 能够适用于不同的通信协议,o m g 定义

温馨提示

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

评论

0/150

提交评论