(计算机应用技术专业论文)corba在三峡水情查询系统中的应用研究.pdf_第1页
(计算机应用技术专业论文)corba在三峡水情查询系统中的应用研究.pdf_第2页
(计算机应用技术专业论文)corba在三峡水情查询系统中的应用研究.pdf_第3页
(计算机应用技术专业论文)corba在三峡水情查询系统中的应用研究.pdf_第4页
(计算机应用技术专业论文)corba在三峡水情查询系统中的应用研究.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(计算机应用技术专业论文)corba在三峡水情查询系统中的应用研究.pdf.pdf 免费下载

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

文档简介

河海大学倾士硷文 c o r b a 在二峡水隋查啕系统中的应用研究 摘要 近年来,随着企业信息化的加快,需要对企业内部不同架构的系统和基于不 同组件平台实现的系统进行集成,以实现企业内部各系统问的资源共享,互连互 通。i n t e r n e t 的迅猛发展也要求企业应用系统适应i n t e r n e t 的新环境。因此,如 何找到良好的企业应用集成方案已经成为一个重要的问题。 c o r b a 是对象管理组织o m 6 ( o b j e c tm a n a g eg r o u p ) 定义的,是工业界主流 的、基于标准的分布式对象技术。 基于c o r b a 2 的特点可以建立复杂的的企业级分布式应用系统。然而基于 c o r b a 2 的系统存在一些缺陷,如不能实现面向i n t e r n e t 的应用,与其它基于不 同组件开发平台实现的系统集成过程复杂等。 w e bs e r v i c e s 技术是面向i n t e r n e t 的技术,是新兴的分布式丌发平台。通过 在c o r b a 中引入w e bs e r v i c e s ,能解决基于c o r b a 2 的系统在企业应用中存在的 缺陷。 c o r b a 3 规范的发布和不断完善,增加t c o r b a 的新特性,使得c o r b a 可以集 成w e bs e r v i c e s 技术,从而使基于c o r b a 的系统可以通过i n t e r n e t 来访问,为 c o r b a 在新形势下参与企业应用集成给出了新的解决方案。 本文系统地论述t c o r b a 技术,分析了基于c o r b a 2 的系统存在的缺陷。根据 c o r b a 3 的新特性,研究了c o r b a 3 和w e bs e r v i c e s 的集成。最后,基于c o r b a 3 和 w e bs e r v i c e s 技术的集成方案,对三峡水情查询系统进行了设计和实现。 关键词:企业应用集成,水情查询,c o r b a ,w e bs e r v i c e s 河海大学硕士沦文 c o r b a 在二峡水隋齿询系统中的应用研究 f b s t r a c t r e c e n t l y ,w i t ht h ea c c e l e r a t e dp a c eo fe r t e r p r i s e t oe n t e ra n i n f o r m a t i o na g e ,s y s t e m so fd i f f e r e n ta r c h i t e c t u r ea n ds y s t e m sb a s e do n d i f f e r e n tp l a t f o r mo fc o m p o n e n ti na ne n t e r p r i s en e e dt ob ei n t e g r a t e d s ot h a tt h e yc a nb ec o n n e c t e dw i t he a c ho t h e ra n ds h a r ei n f o r m a t i o nw i t h e a c ho t h e r w i t ht h er a p i dd e v e l o p m e n to fi n t e r n e t ,e n t e r p r i s e a p p i i c a t i o ns y s t e mm u s ta d a p tt oi n t e r n e t s o ,h o wt of i n dag o o ds o l u t i o n f o re n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o nh a sb e c o m ea ni m p o r t a n tp r o b l e m c o r b a ,a sd e f i n e db yt h eo b j e c tm a n a g e m e n tg r o u p ( o m g ) ,i st h e i n d u s t r y l e a d i n g ,s t a n d a r d s b a s e d ,d i s t r i b u t e do b j e c tt e c h n o l o g y ac o m p l e x ,e n t e r p r i s e s t r e n g t hd i s t r i b u t e da p p l i c a t i o hs y s t e mc a nb e c o m p l e t e db a s e do nt h ec h a r a c t e r i s t i c so fc o r b a 2 ,b u tt h i sd i s t r i b u t e d s y s t e m h a sd e f e c t ss u c ha si ti sd i f f i c u l tt oc o m p l e t et h ei n t e g r a t i o n w i t hs y s t e mb a s e do no t h e rd i f f e r e n tp l a t f o r mo fc o m p o n e n ta n di tc a r l t b ev i s i t e do v e ri n t e r n e t w e bs e r v i c e sh a sb e e nd e s i g n e df o ra ni n t e r n e ta g e ,a n di t i san e w d e v e l o p ep l a t f o r mi nd i s t r i b u t e de n v i r o n m e n t b yi n t r o d u c i n gw e bs e r v i c e s t oc o r b a ,f a u l t so fs y s t e mb a s e do nc o r b a 2c a r lb e c o m p l e m e n t e di n a n e n t e r p r i s ea p p l i c a t i o n w i t ht h er e l e a s ea n dp e r f e c t i o no fs p e c i f i c a t i o n so fc o r b a 3 n e w c h a r a c r i s t i c sa r ea d d e dt oc o r b a c o r b ac a nb ei n t e g r a t e dw i t hw e b s e r v i c e s s o ,s y s t e m b a s e do nc o r b ac a nb ev i s i t e do v e ri n t e r n e ta n da n e ws o l u t i o nf o rc o r b at o i n t e g r a t ew i t ho t h e rs y s t e m s i sp r o v i d e di na n e we n v i r o n m e n t t h i st h e s i sd i s c u s s e sc o r b a ,a n a l y z e st h ed e f e c t so fs y s t e mb a s e do n c o r b a 2 a c c o r d i n gt ot h en e wc h a r a c r i s t i t so fc o r b a 3 ,t h i st h e s i ss t u d i e s t h ei n t e g r a ti o nb e t w e e nc o r b a 3a n dw e bs e r v i c e s a tl a s t a c c o r d i n gt ot h e s o l u t i o nb a s e do nt h ei n t e g r a t i o nb e t w e e nc o r b a 3a n dw e bs e r v i c e s ,t h i s t h e s i ss t u d i e sh o wt o d e s i g na n dr e a l i z eap r o j e c tn a m e d w a t e rq u e r y s y s t e mo ft h r e eg o r g e k e y w o r d s :e n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o n ,w a t e rq u e r y ,c o r b a ,w e b s e r v ic e s 河海人学预l 论文 c o r b a 在三峡水情查洵系统中的应用研究 1 1 应用背景 第一章绪论 近年来随着企业竞争压力的加大、企业管理观念的变革和业务流程标准化 的逐渐完善,大量企业正在加速信息化的步伐,通过网络化支持和实现新的工作 组织管理模式,实现信息资源互通共享。 水利行业作为国家的基础行业,它的信息化建设历来受到国家的重视。 三峡水情查询系统是基于g i s 的三峡枢纽水文信息管理系统的子系统之一。 三峡枢纽水文信息管理系统是根据中国长江三峡总公司发电、航运的需要,受总 公司梯级调度中心委托立项研制。三峡枢纽水文信息管理系统主要包含水情查 询、汛情监视和枢纽查询子系统。 在三峡水情查询系统开发过程中,由于其所属的水利部门的行业特点和发展 历程,存在着如下的问题: ( 1 ) 系统内部资源呈分布性存在 三峡总公司梯级调度中心成立较早,在其漫长的发展过程中,由于其内部各 部门往往分散地存在于各地,其资源大多分布于各不同部门中。 ( 2 ) 系统外部面临着与基于多种组件平台实现的系统同时并存 三峡水情查询系统是三峡枢纽水文信息管理系统的子系统之一。三峡枢纽水 文信息管理系统主要包含水情查询、汛情监视和枢纽查询等予系统。其中,汛情 监视和枢纽查询系统已经分别基于j 2 e e 和c 伽d c o m 的不同组件平台实现。由于 水利行业的信息具有很强的相关性,因此,三峡水情查询系统面临着如何与汛情 监视和枢纽查询子系统互连互通,共享资源的问题。 ( 3 ) 系统面临着实现面向i n t e r n e t 的应用的需求 网络的迅猛发展,使得通过i n t e r n e t 来获得所需的信息成为越来越多的用 户的选择。三峡总公司其他部门和国家水利行业其它委、办、局也需要通过 i n t e r n e t 来访问三峡水情查询系统的信息。 因此,三峡水情查询系统内部如何实现分布式环境下的资源共享,同时与汛 情监视和枢纽查询子系统互通互连,成为一个突出的问题。 河海大学硕 论文c o r b a 在三峡水情奁淘系统中的应用研究 1 2 技术背景 1 2 1c o r b a c o r b a 是c o n l 【r 【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 n 务器的模式, 使系统具有良好的可伸缩性,便于系统的开发与升级,保护已有投资。c o r b a 是 比较成熟的技术规范,已经被企业广泛应用。c o r b a 3 规范的发布,使得c o r b a 3 增 加了新的特性,大大地扩展了c o r b a 的应用范围和应用方式。【2 l 】 1 2 2e j b 简介 e j b ( e n t e r p r i s ej a v a b e a n s ) 是s u n 推出的基于j a v a 的服务器端构件规范 j 2 e e 的一部分,自从j 2 e e 推出之后,得到了广泛的发展,已经成为应用服务器端 的标准技术。s u ne j b 技术是在j a v ab e a n 本地构件基础上发展的面向服务器端分 布应用构件技术。e j b 给出了系统的服务器端分布构件规范,这包括了构件、构 件容器的接口规范以及构件打包、构件配置等标准规范内容。从分布式计算的角 度,e j b 像c o r b a 样,提供了分布式技术的基础。提供了对象之间的通讯手段。 8 j b 是用于开发安全、可扩展、事务型以及多用户组件的一种分布式组件模 型。简单地讲,e j b 是( 理想的) 包含业务逻辑的可重用软件单元。正如j s p 网页允 许把应用程序和表示逻辑分开,e j b 允许把应用程序逻辑与系统级服务分开,这 样开发者可以集中精力于具体业务问题,而不是系统编程。这些企业小程序( b e a n ) 业务对象具有三种基本形式,同样也没有必要三者都实现,它们分别是会话 ( s e s s i o n ) b e a n 、实体( e n t i t y ) b e a n 和消息驱动( m e s s a g e d r i v e n ) b e a n 。 企业级j a v a b e a n 是一种以组件为基础的分布式计算环境的结构体系,企业 b e a n 是分布式的面向交易处理的企业应用系统的组件。 1 2 3c o m ,d c o m c o m d c o m ( c o m p o n e n to b j e c tm o d e l d i s t r i b u t e dc o m p o n e n to b j e c t m o d e l ) 是微软公司提出的分布式组件对象模型标准,支持在局域网、广域网甚至 i n t e r n e t 上不同计算机的对象之间的通讯。d c o m 是m i c r o s o f t 与其他业界厂商合 作提出的一种分布构件对象模型。d c o m 起源于动态数据交换d d e 技术。对象连接 和嵌入o l e 就是从d d e 引伸而来的,随后m i c r o s o f t g 入了构件对象模型c o m ,形 2 河海大学硕上论文c o r b a 在三峡水情矗啕系统中的应用研究 成t c o m 对象之间实现互操作的二进制标准。c o m 规定了对象模型和编程要求,使 c o m 对象可以与其他对象相互操作。d c o m 的出现是为了弥补c 例在支持远程组件方 面的不足。它为分布在网络不同节点的两个c o m 组件提供了互操作的基础结构。 将c o m ,d c o m ,o l e 及a c t i v e x 这些服务结合起来形成了微软创造的分布式网络互连 体系结构d n a 。d c o m 基于c o m 的应用程序、组件、工具等的基础之上,处理网络协 议的低层次的细节问题,而不必关心太多的网络协议细节,从而使用户能够集中 精力解决用户所要求的问题。d c o m 位于应用程序的组件之间,将组件以不可见的 方式胶合在一起组成具有完整功能的应用程序。 1 2 4w e bs e r v i c e s w e bs e r v i c e s 是建立可互操作的分布式应用程序的新平台。企业应用集成 是w e bs e r v i c e s 应用最看好的方向之一。大多数企业内部都有着各种各样的应 用系统,重用遗留系统是当前很多中大型企业的重要任务。由于遗留系统的运行 平台是异构环境,因此企业应用集成的代价一般来说是很高的。但如果使用w e b s e r v i c e s 作为应用集成的手段,将会大大降低集成的消耗。w e bs e r v i c e s 与平 台和语言无关的特性,以及各种平台和环境下的开发工具都是企业应用集成的利 器。在开发新的应用系统的时候,仍然需要考虑和其他系统的集成,需要考虑调 用其他系统的功能,和被其他系统所调用。使用w e bs e r v i c e s 作为系统与外部 交流的接口,能够使新的系统和别的系统之间保持松耦合的关系,保持较高的可 扩展性。【1 2 】 1 3 本文的工作 本文根据三峡水情查询系统的实际需求,主要针对基于c o r b a 2 的系统在企 业应用中存在的缺陷,根据c o r b a 3 的新特性和w e bs e r v i c e s 的发展,研究c o r b a 3 在新形势下的企业应用。 本文工作的主要内容是:论述了c o r b a 技术,研究了基于c o r b a 2 的系统和 其它基于不同组件平台开发的系统的互操作,分析基于c o r b a 2 的分布式系统的 缺陷;根据c o r b a 3 的新特性,研究了c o r b a 3 与w e bs e r v i c e s 技术的集成。利 用c o r b a 3 和w e bs e r v i c e s 互补的关系,取二者之长,弃二者之短,为企业在 新形势下的应用集成提供了良好的解决方案。在三峡水情查询系统中,基于 c o r b a 3 的新特性,引入w e bs e r v i c e s 技术,成功地解决了实际存在的问题。 河海大学硕士论文c o r b a 在三峡水情查询系统中的应用研究 1 。4 本文的组织 本文的安排如下: 第一章绪论:简介本论文的研究与应用的背景和意义,说明论文组 织结构,介绍本文主要工作。 第二章c o r b a 技术:主要介绍了c o r b a 技术的起源、发展、特点, 和它的运行机制,研究了基于c o r b a 2 的系统和其它基于不同组件平台开 发的系统的互操作,分析了基于c o r b a 2 的系统存在的缺陷,研究了 c o r b a 3 的新特性。 第三章c o r b a 3 与w e bs e r v i c e s 的集成研究:主要根据c o r b a 3 的新特性, 研究c o r b a 3 和w e bs e r v i c e s 技术的集成和基于c o r b a 3 和w e bs e r v i c e s 集成的 企业应用集成方案,分析了陔方案的实现原理和特点。 第四章c o r b a 3 在三峡水情查询系统中的应用:通过三峡水情查询系统的 设计和实现,说明了基于c o r b a 3 和w e b e r v i c e s 集成的企业应用集成方案在实 际中的可行性。 第五章总结和展望:对本论文的工作进行总结,并提出了进一步的研 究工作。 4 河海大学硕士论文 c o r b a 在三峡水情查询系统中的应用研究 第二章c o r b a 技术 2 1c o r b a 技术简介 2 1 1o m g 组织介绍 成立于1 9 8 9 年的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 成为“无所不在的中间件”。1 9 8 9 年成立时仅有8 家公司 参与,而今天已经是拥有9 0 0 多个机构成员的”议会式”标准化组织,世界上几乎 所有最有影响的计算机公司( 如i b m 、m i c r o s o f t 和h p 等) 、著名的工商企业( 如 b o e i n g 、c i t i b a n k 和f o r dm o t o r 等) 和大学研究机构都是这个组织的成员。该组 织的基本目标是开发实用的分布式对象技术及其对象管理规范,建立应用系统的 通用集成框架,在分布异构的环境上实现基于对象软件的可重用、可移植和互操 作。【1 7 】 2 1 - 2 c o r b a 的发展历程 o m g 于1 9 9 1 年提出了对象管理结构o m a ,发表了对象请求代理( o r b ) 的技术标 准c o r b a1 0 ,1 9 9 6 年发布c o r b a2 0 。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 r b a 具有分布 式软件总线的特点,它用高度抽象的对象模型来表达应用系统、应用部件之间有 效通讯的连接技术。 o m g 所制定的分布对象计算标准规范包括c o r b a i l o p 、对象服务、公共实施 和领域接口规范。遵照这些规范开发出的分布计算软件环境可以在几乎所有的主 流硬件平台和操作系统上运行。现在,c o r b a i i o p 已成为i n t e r n e t 上实现对象互 访的技术标准,o m g 的i l o p 也已成为许多公司( 如o r a c i e 、n e t s c a p e 、s u n 和i b m 等) 进行系统集成的基本协议。1 9 9 5 年以来,基于c o r b a 软件的企业级应用发展 迅猛。目前世界上有一定影响的c o r b a 软件制造商已有十多家。 3 1 1 9 9 9 年,o m g 的c o r b a3 o 规范获得了表决。在新的规范中,c o r b a 采用支持 e n t e r p r i s ej a v ab e a n s ( e j b ) 的对象封装方案,使e j b 成为c o r b a 的组件方案。 c o r b a 3 对象能动态加载各种组件以及传输事务和邮件交换协议,如果与c o r b a 3 服务相容的组件遇至t j e j b ,它就能在运行时加载j a v a 虚拟机并运行这些对象。 c o r b a 3 还包括一些新特性:支持和i n t e r n e t 的集成;将应用程序和环境用于组件 的设计:支持c o r b a 对象在异步信息队列中传输;采用服务质量技术规范:增加 河海尺学硕士论义c o r b a 在三峡水情查i f i j 系统中的应用研宄 了一些新的规范以实现与传统环境的结合等。 2 1 3 对象请求代理( o r b ) 的概念及原理 o r b 是一个中间件( m i d d l e w a r e ) ,它可以建立对象之间的c l i e n t s e r v e r 关 系。通过o r b ,一个c l i e n t 可以透明的引用同一台机器上或网络上的一个s e r v e r 对象的方法。o r b 解释该调用并负责查找一个实现该请求的对象,找到后,把参 数传给该对象,调用它的方法,最后返回结果。c l l e n t 并不清楚该对象的位置, 它的编程语言,它的操作系统以及其它不是对象接口的系统信息。0 r b 能实现分 布环境中位于不同机器上的应用之间的互操作以及多对象系统之间的无缝连接。 3 2 1 对象请求代理的体系结构如图2 1 所示: 图2 1 对象请求代理的体系结构 如图2 1 所示,单个o r b 由动态调用接口( d y n a m i ci n v o c a t i o h ) 、i d l 桩( i d l s t u b s ) 、o r b 接口( o r bi n t e r f a c e ) 、静态i d l 框架( s t a t i ci d ls k e l e t o n ) 、 动态框架( d y n a m i cs k e l e t o n ) 接口、对象适配器( o b j e c ta d a p t e r ) 组成,它们 均给出了一组接口来支持应用对象。其中i d l 桩、动态调用接口、o r b 接口( 由o r b 内核提供) 可为客户方使用,称为客户方接口:i d l 框架、动态框架接口、对象适 配器、o r b 接口可为对象实现方使用,称为对象实现方接口。同时为了使这些o r b 部件均能完成其功能,c o r b a 给出了接口库和实现库的描述,这部分可称为辅助设 施。为了创立一个请求,客户方可以使用动态调用接口( 独立于目的对象接口) 或一个i d l 桩( 依赖于目的对象接口的特殊的桩) 。客户也可为了使用些功篚 而直接与o r b 交互。 对象实现方接收一个请求作为向上调用( u p c a l l ) ,有两种方式:或者通 州海大学硕士论文 c o t b a 在三峡水情查询系统中的应用研究 过i d l 产生的框架;或者通过一个动态框架。当处理请求时,对象实现可以通过 调用对象适配器和o r b 来实现。 在结构中,o r b 不需作为一个单个组件来实现,而它是由自己的接口来定义 的,这些接口分为三类: 对于所有的o r b 实现是一致的: 对于特殊类型的对象操作是特殊的: 对于特殊类型的对象实现操作是特殊的: 不同的o r b 可以做不同的实现选择,同时i d l 编译器、库和不同的对象适配器 提供了一套服务给客户。 可以有多个o r b 实现,这些实现对对象引用有不同的表示方法,而且有不同 方式去执行调用。客户可以同时访问两个被不同o r b 实现管理的对象引用。当两 个o r b 一起工作时,这些o r b 必须能区别它们的对象引用,这不是客户的责任。 o r b 核心是o r b 的一部分,它提供基本的对象表示和请求的通信。c o r b a 被设 计用于支持不同的对象机制,它做到这点是通过o r b 核心之上的组件结构化o r b 来实现的,这些组件提供掩盖o r b 核心之间的差别的接口。 3 1 2 1 4 客户方接口 客户方接口由i d ls t u b s ( i d l 桩) 、动态调用接口( d i i ) 、o r b 接口组成,客 户通过这些接口可以得到o r b 及对象实现方提供的服务。 客户通过o r b 访问对象服务方的 方式如图2 2 所示: 客户通过访问 对象引用和掌握对 象的类型及所需执 行的操作而创建一 个请求。客户通过 调用相应于对象的 图2 2 客户通过o r b 访问对象服务方的方式 专门的桩程序或通 过动态创建请求而 启动一个请求。 用于调用一个请求的动态接口和桩接口能满足相同的请求语法,信息的接收 者不必指出请求是通过哪种方式被调用的。 下面对客户方接口中的i d l 桩、动态调用接口及o r b 接口分别做简要介绍: 7 河海大学硕士论文c o r b a 在三峡水情查询系统中的应用研究 ( 1 ) i d l 桩 对于非面向对象语言的映射,对于每种接口类型有一种连到桩的编程接口。 通常,桩将表示对于一个对象上的o m gi d l 定义的操作的存取。i d l 桩由i d l 编译 器根据具体的i d l 接口通过i d l 编译器编译产生。当客户方程序向它发出请求时, 它通过与o r b 内核的私有接口向o r b 内核发出调用请求。这种方式属于静态调用方 式,只有在编洋时i d l 接口是已知的情况下才是可行的。对于要到运行时才知道对 象实现方i d l 接口的情况,可以使用动态调用接口。一般来说,对于特定o r bf q 核的 i d l 桩均经过优化,其运行时效率较d i i 为高。 ( 2 ) 动态调用接口( d i i ) 接口也允许对象调用的动态创建,不是调用对特殊对象上进行特殊操作的桩 程序,而是一个客户指明被调用的对象、要执行的操作和所调用操作的参数等。 为了适应某些特殊的应用情况,允许某一对象实现在运行时加入,使客户对象可 以调用该对象实现提供的服务,o r b 提供了动态调用接口。它允许动态地创建和调 用对象请求,通过d i i 函数c r e a t e r e q u e s t 来完成,客户必须给出具体对象实现的 对象引用、请求执行的对象实现中的操作以及一组参数,并指定返回值类型。在 d i i 中主要有两类请求操作,一类是正常的请求调用,操作结束时返回,函数名为 i n v o k e 。另一类称为延迟同步操作,请求发出后立即返回,去执行下一步操作, 函数名为s e n d ,如果需要知道操作执行情况,必须调用d i i 中别的函数如 g e t _ r e s p o n s e 和g e t _ n e x t _ r e s p o n s e 。在延迟同步操作情况下还可以同时发出多 个请求,函数名为s e n d _ m u l t i p l e r e q u e s t s 。 ( 3 ) o r b 接口 o r b 接口是直接到达o r b 的接口,它对于所有的o r b 是一样的,而且不依靠于 对象的接口或对象适配器。由于大多数o r b 的功能由对象适配器、桩、框架或动 态调用提供,仅有几个操作对于所有对象是通用的,这些操作对于客户和对象实 现均有用。o r b 接口同时为客户方和对象实现方所见,它提供了一些只能由o r b 内 核提供的功能,这些功能包括对象引用操作、o r b 初始化、对象适配器初始化、获 取初始对象引用等几个方面。 2 1 5 对象实现方接口 对象实现方接口包括静态i d l 框架、动态框架接口( d s i ) 、对象适配器、o r b 接口,它使具体的对象实现和o r b 连接起来,使得o r b 可以对对象的具体实现进行 调用。其中对象实现方的o r b 接口和客户方o r b 接口是一致的。o r b 访问对象实现 可以用图2 3 表示: 河海大学硕士论文 c o r b a 在三峡水情壹询系统中的应用研究 图2 3o r b 访问对象实现 o r b 通过一 个i d l 框架或一 个动态框架定 位适当的实现 代码、传输参数 和传送控制到 对象实现。框架 对于接口和对 象适配器是特 定的。在执行请 求时,对象实现 通过对象适配 器获取一些来自o r b 的服务。当请求完成时,控制和输出值被返回给客户。对象 实现可以根据它所需的服务的类型而选择相应的对象适配器。 下面分别介绍对象实现方接口中静态i d l 框架、动态框架接口( d s i ) 和对象 适配器( o b j e c ta d a p t e r ) : ( 1 ) 静态i d l 框架 特殊的语言映射可以依靠对象适配器来实现。对于实现每种对象的方法有一 个接口。接口通常为上调接口,对象用这个接口实现符合该接口的子程序,o r b 通过框架调用它们。 i d l 框架是由i d l 编译器产生的o r b 中调用对象实现的接口。通过它,可以使用 o r b 调用对象中的方法( m e t h o d ) 。i d l 框架的存在并不意味着有相应的客户i d l 的 存在。而o r b 也可以不使用i d l 框架来进行对象实现方法的调用,而通过使用对象 适配器来调用方法。 ( 2 ) 动态框架接口d s i 允许动态处理对象调用的接口是非常有用的,那就是,不是由与特殊操作相 关的框架来访问对象实现,而是由一个提供访问操作名和参数的接口用一种类似 于动态调用接口的方式来访问对象实现。动态框架接口可以由客户桩或动态调用 接口来调用,它们向动态框架接口发出对象请求。d s i 的基本思想是让所有的对象 请求通过调用同一组例程来达到调用对象实现中方法的目的,这组例程便叫做动 态调用例程d i r 。对所有的对象实现来说它们也仅需根据d i r 来给出具体的实现例 程。 ( 3 ) 对象适配器( o b j e c ta d a p t e r ) 对象适配器是对象实现访问o r b 提供的服务的主要方式。由o r b 提供的服务在 一个对象适配器中经常包括:对象引用的产生和解释、方式调用、交互性安全、 河海大学硕士论文 c o r b a 在三峡水情查询系统中的应用研究 对象和实现的激活与释放、对象引用到实现的映射及实现的定位。 由于各个不同对象的对象粒度、生命周期、实现形式的千差万别,o r b 内核无 法为所有的对象提供一个统一、方便有效的接口。通过对象适配器的作用,可以 将目的对象分成若干组,每组通过特定的对象适配器来满足其特定的需要。但这 样一来,对象适配器的种类便会急剧膨胀,为了减少对象适配器的种类,c o r b a 给 出了基本对象适配器( b o a ) ,以满足大多数对象的需要。b o a 提供了产生和解释 对象引用、对请求进行认证、激活去活实现、激活去活单个对象、通过框架调 用方法等功能。在提供这些功能时,b o a 要用到一些与操作系统有关的知识,这些 知识由实现库提供,实现库还存放对象实现的有关信息。 2 1 6i d l 语言 c o r b a 用o m gi d l 来实现对多种编程语言的支持。o m gi d l 是一种与编程语言 无关的接口定义语言,用来定义对象的请求服务接口,描述应用对象所封装的 内容及界限。它类似于c + + 中类的描述,也包括属性和操作两部分,并且也支持 接口之间的继承,以实现对象的可重用性。i d l 定义经过编译后成为可为开发人 员直接使用的头文件和s t u b 、s k e l e t o n 程序框架。由o m gi d l 到任何编程语言的 映射理论上都是可以得到支持的。【2 5 】 o m g 的接口定义语言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 中规定 的一种中性语言,它用来描述客户对象调用的接口及对象实现提供的接口,但不 涉及对象的具体实现。o m g 接口定义语言通过指明对象的接口而定义了对象的类 型。使用i d l 接口的客户对象可以根据i d l 接口中的信息来决定如何发出请求和接 收响应,从而使得客户对象完全独立于具体对象实现所在的位置、使用的编程语 言及别的跟对象接口无关的方面。i d l 的词法、语法规则遵从c + + 的规定,但加进 一些关键字以支持分布式概念。 i d l 是一种方法,通过它,一种特殊的对象实现告诉它的潜在的客户什么操 作适用积怎样调用这些操作。从i d l 定义中,可以映射c o r b a 对象型特殊的编程语 言或对象系统。i d l 完全是一种描述性语言,它不能用于实现客户程序。为了使对 象能够统一使用i d l 接口信息,c o r b a 规定了i d l 到具体语言的映射。 o m gi d l 到每种编程语言的特殊映射对于所有的o r b 实现来说是相同的,语言 映射包括语言的特殊的数据类型的定义和通过o r b 存取对象的过程接口的定义, 这包括客户桩接口的结构、动态调用接口的结构、实现框架的结构、对象适配器 的结构和直接的o r b 接口的结构。 每神语言映射也定义了在对象引用间的交互和在客户和实现中的线程控制。 最普遍的映射提供了同步调用,在此同步调用中,当对象操作完成时子程序返回。 0 河海大学硕士论文 c o r b a 在三峡水情查询系统中的应用研究 附加的映射可以被提供用于允许启动一个调用和控制返回到程序。在这种情况 下,附加的特殊语言子程序必须被提供用于同步程序的线程控制和对象调用。 不同的面向对象或非面向对象的编程语言很喜欢用不同方式访问c o r b a 对 象。对于面向对象的语言,需要把c o r b a 对象看成编程语言对象。对于非面向对 象的语言,一种好办法是用隐藏确切的对象引用、方法名的o r b 来表示。 完全的语言映射使程序员可以使用某一特定的编程语言方便地调用所有o r b 支持的函数,所有对某一特定语言的o r b 实现必须支持同样的i g l 映射以使实现对 象的程序获得源码级可移植性。在c o r b a 规范中制订了i d l 蛩j c 、c 十+ 、s m a l l t a l k 等语言的映射规范。h 2 2c o r b a 2 与e j b 和c o m ,d c o m 系统的互操作 o m g 组织在1 9 9 6 年发布c o r b a2 0 ,为c o r b a 与e j b 和c o m d c o m 的互操作给出了 标准规范。 2 2 1c o r b a 2 与e j b 的互操作 2 2 1 1c o r b a 2 与e j b 互操作遵循的规范 ( 1 ) 对于e j b 方面,在e j b 中,会话b e a n 和实体b e a n 使用远程方法调用( r m i ) 来进行同步通信。j 2 e el _ 3 要求j a v a 客户端使用r m i i i o p 。r m i - i i o p 采用c o r b a 的i i o p 协议,这使得r m i i i o p 与c o r b a 相兼容,不是基于j a v a 开发的客户端也可 以通过c o r b a 与e j b 进行通信。 要实现这点,必须使用符合j 2 e e1 3 的应用服务器。以前的e j b 规范没有要 求使用r m i i i o p 协议。而是,应用服务器采用了r m i j r m p 或是其它私有协议。 ( 2 ) 对于c o r b a 方面,必须使用符合c o r b a2 ,3 1 或更高版本的o r b 。以前的 c o r b a 版本没有实现与r m i i i o p 协议进行互操作所必需的规范,尤其是后来集成 中c o r b a 规范和j a v a $ l j i d l 的语言映射规范中的用值传递对象的规范( 可以参看 c o r b a i i o p 规范2 6 版,在“值类型语义”一章) 。 值类型语言增加了用值来传递对象的概念,是由跳i 引来,加入到c o r b a 中的。 c o r b a 最初并不支持这项功能;这个概念对于实现j a v a 与c o r b a 之间的互操作是至 关重要的。j a v a 中可序列化的对象映射为c o r b a 的值类型。值类型为c o r b a 提供了 用值来进行传递的语义。值类型是属于本地的,不能被远程调用。它们不注册到 o r b 中,也不需要标识符,因为它们的值就是它们的标识符。 j a v a i r i i d l 语言映射规范定义了如何把j a v a 接口映射n c o r b a 的i d l 语言。这 河海人学顾士论文c o r b a 在三峡水情查咖系统中的应用研究 个定义使c o r b a 分布对象可以访问本来不具有c o r b a 的i d l 的e j b ( 还有那些 r m i - i i o p 分布对象) 。特别的是,这个规范定义了一个j a v a 的r m i 子集,叫r m i i d l , 它可以允许映射到i d l ,用f l o p ( 或是更通用,是g i o p 协议) 作为通信的底层协议。 在该映射规范中,包括了j a v a 基本类型到i d l 的映射。j a v a 包映射为i d l 的模块。 r m z d l 中的远程接口映射为i d l 的接口并具有相对应的名字。但是,那些用 j a v a b e a n 命名方式来只读或读写属性的方法被映射为i d l 的属性。 2 2 _ 1 2c o r b a 2 与e j b 互操作体系结构 阵堕卜锢 7 璇 查找际磊i l ! 竺坚! 竺! :【 2 2 2c o r b a 2 与c o m d c o m 的互操作 2 2 2 1c o r b a 2 与c o m i d c o m 互操作遵循的规范 o m g 从1 9 9 6 年颁布的c o r b a2 0 就开始制订了c o r b a c o m 、c o r b a a u t o m a t i o n 、 河海大学硕士论文 c o r b a 在三峡水情盘询系统中的应用研究 c o m c o r b a 、a u t o m a t i o n c o r b a 等一系列映射关系,希望用户可以同时透明使用 c o r b a 及c o m d c o m 对象。在o 组织1 9 9 7 年发布的c o r b a2 1 规范中,包括了c o m # i c o r b a 互操作的规范。为了实现c o r b a 平i d c o m 的互操作,o i v l g 在1 9 9 9 年发布的 c o r b a2 3 规范中包括了d c o m 矛i c o r b a 的互操作规范。 2 2 2 2c o r b a 2 与c o m d c o m 互操作体系结构 c o r b a 2 与c o m d c o m 互操作体系结构如图2 5 所示 c l i e n t m f l c n j n e m l d d l e m a c d i n e s e m r m a c r o n e 匪亟) k 玉正 专_ ( 回m o d e l , m o d e l2 d c o m m o de =l m o d e l 3 匝亘d 孓巫匠靖+ 圃删8 4 m o d e l 5 旺亟蒌卜k t _ + 旺圃m o d e l 6 图2 5c o r b a 2 与c o m d c o m 互操作体系结构图 由图2 5 中可知,c o m 和c o r b a 的互操作需要用到c o m c o r b a 桥。d 0 c m 和 c o r b a 之间的互操作性也比较复杂,虽然d c o m 和c o r b a 极其类似。d c o m 的接口指 针大体相当于c o r b a 的对象引用。d c o m 和c o r b a 之间的互操作也可以通过d c o m - - c o r b a 桥寒实现。c o n i - - c o r b a 桥和d c o m - - c o r b a 桥可以将c o r b a 对象映射成为 c o m d c o m 对象或是做相反操作。 目前,国内外厂商开发有很多中间件来支持c o r b a 与c o m d c o m 互操作。各 个中间件有不同的特性。我国东南大学的o r b 产品o r b u s ,也包括了c o m

温馨提示

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

评论

0/150

提交评论