




已阅读5页,还剩59页未读, 继续免费阅读
(计算机应用技术专业论文)corba和web集成方案的研究与实现cssp.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京航空航天大学硕士学位论文 摘要 ,、 w w w 技术和以c o r b a 为代表的分布式对象技术是当今两大研究和发展的热点。 c o r b a 提供了在异构平台上构造对程序开发人员透明的分布式环境,而w w w 为用户提 供了友好、方便的使用界面。c o r b a 和w e b 的集成,能够产生可移植性、可扩充性都 优于传统的c s 、b s 模式的应用平台。i 本文在划现有的c o r b a 与w e b 集成方案研究的基础上采用c o r b a s c r i p t 技术和 微软的l s a p l 接口,提出并实现了一种新的c o r b a 和w e b 的集成方案c s s p 技术 ( c o r b a s c r i p ts e r v e rp a g e ) ,使得仅仅通过在w e b 页面中嵌入在服务器方执行的 c o r b a s c r i p t 脚本就可以完成对c o r b a 对象的访问和对c o r b a 对象方法的调用,而对 客户端没有任何附加的要求。本文在i i s5 服务器上为c s s p 丌发了相应的脚本引擎, 并实现了c o r b a s c r i p t 解释器供c s s p 脚本引擎调用。c s s p 技术和已有的各种c o r b a 和w e b 集成方案相比,一方面简化了两者之间集成的难度,另一方面也简化了基于 w e b 的c o r b a 应用程序的丌发。 关键宁:c o r b a ,c o r b a s c r i p t ,w e b ,i s k p ,脚本引擎,集成 、j , l 。 、 c o r b a 干| iw e b 集成方案的研究与实现一c s s p - _ - - 一 a b s t r a c t w w wa n dc o r b aa r et h et w oh o t s p o t sw h i c hi n t e r e s tp e o p l et od e v e l o pa n d r e s e a r c h c o r b ap r o v i d e sa ne n v i r o t m e n tf o r b u i l d i n gc l i e n t sa n ds e r v e r s w h i c h a r e t r a n s p a r e n t t o p r o g r a m m e r sw h il ew w wp r e s e n t sp e o p l ew i t hc r i e n d l ya n d c o n v e n j e n tu s e ri n t e r f a c e h i t ht h ei n t e g r a t i o no ft h e m it c a np r o v i d ean e w a p p l i e a t i o np a t f o r m w i t hm o r e p o r t a b i l i t y a n d f l e x i b i l i t y t h a nt h e t r a d it i o n a lc li e n t s e r v e ra n db r o w s e r s e r v e rm o d e s t hjst h e s i sp u tt h ee m p h a s i so nt h e n t e g r a t i o nt e c h n o o g ya n dp r e s e n t s as o t u t i o n 七s s p ,w h i c hm e a n sc o r b a s c r i p ts e r v e rp a g e i fp r o g r s r 帅e r sw a n tt o i n v o k et h ec o r b ao b j e c t s ,t h e yo n l yn e e dt ow r i t ec o r b a s c r i p ti nt h ew e bp a g e b e t w e e nt h em a r k s a n d t h ec o r b a s c r i p ti sas e r v e r s i d es c r i p tw h i c h i s i n t e r p r e t e db y t h ec s s p s c r i p te n g i n ew h i c hi si m p l e m e n t e dw it ht h e t e c h n o l o g yi s a p ia n dl o a d e db yt h ei i s5 t h e r ei sr i oa d d it i o n a lr e q u i r m e n t t ot h ec l i e n ta n da n yw w wb r o w s e ri sa l ir i g h t i nt h i st h e s isw ep r o v i d eo u r d e s i g na b o u tt h ec s s ps c r i p te n g i n ea n dt h ec o r b a s e r i p ti n t e r p r e t e r b yt h e c o n sl r a s tw it ho t h e rj i l t e g r a t i o am e t h o d s c s s pw i l lb eam o r ep o w e r f u lp l a t f o r m f o rd e v e i o p i n gw e b b a s e dc o r b aa p p l i c a t i o n k e yw o r d s :c o r b a ,c o r b a s c r i p t ,w e b ,i s a p i ,s c r i p te n g i n e ,i n t e g r a t i o n 南j i 航空航天人学硕士学位论文 1 1 研究背景 第一章绪论 髓着软件技术的不断发展,分布计算技术已经越来越成为研究和发展的方向。分 布汁算的主流技术之一便是分布对象技术。分布对象技术是面向对象技术在网络上的 拓展,它提供了客户应用程序能够透明地向服务对象发送和接受请求的机制。 目前在分布对象技术中两个主流的分布对象体系结构分别是o m g ( o b j e c t m a n a g e m e n tg r o u p ) 组织推出的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 r ) 和m i c r o s o f t 公司扣;出的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 ) 。由于c o r b a 的平台无关性和可扩展性,因此它成为分布式应用开发者的主流 选择。但是,c o r b a 技术是应用于局域网的分布对象技术在目前的c o r b a 规范中, 并没有考虑如何将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 系统,这对于c o r b a 系统的推广应用等具有很大的限制| 生。 分布技术的另一项主流技术就是i n t e r n e t 技术。i n t e r n e t 以它特有的丌放、自 治、统一及界面友好等魅力,遍布于世界的每个角落。全球互连网( w o r l d w i d ew e b , 简称w w w 或w e b ) 技术是目前i n t e r n e t 上最成熟的技术之一。自1 9 9 0 年w e b 技术诞生 以来,这项技术就由于其友好的用户界面而得到了迅猛的发展。与其他超媒体系统致 力于研究浏览( b r o w s i n g ) 写作( a u t h o r i n g ) 界面和数据存储结构不同,w e b 技术的主 要目标是将遍布于i n t e r n e t 网络中的各种异构数据格式集成在一起,形成一个全球 性的信息共享环境。 但是,在传统的w e b 体系结构( 见图1 1 ) 中,用户虽然可以通过c g l ( c o m m o n g a t e w a vi n t e r f a c e ) 或j d b c 等多种手段与w e b 服务器,甚至后端数据库直接通信, 极大地增强了客户方的可操作性。但是这种体系结构仍然存在很多问题主要表现 图1 1 传统的w w w 体系结构 i 避 c o r b a 和w e b 集成方案的研究与实现一c s s p 在以下几个方面”“: h t t p 的事务处理能力 山r 协议的本质是实现客户到服务器之间的静态的文件的访问,它是一种无状态 的协议无论w e b 客户方和服务器方都不保留当前连接中对方的状态和信息,因而 i - t t p c g i 无法处理客户和服务器之间的事务和会话过程。 例如,通过c g l 对后台数据库服务器进行访问,即使是同一个用户提交的查询, 数据库服务器也必须对每个查询执行同样的登录和注销过程,造成效率低下无法满 足在交瓦方式下连续的事务处理的要求。 c g i 的性能瓶颈问题 f t r r p 协议的无状态问题是造成c g i 性能瓶颈的主要根源。由于i t t t p 服务器对于 每一个从客户发出的基于h t t p 的c g i 请求,都要激活一个新的c g i 进程来处理,该 进程处理完毕后主动退出,而不管这个请求与前面的或后继的请求有无关联。因此, 当客户请求较多时,w e b 服务器的系统负载大大增加,造成性能下降。 两层体系结构的灵活性问题 现在所使用的体系结构是基于l i t t p 协议的两层客户服务器的结构。在这种结构 下应用逻辑和应用服务器以及数据库捆绑在一起,大大降低了系统的灵活性,不便于 进行动态的业务修改。 安全性问题 随着w e b 应用的不断扩展,安全问题愈来愈受到人们的重视。但是目前的结构都 存在着不同的程度的安全问题。 虽然人们针对当前的w w w 体系结构所存在的种种问题进行了改进,引入了如微软 的i s a p i 、n e t s c a p e 的n s a p i 或s u n 的s e r v l e t 以解决h t t p c g 的一部分性能问题, 但都没有从根本上解决问题。 随着分布对象技术的出现,面向对象的思想也被引入到了w e b 技术中。那么,能 否把目前最有魅力的两项技术c 0 r b a 与w e b 结合起来以弥补各自的不足呢? 回答是 肯定的,目i ; 已成为软件丌发和研究的一个热点。分布对象技术和w e b 技术之间并不 存在着内在的必然联系,但是,这两者的结合,却产生了诱人的技术魅力。 1 2c o r b a 与w e b 的结合 分佰对象技术与w e b 之间的结合使得w e b 的应用发展到了一个新的阶段:动态应 用发加阶段。分椎对象技术成为这一阶段w e b 应用开发的基石。浏览器和服务器不仅 将超媒体信息提供给用户,更重要的是,能够使用户通过w e b 浏览器这一通用终端, 自出地访问分布在网络上的由对象组成的各种应用,从而真正实现网络计算的愿望。 ;:禹ii 黼。: 南京航空航天大学硕士学位论文 这种新的w e b 体系结构被称为w e b 对象计算,相对于原有的两层客户服务器结 构,它一般分为三层,如图1 2 所示: 客户层应用层资源层 图1 2w e b 对象计算的三层体系结构 这种三层的体系结构,出于以分布对象技术为基础架构,增加了应用层,将客户 与资源分隔开,降低了w e b 服务器的负载,避免了w e b 服务器的性能缺陷对整体性能 的影响。 在目前主要的w e b 对象计算体系的解决方案中,主要有微软的a c t i v e x 方案、j a v a r m i 方案和c o r b a 方案。其中,c o r b a 方案被认为是一种较好的模式,这自然有它的 独到之处。这种c o r j a w e b 体系的特点和优势表现在“”: c o r b a 技术是一个完整的、开放的、稳定的分布对象计算体系: c o r b a 的“即插即用”的“软件总线”特性,为w w w 创建了一个面向对象的 软构件环境,使得在刀发新的w e b 应用时非常便利: c o r b a 作为一种通用的分布系统开发平台,为应用程序丌发者屏蔽了数据编 码、网络传输、对象定位等许多网络编程细节; c o r b a 本身规定了一整套的对象服务,如名字服务、安全服务、消息服务等, 这些服务可以被c o r b a w e b 环境中的各种应用所使用,从而达到增强其功能和性 能的目的。 c o r b a 和w e b 的结合,大大方便了m 应用程序的开发、发稚和维护,有助于在 w w w 上建立分布对象环境,推动w w w 进入动态的应用发布阶段,从而极大地提高了w w w 的分布计算能力。与此同时,远程客户可以通过浏览器方便地浏览分布式计算系统中 的c o r b a 对象,使用c o r b a 对象提供的服务。 c f 删j 剃w e b 集成方案的研究与实现c s s p 1 。3c o i t b a 与w e b 集成中存在的问题 在c o r b a 和w e b 集成中主要存在三方面的问题“”: c o r b a 通讯丌销。为了增强平台的可扩充性和可移植性,c o r b a 本身有着很大 的额外丌支:g i o p ( c , e n e r a ti n t e r o r bt r a n s p o r tp r o t o c 0 1 ) 协议的效率问题;数据 拷贝和数掘检查,表示层数据的转换;c o r b a 远程功能调用的多路分配都影响到c o r b a 的效率。 w e b 方面的问题。w e b 本身支持的资源形式包括文本、g f 文件、p s 文件以及 音频文件等,但要求这些资源是被动的、只读的和静态的。这些资源通过u r l 的形式 被定位和访问。在c o r b a 和w e b 集成中,一个很大的问题是现在的超文本实现方法中 因为缺乏引用完整性( r e f e r e n t i a li n t e g r i t y ) 而导致的文档f 司被破坏的链接。另一 个问题就是w e b 本身在访问非标准资源和服务的能力上的匮乏。 关于传输协议。将分布式对象同w e b 进行集成另一个需要考虑的问题是超文 本传输融议的使用。h t t p 是一个简单的请求、应答方式的协议,它本身并不是为了 大量数据传输而设计的。这个协议为每一个对象的请求和应答建立了一个连接 ( c o n n e c t i o n ) 这样必然会造成效率上的影响和通信上的延迟。 1 4 现有的c o r b a 和w e b 的集成方案 1 4 1 基于j a v a 的c o r b a 和w e b 的应用集成m 钉 当客户向服务器发出请求时,首先从h t t p 服务器上下载相关的j a v aa p p 】e t s 和 c o r b a 类库然后由包含i d l 生成的库户存根的j a v aa p p l e t s 通过i i o p 协议调用o r b 服务器j 二的对象。其实现框架如图1 3 所示 该方案的优势在于: 服务器端应用配胃灵活,应用集成无需配置到w e b 服务器所在的节点上,因 而不会增加服务器的丌销; 由于a p p l e t s 与服务方的c o r b a 对象间使用 i o p 西议交互,因此可以利用 o r b 的并发和多线程机制对多个并发请求进行响应,提高服务器的处理能力: 可以充分发挥j a v a 语言和c o r b a 的特点 浚方案的不足在于: 浏览器需要支持j a v a ,限制了客户可虬使用的浏览器类型; j a v aa p p l e t s 及其所需的c o r b a 类库需要在运行时动态下载,使客户端的韧 始化时问较长,对网络带宽需求很高: 丌发复杂,该方式相当于将c o r b a 客户方应用程序写成j a v aa p p l e t ,实现 4 了虿磊f 一一 南京航空航天r 人学硕:卜学位论史 起来很复杂,而且难以修改,这样就破坏了w e b 简单的优势: j a v a 本身的速度限制以及对用户接口的限制,使其交互能力受到一定的限 制: 虽然可以在客户端预装c o r b a 类库,或者使用那些自身带有c o r b a 类库的可 以直接支持c o r b a 的浏览器( 如:n e t s c a p e 4 5 ) ,但客户端缺乏应用上的灵活性, 并且其实现依赖于特定的浏览器,限制了客户端可使用的浏览器类型,因此大 大限制了c o r b a 系统的应用范围。 i 4 2 基于c g i 方式的w e b 应用集成“2 最传统的c o r b a 、w e b 互操作方法就是通过c g i 网关的方法,将w e bs e r v e r 端运 行的c g i 程序作为c o r b a 调用的c l i e n t ,调用c o r b as e r v e r 的对象。其实现框架如图 1 4 所示。 任何c o r b a 对象 图1 _ 4 基于c g i 的c o r b a 与w e b 集成方案 ;il 鹾;礼: c o i 2 b a = f | lw e b 集成方案的研究与实现一c s 即 在此方案中,c o r b a 系统仅被看成i n t e r n e t 上的普通应用系统。c o r b a 系统对分 布对象计算技术的支持得不到充分发挥,因此限制了客户可见的c o r b a 系统的性能: 而且,浚方法还具有c g i 固有的缺陷:创建进程开销大,服务器的性能低,因此不适 合大型服务器的应用。 i 4 3c o r b a w e b 法国的g o o d e 项目纽提出了c o r b a w e b 的方法其主要思想足将c o r b a 对象复杂 的调用方法简化为s c r i p t 语言,通过解释器将s c r i p t 语言转化为真正具有c o r b a 访 问能力的代码,c o r b a w e b 其实就是c o r b as c r i p t 在w e b 上的实现,将c o r b a s c r i p t 的解释器用c g i 程序实现。c o r b a w e b 的框架结构如图1 5 所示,出以下儿个部分组成: 图1 5c o r b a w e b 结构图 任何w w w 浏览器都可以作为图形化的用户界面来浏览和激活c o r b a 对象,用 户可以通过h t m l 链接或者是h t m l 表单来激活c o r b a 对象所提供的操作; c o r b a w e b 环境负责解释用户的请求。c o r b a w e b 由许多c g i 脚本构成- 这些脚 本用c o r b a s c r i p t 实现,由它们来激活c o r b a 对象并形成包含用户请求结果的 i i t m l 页面; i j i t y 脚本语言c o r b a s c r i p t 。c o r b a s c r i p t 使用动态激活机制来激活对象 南京航空航天大学硕士学位论文 c o r l m s c r i p t 解释器将c g i 参数转化为c o r b a s c r i p t 变量: 接口库( i n t e r f a c er e p o s i t o r y ) 包含用i d l 描述的对象信息图在运行时用 来肘参数的类型进行动态检验; c o r b a w e b 接口库中保存c o r b a w e b 的环境信息如存取控制信息等。这些信 息由称为m e t as c r i p t s 的专门的脚本来处理。 孩方案的优点是: 对传统的w e b 接口未做任何改动,使用c g i 方式来扩展w e b 服务器的功能: 引入了脚本语言c o r b a s c r i p t ,简化了c o f f b a 的应用开发i 提供了基于浏览器的管理界面,能对分布的c o r b a 应用服务对象进行基于w e b 的管理,包括对象的导航、浏览、动态的卸载和装载等; 采用动态激活对象的机制,无需关心参数的类型,使用简洁。 但是,由于该方案是采用c g i 技术,所以,c g i 本身所无法克服的缺点也同样无 法解决,因此,不适合大型服务器的应用;另外动态调用接口( d ) 虽然比i d l 桩要 灵活,但是它比使用i d l 桩的代价要大,而且比较复杂。关于d 1 1 我们会在第二章作 更具体的介绍。 1 4 4 基于服务方脚本的c o r b a 和w e b 集成方案。州 国防科学技术大学提出了一种基于服务方脚本的集成方案,其基本思想是在 c o r b a w e b 的基础上用i s a p i 来代替c g i ,由于i s a p i 是一种动态链接库( d l l ) ,从而 改进了出于c g i 本身的缺陷而导致的性能低下的问题。这是个不错的方案,它提供了 一种高效、简单的c o r b a 和w e b 的集成方案。唯一的不足是i s a p i 是微软的i i sw e b 服务器所特有的,移植性不是太好。 但是,据了解,国防科大只是提出了这么一种想法,但并没有真f 的实现,他们 最终只是将从客户浏览器对c o r b a 对象的调用转化成对i s a p i 扩展应用程序的调用, 也就是浇他们的最终实现类似于基于c g i 的c o r b a 和w e b 的集成方案,所不同的是 c o r b a 应用的客户端程序采用c + + 实现,井做为i s a p i 扩展在w e b 服务器端执行然 后把执行结果以h t m l 格式返回给客户端。 这种实现方法晟大的缺点就是修改困难。因为i s a p i 扩展是已经编译好的动态链 接库,一旦c o r b a 对象的接口发生变化,就需要重新编译i s a p i 扩展;而且针对不同 的页面需要编写专门的i s a p i 应用程序,通用性差,增加了程序员的负担。 1 5 主要的研究工作 南京航空航天大学软件工程丌发中心一直致力于在软件重用、构件技术和分布式 c ( j j b 雨jw e b 集成方案的研究与实现c s s p 计算方面的研究,围绕c o r b a 技术已经进行了多年的研究,在软件体系结构、组件模 型、安全和c o r b a 与w e b 的集成方面都有涉及,并且取得了一定的研究成果。 本文研究的是c o r b a 和w e b 的集成技术。我们研究了c o r b a 和w e b 技术的本质特 点,分析了现有的各种c o r b a 和w e b 应用集成方案,并且在c o r b a w e b 和基于服务方 脚本的这两个集成方案的基础上进行改进,提出了一个称之为c s s p ( c o r b a s c r i p t s e r v e rp a g e ) 的集成方案,描述了系统集成的体系结构,详细给出了浚方案的实现设 计,并在此基础上实现了c s s p 的脚本引擎和脚本解释器。最后根据该方案给出了一 个开发实例,为如何在该集成方案的平台上开发应用提供了指导。 论文体现的新颖之处在于: 1 结合w e b 与c o r b a 技术,提出了c s s p 的集成方案。 2 给出了c s s p 的详细描述和实现发计。 3 在c s s p 脚本引擎r ”提出了r e q u e s t 和r e p l y 系统对象的概念,进一步简化了 基于w e b 的c o r b a 应用的开发。 4 给出了基于c s s p 技术的w e b 应用开发方法。 论文研究工作在概念、模型和方法上都具有一定的深度,体现了一些新思想。 1 6 论文的结构 本论文共分为七章,内容的组织如下: 第二章c o r b a 简介,介绍了c o r b a 体系结构,并重点介绍了本文实现的c s s p 方 案中所涉及的c o r b a 对象请求中的动态调用机制、接口库和名字服务。 第三章c o r b a s c r i p t 技术,介绍了一种开发c o r b a 应用的新型语言c o r b a s c r i p t 并与传统的c o r b a 编程迸 亍了比较,阐述了c o r b a s c r i p t 的特点。c o r b a3 o 版本已 经将c o r b a s c r i p t 语言作为其规范的一部分。 第四章】n t e r n e t 服务端应用程序编程接口,详细地介绍了扩展w e b 服务器功能 的i s a p i 技术,通过和传统的c g i 技术的比较,说明了本文选用它作为开发技术的原 因。 第五章c s s p 集成方案,在对前4 章的相关的技术做了仔细研究和分析后,详细 介绍了本文的c s s p 集成方案及其关键组成部分c s s p 脚本引擎和c o r b a s c r i p t 脚本解 释器的实现设计,并给出了基于c s s p 技术开发w e b 应用的步骤。 第六章应用实例,简单介绍了基于c s s p 技术的一个开发实例。通过这个实例 一方面检验了c s s p 方案的可行性,另一方面通过它也可以了解到基于c s s p 集成方案 进行w e b 上c o r b a 编程的简单性和灵活性。 第七章结论,对全文的工作进行总结,并给出了进一步研究的方向。 南京航空航天大学硕士学位论文 第二章c o r b a 简介 分布对象技术已经发展成为当今分布异构环境下建立应用系统集成框架和标准 构件的核心技术。其中,最突出的技术之一就是c 0 r b a 技术。由于c o r i = j a 技术在丌放 性、先进性、完整性、连续性和成熟程度方面的突出表现,该技术已经成为建立应用 框架和软构件的技术标准,在开发大型分布式应用系统中表现出强大的生命力。 2 1c o r b a 模型 c o j ;$ a 舰范是在分布、异构环境中用对象技术解决客户服务器问题的标准。它 成功地总结了对象技术的最新应用经验,改进并发展了传统的c i i e n t s e v e r 模型, 遵循此标准编制的软件产品可以方便地解决许多复杂条件下的互操作问题,如多厂家 环境,多语言实现,异构硬件平台,异构操作系统和异构网络等。 c o r b a 规范是由o f f c , ( o b j e c tm a n a g e m e n tg r o u p ) 组织制定的标准。o m g 组织是一 个国际一胜1 j 9 t b 盈利组织,成立于1 9 8 9 年,最初由d e c 、l t p 、i b m 、佳能、p h i l i p s 等 公司发起的,至今已有9 0 0 多个会员,包括了几乎所有著名的计算机公司。o m g 致力 于面向对象软件开发的实践与理论,制定工业指南和对象管理规范,加快对象技术的 发展;其目标就是为应用丌发提供一个公共框架,使得基于对象的软件在分布异构环 境下具有良好的可重用性、可移植性和互操作性,从而能够在由多种主流硬件平台上 运行多种操作系统构成的异构分布环境中,方便地建立异构分如应用系统。为了实现 上述目标,o m g 组织成立后不久就制定了0 m a ( o b j e c tm a n a g e m e n ta r c h i t e c t u r e 对 象管理体系结构) 参考模型。针对o m a 中的核心部分o r b ,o m g 组织制订了c o r b a 规范, 并于1 9 9 1 年颁布了c o r b a 规范1 1 版本,又于1 9 9 5 年颁布了2 0 版本。 在不久前颁布的c 0 r b a3 0 技术规范中采用支持e j b ( e n t e r p r i s ej a v a b e a n s ) 规范的对象封装规范,使u b 成为c o r b a 的组件方案。c o r b a 3 0 对象能动态地加载 各种组件以及传输、事务和邮件交换协议。这就意味着,如果与c o r b a 3 0 规范相兼 容的服务器遇到e j b ,就能在运行时加载j a v a 虚拟机并运行这些对象。在与j a v e 和 i n t e r n e t 的集成方面,c o r b a 3 0 提供了j a v a - r d l 之间的映射,从而允许j a v ar m i 对象能象c o r b a 对象一样在网络上互操作,还可以通过可互操作的名字服务 ( i n t e r o p e r a b en a m es e r v ic e ) 来获得u r l 格式的对象引用,从而获得对象服务, c o r b a 3 0 规范还包括一些新特性:将应用程序工具和环境用于c o r b a 组件的设计; 支持c o r b a 剐象在异步实时信息队列中进行传输;采用服务质量( q o s ) 技术规范: 增加新的规范,以实现与传统环境的结合等。在c o r b a 3 0 中还提出了脚本语言 ( s c r f p t i n gl a n g u a g e ) ,用来简化对c o r b a 的编程。在后续的章节中,我们会比较具 t 。l 链 9 ( x ) r i s a 年w e b 集成方案f ( , j t o f 究j j 实一c s s p 体的介绍其中一些和术谍题研究相关的技术。 c o r b a 全称为通用对象请求代理体系结构( c o n n o no b j e c tr e q u e s tb r o k e r a r c h it e c t u r e ) 这是一个通过对象请求代理( o r b ) 定位和激活其他对象的规范。它的 基本思想如下“”: 对象是一个可识别的、被封装的应用实体,提供一个或多个能够被客户请求 的服务: 客户通过发送请求的方式请求服务。那些封装后实现的对象都是服务器能够 动态加载的实体,即对象实现: 与请求相关联的信息包括目标对象的信息( 对象引用) 、操作名字、操作需要 的实际参数和可选的请求上下文。请求可以由特定的语言联编( b i n g ) 所定义,也可以 由动态请求机制来产生。一个请求将完成一个客户需求的服务,如果有一个非】下常的 情况发牛请求将返回一个异常情况。客户所发出的请求经过对象请求代理( o r b ) 传 递给相应的对象实现: 客户可能发出的操作请求由对象实现的接口定义。接口吐 o m g 的接口描述语 言( i d l :i n t e r f a c ed e f i nj t i o nl a n g u a g e ) 描述。i d l 允许说明模块、接口、异常、常 量和类型定义等。模块规定了变量作用域。接口除了定义类型、常量和异常外,还包 含属r e f :及操作的说明,同时,接口可以通过单重或多重的方式继承。在实际使用中, 类型信息可以通过i d l 接rj 获得也可以通过桩或接【丁库来获得; o r b 通过一个或多个对象适配器( o b j e c ta d a p t e r 简称0 a ) 向客户提供服务。 每个对象适配器将提供列象引用生成与解释的方法,对象实现的激活与终止手段、对 象实现的往册等信息。不同的对象适配器适用于不同的实现组,如数据库适配器,高 安全制:适配器等。 单个o r b 的体系结构如图2 1 所示: 在浚体系结构中主要有6 个部分组成: o r b 内核 接口定义语言i d l i d l 桩和1 d l 构架程序 动态调用接口( d i i ) 和动态构架接口( d s i ) 对象适配器( 0 a ) 接口库( i f r ) 和实现库( i r ) ( 1 ) o r b 内核 在0 m g 对象模型中,由对象提供服务,而客户根据自己的需要向o r b 发送请求, 由服务剥象根据客户的请求执行相应的服务。o r b 的作用就是将客户请求传递到服 务对象并且将相应的执行结果返回给客户。这个过程对客户是完全透明的:客户无需 知道对象驻留在网络上的何处;对象之间是如何通讯的:对象是如何实现、如何存储、 南京航空航天夫学硕士学位论文 如何执行的。 接l i 库 ( j f k ) 客户对象实现 翮( d i d 网同倒倒陌 o r b 核 :薹蔷要磊薯! 黑量詈艘接口 口旧肭。 皿田删口伸有多个对象适配 | ; uj :调,h 瑶1 0 z 乙艺田对每个对象类型有桩和一个构架常规调用接u 二= = 依存于o r b 接口 u 实现库 ( i r ) ( 2 ) 接口定义语言i d i 。( 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 ) i 叽语言通过蜕明对象的接口来定义对象。一个接口包括一组命名的操作和相应 于这些操作的参数。特定的对象实现通过1 d l 语言告诉客户哪些操作是可用的,并且 应该如何激活这些操作。i d l 语言只是一种描述性的语言,客户要能真正使用i d l 源 文件中所定义的对象必须把这些对象映射到指定的程序设计语言实现的对象。 ( 3 ) i d l 桩和i d l 构架程序 i d l 编译器编译描述服务对象接口的i d l 文件,生成对应于具体编程语言的i d l 桩和i d l 构架程序。i d l 桩负责把用户的请求进行编码,发送到对象实现端,并对接 收到的处理结果进行解释,把结果或异常信息返回给用户;i d l 构架对用户请求进行 解码,定位所请求的对象的方法,执行该方法,并把执行结果或异常信息编码后发送 回客户。i d l 桩和i d l 构架程序提供了静态调用方式和静态实现方式。 ( 4 ) 动态调用接口( d ii ) 和动态构架接口( o s i ) 动态调用接口( d i i ) 和动态构架接口( d s i ) 提供了动态调用和动态实现方式。通过 查询相应的服务对象的接口描述信息,使用d 1 1 动态调用o r b 核心接口的方法来构造 客户请求并发送到对象实现。在对象实现方可以使用d s i 动态分发用户请求的机制, 以便动态地处理客户方的请求。 ( 5 ) 对象适配器( o a :o b j e c ta d a p t e r s ) 列象适配器o a 位于服务对象实现和o r b 之间。每一类对象实现可以有一个相对 应的对象适配器,它减轻了o r b 核心的负担,使o r b 内核尽量精简。 对象适配器所提供的服务一般包括: 产生和解释列象引用; g o r b a 干w e b 集成方案的研究与实现一c s s p 列请求进行认证,满足保密性的要求; 激活和去活对象和实现: 构架调用方法: 实现对象引用到对象实现的映射; 对象实现的登记; 根据c o r b a 规范,o a 在激活对象实现应用程序日寸,支持四种激活方式: 共享服务器方式 非共享服务器方式 每方法一服务器方式 永久服务器方式 ( 6 ) 接口库( i f r ) 和实现库( i r ) 接口库i f r ( i n t e r f a c er e p o s i t o r y ) 和实现库i r ( i n t e r f a c ei m p l e m e n t i o n ) 是o r b 系统的辅助部件,是协助o r b 系统接收处理请求和响应的。接口库用于接口定义的永 久存储,提供对象继承关系的测览和对象所支持操作的描述。一般用于以下几个目的: 可以通过浏览接口库信息以帮助应用开发者定位和重用软构件; o r b s 可用i f r 在运行时检查操作的参数信息: 在运行时用d i i 动态构造请求时,i f r 为分布系统提供必要的结构和类型信 息。 实现库( i r ) 的作用是存储供o r b 系统定位和激活对象实现所需要的信息保存有 关o r b 对象实现的附加信息,如调试信息、管理控制、资源分配、安全信息等。由于 实现库中许多信息是与特定的o r b 系统、操作系统和编程语言相关的,所以c o r b a 规 范中并没有对它加以详细的定义。 在c o r b a 体系结构中,除了上述介绍的概念外,o m g 组织还制订了 “c o r b a s e r v i c e s :c o m m o no b j e c ts e r v i c e ss p e c i f i c a t i o n ”规范简称为c o s s ,用 来作为o r b 核心的补充,从而使o r b 系统的功能更加完善和全面。目前的c o s s 规范 主要包括以下部分:名字服务( n a m i n gs e r v i c e ) 、事件服务( e v e n ts e r v i c e ) 、生命 周期服务( l if ec y c l es e r v i c e ) 、永久对象服务( p e r s i s t e n to b j e c ts e r v i c e ) 、事 务服务( t r a n s a c t i o ns e r v i c e ) 、并行控制服务( c o n c u r r e n c yc o n t r o ls e r v i c e ) 、关 系服务( r e l a t i o n s h i ps e r v i c e ) 、外部化服务( e x t e r n a l i z a t i o ns e r v i c e ) 、查询服 务( q u e r ys e r v i c e ) 、许可证服务( l i c e n s i n gs e r v i c e ) 、特性服务( p r o p e r t ys e r v i c e ) 、 时间服务( t i m es e r v i c e ) 、安全服务( s e c u r i t ys e r v i c e ) 等。c o s s 规范几乎包含了分 布系统和面向对象系统的各个方面,它所定义的每个对象服务都相当复杂和全面, 南京航空航天大学硕十学位论文 2 2 c o r b a 工作原理 当一个客户要使用某个对象实现所提供的服务时,步骤大致如下: ( 1 ) 客户通过某种方式找到特定对象实现的对象引用。这些查询方式包括:使用 o r b 接丌中提供的操作r e s o l v e i n i t i m r e f e r e n c e s :使用c o r b a 对象服务中的名字 服务( n a m i n gs e r v i c e ) :通过其它接口的输出参数或者返回值;通过o r b 实现系统 自身提供的特定的对象引用获取方法。 ( 2 ) 客户向对象实现发出请求。如果对象实现有相应的i d l 桩,客户可以通过i d l 桩发出请求( 静态调用) ,否则在接口库的协助下使用d i i ( 动态调用) 发出请求。 ( 3 ) 请求传递到对象适配器。当对象调用请求到达o r b 核心后,出o r b 核心负责 将请求传送给相应的对象适配器,具体方式由o r b 的具体实现决定。 ( 4 ) 对象适配器调用刘象实现的操作。如有i d l 构架的存在,对象适配器通过构 架执行对象实现中的操作,否则通过d s i ( 动态构架接口) 中的d i r ( d y n a m i c i n v o c a t i o nr o u t i l i e ,动态调用例程) 调用。 ( 5 ) 结果返回给客户。对象实现的特定操作方法执行完后,结果( 包括输出参数、 输入输出参数、返回值以及异常信息等) 将按照对象请求传递和执行路径逆向返回给 客户对象。 一个完整的对象请求调用就是按以上步骤完成的。在多个异构o r b 系统中,具体 的步骤可能有略微的差别这主要是因为在不同的o r b 系统中对象引用的获取方式可 能有些不同,而且不同的o r b 系统之间需要借助于g i o p i i i o p 协议进行交互,但是在 各个o r b 系统内部的列象请求处理过程是和上面一样的。 2 3 动态激活机制 2 3 1 动态激活接口( d i i ) 在有些应用中,开发人员并不能够在应用系统编制过程中得到目标对象接口的 i d l 拙述。例如,考虑一个网关( g a t e w a y ) ,它允许其他对象系统如m i c r o s o f t 的 c o m ( c o m p o n e n to b j e c tm o d e l ) 上支持的应用来使用c o r b a 对象提供的服务。在对于 某个具体的c o r b a 对象服务时,确实可以通过i d l 桩的方式来实现但一旦增加新的 c o r b a 剥象服务时,该网关就必须重新编译以接收新的i d l 应用,这将使管理和维护 操作变得十分困难。因此,对网关这类应用来说,能够动态查找 d l 信息并能根据该 信息做出正确的请求调用是十分必要的。 为了适应上述情况,允许对象实现在运行时动态地加入c o r b a 环境中,并使客户 可以顺利地调用该羽象实现提供的服务,o r b 系统提供了动态调用接口( d y n a m i c l l c o r b a 和w e b 集成方案的研究。j 实现一c s s p i n v o c a t i o n 】n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年记者证考试受欢迎试题及答案
- 2025合同文书模板:出国留学需要注意哪些合同事项
- 汽车美容师顾客群体分析试题及答案
- 手术室安全用药
- 2025艺人经纪及形象授权合同范本
- 政法干警综合1真题及解析
- 河南省遂平中学2024-2025学年高三下学期第一次阶段考试综合试题含解析
- 广东潮州卫生健康职业学院《水处理功能材料》2023-2024学年第二学期期末试卷
- 河南物流职业学院《声像广告设计》2023-2024学年第一学期期末试卷
- 福建省福州文博中学2025年高三3月第二次周考历史试题含解析
- 电网工程设备材料信息参考价(2024年第四季度)
- 电子产品生产工艺流程手册
- GB/T 1936.1-2009木材抗弯强度试验方法
- 马克思主义唯物史观课件
- 工商企业管理专业案例分析报告
- DB15T 2403-2021肉羊育种数据管理规范
- 口腔种植专用病历【范本模板】
- 《空中领航学》4.2 确定飞机位置
- 邻二氮菲分光光度法测定微量铁(精)
- 产业经济学完整版ppt全套教程课件(最新)
- GB-T 18348-2022 商品条码 条码符号印制质量的检验(高清版)
评论
0/150
提交评论