




已阅读5页,还剩54页未读, 继续免费阅读
(计算机应用技术专业论文)实时corba研究及实时调度服务分析改进.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 许多类型的应用程序都可以从弹性的,开放的中间件中获益。 c o r b a 就是一种用于简化分布式应用程序和服务开发的对象请 求代理( o r b ) 的中间件标准。c o r b a 的应用经验表明c o r b a 非常适合传统r p c 样式的应用程序。但是,传统c o r b a 实现中 性能优化和服务质量特性的缺乏使得c o r b a 不适合于高性能和 实时应用程序。 当前关于实时c o r b a 的工作包括脱机调度( o f f i i n e s c h e d u l i n g ) ,硬实时( h a r dr e a l t i m e ) 基于的单一速率( r a t e m o n o t o n i c r m ) 调度和在线调度( o n l i n es c h e d u l i n g ) ,最佳优化 实时系统基于的最早截止期限优先( e a r l i e s td e a d l i n ef i r s t e d f ) 算法。前者以运行时调度的弹性为代价提供服务质量的保证,而 后者提供了补充。 在这篇论文中,通过对c o r b a 基本概念的介绍和体系结构的 分析,并结合实时应用所面i | 缶的问题指出了传统c o r b a 在实时应 用上的不足,以及实时c 0 砌3 a 对传统c 0 r b a 的扩展和实时 c o r b a 的体系结构。在此基础上,本文详细分析了实时c o r b a 的调度服务,提出了一种调度原则的模型,该原则同时具有单一 速率( r m ) 调度和最早截止期限优先( e d f ) 两种算法的优点, 那就是:服务质量的保证和运行时调度的弹性。最后,对该调度 原则模型的进一步工作进行了展望。 关键词:分布式计算:对象模型:c o r b a :r e a i _ t i m ec o r b a :调 度服务;静态调度:动态调度:调度策略 a b s t r a c t m m a yt y p e so fa p p l i c a t i o n sc a n b e n e f i tf r o mf l e x i b l ea n d o p e n m i d d l e w a r ec o r b ai sa l le m e 唱i n gm i d d l e w a r es t a n d a r df o ro b j e c t r e q u e s tb r o k e r s ( o r b s ) t h a ts i m p l i f i e st h ed e v e l o p m e n t o fd i s t r i b u t e d a p p l i c a t i o n sa n ds e r v i c e s e x p e r i e n c ew i t hc o r b a d e m o n s t r a t e st h a t i ti ss u i t a b l ef o rt r a d i t i o n a lr p c s t y l ea p p l i c a t i o n s h o w e v e r t h el a c k o f p e r f o r m a n c eo p t i m i z a t i o n s a n d q u a l i t yo f s e r v i c e ( q o s ) f e a t u r e si n c o n v e n t i o n a lc o r b a i m p l e m e n t a t i o n sm a k e t h e mu n s u i t a b l ef o rh i g h p e r f o r m a n c e a n dr e a l t i m ea p p l i c a t i o n s c u r r e n tw o r ko nr e a l t i m ec o r b ai n c l u d e sa no f f - l i n es c h e d u l e d h a r dr e a l t i m es y s t e mb a s e do nr a t e m o n o t o n i cs c h e d u l i n ga n da n o n 1 i n es c h e d u l e d ,b e s t e f f o r tr e a l t i m es y s t e mb a s e do nt h e e a r l i e s t d e a d l i n e f i r s ta l g o r i t h m t h ef o r m e r p r o v i d e sq o sg u a r a n t e e s a tt 1 1 ee x p e n s e & r u n t i m e s c h e d u l i n gf l e x i b i l i t yw h i l e t h el a t t e r p r o v i d e st h ec o m p l e m e m i nt h i sp a p e r ,i tp o i n t so u tt h es h o r t a g e so f c o n v e n t i o n a lc o r b a o nt h ef i e l do f r e a lt i m e t h ee x t e n s i o n so f r e a lt i m ec o r b am a d et o t h ec o n v e n t i o n a lc o r b aa n dt h e 矗a m e w o r ko ft e a lt i m ec o r b a b y t h ei n t r o d u c eo fc o r b ab a s i cc o n c e p t sa n dt h ea n a l y s i so fi t s f r a m e w o r ka sw i t ht h ep r o b l e m sw h a tr e a lt i m ea p p l i c a t i o n sf a c e d b a s e do na l lo fa b o v e ,t h i st h e s i se x p a t i a t e st h es c h e d u l i n gs e r v i c eo f t e a lt i m ec o r b ao nd e t a i la n d p r o p o s e sas c h e d u l i n gs e r v i c em o d e l w h i c h p r o v i d e s t h ea d v a n t a g e so f b o t h ,t h a ti s ,q o sg u a r a n t e e sa n d i l l n - t i m es c h e d u l i n gf l e x i b i l i t y f i n a l l y ,s o m ec h a l l e n g e sf o rt h ef u t u r e w o r ka r ep r e s e n t e d k e y w o r d s :d i s t r i b u t e dc o m p u t i n g ;0 b j e c tm o d e l ;c o r b a ; r e a l - t i m e c o r b a :s c h e d u l i n g s e r v i c e ;s t a t i c s c h e d u l i n g ;d y n a m i cs c h e d u l i n g ;s c h e d u l i n gp o l i c y 实时c o r b a 研究及实时调度服务分析改进 0 前言 0 1 分布式对象计算及c o r b a 在今天的企业界,用户t e 以往任何时候都需要在整个企业内共享信息。共 享信息对不同的企业有不同的原因,就如同他们为什么使用计算机一样。共享 的信息来自不同的地方,把这些应用程序和系统集成起来不是件容易的事情, 这就引出了分布式计算技术。简单地说,分布式计算是两个或多个软件互相共 享信息。这些软件既可以在同一台机器上运行,也可以在通过网络连起来的几 台不同机器上运行。 在当代这个i n t e r n e t i n t r a n e t 迅速发展和日益普及的网络计算时代,将 对象模型引入到分布式计算系统之中而形成的分布对象计算技术得以长足发 展。o m 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 ( 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 i t e c t u r e ) 是分布对象计算 技术的典型代表和主流技术。 简单的讲,使用c o r b a ,应用程序之间能相互通讯,而不管它们的位置、 编程语言及操作系统。c o r b a 规范定义了i d l 语言及映射、单个o r b 体系结 构、o r b 间互操作机制和c o m c 0 r b a 互操作。在c o r b a 环境中,应用程序的 集成是基于面向对象模型的。该模型提供分析、设计和实现技术来构造可扩展 的,可重用的软件,而且其开发成本和维护成本比厦向功能的软件要低。 c o r b a 规范自诞生以来,由于其目的正是制定标准以实现在不同的网络和 计算机环境下独立开发的应用软件的互用性,保证组件部件的重用性、可移植 性和互操作性,基于已商业化了的对象技术,使分散的应用软件的集成成为可 能,因此,得到了众多厂商和机构的支持,包括:i b m 、h p 、s u n 、d e c 、a p p l e 、 o r a c l e 、s y b a s e 和麻省理工学院、华盛顿大学等大公司、大学和科研部门。 c o r b a 为解决企业集成提供了规范。 0 2 实时o 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 规范在制订时没有考虑实时需求, 缺乏应有的实时特性,如可预测性、确定性、低延迟、服务质量等所以定义q o s 编程接口,提供q o s 保障机制,合理划分系统层次,尽量避免信息的重复拷贝与 转换,研究高效的o r b 请求解析算法,定义各层的公用缓冲区并进行集中管理, 优化内存管理机制,统一各层消息缓存策略,减少o r b 间虚拟方法调用所需环节 等,是现有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 的额外的,可选的兼容增强。实时c o r b a 被定义为对c o r b a 2 2 和m e s s a g i n gs p e c i f i c a t i o n 的扩展。c o r b a 版本必须是2 2 版或更高,因为实 时c o r b a 使用的策略框架来自于m e s s a g i n gs p e c i f i c a t i o n ,其次,延迟同步、 异步和单向调用是开发实时系统的重要工具。 0 3 实时调度服务 实时调度服务是实时c o r b a 体系结构的重要组成部分,调度服务提供了 一个抽象层来隐藏实时c o r b a 调度参数的协调。调度服务使用“名字”来引 用行为( a c t i v i t y ) 和对象( o b j e c t ) 。 开发人员通过操作这些命名的行为和对象来使用运行时调度服务。调度服 务的设计时期决定这些命名实体如何来协调,通过使用实时o r b 定义的接口, 以便它们能够满足实时要求。 调度服务使用实时o r b 提供的功能以一种对底层实时结构抽象的方式来 增强各种各样的实时调度策略。调度服务除了实时c o r b a 规范或者c o r b a 规范中的要求外没有对实时o r b 或非实时o r b 有任何附加的新的要求。 使用调度服务某种具体实现的应用程序确保有个统一的实时调度策略, 比如具有优先级上限的g l o b a lr a t e m o n o t o n i c 调度策略。就是说,一个调度服务 实现将选择c o r b a 优先级,p o a 策略,优先级映射以实现一个统一的实时调 度策略。不同的调度服务实现可以提供不同的实时调度策略。 调度服务通过“名字”的使用来抽象调度参数( 比如c o r b a 优先级) 。应 用程序代码使用名字( 字符串) 来标识c o r b a 行为和c o r b a 对象。调度服 务内部保持这些命名行为或命名对象和调度参数的对应联系。这种抽象提高了 可移植性,方便了实时特性的使用,并且减少了出错的机会。 调度服务提供的功能不是实时o r b 提供的基本功能的简单拼凑。事实上, 调度服务提供的大部分功能是以一种确保统一的实时调度策略的方式来调用实 茎堕! 旦些垒堕垄丝壅盟塑些墅箜坌堑堕些 时c o r b a 的基本功能来实现的。 0 4 实时调度服务改进 在实时领域,我们根据系统的用法和它对底层结构的要求分为两类分布式 系统。它们是静态分布式系统和动态分布式系统。 静态分布式系统是进程负载在已知范围内的系统。这意味着系统中运行的 应用程序集合是事先知道的,并且每个应用程序的工作负载可以在某个已知的 范围内被事先确定。这些系统中能够执行的应用程序数量通常都被配置为有限 的。在这些系统中,应用程序在每种系统模式下的调度执行都可以事先计算出 来,变化是有限的。因此,底层结构( 操作系统和中间件) 只需要支持对应的 调度执行就可以了。 对于静态系统主要使用脱机分析( o t t l i n ea n a l y s i s ) 来把不同的应用程序临 时需求( 比如执行频率) 映射为可用的优先缴。典型的调度原则为单一速率调 度( r a t e m o n o t o n i c ) ,它提供了完善的服务质量保证( q o s ) ,但是却牺牲了系 统的动态调度灵活性。 相反,动态分布式系统无法事先具有可预测性的负载。这意味着应用程序 集合或者太大或者事先未知,对一个应用程序的处理需求变化太大以至于无法 事先安排,输入的到达时间变化太大,或者其他的变化来源。对于这类系统, 底层结构必须在一个动态变化的环境中满足实时需求。动态调度在实时和分布 式实时计算系统中的应用非常广泛。 对于动态系统主要使用在线分析( o n l i n ea n a l y s i s ) ,常用的调度原则包括 最早截止期限优先( e d f ) 、最小松弛优先( l l f ) 、最大化增值效用( m a u ) 等,其中最有代表性的是e d f ,它最大限度地提供了系统动态调度的灵活性, 但是却不能完全保证系统的服务质量,这正好和r m 调度原则互相补充。 基于r m 、e d f 调度原则的互补性,本文以t a o 系统为基础,以e p i q 的 两级调度机制为方法把静态脱机调度和动态在线调度相结合,对t a o 系统加以 扩展,以允许t a o 系统在运行时调度处理和重新配置客户请求来提供一个动态 的系统,而且该系统的实时对象可以以彼此独立的方式开发,每一个都有它们 自己的调度和资源分配策略。这些异构的实时对象就可以被高效地组合起来来 构造个完全的实时应用程序。 当然该调度原则还存在很多需要深入研究和进一步改进的地方,本文最后 一章的展望中讨论了对于该调度原则不得不做的更多改进和实现以达到更好的 性能。 实时c o r b a 研究及实时调度服务分析改进 1 分布式对象计算及c o r b a 背景 1 1 软件开发模式的历史回顾 1 1 1 单机开发 软件开发的起始时期是大型机的时代,随之而来的是层次数据库系统和哑 终端。通常情况下,大型机的维护成本非常高,但是能够支持大量的用户,并 且有方便集中管理的优点。为大型机开发的软件系统一般都是单层的一就是说, 用户接e l 、商业逻辑和数据访问功能都被包含在一个大应用程序之中。因为用 于访问大型机的哑终端没有自身处理能力,整个应用程序都在大型机上运行, 因此采用单层结构的应用程序是合理的。 典型的单层应用程序如下图: 瓢鏊麓。 图1 - 1 单层应用程序结构 f i g u r e1 一lm o n o l i t h i ca p p l i c a t i o na r c h i t e c t u r e 耋| | 萱 轴一 实时c o r b a 研究发实时调度服务分析改进 1 1 2 两层客户月臣务器结构 p c 机的出现使得基于大型机的单层应用程序开发的变革成为可能。相对于 单层应用程序要求大型机执行全部的处理,基于客户服务器( c l i e n t s e r v e r ) 结构的应用程序允许一些处理任务分担到位于用户桌面的p c 机上执行。 随着客户朋务器开发模式而来的是基于u n i x 系统的服务器。许多应用程 序不需要大型机的强大处理能力,又因为客户朋务器结构能够把很多处理任务 转移到桌面p c 机上,所以这些基于u n i x 系统的小型服务器就比大型机节省 不少成本。同时,相对于大型机来说,这些小型机器对于小公司是完全负担得 起的。另外一个好处是各个公司、组织、团体内部的部门可以购买,配置,管 理他们自己的服务器系统。这样的直接结果就是这些部门在开发他们自己的应 用程序的时候可以更好地满足他们自身的特定需求。最后一点,终端被限制只 能运行位于大型机上的应用程序,然而p c 机可以执行很多其他的和大型机无 关的任务,更进一步增强了它做为桌面机的用处。 典型的客户朋务器应用程序对应用程序的各个部分分别处理,以便于数据 库驻留在服务器端( u n i x 主机或者大型机) ,用户接口位于客户端,商业逻辑 位于二者之一或者二者都有。当对客户端程序进行修改后,新的客户端应用程 序( 通常为一个或一系列可执行程序) 不得不重薪部署到每个用户端。 典型的两层客户服务器结构如下图: 图1 - 2 两层客户,服务器结构 f i g u r e1 - 2t w o t i e rc l i e n t ,s e r v e r a r c h i t e c t u r e 实时c o r b a 研究及实时调度服务分析改进 1 1 3 三层客户服务器结构 客户服务器结构在很多方面都是开发模式的一种革命。尽管解决了基于大 型机的应用程序所带来的问题,但是传统客户服务器不是无懈可击的。例如, 因为数据库访问功能( 比如数据库查询) 和商业逻辑一般都包含在客户端程序 中,对商业逻辑、数据库访问甚至数据库本身的任何改变通常都要求在该应用 程序的每个用户处重新部署一个新的客户端程序。这些变化很可能否定该客户 程序的早期版本,最终导致一个不健壮的应用程序。 传统客户,服务器( 两层客户服务器) 所具有的问题导致了多层客户j i g 务 器结构的提出。从概念上说,一个应用程序可以有任意层,但是最流行的多层 结构是三层,它把整个系统划分为三个逻辑层:用户接i z i 层,商业规则层和数 据库访问层。 其结构如图所示: 1 - 鞠 图1 - 3 三层客户朋务器结构 f i g u r e1 - 3t h r e e 4 i e rc l i e n t s e r v e ra r c h i t e c t u r e 三层客户朋& 务器结构在两方面增强了两层客户服务器结构:首先,它通过 进一步降低客户和应用程序其他部分的联系程度使得整个应用程序变得更加健 6 实时c o r b a 研究及实时调度胀务分析改j _ ! 壮,这是最重要的。其次,因为各个执行部分被更好的划分和定义,使得应用 程序的开发和部署更有弹性。 三层客户服务器结构通过在层与层之问提供更好的隔离使得应用程序更 加健壮。用户接口层只和商业规则层通信,不能和数据库访问层直接交互。商 业规则层轮流在一端和用户接口层交互,在另一端和数据库访问层交互。因而, 数据库访问层的修改不会影响用户接口层,因为它们是彼此隔离的。这种结构 使得应用程序的改变基本不会影响客户端程序( 切记,一旦修改了客户端程序 就必须得重新分发它) 。 因为三层客户i n 务器结构比传统两层客户朋务器结构划分更多的部分,它 提供了配置应用程序的更大灵活性。例如,上图描述了一个系统,该系统中商 业规则层和数据库访问层,尽管它们是相互分开的逻辑实体,但是位于同台 服务器上。把每个服务器程序放在不同的机器上也是可行的。实际上,可以在 一个应用程序中创建多个商业逻辑组件( 如果使用多个数据库也可以是多个数 据库访问组件) ,在它们之间分配处理任务,这将最终形成一个更加健壮,可扩 展的应用程序。 1 1 4 分布式系统 应用程序结构的下一步发展是分布式系统模型( d i s t r i b u t e ds y s t e mm o d e l ) 。 这种结构采取了多层客户服务器结构的概念并对其进行了更大的扩展。分布式 系统模型不是区分商业逻辑和数据访问,而是简单地把应用程序的所有功能都 定义为对象( o b j e c t ) ,每一个对象都可以使用系统中其他对象甚至是在其他系 统中的对象提供的服务。这个结构同时也弱化了“客户”和“服务器”之r b j 的 区别,因为客户部分也可以创建剐象并像服务器一样对外提供服务。分布式系 统结构提供了最大的弹性。 分布式系统结构通过定义特定组件的接口来实现它的弹性。一个组件的接 口标识了该组件能够向其他组件提供的服务和该服务的用法。只要该组件的接 口保持不变,其内部具体实现可以任意改变而不会影响其他组件。 分布式系统是潜在的不同客户数和服务器数量巨大的真正的多层客户朋 务器系统。其中一个很重要的不同点是分布式系统通常提供额外的服务,比如 目录服务一它允许应用程序的各个组件被其他组件定位。其他服务可能包括事 务监控服务一它允许组件相互之间参与事务。 总之,应用程序经过了一个从相对严格单一的结构到一个非常灵活,分稚 的结构的发展过程。在这个过程中,应用程序结构因为组件之间接口的定义和 灵活性的提高提供了越来越强的健壮性。除此之外,服务的引入使得应用程序 的最终用户可以使用各种各样可以利用的服务 实时c o r b a 研究及实时调度服务分析改进 1 2 分布式计算 在今天的企业界,用户比以往任何时候都需要在整个企业内共享信息。共 享信息对不同的企业有不同的原因,就如同他们为什么使用计算机一样。共享 的信息来自不同的地方。目前,有数以千计的独立的应用程序位于数十种计算 机软硬件配置上,而这些软硬件很少是为共享信息或与同一平台上的其他应用 程序通信而设计的,更不用说与那些不同平台上的应用程序通信了。即便某个 应用程序的确可与其他应用程序共享信息,它一般也是与指定的少量应用程序 通信。 把这些应用程序和系统集成起来不是件容易的事情,不同制造商的计算机 使用的数据格式通常是不一样的( 1 6 位、3 2 位或6 4 位) 。另外,字节的顺序在 不同的系统间也是不一样的,要在不同的计算机系统之间共享数据则需要特殊 的转换器。把运行在各种软硬件配置上的应用程序结合起来通常需要一个定制 的解决方案。这个解决方案可能是既花时间又费金钱,因为有许多不同的应用 程序要连接。而且,如果半年后又有另一个应用程序或平台要加入这个定制的 环境,那么集成这个应用程序或平台可能需要花费更多的金钱和时间。 简单地说,分布式计算是两个或多个软件互相共享信息。这些软件既可以 在同一台机器上运行,也可以在通过网络连起来的几台不同机器上运行。绝大 多数的分布式计算是基于客户服务器模型的。在客户服务器模型内,有两 类主要的软件:客户机软件,它提出信息或服务的请求:服务器软件,则提供 这种信息或服务。 分布式计算的优点: 分布式计算的主要优点是通过使用如下技术使计算资源的使用更有效。 稀有资源的共享。例如如果只有一台高性能打印机或绘图仪,分布式计算 使网络上的每个人都能使用它们,而不仅仅是那些在连接着打印机或绘图 仪的机器上有帐号的用户。 在许多不同机器上平衡计算负载。 把应用程序放在最符合需要的机器上。 1 3 对象模型 对象模型是面向对象计算中的概念。一般地说,对象模型是考虑问题及其 可能解决方案的概念性框架。对象模型的基础是对象这一基本概念,对象是有 特定的行为和属性的实体。对象是现实世界的实体,例如,一辆汽车是个对象, 锤子、进程或雇员同样也是个对象。对象提供了把行为和属性结合成一单独实 实时c o r b a 研究及实时调度服务分析改进 体的手段。属性使我们能获得及设置对象的数据。对象含有能在它们身上- 执行 的操作。操作代表了在给定了一套特定参数后可在对象上执行的动作。每个对 象仅能被自己定义的操作所操纵。 对象模型是建立在以下的面向对象概念之上的: 1 抽象 抽象是把对象分组,并把注意力放在这组对象的共同特性上。 2 封装 封装把一个对象的实现细节从它所提供的服务进行隐藏。 3 继承 继承允许一个对象向另一个对象传递自己的能力和行为。 4 多态性 多态性是指在运行时通过一个匹配的接口用一个对象去替代另一个对象的 能力。不是所有的对象系统都使用或要求有多态性,c o r b a 要求它。 使用对象模型的优点 使用对象模型使开发者、设计者能够实现以下功能: 定义一个基于现实世界的系统模型 使用对象模型,只要决定了工作所在的问题域、要定义的对象及其属性与 行为,对象间的相互关系等问题,就可以以现实世界为根据来构造软件。 把系统逻辑地分离成能完成特定任务( 称为操作) 的对象 由于每个对象只完成某些特定的操作,这样无论是对设计者还是对开发者 来说,每个对象的作用都非常清楚。把系统的各个部分定义成对象和操作, 可以使软件中的错误更少,因为我们必须清楚地定义每个对象所支持的操 作。这也使对象间的交互更加平滑,更易理解。另外软件也更加模块化, 正因为系统中的列象之间更少的依赖性,所以我们可独立地在各个软件构 件上工作。 当需求改变时扩展模块 当需求改变时,改变一个设计良好的面向对象系统并不难。如果已经有了 在问题域内的所有必需的对象,新的需求可能仅仅是意味着在一特定对象 上加入新行为和用新的有效的方式把已有对象组合起来。加入新需求并不 一定导致新的关系,它通常只要对相应的现有对象进行扩展。相反地,在 一个面向功能的模型里,加入新的需求可能会引起系统主要部分的重新设 计。l 1 4 分布式对象计算及其主流技术c o r b a 在i n t e r n e t i n t r a n e t 迅速发展和日益普及的网络计算时代,将对象模型 9 实时c o r b a 研究及实时调度服务分析改进 引入到分布式计算系统之中而形成的分布对象计算( d i s t r i b u t e do b j e c t c o m p u t i n g ) 技术得以长足发展。0 m 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 ( c o m m o no b j e c t r e q u e s t b r o k e r a r c h i t e c t u r e ) 是分布对象计算技术的典型代表和主流技术。“1 o m g 组织是世界上计算机业界最大的团体组织,目前成员多达9 0 0 余家, 其中包括有i b m 、h p 、s u n 和d e c 等知名的计算机软硬件大厂商。o m g 组织 一直致力于制订、采纳和吸收异构分布环境下应用的开发和配置。c o r b a 规 范作为o m g 组织制订的分布式对象计算的标准,现在已经是工业界的主流标 准之一。 简单的讲,使用c o r b a ,应用程序之间能相互通讯,而不管它们的位置、 编程语言及操作系统。c o r b a1 1 于1 9 9 1 提出。它使用i n t e r f a c ed e f i n i t i o n l a n g u a g e ( i d l ) 和a p p l i c a t i o np r o g r a m m i n gi n t e r f a c e s ( a p i ) 让c l i e n t s e r v e r 对象通过o r b ( o b j e c tr e q u e s tb r o k e r ) 相互通讯。1 9 9 4 年提出c o r b a 2 0 ,现在 提出c o r b a3 0 。c o r b a 实现了许多通常的网络任务,如对象登记( o b j e c t r e g i s t r a t i o n ) 、对象定位( o b j e c tl o c m i o n ) 、对象激活( o b j e c ta c t i v a t i o n ) 、请 求的多路分解处理( r e q u e s td e m u l t i p l e x i n g ) 、取景( f r a m i n g ) 和错误处理 ( e r r o r 。h a n d l i n g ) 、参数排列与非排列( p a r a m e t e rm a r s h a l l i n g a n d d e m a r s h a l l i n g ) 、操作分派( o p e r a t i o nd i s p a t c h i n g ) 等。 c o r b a 规范定义了i d l 语言及映射、单个o r b 体系结构、o r b 间互操作机 制和c o m c o r b a 互操作。在c o r b a 环境中,应用程序的集成是基于面向对象 模型的。该模型提供分析、设计和实现技术来构造可扩展的,可重用的软件, 而且其开发成本和维护成本比面向功能的软件要低。 c o r b a 的实现提供了开发下一代软件的基础,即开发可重用软件,就如同 我们插上或拔下硬盘设备和内存条一样,我们差不多也可以插上和拔下网络、 类库和应用程序。通过应用类似于实现了c o r b a 的分布式面向对象系统和其 他新的面向对象技术,如c + + 类库,现在已经有了商业化的可重用软件。 c o r b a 规范以其自身的优势领导着开放分布处理的发展,它的突出特点是: 1 在c o r b a 规范中引入了代理( b r o k e r ) 的概念。一个代理至少可以有三 个方面的作用: ( 1 ) 完成对客户方提出的抽象服务请求的映射; ( 2 ) 自动发现和寻找服务器; ( 3 ) 自动设定路由,实现到服务器方的执行。 这样用户在编制c l i e n t 程序时就可以避免了解过多的细节,它只需要完整 地定义和说明c 1i e n t 需要完成的任务和目标。 2 增加了代理机制后,实现了c 1 l e n t 程序与s e r v e r 程序的完全分离,这 与面向过程调用机制为基础的客户服务器模式根本不同。 3 c o r b a 规范定义的基础是面向对象的设计思想和实现方法。把分布式计 1 0 实时c o r b a 研究及实时调度服务分析改进 算与面向对象的概念相结合有很多好处,如能够将冗余度控制在最低的程度, 一个对象既能被c 1 i e n t 程序使用,也能被s e r v e r 程序使用,对象实现的修改 不会影响双方实现程序和提高软件重用率。 4 提供了软件总线的机制,使得任何应用程序、软件系统或工具只要具有 与该接口规范相符合的接口定义,就能方便地集成到c o r b a 系统中,而这个接 口规范独立于任何实现语言和环境。 5 分层的设计原则和实现方式。c o r b a 规范只是针对o m a 体系结构中的o r b 制订的工业标准,而面向应用的对象定义则可以在o m a 的应用对象或应用开发 环境中逐步分层定义和实现。 2o o r b a 基本概念和体系结构 2 1 o o r b a 基本概念 1 对象请求代理( o r b - - o b j e c tr e q u e s t b r o k e r ) 在分布式环境下使对象之间能够透明地发送请求和接收响应。它是在分布式 对象上建立其它应用的基础,也是在异构或同构环境下实现互操作的基础。 2 对象服务( 0 b j e c t s e r v i c e s ) 支持如何使用对象和如何实现对象这两种基本功能的一一系列服务( 包括接口 和对象) 。对建立任何分布式应用,对象服务总是必需的,而且对象服务总是独 立于特定的应用域。例如,生命周期对象服务仅仅定义对象的创建、删除、复 制和迁移等约定,而并不指定对象如何实现以及如何被使用。 3 公共设施( c o m m o nf a c i l i t i e s ) 能够被多个应用所共享的一系列服务,它与对象服务的区别在于对象服务强 调的是基本性。例如,系统管理和电子邮件可分别归于公共设施之列。 4 应用对象( a p p l i c a t i o no b j e c t s ) 项目开发组为某个特定的产品提供商开发的产品。应用对象相当于传统的应 用程序的概念,因此,它不是o m g 标准化的所关心的内容,而是构成整个参 考模型最上层的元素。 实时c o r b a 研究及实时调度服务分析改进 5 对象引用( o b i e c t r e f e r e n c e ) 对象引用是用来指明某个o r b 中的某个对象。按照语言映射的规定,对象 引用对于客户和对象实现仅仅是一个抽象的概念,两者可以独立于对象引用的 表示。两个o r b 实现可以选择不同的对象引用表示方式。 传递给客户的对象应用的表示方式只在该客户的生命周期中有效。 对于某种编程语言,所有o r b 对于一个对象引用必须提供同样的语言映射, 这种规定使得以某种语言编写的程序对于对象引用的访问可以独立于特定的 o r b 。当然,语言映射也可以提供其他方式访问对象引用,所采用的方式取决 于对编程者是否方便。【3 j 6 c o r b ao b j e c t c o r b ao b j e c t 是一个“虚”的实体,o r b 能定位它,并把c l i e n t 的请求传 给它。一个c o r b a o b j e c t 能被它的对象引用( o b j e c tr e f e r e n c e ) 标i , 只( i d e n t i f y ) 、 定位( 1 0 c a t e ) 和存取( a c c e s s ) 。在一个请求调用中,请求被传给的c o r b a o b j e c t 被称为“目标对象( t a r g e t o b j e c t ) ”。类似于c + + 中的纯虚类和j a v a 的接口。 s e r v a n t 是一个编程语言实体,它位于s e r v e r 上,实现一个c o r b ao b j e c t 。 对于非面向对象语言,如c 和c o b o l ,一个s e r v a n t 是一些函数的集合,它能 操作数据( 如结构或记录的一个实体) ,而该数据表示了一个c o r b ao b j e c t 的状态。对于面向对象语言,如c + + 和j a v a ,s e r v a n t 是特定类的对象实体。 c o r b a o b j e c t 和s e r v a n t 的关系类似于操作系统中的虚存和实存的关系。 正如虚地址空间不存在一样,c o r b ao b j e c t 也不存在。由于计算机内存管理 单元( m m u ) 的管理,一个计算机程序能读写虚存。m m u 把虚存地址映射到 实存地址。同样的,o r b 与对象适配器( o b j e c t a d a p t e r - - o a ) 合作,允许c l i e n t 应用能把请求传给c o r b ao b j e c t ,并确保每一个有效的c o r b ao b j e c t 被映 射到一个s e r v a n t 。而且,使用保存在c o r b a o b j e c t 参考中的地址信息,o r b 和o a 能透明地定位和调用正确s e r v a n t 。 s k e l e t o n 也是编程语言实体,它把一个s e r v a n t 和对应的o a 连接起来,允 许o a 把请求分派给s e r v a n t 。对于c 语言来讲,一个s k e l e t o n 是指向s e r v a n t 中特定函数的指针的集合。对于c + + 来讲,一个s k e l e t o n 是一个基类,s e r v a n t 类可以由它导出。对于静态请求调用来讲,s k e l e t o n 总是由i d l 编译器自动生 成。i d l ( 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 ) 用来定义c o r b a 中的对象。另外 c o r b a 还支持d s i ( d y n a m i c s k e l e t o ni n t e r f a c e ) ,它允许s e r v e r 能处理那些没 有静态s k e l e t o n 可用的对象请求。 2 实时c o r b a 研究及实时调度服务分折改进 9 o b j e c ti d 在o a 范围内命名对象的用户自定义或系统定义的标识符。o b j e c ti d 不需 要保证全球唯一,也不需要保证它在单个s e r v e r 进程中是唯一的。唯一的限制 是在o b j e c t 创建和登记的o a 中是唯一的。 l o 激活( a c t i v a t i o n ) 启动一个已经存在的c o r b a 对象给请求提供服务。既然由s e r v a n t 最后完 成c l i e n t 的请求,激活就需要把c o r b a 对象与一个适当的s e r v a n t 联系起来。 要注意的是,激活并不意味创建c o r b a 对象,即如果一个c o r b a 对象不存 在的话,那它就不能被激活。激活导致创建s e r v a n t 。与c + + 不同,i d l 接口没 有创建器或其它特殊对象刨建函数。对c l i e n t 来讲,通过调用工厂对象上的常 规操作来创建c o r b a 对象。对s e r v e r 来讲,实现工厂对象的s e r v a n t ,这样 s e r v a n t 调用o a 中的操作,从而把s e r v a n t 与工厂对象创建的c o r b a 对象联 系起来,为那些新对象创建对象引用,而且,工厂操作也激活新的c o r b a 对 象。 关闭一个活动的c o r b a 对象。很明显,d e a c t i v a t i o n 是a c t i v a t i o n 的相反 操作。d e a c t i v a t i o n 破坏c o r b a 对象和它的s e r v a n t 之间的联系。注意 d e a c t i v a t i o n 并不破坏c o r b a 对象。当对一个c o r b a 对象进行d e a c t i v a t i o n 操作后,该c o r b a 对象能被再激活以接收更多的请求。 1 2 i n c a r n a t i o n 对于通常的c o r b a 对象和s e r v a n t 来讲,i n c a r n a t i o n 的意思是把s e r v a n t 联系到它的c o r b a 对象上的动作,从而使s e r v a n t 能为请求服务。它的意思是, i n c a r n a t i o n 为虚的c o r b a 对象提供一个s e r v a n t “实体”。 与i n c a r n a t i o n 相反,它是破坏c o r b a 对象与它的s e r v a n t 之间的联系。 e t h e r e a l i z a t i o n 把在i n c a r n a t i o n 时连接到c o r b a 对象上的“实体”拿走。 e t h e r e a l i z a t i o n 操作后,c o r b a 对象仍以虚实体形式存在,没有与它连接的实 体来执行它的请求。 1 4 活动对象视图( a c t i v eo b j e c tm a p ) 由对象适配器( o b j e c ta d a p t e r ) 保留的一张表,该表把活动的c o r b a 对 象映射到于它连接的s e r v a n t 上。该图用对象标识( o b j e e ti d ) 给活动的c o r b a 对象命名。 实时c o r b a 研究及实时调度服务分析改进 小结 上面介绍的术语大部分关系到c o r b a 系统中的实体的生。简单的说, s e r v a n t 与c o r b a 对象的区别是,一个c o r b a 对象在它的一生中能由一个或 多个s e r v a n t 来表示,类似地,一个s e r v a n t 能表示一个或多个c o r b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 丁基橡胶阻尼减震材料行业跨境出海战略研究报告
- 2023年上半年新疆房地产经纪人制度与政策住房公积金还款方式考试试题
- 房贷AI应用行业跨境出海战略研究报告
- 社区银行AI应用行业跨境出海战略研究报告
- 履约保证金担保服务行业深度调研及发展战略咨询报告
- 运动装备设计与版权保护行业深度调研及发展战略咨询报告
- 秋天的树林课件
- 越野跑赛道行业深度调研及发展战略咨询报告
- 金融培训AI应用行业深度调研及发展战略咨询报告
- 过敏食物管理行业深度调研及发展战略咨询报告
- 2025年全国质量月活动总结参考(2篇)
- 口腔四手操作培训
- 2025年月度工作日历含农历节假日电子表格版
- 第37章 真菌学概论课件
- 总裁助理岗位职责
- 2024年封顶仪式发言稿模版(3篇)
- 癌症治疗协议书范例
- 《中华人民共和国机动车驾驶人科目一考试题库》
- 小学体育课件《立定跳远课件》课件
- 新生儿经外周置入中心静脉导管实践指南(第三版)解读
- 肝硬化肝性脑病指南
评论
0/150
提交评论