(计算机应用技术专业论文)corba和web+services集成技术的研究与实现.pdf_第1页
(计算机应用技术专业论文)corba和web+services集成技术的研究与实现.pdf_第2页
(计算机应用技术专业论文)corba和web+services集成技术的研究与实现.pdf_第3页
(计算机应用技术专业论文)corba和web+services集成技术的研究与实现.pdf_第4页
(计算机应用技术专业论文)corba和web+services集成技术的研究与实现.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(计算机应用技术专业论文)corba和web+services集成技术的研究与实现.pdf.pdf 免费下载

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

文档简介

订j ! 航:i i 航天人学硕十、川口论文 摘要 w e bs e r v i c e s 和c o r b a 部是分布式应用领域内讨论的热点问题,w e b s e r v l c e s 是部署并提供通过w e b 访问业务功能的技术,它使应用程序的集成比以前更快、更容 易而且成本更低,c o r b a 提供了在异构平台上构造对程序开发人员透明的分布式环 境。w e b 服务的应用集成是一种基于服务层的集成,集成结果直接是一个分布式的结 构,c o r b a 、j 2 e e 和其它标准是实现w e b 服务的技术。本文将w e bs e r v i c e s 在因特网 上的通信优势以及松散集成的特点与c o r b a 系统成熟的丌发应用经验、丰富的服务资 源相结合,提出了w e b s e r v i c e s 与c o r b a 集成的设想,设计了二者集成的系统架构, 并分析了集成的可能性和集成中需要解决的问题,最后给出了基于w s a d a p t e r 的集成 技术的仞步实现。此外,本文最后还探讨了集成技术在网站开发中应用前景以及开发 模式。 关键字:c o r b a ,w e bs e r v i c e s ,集成,w s a d a p t e r 7 0 r b , 、州w e b5 e r v ic o s 集成技术的州冗! - j 买儿也 a b s t r a c t w e bs e r v l c e sa n dc o r b aa r et h et w oh o ts p o t si nd is t r i b u t e da p p l i e a t i o n r e s e a r c h w e bs e r v i c e sa r eat e c h n o l o g yf o rd e p l o y i n ga n dp r o v i d i n ga c c e s s t ob u s in e s sf u n c t i o n so v e rt h ew e ba n dw e bs e r v i c e sa l l o wa p p l i c a t i o n st ob e i n t e g r a t e dm o r er a p i d l y ,e a s il ya n dl e s se x p e n s i v e l yt h a ne v e rb e f o r e ,c o r b a p r o v i d e s a ne n v i r o n m e n tf o r b u i l d i n g c l i e n t sa n d s 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 op r o g r a m m e r s w e bs e r v i c e s i n t e g r a t i o ni sb a s e do ns e r v i c e l a y e r ,a n dl e a dt od i s t r i b u t e df r a m e w o r k ,c o r b a ,j 2 e ea n do t h e rs t a n d a r d sa r e t e c h n o l o g i e s f o r i m p l e m e n t i n g w e bs e r v i c e ss e r v e r t h i st h e s is p u g t h e e m p h a s i so nt h ei n t e g r a t i o no fw e bs e r v i c e sa n dc o r b a w e bs e r v i c e sp r o v i d e s e n a b t in gl o o s ei n t e g r a t i o na n du s e sh t t pa si n t e r n e tc o m l n u n i c a t i o n sp r o t o c 0 1 c o r b ah a sm u c hp r a t t i c ee x p e r i e n c ea n di t ss e r v i c e sa r em a t u r e d i nt h i st h e s i s w ed e s i g ni n t e g r a t e ds y s t e mf r a m e w o r ka n dd i s c u s sp r o b l e mi ni n t e g r a t i o n 1 h e n w ep r a c t i e e i n t e g r a t i o nb a s e do nw s a d a p t e r i nt h ee n d ,w ed i s c u s sa p p l i c a t i o n 0 fi n t e g r a t i o f fs y s t e mi nw e bs y s t e mp r a c t i c ea n di t s d e s i g nm o d e l k e yw o r d s :c o r b a ,w e bs e r v i c e s ,i n t e g r a t i o n ,w s a d a p t e r 柯京肮z 航大人学硕十。学似论殳 注释表 c o r b ac 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 通用对琢请求代理体系结构 i d li n t e r * a c ed e f i n n i o nl a n g u a g e 接口定义语言 w e bs e r v i c e s w e b 服务 w s a d a p t e r w e bs e r v i c e sa d a p t e r w e b 服务适配器 j 2 e ej a v a2 p l a t f o r m ,e n t e r p r i s ee d i t i o n l a v a 2 平台企业级版本 e j b e n t e r p r is ej a v a b e a n s 企业级j a v a b e a n c o m c o m p o n e n to b j e c tm o d e l 组件对象模型 o r b o b j e c tr e q u e s tb r o k e r 对象请求代理 s o a p s i m p l eo b j e c ta c c e s sp r o t o c o l 简单对象访问协议 w s d lw e bs e r v i c ed e s c r i p ti o n l a n g u a g ew e b 服务描述语言 d d d i u n i v e r s a l d e s c r i p t i o n ,d i s c o v e r ya n di n t e g r a t i o n 通用描述、发现和 集成 x m l e x t e n s i b l em a r k u pl a n g u a g e 可扩展标记语言 g i o pg e n e r a l i n t e r o r bp r o t o c o l 通用o r b 互通执议 ii o p i n t e r n e ti n t e r o r bp r o t o c o l 互联网o r b 互通协议 1 由京航空航天人学顺h 。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 m o n o b j e c t r e q u e s tb r o k e r & r c h i t e c t u r e ) 、m i c r o s o f t 公司推出的c o w d c o m ( c o m p o n e n t o bj 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 7 a v a b e a n s ) 。但这些技术在实际应用中,又存在着很多不足和局限,如它们特定的 通信协议( 如c o r b a 中o r b 间通讯协议g i o p 与t c p i p 捆绑后成为i l o p ) 很难通过 i n t e r n e t 上难以计数的防火墙、网关,在这种情况下,分布式应用被局限在i n t r a n e t 环境下:它们不同的编码格式,使得信息交互变得困难。而我们可以看到i n t e r n e ? 的形成和发展就是以分布式、开放性和平台无关性为基础,这是i n t e r n e t 与生俱 来的属性,所以为了适应分布式开发技术在w e b 上的应用,相继出现了s u n 公司的 s u no n e ( o p e nf i e te n v i r o n m e n t 开放网络环境) 和m i c r o s o f t 公司的n e t 两大w e b 服务技术体系,将分布式技术与w e b 的优势相结合。 由于c o 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 集成进行了一些探讨与实践。 1 2 论文的主要内容 本文以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 集成应用的技术。 0 m g 在它的c o r b a 规范中定义了两个o r b 间通信协议,一个是g i o p ( 通用o r b 互通协议,g e n e r a li n t e r o r bp r o t o c 0 1 ) ,另一个是d c ee s i o p ( d c e 环境中的o r b 间通信协议) 。目前主要使用的是g i o p ,由于g i o p 是指导性协议,所以实际使用时 需要和具体的网络协议捆绑使用,本文中主要指i i o p ( 基于t c p i p 的o r b 间互通 w e bs e r v l c e s 集成技术的圳j i j 实现 一 一,。釜以上两图中可以看出,两种体系结构中各部分之l 刮存在着以下大致的对应关 7 j 、: 协议) w s d l ( w e b 服务描述语言) 斗 s o a p ( 简单对象访问协议) i d l ( 接口描述语言) f l o p ( n t e r n e t 环境o r b 间互操作 u d d i ( 通用描述、发现和集成) c o s n a m i n g ( c o r b a 名字服务j 耐鲂_眼进杂 一一一一一一一一一一一 蒯汛钢眦叭训 一一一一一 糯慨挑磔矧瑚: 个m境在础的n肛吼斯嘲撇鳓 一一一一一一一 罴燃碱一 ) r b ajjw t - bs m vi c o s 集成技术需要解决的问题 山卜f ! = 体系结构一j 存在着许多相似的地方,并且两种结构的e i 的均是为丁解决 分m ,, e f l t 力的问题,所以自然而然会考虑到将二暂结合起求,发挥各自的优势。 a :c ) r i a 和w e b s e r v i c e x 集成中主要需要解决以下一些问题“5 t “_ : 访1 4 端点与目标标以映射。c o r b a 使用对象引用( i o r ) 唯一地标识一个c o r b a 对象,它包括陔对象的侦听地址和对象标识:而w e b 服务通常依赖于运行在。e b c o n t a i l i e n 中的一个应用来接收、分发s o a p 请求,该应用的地址是s e r v ic e 的访问 端点,子s e r v i c e 通过局部唯一的i d 相区别。因此,首先要解决的是将对某个 s e r v e i e 的s o a l l 请求分发到正确的c o r b a 对象上,即维护s e f v c je i d 与对象引用 ( o r ) 的映射。 操作映射。需将s e f v c i e 的方法名映射到c o r b a 对象的操作名。 数据类型映射。c o r b ai d l 提供了丰富的数据类型,不仅简单类型分类详细 ( 如表达整形的数据类型就包括6 种) ,而且还定义了特有的复杂类型,如序列、值 类型、对象引用等。相比之下,s o a p 及x m l s c h e m a 规范提供的数据类型要简单得多。 为实现s o a p 域到c o r b a 域的请求翻译,需要在部署时刻使用适当的x m ls c h e m a 守 义参数类型:在运行时刻将s o a p 请求中的x m l 数据类型转换为【d l 类型,并将儿o p 应答消息中的 d l 类型映射为x m l 类型。 1 4 主要的研究工作 南京航空航天大学软件工程开发中心一直致力于在软件重用、构件技术和分布 式计算方面的研究,围绕c o r b a 技术已经进行了多年的研究,在软件体系结构、组 件模型、过程管理和c o r b a 与w e b 的集成方面都有涉及,并且取得了一定的研究成 果。 本文研究的是c o r b a 和w e bs e r v i c e s 的集成技术。我们研究了c o r b a 和w e b s e r v i c e s 技术的本质特点,分析了可行的c o r b a 和w e bs e r v i c e s 集成技术,提出 ,文中基于w s a d a p t e r 的集成技术,描述了集成系统的体系结构,并进行了部分设 计实现。最后给出了一个开发实例,为如何使用该技术进行开发应用提供了指导。 论文体现的新颖之处在于: 1 结合w e b 服务与c o r b a 技术各自的特点,提出了二者集成的想法: 2 给出了集成技术的详细描述和实现设计: 3 利用原型系统实现一些基础应用; c t 给出了一般的集成系统的应用开发方法: l ( 】i 【 i 、f w e bs e r v ic o s 集成技术晌州i 与实j 她 小【仑文e 分为七章,内容的组织如下: 第:章c o r i i a 简介,介绍了c o r b a 体系结构,并重点介绍丁本文描述的集成技 术中所涉及的c o r b a 对象请求中调用机制、名字服务以及互操作部分。 第三章w e bs e r v l c e s 概览,介绍了w e b 服务的体系结构,协议栈。同时对w e b 服务中基础的三个角色,三种操作以及为实现w e b 服务使用的协议技术进行了介绍。 第四章集成技术介绍,对两种体系中互操作、调用方式的比较,x , t h 务( 对 象) 的忉i 识,基于网络的传输方式,在集成需要解决的问题进行探讨,给出集成的 概念模型。 第j i 章集成技术实现技术介绍,对实现的条件做了限制,并利用网络计算器 验证了这个初步的实现设计。 第六章在自i 面章节的前提下,探讨了集成技术在网站开发中的应用前景,描 述设计斤发中的刚站发布管理系统以及利用集成技术后的系统架构。 第七章结论,对全文的工作进行总结,并给出了进一步研究的方向。 第二章c o r b a 简介 分布对象技术已经发展成为当今分布异构环境下建立应用系统集成框架和标 准构件的核心技术。其中,最突出的技术之一就是c o r b a 技术。出于c o r b a 技术在 ) f :放性、先进性、完整性、连续性和成熟程度方面的突出表现,使其已经成为建立 应用框架和软构件的技术标准,在丌发大型分布式应用系统中表现出强大的生命 力。 c o r b a 规范是由o m g ( o b j e c t , l a n a g e m e n tg r o u p ) 组织制定的标准。0 m g 组织是 一个国际性的非盈利组织,成立于1 9 8 9 年,至今已有9 0 0 多个会员包括了几乎 所有著名的计算机公司。o m g 致力于面向对象软件丌发的实践与理论,制定工业指 南和列缘管理枷范,加陕对象技术的发展;其目标就是为应用丌发提供个公共框 架,使得基于对象的软件在分布异构环境下具有良好的可重用性、可移植性和互操 作| 生,从而能够在由多种主流硬件平台上运行多种操作系统构成的异构分布环境 中,方便地建立异构分布应用系统。为了实现上述目标,o m g 组织成立后不久就制 定,o 1 a ( o b j e c tm a n a g e m e n t a 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 规 范l l 皈本,又于1 9 9 5 年颁伟了2 0 版本,2 0 0 2 年6 月份o m g 组织正式公布了 c o r b a 3 0 规范。 在不久自u 颁向的c o r b a 3 0 技术规范中由i b m 、c a p e c l e a r 、i n o a 等公司跌合 提出c o r b at ow s d l s o a p 的r f p 文档,使得继m i c r o s o f t 和s u n 相继推出w e b s e r v lcl s 产品之后,基于c o r b a 的w e b s e r v i c e s 的实现有了基本的依掘。c o r b a 3 0 规范还包括一些新特性:将应用程序工具和环境用于c o r b a 组件的设计:支持c o r b a 对象在异步g r o o m - 息队列中进行传输;采用服务质量( 9 0 s ) 技术规范:增加新的 规范,以实现与传统环境的结合等。在后续的章节中,我们会比较具体的介绍其中 些和本课题研究相关的技术。“” 2 1 c o r b a 体系结构m 0 h 3 6 2 i i 对象参考模型 一个抽象的对象参考模型可以用图2 1 ( a ) 柬表示。其中,对象实现是指对象 功能的具体实现,它将数据和施加在数据上的操作捆绑在一起,封装在对象中。客 户所能看到的只是对象的接口。因此,对象实现的改变不会对客户程序产生任何影 响。客户调用对象中的操作,首先要得到该对象的对象引用。o m g 组织将其具体化 、叭t - i | c 1h i 、7 icu s 粜戍技爪川i2 ,9 l 一一 r ,提出厂( 州a 多考馍型出可以称作是c o r b a 对象参考摸型,叮以参考图:1t ) 。 这个其体化体现在用【d l ( 接口定义语言) 进行对象建模,以及采刖l i o i ,( in t er 1 e t m t e h j k f p r o t o c a ) 阱议进行客户和服务器之问的通信。 磐尸 服务器 ( a ) 抽象的对象镆7 2 1 2 c o r b a 体系结构 客户 帷务器 ( b ) c o r b a 对象参考模型 图2i 对象参考模型 ) m g 提出的对象管理体系结构示于图2 2 享 o y 幽2 2o m g 对象管理体系结构 愿个结构中包括公共设施、对象服务、应用对象以及对象请求代理四个部分。 竺彗兰謦翟应着通用、专用领域里定义的对象:对象服务是为公共设旋和各种应用 对詈孥等的基本服务,包括命名服务、事件服务、安全服务等;应用对象是未基o m g 。 堂凳垡的、由各个应用开发者自行丌发的实体,应用对象使用c o r b a 提供晶各种对 象服务:对象请求代理( o r b ) 是c o r b a 的基础,是在分布环境下,c o r b a 应鬲磊1 ; 尝婴:篆于对餮模型的软件总线。基于这个管理体系结构发展而来的c o r r i 磊搽案 在该体系结构中主要有6 个部分组成:m 1 接i 定义浯言1 1 ) i 【d l 妣取li n l 阳架程序 动态e 周用接口1 0 【f ) 和动态构架接口( d s i ) 对象适配器( o a ) 接口库( i f r ) 和实现库( i r ) ( 1 ) o r b 内核 在o m g 对象模型中,山对象提供服务,而客户根据自己的需要向o r b 发送请求, 由服务对象根据客户的清求,执行相应的服务。o r b 的作用就是将客户请求传递到 服务对象并且将相应的执行结果返回给客户。这个过程对客户是完全透明的:客户 无需知道对象驻留在网络上的何处;对象之间是如何通讯的:对象是如何实现、如 何存储、如何执行的。 接l 库 【i f r ) g 户 动态ili d l 叫1 o r b 黼fl ( s 【u l 期 对蒙实现 翁i d l ( s k e l e t o n ) 阁d s i 攀 构架il 程序框架1l 珂累 jj f) jj 厄目c 器 o r b 核 :纛裴罘黧嚣嚣哺口 0 - 调用接口 哪能有多个对象适配器 u 用取h 器荐;对象o r b 焉磐桩和_ 爪构架o 常规调用知依存于接口u 图2 3c o r b a 对象请求接口的结构 实现库 【1 r 1 ( 2 ) 接口定义语言i d l ( n t e r f a c ed e f i n i t io n l a n g u a g e ) i d l 语言通过定义对象接口来定义对象类型。接k - 1 包括一系列命名的操作和这 些操作的参数。通过i d ,定义,c o r b a 对象被映射为不同的编程语言。特定的对象 实现通过i d l 语言告诉客户哪些操作是可用的,并且应该如何激活这些操作。但是 d l 语言只是一种描述性的语言,不用于实现,客户要能真正使用i d l 源文件中所 定义的对象必须把这些对象映射到指定的程序设计语言实现的对象。 ( 3 ) i i ) l 桩和i d l 构架 f d i ,编译器编译描述f j 臣务对象接 的i d l 文件,生成对应于具体编程语言的l d l 桩和i d l 构架程序。i d l 桩负责把用户的请求进行编码,发送到对象实现端,并对 接收到的处理结果进行解释,把结果或异常信息返回给用户;i d l 构架对用户请求 进行解码,定位所请求的对象的方法,执行该方法,并把执行结果或异常信息编码 墓 t i 段上圣g l ,l d l 妊和m l 阳柴程序提供丁静态调j j 乃式删静念实现,j 。 l - d j 态惆月接口( d 1 ) 和动态构架接口( d s i ) 动各调用接口( d i 【) 羊动态构架接口( d s i ) 提供了动念调用和l 动念实现力j 式。通 过查询1 f j 应的服务对象的接口描述信息,使用o 【动态调用o r b 核心接1 7 1 的方法泉 盘弃户请求并发送到埘豫实现。在对象实现方可以使f jd s i 动态分发= i jj 1 ,请求的 目l 荆,以便动念地处理客户疗的请求。 ( j 对象适配器( o :o b j e c ta d a pl e t s ) 1 “ 对象适配器是对象实现访问o r b 提供服务的主要力法。每一类对象实现可以有 一个 目对应的对象适配器,它减轻了o r b 核心的负担。对象适配器所提供的服务一 股包括对象引用的生成和解释,方法的调用。交互的安全,对象和实现的激活和释 放。 ( 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 nc i o n ) 是 o r b 系统的辅助部件,是协助o r b 系统接收处理请求和响应的。接口库用于接口定 义的永久存储,提供对象继承关系的浏览f u x , l 象所支持操作的描述。 实现库( i r ) 的作用是提供定义对象接口的另一种方法,存储供o r b 系统定位和 激活对象实现所需要的信息,保存有关o r b 对象实现的附加信息,如调试信息、管 理控制、资源分配、安全信息等。使用接口仓库,客户机能够定位在编译时未知的 对象,寻找到该接口信息,然后通过o r b 建立发送请求。 2 2c o r b a :亡作原理 当一个客户要使用某个对象实现所提供的服务时,步骤大致如下:。“”“1 ( i ) 客户通过某种方式找到特定对象实现的对象引用。这些查询方式包括:使 用o r b 接口中提供的操作r e s o lv e j n i t i a l 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 ) i 通过其它接口的输出参数或者返回值;通过o r b 实 现系统自身提供的特定的对象引用获取方法。 ( 2 ) 客户向对象实现发出请求。如果对象实现有相应的i d l 桩,客户可以通过 i d l 桩发出请求( 静态调用) ,或者在接口库的协助下使用d i i ( 动态调用) 发出请 求。 ( :j n 青求传递到对象适配器。当对象调用请求到达o r b 核心后,由o r b 核,l 、负 贵将请求传送给相应的对象适配器,具体方式由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 o nr o u t h e 。动念调用例程) 调用。 _ _ j j l 航:e 航犬人午碗卜“口沦文 t 、j ,i 粜遐给客户,埘象实现的特定操作方法执行完后。结聚( 包括输h i 爹 数、输八输出参数、返网值以及异常信息等) 将按照对象请求传递和执行路径逆向 返回给客户对象。 一个完整的对象请求调用就是按以上步骤完成的。在多个异构o r b 系统中,具 体的步t 墚可能有略微的差别,这主要是因为在不同的o r b 系统中对象引用的获耿方 式可能有些不同,而且不同的o r b 系统之问需要借助于g l o p 1 1 0 7 协议进行交互, 忸是在子个o r b 系统内部的对象请求处理过程是和上面样的。 2 3c o r b a 工作方式 客户端的调用方式同服务器端接受请求的方式是相互独立的,两者并不互相依 赖,客户程序对远端程序的调用有静态、动态两种方式。“j 2 3 1 静态调用方式 在静态万式中,码根事先由i d l 接口文件编译生成,它包括代理对象的定义和 史现。代理对象的定义与i d l 接口中的定义相一致,包括名字、操作、参数等方面, 代理对象的实现封装在代理对象内部,它实际上并没有执行客户所期待的实现,面 是把客户的请求编组后交给o r b 核心,等待远端的对象实现执行这一操作。执行后 得到的返回参数和结果将通过o r b 核心传回给码根进行解组,然后由码根以本地操 作的方式把返回结果和参数送回给等待结果的客户端程序。 2 3 2 动态调用方式 在动态方式中,客户端和服务器端没有实现编译生成的码根,代替的是标准的 一组d i i 和d s i 接口,动态方式允许对任何对象进行操作,仅仅需要知道该对象的 对象引用,然后利用接口库查询对象的接口信息,再动态的构建调用请求。相比静 态方式而言,动态方式有着灵活、可移植性强等优点,但也存在着使用复杂和速度 较慢的缺点。动态调用和静态调用的存在并不冲突,二者可以结合使用。 2 4 命名服务 命名服务提供从名字到对象引用的映射:给定一个名字,该服务返回个存储 在此名字下的对象引用。命名服务给客户程序提供了许多便利之处:“” 客户程序可以给对象起有意义的名字而不必处理字符串化的对象引用: 通过改变在某个钐字下的公告的引用值,客户程序可以往不改变源码的f 占 况卜使用不同接口的。其f 见。客户程序使用同一个名字却获得不同的引用; 在命名服务规范中,名字足由名字构件( n a m ec o m p e n e n t ) 序列组成的,每一个 g 字 - j j 件部是一个结构变j 羞,它有id 属性和k i n d 属性组成,蹴念上相当于文件系 统中的文件名和扩展名。只有一个名字构件的名称称为简单名。有多个名字构件的 名字称为复合名,除了最后一个构件表示被注册或查找的对象,其余用于定义名字 巴f 、文( n a m e c o n l e x t ) 。名字上下文也是一个c o r b a 对象。一个名字和个c o r b a 对象之问的联系称为名字绑定( n a m e b i n d i n g ) ,- g 字绑定总是定义在名字一l 下文中, 一个名字上下文包括一系列的名字绑定,并且名字上下文也可以与一个名字绑定庄 另一个名字上下文对象【_ ,。 名字服务的基本运行过程如图2 4 所示。 瞄24 名字服务运行过稗 名字服务有效地解决了客户方对象的透明访问问题。采用逻辑名经名字服务器 蚓接地防问服务方对象,客户方程序代码将不因服务方对象在分柿式计算坏境中的 位置“迁移”而变化。因此,在动态调用机制中,名字服务有着重要的作用。 2 5 o r b 间通信协议 o m g 在它的c o r b a 规范中定义了两个o r b 间通信协议( i n t e r o r bp r o t o c 0 1 ) , 一个是g i o p ( 通用o r b 互通协议,g e n e r a li n t e r o r bp r o t o c 。1 ) ,另一个是i ) c ee s l o p ( d c e 环境中的o r b 间通信协议) 。下面介绍一下g i o p 。 在进行分佰式应用时,我们必须将数据和方法调用铸造成一种形式,它允许在 网络上继续该调用,并且可以在另一端使用该调用。在图2 5 中,您将看到g i o p 模 型,z 也是o s i 所使用的模型。 g 1 0 p 有三要素: ( i ) 编码方式。g 1 0 t 采用公共数据表示( c d r ) 语法。c d r 将o m gi d l 定义的 数据类型映射为二进制的表示,包括可传递的伪对象。 ( 2 ) 消息格式。g i o p 定s l t7 种类型的标准消息用于相互通信,这些消息 用来实现对象的请求和应答、对象的动态定位,以及客户和服务器之问 r _ :_ jj z 帆。l 航天人。j 硕_ j f j 【e 卫 一 j7 j 适接管j _ l l ! 这些f f i 息有小i 。吼、p i ? 、( 。iu 【| lj b l 。c c l t e r e q u e s 【、 l o c a t e r e p y 、c 1o s e c ( ) f i d o cli o n 、 e 一_ “业e i ff - ( ) r 。 对底层网络传输的要求。( ;l o p 设计成工作在不同的刚络传输层之 二, o s a p p j i c a t i o n pr e s e n t a t i o n 5 e s s l o n lr a i l s d o r t n e t w o r k d a t a l j n k p h y s i c a l g i o p 幽2 5 g i o p 协议栈 g l ) p 只是一个指导陛协议,它为工作在具体传送协议之上的实施协议规定厂编 码和消息格式的框架,目自h 常用的具体协议是i i o p ( 互联网o r b 互通协议,i n t e r n el j “。一) r b p r o t o c 0 1 ) ,它是目前最为广泛使用的o r b 互通协议,它建立存t o p l if 网络之e ,可以将r l o p 归纳为“g i o po v e rt c p i p ” 2 6 小结 本誊就c o r b a 的基本原理以及体系结构进行了i 羊细的介绍,并对在集成技术中 将要使用的部分进行了着重的介绍,例如:调用方式、名字服务以及o r b 问通信协 议等,在后续章节特别是第四章中,我们通过c o r b a 与w e bs e r v i c e s 之间的比较 分析,从而得出集成技术的实现思路。 第三章w e b 服务概览 随符s o a i ”牟技术的发展与普及,以及电予商务的迅速崛起,- 4 1 新的基于w e b 的丌发j ! i 用模式( 更确切地说,应该是思想) 正在迅速发展,这就是w e b 服务( b s e r v ic e s ) 。w e b 服务基,。一些正在发展中的一些技术,比如s o a t ,、ij d d 【、w s d i 。, 提供了以往任何一种技术都不可能提供的不同平台之间的互操作p t 。w e b 服务使应 用程序的集成比以前更快、更容易而且更便宜。集成在协议栈中较高层发生,它基 于更注重服务语义而不那么注重网络协议语义的消息,从而实现丁业务功能的捡敞 集成。这些特性对于在企业之间和企业内部通过w e b 连接业务功能是非常理想的。 它们提供一种一致化编程模型从而在企业内外都可以利用通用的基础设施并以一 种通用的方法进行应用程序集成。利用现有的语言和平台以及旧应用程序,可以以 一种增量的方式来集成和应用w e b 服务。此外,w e b 服务遵循j a v a2 平台,1 2 e e ( j a v a2p 1 a t f o r m ,e n t e r p r i s e g d i t i o n ) 、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 f e ) 以及其它针对与耦合较紧的分 伯式或非分布式应用程序集成的标准。i v e b 服务是部署并提供通过w e b 访问业务 功能的技术;c o r b a 、。】2 e e 和其它标准是实现w e b 服务的技术。 3 1 什么是w e b 服务 w e b 服务是一个崭新的分布式计算模型,尽管其思想早就存在。但其得到迅速 发展却是最近的事情。w e b 服务是一系列标准的综合,这些标准包括x m 、s o a p 、 0 d d l 、w s d l 和w s f l 等:这些标准中许多还不成熟,还处于发展之中。w e b 服务利 用这些标准提供了一个松散耦合的分布式计算环境:在w e b 服务的模型中,厂商将 其服务封装成一个个相对独立的w e b 服务,每个服务提供某类功能;客户( 或足其 他厂商) 可以通过绑定到h t t p 的s o a p 协议来访问这些服务。 w e b 服务是描述一些操作( 利用标准化的x m l 消息,传递机制可以通过网络访问 这些操作) 的接口。w e b 服务是用标准的、规范的x m l 概念描述的,称为w e b 服 务的服务描述。这一描述囊括了与服务交互需要的全部细节,包括消息格式( 详细 描述操作) 、传输协议和位置。该接口隐藏了实现服务的细节,允许独立于实现服 务基于的硬件或软件平台和编写服务所用的编程语言使用服务。这允许并支持基于 w e b 服务的应用程序具备松散耦合、面向组件和跨技术实现等特点。w e b 服务履行 项特定的旺务或一组任务。w e b 服务町以单独或同其它w e b 服务一起用于实现 复杂的聚集。1 = “ 3 1 1 w e b 服务模型 w ,f 】k 务体系结陶j r j 三冲角色( 服务提供者、服务代理和眦务请求旨) 之mj 的交n ,使用b o a ( 面向服务的架构,s e r v i c eo r i e n t e da r c h 儿u c t u i e ) 架构。 个参与者分别是服务提供者( s e r v i c ep r o v i d e r ) 、服务请求者( s e r v ic er e q u e s l e f ) 和服务代理( s e r v ic eb r o k e r ) ,而三种交互操作分别是发布( p u b l i s h ) 、查找( f in d ) 相绑定( b i n d ) 操作。这些角色和操作一起作用于w e b 服务构件:w e b 服务软件 f 块及填描述一仃媳型i h ;h l 卜,服务提供者托管可通过网络访问的软件模块rw e t ) 服 务的 个实现) ,同时它定义w e b 服务的服务描述并把它发伟到服务请求旨或服务 代理。服务请求者使用奁找操作来从本地或服务代理检索服务描述,然后使用服务 描述与服务提供者进行绑定并调用w e b 服务实现或同它交互。服务提供者和服务 请求者角色是逻辑结构,因而服务可以表现两种特性。w e b 服务体系结构解释了如 何实例化元素和如何以一种可以互操作的方式实现这些操作,图31 图示了这屿 操作、提供这些操作的组件及它们之间的交互。“j 幽3 1 w e b 服务模型 3 1 2 w e b 服务体系结构中的角色与操作 n ;纠j 】:p 给出的服务摸型中,一j 个角色组成了* e b 服务的奉,作用在其上 的操作完成了各项功能,f 面分b l j 将角色与操作的作用列出: 服务提供者:从应用的角度看,这是服务的所有者。从体系结构的角度看,这 是托管访问服务的平台。 5 务请求托:从应川的角度看,这是要求满足特定j j 能的刚户,从体系结陶的 f 度百,这是; 找并渊辟j 服务,或启动与服务的交互的应用程序。服务i # - j 皆角色 以;j j | | 览器求担当,山人或无用户界面的程序来控制它。 服务代郧:这是可馊糸的服务描述注册中心,服务堤供哲征此发f f j 服务描述。 t 7 【:静念绑定或动态绑定执行期州,服务请求者查找服务并获得服务的绑定信息( 征 服务描述中) 。对于静态魏;定的服务请求者,服务代理是体系结构中的可选角色, 因为服务提供哲可以把描述直接发送给服务请求者。同样,服务请求者可以从服务 代胖以外的其它来源得到服务描述,例如本地文件、f 1p 站点、w e b 站点、广告和 暇务1 9 观( a d v e r t ls e m e n l a n db ls c o v e f yors er v lc 。s 如s ) ! 戈发现w 曲暇务 td lslo v e j y y 0fw e b s e r v lc o s ,d i s c o ) 等等。 对 二利用w e b 服务的应用程序,必须发生以下三个行为:发布服务描述、查 治j 或奁找服务描述以及根据服务描述绑定或调用服务。这些行为可以单次或反复出 现。这些操作具体为: 发布:为了使服务可访问,需要发布服务描述以使服务请求者可以查找它。发 t - 服务描述的伊嚣可以根据应用程序的要求而变化。 台找:在查找操作中,服务请求者直接检索服务描述或在服务注册中,心中查嘲 所要求的服务类型。对于服务请求者,可能会在两个不同的生命周期阶段中牵涉到 逝找操作:在设计时为了程序开发而检索服务的接口描述,而在运行时为 7 调用而 硷索月日务的绑楚和位置描述。 绡;宅:最后需要调斤j 暇务。在绑定操作中,服务请求者使用服务描述中的绑定 细节水定位、联系昶| 凋用服务,从而在运行时调用或启动与服务的交互。 3 2 w e b 服务协议栈”1 要以一种可互操作的方式执行发布、发现和绑定这三个操作,必须有一个包含 每一层标准的w e b 服务 办议栈。2 0 0 1 年4 月份,w 3 c 的9 7 e b 服务专题研讨会上提 出了w e b 服务堆栈( w e bs e :v i c es t a c k ) ,这定义了w e b 服务使用哪些技术( 标准) , 以及将会如何发展。图32 展示了一个概念性w e b 服务协议栈。上面的几层建立 在下面几层提供的功能之上。垂直的条表示在协议栈中每一层必须满足的需求。左 面的文本表示协议栈的那一层所应用的标准技术。 v 。h 服务协议栈的基础是网络层。w e b 服务要被服务请求者调用,就必须是可 以通过 i = 】络访问的。因特网上可以公用的w e b 服务使用普遍部署的网络协议。h t l 、| ) ,t 。_ - m h :其普遍性,成为了因特网可用的

温馨提示

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

评论

0/150

提交评论