(计算机软件与理论专业论文)corba技术及ccm体系结构研究.pdf_第1页
(计算机软件与理论专业论文)corba技术及ccm体系结构研究.pdf_第2页
(计算机软件与理论专业论文)corba技术及ccm体系结构研究.pdf_第3页
(计算机软件与理论专业论文)corba技术及ccm体系结构研究.pdf_第4页
(计算机软件与理论专业论文)corba技术及ccm体系结构研究.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(计算机软件与理论专业论文)corba技术及ccm体系结构研究.pdf.pdf 免费下载

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

文档简介

摘要 公用对象请求代理体系结构( c o r b a ) 是国际对象管理组织( o m g ) 提出的一种 分布式体系结构模型。它同m i c r o s o f t 的c o m d c o m m t s c 0 卅,与s u n 的e j b 模型共同成为服务器端的三种主要的组件模型。特别是2 0 0 1 年1 2 月末提出的 c o r b a 组件模型( c c m ) 增强了c o r b a 在服务器端组件同另外两种组件技术的竞争 优势。 本文首先对c o r b a 的主要的特性进行了论述,针对新采纳的c o r b a 组件模 型进行了研究,总结c c m 结构对原有o r b 对象扩展产生的影响使c o r b a 技 术更加有利于分布式对象的开发,然后从软件工程的角度,提出了一种适应于 c o r b a 系统的设计模型,并根据c o r b a 的具体设计方法,对如何利用c o r b a 技 术集成多种语言开发的对象进行了较深入的分析,并以一个车站在线定票系统 为原型,采用c + + 、j a v a 、d e l p h i 等语言实现了c o r b a 对象之间的相互通讯, 对c o r b a 对象之间的通讯的一些内在机理进行了研究,最后论述了c o r b a 技术 与数据库集成以及基于c o r b a 技术构筑大型应用系统的问题。 关键词;o o r b a ,可移植对象适配器( p o a ) 。接口定义语言( i d l ) , o o r b a 组件模型( c c m ) ,实现框架 a b s tr a c t 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 ) i s ak i n do f d i s t r i b u t e d a r c h i t e c t u r eb r o u g h t f o r w a r db yo b j e c tm a n a g e m e n t g r o u p ( o m g ) c o r b a , w i t hs u n s e n t e r p r i s ej a v a b e a n ( e j b ) a n d m i c r o s o f t sc o m d c o m m t s c o m 十,m a k e su po f t h r e ek i n d so fc o m p o n e n t m o d e l si ns e r v e r ,i np a r t i c u l a r ,c o r b ac o m p o n e n tm o d e l ( c c m ) b r o u g h t f o r w a r di nd e c e m b e r2 0 0 l ,h a sm o r ea d v a n t a g et ot h eo t h e rt w oc o m p o n e n t m o d e l si ns e r v e ri nc o m p e t i t i o n t h i sd i s s e r t a t i o nf i r s tr e s e a r c h e st h ep r i m a r y c h a r a c t e r l s t l co t c o r b at h e nr e s e a r c h e st h ec o r b ac o m p o n e n tm o d e lw h i c hi s l a t e s tb r o u g h t f o r w a r da n dd i s c u s s e sc o r b a s i n f l u e n c eo nt r a d i t i o n a la p p l i c a t l o b d e v e l o p m e n ta n di m p l e m e n t a t i o n 一一m a k i n g e a s i e rt h ed e v e l o p i n gt h e d i s t r i b u t e do b j e c t t h e n ,f r o mt h ev i e wo ft h es o f t w a r ee n g i n e e r l n g ,1 t b r i n g sf o r w a r dad e s i g nm o d e la d a p t i n gt h ec o r b as y s t e m a n db a s e st h e a c t u a ld e s i g nm e t h o d ,i t d i s s e r t a t e sh o wt oi n t e g r a t e t h e o b j e c t s d e s i g n e db y d i f f e r e n tp r o g r a m m i n gl a n g u a g e s , a n d i m p l e m e n t t h e c o m m u n i c a t i o nb e t w e e nt h eo b j e c to fc o r b ap r o g r a m m i n gw i t hc + 十,j a v a , d e l p h il a n g u a g e a c c o r d i n gt oas y s t e mo fp r e c o n c e r t i n gt i c k e t a tl a s t , i td i s s e r t a t e st h ep r o b l e mo ft h ei n t e g r a t i o nb e t w e e nt h ed a t a b a s ea n d t h et e c h n o l o g yo fc o r b aa n dh o wt oe s t a b l i s ht h el a r g ea p p l i c a t i o ns y s t e m b a s e st h et e c h n o l o g yo fc o r b a k e yw o r d s :o o r b a ,p o r t a b ieo b j e c ta d a p t e r ( p o a ) 。in t er f a o ed e f in e la n g u a g e ( i d l ) 。o o r b ao o m p o n e n tm o d e i ( c c m ) ,i m p i e m e n t a t i o n f r a m e w o r k c o r b a 技术及c c m 体系结构研究 0 前言 人类整个计算机应用历史前后至今约有4 5 年,信息科技的进化过程经历了 从单一应用程序到客户机i n 务器架构的应用程序再到分布式多层应用的不断 的变革。当前应用程序开发的发展正处于分布式多层应用的高速成长时期。以 下就企业应用程序开发的演化过程加以说明: 第一阶段单一的应用程序( m o n o l i t h i ca p p l i c a t i o n s ) 5 0 至7 0 年代,企业计算机应用是大型主机与终端机,应用程序都是单一 的,文字型式的,是程序与数据( d a t a ) 的组合,程序开发人员的选择仅是如何 去构架与储存数据,技术仅是在减少储存的空间与费用( 因而引发出现今的” y 2 k ”问题) ,这种程序与资料的严密组合也造成资料无法共享与重复使用。 第二阶段客户机服务器架构应用程序( c l i e n t s e r v e ra p p l i c a t i o n s ) 8 0 年代初期,数据库管理系统被大量地采用,企业按其需求建立了数据库 并允许许多种应用程序来获取使用。这种程序与资料分置,企业共同的资料让 用户以文字型态的接口来获取使用,在8 0 年代广泛地被采用且运行良好;但进 入图形接口( g u i ) 的9 0 年代,大量的前端用户获取实时( r e a l t i m e ) 的数据 时,再加上i n t e r n e t 网络应用逐渐盛行;造成前端p c 的应用程序变得肥大且 复杂以及使用效率的瓶颈与困难。从程序设计的技术角度来说,企业数据( 如t a ) 虽可重复使用,但企业商业逻辑( b u s i n e s sl o g i c ) 仍无法重复使用,这是其 不足之处。 第三阶段多层分布式应用程序( m u l t i t i e rd i s t r i b u t e da p p l i c a t i o n s ) 9 0 年代后期,所谓分布式运算是应用程序不只是获取远程之数据库服务器 的数据而已,而且应用程序可以是分散在不同的系统平台上,并起运作、共 享数据。开放软件基金会( o p e ns o f t w a r ef o u n d a t i o n ,o s f ) 和o p e ng r o u p 的 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 m e n t )与对象管理组织( o b j e c t m a n a g e m e n tg r o u p o m g ) 的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 ) 是分布式运算的两大标准。在9 0 年代企业运算逐渐采用所谓的 多层分布式运算架构,包含轻薄型的g u i 前端配合中层的( m i d d l et i e r ) 应用 c o r b a 技术及c c m 体系结构研究 程序服务器执行商业逻辑( b u s i n e s sl o g i c ) 并连接后端的数据库,这样的运 算架构将成为9 0 年代后期乃至二十一世纪初期的主流。 分布式架构的分析比较: 从客户机朋臣务器架构的应用到多层分布式运算,期间的技术变革以及如何 来开发、分发使用与管理其应用程序呢? 早期在u n i x 平台上,d c e 的商品化产 品- - b o r l a n d e n t e r a 采用r p c ( r e m o t ep r o c e d u r ec a l l ) 技术,已有上百个企 业用户采用并已相当成熟稳定地执行许多大型分布式应用程序。在1 9 8 9 年 o b j e c tm a n a g e m e n tg r o u p 成立,并在d c e 标准加上支持分布式对象而推出c o r b a 新标准,可是为什么产生c o r b a 呢? 在8 0 年代起,人们用s m a l l t a l k 、c 、c 等程序语言来编写应用程序到后来的v i s u a lc + + ,d e l p h i ,叶+ b u i l d e r 等集 成开发环境以拖放组件或对象的方式来构建g u i 程序,加上近年来j a v a 的兴起, 对象的封装与继承以及组件的可重复使用,这些技术的优势简化了构建大型复 杂的应用程序,这也影响了企业大型应用程序,尤其是在分布式企业逻辑的封 装与重复使用,也促使了c o r b a 受到重视与采用。 目前针对分布式企业运算对象的可重复使用有三种架构标准:m i c r o s o f t 的d c o m c o m + 、s u n 的e n t e r p r i s ej a v a b e a n s 与o m g 的c o r b a 。d c o m c o m + 是专 属于w i n d o w s 与n t 环境,为部门级( d e p a r t m e n tl e v e l ) 运算的主要架构, b o r l a n d 的d e l p h i 与c + + b u i l d e r 是d c o m c o m + 的最佳工具。但在大型企业中 可能有异质性的平台如:n t 、u n i x 、a s 4 0 0 、m v s 、v m s 、m a c i n t o s h 等,一 个专属性的分布式对象运算架构是无法满足企业用户的需求。 表一三种分布式技术的比较 ( t a b i e1c o m p a r ew i t ht h r e ek in do fd i s t r i b u t e dt e c h n o l o g h y ) j a v a 、r m i 与e n t e r p r i s ej a v a b e a n s 完全支持异质性平台极适合大型企业 的跨平台需求,b o r l a n d 的j b u i l d e r 正是支持p u r ej a v a ,跨平台的开发工具。 但是在现实的软件应用环境里常是由多种不同的程序语言所构建出的,如: f o r t r a n 、c o b o l 、c c + + 、b a s i c 、d e l p h i 、d a t a b a s e4 g l 等,很少有企业只 用单一种语言来构建其全部的应用程序。在这种多种不同的程序语言之应用环 境里也只有c o r b a 符合需求,这也是为什么c o r b a 被誉为高速成长的中问件 ( m i d d e w a r e ) 架构,更也是为什么拥有8 5 5 个会员的o m g 更致力在发展c o r b a c o r b a 技术及c c m 体系结构研究 成为分布式运算的业界标准的主因。 从另一个角度讲,全球的竞争使得越来越难于规划开发和维护复杂的应用 程序,这使得分布式对象计算( d i s r i b u t e do b 力c tc o m p u t i n g ,胧) 中间件 的需求快速的增长( 例如o m g 的通用对象请求代理体系结构( c o r b a ) ,s u n 的 e j b ( e n t e r p r i s e 妇姻魔a 门) ,m i c r o s o f t 的c o m d c o m c o m + 等) ) 。许多企业 面临着这样的问题:如何在不抛弃历史遗留系统的基础上进行二次开发,整合 原来的系统,增加新的功能;如何降低系统的维护费用;如何令运行在企业中 不同平台上的系统协调统一,整合在一起;如何发挥各种不同编程语言、环境 的优势,不同的需求采用不同的语言,并能够使这些不同语言编制的模块无障 碍的通信,协调工作;如何做到代码的重用等等,所有的这些问题的解决几乎 都可以通过采用c o r b a 技术来实现。 c o r b a 允许客户端激活在分布式对象上的操作,而不用关心对象的位置, 程序设计语言,操作系统平台,传输协议,内联性或者硬件平台。o m gc o r b a 的成功案例中显示,在过去的五六年里,为分布式客户机n 务器程序应用 c o r b a 中间件日益增多。在以后的章节中我们将就c o r b a 这种分布式对象技术 以及其最新规范c o r b a3 中的c c m ( ( 哳搠c o m p o n e n tm o d e l ) 技术的原理和应用 进行深入的介绍。 c o r b a 技术及c c m 体系结构研究 1 c o r b a 与c c m 简述 就目前而言,分布式对象技术主要可以分为三家即:o m g 的c o r b a ,s u n 的 e j b ( e n t e r p r i s ej a v ab e a n ) ,m i c r o s o f t 的c o m d c o m c 0 m + m t s ,可以说它 们是互有优势,并都在不断的发展之中,在很长一段时间内将会共同存在。然 而,c 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 r a r c h i t e c t u r e ) 是由对象管理组织o m g ( o b j e c tm a n a g e m e n tg r o u p ) 负责制订 与发布的。由o m g 发布的对象管理体系结构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 规范在内的所有o m g 规范的概念模型基础。 对象管理组织( o m g ) 是一个成立于1 9 8 9 年的非盈利性联盟,其目标是促 进在分布式系统开发中面向对象技术的理论与实践的发展。已发布的规范主要 是统一建模语言u m l ( u n i f i e dm o d e l i n gl a n g u a g e ) 和公共对象请求代理体系 结构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 ) 。遵循o m g 规范 可开发出具有标准面向对象接口的、可互操作的、可重用的、可移植的软件组 件。 c o r b a 是o m g 最具影晌力的规范集,它保证了应用程序的可互操作性以及 对于硬件平台、操作系统、编程语言以及网络与通信协议的无关性。c o r b a 规 范中包含一系列单独的规范,例如o m g 接口定义语言i d l 、网络通信协议g i o p 和il o p 、可移植对象适配器p o a 、c c m ( c o r b a 组件模型) 等。 1 1o o r b a 的优势 c o r b a 被设计成有效的解决了分布式软件的开发需要解决一系列的兼容问 题,包括以下几个方面w : ( 1 ) 跨平台:未来的软件将分布在各种机型的平台上:大型机、p c 机、笔记本、 带程序的电视机、录像机、传感器、报警器、各种d s p 、p d a 、手机等等。 采用c o r b a 我们可以使用各种信息、数据进行各种自动化处理,无论他们是 在什么平台之上。近几年来手机市场的增长非常迅速,在手机这个平台之上, 蕴含着无限的商机,w a p 技术使得手机用户无论在世界任何角落都能与 i n t e r n e t 相连,对于w a p 手机用户同其他平台如:p c 机,家用电器之问的 数据交换的解决方案,完全可以采用c o r b a 技术来实现。 ( 2 ) 跨操作系统:计算机世界的操作系统的种类繁多,w i n d o w s 系列、u i n x 系 c o r b a 技术及c c m 体系结构研究 列及其变种、l i n u x 、s o a r i s 、s u no s 等,c o r b a 技术令无论是开发人员还 是最终用户最大限度的不去考虑操作系统的相关性,做到应用程序无障碍的 在各个操作系统之间交换数据,这一点恐怕是c o m 系列技术无法想象的。 ( 3 ) 跨语言:现在流行的编程语言以及编程环境有很多,j a v a 、d e l p h i 、c 十+ b u i l d e r 、v c 、v b 、p b 等等,这些语言彼此之间各有长处,对于不同需求的 开发,采用不同的语言可以提高开发的效率,因为每一种语言都有其优势 明显的领域,在很长的一段时间,这些语言必定会共同存在。在未来的世 界里,允许不同语言之间的混合编程,使得每种语言都在最擅长的领域一 显身手,可以加快程序的开发进度。另外,对于历史遗留的程序的二次丌 发时,可以不再拘泥于原来语言的开发环境,这对于代码的重用和维护成 本的下降都有莫大的好处。 ( 4 ) 跨协议:i n t e r n e t 是一个异质结构的网络,在不同的区域可能具有不用的 网络结构和传输协议,为了使软件在运行时具有数据、方法的共享性,操 作的透明性,集成软件时必须考虑协议不同带来的不便。 ( 5 ) 跨版本:用户对软件的需求总是在逐步增加和变化的,每次的改变都会要 求软件开发者重新编写程序的模块。c o r b a 与有版本无关性的特点,它的版 本不但具有向下兼容性,而且具有向上兼容性。 1 2 传统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 还提供了更高级的可 重用组件,o m g 公布了一系列c o r b a 对象服务的清单,他们是访问一些标准的 通用服务的标准接口,例如:命名服务,事务服务和事件服务:通过采用c o r b a 和它的对象服务,程序设计者可以将大的,复杂的分布式应用程序,系统特性 以及来自不用供应商的服务整合到一起。然而传统的c o r b a 对象模型( c o r b a 2 4 及以前版本) 在还存在一些不足“: 。 ( 1 ) 没有分发配置对象实现的标准方式:c o r b a 规范中没有定义在服务器进程 中配置对象实现的标准的方式,例如:没有分发对象实现的标准的方式:安 装对象实现在他们的执行上下文中,或者激活实现在特定的o r b 中。因此, 系统设计者必须用特别的( 非标准的) 策略实例化系统中的所有的对象。此 外,由于一个对象可能依赖于其他的对象,实例化的对象在大的分布式系统 中可能变的非常的复杂。 ( 2 ) 缺乏对服务器的通用程序设计术语的支持:c o r b a 规范家族提供了丰富的特 性用以实现服务。然而,在许多应用程序领域,只有有限的子集被应用。因 此,需要通过工具为子集提供必要的特性支持。以自动产生c o r b a 代码来实 c o p r a 技术及c c m 体系结构研究 现通用应用程序。例如:c o r b a2 2 规范引入p o a 概念,它是前端的客户端 请求具体的对象实现的o r b 机制。p o a 规范提供了标准的a p i 通过o r b 注册 对象实现,取消对象激活或者按照需求激活对象实现。p o a 是c o r b a 程序模 型弹性的组件并且提供了多个策略来配置它的行为。然而,应用程序的主要 的对象只是用到了p o a 所有可能配置的一个子集,因此,服务器开发者为了 获取他们想要的行为就必须学习如何配置许多p o a 的策略。 ( 3 ) 难于扩展对象的功能:在传统的c o r b a 对象模型中,对象只有通过继承才 能得以加强和扩展。因此,为了支持新的接口,引用程序开发者必须做以下 几件事情:( 1 ) 定义一个新的i d l 接口,该接口继承所有的必要的接口,( 2 ) 实现该接口,( 3 ) 通过服务器分发配置新的对缘实现。o m 6i d l 总是允许您 创建基于继承的对象关系。然而,很多时候,我们的设计需要支持包含多个 接口的对象,而这些接口是通过聚合而不是通过继承来构造的。对象继承允 许您依照另一个类来定义这个类的实现,而对象聚合允许您通过将对象聚集 在一起来定义一个类。o m gi d l 需要表达聚合和继承的能力。而且,应用程 序需要多次暴露相同的接口以允许开发者提供多个实现或者通过一次访问 端口获取多个实例。相比而言,在o m gi d l 中,多继承多次暴露相同的接口 是不可能的。 ( 4 ) c o r b a 对象服务的有效性并没有定义优先级:c o r b a 规范中没有指明在运行 时授权哪种对象服务是可用的。结果,在计划一个系统的时候,对象开发者 必须利用特别的( 非标准的) 策略配置和激活这些服务。 ( 5 ) 没有提供标准的对象生命周期管理器:虽然c o r b a 对象服务定义了一个生 命周期服务,但其使用也不是强制性的。因此,客户端经常需要额外的知识 通过特别的途径管理对象的生命周期。此外,c o r b a 对象开发者通过生命周 期服务控制必须了解具体的情况,并且定义辅助的接口来控制对象的生命周 期。定义这些接口是一个单调而乏味的过程,如果可能这些应该被自动的进 行,但是早期的c o r b a 规范中缺乏自动实现这些需求的属性。 如上所述的包括2 3 版本在内的以前的c o r b a 规范的不足经常导致对象的紧耦 合和特别的实现,使得对象难于设计,重用,分发配置,维护和扩展。 1 3 组件对象模型( c c m ) 为了解决上述不足,o m g 采纳了c o r b a 组件模型( c c m ,c o r b ac o m p o n e n t m o d e l ) ,并把它作为c o r b a3 规范的一部分。通过定义一系列特性和服务,c c m 扩展了传统的c o r b a 对象模型,允许应用程序开发者实现,管理和配置,分发 组件。该组件在标准的环境中整合了通用的c o r b a 服务,比如持久性,安全性, 事务处理和事件服务。c c m 标准不仅使大型软件可以重用服务器,同时还为动 态配置c o r b a 应用程序提供了更大的弹性。在应用程序领域中,随着c o r b a 的 越来越多的被接受,c c m 在可升级的客户机n 务器应用程序中表现了非常好的 c o r b a 技术及c c m 体系结构研究 适应性。 o m g 的c c m 标准分为两部分核心的c c m 规范和扩展的c c m 规范。 核心的c c m 规范支持e j b 组件;如果只实现了核心的c c m 规范,就意昧着 有了一个c o r b a 容器( c o n t a i n e r ) 和服务器( s e r v e r ) 来管理用j a v a 语言编写写 的e j b 组件。 扩展的c c m 规范包含了远远超出e j b 组件和容器n 务器的能力。实现了核 心和扩展c c m 规范的产品将能够支持e j b 的组件和用o m g 所支持的其它语言写 的组件;开发人员就能够做超过现在的e j b 模型的能力的工作了。 c c m 通过定义一些特征和服务以允许应用程序编程人员实现、管理、配置 和使用由在标准环境下的c o r b a 服务集成的组件来扩展c o r b a 对象模型,这些 c o r b a 服务包括持久性( p e r s i s t e n c 审,安全( s e c u r i t y ) ,事务( t r a n s a c t i o n ) 以及事件服务( e v e n ts e r v i c e 句等。c c m 标准不只使得服务方更多的软件可重 用,而且为动态配置c o r b a 应用程序提供了更大的灵活性。 1 4c o r b a3 简介 c o r b a 3 嘲是指一整套规范,这些规范总起来增强了c o r b a 的性能和可用性。 所有这些规范正在被采用,并且几乎所有规范已经由o m g 组织作为正式的己经 编号的c o r b a 版本的一部分发布了。在o m g 的个新程序中,这些规范一开始 被分为“产前”一类,只有结束对它们的第一次维护修订之后,才会转为“可 用”的( 也就是,包含在当前已经编号的c o r b a 版本中的正式的o m g 规范) 。 下面我们简要的介绍一下c o r b a3 规范: c o r b a3 中的规范可以很清晰地分为三大类: j a v a 和i n t e r n e t 集成: 服务质量( q o s ) 控制; c o r b a 组件体系。 下面将依次介绍这三部分: 1 4 1j a v a 和i n t e r n e t 集成 下面的规范增强了c o r b a 与目益流行的j a v a 语言及i n t e r n e t 的集成: 可以用值传递的对象: 值类型为c o r b a 增加了许多特性,包括j a v a 到i d l 的反映射( 将在后面提 到) 和能够把x m l 文档表示为本地c o r b a 类型的x m l v a l u e 映射。现在,作为 c o r b a 的很好地建立起来的一部分,这个特性已经包含在1 9 9 9 年6 月份发布的 c o r b a 2 3 标准中。 j a v a 到i d l 的映射 这个映射使得j a v ar m i 对象能够跟c o r b a 对象一样通过网络进行互操作。 c o r b a 技术及c c m 体系结构研究 它们具有c o r b a 对象引用,发出i i o p 协议。就象c o r b a 组件模型和e j b 帮助开 发人员和公司构建应用组件库样,本规范将使c o r b a 组件库和e j b 一起用来 构建应用。就象值类型规范一样,j a v a 到i d l 的映射也是c o r b a2 3 规范的一 部分,它可以在语言映射里找到 可共用的命名服务: c o r b a 对象引用是c o r b a 体系的基石。因为计算机可读的可互操作的对象 引用( 勘t e r o p e r a b z eo b 庙c tr e f e r e n c 已i o r ) 是用来连接一个实例并调用它 的方法,没有方法来连接一个远程的实例一即使你知道它的位置并且它已经 起来并运行着一除非你得到它的对象引用。得到对象引用的最简单的方法是 得到一个它的命名服务的引用,但是,如果你连命名服务的引用也没有,怎么 办呢? 可共用的命名服务定义了一种u r l 形式的对象引用:c o r b a l o c ,在一个程 序里,它可以用来连接到一个远程的地方,包括命名服务。另一种u r l 形式, c o r b a n a m e ,实际上是通过使用用户加在u r l 后面的名字调用名字服务返回所指 对象的i o r 。例如,一个c o r b a l o c 标识符:c o r b a l o c :w w w o m g o r g n a m e s e r v i c e 将确定一个c o r b a 命名服务,这个命名服务正运转在i p 地址对应于 w w w o m g o r g 域名的机器上( 如果我们在o m g 运转着一个命名服务的话) 。在 2 0 0 0 年后期,这个服务被加在了c o r b a 2 4 版本的规范中。 防火墙规范: c o r b a3 规范将定义c o r b a 用来安全的穿过防火墙的性能。 i 4 2 服务质量控制 异步消息和服务质量控制: 新的消息规范为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 0 0 0 年后期发布的c o r b a 2 4 规范的一部分。实时c o r b a 标准化了资源控制线程、协议、链接等等 利用优先级模型来为硬的和统计的实时环境实现可预测的行为。动惫调度,还 c o r b a 技术及c c m 体系结构研究 不是当前规范的一部分,已经通过一个单独的r f p 的形式加了进来,在我们2 0 0 1 年7 月更新此文的时候已经完成工作,进入到最后的投票阶段。实时c o r b a 成 为2 0 0 0 年后期发布的c o r b a 2 4 规范的部分。 容错c o r b a 标准化冗余软件配置和系统,当它们运转在冗余硬件设备上时, 给了c o r b a 企业应用所依赖的可靠的及健壮的性能。比实时c o r b a 和最小c o r b a 更新,这个规范还没有作为一个编号的版本发布。这个规范已经被正式采纳, 现在已经完成了它的第一轮修订。 1 4 3c o r b a 组件包 c o r b a 组件和c o r b a 脚本: 这是o m g 自从在c o r b a 2 中定义i i o p 协议以来最令人兴奋的事情之一, c o r b a 组件在开发人员、用户及组件消费者的好处上有了多方面的提高。c o r b a 组件三个最主要的部分是: ( 1 ) 一个容器环境,它打包了事务、安全、持久性,并提供接口和事件处理; ( 2 ) 跟e j b 集成; ( 3 ) 一个能够促使形成c o r b a 组件软件市场的软件分发形式。 c o r b a 组件容器环境是持久的、支持事务的和安全的。对编程人员来说, 这些功能是在一个比c o r b h 服务所提供的功能更高的抽象层次上被预打包和提 供的。这相当于大大提高了商业程序员的技能:他们不再需要构建事务和安全 应用的技能,他们现在可以用他们的才能来生产商业应用,而这些应用自然就 具有这些必要的特性。 容器知道组件产生的和消费的事件类型,并提供传送事件的通道。容器也 知道它所包含的组件所提供的和需要的接1 3 ,并把互相适合的连在一起。c o r b a 组件支持多接口,该体系支持在它们中间进行导航( n a v i g a t i o n ) 。 e j b 将作为c o r b a 组件发生作用,并能安装在c o r b a 组件容器中。当然, 跟e b j 不同,c o r b a 组件可以用多种语言来编写并支持多接口。 本规范定义了一个多平台的软件分发形式,包括安装器及基于x m l 的配置 工具,还定义了一个单独的脚本规范,用来把c o r b a 和组件装配映射到一些已 经可用的脚本语言,c o r b a 组件模型于2 0 0 1 年1 2 月底正式被采纳。 脚本语言: 脚本语言最初是为了从c o r b a 组件( 和e j b ) 中动态地装配应用,现在用 来访问c o r b a 客户端和对象。对组件装配的扩展将跟随c o r b a3 中的c c m 。c o r b a 支持到两种脚本语言的映射:一个到p y t h o n ,另一个定义了一种针对c o r b a 的 脚本语言。 在后面的章节中我们将详细讲述下c c m 对象模型。 c o r b a 技术及c c m 体系结构研究 2 c o r b a 体系结构 本章我们主要讲述的是有关传统c o r b a 的体系结构,也就是c o r b a3 规范 之前的部分。不涉及最新的c o r b a3 中的内容,关于c o r b a3 中的c c m 规范, 我们将在后续章节中详细介绍。 2 1 o o r b a 发展历程 c o r b a 规范是由对象管理组织o m g ( o b j e c tm a n a g e m e n tg r o u p ) 负责制订 与发布的,对象管理组织是一个成立于1 9 8 9 年的非盈利性联盟,其目标是促进 在分布式系统开发中面向对象技术的理论与实践的发展。该组织现有成员8 0 0 多个,包括信息系统产品供应商、软件开发商以及最终用户,例如u n i s y s 、s u n 、 c a n n o n 、h e w l e t t p a c k a r d 、p h i l i p s 等在业界享有声誉的软硬件厂商。o m g 负 责制订并维护一套规范,以支持分布式、异类( h e t e r o g e n e o u s ) 环境的软件开 发项目,覆盖了从分析、设计到编码、部署、运行和管理的整个软件开发过程。 这些规范是一种工业或行业的标准,并不是由i s o 、a n s i 或i e e e 接纳并发布的 正式标准。0 m g 已发布的规范主要是统一建模语言u m l ( u n i f i e dm o d e l i n g l a n g u a g e ) 和公共对象请求代理体系结构c o r b a ( c o m m o n 妇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 ) 。遵循o m g 规范可开发出具有标准面向对象接口的、可互操作 的、可重用的、可移植的软件组件。 1 9 9 0 年1 1 月,o m g 发表对象管理体系指南,初步阐明了c o r b a 的 思想: 1 9 9 1 年1 0 月,o m g 推出1 0 版,其中定义了接口定义语言( i d l ) 、对 象管理模型以及基于动态请求的a p i 和接口仓库等内容; 1 9 9 1 年1 2 月,o m g 推出了c o r b a1 1 版,在澄清了1 0 版中存在的二 义性的基础上,引入了对象适配器的概念,使得客户程序与对想实现可在o r b 的具体实现中彼此交互: 1 9 9 6 年8 月,o m g 基于以前的升级版本,完成了2 0 版的开发,该版本 中重要的内容是对象请求代理间协议( i n t e r n e t 勋f 盯o r bp r o t o c o l , ,卯) 的引入,用以实现不同厂商的o r b 真正意义上的互通: 1 9 9 7 年9 月,修订的c o r b a2 1 增加了c o r b a 与m i c r o s o f t 的分布式 计算模型c o m 的可互操作性。 1 9 9 8 年2 月修订的c o r b a2 2 引入可移植对象适配器一p o a 取代原有的 基本对象适配器一b o a ,并增加了i d l 到j a v a 语言的映射标准。o m a 参考模型 c o r b a 技术及c c m 体系结构研究 中的领域接口也是从该版本开始引入,表明c o r b a 规范已从o r b 内部运行方式 扩展到c o r b a 技术应用。 1 9 9 8 年9 月,o m g 发表了c o r b a2 3 版,增加了支持c o r b a 对象的异步 实时传输、服务质量规范等内容。 2 0 0 0 年儿月修订的c o r b a2 4 1 和2 0 0 1 年2 月修订的c o r b a2 4 2 。 c o r b a2 4 新增了三个规范:c o r b a 消息规范( c o r b am e s s a g i n g ) 由服务质量 ( q o s ) 、异步方法调用和可互操作的路由接口组成,异步方法调用使c o r b a 的消息传递方式包括了同步、延迟同步、单向和异步四种方式,服务质量可用 于根据应用需求管理与选择不同的底层传输方式;最小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 规范( r e a l t i m e ( 撕蜊) 对c o r b a 进行扩充,将o r b 作为实时系统的一个部件。此外,该版本还 对可互操作的命名服务、通知服务等规范进行了修改。0 1 鉴于组件技术在面向对象技术中扮演着越来越重要的角色,c o r b a3 的 最大改进是为c o r b a 引入了组件模型c c m ( c 别c o m p o n e n tm o d e l ) 。c o r b a 组件模型参照s u n 的e j b ( e n t e r p r i s ej a v a b e a n s ) 。为开发即插即用的c o r b a 对象提供了基本架构,程序员可用c o r b a 脚本语言c s l ( c o r b as c r i p t i n g l a n g u a g e ) 合成c o r b a 组件。c o r b a 组件模型将会给客户端和服务端的可伸缩 性带来有力支持。此外,c o r b a3 更好地集成了j a v a 、因特网和d e e 遗留系统, 允许在i i o p 上使用r m i ,并支持i l o p 穿越防火墙。大概从1 9 9 9 年的l o 月开 始,o m g 开始采纳c c m 模型,并把其归结到以后的c o r b a3 之中,根据最新的 消息,在2 0 0 1 年1 2 月底o m g 终于最终采纳了c c m 规范,然而宣布支持c o r b a 的厂商还没有成熟的支持c c m 的产品出现。到目前为止只有两个志愿者组织提 供c c m 产品,一个是m i c o c c m 是一个f o rc 十十的,另一个是o p e n c c m 是f o rj a v a , 就目前而言,两个产品都属于开发阶段,都在不断的完善,相信成熟的支持c c m 的o r b 产品至少还需要一到两年的时间。”。 2 2c o r b a 体系结构概述 c o r b a 规范充分利用了现今软件技术发展的最新成果,在基于网络的分布 式应用环境下实现应用软件的集成,使得面向对象的软件在分布、异构环境下 实现可重用、可移植和互操作。其特点可以总结为如下几个方面: 1 引入中间件( m i d d l e # a r e ) 作为事务代理,完成客户机( c i d e n ) 向服 务对象( s e r v e r ) 方提出的业务请求( 引入中间件概念后分布计算模式如图2 1 所示) : 2 实现客户与服务对象的完全分开,客户不需要了解服务对象的实现过程 以及具体位置: 3 提供软总线机制,使得在任何环境下、采用任何语言开发的软件只要符 合接口规范的定义,均能够集成到分布式系统中; c o r b a 技术及c c m 体系结构研究 4 c o r b a 规范软件系统采用面向对象的软件实现方法开发应用系统,实现 对象内部细节的完整封装,保留对象方法的对外接口定义。 在以上特点中,最

温馨提示

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

评论

0/150

提交评论