




已阅读5页,还剩62页未读, 继续免费阅读
(计算机应用技术专业论文)corba及其容错技术研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着通讯技术和计算机技术的迅猛发展,分布式对象计算技术的应用越来越 广泛。在分布式技术向应用领域扩展的同时,分布式应用对分布式系统提供的服 务质量的要求越来越高,分布式系统的可靠性和可用性也同益受到重视。为了保 证分布式系统高可靠性和高可用性,必须为分布式系统提供容错服务。因此,如 何为分布式系统提供容错服务就成为当前分布式系统研究和发展的重点。 在容错中间件的研究中,当前存在两个十分重要的问题:一是容错中间件的 复制模型问题;二是容错中间件的复制实现方法问题。对于这两个问题的研究具 有非常重要的意义,迫切需要从理论和实践两方面加以解决。本文以国际对象管 理组织o m g 的c o r b a 中间件模型平台为载体,集中突破容错中间件在设计部 署和运行阶段如何实现复制管理的方法难点,提出一种异步主动对象复制模型, 为容错中间件提供理论和方法支持。 本文首先在当前容错中间件领域中集成、服务和截取三种容错计算模型研究 的基础上,提出一种新的容错系统模型。新的模型结合了服务方法的优点,并对 服务方法中的复制逻辑进行抽象,有效实现对容错平台中所有应用对象的容错管 理,并为客户提供良好的透明性和互操作性。 其次,容错中间件旨在为基于中间件开发的分布式应用提供一个容错支撑平 台,因此必须为应用解决对象复制、失效检测和通告、曰志和恢复等容错管理问 题。本文针对对象复制的问题,提出一种可互操作逻辑i r l ,重点解决失效情况 下对象复制的问题。 关键字:c o r b a ,容错,对象复制 a b s t r a c t w i t ht h ec o m m u n i c a t i o nt e c h n o l o g ya n dc o m p u t e rt e c h n o l o g yg r o w i n g r a p i d l y , t h ea p p l i c a t i o no fd i s t r i b u t e do b j e c tc o m p u t i n gt e c h n o l o g yh a sb e e nm o r ea n dm o r e w i d e l yu s e d w i t ht h ee v e ri n c r e a s i n ga m o u n to fd i s t r i b u t e dt e c h n o l o g ya p p l i e di n w i d er a n g eo fd o m a i n s ,t h er e q u i r e m e n to fq o ss u p p l i e db yd i s t r i b u t e ds y s t e m si s m o r ea n dm o r eu r g e n ta n dt h eh i g hr e l i a b i l i t ya n dh i g ha v a i l a b i l i t yo fd i s t r i b u t e d s y s t e m st e n dt ob er e c e i v e dt a k e sd a yb yd a y t oe n s u r et h eh i g hr e l i a b i l i t ya n dh i g h a v a i l a b i l i t yo fd i s t r i b u t e ds y s t e m s ,i tn e e d sf a u l t t o l e r a n ts e r v i c ef o rd i s t r i b u t e d s y s t e m s t h u s ,h o wt os u p p l yt h ef a u l t t o l e r a n ts e r v i c ef o rd i s t r i b u t e ds y s t e mb e c o m e t h ek e yp o i n to ft h er e s e a r c ha n dt h ed e v e l o p m e n ta tp r e s e n t c u r r e n t l y , t h e r ea r et w oi m p o r t a n tp r o b l e m si nt h er e s e a r c ho nf a u l t t o l e r a n t m i d d l e w a r e :1 ) t h er e p l i c a t i o ns t y l ef o rf a u l t t o l e r a n tm i d d l e w a r e ,a n d2 ) t h ek e y r e p l i c a t i o ni m p l e m e n t a t i o nm e t h o do ff a u l t - t o l e r a n tm i d d l e w a r e i ti ss i g n i f i c a n tt o m a k er e s e a r c ho na b o v et w op r o b l e m s i ti sn e e d e dt ob ea d d r e s s e df r o mb o t ht h e t h e o r e t i ca n dp r a c t i c a lv i e w s b a s e do nc o r b am i d d l e w a r em o d e lp l a t f o r mb yo m g , b r e a k i n gt h r o u g ht h ed i f f i c u l t i e so fh o wt or e a l i z et h er e p l i c a t i o nm a n a g e m e n to ft h e m i d d l e w a r ed u r i n gd e s i g n i n g 、d e p l o y i n ga n dr u n n i n gt i m e ,a na s y n c h r o n o u sa c t i v e r e p l i c a t i o nm o d e li sp r o v i d e da n dt h et h e o r e t i ca n dm e t h o ds u p p o r tf o rf a u l t t o l e r a n t m i d d l e w a r ei ss u p p l i e d f i r s t ,b a s e do nt h er e s e a r c ho ft h et h r e ef a u l t - t o l e r a n tc o m p u t a t i o nm o d e l ,f o r e x a m p l e ,t h ei n t e g r a t i o ns t r a t e g y 、i n t e r c e p t i o ns t r a t e g ya n dt h es e r v i c es t r a t e g yi n r e c e n tf a u l t t o l e r a n tm i d d l e w a r ed o m a i n ,t h i sp a p e r p r o p o s e sam o d e lo ff a u l t t o l e r a n t w i t ht h ea d v a n t a g eo ft h es e r v i c em o d e l ,t h en e wm o d e la b s t r a c t st h er e p l i c a t i o nl o g i c f r o mt h es e r v i c em o d e lt o m a n a g ea l la p p l i c a t i o nf a u l t t o l e r a n to b j e c t si nt h e f a u l t t o l e r a n tp l a t f o r m e f f e c t i v e l y , a n d西v ec l i e n tt h e g o o dt r a n s p a r e n c y a n d i n t e r o p e r a b l e s e c o n d ,f a u l t t o l e r a n tm i d d l e w a r ei sf o rt h ep u r p o s eo fp r o v i d i n gaf a u l t - t o l e r a n t s u p p o r t i n gp l a t f o r mf o rd e v e l o p i n gd i s t r i b u t e da p p l i c a t i o nb a s e do nm i d d l e w a r e t h u s , i tm u s ts o l v et h ep r o b l e m so fo b j e c tr e p l i c a t i o n ,f a u l td e t e c t o r s ,f a u l tn o t i f i e r , l o g ,f a u l t r e c o v e r ya n d s oo n k e y w o r d s :c o r b a ,f a u l t t o l e r a n t ,o b j e c tc o p y 独创性( 或创新性) 声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得天津工业大学或其他教育机构的学位 或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在 论文中作了明确的说明并表示了谢意。 学位敝作者签名:弘玩么 签字同期:咔z 月咖 学位论文版权使用授权书 本学位论文作者完全了解丞洼王些太堂有关保留、使用学位论文的规 定。特授权丞洼王些太堂可以将学位论文的全部或部分内容编入有关数据库 进行检索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。 同意学校向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作肯虢7 趴撅欲 签字眺研年砂月r 同 导师签名: 答字h 期:叩 琴际 年。月而 学位论文主要创新点 针对容错关键问题:对象复制,提出一种可互操作逻辑i r l 。在i r l 的设 计上,采用主动复制协议实现了三层主动复制结构。结构提出了一个介于 异步客户端和异步服务器副本之问的中间层的概念。中间层负责接受客户 的请求,保证请求序列的有序性并把请求发给下层,下层处理后返回结果 给中间层,中问层负责把结果返回给客户端。 综合被动复制方式和检查点设置方法实现了容错的服务方和客户方算法。 p r i m a r y 在执行时定期地将状态设置检查点,存储到检查点文件中。p r i m a r y 失效时,b a c k u p 将从最近一个检查点实现恢复,提升为p r i m a r y 。 第一章绪论 1 1 引言 第一章绪论 目的,以c o r b a 为代表的分布对象计算技术已日趋成熟,越来越多的分布 式应用系统利用c o r b a 提供的标准服务和协议来实现。基于c o r b a 的新一代 的分布式系统,如分布式实时控制系统、在线支付系统和股票交易系统都需要可 靠性保证。容错技术是分布式系统运行过程中可靠性保证的重要手段,可以在分 布式系统的每一个层次实现,利用底层的c o r b a 基础设施提供容错机制具有显 著的优势,既能够避免系统层为支持容错而做的巨大改变,又能够简化应用软件 的设计。因此,c o r b a 容错技术已经成为国外c o r b a 研究的重点课题。冗余 是实现容错的根本保证,可以分为硬件冗余、软件冗余和时间冗余。在面向对象 系统中,软件冗余通常以多个冗余对象的方式存在,因此也可以称为实体冗余。 实体冗余是容错c o r b a 的根本保证,确保系统在部分实体出现失效的情况下仍 能够提供正确的服务。 当前,国外研究机构已就分布对象应用系统的可靠性和可恢复性进行了大量 的研究工作,并提出了一些典型系统,如e l e c t r a ,o r b i x + i s i s ,e t e r n a l ,a q u a c 和d o o r s ,以及一些工具如w o l i p a c k ,w a t c h d 和f i r s t w a t c h 。但这些系统和工 具还存在一定的局限性并不能有效地解决分布对象系统的容错问题。例如 w o l f p a c k ,w a t c h d 和f i r s t w a t c h 基于进程来实现错误检侧和恢复,因此无法有效 的检测c o r b a 对象的失败,恢复对象问复杂的关系及有效的记录和恢复对象的 状态。e l e c t r a 和o r b i x + l s i s 要求修改o r b 来支持容错,系统的兼容性差,a q u a 和d o o r s 尽管系统兼容性好并且提供了基于对象的检测和恢复机制,但没提供 灵活的复制方式及失败恢复机制。因此,如何在通用的c o r b a 平台上提供更加 强人、高效的容错支持是当前研究的热点问题。本文讵是针对此热点问题,因此 对c o r b a 容错技术进行了研究。 1 2 研究背景 1 2 1 理论技术背景 随着计算机网络技术的迅猛发展,通过网络相连的分布式计算环境越来越普 遍,分布式计算技术以不可逆转的势头进入到政治、经济等社会生活领域的各个 天津i :业人学硕十学位论文 角落,深刻地影响着我们的生活。而反过来各领域的实际需求又强烈的促进了分 布计算技术的发展,对分布式计算研究者提出了更高的要求。 九十年代,计算技术最引人注目的进展之一就是应用环境从集中走向分布。 分布计算环境由各种各样的异构系统组成,它们之间的通信模式复杂多样,使分 布式系统中的软件开发比集中式系统更为困难。为解决这一问题产生的中间件技 术几乎成了丌发分布式应用必不可少的手段,近年来尤以面向对象的中间件技术 发展最为迅速。对象管理组织o m g 的c o r b ai t j 、s u n 公司的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 ) 1 2 j 和微软的分布式组件对象模穆d c o m ( d i s t r i b u t e dc o m p o n e n to b j e c tm o d e l ) 1 3 1 等标准及其大量产品已被业界所广泛接 受。它们不仅充分利用了对象建模的优点,提供了类似于丌发集中式系统的丌发 环境和工具,而且在此基础上发展了消息、命名、持久对象等一系列可以直接使 用的对象服务,为丌发分佰式系统提供了强有力的支持。 相比之下,为中f h j 件提供较完整的容错支持的工作起步较晚,原因在于为容 错提供支持的中问件软件技术不够完善,一方面必须能整合已有的中间件技术, 与原有的中间件及其服务规范相容;另一方面还要能把发展已经较为成熟的,在 集中坏境罩、专业领域罩广泛使用的容错技术纳入到中间件中。 因此,在设计和实现一个实际的分和式容错应用系统的时候,软件工程师虽 然可以享受巾问件技术提供的便利,但是他们还是要在应用层加入容错处理来保 证系统的可靠性、可用性等。这些一般与要实现的应用逻辑没有紧密的联系。实 现应用逻辑基本上是特定应用的具体问题转化成计算机表达方式的过程,而加入 的容错处理逻辑则带有鲜明的分布式系统的共同特征,例如网络通信的不町靠 性。根据软件设计的分而治之的思想,软件工程师希望能对容错应用丌发和运行 提供中问件层次上的支持,目的是只需把丌发的应用程序模块纳入到容错中f n j l , l = 的运i j :框架中束,就可以获得满足要求的容错能力,最人程度上使应用丌发者摆 脱丌发容错逻辑的负担,而更多地去关注应用逻辑。分命式容错的应用体系结构 如图1 1 所示。 应用程序应用程序 l 应用程序应用程序 组件重用支持通用对象服务容错中间件 分布对象对底层支持 l 底层操作系统( o s ) 图卜1 分布式容错应川体系结构 2 第争绪沦 122 实际应用背景 | 萍错足确保系统可信度的有效手段由j 分m 腻系统客观上为硬件冗余提供 r 物质基础,所以在这种系统中增设窖错功能一然成为用,、所向往的要求,容错 巾可件在啦用领域有着迫切的需求。 比如在当今的企业缎关键业务领域,像航天航空、电信、会融等使用的复杂 的分布t 应用迫切要求旦备商可靠性和商可用性。而这些应用绝大多数部采用了 丝于中问件的分布式软件系统。这此系统日锚,就会带束巨人的经济损失, 例如一个会威企、| p 信川t - 系统何小时的主机失效时问,f 均会给企业带束 $ 2 ,6 ( 】0 ,呻0 的经济损失( 束自美国商业报告川) ,时甚至会带来无法挽回的灾难, 比如军事导弹捧制。_ r :为返些原因,弈错中删什非常自然的成为了当前研究的 r 个热点。 航空航天领域也非常戈;j = 春错技术的发展:在甘j j 口情况卜,容罐取得脚j f j 成 裂最多的领域之的足航空凯灭领域,山下限领域的特殊性,位其埘j 系统的uj 靠悱要求极高,系统巾任何 个,不mr 玑故障就自可能波及到整个系统安个,见 代军事的竞争,已经从常胤武器的研发转移到了太窄作摧能力的提川,即外空 的竞争。为提曲我圈的田防现代化水h 盘足j 打赢r 苛技术条件f 的局挪r 点争, r 必须也太空战场l 取得动地位。从我田成功发射神舟系列a 空e 仃器到巾幽嫦 娥探ji o 埋的成功发射和准确变轨,都需坦 个互联、互通、吐操作、资源j 牛 的i 咄书体系结构、f 台上,其一e 蛭地位要求岛可靠什椰高一, h 性,而恶劣的外 空 环境x 增加丁系统火教和被损毁的概率,币但需受艘件设备i 容铅,i h 软件系 统也需要宵根强的择错能力。嫦娥掩h 卫j 就携凇丁套完整的容错蔷份系统, “ 系统失效时,备份系统n 动运行,按照原柬的要求继续执行i i 划。这就使得 航空航天预域的容错软件系统 发更加复杂和喇雕,对j 于航宅航- 人毒! j ! 域的容错 中州件提出了更高的要求。圈1 2 为航伞航天领域的分如式容错应川。 hl - 2 航空越 领域竹分布式布惜廊川 大沣i :业人学硕十学位论文 1 3 国内外现状及意义 1 3 1 研究现状 在容错中间件的研究领域,推出了许多重要的系统。例如基于s u n 的j a v a r m i 模型的a r j u n a i 5 】1 6 l 系统,f r i e n d s l 7 】系统,以及f i l t e r f r e s h l 8 j 系统等;基于微 软的d c o m 模型的c o m e r a l 9j 系统等;基于o m g 的c o r b a 模型的e t e r n a l l l o l 系统等。 因为c o r b a 是一种丌放标准,广泛应用于企业和航空航天领域,在中一i j 件 模型中极具代表意义,所以本文将着重探讨基于c o r b a 的容错技术的研究现 状。 当前基于c o r b a 模型的容错研究工作主要致力于增强c o r b ao r b 及其 应用的容错能力,支持把原来的单个服务对象复制成多个同时运行的副本,并对 其提供相应的管理来实现容错。 国外已经有许多大学和研究所研究丌发的容错中间件系统在不同的领域内 运行。由苏黎世大学丌发e l e c t r a l l l l l l 2 l 系统,通过添加组通讯和o r b 的集成的方 式来实现容错。由朗讯实验室研制的容错对象中间件d o o r s l l 3 】1 1 4 1 1 1 5 1 ,作为通用 对象提供服务,它通过添加容错服务对象到o r b 上来实现容错。由美国加州大 学开发的e t e m a l l l l l 【1 6 i i l 7 1 1 1 8 l 系统,它是运行在c o r b ao r b 和操作系统之间的中 问件,通过在t c p 层截获l l o p 调用,并将它们重定向到组播协议,来维护副本 状态的致性实现容错。 以上这几个系统都是幽外比较流行和经典容错应用系统,都已经实现并在一 定的领域发挥作用,现在有不少的研究者通过努力改善系统的容错性能不断的提 高系统的稳定性,同时也在这些系统中加入新的设计方法来解决其中存在的一些 性能瓶颁卜的l 、u j 题。 在国内,也已经有很多研究所和大学7 1 :发了自己的容错中问件平台,并在 不同的系统上实现,最有影响的是国防科技大学的自主丌发研究实现的f t b u s l l 9 1 平台。这个平台提出了良好的容错中问件计算模型和复制对象的管理框架,并基 于模型和框架有效实现了一个原型系统,同时对分布式对象容错研究需要解决的 一些关键问题,比如:复制管理,失效管理,f 志和恢复管理等提出并实现了自 己的解决方案。国内其他大学也有自己的中问件产晶或系统模型,比如电子科技 大学的实时容错中问件系统1 2 0 l 等。 1 3 2 研究意义 本文研究的意义表现在: 4 第一章绪论 ( 1 ) 提出一种容错中问件平台的设计和解决方案,为分布式系统提供一种新 的容错支撑平台。 ( 2 ) 在o p e n c c m 平台中加入容错服务,增加o p e n c c m 平台的可靠性和可 用性。 ( 3 ) 为以后容错技术的研究具有一定的意义。 1 4 本文主要的研究工作 本文从理论和实践两方面对分布式系统中的容错性进行了较为深入的研究, 通过在开源的平台o p e n c c m 平台上设计和加入容错支持,致力于研究容错应用 支撑平台的关键技术,设计和实现一个基于c o r b a 的容错支撑平台。 本文的主要工作包括: ( 1 ) 探讨了c o r b a 有关的一些概念和技术; ( 2 ) 详细介绍了分布式容错中间件的关键技术问题; ( 3 ) 研究在o p e n c c m 开源平台中加入容错机制的可行性,探讨具有容错性 能平台方案的关键技术问题: ( 4 ) 基于o p e n c c m 提出了新的容错模型的具体解决方案,完成容错模型的 关键部分的设计,即设计和实现容错模型中复制体系结构的设计和实 现; ( 5 ) 对新容错模型进行功能测试和性能测试。 1 5 本文结构 本文共分为六章。 第一章绪论。主要介绍研究背景、研究现状和意义并简单说明本文的主要 工作以及组织安排情况。 第二章c o r b a 概述。本章首先介绍了c o r b a 的产生背景;然后探讨了 c o r b a 所基于的概念框架是对象管理体系结构0 g a ;最后对c o r b a 标准, c o r b a 与j a v a 关系上做了简要说明。 第三章分布式容错中问件基础。从容错中间件的相关概念出发,解释在分 御式系统中引入容错中间件的原因,提出容错中l 日j 件要解决的关键技术问题并介 绍容错中间件的三种计算模型。 第四章容错平台的设计与实现。针对容错中问件计算模型中服务方法存在 的缺点和不足,对容错服务进行抽象,提出新容错模型的设计。具体说明新模型 的设计原理,根据嵌入在组件中协议的不同,提出一个三层的主动复制体系结构 天津l :业人学硕十学何论文 来解决客户请求的时序行问题,并给出完整的设计和实现,最后简单说明平台的 初始化和部署方案及其服务方和客户方的算法描述。 第五章容错平台平台的性能分析。在特定的测试环境中,对平台进行测试, 得到测试数据,并对平台的性能进行分析。 第六章总结与展望。对全文进行总结,列出本文的不足和改进,并对未来 进行展望,指出下一步工作方向。 6 第二章c o r b a 概述 2 1c o r b a 的产生背景 第二章c o r b a 概述 近年来,随着互联网技术的r 益成熟,公众及商业企业正享受着高速、低价 网络信息传输所带来的高品质数字生活。但是,由于网络规模的不断扩大以及计 算机软硬件技术水平的飞速提高,给传统的应用软件系统的实现方式带来了巨大 挑战。 首先,在企业级应用中,硬件系统集成商基于性能、价格、服务等方面的考 虑,通常在同一系统中集成来自不同厂商的硬件设备、操作系统、数据库平台和 网络协议等,由此带来的异构性给应用软件的互操作性、兼容性以及平滑升级能 力带来了严重问题。 另外,随着基于网络的业务不断增多,传统的客户服务器( c s ) 模式的 分布式应用方式越来越显示出在运行效率、系统网络安全性和系统升级能力等方 面的局限性。 为了解决分布式计算环境( d c e ,d i s t r i b u t e dc o m p u t i n ge n v i r o n o e n t ) 中不同 硬件设备和软件系统的互联,增强网络问软件的互操作性,解决传统分和式计算 模式中的不足等问题,对象管理组织( o m g ) 提出了公其对象请求代理体系结 构( c o r b a1 ,以增强软件系统问的互操作能力,使构造灵活的分布式应用系统 成为可能。 讵是基于面向对象技术的发展、客户服务器软件系统模式的普遍应用以及 集成已有系统等方面的需求,推动了c q r b a 技术的成熟与发展。作为面向对 象系统的对象通信的核心,c o r b a 为当今网络计算环境带来了真证意义上的互 联。 2 2 对象管理体系结构 c o r b a 所基于的概念框架是对象管理体系结构o g a ,因而在学习与使用 c o r b a 之前应对o m a 有所认识。由o m g 发布的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 eg u i d e ( 1 9 9 0 年1 1 月出版) 是关于o m a 的正式规范。该指南描述了 o m g 的技术目标与相关术语,并为所有c o r b a 规范提供了概念性的基础设施。 指南的核心内容是对象模型与参考模型,其中对象模型定义了对象外部可见特征 的、独立于具体实现的语义,参考模型则标识与刻划了组成对象的组件、接口与 协议,提供了一个分布式对象系统的通用模型l l 引。 7 大津i :业人学硕十学位论文 o m a 体系结构的核心组件是对象请求代理o r b ( o b j e c tr e q u e s tb r o k e r ) ,它 支持客户程序与对象实现在一个分卸式环境中通信。o r b 仅提供了最基础的通 信枢纽,在丌发不同的实际应用程序时,对象还有许多共性可以提取与重用, o m g 将对象的这些共性依其基本性分别标准化为对象服务、公共设施与领域接 口,应用程序中的对象接口则因其差异性较大而无法标准化。 o m a 体系结构中o r b 组件与其他4 类对象接口之间的关系如图2 - 1 所示。 对象服务是基于分布式对象的所有应用程序都可能用到的通用服务的接口。公共 设施是可用于大多数应用领域的面向终端用户的工具接口,对象服务与公共设施 的主要区别在于对象服务比公共设施更加基本。领域接口是与具体领域有关的接 1 3 ,应用接1 3 则是与应用领域有关的非标准化接口l l8 。 与n 4 ) l j 仃父的啦机准化拔l l 与心川领域彳j r 火n q 接l 图2 1o m a 参考模型 o m a 对组成分佰式系统的各个对象进行识别和分类,描述了一个较高抽象 层次的分布式计算环境。o m a 参考模型中,位于最,卜层的是应用程序接口往下 依次为领域接口、公共设施和对象服务,位于最底层的是对象请求代理组建。 上层组件可跨层调用底层的组建,例如,在应用程序中可直接调用公共设施和 对象服务提供的功能。 2 3c o r b a 体系规范概述 c o r b a ( t h ec o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e ,通用对象请求代理 结构) 足由o m g ( g 寸象管理组织,o b j e c tm a n a g e m e n tg r o u p ) 提出的应用软件体系 结构和对象技术规范,其核心是一套标准的语言、接口和协议,以支持异构分布 应用程序间的互操作性及独立于平台和语言的对象重用。 c o r b a 规范充分利用了现今软件技术发展的最新成果,在基于网络的分布式 8 第一二章c o r b a 概述 应用环境下实现应用软件的集成,使得面向对象的软件在分布、异构环境下实现 可重用、可移植和互操作。其特点可以总结为如下几个方面: 1 引入中间件( m i d d l e w a r e ) 作为事务代理,完成客户机( c 1 i e n t ) 向服务对象 方( s e r v e r ) 提出的业务请求,引入中间件的概念后,分布计算模式如图2 2 所示; 图2 2 引入中问f ,l :后客户机和服务器之间的关系 2 实现客户与服务对象的完全分丌,客户不需要了解服务对象的实现过程以 及具体位置: 3 提供软总线机制,使得在任何环境下、采用任何语言丌发的软件只要符合 接口规范的定义,均能够集成到分布式系统中; 4 c o r b a 规范软件系统采用面向对象的软件实现方法开发应用系统,实现对 象内部细节的完整封装,保留对象方法的对外接口定义。 在以上特点中,最突出的是中问件的引入,在c o r b a 系统中称为对象请求代 理( o r b ,o b j e c tr e q u e s tb r o k e r ) 和采用面向对象的丌发模式。对象模型是应 用开发人员对客观事物属性和功能的具体抽象。由于c o r b a 使用了对象模型, 将c o r b a 系统中所有的应用看成足对象及相关操作的集合,因此通过对象请求代 理( o r b ) ,使c o r b a 系统中分布在网络中应用对象的获取只取决于网络的畅通性 和服务对象特征获取的准确程度,而与对象的位置以及对象所处的设备环境无 关。 最重要的组成部分就是o r b ( o b j e c tr e q u e s tb r o k e r ) ,它的任务足提供对 象之问进行通信的基本交互能力。o r b 允诈:客户端向提供服务的对象发送请求, 客户端发出的请求具有位置无关性、语言无关性和平台无关性。因此,o r b 是提 供可互操作性和可移植性的一个主要构件,从而可以建立真正的分布式应用程 序。如图2 3 描述了客户端的请求是如何传递给一个对象实现的啦。 对于实际应用程序来说,o r b 提供的基本交互设施还不够。为了提供更多的 功能,对象服务( o b j e c ts e r v i c e s ) 为应用程序丌发提供了系统级的低层服务。 例如,他们提供交易服务,允许客户端定位某种类型的对象;再比如他们支持对 象! 命周期服务,对象生命周期服务可以创建删除、移动、复制对象。与那些 基本服务不同,公共设施( c o m m o nf a c i l i t i e s ) 在更高层上提供了更多的应用 程序级服务,比如较复杂的文件管理、电子邮件管理和帮助系统等。这些服务的 9 天津f :业人学硕十学位论文 目的都是通过提供一些应用程序丌发中常用的服务束减少应用程序丌发的复杂 度。 图2 - 3c o r b a 系统体系结构图 2 4c o r b a 标准的主要内容 c o r b a 标准主要分为三个部分:对象请求代理( o r b ) 、接口定义语言( i d u 以及o r b 之i h j 的互操作协议i i o p 。 2 4 1 对象请求代理o r b 2 4 1 1 对象请求代理( o r b ) 的作用 在传统的基于c l i e n t s e r v e r 模式的应用程序丌发过程中,项目丌发人员遵 循公丌的标准或自由设计模块0 | j 的协议,这样的协议依赖于网络类型、实现语言、 应用方式等。引入o r b 后,客户只要遵循服务对象的对外接口标准向服务对象 提出业务请求,由o r b 在分布式对象之问建立客户一服务对象关系。o r b ( o b j e c t r e q u e s tb r o k e r ) 是对象之问建立c l i e n t s e r v e r 关系的中间件,使用o r b 客户 可以透明地调用一个服务对象上的方法,这个服务对象可以在本地,也可以在通 过网络连接的其他机器上。o r b 截获这一调用的同时负责查找实现服务的对象 并向其传递参数、调用方法返回最终结果。客户并不知道服务对象位于什么地方, 它的编程语言和操作系统是什么,也不知道不属于对象接口的其他系统部分。这 样,o r b 在异构分布坏境下为不同机器上的应用提供了互操作性,并无缝地集 成了多种对象系统。平台无关性的确切含义正是客户和服务器可以工作于不同的 操作系统上,c o r b a 中的o r b 使平台无关性成为可能。 当某个应用组件想使用另一组件提供的服务时,它首先必须得到提供该服务 1 0 第二章c o r b a 概述 的对象的引用( o b j e c tr e f e r e n c e ) ,得到这个对象引用后,该组件就能调用那个 对象的方法、访问对象提供的服务。o r b ( o b j e c tr e q u e s tb r o k e r ,对象请求代理) 的主要任务就是帮忙找到特定远程对象的对象引用,在对象组件之问建立链接。 总结起来,o r b 的作用包括: 1 ) 接受客户发出的服务请求,完成请求在服务对象端的映射; 2 ) 自动设定路由寻找服务对象; 3 ) 提交客户参数; 4 ) 携带服务对象计算结果返回客户端。 图2 - 4 为客户( c l i e n t ) 向服务对象的实现发出事务请求的过程。 图2 4 客户服务请求示意图 其中客户是对服务对象发出方法请求的实体,服务对象应包括该方法的数据 资源以及实现代码。对象请求代理的作用就在于定位服务对象,接收客户发出的 服务请求并将服务对象的执行结果返回给客户。请求发出后,客户对象采用轮询 等方式以获取服务对象计算的结果。一旦组件得到另一对象的对象引用,它就能 调用该对象的方法,通常,这些方法带有输入、输出参数。o r b 的另一责任就 是从调用该方法的组件中获得输入参数,并对这些参数进行调度,也就是把这些 参数翻译成一定的格式( 有时称为“在线格式 _ ) ,使其可以从网络中传送到远 程对象;o r b 还要负责返回参数的“反调度“,把它们从在线格式转换成调用 组件自己能理解的格式。整个调度、反调度的过程无需程序员的干预。客户应用 只是简单地调用某个想调用的远程方法。在c l i e n t 看来,它就像是一个本地方法, 当调用结束时,也会像本地方法一样,返回一个结果。从调度输入参数、初始化 服务器上的方法调用,到“反调度”返回参数,这整个过程都由o r b 自动、透 明地完成,c l i e n t 和s e r v e r 对此毫不知情。因此开发人员无需去注意调度和反调 度的机制,这无疑简化了c o r b a 应用的开发。 2 4 1 2o r b 系统运行过程 当一个客户要使用某个对象实现所提供的服务时,其操作步骤大致如f : ( 1 ) 客户通过某种方式找到特定对象实现的对象引用; 天津一i :业人学硕十学位论文 ( 2 ) 如果该对象实现有相应的i d l 桩,则客户可以通过该i d l 桩向对象实现 发送请求,否则,在接口库的协助下,客户可以使用动念调用接口来向对象实现 发出请求; ( 3 ) 当对象调用请求通过i d l 桩或动态调用接口到达o r b 核心以后,o r b 核心负责请求的传送,将其送给相应的对象适配器,其具体的请求传递方式由 o r b 的具体实现决定; ( 4 ) 对象适配器接到请求后,判断一下所请求的对象实现是否有i d l 构架存 在,如果有,则对象适配器通过i d l 构架调用执行对象实现中的操作,否则, 对象适配器将通过d s i 中的动态实现例程来调用对象实现中的操作; ( 5 ) 对象实现的特定操作方法执行完成后,结果将按照对象请求传递和执行 路径逆向返回给客户对象。 2 4 1 3o r b 的结构及类型 o r b 通过一系列接口和接口定义中说明的要实现操作的类型,确定提供的 服务和实现客户与服务对象通信的方式。通过i d l 接口定义、接口库或适配器 ( a d a p t e r ) 的协调, o r b 可以向客户机和具备服务功能的对象实现提供服务。 作为c o r b a 体系结构的核心,o r b 可以实现如下三种类型的接口: ( 1 ) 对于所有的o r b 实现具有相同的操作; ( 2 ) 针对特定类型对象的操作; ( 3 ) 与对象实现类型有关的操作。 基于o r b 实现的不同类型接口,一个客户端请求可以同时访问多个由不同 o r b 实现通信管理的对象引用。在实际应用中,只要遵循公共的o r b 体系结构, 程序设计可以选择o r b 的多种实现方式,其中包括: ( 1 ) 客户和实现驻留( c l i e n t - - i m p l e m e n t a t i o n - - r e s i d e n t ) o r b - 采用驻留在 客户和服务对象实现程序的方式实现o r b 。在这种实现方式下,客户端可以通 过桩( s t u b ) 程序,以位置透明的方式向具体的实现对象提出服务请求,实现客 户与服务对象的通信。 ( 2 ) 基于服务( s e r v e r - - b a s e d ) o r b :客户对象和实现对象均可以与一个或 多个服务对象进行通信,服务对象的功能是将请求从客户端发送到对象实现。在 这种方式中,o r b 的作用是完成客户对象与实现对象的通信,为对象之间的交 互提供服务。 ( 3 ) 基于系统( s y s t e m - - b a s e d ) o r b :在这种实现方式中,o r b 被操作系 统认为是系统所提供的一项基本服务。由于操作系统了解调用方与服务对象的位 置,因而可以充分地实现o r b 功能的优化。 1 2 第二章c o r b a 概述 ( 4 ) 基于库( l i b r a r y - - b a s e d ) o r b - 如果认为对象实现可以共享,则可以将 实现功能放入实现库( i m p l e m e n t a t i o nr e p o s i t o r y ) 中,从而创建基于库的o r b 。 2 。4 1 4 服务请求的实现方式 关于对象请求的实现方式,c o r b a 规范中定义客户程序可以用动态调用接 口( d i i ,d y n a m i ci n v o c a t i o ni n t e r f a c e ) 方式或通过o m gi d l 文件经编译后在客户 端生成的桩( s t u b ) 方式提出服务请求。这两种实现方式的区别在于通过o m g i d l 桩( s t u b ) 文件方式实现的调用请求中,客户能够访问的服务对象方法取决 于服务对象所支持的接口;而动态调用接口调用方式则与服务对象的接口无关。 尽管实现调用请求的方式有所区别,但客户发出的请求服务调用的语义是相同 的,服务对象不去分析服务请求提出的方式。 o r b 通过i d l 客户桩( s t u b ) 方式或动态调用接e i ( d i d 方式定位服务对象 的实现代码、传递服务对象应用参数以及完成对请求传送方式的控制。服务对象 的实现( o b j e c ti m p l e m e n t a t i o n ) 通过对象适配器( o b j e o a d a p t e r ) 提供对客户请 求的服务。o r b 的结构如图2 5 所示。 客户端对象实现 1 。iji r 弋、夕 1r 动态调用客户桩s t u b 程序o r b 接口对象骨架i d l 静态骨架对象适配器 o r b 内核 图2 - 5o r b ( 对象请求接口) 结构图 2 4 2 接口定义语言ld l 如果说o r b 算得是c o r b a 结构的一个基石的话,i d l 就得算是另一个。 语言无关性是c o r b a 的一个非常重要的特性。c o r b a 并没有指定使用某种特 定的语言开发c o r b a 应用,这就给应用丌发人员很大的自由度,由他们根据应 用的实际需要来选择最合适的语言。同样的,他们甚至可以用多种语言来开发 c o r b a 应用。i d lri n t e r f a c ed e f i n i t i o nl a n g u a g e ) 是定义应用组件间接口的语言, 它是标准c o r b a 规范的一部分,独立于任何编程语言,它只能用于定义接口, 而不能实现它。i d l 通过语言映射( l a n g u a g em a p p i n g ) ,说明如何把i d l 语言 结构映射到特定的编程语言的结构的方式实现语言无关性。o m g 为许多通用的 语言定义了标准的语言映射,包括c 、c + + 、c o b o l 、j a v a 及s m a l l t a l k 。 1 3 天津:_ l :业人学硕+ 学位论文 c + + 程序员可以把i d l 定义的内容( 就是接口) 想象成类似于类的头文件。典型 的头文件只描述类的接口,是不会包含类的任何实现细节的。j a v a 程序员可能把 i d l 定义的接口想象成和j a v a 中的接口差不多,使用c o r b a ,用户可以透明 地访问信息,并不需要知道信息存在于什么软件中、使用什么硬件平台,以及位 于企业网络的什么地方。作为面向对象系统的通信核心,c o r b a 为今天的计算 环境带来了真正
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海员安全培训课件
- 海南校园安全防卫培训课件
- 海伦凯勒教学课件
- 海事局作业安全培训课件
- 认识书写汉字和笔画课件
- 2025重庆市妇女联合会招聘1人备考考试题库附答案解析
- 2025年马鞍山和县历阳镇第一小学乒乓球教练(合同制)招聘1名考试模拟试题及答案解析
- 2025-2030肉牛养殖跨境疫病联防及检验检疫升级与投资风险管控报告
- 2025上海市历史博物馆(上海革命历史博物馆)招聘4人备考考试题库附答案解析
- 2025-2030肉牛养殖PPP项目运作模式与政府社会资本合作案例研究
- 外派劳务人员基本情况表(劳工表)
- 疼痛科梯队建设聊城
- 骨关节健康氨糖氨糖疗法
- 进度计划纠偏措施
- 高雨-博士开题报告(最终版)
- 上海科技教育出版社五年级综合实践活动教案
- 营业厅安全管理规定
- YS/T 921-2013冰铜
- 低压电气基础知识培训课件
- 2023年廊坊市投资控股集团有限公司招聘笔试模拟试题及答案解析
- 沁园春长沙完美版课件
评论
0/150
提交评论