




已阅读5页,还剩58页未读, 继续免费阅读
(计算机系统结构专业论文)基于corba和web+services集成技术的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
山东大学硕士学位论文 摘要 w 曲s e i c 嚣和以c o r b a 为代表的分布式对象技术是当前两大研究和发展 的热点。w 曲s e i c 既为用户提供了友好、方便的使用界面,并屏蔽异构的操作 系统、网络和编程语言,而且屏蔽了传统中间件之间的异构性,并支持开放、动 态的互操作模式。但其无法胜任大规模的企业计算和服务。其主要问题在于系统 需要m w 和w e b 服务器作为中介,这必然在w 曲服务器处形成瓶颈,造成响 应速度减慢。c o r b a 提供了在异构平台上构造对程序开发人员透明的分布式环 境,它利用面向对象、软件总线和部件等技术,为异构、分布式系统提供了系统 集成功能,具有跨语言、跨平台、结构规范、可移植、实施灵活等巨大优势。但 c o r b a 在穿越防火墙时遇到困难,二进制与现有h l t e m e t 编码标准不统一,更 主要的是开放节点可能采用不同的中间件实现,导致基于传统中间件的系统难以 跨越h i t e m e t 进行动态交互。 c o r b a 和w 曲s e i c e s 应用集成的方式主要有两种:一种是w 曲s a r v i c 器 客户端访问c o r b a 服务器,另一种是c o r b a 客户端访问w 曲s e r v i c 龉服务器。 因为应用集成通常通过封装已用或开发程序对外提供服务,所以文本讨论的集成 技术主要是第种,即w 曲s e i c 嚣客户端访问c o 砌j a 服务器。 本文对c o r b a 和w 曲s e i c 器技术进行了介绍和对比,并对现有的c 0 r b a 与w 曲s e r v i c 器集成方案的研究的基础上,提出并实现了一种新的w 曲s e r v i c 髓 和c o r b a 的集成方案,即采用s o a i 忸o p 网关协议转化技术,仅仅使用w 曲 页面就可以完成对c o r b a 对象的访问和调用,而对客户端没有任何附加的要 求。s o 伽0 p 网关技术与现有的c o r b a 和w 曲s e i c 髓集成方案比较:一方 面简化了基于w e bs e i c 鹤的c o i u b a 应用程序的开发,实现了复杂的服务:另 方面也提高了服务对w 曲请求的响应速度。最后把我们把s o 川o p 网关技 术应用到了远程变电站监控。 关訇耋词: w e bs e r v i c e s : c 0 r b a ;s 0 a p :s 0 a p i1 0 p : 山东大学硕士学位论文 a b s t r a c t w 曲s e r v i c 器a r i dc o r b ad i s 埘b u t e do b j e c tt e c h n o l o g ya r et 1 1 ei s s u 舒o f ”s e a r c ha 1 1 dd e v e l o p m 朗tw e bs e i c e sp r o v i d e su s e r s 埘t 1 1a 衔e n d l y ,c o n v e n i e i l t u 辩ri n t e l f 缸e ,i ta l s os h i e l d sh e t e r o g e n e o u so fo p e r a t i n gs y s t e m s ,n e 铆o r ka l l d p r o 肼m r n i n gl a n g u a g e s , d i 虢r e n t m i d d l e w 盯e , s u p p o n s锄o p e n ,d y l l 枷c m t e r o p e m b i l i t ym o d e lb u tw 曲s e r v i c e si si l ol o n g e rm e e tt 0t i l el a r g e s c a l e t e r p r i s e c o m p u t i n ga 1 1 ds e i c 嚣1 1 1 em a i np r o b l 咖i s1 1 1 a ts y s t e mn e e d sh 兀p 粕dw 曲 s e r v e r 嬲a r ii 1 1 t e 加e d i a 哆t i l i si sb o i l l l d 协c r e a t et h eb o m 明e c ki l lm ew e bs e r v e r e s u l 6 n gi 1 1as l o w e rr a t eo fr e s p o n s ea d r b ap r o “d e sad i s m b u t e d 锄、,i r o n m 即ti n h e t e r o g e n e o u sp l a t f o m s w m c hi st 瑚s p a r e n tt ot h ed e v e l o p m e i l ts t a 疗o ft l l e p r o c e d u r ei ns t f _ i l c 沁r e np r o v i d e sh 呶g 锄u s ,凼s t r i b u t e ds y s t e m 谢mas y s t e m i n t e f 拍o nf u n c l i o n s ,u s m go b j e c t o r i e n t e ds o r w a r ec o m p o n 朗协肌db l l st e c h n o l o g f i th 私g r e a ta d v 锄t a g e so fc r o s s l 锄g u a 唔e ,c r o s s _ p l a t f o n n ,s t a n d a r d i z e ds m j c 山r e , p o n a b l e ,f l e ) 【i b l eb m c o r b a h 鹞d i m c u l t i e si nc r o s s i n gt i l ef i r e w a l l ,b e c a u s et i l e b i n a r yc o d i n gc a l l i l o t 血匆w i 血t 量i ee ) ( i 鲥n g1 1 1 t e m e ts t a n d a r dm o r ei m p o r t 锄t l y , o p e nn o d e sm a yh a v ead i m r 朗tm i d d l e w a r e ,1 e a d i n gt h a tm es y s t e 1 sb a s e do n 仃a d i t i o n a lm i d d i e w a r ec a nh a r d l yd y n 锄i ci n t e r a c 矗o nm r o u g ht h ei n t e m 甜 h t e g f 撕o no fw 曲a l l dc o r b a a r em a i n l yt w ow a y s ,o n ei st 1 1 ew e bs e r v i c e s , c l i 肌t sa c c e s st oc o r b as e t h eo t h e ri n t e 乒a t e dw a yi sc o r b ac l i e n t sv i s i t w e bs e r v i c e ss e r v e rb e c a l l s ei n t e g 痢o ni s 印p i i e dn o n n a l l ym r o u g he n c 印s u l 撕n g e x s i t i n gp r o c e d u r e so rd e v e l o p i n gn e wp r o c e d i l r e st op r 0 、,i d es e i c e st h e r e f o r e ,廿l i s a n i c l em a i n l yd i s c u s s e df i r s ti n t e 掣a t i o nt e c h n o l o g y ,w 色bs e r “c e sc l i e n ta c c e s st 0 c o r b as e e t b a s e do nt i l ee x i s t i n gc o r b aa 1 1 dw 曲s e r v i c e si n t e g r a t i o n ,w ep n o p o s e da n d i m p l e m e n t e dan e ww e bs e i c e s a i l dc o r b ai n t e g r a t i o n p r o 黟a 1 1 1b a s e do n s o a p ,0 pp r o t o c 0 1c o n v e r s i o nt e c h n o l o 茧e s w 曲p a g e sc 锄b eu s e do n l yt 0f l l l f i u 血ea c c e s sa r i dv i s i to f c o r b a o b j e 吐,、v i m o u t 锄ya d d i t i o n a ir e q u i r e m 即t st oc l i e n 协 c o r n p a r e d 谢t 1 1e x i s d n gc o r b aa i l dw e bs e r “c e sp r o g r 锄,s o a p 0 pp r o g r 锄 h a st 、v oa d v 锄t a g e s = n r s t ,i ts l m p l m e st i l ea p p l i c 撕o np r o c e d u r e sf o rm ed e v e i o p m e n t a n dm es e r v i c e s ;s e c o n d ,i ti m p r o v e sm er e s p o n s es p e e do fm es e i c er e q u e s tt om e w e b f i n a i l ys o a p o p 鲫e w a yi sa p p l i e dt ot i l er e m o t es u b s 渐o nm o n 洒r i n g k e y w o r d s : w e bs e r v i c e s ; c o r b a ;s o a p ;s o a p i1 0 p ; i i 原创性声明和关于论文使用授权的说明 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下, 独立进行研究所取得的成果。除文中已经注明引用的内容外,本 论文不包含任何其他个人或集体已经发表或撰写过的科研成果。 对本文的研究做出重要贡献的个人和集体,均已在文中以明确方 式标明。本声明的法律责任由本人承担。 论文储躲罐日期:如:坌1 7 j 关于学位论文使用授权的声明 本人完全了解山东大学有关保留、使用学位论文的规定,同 意学校保留或向国家有关部门或机构送交论文的复印件和电子 版,允许论文被查阅和借阅;本人授权山东大学可以将本学位论 文的全部或部分内容编入有关数据库进行检索,可以采用影印、 缩印或其他复制手段保存论文和汇编本学位论文。 ( 保密论文在解密后应遵守此规定) 论文作者签名:蛐师签名: 日鞫:c 出7 山东大学硕士学位论文 1 1 研究背景 第1 章绪论 随着软件技术的不断发展,分布计算技术已经成为研究和发展的方向。分布 计算的主流技术之一便是分布对象技术,分布对象技术是面向对象技术在网络上 的拓展,它提供了客户应用程序能够透明地向服务对象发送和接受请求的机制。 目前在分布对象技术“3 中,三大主流的分布对象体系结构分别是o 惦( o b j e c t l l a g e m e n tg r o u p ) 组织推出的c o 鼢a ( c o 衄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 ) ,m i c r o s o f t 公司推出的c 叫d c o m ( c o m p o n e n to b j e c t m 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 tm o d e l ) 以及s u n 公司的e j b ( e n t e r p r i s e j a v a b e a n s ) 。但这些技术在实际应用中,又存在着很多不足和局限,如它们特定 的通信协议如:c 0 r b a 中o r b 问通讯协议g i o p 与t c p i p 捆绑后成为i i o p ,很难通过 i n t e r n e t 上难以计数的防火墙、网关。在这种情况下,分布式应用被局限在 i n t r a n e t 环境下:它们不同的编码格式,使得信息交互变得困难。而我们可以看 到i n t e h l e t 的形成和发展就是以分布式、开放性和平台无关性为基础,这是 i n t e n l e t 与生俱来的属性,所以为了适应分布式开发技术在w e b 上的应用,相继 出现了s u n 公司的s u no n e ( o p e nn e te n v i r o 加e n t 开放网络环境) 和m i c r o s d f t 公司的n e t 两大w e b 服务技术体系,将分布式技术与w e b 服务优势相结合。 由于c 0 r b a 的平台无关性和可扩展性,因此它成为分布式应用开发者的主要 选择之一。但是,目前c o r b a 与w e bs e r v i c e s 集成产品领域仅仅刚刚起步,还没 有像s u no n e 以及n e t 那样规模的企业级产品,因此,i n t e r n e t 上的用户仍不能 够方便地通过网络异地访问c o r b a 系统,这对于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 如何与w e bs e r v i c e s 集成进行了一些探讨与实践。 本文的目的是希望通过一些尝试性的工作,探讨w e bs e r v i c e s 与c o r b a 集成 的部分基本问题和实现策略。最终达到w e b 服务的开发者可以使用c o r b a 对象来实 现服务功能,这些c 0 r b a 对象可能己经存在或有待开发;w e b 客户以标准的方式访 问服务,不感知请求的执行目标是c o r b a 对象或其它编程实体。 山东大学硕十学位论文 1 2 本论文研究的主要内容及意义 c o r b a 和w 曲s e r v i c e s 应用集成的方式主要有两种:一种是w e bs e r v i c 懿 客户端访问c o r b a 服务器,即服务器端使用w 曲s e 而c 鼯接口封装c 0 砌;a 对 象的操作,对客户端屏蔽实现细节。另一种集成方式是c o r b a 客户端访问w e b s e r v i c e s 服务器,即使用c 0 r b a 接口封装w 曲s e i c 器服务,客户端以访问 c o r b a 对象的方式访问一个或多个w e bs e i c 舒服务。因为应用集成通常通过 封装已用或开发程序对外提供服务,所以文本讨论的集成技术主要是第一种,即 w 曲s e i c e s 客户端访问c o r b a 服务器。本文首先研究了c o r b a 和w e bs e r v i c e s 的系统结构、协议框架、工作原理,以及通讯协议等相关技术,并进行了对比。 其次,本文基于已有c o r 队和w e bs e r v i c e s 集成模型分析,提出了一种基于 s o a p i i o p 网关模型。并对s o a p i i o p 网关实现中的关键技术i d l 2 w s d l 编译器 和s 0 a p i i o p 网关进行了详细的分析和设计。最后,对基于s o a p 1 1 0 p 网关的 c o r b a 和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 系统和w e b 系统之间可以 交换数据和进行流程控制,而是要在互操作过程中互相取长补短,发挥更大的效 用。实现了应用系统的c o r b a 开发和集成,最终又以w e b 方式运行。 ( 1 ) w e bs e r v i c e s 可以充分利用已用的c o r b a 资源,避免了重复开发。 ( 2 ) w e b 开发人员利用自己熟悉的开发模式,不用关心c o r b a 的实现细节,从 而实现了调用过程的透明性。 ( 3 ) w e bs e r v i c e s 对c 0 r b a 调用的透明化,将减少开发时间、降低开发难度、 提高代码的重用率。 ( 4 ) 为其它中间件与w e bs e r v i c e s 集成具有一定的借鉴意义。 1 3 本论文的主要工作 ( 1 ) 搜集国内外c o r b a 和w 曲s e i c 船集成技术相关资料,并进行分析和 研究。 ( 2 ) 基于对已有c o r b a 和w e bs e i c e s 技术的研究和分析,提出了基于 山东大学硕卜学位论文 s o a p i i o p 网关模式。 ( 3 ) 对s o a p ,i i o p 网关的关键实现技术进行了精心的分析和设计。 f 4 ) 对s o a p i i o p 网关在远程变电站监控系统中的应用进行了分析设计。 1 4 本论文的结构安排 本论文主要讨论了一种基于s o a p t i o p 网关的c o r b a 和w e bs e r v i c e s 集成框 架的研究、设计和具体的实现,共分为六章进行讲述,结构安排如下所示: 第1 章阐述了课题的研究背景,并介绍了本课题的主要研究内容和意义。 第2 章对与课题相关的技术进行介绍,并作了定的分析。首先介绍了分布 式对象技术c o r b a 的相关技术内容,包括体系结构,接口定义语言( i d l ) ,o r b 互 操作协议,工作方式等。然后介绍了w e bs e r v i c e s 体系结构、协议框架等。为后 面章节研究起铺垫作用。 第3 章首先对c o r b a 和w e bs e r v i c e s 技术进行了对比,并介绍了两种传统上 的利用c o r b a 技术在w e b 上进行服务集成的模型:基于c g i 的服务集成模型和建立 客户端c o r b a 环境服务集成模型。在对两者进行分析和比较的基础之上,提出一 种新的基于s o a p 儿o p 网关的集成模型,并分析其通讯效率、安全性等方面。 第4 章在第三章提出框架的基础上进行系统的总体结构的设计,并对其关键 的i d l 2 w s d l 编译器、s o a p i i o p 网关的设计和功能进行了详细的描述。本章还对 系统的开发环境进行了简单介绍。 第5 章把s o a p i i o p 网关集成技术运用到了远程变电站监控。 第6 章对本课题的研究内容进行总结,并对进一步的工作进行了展望。 山东大学硕士学位论文 第2 章技术简介 2 1 分布式对象技术c o r b a 2l1c o r b a 概述【3 l 【4 l 【5 j f 6 】1 7 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 ( 0 b j e c t a n a g e m e n tg r o u p ) 组织制订。o m g 成立后不久 便制订了广泛认可的对象管理体系结构( 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 ) 及其语境( c o n t e x t ) 中的接口和规范。o m a 以分布式的对象为集成单位,以对象为 基础来构造分布式应用系统的最大优点是对象的封装:对象的数据和状态只能通 过对象上定义的一组运算来访问,而不允许直接存取。因此易于处理平台的异构 性,因为数据表达的互异己被隐藏,从而简化了系统的集成。 o m g 至今己拥有包括i b m 、h p 等9 0 0 多成员,我国东南大学就是该组织的成员 之一。c o r b a 规范于1 9 9 1 年公布了1 1 版本而后经历了1 2 、2 o 、2 1 、2 2 版本到 目前的3 o 版本。c o r b a3 o 规范比c o r b a2 2 规范增加了一些新的特性,这些功 能包括:完善可移植对象适配器( p o a ) ,分布式组件模型( c o r b ac o m p 。n e n tm o d e l ) 与脚本语言,以值传递对象( o b v ) ,服务质量控制( q o s ) ,异步消息传输协议支持 以及和i n t e r n e t 技术的集成,这些极大地丰富了c 0 r b a 的功能。该组织制定的规 范草稿r f p ( r e q u e s tf 。rp r o p o s e ) 是完全公开的,c o r b a 完整的规范文档可从o m g 的网站h t t p :w w w o m g o r g 全文下载。 2 1 2c o r b a 体系结构 o m g 提出的对象管理体系结构如图21 : 这个结构中包括公共设施、对象服务、应用对象以及对象请求代理0 r b 四个 部分。公共设施对应着通用、专用领域里定义的对象:对象服务是为公共设施和 各种应用对象提供的基本服务,包括命名服务、事件服务、安全服务等;应用对 象是未经0 m g 标准化的、由各个应用开发者自行开发的实体,应用对象使用c o r b a 提供的各种对象服务;对象请求代理f o r b ) 是c o r b a 的基础,是在分布环境下, 山东大学硕士学位论文 c 0 r b a 应用所使用的、基于对象模型的软件总线。 公其设施虎j 锄接口领域接口 ,、,7 、,、 13 乒j5乏。乒 埘簿请求代理o r b i+l 。 3 善 。 埘藩赧务 图2 10 m a 的参考模型 基于这个管理体系结构发展而来的c o r b a 的体系结构如图2 2 所示。 _ - “j 所蹦( 州 盛槐的l d 披i i 广j j l k , | 二1 :二= = 二二二= = := : 一u # f j $ 十j 霉趟m 器 。 一 f 1 _ ,十l 孽键颦“料# 2 小* 均 帮j 滞栈 jk = = 二= 二二二 h 打h 小播i 、 图2 2c 0 r b a 体系结构 在该体系结构中主要有6 个部分组成: o r b 内核 接口定义语言i d l i d l 桩和i d l 构架程序 动态调用接口( d i i ) 和动态构架接口( d s i ) 对象适配器( 0 a ) 接口库( i f r ) 和实现库( i r ) 山东大学硕士学位论文 2 1 2 1o r b 内核 在o m g 对象模型中,由对象提供服务,而客户根据自己的需要向o r b 发送请求, 由服务对象根据客户的请求,执行相应的服务。0 r b 提供了一种机制,通过这种 机制,客户可以透明地调用一个服务对象的方法,这个方法可以是本地的,也可 以是在通过网络连接的其它机器上。o r b 截获这一调用,并负责查找实现服务的 对象,然后向其传递参数、调用方法并返回最终结果。客户并不知道服务对象位 于什么地方,它的编程语言和操作系统是什么,也不知道不属于对象接口的其它 部分。这样,o r b 在异构分布环境卜为不同机器上的应用提供了互操作性,并无 缝的集成了多种对象系统。o r b 的作用就是将客户请求传递到服务对象并且将相 应的执行结果返回给客户。这个过程对客户是完全透明的,客户无需知道对象驻 留在网络一卜的何处,对象之间是如何通讯的,对象是如何实现、如何存储、如何 执行的。 2 1 2 2 接口定义语言i d l 在c o r b a 规范中很重要的一个方面是i d l 语言,i d l ( i n t e r f a c ed e f i n t i o n i - a n g u a g e ) 即接口定义语言,它是一种描述性语言,通过说明对象的接口来定义对 象。一个接口包括抽象的数据结构定义、一组命名的操作以及这些操作所需要的 参数。由于客户端和对象实现湍是分布式的,可以在同一台机器上,也可以分布 在网络中,所以在客户端和对象实现端都要进行接口的定义,而方法的具体实现 不能够在i d l 中进行定义,要存服务端进行定义。另外,i d i ,语言与具体的实现语 言无关,所以不用考虑客户程序的编程语言是否与服务器程序的编程语言一致。 i d l 语言实际上提供了一种手段,通过它,特定的对象实现就能告诉客户哪些操 作是可用的,并且应该如何激活这些操作。客户要能真正使用i d l 源文件中所定 义的对象,必须把这些对象映射到指定的程序设计语言实现的对象。客户方和对 象实现方可以采用不同的编程语言和不同的操作系统,但接l | 的定义并不随编程 语言和操作系统的不同而不同。不同的只是i d l 到具体编程语言的编译器不同, 如客户端采用j a v a 语言,服务器端采用c + + 语言,接口的定义在客户端和服务器 端是相同的,j l 不过在客户端采用i dl t o j a v a 的编译器,在服务器端采用i d l t o c + + 的编译器。 山东大学硕士学位论文 2 1 2 3i d l 桩和i d l 构架 i d l 编译器编译描述服务对象接口的i d l 文件,生成对应于具体编程语言的 i d l 桩和i d l 构架程序。i d i 桩所起的作用是:把请求从特定的编程语言的形式转换 为适于在o r b 内核中传输的形式。i d l 桩的工作过程如下:客户方程序根据i d i 。文 件中所定义的操作向i d l 桩发出请求,i d l 桩接收请求后,首先将此请求中需要传 递到服务对象的参数根据它的类型进行编码,编码为能够在o r b 中传输的形式, 然后利用它与o r b 的接口把调用请求交给o r b 核。当调用请求返回时,i d l 桩就利 用它与o r b 的接口将接收到的返回结果解码为客户环境所对应的参数值,再交还 给客户。 i d l 构架所起的作用是:查找请求发送到客户端的0 r b ,对调用请求的参数进 行解码,从传输格式转化为对象实现所使用的编程语言的表示形式;对调用请求 的处理结果进行编码,从对象实现所使用的编程语言的表示形式转换为传输格 式。其工作过程如下:服务端的0 r b 接收到客户端发出的请求后,激活对象适配器, 对象适配器将客户调用请求通过函数调用的方式传递给i d l 构架:i d l 构架接收到 请求后,首先根据调用请求的操作名字查找到目标对象的该操作,进入对该操作 的处理过程i 然后对调用请求中的参数列表进行解码,并使用这些参数调用对象 实现中该操作的实际实现的函数:当实际实现的函数执行完毕后,i d l 构架将参 数列表、返回值或者异常信息进行编码,最后通过i d l 构架将结果返回到对象适 配器中。 2 1 2 4 动态调用接口d i i 和动态构架接口d s l 动态调用接口d i i ( d y n a m i ci n v 。c a t i o ni n t e r f a c e ) 和动态框架接口d s i ( d y n a m i cs k e l e t o ni n t e r f a c e ) 提供了动态调用方式和动态实现方式。某些情况 下客户预先不知道服务对象的接口信息,需要进行查询或其他的手段获得服务对 象的接口描述信息,然后使用d i i 动态调用o r b 核心接口的方法来构造客户请求并 发送到对象实现。在对象实现方可以使用d s i 动态分发用户请求的机制,以便动 态的处理客户方请求。客户和对象实现所采用的方式并不一定要一一对应,也就 是说,客户方支持的静态和动态两种调用方式,对象实现方支持的静态和动态两 种实现方式。客户使用这个接口向对象发送请求获得的语义和客户使用根程序一 样。也就是说,客户可以不调用一个专门用于特定对象的特定操作的根程序,而 操作的一组参数。客户代码必须提供关于所要执行的操作的信息以及要传送参数 的类型( 可能从接 1 库中或其他运行的资源中得到) 。动态框架接口d s i 允许动态 的处理对象调用,这就是说,在通过接口来达到对象实现时,这接口采用与客 户侧动态过程调用接口的相似的方式访问操作名称及参数,而不必通过专用于某 一操作的程序框架访问。实现代码必须将所有操作参数描述提供给o r b ,在执行 操作的过程中,o r b 将提供所有输入参数值。实现代码在执行操作后,将向o r b 提供所有输出参数或异常。 在动态方式下,需要查询相应的服务对象的接口描述信息( 在静态方式下, 这些信息由i d l 文件来描述) ,这些信息由接口库提供。接口库通常以i d l 描述文 件为其输入,将接口描述信息进行处理后存放在文件、数据库或其他形式的存储 机制中,并提供一组标准的调用接口供客户查询使用。服务对象实现的描述信息 也由接口库提供。 2 1 2 5 对象适配器o a 对象适配器o a ( o b l e c t a d a p t e r ) 位于服务对象实现和o r b 之间,它是为了减轻 o r b 内核的作用而设定的,也就是说,它的作用是辅助o r b 内核的。对象实现所需 提供的大部分功能由o r b 核心和对象适配器协同完成。对象适配器所提供的服务 一般包括对象引用的生成和解释,方法的调用,交互的安全,对象和实现的激活 和释放。对象适配器的作用就是产生对象引用,对对象引用进行解释,对客户端 发来的请求进行认证,当验证后根据客户的请求激活对象实现。当执行具体方法 的时候,要把实际参数带入具体实现,这时对象适配器就要去告诉静态框架或者 动态框架接口把客户传来的参数进行解码。当服务端程序执行完客,- 的调用请求 以后,还要通过对象适配器的接口访何o a 的服务。 2 1 2 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 m p l e m e n t i o nr e p o s i t o r y ) 是o r b 系统的辅助部件,是协助o r b 系统接收处理请求和响应的。接l j 库用j 接 定义的永久存储,提供对象继承关系的浏览和对象所支持操作的描述。 实现库( i r ) 的作用是提供定义对象接 j 的另一种方法,存储供o r b 系统定位 山东大学硕士学位论文 和激活对象实现所需要的信息,保存有关o r b 对象实现的附加信息,如调试信息、 管理控制、资源分配、安全信息等。使用接口库,客户机能够定位在编译时未知 的对象,寻找到该接口信息,然后通过o r b 建立发送请求。 2 1 3c o r b a 工作原理 当一个客户要使用某个对象实现所提供的服务时,步骤大致如下: ( 1 ) 客户通过某种方式找到特定对象实现的对象引用。这些查询方式包括: 使用o r b 接口中提供的操作:r e s 0 1 v e j n i t i a l - r e f e r e n c e s ( ) :使用c o r b a 对象服 务中的名字服务( n m i n g s e r v i c e ) ;通过其它接口的输出参数或者返回值:通过 o r b 实现系统自身提供的特定的对象引用获取方法。 ( 2 ) 客户向对象实现发出请求。如果对象实现有相应的i d l 桩,客户可以通 过i d l 桩发出请求( 静态调用) ,或者在接口库的协助下使用d i i ( 动态调用) 发出请 求。 ( 3 ) 请求传递到对象适配器。当对象调用请求到达o r b 核心后。由0 r b 负责将 请求传送给相应的对象适配器,具体方式由o r b 的具体实现决定。 ( 4 ) 对象适配器调用对象实现的操作。如有i d l 构架的存在,对象适配器通 过构架执行对象实现中的操作,否则通过d s i ( 动态构架接口) 中的d i r ( d y n 锄i c i n v o c a t i o nr o u t i n e ,动态调用例程) 调用。 ( 5 ) 将结果返回给客户。对象实现的特定操作方法执行完后,结果包括输人 输出参数、返回值以及异常信息将按照对象请求传递和执行路径逆向返回给客户 对象。 一个完整的对象请求调用就是按以上步骤完成的。在多个异构o r b 系统中, 具体的步骤可能有略微的差别,这主要是因为在不同的o r b 系统中对象引用的获 取方式可能有些不同,而且不同的0 r b 系统之间需要借助于g i o p i i o p 协议进行交 互,但是在各个o r b 系统内部的对象请求处理过程是和上面一样的。 2 1 4c o r b a 工作方式 客户端的调用方式同服务器端接受请求的方式是相互独立的,两者并不互相 依赖,客户端程序对服务器程序的调用有静态、动态两种方式。 山东大学硕士学位论文 2 1 4 1 静态调用方式 在静态方式中,码根事先由i d l 接口文件编译生成,它包括代理对象的定义 和实现。代理对象的定义与i d l 接口中的定义相一致,包括名字、操作、参数等 方面,代理对象的实现封装在代理对象内部,它实际上并没有执行客户所期待的 实现,而是把客户的请求编组后交给o r b 核心,等待远端的对象实现执行这一操 作执行后得到的返回参数和结果将通过0 r b 核心传回给码根进行解组,然后由码 根以本地操作的方式把返回结果和参数送回给等待结果的客户端程序。 2 1 4 2 动态调用方式 在动态方式中,客户端和服务器端没有实现编译生成的码根,代替的是标准 的一组d i i 和d s i 接口,动态方式允许对任何对象进行操作,仅仅需要知道该对象 的对象引用,然后利用接口库查询对象的接口信息,再动态的构建调用请求。相 比静态方式而言,动态方式有着灵活、可移植性强等优点,但也存在着使用复杂 和速度较慢的缺点。动态调用和静态调用的存在并不冲突,二者可以结合使用。 2 1 5 命名服务 命名服务提供从名字到对象引用的映射:给定一个名字,该服务返回一个存 储在此名字下的对象引用。命名服务给客户程序提供了许多便利之处: ( 1 ) 客户程序可以给对象起有意义的名字而不必处理字符串化的对象引用; ( 2 ) 通过改变在某个名字下的公告的引用值,客户程序可以在不改变源码的 情况下使用不同接口的买现。 客户程序使用同一个名字却获得不同的引用在命名服务规范中,名字是由名 字构件( n a ec o m p o n e n t ) 序列组成的,每一个名字构件都是一个结构变量,它有 i d 属性和k i n d 属性组成,概念上相当于文件系统中的文件名和扩展名。只有一个 名字构件的名称,称为简单名。有多个名字构件的名字称为复合名,除了最后一 个构件表示被注册或查找的对象,其余用于定义名字上下文( n a ec o n t e x t ) 。名 字上下文也是一个c o r b a 对象。一个名字和一个c o r b a 对象之间的联系称为名字绑 定( n a m e b i n d i n g ) ,名字绑定总是定义在名字上下文中,一个名字上下文包括一 系列的名字绑定,并且名字上下文也可以与一个名字绑定在另一个名字上下文对 象中。名字服务的基本运行过程妇图2 3 所示。 l o 山东大学硕士学位论文 解析绑 图2 3 名字服务运行过程 名字服务有效地解决了客户方对象的透明访问问题。采用逻辑名经名字服务 器间接地访问服务方对象,客户方程序代码将不因服务方对象在分布式计算环境 中的位置“迁移”而变化。因此,在动态调用机制中,名字服务有着重要的作用。 2 1 60 r b 互操作协议 为了实现o r b 与o r b 之间的通信,o m g 规定了两种互操作协议:通用0 r b 互操作 协议g i o p ( g e n e r a li n t e r - o r bp r o t o c 0 1 ) 以及特定环境o r b 互操作协议 e s i o p ( e n v i r o l l m e n ts p e c i f i ci n t e ro r bp r o t o c 0 1 ) 。与0 m gi d l 相似,这两种 通信协议只是些抽象的规范,用户必须采用不同网络协议去实现这两种协议。 当我们用t c p i p 实现g 1 0 p 时,通常称为因特网o r b 的互操作协议i i o p ( i n t e r n e t i n t e r - o r bp r o t o c 0 1 ) ;而e s i o p 抽象协议的一个实现例子是d c e c i o p ( d i s t r i b u t e dc 伽p u t i n ge n v i r o 衄e n tc o 皿o ni n t e r - o r bp r o t o c 0 1 ) 。 通用o r b 互操作协议g i o p 由以下三部分构成: ( 1 ) 公共数据表示c d r ( c o 叫o nd a t ar 印r e s e n t a t i o n ) ; ( 2 ) g i o p 消息格式; ( 3 ) g 1 0 p 消息传递。 2 2w e bs e r v i c e s 简介刚9 1 w e bs e r v i c e s 是i n t e n l e t 上的业务逻辑,可以通过基于标准的i n t e r n e t 协议 访问。它与w i n 3 2 ,j 2 e e ,c o r b a 和c g i 脚本这些技术主要的不同在于它的标准化, w e bs e r v i c e s 建立在全球大多数技术企业支持的x m l 和一系列标准的协议上,同 l 东大学硕士学位论文 时它也是一个建立在因特列开放环境标准基础上的技术规范,它的基本组成郜分 包括可扩展标志语言m 1 1 ( x m l ) 、简单对象访问协议山”m ”( s 0 a p ) ,w e b s e r v i c e s 描述语言”( w s d l ) 、统一发现描述集成3 ( u d d i ) 。 2 2 1w e bs e r v i c e s 特征 从外部使用者的角度而言,w e bs e r v i c e s 是一种部署在w e b 上的对象组件, 它具备以下特征: ( 1 ) 完好的封装性:w e bs e r v i c e s 既然是一种部署在w e b 上的对象,自然具 备对象的良好封装性,对于使用者而言,它能且仅能看到该对象提供的功能列 表。 ( 2 ) 松散耦合:这一特征也是源于对象组件技术,当一个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 的实现平台从j 2 髓迁移到了n e t 或者是相反的迁移流 程,用户都可以对此一无所知。对于松散耦合而言,尤其是在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 环境的消息交换协议。而x m l s o a p 正是目前最为适合的消息交换协议。 ( 3 ) 使用协约的规范性:这一特征从对象而来,但相比一般对象其界面规范 更加规范化和易于机器理解。首先,作为w e bs e r v i c e s ,对象界面所提供的功能 应当使用标准的描述语言来描述( 比如w s d l ) :其次,由标准描述语言描述的服务 界面应当是能够被发现的,因此这一描述文档需要被存储在私有的或公共的注册 库里面。同时,使用标准描述语言描述的使用协约将不仅仅是服务界面,它将被 延伸到w e bs e r v i c e s 的聚合、跨w e bs e r v i c e s 的事务、工作流等,而这些又都需 要服务质量( q o s ) 的保障。其次,我们知道安全机制对于松散祸合的对象环境的 重要性,因此我们需要对诸如授权认证、数据完整性( 比如签名机制) 、消息源认 证以及事务的不可否认性等运用规范的方法来描述、传输和交换。最后,在所有 层次的处理都应当是可管理的,因此需要对管理协约运用同样的机制。 ( 4 ) 使用标准协议规范:作为w e bs e r v i c e s ,其所有公共的协约完全需要使 用开放的标准协议进行描述、传输和交换。这些标准协议具有完全免费的规范, 以便由任意方进行实现。一般而言,绝大多数规范将最终有w 3 c 或。a s i s 作为最终 山东大学硕士学位论文 版本的发布方和维护方。 ( 5 ) 高度可集成能:由于w e bs e r v i c e s 采取简单的、易理解的标准w e b 协议 作为组件界面描述和协同描述规范,完全屏蔽了不同软件平台的差异,通过这一 种标准的协议进行互操作,实现了在当前环境下最高的可集成性。 2 2 2w e bs e r v i c e s 体系结构 w e bs e r v i c e s 的体系结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城镇老旧燃气管道和设备设施更新改造项目可行性研究报告
- 技能认证(风机-单选)复习测试题
- 初中政治补充题目及答案
- 传播学考试试题及答案
- 处长考试试题及答案
- 厨师证中级考试试题及答案
- 2025年版的《物业租赁合同范本》
- 初中音乐职称考试试题及答案
- 中国陪护O2O行业投资分析、市场运行态势研究报告-智研咨询发布
- 初中教学笔试题目及答案
- AIDS合并马尔尼菲青霉菌病(李勇)
- 小学英语课堂练习设计的有效性初探 论文
- 第二节细菌性痢疾病人的护理
- 管理处干部职工廉洁从业行为规范
- 果蔬脆片生产工艺1课件
- 中暑预防及急救课件
- GB-T 1040.3-2006 塑料 拉伸性能的测定 第3部分:薄塑和薄片的试验条件
- 事业单位招聘人员体检表
- 成品交付检验记录表
- 河道清淤疏浚工程水生态影响对策措施
- 2022年水稳购销合同范本
评论
0/150
提交评论