(计算机应用技术专业论文)rmiiiop模型的研究及应用.pdf_第1页
(计算机应用技术专业论文)rmiiiop模型的研究及应用.pdf_第2页
(计算机应用技术专业论文)rmiiiop模型的研究及应用.pdf_第3页
(计算机应用技术专业论文)rmiiiop模型的研究及应用.pdf_第4页
(计算机应用技术专业论文)rmiiiop模型的研究及应用.pdf_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

摘要r m i - i i o p 模型的价值在于r m i 可以使用c o r b a 的i i o p 作为分布式对象通信中的标准传输协议,使得r m i 应用程序与c o r b a 系统之间的互操作成为可能。r m i 最初使用的j r m p 是一个非标准的协议,它不允许与使用交叉语言编写的c o r b a 对象进行通信。r m i ii o p 模型同时具有r m i 的简单易用和c o r b a 在不同语言间的互操作性。r m i - i i o p 模型没有完全解决r m i 对象与c o r b a 对象互操作通信的问题,本文详细分析了r m i - i i o p 模型结构及实现方法,针对其存在的缺陷,提出了自己的解决方案,在此模型的基础上形成了新的改进扩充模型,改进扩充模型的设计原则是实现r m i 对象与c o r b a 对象在ii o p 协议、对象读取以及远程方法调用等方面完全兼容。设计思想是重新设计其通讯结构和程序结构,根据新的结构重新设计r m i - i i o pa p i 接口,本文阐述了r m i - i i o pa p i 接口的设计思想及实现过程。7为了测试新的r m i - i i o p 改进扩充模型,本文通过实例对r m i - ii o p 改进扩充模型提供的a p i 接口进行具体应用,实验表明在c o r b a 和e j b 的环境中r m i - i i o p 改进扩充模型比原模型功能更强、性能更好。关键词改进扩充模型,r m i ii o p ,a p ia b s t r a c tt h ev a l u eo fl 讣皿i i o pm o d e l i st h a t 踟c a r lu s e1 1 0 po fc o r b aa ss t a n d a r dt r a n s m i s s i o np r o t o c o li nd i s t r i b u t i v es y s t e m ,w h i c hm a k e si ta v a i l a b l et h a tr m ia p p l i c a t i o na n dc o r b as y s t e mc a ni n t e r - o p e r a t e a tv e r yb e g i n n i n gi 讣皿u s e s 口p r o t o c o lt h a ti sn o ts t a n d a r d ,s oi tc a n tu s ed i f f e r e n tp r o g r a ml a n g u a g e st oc o m m u n i c a t ew i t hc o r b ao b j e c t s r m i i i o pm o d e lc o m b i n e st h es i m p l e n e s so fi u i nu s i n gw i t ht h ea b i l i t yo fi n t e r - o p e r a t i o nb e t w e e nd i f f e r e n tp r o g r a ml a n g u a g e s 踟i i o pm o d e lc a n tr e s o l v ei n t e r - o p e r a t i o np r o b l e m sc o m p l e t e l yb e t w e e n 砌o b j e c ta n dc o r b ao b j e c t mp a p e rs t u d i e sa r c h i t e c t u r ea n dr e a l i z a t i o no fl 心皿i i o pm o d e ld e e p l y ,a i m m i n ga t 血ef l a wo ft h em o d e l ,as o l u t i o ni sg i v e n ,a n dp u t sf o r w a r d sa ni m p r o v e dm o d e lo nb a s eo ft h e o l dm o d e l t h ed e s i g n i n gp r i n c i p l eo fi m p r o v e dm o d e li sp r o v i d i n gc o m p l e t ec o m p a t i b i l i t yi ni i o pp r o t o c o l ,r e a d i n ga n dw r i t i n go fo b j e c ta n dr e m o t em e t h o di n v o c a t i o nb e t w e e ni 心缸o b j e c ta n dc o r b ao b j e c t t h ed e s i g n i n gt h i n k i n go fi m p r o v e dm o d e li sr e - d e s i g n i n gi t sc o m m u n i c a t i o na r c h i t e c t u r ea n dp r o g r a ma r c h i t e c t u r e ,b a s e do nt h en e wa r c h i t e c t u r e ,砌一i i o pa p ii n t e r f a c eh a sb e e nr e d e s i g n e d ,t h et h i n k i n ga n di m p l e m e n t a t i o no fr i i o pa p ii n t e r f a c ei sd i s c u s s e d i no r d e rt ot e s tt h ei m p r o v e dr m i i o pm o d e l ,r a m i i i o pa p ii n t e r f a c eb a s e do nt h ei m p r o v e dm o d e lh a sb e e np u ti n t ou s ei nt w oe x a m p l e s ,t h et e s ts h o w st h a tf u n c t i o na n dp e r f o r m a n c eo ft h ei m p r o v e dm o d e li ss t r o n g e ra n db e r e rt h a nt h eo l dm o d e li ne n v i r o n m e n to fc o r b aa n de 鹏k e yw o r d si m p r o v e dm o d e l i u i i o p , a p i原创性声明本人声明,所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了论文中特另, 1 3 n 以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得中南大学或其他单位的学位或证书而使用过的材料。与我共同工作的同志对本研究所作的贡献均已在在论文中作了明确的说明。作者签名:唧日期埠年旦月旦日关于学位论文使用授权说明本人了解中南大学有关保留、使用学位论文的规定,即:学校有权保留学位论文,允许学位论文被查阅和借阅:学校可以公布学位论文的全部或部分内容,可以采用复印、缩印或其它手段保存学位论文;学校可根据国家或湖南省有关部门规定送交学位论文。作者签名麦箝z 翻j 导师签名簋翅竖壁矽日期:必二月旦日硕士学位论文第一章绪论第一章绪论1 1 研究立项的背景及其意义分布式计算为i n t e r n e t 应用软件的设计提供了结构框架和模式,成为未来软件开发的主流技术。文献 1 ,3 指出,分布式计算技术主要是指一种应用程序设计方案,在这种方案中,应用程序、程序处理的数据以及实际计算任务都分布在网络上,这样可以调节多台计算机的处理能力,也可以适合应用程序不同模块组成的特性。当前主流的分布计算技术平台,主要有o m g 的c o r b a ,s u n 的j 2 e e 和m i c r o s o f td c o m 。c o r b a ( c o 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 组织基于众多开放系统平台厂商提交的分布对象互操作内容的基础上制定的公共对象请求代理体系规范,具有模型完整、先进,独立于系统平台和开发语言,被支持程度广泛的特点。文献 1 5 ,1 6 提到,j 2 e e 是s u n 推出基于j a v a 技术的一种规范,它的目标是提供平台无关的、可移植的、支持并发访问和安全的、完全基于j a v a 技术的开发服务器端中间件的标准,跚i 是j 2 e e 规范的核心技术。d c o m 是w i n d o w s环境专属的分布式构架,因而在其他已开发系统平台( 如u n i x ,l i n u x ) 上不能发挥作用,无法满足企业级的需求。互联网技术的日益成熟,网络规模的不断扩大以及计算机软硬件技术水平的飞速提高,给传统的应用软件系统的实现方式带来了巨大的挑战。首先,在企业级应用中,硬件系统供应厂商基于性能、价格等因素的考虑,通常在同一系统中集成来自不同厂商的硬件设各、操作系统、数据库平台和网络协议等,由此带来的异构性给应用软件的互操作性、兼容性以及平滑升级能力带来了严重问题。另外,随着基于网络的业务不断增多,文献 2 指出,传统的客户服务器( c s ) 模式的分布式应用越来越显示出在运行效率、系统网络安全性和系统升级能力等方面的局限性。针对上述问题,在所有的解决方案中,文献 5 ,1 3 ,1 4 指出,c o r b a 应该作为首选方式,因为它具有可扩展性和业界的广泛支持。c o r b a 是一种面向对象的中间件技术,建立了一个很强的跨语言的分布式对象体系构架,提供了一个多种语言对象间进行交互的分布式操作规范,即如果在一个庞大的系统中有很多的组件,它们分别由不同的语言开发而成,那么只要这些组件的设计遵从c o r b a 规范,系统就能实现组件之间的相互访问,从而使得所有的组件构成一硕士学位论文第一章绪论个整体的系统,利用它能有效的实现分布对象之间的互操作。与c o r b a 相比,j a v a 是新一代的网络应用语言,被设计为用于网络和分布式环境。j a v a 在分布式的应用设计中使用较多技术之一的就是r m i 。r m i ( r e m o t em e t h o di n v o c a t i o n ,远程方法调用) 是j a v a 简单分布式对象通信所服务的一种接口机制。应用程序通过j a v ar m ia p i 实现远程客户和服务对象之间的通信。r m i 是以一个通信包存在,负责客户和对象之间的交互连接。由于r m i 的开发都在纯j a v a 的环境中进行的,所以,开发效率高,并可移植。目前,在分布式系统开发中,使用较多的技术就是c o r b a ,虽然c o r b a 拥有与语言无关的特性,在异构网络环境中发挥了巨大的作用,但是,文献 2 1 ,2 5 指出,c o r b a 还存在以下缺陷:只能实现传统语言( 比如:c ,c + + 等语言) 都支持的基本功能,不能实现对象功能的扩充。在传统的c o r b a 对象模型中,对象只能通过继承而不是组合来扩展,应用程序开发人员必须先定义一个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 ,接口定义语言) 接口、实现该接口、并在所有s e r v e r 中配置该实现。但c o r b ai d l 的多重继承是有缺陷的,因为有的语言不支持重载:另外,应用程序可能用同一个i d l 接口多次发布服务的多个实例,这给开发者带来很大的不便。与c o r b a 不同的是,j a v ar m i 是在纯”v a 的环境下进行开发的,因此r m i在对象功能的扩充上不存在任何缺陷,也正由于r m l 只支持j a v a 语言,这就使得r m i 不提供与其他语言所生成对象交互的能力,对其它非j a v a 对象的请求则无能为力,这也造成了j a v ar m i 最大的缺陷。文献 2 4 ,3 2 ,3 7 ,4 4 提到,要让客户和服务对象在分布式环境下进行良好的交互访问通信,最好的途径就是将c o r b a 与j a v ar m i 进行结合。由于c o r b a 的强健性可以提高j a v a 编程语言的性能,利用已有的基于标准的技术,j a v a 开发者可以编写出功能强大的应用程序,c o r b a 和j a v a 相结合,能相互弥补不足,因此正在越来越多的地方被采用。r m i - i i o p 是s u n 公司和i b m 公司合作开发的,它作为标准j a v a 扩展被结合到j 2 s e 和j 2 e e 中。文献 8 指出,r m i - i i o p 的优点在于r m i 使用c o r b a 的i i o p ( i n t e r n e ti n t e r - o r bp r o t o c o l ,对象请求互连协议) 作为分布式对象通信中的标准传输有线协议,使得r m i 应用程序与c o r b a 系统之间的互操作成为可能。而r m i 最初使用的j r m p 是一个非标准的协议,它不允许使用交叉语言编写的c o r b a 对象之间进行通信。虽然r m i - i i o p 仍然依赖某些j r m p ( j a v ar e m o t em e t h o dp r o t o c o l ,远程方法协议) 特性,r m i - i i o p 兼具了r m l 的简单易用和c o r b a 在不同语言间的互操作性。s u n 推出的新版本r m i 同时支持j r m p 和i i o p 。s u n 提供的参考实现可以在w i n d o w s9 x n t 和s o l a r i s 上运行,是一个支持2硕士学位论文第一章绪论j d k l 1 6 和j a v a2 平台的标准扩展。r m i i i o p 最重要的影响是在e j b ( e n t e r p r i s ej a v ab e a n ) 中的应用。r m i - i i o p 使e j b 具有与c o r b a 客户和服务器进行成功交互的能力,从而使e j b可以应用在大型异构企业系统中,而不用对系统结构进行不必要的限制。文献 3 5 ,3 6 ,4 2 ,4 5 提到,目前许多符合j 2 e e 规范的应用服务器( a p l i c a t i o ns e r v e r )产品,如b e a 公司的w e b l o g i c 应用服务器,i b m 公司的w e b s p h e r e 应用服务器,s u n 公司的i p l a n e t 应用服务器,b o r l a n d 公司的a p p s e r v e r 应用服务器等都支持r m i i i o p ,而且将它作为产品的一个重要的特性提供给用户。国内的应用服务器产品主要有金蝶公司的a p u s i c 天燕应用服务器和东方通科技公司的t o n g , w e b 应用服务器,它们的e j b 也支持跚i i i o p 。j a v al a n g u a g et oi d lm a p p i n gs p e c i f i c a t i o n 规范中定义了r m i i i o pa p i 接口,这些接口提供了r m i 远程调用过程中的许多功能,如远程对象的注册,存根类和骨架类的注册和管理,i i o p 数据流的创建和读写操作。存根和骨架中使用了许多r w i - i i o pa p i 接口来完成服务器与客户之间的相互通信过程,例如,使用u t i l w r i t e r e m o t e o b j e c t 方法将远程接口类型的数据写入数据流:使用p o r t a b l e r e m o t e o b j e c t n a r r o w 方法将远程对象转换为存根类型。用户在编写服务器程序和客户程序时,也需要调用r m i - i i o pa p i 接口来实现所需要的操作。目前c o r b a 与j a v a 技术的集成性正成为业界研究的热点,逐渐应用到很多项目和领域中,鉴于此,本课题对c o r b a 和j a v ar w i 技术的集成性进行了深入的研究。首先分别对c o r b a 和j a v ar m i 的技术特征进行了分析,然后在研究r m i i i o p 模型的结构、思想和实现方法的基础上,对其进行改进,提出一种新的扩充模型,加以验证和实现。该扩充模型不但解决了模型中遗留的问题,而且还使得这两种不同的分布式对象的通讯性能也有所提高,在很大程度上解决了这两种技术集成的问题。本设计是应用服务器开发中e j b 模块的一部分,可以将本设计集成到e j b 中,为e j b 提供与c o r b a 的互操作能力。文章最后在基于扩充模型的基础上,进一步提出新的互操作框架,并通过具体的实例来验证框架的可行性,然后与c o r b a ,j r v ar m i 技术相比较,分析各自的利弊。综上所述,本研究具有一定的理论和实用价值。1 2 研究的主要内容论文围绕着r m i - i i o p 模型技术的进行了研究,主要探讨以下几个问题:1 ) 对r m i i i o p 模型结构和实现方法进行了深入的研究分析,结果表明此模硕士学位论文第一章绪论型与j a v ar m i 体系很相似,实际上是继承于p a i l 体系,同时又融合了c o r b a 的一些特点,但仍有一定的缺陷,还存在一些关键问题需要解决,此模型的实现能有效的做到c o r b a 对象和p o l l 对象的互通,因此,对其进行改进,最终提出一种新的跚i - i i o p 扩充模型。该扩充模型不但解决了模型中遗留的问题,而且还使得这两种不同的分布式对象的通讯性能也有所提高,在很大程度上解决了这两种技术集成的问题。2 ) 在p , m i i i o p 改进扩充模型的基础上重新设计了跚i - i i o pa p i 接口。3 ) 在r m i - i i o p 改进模型提供的a p i 接口基础上进一步提出一种互操作框架,针对此框架的两个应用进行详述,并通过应用实例对r m i - i i o p 改进模型提供的a p i 接口进行具体应用。4 ) 对p , m i i i o p 技术的使用进行了前景展望。1 3 研究论文的组织论文共分为五个章节,编写思路及内容如下:第一章:主要介绍研究立项的背景和研究意义。第二章:对r i 蚺i - i i o p 模型结构和实现方法进行了深入的研究分析,在此基础上对其进行改进,最终提出一种新的改进扩充模型,根据此改进模型给出相应的通讯结构和程序结构。第三章:在r m i - ii o p 改进扩充模型的基础上重新设计了p 珈i - ii o pa p i 接口。第四章:在p , m i - i i o p 改进模型提供的a p i 接口基础上进一步提出一种互操作框架,针对此框架的两个应用进行详述,并通过应用实例对蹦i - i i o p 改进模型提供的 p i 接口进行具体应用。第五章:对r m i - i i o p 技术的使用进行了前景展望4硕士学位论文第二章r m i f l o p 模型概述及其改进扩充设计第二章r 一1 10 p 模型概述及其改进扩充设计2 1r hi - i10 p 模型2 1 1 跚i - il o p 基本概念在j a v a 2 0 平台上,j a v a 远程方法调用技术( j a v ar m i ) 融合了通用的i i o p协议组成一种新模型:j a v ar m io v e ri i o p ( 简称r m i - ii o p ) 。r m i - ii o p 是由s u n 公司和i b m 公司共同制定,它能够遵从o h g 组织制定的标准规范,使j a v a平台的应用范围更加广泛。r m i - i i o p 融合了跚i 和c o r b a 各自的优点。与r m i 相似之处在于:r m i i i o p 也使用j a v a 语言开发分布式应用系统,但当使用p 3 i i i i o p 开发这些系统时,开发人员并不需要学习i d l 语言。同时,文献 4 7 ,5 1 ,5 2 讲到,r m i - i i o p 还允许j a v a 对象以序列化并按“值 的形式在系统的组件之间相互传递。与c o r b a 相似之处在于:r m i - i i o p 是建立于一个开放式的标准上,而这个标准则是由o m g 组织的许多软件供应商和用户共同制定。另外,r m i - i i o p 把i i o p协议作为通讯协议,i i o p 协议允许c o r b a 组件和r m i 组件相互访问,为两种技术的集成奠定了基础。2 1 2 跚卜1 1 0 p 模型结构由于r i i i - i i o p 主要是从r m i 系统上发展过来的,所以它基本上继承了r m i系统的样式,下面通过两者的结构的对比来说明r m i - i i o p 模型。其中,r m i 模型如图2 - 1 : 至 臣三习图2 - 1r i l l 模型5硕士学位论文第二章r m i i i o p 模型概述及其改进扩充设计跚i 1 1 0 p 模型如图2 - 2 : 匦 臣亟习图2 - 2 蹦i i l o p 模型从图2 - i 和图2 - 2 相对比可以明显的发现,r m i 和r m i - i i o p 模型结构大致相同,客户端和服务器端的程序配置也相同,唯一的区别在于底层的通讯协议以及中间的命名服务目录表有所不同。原先的j r m p 专用协议更改为通用的i i o p 协议,同时,原来的注册表也改变为独立的命名目录服务器( j n d i ) 。正是由于这两个方面的改变,才使得r m i 程序的通用性提高。图2 2 中的j n d i ( j a v an a m i n ga n dd i r e c t o r yi n t e r f a c e ,j a v a 命名和目录接口) 是r m i - i i o p 体系结构重要模块之一。实际上,j n d i 是一些标准的a p i接口,j a v a 程序用过这些a p i 可以访问命名目录服务,任何分布系统的命名目录都可以通过统一的j n d i 接口来调用。j n d i 主要由两部分组成:客户端a p i 和服务技术接口,客户端a p i 允许j a v a 代码执行目录操作,而服务技术接口是一个命名和目录服务器供应商能够插入插件的接口。它正好和客户a p i 相反,a p i允许用户为一个单一完整的接口代码,而服务技术接口允许命名和目录服务器供应商在系统里安装自己专用协议。图2 3 显示了j n d i 的框架。图2 - 3j n d i 框架6硕士学位论文第二章r m i i i o p 模型概述及其改进扩充设计2 1 3r n i - il o p 实现方式由于p 3 i i - i i o p 是对r m i 模型的改进,因此,在对原先跚i 程序作以下的一些变化就可以实现r m i - ii o p 。1 ) 编译器的变化文献 3 2 ,3 3 ,3 5 提到,对象实现程序经过r m i c 命令编译后生成基于j r m p 协议的s t u b 和s k e l e t o n ,这种方式在r m i - i i o p 上是不允许的,因为r m i - i i o p 使用的是i i o p 协议,所以在命令参数中必须加入一i i o p 参数,这样产生的s t u b和s k e l e t o n 就可以基于ii o p 协议进行通讯。2 ) 命名服务的变化r m i 系统的使用是由在服务器端启动的r m i 注册表提供的,而r m i - i i o p 则通过j n d i 来提供,即把j n d i 的c o s n a m i n g 嵌入命名服务。在代码中必须引入j a v a x n a m i n g ,上下文初始化的格式也作了相应的变化,此外,通过t n a m e s e r v命令来启动j n d i 命名服务。3 ) 接口更改在原来的r m i 系统中,要传输的远程对象都必须继承u n i c a s t r e m o t e o b j e c t接口,文献 2 2 ,3 1 指出,在r m i - i i o p 系统中,远程对象要继承p o r t a b l e r e m o t e o b j e c t 这个j a v a 库所带的类,这是因为所有一的远程对象均要转换为可移植的对象。同时,在获得远程对象引用时,必须通过使用j a v a x r m i p o r t a b l e r e m o t e o b j e c t n a r r o w ( ) 方法来获得。4 ) 垃圾回收处理r m i 系统过于依赖分散单元收集系统或者使用垃圾回收设施,而r m i - i i o p系统则使用p o r t a b l e r e m o t e o b j e c t u n e x p o r t o b j e c t ( ) 数来进行垃圾收集,其性能要高于r m i 系统。5 ) u r l 的设置在启动服务器端和客户端执行程序时,设置u r l 时必须把原先的r m i :更改为i i o p :格式,这是因为底层的通讯协议已经由原来的j r m p 协议更改为i i o p协议。除了上述的一些变化外,r m i i i o p 程序的编写和执行都和r m i 程序很相似,因为r m i i i o p 是在r m i 模型的原基础上对其进行了改进,这对于程序员来说能更容易的理解r m i - i i o p 模型。2 1 4r b i - il o p 存在的缺陷在上文曾经提到,虽然r m i - i i o p 把c o r b a 和r m i 的优点结合在了一起,使r m i 的开发从专用的j a v a 环境扩展到范围更广的分布式应用的发展,但是r m i - i i o p 模型也存在许多缺陷,其中主要体现在以下几点:7硕士学位论文第二章r m i i i o p 模型概述及其改进扩充设计虽然r m i 1 1 0 p 模型把i i o p 做为自身的通信协议,并可以使得r m i 对象与r m i 对象在此协议的基础上实现互操作,但它并未完全实现r m i 对象和c o r b a 对象的互操作。r m i - i i o p 使用i i o p 作为通信协议时,可能存在i i o p 协议版本不一致的情况( 客户端和服务器端使用的i i o p 协议版本不同) ,这样就会造成客户端和服务器端的r m i 对象不能进行相互访问和操作。由于r m i - i i o p 模型只限于r m i 对象和r m i 对象之间的通讯,而r m i 对象是由j a v a 语言生成的,这就必然要求在客户端和服务器端配置j a v a 虚拟机,最终将造成系统运行速度慢,效率低。r m i - i i o p 模型依然继承了r m i 系统的特性,在进行远程访问时必须指明对方的主机名,这就给互连带来了困难。2 1 5 跚卜ii o p 模型小结r m i - i i o p 是对r m i 模型的扩充和发展,简单的说来就是把以前的专用通信协议j l 岍更改为通用的i i o p 协议,在通讯方面和c o r b a 并轨。原先的r m i 程序并不是在r m i c 编译时加入一ii o p 选项生成s t u b 和s k e l e t o n 文件以后就可以在i i o p 协议上进行通讯,而还要把原先的r m i 注册表改为j n d i 命名服务器。而r m i ii o p 最突出的地方就是把r m i 对象使用的通讯协议改为c o r b a 对象通用的i i o p 协议,为r m i 对象和c o r b a 对象的互访建立了基础。2 2 对刚i _ 1 1 0 p 模型进行改进和扩充设计上文对跚i i i o p 模型进行了较详细的分析,虽然它在理论上可以解决c o r b a对象和r m i 对象互操作问题,但距离实际目标的实现还有一很大的差距,因此可以在原来的基础上进一步对r m i - ii o p 进行扩充。r m i - i i o p 模型对r m i 改进了很多,但它还没有完全解决r m i 对象与新系统中的c o r b a 对象互操作通信的问题。因此,可改进并扩充此模型,将原来的r m i对象转换成r m i - i i o p 对象来完成与c o r b a 对象的交互。2 2 1 新p , m l - l1 0 p 改进模型的思想由于r m i - i i o p 模型没有实现老系统中r m i 对象和新系统中c o r b a 对象的互操作,因此有必要对此模型进行改进并扩充新的功能,使得新r m i - i i o p 模型的对象可以和c o r b a 对象进行互操作,并进一步保证两种对象之间的通讯协议都使用通用的国际标准协议:i i o p 协议。另外,r m i 和c o r b a 对象在进行远程方法调用时传递参数的格式和方式不同,因此,新的模型中必须使其传输参数和调用请求都可以使用统一的格式进行编码和解码。在新模型中,采用了j n d i 接口命名目录服务来进行命名服务,脱离以前r m i 注册表,这样就可以使得c o r b a 对象通8硕士学位论文第二章r m i - i i o p 模型概述及其改进扩充设计过j n d i 的命名服务来搜寻请求访问的目标地址。2 2 2 改进跚i - 1 1 0 p 模型的关键技术问题r m i ii o p 的出现奠定了c o r b a 对象和r m i 对象互操作的基础,但是要在实际项目中实现两者对象自由互通,还必须解决以下几个关键的技术:1 ) i i o p 的一致性文献 5 ,6 ,2 6 讲到,c o r b a 2 0 中引入了一个通用的o r b ( o b j e c tr e q u e s tb r o k e r ,对象请求代理) 互操作性结构体系,成为g i o p ( g e n e r a li n t e r - o r bp r o t o c o l ,通用o r b 间协议) 。g i o p 并不是一个可直接用于o r b 之间进行通信的具体协议,而是一个抽象协议,它描述了特定协议如何进行创建以适用于g i o p框架。g i o p 协议基本上满足了不同o r b 域之间相互操作所需的任何功能。g i o p 只是一种抽象协议,在实现时必须映射到具体的传输层协议或者特定的传输机制之上,而i i o p 就是g i o p 在t c p i p 上的具体实现。为了将g i o p 转换成一个具体的协议,i i o p 只需要指定如何编码一个i o r 中的t c p i p 寻址信息。ii o p 协议规定服务器方提供一个地址和端口号并且侦听连接请求。连接建立后,客户方可以向服务器方发送请求信息,服务器方根据客户的请求成生相应的回应消息。一旦发出和收到关闭连接的信息后,客户方和服务器方都要关闭相应的t c p i p 连接。在r m i i i o p 对象和c o r b a 对象之间互操作的问题上,可能存在不同域对象之间的操作,也可以通过i i o p 协议来采取一种映射机制或桥接机制来转换交互中相关信息。但i i o p 协议也存在版本不一致的情况,现在c o r b a 厂家普遍使用c o r b a 2 0 规范所规定的i i o p 版本,把i i o p 版本统一起来,即可以解决不同厂家的c o r b a 产品所自带的o r b 之间的通讯功能。而在r m i - i i o p 体系中所使用的i i o p 版本要高于以上版本,因为它必须增加r m i 对象的识别和格式转换标准。因此,要使得c o r b a 对象和r m i 对象互操作,i i o p 版本保持一致是首要条件。2 )c o r b a 对象和跚i ii o p 对象的读取如果要做到c o r b a 对象和r m i - i i o p 对象互通,必须保证它们能够找到对方的对象,c o r b a 2 0 规范中提出了可互操作的对象引用( 简称i o r ) 技术。i o r 是由带标签的文件组成,这些框架文件定义了在一个具体的传输模式下定位一个对象所需的全部信息,包括对象类型等。每一个框架文件都有一个可标示的标签以区别其它框架文件。c o r b a 对象和r m i - i i o p 对象实现互通时,必须设定这两个对象都能访问的命名服务目录,以及绑定到命名服务上的i o r 可以被对方所识别。c o r b a 对象互相访问时不需要指明对象实现方的主机名或i p 地址,因为在远程对象实现端中,当新建一个对象后,服务器端会把此对象i o r 绑定到命名服务器中,当客户端访9硕士学位论文第二章r l v l l i i o p 模型概述及其改进扩充设计问时无需指明对方主机名,这主要是因为f o r 中包含本对象的位置。而r w i - i i o p模型依然继承了r w i 系统的习惯,在远程访问时必须指明对方主机名或i p 地址,这必然会给网络互联造成负担。因此必须把r w i - i i o p 模型中的j n d i 命名服务中的对象引用格式作一些修改,将其统一为c o r b a 规范中的i o r 格式。3 ) 将“引用 传递改变为“值传递从文献 2 6 ,2 8 ,2 9 知道c o r b a 对象的传递是按照“引用”的方式来访问远程方法,即方法的实现是在服务器端。而r w i 系统从开始就是通过按“值”方式来访问远程方法,这也是j a v a 代码的可转移的特性决定的,p 3 1 i - i i o p 程序是r w i的扩展,因此它同样是按“值 方式传递对象。在基于两种技术的分布式对象的互操作中,我们必须把传递形式统一起来,值传递在性能上明显要优于引用传递并减少网络负担,因此,在互通的c o r b a 系统和r w i - i i o p 系统都应该采用按“值方式进行传递对象。4 )i d l 到j a v a 的映射在任何一个分布式系统中,都必须首先确定远程对象接口文件,由此来明确远程访问对象。从文献 2 7 知道c o r b a 的接口是使用i d l 语言来编写,然后编译成编程语言所需要的形式:而r m i - i i o p 接口是使用j a v a 类文件来编写,因此必须要保证接口的一致性,可以使用i d l j 命令把i d l 格式接口文件转换成j a v a 类文件,或者使用r m i c 命令把j a v a 类文件转化成i d l 文件。5 ) 使用对象适配器对象适配器( 简称p o a ) 提供一种机制使得服务器进程将c o r b a 对象映射为与语言相关的实现,所有与服务器对象的交互都是通过对象适配器发生。对象适配器通过封装在它所接收到的对象请求中的对象标识符标示对象,当对象标识符映射到某个实现程序时,c o r b a 系统将对象看作活动的。通过将对象特性从实现中抽象出来,对象适配器允许服务器在不同的实现之间移植。文献 2 5 ,2 6 ,4 4 指出,b o a 只能做到服务器只可以与单一的实现相联系,它不能做到移植到另一种实现。与b o a 相比,对象适配器具有很大的灵活性,它是c o r b a 规范中新提出的技术,这对于c o r b a 系统本身的通讯也由极大的益处。上述的五个方面详细叙述了新r m i i i o p 改进模型所面临的主要问题并给出了相应的解决方案,为新r w i - i i o p 改进模型的建立奠定了基础。2 2 3r u i - i1 0 p 改进模型的通讯结构在上面的章节中提出了改进r m i - i i o p 模型所遇到的关键技术问题,将这些问题解决后,可以对r m i i i o p 模型进行进一步的改进和扩充,使得c o r b a 对象与r m i 对象可以进行互操作或者进行互相访问。图2 4 显示了对r w i i i o p 模型进行改进扩充后新建模型的通讯结构图,同时也融合c o r b a 系统中不同的o r b 之间的通讯方式。1 0硕士学位论文第二章r m i i i o p 模型概述及其改进扩充设计图2 - 4r m i - i i o p 改进模型从图2 - 4 可以看出:基于r m i - i i o p 改进模型,c o r b a 对象可以通过不同的o r b 域之间通讯进行互操作,r m i i i o p 对象也可以通过o r b 域之间通讯进行合作,同时也可以让j a v ar m i 对象也可以通过不同的o r b 域之间的协议i i o p 与c o r b a系统相连接。此图不但充分显示了r m i - ii o p 对象和c o r b a 对象互操作模型,而且还展示了c o r b a 对象和c o r b a 对象,r m i - i i o p 对象和r m i i i o p 对象之间的互操作关系,这样就真正实现了c o r b a 对象和r m i 对象互操作。根据图2 - 4 的r m i - i i o p 改进模型图可以得到p , m i - i i o p 的组合情况,具体情况可参见表2 1 。表2 - 1 基于l 瑚i - il o p 改进模型的对象组合客户端服务器端l w i i i o p 客户l w i i i o p 客户c o r b a 客户c o r b a 客户r m i i i o p 服务器c o r b a 服务器l 珈i ii o p 服务器c o r b a 服务器参照图2 - 2 ( r m i - i i o p 模型) ,并与图2 - 3 和表2 - 1 相比较,可以很明显的发现,扩充的r m i - i i o p 模型对其模型做了很大的修改,最终可完全实现c o r b a对象和p a i l 对象的互操作。2 2 4r h 卜1 1 0 p 改进模型的程序结构图2 - 4 描述了r m i - i i o p 改进模型的总体架构,下面将给出改进模型的程序结构,它必须保证服务器端和客户端的接口文件是互相转换的,功能是完全一致的:j a v a 接口文件在编译时必须加入一i i o p 参数,生成的s t u b 和s k e l e t o n 文件必须适合i i o p 协议。另外,这个程序结构是在解决了改进r m i i i o p 关键问题的基础上提出来的。具体情况见下图2 - 5硕士学位论文第二章r m i i i o p 模型概述及其改进扩充设计客广墙j a v a )飘势器端r b a )图2 - 5 叫卜il o p 改进模型的程序结构r m i i i o p 改进模型的程序结构与c o r b a 系统,r m i 系统很相似,实现方法和步骤也基本相同,通过该构架最终可以实现c o r b a 对象和r m i 对象的互操作。2 2 5 跚卜il o p 改进模型小结p , m i i i o p 改进模型解决了模型遗留的问题,充分实现c o r b a 对象和r m i 对象互操作。2 3 本章小结本章首先描述了p o a i - i i o p 模型的的结构,实现方式和缺陷特点,然后提出一种新的改进模型,该改进模型是对r m i - i i o p 模型进行进一步的改进和扩充,可以使得c o r b a 对象与r m i 对象进行完全互操作或者互访问。1 2硕士学位论文第三章l m i - i i o p 改进扩充模型a p i 接口的设计与实现第三章r 一1 10 p 改进扩充模型a pi 接口的设计与实现文献 2 7 中的j a v al a n g u a g et oi d lm a p p i n gs p e c i f i c a t i o n 规范中定义了r m i - i i o p a p i 接口,这些接口提供了r m i 远程调用过程中的许多功能,如远程对象的注册,存根类和骨架类的注册和管理,i i o p 数据流的创建和读写操作。存根和骨架中使用了许多r m i - i i o pa p i 接口来完成服务器与客户之间的相互通信过程,例如,使用u t i l w r i t e r e m o t e o b j e c t 方法将远程接口类型的数据写入数据流:使用p o r t a b l e r e m o t e o b j e c t n a r r o w 方法将远程对象转换为存根类型。用户在编写服务器程序和客户程序时,也需要调用r m i - i i o pa p i 接口来实现所需要的操作。s u n 在最初设计r m i 时并没有考虑用i i o p 协议,后来与i b m 公司合作开发了r m i i i o p ,并将r m i i i o p 作为j 2 e e 规范的一部分。文献 3 3 ,3 5 ,3 6 ,3 7 讲到j d k l 3 1 中定义了p , m i - i i o pa p i 相关的类和接口。在j d k l 4 0b e t a 版中,修改和增加了一些r m i - i i o p 相关接口,使得r m i - i i o p 功能更加完善。本设计参考j d k l 4 0b e t a 中的接口来实现。j a v a 在类的实现上有一种代理机制( d e l e g a t em e c h a n i s m ) ,这种机制允许通过设置系统属性或者使用o r b p r o p e r t i e s 文件来替换某些标准a p i 实现。这些标准a p i 类中的方法调用代理接口相对应的方法,代理接口可以有多个不同的实现类,系统运行时使用哪个实现类可以通过设置系统属性或者o r b 。p r

温馨提示

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

评论

0/150

提交评论