




已阅读5页,还剩55页未读, 继续免费阅读
(计算机应用技术专业论文)corba的web应用及与ejb的集成研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
硕士论文 c o r b a 的w e b 应用及与e j b 的集成研究 摘要 分布对象技术已成为分布异构环境下应用集成和开发的主流技术和计算范型。 将传统的c o r b a 技术应用到w e b 环境下,充分利用两者的优势,能够为分布式 w e b 计算带来高效率。 本文深入研究了c o r b a 的体系结构和实现机理,分析了目前主流的组件技术 规范。利用c o r b a 和j 2 e es e r v l e t 技术设计并实现了一个企业产品在线展示系统。 该系统具有传统c o r b a 结构的易维护性和易扩展性,同时也能满足c o r b a 在 w e b 应用上的要求。系统利用c o r b a 对象服务,对相关的模块做出了改进。之后。 本文继续分析了c o r b a 和e j b 的集成问题。将两者集成,可以使c o r b a 系统能 够利用j 2 e e 的e j b 遗留资源,也可以使原有的j 2 e e 系统提高对非j a v a 语言的可 扩充性和兼容性。本文研究并分析了两者集成的具体办法,最终在系统中实现了其 中的一个方案。 关键词:分布对象技术,c o r b a ,w e b 应用,组件技术,e j b 望主笙苎 竺! 坠竺竺! 壁旦墨兰! 些竺墨壁竺窒 a b s t r a c t d i s t r i b u t e d o b j e c tt e c h n o l o g y h a sb e c o m et h em a i n s t r e a mt e c h n o l o g ya n da n i m p o r t a n tc o m p u t i n gp a r a d i g mo fa p p l i c a t i o ni n t e g r a t i o na n ds y s t e md e v e l o p m e n ti n d i s t r i b u t e dh e t e r o g e n e o u se n v i r o n m e n t t oi n t e g r a t ec o r b ai n t ow e bc a nm a k ef u l l u s eo f t h ea d v a n t a g e so fb o t ht e c h n o l o g i e sa n d b r i n gh i g he f f i c i e n c yt ow e ba p p l i c a t i o n t h i s p a p e rf o c u s e s o nt h e p r i n c i p l e a n da r c h i t e c t u r eo fc o r b a ,a l s oo nt h e m a i n s t r e a mc o m p o n e n tt e c h n o l o g i e s t h ea u t h o r d e s i g n sa n di m p l e m e n t sa no n l i n e p r o d u c t s h o ws y s t e mw i t hc o r b aa r c h i t e c t u r ea n dj 2 e es e r v l e tt e c h n o l o g y t h e s y s t e mn o to n l yh a st h ea d v a n t a g e so ft r a d i t i o n a lc o r b a ,g o o dm a i n t a i n a b i l i t ya n d e x t e n s i b i l i t y ;a l s om e e t st h ed e m a n do ft h ew e ba p p l i c a t i o no fc o r b a a l s o ,t h e s y s t e mi m p r o v e ss o m em o d u l ew i t ht h ec o r b a s e r v i c e s t h e nt h i sp a p e rg o e so nt o s t u d yt h ei n t e g r a t i o no fc o r b a a n de j b t oi n t e g r a t ec o r b aa n de j bm a k e si t p o s s i b l ef o rc o r b as y s t e mt ot a k eu s eo f t h e e j b l e g a c yr e s o u r c e si nj 2 e es y s t e m ,a l s o t h i sw i l le n h a n c et h ea b i l i t yo fe x p a n s i b i l i t ya n dc o m p a t i b i l i t yt on o n - j a v as y s t e mi n j 2 e e t h i s p a p e r s t u d i e sa n da n a l y s e ss o m e w a y so f t h ei n t e g r a t i o n ,t h e ni m p l e m e n t sa c e r t a i nm e t h o di nt h es y s t e m k e y w o r d s :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 , c o r b a ,w e b a p p l i c a t i o n , c o m p o n e n tt e c h n o l o g y , e j b i i y 6 24 2 2 7 声明 本学位论文是我在导师的指导下取得的研究成果,尽我所知,在 本学位论文中,除了加以标注和致谢的部分外,不包含其他人已经发 表或公布过的研究成果,也不包含我为获得任何教育机构的学位或学 历而使用过的材料。与我一同工作的同事对本学位论文做出的贡献均 已在论文中作了明确的说明。 研究生签名: 芝厶i ! 目一夕。叶年6 月歹日 学位论文使用授权声明 南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅 或上网公布本学位论文的全部或部分内容,可以向有关部门或机构送 交并授权其保存、借阅或上网公布本学位论文的全部或部分内容。对 于保密论文,按保密的有关规定和程序处理。 研究生签名:2 。- l 年6 月s 日 硕士论文 c o r b a 的w e b 应用及与e j b 的集成研究 1 1 前言 第一章绪论 从计算机技术进化的历史可以看到,上世纪八十年代提出的客户机h h 务器架 构,是计算机应用程序体系上的一次重大革命。这场革命使得计算机应用程序从原 来的只能在单一机器上的运行,扩展到能在不同机器上分布地完成一个计算。这样 既在一定程度上克服了硬件的瓶颈,可以在现有的硬件条件下,完成复杂的计算机 运算,又为程序的异地实现和网络互联,奠定了基础。 上世纪九十年代,i n t e r a c t 技术和面向对象技术得到了蓬勃的发展。怎样将分布 式体系结构用在i n t e m e t 上,怎样利用面向对象技术为分布式技术服务日益成为 计算机业界所关注的问题。同时,从客户机朋务器体系结构本身来看,也在两个方 向上有所变化:传统的两层结构逐渐向多层结构转变,业务逻辑功能从客户机中剥 离出来,成为了独立的一个中间层;客户机和服务器的界限也日益模糊,一台机器 可以在某一时刻是服务器,在另一个时刻是客户机。分布对象技术就是在这样的环 境下产生的。 分布对象计算的组成是分布计算和对象模型,是面向对象技术在网络上的拓 展。它具有开发快速,成本较低以及应用软件灵活性较高等优点。分布对象技术已 成为建立网络软件应用框架的核心技术。目前,f l _ _ - 项标准构成了分布对象技术的 主流:对象管理组织o m g ( 0 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 d c o m 以及s u n 公司的j a v ar m i 。 c o r b a 分布计算技术,是由绝大多数分布计算平台厂商所支持和遵循的系统 规范技术,具有模型完整且先进,独立于系统平台和开发语言,被支持程度广泛的 特点,已逐渐成为分布计算技术的标准。与其他两项技术相比,c o r b a 技术推出 时间最早,规范最全,以及平台无关性较好,在实际应用中占据着相当大的比例。 在开发大型分布式应用系统中表现出强大的生命力。 然而,c o r b a 技术的上述特点,某些程度上也限制了它的更广泛应用。c o r b a 技术规范而全面,使得它的开发过于庞大和复杂。它的平台无关性,也带来了很高 的开销。另外,由于c o m d c o m 和j a v ar m i 的推出在许多地方借鉴了c o r b a 规范,并且,他们在融入最新技术方面做得更积极,因此他们克服了c o r b a 的一 些缺点。并且在某些方面,比如运行效率,开发环境支持以及软件组件技术方面, 与c o r b a 相比有一定的提高。 堡兰笙苎 ! ! ! 坠塑! 竺窒里垦皇! 里竺墨壁里翌 1 2 问题的来源和本课题意义 c o r b a 规范在提出以后,几经补充和完善以适应不断变化和发展的计算机相 关技术。但是,毕竟c o r b a 的方案早在1 9 8 9 年就已经开始制定,在现今新的技 术环境下,它本身在某些方面也暴露出来一些缺点和不足。 c o r b a 技术是出于对局域网分布对象技术的应用而提出的,其规范本身并没 有涉及太多i n t e m e t 上的应用。c o r b a 技术是一个规范而并不是具体的开发工具。 因此,它必须依靠应用服务器开发商为其提供平台支持。c o r b a 没有标准的分发 配置对象实现的方式,对于不同的情况开发者往往需要使用特定的策略进行分发配 置。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 通过p o a 机制激活对象,但是 直接配置p o a 策略,降低了c o r b a 的易操作性。 和c o r b a 技术相比,与其竞争的两大技术体系j a v ar m i 和c o m f d c o m 技 术在这些方面具有优势。这两大技术都有各自的开发语言的支持;而且,与c o r b a 规范的庞大和复杂相比,这两项相对简洁高效的技术更利于在i n t c r n e t 上推广。这 些都使得两大技术在w e b 应用上都占据了各自相当大的市场。特别是j 2 e e 和n e t 提出后,两大技术体系引入了服务端组件技术的概念以及面向企业级w e b 应用的开 发技术,使得分布式系统的开发技术,向前跨越了大步。特别是j 2 e e 体系提出 的e j b 技术规范,在易操作性、业务逻辑的集成、事务处理、安全性方面都表现优 异,真正实现了组件的即插即用。目前,国内外已经有许多采用j 2 e e 开发的企业 级w e b 应用的成功案例。 0 m g 在吸收利用了最新组件技术特别是e j b 技术规范的基础上,在c o r b a 3 0 中正式提出了c o r b a 组件模型( c c m ) 。使用它创建的服务端应用具有扩展性 好、支持事务处理、支持多用户、良好的安全性和支持事件处理等一系列优势。c c m 的提出,弥补了c o r b a 在服务端组件技术的不足,使得c o r b a 在分布式计算领 域的发展前景更加广阔。然而,由于c c m 提出的时间比较晚,c o r b a 平台的开 发商不能及时的开发出支持c c m 规范的产品;同时,c c m 规范相对复杂和全面, 商用平台实现对c c m 规范完全的支持,尚需时日。 本课题的研究正是在这样的背景下提出的。本课题在以下两个方面做了一些探 讨和研究,希望本课题所做的工作能对相关问题的解决提供一些有益的思路。 硕士论文 c o r b a 的w e b 应用及与e j b 的集成研究 首先,通过本课题的研究,希望能为c o r b a 技术在w e b 上的应用做出一些尝 试。目前,c o r b a 主要应用于电信,金融等专业的分布式环境,c o r b a 的跨语 言跨平台的特性正有利于解决这类问题。但是,由于前文所提到的原因,c o r b a 在i n t e m e t 上的应用特别是企业级w e b 应用的案例并不多见。传统的c o r b a 如何 适应新的应用需求,在w e b 应用上得到更大的发展,是本课题所关注的。对此,我 们利用c o r b a 平台,结合j a v a 系列技术,构建并实现了一个产品展示系统,利用 c o r b a 技术的对象服务,实现了其中的一些功能,并改进了一些具体实现。 其次,本课题研究和实现的c o r b a 和e j b 集成应用,希望能为相关问题的解 决带来一些启示。目前,国内已经有相当多的企业级w e b 应用是基于j 2 e e e j b 技 术实现的。j 2 e e 技术是语言相关的。因此采用语言无关的c 0 r b a 技术,可以对 j 2 e e 进行集成,这在某些场合下是很有意义的。为此,本课题在对所提出的c o r b a 和e j b 的几种集成的方法进行研究和分析后,针对其中的一种方法,在系统中实现 了c o r b a 客户端集成应用遗留的e j b 资源。 1 3 论文的主要内容和组织结构 本课题的方向是研究c o r b a 技术的规范体系,并根据最新的c o r b a 应用方 向,研究和探讨c o r b a 技术的在w e b 上的应用情况,以及和e j b 组件的集成应 用问题。本文的研究集中在c o r b a 技术,组件技术,e j b 技术,以及c o r b a 技 术与e j b 的集成上。 本论文在深入探讨c o r b a 相关技术以及组件技术的理论和规范的基础上,做 了以下几个方面的工作: 1 ) 通过深入学习和研究c o r b a 技术规范,分析了c o r b a 技术的优缺点,在 此基础上,学习了c o r b a 体系的最新技术规范c o r b a3 0 和c c m 规范: 2 ) 介绍了组件技术的基本概念,学习和探讨了目前主流的几种组件技术,并对 这些技术作了一定的分析和比较。 3 ) 研究和分析了c o r b a 体系与服务端组件技术的集成问题。 4 ) 设计并建立了一个基于c o r b a 结构的在线产品展示系统。实现了系统中的 用户管理、产品查询与定制、用户下单、在线技术支持等关键功能模块,并对其中 的一些模块提出了改进方案。 5 ) 提出了几种c o r b a 集成e j b 技术的模型。具体分析了实现的技术难点和 实现可能。并结合产品展示系统应用实例,实现了其中的一种集成方案。 本文共为六个部分,结构组织如下: 第一章绪论部分,介绍了课题的研究背景,主要内容。并简要介绍了研究的 硕士论文 c o r b a 的w e b 应用及与e j b 的集成研究 重点以及相关技术: 第二章简要介绍了c o r b a 的体系结构,并重点介绍了本文实现的系统方案 中所涉及的c o r b a 计算技术中的i d l ,i i o p ,命名服务及事件服务,通知服务等 技术: 第三章描述了c o r b a 体系的最新发展方向。然后对组件技术做了介绍,列 举了流行的几种组件模型,并分析了在c o r b a 系统中引入这些组件技术的各种情 况; 第四章介绍了系统的实现框架,详细地论述了系统各个主要模块的实现方法 和过程,该系统中重点问题的解决方法,展示了实现系统的各种核心技术的应用。 并对系统中的一些模块提出了改进方案。 第五章分析和研究了c o r b a 对象与e j b 组件的几个应用集成方案,并对这 些方案进行了分析和比较。最后,利用其中的一种方案,在具体的系统中得到了实 现。 最后,对论文的工作做了扼要地总结,指出未来需要进一步研究的方向。 硕士论文 c o r b a 的w e b 应用及与e j b 的集成研究 2 1c o i m a 概述 第二章c o r b a 简介 以面向对象技术为主要特征的分布对象技术经过蓬勃发展,在9 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 ra r c h i t e c t u r e ) 是 o m g 顺应分布对象技术的趋势制定的一个工业规范。主要用于解决分布式处理环 境中硬件和软件系统的互联问题。最早的c o r b a 标准c o r b ai 1 是在1 9 9 1 年制 定和提出的,经过不断发展,已达到了3 0 系列版本。目前,c o r b a 应用平台通 常采用的是c o r b a 2 0 系列的版本。 c o r b a 是一个完整的技术体系规范,涉及到的相关技术很多,其中,对象请 求代理o r b 是定位和激活其它对象的核心部件。c o r b a 技术的核心思想如下: 中间件概念: o m g 提出c o r b a 的目的旨在为分布式应用提供一个中间件结构,即在操作 系统和应用软件之间增加了一个软件层,向各种应用软件提供服务,使得不同的应 用进程能在屏蔽掉平台差异的情况下,通过网络互相通信。 分层的设计和实现: o r b 的出现使得程序员在设计和实现客户端和服务器端程序的时候,只需专注 于应用领域内的开发。而核心的o r b 级的基本对象、属性和方法已在c o r b a 规 范有了定义。这使得c o r b a 系统有一个精练的核心和丰富的外延,能够开发结构 良好的分布式应用。 客户端和服务端实现程序完全分离; 与传统的c s 结构不同,c o r b a 客户不再同服务器发生直接的联系,而仅仅 需要同o r b 代理进行交互。这给程序开发者高度的灵活性。在调用方式保持不变 的前提下,服务端和客户端都可以自由地修改和升级,无需通知对方。 语言无关性: c o r b a 采用自身的i d l 定义语言定义接口对象。一种开发语言只要能与 c o r b a 规范体系本身的i d l 定义语言互相映射,就能够支持用于c o r b a 开发。 面向对象的体系: c o r b a 是一种分布对象技术,具有分布对象技术的性能。软件重用率高,并 硕士论文 c o r b a 的w e b 应用及与e j b 的集成研究 能控制一定的程序冗余度。 2 2c o r b a 规范的o m a 参考模型 图2 2 1o m g 对象管理体系结构o m a o m g 制定的对象管理体系结构o m a 是一个实现分布环境的高层参考模型, c o r b a 是o m a 的核心。o m a 在抽象层次上定义了能够提供分布对象计算的各种 设施。o m a 模型描述了o m g 的规范所遵循的概念化的基础结构其核心部分是 对象请求代理o r b ( o b j e c tr e q u e s tb r o k e r ) 。 o m a 的核心部分是o r b ,它使对象在分布武环境中能够透明地收发请求和响 应。o r b 是构造分布式对象应用以及应用系统在不同层次的异构环境下进行互操作 的基础。如图2 2 1 所示,o m a 认为通过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 ) :是从应用的最终用户角度考虑的各种服务,它定 义了直接被商务对象使用的水平和垂直应用程序框架,如系统管理、复合文档、电 子邮件等。 领域接( d o m a i ni n t e r f a c e s ) :面向特定应用领域的服务如制造、商务、医疗、 电信等不同行业的公共服务。所完成的任务与对象服务和公共设施类似。 应用接e l ( a p p l i c a t i o ni n t e r f a c e s ) :特定于具体的应用,是厂商针对自己推出的 产品所建立的说明。它在对象服务和公共设施的帮助下完成相应的应用逻辑。 2 3c o r b a 的基本组成 图2 3 1 展示了作为c o r j 3 a 规范核心部分的c o r b a 对象请求接口的结构。 6 硕士论文c o r b a 的w e b 应用及与e j b 的集成研究 从图中可以看到,c o r b a 体系的核心是对象请求代理o r b ,c o r b a 体系的运作 都是在o r b 基础上的。通过o r b 可以完成对象定位,编组和解组,启动初始服务, 屏蔽底层网络协议,提供接口库和其他a p i 等功能。 图2 3 ,1c o r b a 对象请求接口结构 如图2 3 1 ,从客户到对象实现的箭头方向,表示客户调用请求的传递过程;而 从对象实现到客户的箭头方向是返回对象实现响应结果的过程。c o r b a 体系实现 的过程,可以简单描述如下: 对象注册:服务程序通过p o a 和o r b 将其所能提供的服务对象以字符串 标记的形式在命名服务器上登记注册。 客户得到对象引用:客户首先初始化o r b ,建立与o r b 代理的连接,同 时获得名录服务的名字上下文。将名称上下文解码后,客户就获得了相应 对象的引用。 客户发送调用请求:若采用静态调用,则本次调用请求的服务对象的i d l 接口有相应的i d l 桩,客户可以通过该i d l 桩向对象实现发出请求,调用 请求中包含了对象引用、方法和参数等必要信息。若没有相应的i d l 桩, 则可以采用动态调用的方式,在接口库的协助下,使用动态调用接口来向 硕士论文 c o r b a 的w e b 应用及与e j b 的集成研究 对象实现发出请求。 o r b 传递请求:o r b 将客户的调用请求的传送,根据一定的请求传递方式, 将其送给相应的对象适配器。 激活对象实现:对象适配器在收到调用请求后,最先判断的是被请求响应 的服务对象是否有i d l 框架存在。如果存在i d l 框架,则对象适配器通过 该i d l 框架调用服务对象中的相应操作;否则,通过动态框架接口中的动 态实现例程来调用服务对象中的相应操作。 返回执行结果:服务对象执行完操作后,执行结果将按照上述调用请求传 递的路径逆向传回给客户。 2 4 接口定义语言i d l o m g 接口定义语言( o m g i d l ,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 ) 是用来描述 产生对象调用的客户方和提供对象实现的服务方之间的接口的语言,采用o m gi d l 定义的接口能够完整给出该接口的定义并详细给出每个操作要求的参数。总之。 o m g i d l 提供了使用接口操作来开发客户应用程序所需要的信息【引。 o m g i d l 并不是一种过程性语言,而是一种描述性语言,它只描述接口,不 描述实现,因此它与c + + 、j a v a 等编程语言不同,只有很少一部分涉及到机器的支 持,而大部分内容只涉及到数据类型的定义。在c o r b a 规范中,o m g 定义了i d l 的语法。由于o m gi d l 是纯描述性语言,这些描述与实现的语言无关,因此在具 体的开发c o r b a 程序时,需要具体的编程语言来实现。而c o r b a 体系所要做的, 就是给出实现的具体语言与o m gi d l 的映射规则。 o m g 在c o r b a 语言映射规范中,给出了多种语言与o m gi d l 语言的映射规 则,如c + + ,j a v a 等。有了这些语言映射以后,就可以由o m gi d l 生成特定语言 的应用程序;而用特定的某种语言实现的客户端或服务器,也可以理解i d l 语义, 完成c o r b a 的请求调用和响应。 o m g i d l 是c o r b a 平台跨语言实现的基础。 2 5 互联网交互代理协议i i o p 在复杂的网络环境中,大多数情况下完成一个c o r b a 的调用请求和响应需要 经过不止一个o r b ,因此需要解决o r b 之间的通信问题。c o r b a 规范定义了通 用o r b 间协议g l o p ( g e n e r a l i n t e r - o r bp r o t o c 0 1 ) 实现o r b 间的通信框架。g i o p 规 范有三要素 1 】: 编码方式:为保证在不同的o r b 之间能够进行通信,g i o p 采用公共数据 堡主笙苎 塑! 坠箜! ! ! 些里墨兰! 里竺堡壁竺坚 表示( c d r ,c o m m o n d a t ar e p r e s e n t a t i o n ) 的传输语法。这样起始者和接受者 在数据的二进制布局中就取得了一致。 消息格式:g t o p 定义7 种类型的消息用于相互通信,解决请求、应答、定 位以及连接管理等问题。 对底层网络传输的要求:g i o p 对执行g i o p 协议实现的底层传输做了大量 的要求,主要有:传输是面向连接的、可靠的;连接看作是提供了一个字 节流抽象;连接是全双工的、对称的;连接可以映射为t c p f l p 模式等等。 g i o p 类似于一个标准的o r b 间的通信格式的定义,涉及到具体不同的网络环 境上面的应用,g i o p 可以映射出具体的o r b 互通协议,映射到基于t c p i p 的互 联网上,便是l l o p ( i n t e m e t i n t e r - o r b p r o t o c 0 1 ) 。可以认为,i i o p 与t c 朋p 的合作, 完成了g i o p 的功能。i i o p 是建立在t c p i p 基础上的,因此,i i o p 的连接机制满 足t c p i p 协议,它是通过t c p h p 的客户端和服务端发送响应的消息请求和响应来 实现联接的,目标对象的t c p ,i p 地址由i o r 形式封装和公布。i o r ( i n t e r p r e t a b l e o b j e c tr e f e r e n c e ) 是为了实现c o r b a 对象的地址在i a t e m e t 上的传递而定义的。i o r 编码结构把对象的地址信息编码于其中,通过网络传递i o r 来得到对象的地址信 息。 i i o p 的简单工作流程是这样的:服务端侦听连接请求,当客户端发送请求后, 服务器便接受连接请求,此时o r b 可以自由地制定所希望的连接的策略。一旦连 接被接受,客户就可以向此连接的t c p i p 套接字写入以发送r e q u e s t ,l o c a t e r e q u e s t 或c a n c e l r e q u e s t 消息。服务端可以发送r e p l y , l o c a t e r e p l y 或者c l o s e c o n n e c t i o n 消息。要结束连接时,o r b 有权选择结束的方式和顺序以结束一个t c p i p 的连接。 i i o p 是c o r b a 在i n t e m e t 上应用的基础,i i o p 构建一个基于分布式对象的 平台。将相互依赖的公司问的应用服务程序连接在一起。 2 6 c o r b a 对象服务 c o r b a 的一大特色和优势就是定义了提供大量可以重用的服务。采用软件重 用的方法,可以帮助用户快速、可靠地解决特定领域的分布式计算问题。可以把 c o r b a 对象服务看成是o r b 功能的扩充,这些服务部分可运行在o r b 上层,部 分内嵌到o r b 的内部。 2 6 1 命名服务 命名服务( n a m i n gs e r v i c e ) 是c o r b a 对象服务中最简单最基本的服务,命名服 9 硕士论文 c o r b a 的w e b 应用及与e j b 的集成研究 务简单地讲,就是提供了从名字到对象引用的一个映射。这样,客户程序可以给对 象起有意义的名称而不必处理字符串化的对象引用。改变在某个名称下公告的引用 值,客户程序也可以在不改变源码的情况下使用不同接口的实现。 由于c o r b a 体系是分布对象技术,因而计算系统中无论是客户端还是服务端 都以对象的形式存在。在异构型的网络中,各对象所处位置分散,系统环境各不相 同,要想正确而迅速地定位并调用这些对象,必须使用命名服务。命名服务的功能 类似于d n s 域名服务器,提供从名称到对象引用的映射:给定一个名称,该服务 返回一个存储在此名称下的对象引用,这种“名称引用”关系称为名字绑定( n a m e b i n d i n g ) ,而一个存储名字绑定的对象就称为命名上下文,上下文和名字绑定的层 次结构构成命名图。在程序设计中,把各计算模块、数据收发模块和事件通道作为 对象加入命名上下文,这样就可以在程序运行中动态地得到这些对象的引用。 命名服务定义的接口可以管理对象的名字空间,可以通过它们迸行查询和搜索 分布在网络上的对象,为c o r b a 实现透明分布对象访问提供服务。 命名服务的i d l 定义的模块中共有三个接口,实现主要功能的是命名环境接口 n a m i n g c o n t e x t ”。所有对命名服务的操作都在一个特定的命名环境中进行。在 n a m i n g c o n t e x t 接口中,b i n d ( ) 方法可以将一个对象的名字与命名环境关联起来,形 成一个名字绑定。r e b i n d ( ) 方法与b i n d ( ) 方法完全相同,但这个名字已经与其它对象 绑定时,r e b i n d ( ) 方法不返回出错信号,它只是将这个对象与新名字绑定。调用 u n b i n d 0 方法可以从命名环境中去掉一个名字绑定d e s t r o y o 方法可以删除这个命名 环境。利用r e s o l v e 0 方法可以找到任何有“名字对象”关系,这个方法可以在一个 给定的语言环境中检索与某个名字绑定的对象。 2 6 2 事件服务 事件服务是为解决c o r b a 对象间的通信问题而定义的。事件服务为对象提供 了一种松散的、间接的、松耦合的“提供者消费者”的通讯模式。这种通讯模式允 许通讯双方在互不知道对方的情况下交换数据。事件服务允许对象在一个特殊事件 里动态登录或退出。一般情况下,产生事件的对象不必知道对它感兴趣的对象,消 费事件的对象不必知道产生事件的对象,这全部由事件服务处理。事件服务在互相 连通的对象之间产生一个松祸合通信信道。这种松耦合的通讯模式对于建构分布式 管理系统具有非常重要的意义【3 i l 。 事件服务为对象定义了三种成员角色:事件提供者( s u p p l i e r ) ,发送事件;事件 消费者( c o n s u m e r ) ,接受事件:事件通道( e v e n t c h a n n e l ) ,作为多个提供者对象与多 个消费者对象之间的异步通信中介,负责将事件从提供者对象传送给消费者对象。 硕士论文 c o r b a 的w e b 应用及与e j b 的集成研究 整个事件的传递经历了两个阶段,从提供者到事件通道以及从事件通道到消费者的 阶段。事件通道在这两个阶段起到了两种截然不同的作用,在前一个阶段它是事件 的消费者,在后一阶段它是事件的提供者。 按照事件消息的传递方式,事件服务定义了事件通讯类型:推模型( p u s hm o d e l ) 和拉模型( p u l lm o d e l ) 。在推模式中,事件提供者通过向消费者调用p u s h ( ) 操作,将 事件作为操作参数,从而实现事件的传送。提供者的应用程序支持接口是 p u s h s u p p l i e r ,消费者应用程序支持接口为p u s h c o n s u m e r 。与之对应,拉模式的是 事件提供者支持接口p u l l s u p p l i e r ,而事件消费者支持接口为p d l c o m s u m e r ,但在 拉模式中,消费者调用提供者的p u l l ( ) 操作,将及时返回一个事件作为结果。 事件生产 事件消费 p u s h s ”p p i i c p r o x y p u s h c o n s u m e rp m x 删s 唰e r p u h c 。 图2 6 2 1c o r b a 事件服务 只依靠提供者、消费者、和事件通道三个接口还不能完成提供者和消费者之间 的通信。由于事件通道在事件传递过程中是处于中间对象的地位,因此事件通道提 供了两个代理接口来完成与客户端和服务端的连接。一个p u s h s u p p l i e r 要连接到事 件的通道上时,并不是把自己直接注册在这个事件通道上,而是与该事件通道上的 一个消费者代理p r o x y p u s h c o n s u m e r 相连接。其优势在于,它可以不必理会事件通 道另一侧的情况,也就是说,另一侧可以采用推模式也可以采用拉模式来完成这次 事件消息的传递。同样,一个p u s h c o n s u m e r 连接到事件通道上时,也不是把自己 直接注册在这个事件通道上,而是与该事件通道上的一个p r o x y p u s h s u p p l i e r 相连 硕士论文 c o r b a 的w e b 应用及与e j b 的集成研究 接。事件通道隔离了事件提供者和事件消费者,在具体的通讯模式上,共有如图 2 6 2 1 的四种通讯模式。 事件服务提供了一种松耦合的通讯模式,事件的提供者和消费者可以随时动态 地在一个或多个事件通道上登录或退出。彼此不必关心对方的情况,由事件通道负 责建立起它们之间的逻辑联系。这种通讯模式可以实现异步消息的传递,提供者发 布事件信息时,不必等待消费者消费即可返回,这样就提高了消息传递的效率。事 件的提供者和消费者可以同时采用主动的通讯方式,实现对事件的主动发送。 2 6 3 通知服务 c o r b a 事件服务能够提供多个事件的异步通信,一定程度上实现了消息的广 播。但是,这种通信能力是非常有限的,事件服务主要存在两个不足: 1 ) 不能保证事件和连接的可靠性,不支持服务质量( q o s ) 的设置。其通信的可 靠性是“尽力而为”型的。 2 ) 不提供结构化的事件和事件过滤机制。c p u 必须花费大量的时间去判断和 丢弃不需要事件,严重影响消费者的执行效率n c o r b a 通知服务( n o t i f i c a t i o ns e r v i c e ) 弥补这两个的缺憾。它引入了过滤机制 和服务质量保证,同时向后兼容事件服务,使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 事件服务只支持无类型的a n y 和有类型事件。 2 ) 过滤机制:这是通知服务相对于事件服务最大的加强。客户端可以给通道代 理添加过滤条件,以说明哪些事件是它们希望得到的。通道上的事件提供者,能够 得到在这个通道上所有事件消费者所需要的事件类型,并按照消费者的需要产生事 件。消费者也能够得到同一通道上所有提供者提供的事件类型,以便订阅自己可能 需要的新的事件类型。 3 ) 服务质量:在c o r b a 通知服务中,服务质量q o s 是以一个 对形式配置的,可以在每一通道级,每一代理级和每一事件级上配置不同的服务质 量属性。 通知服务的引入,使得c o r b a 结构有了面向消息中间件( m o m ) 的特性,面向 消息的中间件的最大特点是异步调用和存储转发。从通知服务的新特性的分析可以 看出,通知服务实现了面向消息中间件的大部分功能,包括:为应用程序之间提供 硕士论文c o r b a 的w e b 应用及与e j b 的集成研究 可靠、高效、灵活的消息传送,按需保证了通信的服务质量;提供事件代理机制; 提供订阅和发布功能等。然而,c o r b a 始终都是面向对象的中间件,因此,它既 拥有面向对象设计的所有好处,又有面向消息中间件的特性。 硕士论文 c o r b a 的w e b 应用及与e j b 的集成研究 第三章组件技术 3 1c o r b a3 0 规范 自推出c o r b a 的第一个版本以来,为保持其活力和可用性,o m g 不断地推出 c o r b a 的新版本。通过改进自身的不足和吸收新的技术,适应分布式计算的发展 需要。目前主流o r b 产品是基于o m ( 3 在1 9 9 8 年9 月推出的c o r b a 2 3 规范的。 c o r b a 2 3 能基本满足分布式开发的需要,但在某些技术领域,与相关竞争技术相 比处于劣势。o m g 推出的最新c o r b a3 0 版本在相关方面作了大量改进。 c o r b a3 0 规范主要分为三个大的方面,分别是j a v a 和i n t e m e t 集成;异步消 息规范与q o s 以及c o r b a 组件体系技术1 2 j 。 1 ) c o r b a3 0 规范完善和加强了c o r b a 与i n t e m e t 的集成,同时也使得j a v a 语言与c o r b a 能更好的协同工作,j a v a 与i n t e m e t 集成规范主要有以下四个方面。 以值传递对象( o b j e c tb yv a l u e ) 方便了开发者更加高效地传递对象信息。传统的 c o r b a 只允许对象引用作为参数传递,而对象本身并不发送到请求方。以值传递 的方法更接近于一般的编程语言如j a v a 语言,容易实现应用程序级的无缝映射。 j a v a 到i d l 的映射使得j a v ar m i 对象能够跟c o r b a 对象一样通过网络进行 互操作。它们具有c o r b a 对象引用,发出i i o p 协议。和上述以值传递规范一样, j a v a 到i d l 的映射也是c o r b a 2 3 规范的一部分。 可共用命名服务提供了一种更利于在网上传递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 a2 3 的后继版本 c o r b a2 4 规范中有定义。 c o r b a 防火墙规范使得c o r b a 体系具有能够安全地穿过防火墙的性能,解 决了传统的c o r b a 结构中i i o p 通过防火墙的困难。 2 ) 服务质量控制方面,由于c o r b a 对客户应用程序隐藏了某些底层网络细 节,使c o r b a 应用程序难以控制底层o r b 发送消息的质量。新的c o r b a 消息 规范,允许客户程序指定发送请求的q o s 、消息队列和消息权限,使c o r b a 应用 级程序也能够控制服务质量。c o r b a3 0 提出的异步消息规范,弥补了原有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 4 硕士论文 c o r b 的w e b 应用及与e j b 的集成研究 3 1c o r b a 组件模型是新规范中增加的一个显著特性。o m g 通过组件模型定 义了即插即用的c o r b a 组件的界面、机$ q s u 程序行发框架。组件模型封装了简单 对象的创建、生命周期和事件等内容;允许客户方动态地访问组件对象的功能、方 法和事件;借鉴并集成现有的组件技术( j a v ab e a n ,c o m 等) ,提供了到这些组件的 映射和互操作性。c o r b a 组件模型提供了运用组件组装应用程序的较完整机制, 统一了简单程序的开发框架。显著减少了使用c o r b a 开发程序的难度,同时也实 现了和j a v 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 更具适用性。 3 2 组件技术 组件技术也称为构件技术,它是以嵌入后可立即使用的即插即用型概念为核心 的,其组成包括可重用的代码和数据。基于组件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年益阳桃江县卫健系统选调事业编制工作人员考试真题
- 2024年德州市临邑县招聘城乡公益性岗位人员考试真题
- 甘肃省2022年普通高中学业水平合格性考试英语题目及答案
- 2025年电气工程与自动化试题与答案解析
- 2025年安全生产风险辨识与安全技能培训试题(附答案+解析)
- 合作投资协议范本有哪些
- 2024年安徽和襄高速公路有限公司招聘真题
- 2025公务员(国考)考试题库及满分答案
- 基孔肯雅热防控技术指南2025年版考核试卷(附答案)
- 2025年门座式起重机司机Q2证考试练习题附答案
- 医院夜晚值班期间火灾应急预案(3篇)
- 学校聘请校医协议书
- 探究车用锂离子动力电池热失控的引发机制、过程建模与防控策略
- 设备授权协议书范本
- 《工伤保险案例分析》课件
- 2025安康职业技术学院教师招聘考试试题及答案
- 2025年全国大学生网络安全知识竞赛题库与答案(共60题)
- 3到6岁育儿知识讲座
- 教育也是一场修行
- 餐饮6S标准培训
- 小学科学副校长聘用协议书范文
评论
0/150
提交评论