(计算机软件与理论专业论文)面向开放式控制器corba事件服务的设计与实现.pdf_第1页
(计算机软件与理论专业论文)面向开放式控制器corba事件服务的设计与实现.pdf_第2页
(计算机软件与理论专业论文)面向开放式控制器corba事件服务的设计与实现.pdf_第3页
(计算机软件与理论专业论文)面向开放式控制器corba事件服务的设计与实现.pdf_第4页
(计算机软件与理论专业论文)面向开放式控制器corba事件服务的设计与实现.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(计算机软件与理论专业论文)面向开放式控制器corba事件服务的设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 软件平台可以有效的确保开放式控制器的互操作性、可移植性、可互换性和可 扩展性。由于现有开放式控制器软件平台都是基于专有平台,它们存在着很多问 题。近年来,随着中间技术的日臻成熟,利用中间件技术替代控制器的软件平台 已经成为研究的热点。c o r b a 作为独立于网络协议、编程语言和软硬件平台的中 间件,特别适应于由不同软、硬件设备构成的异构环境,是我们建立开放式控制 器软件平台的出发点。 在分析现有控制器结构的基础上,在r t l i n u x 平台上,基于实时c o r b a 与 m i n i n l 啪c o r b a 规范,已建立起了一个实时中间件平台r t c k ( r e a l - t i m ec o r b a i nr t l i n u xk e r n e l ) 。r t c k 提供一种点到点的耦合通讯,为了确保控制器的开放性, 必须引入一个能够实现多个对象间松耦合通讯的c o r b a 服务一事件服务。 为此,本文基于r t c k 提出了一个r t c k 事件服务的体系结构,它包括实时 空间和用户空间两部分。围绕这一体系结构,在实时空间内设计了一个符合 c o r b a 事件服务规范的事件服务,以实现实时空间内多个对象间的松耦合通讯: 在用户空间,设计了t a o 事件服务的接口,以实现用户空间对实时空间事件的接 收:在实时空间和用户空间之间,基于实时f i f o ,设计了一个交互接口,以解决 二者交互问题。基于上述设计,在实时空间内,为了确保实时性能,采用了如下 一些实现技术:在事件通道内实现了事件优先级队列,并且采用引导者跟随者并 发模型实现事件调度线程。整个实现经过性能测试,结果验证了所设计系统的有 效性。由于事件服务中事件提供者和使用者之间可以不必知道彼此的存在,有时 使用者想知道事件来源时,它希望能够实现通过事件对事件提供者进行查找,命 名服务满足这一需求。本文的最后对命名服务进行了研究。 【关键字】开放式控制器c o r b a 事件服务r t l i n u x a b s t r a c t d e s i g na n di m p l e m e n t a t i o no fc o r b a e v e n ts e r v i c ef o ro p e na r c h i t e c t u r e c o n t r o l l e r x i a op e n g f e i ( c o m p u t e rs o f t w a r ea n dt h e o r y ) d i r e c t e db yp r o f e s s o ry ud o n g t h ea d o p t i o no fs o f t w a r e p l a t f o r m i sa l le f f e c t i v em e t h o dt or e s o l v e i n t e r o p e r a b i l i t y , p o r t a b i l i t y , s c a l a b i l i t ya n de x t e n s i b i l i t yo fo p e na r c h i t e c t u r ec o n t r o l l e r h o w e v e r , t h e r ee x i s tp r o b l e m si nn o w a v a i l a b l ep r o p r i e t a r ys o f t w a r ep l a t f o r m sf o ro a c i nr e c e n ty e a r s ,w i t hm a t u r a t i o no fm i d d l e w a r et e c h n i q u e ,t h em i g r a t i o no fs o f t - w a r e p l a t f o r m sr e s u l t st om i d d l e w a r eb e c o m e sa r e s e a r c hc o n t e n t a sc o r b ai si n d e p e n d e n t o fn e t w o r kp r o t o c o l ,p r o g r a m m i n gl a n g u a g e ,o sa n dh a r d w a r e ,i ti sa d a p t i v et o c o n s t r u c th e t e r o g e n e o u sc o m m u n i c a t i o ns y s t e mc o n s i s t e do fd i f f e r e n tp l a t f o r ma n d h a r d w a r ed e v i c e s a i m i n ga tt h ec o n s t r u c t i o no fo a c ,r t c ki sp r e s e n t e d , w h i c hi s ad e s i g n 。o f r e a l - t i m em i d d l e w a r ef r a m ei nr t l i n u xr e a l t i m ek e r n e l r t c ko r ba l o n eo n l y p r o v i d e sp o i n t t o - p o i n tc o m m u n i c a t i o n ,w h i c hb a d l yr e p r e s e n t st h en e e d so fo a c a m o r ed e c o u p l e dc o m m u n i c a t i o ns c h e m e ,w h e r ep r o d u c e r sa n dc o n s t u t i e r so fd a t ad on o t h a v et ok n o wa b o u te a c ho t h e r , i sp r o v i d e db yt h ec o r b ae v e n ts e r v i c e i nt h i st h e s i s ,a ne v e n ts e r v i c ea r c h i t e c t u r eb a s e do nr t c ki sp r e s e n t e d ,w h i c h c o n s i s t so fr e a l - t i m es p a c ea n du s e rs p a c e b a s e do nt h i sa r c h i t e c t u r e ,t h ed e s i g no fa l l e v e n ts e r v i c ec o m p l y i n gw i t ht h eo m ge v e n ts e r v i c es t a n d a r di sp r e s e n t e di n r e a l t i m es p a c e i tp r o v i d e sad e c o u p l e dc o m m u n i c a t i o ns c h e m e ;i nu s e rs p a c e ,t h e d e s i g no fa ni n t e r f a c eo ft a o e v e n ts e r v i c ei sg i v e n , i tc o u l dr e c e i v et h ed a t af r o m r e a l - t i m es p a c e a ni n t e r f a c eb a s e do nr t f i f oi sg i v e nb e t w e e nu s e rs p a c ea n d r e a l - t i m es p a c e t h ei m p l e m e n t a t i o nd e v e l o p e dw i t h i nt h es c o p eo ft h i st h e s i sp r o v i d e s r e a l t i m ec h a r a c t e r i s t i c s i nt h ee v e n tc h a n n e l ,ap r i o r i t yq u e u ei sd e v e l o p e d t h e l e a d e r f o l l o w e r sc o n c u r r e n tm o d e li sa d o p t e di ne v e n td i s p a t c h i n gt h r e a d ( e d t ) t h e n ,ap e r f o r m a n c et e s ti se x e c u t e da n dt h er e s u l t ss h o wt h ee f f e c t i v e n e s so fd e s i g n e d s y s t e m f i n a l l y , t h i st h e s i ss t u d i e st h ec o r b an a m i n g s e r v i c e k e y w o r d s o p e na r c h i t e c t u r ec o n t r o l l e r c o r b ae v e n ts e r v i c er t l i n u x n 引言 引言 计算机数控( c n c ) 系统作为制造形状复杂、高质量、高精度产品所必备的基础 设备,已成为当今先进制造技术的一个重要组成部分。然而,现今市场上组成c n c 系统( 以f a n u c 、西门子等为代表) 的硬件模块和软件结构绝大多数是专用的、互 不兼容的,系统各模块间的交互方式、通信机制也各不相同,这就造成了不同厂 家控制系统的相对独立、彼此封闭。数控系统的这一现状已不能适应当今制造业 市场变化与竞争,也不能满足现代制造业向信息化、敏捷制造模式发展的需要。 为解决上述问题,近十年来国内外已经对开放式控制系统进行了大量研究。研 究开放式数控系统的主要目的是解决变化频繁的需求与封闭控制系统之间的矛 盾,从而建立一个统一的开放的系统平台,增强数控系统的柔性。通俗地讲,开 放的目的就是使n c 控制器与当今的p c 机类似,系统构筑于一个开放的平台之上, 具有模块化组织结构,允许用户根据需要进行选配和集成,更改或扩展系统的功 能迅速适应不同的应用需求,而且,组成系统的各功能模块可以来源于不同的部 件供应商并相互兼容。简言之,开放式系统能有效地运行于不同的平台之上,可 以与其他应用系统相互操作,并提供与用户交互的统一风格,即所谓互操作性、 可移植性、可伸缩性和可互换性。 关于开放式控制器的研究工作,国际上许多组织与研究机构进行了多年大规模 的研究,如欧盟的o s a c a 计划、日本的o s e c 与美国的o m a c 等。虽然它们取 得了一定的成果,但实际的应用并不理想。如o s a c a 、o s e c 等并不支持实时通 信,提供的高层服务也有限,通讯基于特定的协议等。近年来随着中间技术的日 臻成熟,国外相关组织开始探讨利用中间件技术替代控制器的软件平台( 如欧盟 资助的o c e a n 计划) 。在控制器内引入中间件,将控制器软件与系统平台分开, 通过中间件管理模块间的交互,则可以保证控制器的开放特性。为此,国际上关 于控制器软件平台的研究思路基本达成共识,即充分利用计算机领域的研究成果, 针对控制器的特点作相应的改造后引入到控制器的设计中。 基于上述研究动态,论文开展设计与实现工作,具体中间件以c o r b a 规范为 基础。选择c o r b a 的原因是它独立于网络协议、编程语言和软硬件平台,特别 适合组建由不同平台、软硬件设备构成的异构环境中的中间件平台。同时,实时 c o r b a 中添加了对实时特性的支持。针对于控制系统内资源受限这一点,得到了 一个经过裁剪的c o r b a ,称为m i n i m u mc o r b a 。这两个c o r b a 规范的成熟完 善,为c o r b a 在控制器的应用奠定了基础。 在控制系统内的软件根据工作的特性分别位于实时空间和用户空间,现有的 面向开放式控制器c o r b a 事件服务的设计与实现 c o r b a 实现没有考虑这些。基于控制器体系结构这一特点,已建立了基于r t l i n u x 平台和实时c o r b a 规范的面向开放控制器的实时中间件平台r t c k ( r e a lt i m e c o r b a i nr t l i n u xk e r n e l ) 。由于r t c k 只实现了点到点间松耦合的交互。未实现 多个对象间交互的功能。为了扩展r t c k 的功能,本文的工作基于r t c k 框架, 在实时内核空间为其提供高层服务事件服务,并根据实现完成了相应的验证 工作。 2 第一章绪论 第一章绪论 从控制器的发展历程上看,以往的控制器是一种专用的封闭的体系结构专用 具有两层含义:即系统硬件是专用的和系统软件结构是专用的。对于不同厂家来 说,它们之间的硬件无法互换的,同时软件也无法移植和扩展。由控制器的特性 来看它就决定了传统控制的系统是一种封闭的、专一的系统,而对于现代的制造 系统来说,它需要有更好的适应力,对小批量加工,具有良好的柔性和多功能性。 具有这样特性的制造系统的需求已逐步超过对大型单一功能的制造系统的需求。 这一趋势促成了一个新概念的产生,即模块化、可重构、可扩充的软硬件系统, 这就是开放式控制系统。 1 1 开放式控制器 根据i e e e 的定义,开放体系结构是一开放的系统,它具有使正确编写的应用 程序在来自多开发商的各种平台上运行、与其他系统应用程序互操作,并且提供 和用户交互的一致风格的能力。开放体系结构控制已成为机器自动控制领域研究 的热点之一。为了实现i e e e 所定义的能力,开放式控制器应该具备以下基本特征 【1 1 【2 】: 可移植性:系统的功能软件与设备无关,各种功能模块能运行于不同的控 制系统内,即能运行于不同供应商提供的硬件平台上。 互操作性:通过标准化接口进行通信和交互,使不同功能模块能以标准的 应用程序接口运行于系统平台上,并获得平等的相互操作能力,协调工作。 可互换性:构成系统的各硬件模块、功能软件的选用不受单一供应商的控 制,可根据功能、可靠性、性能要求相互替换,不影响系统整体的协调运行。 可伸缩性:系统的功能、规模可以灵活设置,方便修改。控制系统的硬件 或软件模块可根据具体应用增减。 1 2 基于专有平台的开放式控制器 自上世纪9 0 年代以来,美国、欧洲、日本等西方发达国家相继开展了新一代 开放式控制器的研究工作,如欧洲的o s a c a 计划、日本的o s e c 计划、美国的 o m a c 计划等。o s a c a 认为“开放式控制系统应由一组逻辑上独立的组件构成, 组件间及组件与平台间具有标准接口。一个完整的控制系统即可由来自多个厂商 的这种组件相互协作而成,并可运行在各种平台上,且对用户及其他自动化系统 具有一致的接口。”o s a c a 结构复杂( 既有体系结构对象又有通信对象) ,难子掌 面向开放式控制器c o r b a 事件服务的设计与实现 握。虽然系统的构成元素a o 具有较大的灵活性,但粒度和功能的划分并不明确, 无法实现即插即用功能。同时a o 在逻辑上具有同等的地位,打破了控制系统本 身所固有的隶属结构和层次关系。因此,在数控系统的实际重构中,用户必须重 新建立这种关系,从而需付出额外代价。o s e c 认为数控系统是分布式制造系统的 一个服务器,因此,计划的研究重点在于使数控系统向制造车间提供分布式控制 支持。o m a c 的主要目标是:明确控制器开放式体系结构的用户需求,开发满足 这种需求的公共a p i ,同时为开放式控制器的设计、实现和商品化中的各种问题提 供解决方案。o m a c 没有发布它的体系结构参考规范,而是着重于实现技术的研 究。 这些研究针对控制器的开放性需求,在各个方面展开了研究,并取得了一定的 研究成果。这些工作在研究内容上多侧重于接口关系( 包括内部接口、外部接口) 的定义,且多围绕系统的外部接口及内部接口中非核心部分;在实现技术上注重 采用模块化的软件技术。这些研究在分析控制器需求的基础上,推出了自己的专 有平台,如o s a c a 的a s s ( 应用服务系统) 与m t s ( 消息传输系统) 、o s e c 的 m c ( 消息协调器) 等等。这些平台由于基于专有的技术,研制及推广成本较高, 同时也限制了控制器与企业上层企业信息系统间的交互,难以满足控制器的可重 构需求。o s a c a 和o s e c 的通信平台与典型的实时中间件实时c o r b a 的比较见 表l i 。 表1 - 1o s a c a 、o s e c 通信系统与实时c o r b a 比较 实时中间件 o s a c ao s e c ( 如实时c o r b a ) g i o p 可插协议,可使用 传输层 m t s ( t c p 砷) 多种传输层协议 命名服务、实时事件服务、 高层服务事件服务消息协调域 通知服务等 编程语言特定的编程语言特定的编程语言编程语言无关 实时能力不具备不具备具备 分布式通信支持不支持支持 本地优化s h o r t c u t s ( 部分实现)无c o l l o c a t i o n ( 配置) 1 3 基于实时中间件技术实现开放式控制器 近年来,实时中间件技术的发展及其在信息领域的成功应用,为开放式控制器 的设计带来契机。如果在现有的开放式控制器中引入实时中间件,将控制器软件 4 第一章绪论 与系统平台分开,通过实时中间件管理模块间的交互,则可有效地保证控制器的 开放性( 图1 1 ) 。然而,控制器不同于一般的信息系统,由于控制器对资源、实 时性、性能及可靠性有严格的要求,因此现有的实时中间件技术并不能直接应用 于控制器软件的设计中。所以我们需要在现有的实时中间件技术基础上建立面向 控制器的实时中间件。 控制器软件 控制器软件 实时中间件 p c 平台 p c 平台 1 4 相关研究与开发 图1 - 1 实时中间件在开放式控制器中的地位 1 o c e a n o c e a n t 3 】是o p e i lc o n t r o l l e re n a b l e db y 觚a d v a n c e dr e a l 。t i m en e t w o r k ( 先进实 时网络支持的开放式控制器) 的缩写,是o s a c a 项目的延续。该计划的总目标是 建立分布式控制的实时平台,以支持遵循开放规范控制组件的动态集成。通过该 平台可方便地实现柔性的、面向特定应用的控制系统。其具体目标可分为如下两 个: 分布式、实时通信平台的建立:定义并实现基于标准通信系统、面向数字 控制的分布式控制系统的实时框架( d c r f d i s t r i b u t e dc o n t r o ls y s t e mr e a l t i m e f r a m e w o r k ) 。d c r f 将以开放源码软件( o p e ns o u r c e ) 为基础( 如r t a i l i n u x 和 r t - c o r b a ) ,建立开放的分布式平台作为控制组件的基本构架,并提供实时通信 a p i 。 基于组件的参考结构的建立:定义并实现基于组件的、面向机床的开放式 数控参考结构( r e f e r e n c e a r c h i t e c t u r e ) ,作为开放式数控系统的领域模型。基于标 准的组件技术( 如c c m ) ,建立并描述开放式数控的参考结构,该结构并不作为 开放源代码发布,而要成为采用d c r f 机床控制器的标准化接口,并支持遵循该 标准的第三方软件的集成。 o c e a n 项目所采纳的技术路线是充分利用计算机领域的研究成果,并针对控 制器的特点做相应的改造,具体归纳如下: l i n u x 的采用:o c e a n 计划采用自由软件l i n u x 和实时扩展r t a i 作为控 面向开放式控制器c o r b a 事件服务的设计与实现 制器的操作系统。 c o r b a 标准的采纳:考虑到控制器对底层硬件设备的特殊要求,o c e a n 计划基于实时c o r b a 来建立基础性平台。目前采用华盛顿大学推出的开放源代 码系统t a 0 1 4 】【5 】进行开发。 c c m 模型的应用:基于组件的控制器参考结构,需要大量的基础性工作予 以支持,具体如组件的描述、编程模型的建立、组件的装配等。o m g 组织推出的 c c m ( c o r b a c o m p o n e n tm o d e l ) 模型,支持系统从设计到实现及配置的全部工 作。o c e a n 采用c c m 模型作为控制器参考结构的描述工具。目前采用的系统也 是基于t a o 的c i a o 。 目前,o c e a n 计划正在进行,项目的第一个目标正在实施之中。 2 r c s r c s 是美国标准化研究所( n i s t ) 为控制系统建立的实时中间件,称实时控 制系统( r e a l t i m es y s t e m ) 。针对r t l i n u x 环境,该研究所推出了一套软件称r c s 类库,但该库主要针对用户空间,实时空间仍要靠软件设计人员采用专有的设计 技术。 3 o m a c o m a c 是通用、福特、克莱斯勒三大公司联合发起的开放式控制器研制计划。 该计划采用c o m 作中间件,并基于c o m 给出了控制器接口的描述,但并没有推 出基于c o m 的产品,主要原因在于c o m 在实时及可靠性方面的局限性。 从上述相关产品的应用效果来看,基于w i n d o w s 的产品,系统的性能及安全 性无法得到保证;采用专有的技术,研制及推广成本较高。研制基于l i n u x 的实时 中间件,将是实现控制器开放性的有效途径。 1 5 论文研究背景 1 9 9 0 年9 月,中国科学院沈阳计算所成功地研制出我国第一台高档数控系统 “蓝天一号”,填补了国内高档数控系统的空白,开始了我国自行研制、设计、生 产高档数控系统的新阶段。十多年来,沈阳计算所将研制目标定位在高档数控系 统上,同时兼顾市场对普及型数控的需求,先后研制开发出6 个系列1 9 种型号系 统。这些产品从专用系统到开放系统进而到系统平台经历了三个发展阶段,充分 体现了国际上数控技术的发展趋势。 本论文工作属于中国科学院知识创新工程重大项目“开放式和智能化的数控 系统平台及产业化”的一部分。“开放式和智能化的数控系统平台及产业化”是中 国科学院沈阳计算技术研究所高档数控国家工程研究中心承担的中科院知识创新 6 第一章绪论 工程中的一个重大项目。该项目重点在高度开放式控制器体系结构研究、开放式 数控系统软硬件平台的研究开发、嵌入式实时控制系统开发环境的研究开发等方 面攻关,最终在开放性和可靠性技术上达到国际先进水平,在数控系统的设计与 实现方法上有所创新,在功能上满足不同用户的需求,在性能价格比上具有竞争 优势。论文工作的实现是以数控软件实验室的试验平台为基础,系统采用数控中 心的蓝天系列产品“n c 2 0 0 ”作为硬件平台。 1 6 本文的组织结构 本文在分析控制器结构( 分为实时空间和用户空间两部分) 的基础上,在 r t l i n u x 平台上,基于我们的中间件框架r t c k ,在实时空间内设计和实现了一个 遵循c o r b a 事件服务规范的事件服务。论文的组织结构为: 第一章为“绪论 。介绍了开放式控制器的特征、基于实时中间件实现控制器 开放性的可行性和必要性,同时本章还简要介绍了本文的研究背景、研究内容及 国内外研究状况等。 第二章为“面向开放式控制器实时中间件r t c k ”。首先对实时c o r b a 以及 m i n i m u mc o r b a 规范做了介绍,接着给出了控制系统的软硬件系统,最后分析现 有的开放式控制器体系结构,提出了基于r t l i n u x 和实时c o r b a 的实时中间件 r t c k 的整体结构,并详细介绍了工作的重点。 第三章为“r t c k 事件服务的设计 。本章主要完成了事件服务的设计,包括 r t c k 事件服务和t a o 事件服务及二者的交互接口的设计。首先介绍了事件服务 的需求和主要的通讯模型,并从不同的角度,给出了r t c k 事件服务在内核空间 的设计,接着给出了t a o 事件服务的设计,最后给出了实时空间和用户空间的交 互接口的设计。 第四章为“r t c k 事件服务的实现与验证”。本章主要完成了事件服务的实现 细节及对实现的验证。首先给出事件通道的详细实现,接下来给出了我们对t a o 部分修改的实现,接下来给出了t a o 事件服务与r t c k 事件服务交互的实现。最 后进行了基本功能的测试和时间延迟的测量,并对实验结果进行分析。 第五章为“命名服务的研究 。首先介绍了事件服务的基本原理和概念,进一 步给出了t a o 命名服务的功能及特点,最后给出了将t a o 事件服务引入r t c k 的可行性。 7 面向开放式控制器c o r b a 事件服务的设计与实现 2 1 引言 第二章面向开放式控制器的实时中间件r t c k 软件平台作为确保开放式控制器可移植性、可扩展性、可伸缩性和互操作性 的关键技术,已经成为开放式控制器研究的热点j 为实现这些特性,需要一个独 立于专门应用,且能够适应各种硬件的实时中间件平台。 由于c o r b a 6 独立于网络协议、编程语言和软硬件平台,特别适合作为由不 同平台、软硬件设备构成的异构环境中。然而,控制器不同于一般的信息系统, 其对系统的实时性能及资源都有特殊的要求。针对这种需求,近年来o m g 推出了 实时c o r b a 和m i n i m u m c o r b a 规范。实时c o r b a 通过对c o r b a 的扩展,为 c o r b a 增添了可预测性、确定性、低延迟、q o s 等实时特性的支持。m i n i m u m c o r b a 通过对c o r b a 规范进行裁减,7 使其适合应用在资源受限的控制系统中。 因此,通过分析现有的开放式控制器体系结构的特点,本章介绍了我们开发的面 向开放式控制器的实时中间件基础平台r t c k ( r e a lt i m ec o r b ai nr t l i n u x k e m e l ) ,作为进一步设计事件服务的基础。 2 2 中间件技术 中间件是处于操作系统和应用程序之间的一层软件( 7 1 。从系统的层次化角度来 说,中间件在操作系统、数据库和网络协议之上,应用程序的下层。其作用是为 处于自己上层的应用程序提供运行与开发的环境,建立一种高层次的、独立于平 台的编程模型,并隐藏了复杂的底层细节。在众多关于中间件的定义中,目前比 较普遍被接受的是国际数据公司( i d c - - i n t e r n a t i o n a ld a t ac o r p o r a t i o n ) 所表述的: 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同 的技术之间共享资源【8 】。目前国际上主流的中间件技术有三大流派- - c o r b a 、 e j b 、c o m d c o m 。 c o m d c o m 是微软公司提出的一种分布式对象中间件技术。它开发效率较 高,同时有一系列相应的开发工具支持,应用开发相对简单,只能运行于微软操 作系统支持的平台上。如果在微软的平台上进行开发,c o m d c o m 是一个不错 的选择。 e j b 是由s u n 公司提出的基于j a v a 的中间件技术。e j b 计算技术代表的是一 种前沿技术,它使得复杂的多层结构应用系统开发变得容易。e j b 虽然和c o r b a 在技术上处于竞争的地位,但实际上,e b 技术很好地补充了c o r b a 。c o r b a 8 第二章面向开放式控制器的实时中阁件r t c k 提供了一个强大的基于标准的基础结构,可在此结构之上构建e j b 服务器。e j b 技术使得在c o r b a 基础结构的顶层构建应用程序变得更为容易。由于j a v a 在实 时领域的应用还不成熟,所以在控制器的核心软件设计中我们暂不考虑。e j b 。 c o r b a 是o m g ( 对象管理组织) 推出的一种重要的分布式对象通信中间件 技术,在信息领域获得了广泛的应用。 由于c o r b a 独立于网络协议、编程语言和软硬件平台,较适合组建像控制 器这样由不同软硬件设备构成的异构环境中的软件平台。因此,本文的工作主要 围绕c o r b a 及相关扩展展开。 2 2 1c o r b a c o r b a 规范主要包含以下内容: o r b 核心( o r bc o r e ) ; o m g 接口定义语言( o m gi n t e r f a c ed e f i n i t i o nl a n g u a g e ) ; 接口仓库和实现仓库( i n t e r f a c er e p o s i t o r ya n di m p l e m e n t a t i o nr e p o s i t o r y ) ; 语言映射( l a n g u a g em a p p i n g ) ; 存根和框架( s t u ba n ds k e l e t o n ) : 动态调用和调度( d y n a m i ci n v o c a t i o na n dd i s p a t c h ) ; 对象适配器( o b j e c t a d a p t e r ) ; o r b 之间的互操作( h t c r o p e r a b i l i t yb e t 、) l ,e 锄o r b s ) 。 图2 1 描述了c o r b a 的体系结构和主要组成部分。下面对每个组件进行简单 的介绍。 1 0 r b 核心 o r b 的任务是把客户发出的请求传递给目标对象,并把目标对象的执行结果 返回给发出请求的客户。由此可以看出,o r b 的最重要的特征是,提供了客户和 目标对象之间的交互透明性。o r b 使应用开发者不必过多地担心底层的分布式编 程问题,从而可以集中精力设计自己的具体应用。 2 i d l 语言和语言映射 在客户向目标对象发送请求之前,它必须知道目标对象所能支持的服务。对象 通过接口定义来说明它所能提供的服务。c o r b a 对象的接口由o m gi d l 来定义。 o m gi d l 的语法与c 抖类似( 包括c + + 的预处理语句) ,它另外增加了一些支持 分布式处理的关键字( 如i n 、o u t 、i n o u t 等) 。一个i d l 说明可以包含一个或多个 接口,也可以包含模块说明。一个接口说明包含两部分:接1 2 头和接口体。接口 头由接口名和一组可选的继承接口组成。接口体由常量、变量、操作和异常声明 组成。操作由操作名、参数和异常来定义。 9 面向开放式控制器c o r b a 事件服务的设计与实现 圆圈圈噫匾受燮斛b 懋圜爨趟k 髓圈隧趟 图2 - 1c o r b a 体系结构 o m gi d l 是一个纯说明性语言,不是编程语言,并且与具体的宿主语言( 主 机上的编程语言) 无关。这就强制性地将接口与对象实现分离,使得可以用不同 的语言来实现对象,而它们之间又可以进行互操作。既然不能用o m gi d l 直接去 实现分布式应用,那么就需要把i d l 的特性映射为具体语言的实现,这就是语言 映射的任务。到目前为止,o m g 已经为c 、c + + 、s m a l l t a l k 、a d a9 5 、c o b o l 和j a v a 等语言映射制定了标准。 3 存根和框架( s t u ba n ds k e l e t o n ) 除了把i d l 的特性映射到具体的编程语言外,o m gi d l 编译器还根据接口定 义来产生客户方的存根和服务器方的框架。存根代表客户创建并发出请求;框架 则把请求交给c o r b a 对象实现。具体地说,存根为客户提供了一种机制,使得 客户能够不关心o r b 的存在,而把请求交给存根,存根则负责对请求参数的编组 和发送,以及对返回结果的接收和解组。框架在请求的接收端提供与存根类似的 服务,它将请求参数解组,识别客户所请求的服务,向上调用对象实现,并把执 行结果编组,然后返回给客户方。 由于存根和框架都是从用户的接口定义编译而来,所以它们都与具体的接口有 关,并且在请求发生前,存根和框架早以分别被直接连接到客户程序和对象实现 中去。因此,通过存根和框架的调用被通称为静态调用。 4 对象适配器 对象适配器是联系对象实现和o r b 本身的纽带。另外,它的引入还大大减轻 了o r b 的任务,从而简化了o r b 的设计。具体地说,对象适配器主要完成以下 1 0 第二章面向开放式控制器的实时中间件r t c k 工作: 对象登记利用对象适配器所提供的操作,可以在c o r b a 的实现仓库中 把编程语言中的实体登记为c o r b a 的对象实现。 对象引用的产生对象适配器为c o r b a 对象生成对象引用。 服务器进程的激活如果客户发出请求时,目标对象所在的服务器还未 运行,则对象适配器自动激活该服务器。 对象的激活如果必要,自动激活目标对象。 对象的撤消在预先规定的时间片内,如果一直没有发向某个目标对象 的请求,则对象适配器撤消这一对象,以节省系统资源。 对象向上调用对象适配器把请求分配给已登记了的对象。 c o r b a2 2 版本引入了可移植对象适配器p o a 来取代基本对象适配器b o a ( b a s i co b j e c ta d a p t e r ) 。可移植对象适配器强调,在维护应用程序的可移植性过 程中,应确保c o r b a 对象和与编程语言有关的伺服程序之间能够完全交互。b o a 被从c o r b a 中删除。 5 o r b 之间的互操作 c o r b a 2 0 给出了一个通用的互操作体系结构,它提供两种互操作方法:o r b 到o r b 的直接互操作和基于桥的互操作。当多个o r b 在相同的域中时,即它们 能理解相同的对象引用和相同的i d l 类型,则可以使用直接互操作方法。当不同 域中的多个o r b 必须通信时,则使用基于桥的互操作方法。桥的作用是,在域边 界进行信息映射。 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 ) 是c o r b a 互操作体系结构的基础,它为 o r b 之间的通信规定了传输文法和信息格式。g i o p 简单且易于实现。对任何面向 连接的传输协议作少量的假设后,其上都可以直接建立g i o p 。i i o p ( n t e m e t i n t e r - o r bp r o t o c 0 1 ) 说明如何在t c p i p 网络上交换g i o p 消息。从某种意义上, g i o p 和h o p 的关系有点类似于对象的接口定义与它的实现之间的关系。 除了对o r b 之间的互操作协议进行了标准化以外,c o r b a 还规定了用于支 持互操作的对象引用的格式。对象引用对用户是不透明的,o r b 使用它来确定目 标对象的位置。c o r b a 给出了一个标准的对象引用格式i o r ( i n t e r o p e r a b i l i t y o b j e c tr e f e r e n c e ) 。对象的i o r 提供的信息用于在多个不同的o r b 上确定对象的 位置。 由于“接口仓库和实现仓库 、“动态调用和调度”等内容主要和c o r b a 的动态特性相关,本文没有用到,故不再介绍。有关c o r b a 的详细信息,请参 阅相关规范和资料。 由于通用c o r b a 规范并不是针对控制器这类实时应用而制定的,因而缺乏 1 1 面向开放式控制器c o r b a 事件服务的设计与实现 对可预测性、确定性、低延迟、q o s 等应有的实时特性的支持,因此o m g 为c o r b a 制定了一个实时扩展,称作实时c o r b a t 9 1 。同样,针对c o r b a 过于复杂和庞大 的缺点,不适合诸如控制器这类的嵌入式应用,o m g 对c o r b a 规范进行了裁减, 得到一个子集,即m i n i m u mc o r b a t l 0 1 。m i n i m u mc o r b a 和实时c o r b a 规范的 成熟和完善为c o r b a 在开放式控制器设计中的应用奠定了基础。 2 2 2 实时c o r b a o m g 组织在制订c o r b a 规范时,最初的设计思想主要是关注异构平台的互 操作功能的实现,用以解决异构平台上的不同对象的协作问题,而对于实时功能 没作进一步考虑。因此普通的c o r b a 比较适用于传统的应用领域,而要将其应 用于实时领域中还存在诸多的局限性。o m g 组织为了扩展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 为了支持应用的实时性,它必须能够对资 源进行有效的控制和管理,对任务的执行有可预测性。所以为了保证实时c o r b a 能够应用于实时领域,它必须具备以下的能力: ( 1 ) 底层通信的资源管理:一个实时c o r b a 端系统必须具有能够管理底层 通信基础设施策略和机制的能力。这一能力将涉及通信的多个方面,从管理某个 调用连接的选择,到利用网络的高层次q o s 特征,如控制连接的带宽。 ( 2 ) 操作系统的调度机制:o r b 利用操作系统的机制来调度应用级的活动。 由于目前实时c o r b a 只适用于固定优先级的实时系统,因此这些机制对应着管 理操作系统线程调度优先级。 ( 3 ) 实时o r b 端系统:o r b 负责透明地在客户和服务器之间传递请求。 一个实时o r b 端系统应能够提供标准的界面,以便应用可以向o r b 指定它们的 资源需求。c o r b a 规范定义了策略框架,允许应用配置o r b 端系统资源,如线 程优先级、消息排队的缓冲和传输层的连接等。 ( 4 ) 全局调度服务:可以管理端系统和通信资源的实时o r b 只是实时解决 方案的一个部分。实时o r b 也要为高层服务和应用组件确保有效、可伸缩和可预 测的端到端行为。例如,一个全局调度服务可以被用来管理和调度分布式资源。 这样一个调度服务和o r b 可共同提供支持端到端实时操作的机制。 实时c o r b a 为了支持这些能力,对原有的c o r b a 框架进行了扩展,定义了 标准的界面和q o s 策略,以保证应用的实时性。实时c o r b a 的扩展如图2 2 所 1 2 第二章面向开放式控制器的实时中间什r t c k 不o s c h e d u li n g s e r v i c e r t c o r b a p r i o r it y o r b r t o r b 口c 醇o r b a 蒜口实帅眦实体 il实体u 艿叫“1 万阡 图2 - 2 实时c o r b a 扩展 2 2 3m i n i m u mc o r b a 近来在开发复杂的嵌人式应用时,系统的可用性和可靠性变得越来越重要。 同时,随着通讯技术的成熟以及嵌入式系统的日益广泛应用,嵌入式系统之间及 嵌入式系统与普通桌面系统之间必然会出现更广泛的协同工作的需求。但该需求 将会增加软件设计的复杂性。将c o r b a 应用于嵌入式系统,对于解决嵌入式应 用( 特别是具有协同工作要求的嵌入式应用) 开发困难,维护困难的问题,将起 起到很大的作用。 由于嵌入式系统与普通桌面系统存在很大的差异,这主要是因为嵌入式系统 的资源( 如c p u 的处理能力、内存的容量、功耗等) 有限,因而普通的c o r b a 系统并不适合于嵌入式系统。 为了适应嵌入式应用( 如控制器等) 对资源的严格要求,o m g 对c o r b a 进 行了裁减,得到一个子集仰i m m 啪c o r b a 。m i n i m u mc o r b a 是资源和易用 性之间权衡的结果。它主要从以下几方面对c o r b a 规范进行了裁减: ( 1 ) 运行安全性 如果应用需要,需要应用自己解决该问题; 1 3 面向开放式控制器c o r b a 事件服务的设计与实现 ( 2 ) 动态分配 所用的资源在设计时进行预分配。c o r b a 中支持动态分配的部分被裁减。这 就将动态调用界面,动态调用框架,及可移植对象适配器的动态部分删除。 ( 3 ) 截取器 截取器被放置在客户调用服务的通信路径上,负责一个或多个o r b 服务的执 行。由于它具有很大的动态性,也被省略。 ( 4 ) 接口仓库 o r b 提供接口定义的永久存储,接口仓库则管理和提供o m gi d l 所规范的 接口定义的访问。接口仓库主要为

温馨提示

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

评论

0/150

提交评论