




已阅读5页,还剩54页未读, 继续免费阅读
(计算机软件与理论专业论文)分布式对象与web技术集成的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 分布式对象技术是伴随着网络技术而发展起来的一种面向对象 的技术,它为网络计算平台上软件的开发提供了强有力的解决方 案。目前,分布式对象技术已经成为建立服务应用框架和软件构件 的核心技术,在开发大型分布式应用系统中表现出强大的生命力。 随着w e b 应用的发展,复杂大型的w e b 系统需要新的设计方案 来实现。目前,分布式对象技术和w e b 的集成成为一个良好的解决 方案。分布式对象技术在异构平台上提供了透明的分布式开发环 境,而w e b 为用户提供了友好、方便的使用界面。分布式对象和w e b 的集成,在可移植性、可扩充性都优于传统的c s 、b s 模式的应 用平台。 本文着重研究了目前流行的三种分布式对象中间件标准:0 m g 的 c o b r a 、m ic r o s o f t 的c o m d c o m c o m + 以及s u n 的r m i e j b ,详细介绍 了它们的结构和工作原理,分析了它们的不同点。同时,根据它们 各自的特点,针对目前传统的w e b 模型的不足,提出了适用于实践 的几种解决方案。最后,针对网上电子音像店的特点,选择一种合 适的方案并构建该系统的原型用于指导该系统的实现。 关键词:c o r b a 、r m i e j b 、c o m d c o m c o m + 、w e b 、集成 a bs 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 is b e c o m i n g a n o b j e c t o r i e n t e d t e c h n o l o g y w i t ht h e d e v e l o p i n g o fn e t t e c h n o l o g y i tp r o v i d e s a s t r o n gs o l v i n g s c h e m ef o rt h es o f t w a r e d e v e l o p m e n t o nn e t c o m p u t i n gp l a t f o r m a tp r e s e n t ,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 a l r e a d yb e c o m e st h ec o r et e c h n o l o g yo fb u i l d i n gs e r v i c ea p p l i c a t i o n a r c h i t e c t ur ea n ds o f t w a r ec o m p o n e n t ,a n di ts h o w ss t r o n gl i f t f o r c e o nd e v e l o p i n gl a r g ed i s t r i b u t e da p p l i c a t i o ns y s t e m 。 w i t ht h e d e v e l o p m e n t o fw e ba p p l i c a t i o n ,c o m p l e x l a r g e w e b s y s t e mn e e d sn e wd e s i g ns c h e m e t oa p p l y 。t h e s ed a y s ,t h ei n t e g r a t i o n o fd i s t r i b u t e d o b j e c tt e c h n o l o g ya n dw e bb e c o m e s a r i g h ts o l v i n g s c h e m e ,d i s t r i b u t e d o b l c o tt e c h n o l o g yp r o v i d e s a t r a n s p a r e n t d i s t r i b u t e dd e v e l o p i n ge n v i r o n m e n to nh e t e r o g e n e o u sp l a t f o r mw h i l e w e b t e c h n o l o g yp r o v i d e sf r i e n d l ya n dc o n v e n i e n tu s e ri n t e r f a c e ,w i t h t h e i n t e g r a t i o n o ft h e m ,i tc a np r o v i d ean e wa p p l i c a t i o np l a t f o r m w i t hm o r e p o r t a b i l i t ya n df l e x i b i l i t yt h a nt h et r a d i t i o n a lc l i e n s o r v e r a n db r o w s e r s e r v e rm e d e s t h ee m p h a s i so ft h ea r t i c l ei st h er e s e a r c ho nt h et h r e ep r e s e n t p r e v a i ld i s t r i b u t e do b j e c tm i d d l e w a r es t a n d a r d s :c o r b ao fo m g 、 c o m d c o m c o m + o fm i c r o s o f tc o r p o r a t i o na n dr m i e j bo fs u n c o r p o r a t i o n ,p a r t i c u l a r l yi n t r o d u c i n gt h e i ra r c h i t e c t u r ea n dw o r k i n g t h e o r y 、a n da n a l y z i n g t h e i rd i f f e r e n t i a e a tt h es a m et i m e ,o nt h eb a s e o ft h e i rs p e c i a l t i e s ,w ep u tf or w a r ds e v e r a ls o l v i n gs c h e m e sw h a tc a n b ea p p l i e di n r e a l i t y i nt h ee n d ,i na l l u s i o n t ot h e s p e c i a l t yo fn e t e - v i d e o s t o r e ,w e c h o s ea n a p p r o p r i a t e m o d ea n d d e s i g n t h e p r o t o t y p ef o rd i r e c t i n gt h er e a l i z a t i o no ft h ea p p l i c a t i o ns y s t e m k e y w o r d s :c o r b a 、r m i e j b 、c o m d c o m c o m + 、w e b 、 i n t e g r a t i o n l l 第一章引言 1 1 分布式对象技术的发展 二十世纪七十年代以来,计算机技术发生了巨大的变化,特别 是网络技术的飞速发展,导致应用的规模越来越大,导致软件的复 杂程度不断增加,系统结构在软件设计和开发过程中所起的作用越 来越重要。 早期的软件产品都是单机软件系统,软件没有层次概念,通常 一个应用程序包含所有的用户界面、业务规则以及数据处理,应用 的数据有可能存放在远程机器上,但访问数据的逻辑被包含在应用 程序中。单层应用软件由于包含所有的应用逻辑,从后台的最基本 的数据处理,到前台对用户的响应以及处理结果的显示,所以应用 软件自身的规模往往比较庞大。即使应用程序有多个d l l 程序模块 用来处理不同应用功能,但从软件的整体结构来讲,它仍然是个单 层应用软件。 由于单层应用软件比较庞大,所以相应地带来一些不利因素: 在设计阶段,要求设计人员必须面面俱到,从复杂的逻辑结构中整 理出程序设计文档;在开发阶段,软件开发人员之间的写作比较困 难:在测试和维护阶段,对软件的局部改动可能会影响到整体;另 外,要想升级必须调整或废弃原来大量的代码,因此很难升级适应 新的需求。 这种单层系统结构所包含的应用逻辑关系难以满足实际应用系 统,特别是对于网络应用或者分布式应用来说。于是自然地,应用 程序分成了两部分,客户端部分和服务器端部分,从而形成了两层 结构,即客户机服务器( c s ) 。在这种两层结构的应用中,用户 界面和业务规则在应用的客户端,数据维护在服务器端实现。这种 两层的体系结构在出现后经过不断的完善,在许多领域应用系统的 实现中得到广泛运用。 进入9 0 年代中期后,随着网络应用普及,软件应用的规模和范 围无限拓展,许多应用程序需在网络环境的异构平台上运行。在这 种异构的环境中,不但存在多种硬件系统平台,而且包括运行在这 些硬件平台上的各种系统软件以及风格各异的用户界面,这些硬件 系统平台还可能采用不同的网络协议和网络体系结构连接。由此带 来的问题也越来越明显,如不同硬件平台、不同网络环境、不同数 据库之间的互操作问题,多种应用模式并存、系统效率过低、传输 不可靠、数据加密、开发周期过长等等。单纯依赖传统的系统软件 或工具软件提供的功能已经无法满足要求。在这种情况下,整个应 用系统的体系结构从c s 的主从结构向灵活的多级分布结构的重大 演变,是其在当今以w e b 技术为核心的信息网络的应用中予以更新 的内涵,使得企业管理软件系统的网络体系结构跨入第三阶段,即 浏览器服务器( b s ) 体系结构,它将前端事务处理逻辑与后端数据 库处理原则组合起来,成为独立的一层,形成了三层网络结构。在 b s 结构下,客户端只需安装浏览器,它运行显示逻辑,以便使用 户和服务器进行交互。而服务器端处理大部分的任务,如对客户端 的请求进行处理,完成对数据库的访问,并将结果返回到客户端。 它兼备了集中处理模式和c s 结构体系的分布协同处理模式”3 。 与c s 处理模式相比,它大大简化了客户端,只要装上操作系 统、网络协议软件以及浏览器即可,这时的客户机成为瘦客户机, 而服务器则集中了所有的应用逻辑。几乎所有的开发工作都集中在 服务器端,同时,当企业对网络应用进行升级时,只需更新服务器 端的软件,而不必更换客户端软件,减轻了系统维护与升级的成本 与工作量,使用户的总体拥有成本有很大的降低。 面向对象技术产生于二十世纪7 0 年代末。面向对象的概念首先 运用在s m a l l t a lk 语言。根据面向对象的模型,系统是由一组相互 合作的对象构成的。在随后的二十年中,面向对象技术大大改变了 系统的建立和维护方式,并诞生了大量的面向对象分析( o o a ) 、面 向对象设计( o o d ) 和面向对象编程( 0 0 p ) 工具。然而,面向对象技术 的发展还远未结束。由于一些旧有系统无法简单地转移到0 0 平台, 面向对象技术尚未得到充分利用。但是,由于面向对象技术所独有 的易维护性、可重用性,及其对软件生存周期费用的减少,它己被 越来越多的人接受”1 。 分布对象技术就是在网络技术和面向对象技术的基础上发展起 来的。在分布对象计算中,参与计算的计算体一般是对称的。分布 对象往往又被称为组件( c o m p o n e n t ) ,组件是一些独立的代码的封 装体,在分布计算的环境下可以是一个简单的对象,但大多数情况 下是一组相关的对象复合体,提供一定的服务。分布环境下,组件 是一些灵敏的软件模块,它们可以位置透明、语言独立和平台独立 地互相发送消息,实现请求服务。与传统的面向对象技术相比,分 布对象技术如下的不同: 面向对象技术有两个基本的特点:封装性和继承性,强调的是 代码复用。丽分布式对象技术在采用了耐向对象技术的封装性后, 可以把舀己布鬟在嘲络的任何位置,远程客户通过方法调用来访问 它。这是分布式对象技术和传统的面向对象技术的最大的不同点; 分布对象诗算系统中都不支持跨菇赢静继承住,褥对象不同, 它可以继承另一个站点的代码和数据; 在努布式对象里我们一般不箍对象,丽是缀伴。在分布对象计 算中,我们往往会把一些小的相关的对象组合在一起,形成一个相 对魄较大瓣缝 孛,逶遵这个缀箨来键燕一系列豹服务“1 。 分布式对象技术采用面向对象的多层客户服务器计算模删,该 攘型薅分密在蹰终上黪全懿嶷源( 笼论燕系统鬃还是疲翅层) 帮按 照对象的概念来组织,每个对象都有定义明晰的访问接口。创建和 维护分蠢瓣象实体鲍瘦月穆为双务器,按照接口访阀该对象瓣应瘸 称为客户。服务器中的分布对象不仅能够被访问,而鼠自身也可能 乍为其德对象的客户。因此在分布慰象技术中,窖户与服务器静焦 色划分是相对的或多层次的。同时,现在的软件功能臼趋复杂,可 以使用的工具和基础软件也大量地增加。遮使得当前的软件开发工 作不仅仅是按照用户的需求,编制实现其功能的代码,而是将许多 现商软件根据需求的情况集成在一起,形成一个多项软 牛紧密合作 的究整系统。值是,进行集成的各秭软 串互不鞠同,备有各的接日 方式,特别是许多遗留系统,其功能复杂,但是接口方法落籍,与 现代的软件工 窜模式不福适艘。中瀚释佟为存在于系统软件与应溺 之间的特殊层次,抽象了典型的应用模式,从而使应用软件制造者 霹黻更多建将愚路藏强韭务逻辑中,并按照标壤翡形式遴暂开发, 这样就使软件构架化成为可能。一烛标准的推出,例如o m g 定义了 逶耀靛对象访弱中夯钵系c o r b a ,赣ic r o s o f t 提窭了e o 耩彝c o 瓣e 0 麓 结构,s u n 提出了r m i e j b 结构等,进一步使中间件成为可复用组 孛静运嚣框架,攘速了较孛复霆的瑷实蚀迸程。 由此可知,分布式对象技术不是相关技术的简单综合,而是一种 更强大、燹灵活豹应瘸平台。它显著缝改变了接绫熬应惩系缀薅系, 缩短了开发周期,同时减少了开发费用。特别是将分布式对象技术 与中闻传缝合,露啦馕分蠢式对象灵活地分毒在霹络螺壤中,通过 分布式对象的通信、转移来究成复杂的应用。中间件技术、分布式 对象技术及w e b 技术作为计弊枫瞬络积软l 牛技术飞速发展的产物, 已经有了很大的影响力,它们各有备的优点,分别可以解决不同的 3 问题。因此,在许多应用中,我们需要同时使用这些技术。如何将 这几项技术结合,充分发挥它们各自在开发、集成和维护的优点, 使它们成为统一的整体,成为当前软件研究上的一个热点”3 。 1 2 中间件技术 1 2 1 中间件的产生和特点 随着计算机技术的飞速发展,很多应用软件需要在各种平台之 间进行移植,或者一个平台需要支持多种应用软件和管理多种应用 系统,软、硬件平台和应用系统之间需要可靠和高效的数据传递或 转换,使系统的协同性得以保证。这些,都需要一种构筑于软、硬 件平台之上,同时对更上层的应用软件提供支持的软件系统,而中 间件正是在这个环境下产生的。 目前,由于中间件技术还处于发展之中,还不能给其明确的定 义,比较流行的定义是:中间件是一种独立的系统软件或服务程序, 分布式应用软件借助这种软件在不同的技术之间共享资源。它位于 客户机服务器的操作系统之上,管理计算资源和网络通讯。从中 间件的定义可以看出,它是一类软件,而非一种软件;它不仅仅实 现互连,还要实现应用之间的互操作;它是基于分布式处理的软件, 定义中特别强调了其网络通讯功能“1 。 通常意义下,中间件应具有以下的一些特点:满足大量应用的 需要;运行于多种硬件和0 s 平台;支持分布式计算,提供跨网络、 硬件和o s 平台的透明性的应用或服务的交互功能;支持标准的协 议;支持标准的接口。程序员通过调用中间件提供的大量a p i ,实 现异构环境的通讯,从而屏蔽异构系统中复杂的操作系统和网络协 议。它提供客户机与服务器之间的连接服务,这些服务具有标准的 程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符 合接口和协议规范的多种实现。由于标准接口对于可移植性和标准 协议对于互操作性的重要性,其已成为许多标准化工作的主要部 分。对于应用软件开发,它远比操作系统和网络服务更为重要,它 提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的 计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并 保持其对外的接口定义不变,应用软件几乎不需任何修改,从而保 护了企业在应用软件开发和维护中的重大投资。 由此可见,中间件是一种独立的系统软件或服务程序,分布式 应用软件借助这种软件实现在不同的技术之间共享资源。它管理着 4 客户端程序和数据库或者早期应用软件之间的通讯。中间件在分布 式的客户和服务之间扮演着承上启下的角色,如事务管理、负载均 衡以及基于w e b 的计算等。利用这些技术有助于减轻应用软件开发 者的负担,使他们利用现有的硬件设备、操作系统、网络、数据库 管理系统以及对象模型创建分布式应用软件时更加得心应手。由于 中间件能够保护企业的投资,保证应用软件的相对稳定,实现应用 软件的功能扩展;同时中间件产品在很大程度上简化了一个由不同 硬件构成的分布式处理环境的复杂性,所以它的出现正日益引起用 户的关注。 1 2 ,2 中间件的分类 一般来说,根据中间件在系统中的作用,人们把其分成八类, 即消息中间件、事务处理中间件、数据存取管理中间件、w e b 服务 器中间件、安全中间件、跨平台和构架的中间件、专用平台中间件 和网络中间件。 消息中间件:消息中间件的作用是实现不同平台之间的通信, 实现分布式系统中可靠的、高效的、实时的跨平台数据传输( 如b e a e l i n k 、i b m 的m q s e r ie s 等) : 事务处理中间件:在联机事务处理系统( o l t p ) 中,每笔事务常 常要多台服务器上的程序顺序地协调完成,一旦中间发生某种故障 时,不但要完成恢复工作,而且要自动切换系统,达到系统永不停 机,实现高可靠性运行。同时要使大量事务在多台应用服务器能实 时并发运行,并进行负载平衡地调度,实现昂贵的可靠性机和大型 计算机系统同等的功能。为了实现这个目标,要求系统具有监视和 调度整个系统的功能。目前,成熟的产品有b e a 的t u x e d o 、东方通 科技公司的t 0 1 2 9 l i n k 和t o n g e a s y : 数据存取管理中间件:在分布式系统中,重要的数据都集中存 放在数据服务器中,它们可以是关系型的、复合文档型、具有各种 存放格式的多媒体型,或者是经过加密或压缩存放的,该中间件将 为在网络上虚拟缓冲存取、格式转换、解压等带来方便; w e b 服务器中间件:浏览器图形用户界面己成为公认规范,然 而它的会话能力差、不能作数据写入、受h t t p 协议的限制等,就 必需进行修改和扩充,形成了w e h 服务器中间件,如s i l v e r s t r e o m 公司的产品; 安全中间件:安全中间件主要在军事、政府和商务部门等对安 全要求很高的部门应用。一般来说,不安全因素主要是由操作系统 引起的,解决的方式是采用中问件,以适应灵活多变的要求; 跨平台和构架的中间件:当前开发大型应用软件通常采用基于 构架和构件技术,在分布系统中,还需要集成各节点上的不同系统 平台上的构件或新老版本的构件,由此产生了跨平台和构架的中间 件; 专用平台中间件:为特定应用领域设计领域参考模式,建立相 应构架,配置相应的构件库和中间件,为应用服务器开发和运行特 定领域的关键任务( 如电子商务、网站等) ; 网络中间件:它主要提供网络管理、接入、网络测试、虚拟社 区、虚拟缓冲等功能“1 。 1 3 本文的研究内容和意义 本文主要研究分布式对象技术与w e b 技术集成的应用,主要包 括以下三个方面的内容: l 、对主流的三种分布式对象技术的基础理论进入深入的研究与 探讨,并在此基础上提出了适用于实践的几种集成方案; 2 、根据客户的不同需求构建相应的集成方案并进行深入的比较 研究,以便给客户的选择提供指导; 3 、根据网上电子零售音像店的特点,提出一种可行的集成方案, 并构建该系统的原型用于指导于该系统的实现。 基于分布式对象技术的w e b 解决方案,具有灵活性、可扩充性 的特点,在效率方面也有很大的提高。它能够弥补传统的w e b 模型 的不足,适合在连锁式的零售商业系统。对于目前蓬勃的电子商务 行业来说,方案具有很好的应用前景。 第二章分布式对象技术简述 在分布式对象中间件的发展过程中,逐渐形成了三种具褥代表 谴豹技术:o m g 的c o r b a 、m i c r o s o f t 的e o m d c o 礁c o 擀+ 和s u n 的 r m i e j b 。它们都是基于分布式对象技术的,与程序设计语言无关, 实现了瓣络上静分布式应蠲。 2 , o o r b a 技术 公共对象请求代理体系结构c o r b a ( c o m m o no b j e c tr o q u es t b r o k e ra r c h i t e c t u r e ) 是对象管壤缓o m g ( o b j e e t m a n a g e m e l 2 t g r o u p ) 于19 9 1 年提出的分布式对象规范,用于实现软件的分布式 应溺。下嚣我们对c o r b a 的孩心技术进行详细黪奔缀。 2 1 ,1 对象管理体系缩构 对象镶理体系结构o m a ( o h j e c tm a n a g e m e n ta r e h i t e e t u r e ) 是 o m g 定义的个对象参考模型,该模型描述了o m g 规范所遵循的概 念化基础缕构,也是对一个完全的分布式环境的赢层描述。o m a 是 由两大部分组成:面向系统的组件和面向应用的组件。其中,面向 系统的组件主要包括对象请求代理o r b ( o b j e e tr e q u e s tb r o k e r ) 和对象服务;稀向应用的组件主要包括公用设施和应用对象。o m a 参考模型如图2 1 所示。 单单罕 !室烹 。 |对象请求健理( o r b )| 。、,!i!:。一 l公角瓣象服务l 图2 1o m a 参考模型图 对象清求我淫o r b o b j e e tr e q u e s tb r o k e r ) o r b 是o m a 的核心部分。利用o r b 可以使对象在异构分布式环境 中遴骋遮发送请求及接收酶艨,是梅造分蠢式鼹象应弼窥镬疲弱在 不同层次上实现异构甄操作的基础。o r b 的基本原理是在对苏的使 用方弓l 入一个舅地对熬约筏壤,由它将对象馒爱者的谗求传递绘舅 地的对象实现,并将异地对像的服务结果返回使用者;同时,在对 象鲍实现方弓l 入一个对象适配器,出它截获异地发来泡请求,激活 被请求的对象完成指定的任务,并将结果返回请求方。 7 对象服务( o b j ec ts e r v ic e s ) 可为创建对象、对象访问控制、对象追踪和对象引用等提供一 套标准函数和系统服务,应用系统开发人员可以直接调用提供服务 的函数,从而扩充了o r b 的功能。 c o r b a 设施( c o r b af a c i l i t a tes ) 公共设施是向终端用户应用程序提供的一组共享服务接口,它 为分布式软件开发提供的是“应用”级别的公共服务。这一部分没 有一个统一的标准,可以通过调用基本对象服务来实现。通过使用 公共设施提供的功能,在开发分布式应用软件的过程中,我们可以 不必重新从零开始,对于一些在公共设施中已经实现的通用基本功 能,就可以直接拿来使用,这样使我们可以专注于那些专用业务, 大大缩短了开发周期,提高了效率。 领域接口( d o m a ini n t e r f a c e ) 领域接口是为特定应用领域服务而提供的接口,如金融、电信、 医疗保险、制造业等。 应用接口( a p p l i c a t i0 nin te r fg t ce ) 应用接口是由开发商提供的产品。它不属于o m g 标准的内容, 而是o m a 的最高层5 引。 2 1 2c 0 r b a 体系结构 c o r b a 体系结构和他们之间的关系如图2 2 所示,它主要包含 一下内容:o r b 核心、o m g 界面定义语言、语言映射、存根( s t u b ) 和框架( s k e le t 0r 1 ) 、动态调用和仓库、对象适配器和o r b 之间的 互操作”。 接 口 雇 客户程序( c ii e n t )i|服务器应用程序 冀誉l 黧 器jl 誉li 蓁誊li 蓁著li 誓 客户机o r b 核心卜_ 叫服务器o r b 核心 现 库 图2 2 公共对象请求代理体系f c o r b a ) i d l 语言 在客户向目标对象发送请求之前,它必须知道自己目标对象所 支持的操作的特性。o m gi d l 是c o r b a 的基本抽象机理,它从实现 中分离出对象接口。o m gi d l 在客户机和服务器程序之间建立一个 契约,用它来描述在应用程序中需要用到的类型和对象接口。o m g i d l 是一种说明性语言,它不能用于编写直接的应用程序,不提供 控制结构或变量,所以它不能被编译或解释成一个可执行的程序。 它只适用于说明对象的接口,定义用于对象通信的数据类型。所以 在具体应用中,需要把i d l 的特性映射为具体语言的实现,这就是 语言映射的任务。除此之外,o m gi d l 编译器还根据界面描述来产 生客户方的存根( s t u b ) 和服务方的框架( s k e le t o n ) 。存根代表客 户创建并发出请求:框架则把相应的请求交给c o r b a 对象实现。由 于存根和框架都是通过对用户的界面定义进行编译而得,所以通过 存根和框架的调用被通称为静态调用”“”“。 o r b 核心 c o r b a 规范将那些相对固定的、单一的功能提取出来交由0 r b 内 核实现,以保证它的可靠性、高效性与可重用性。作为整个c o r b a 系统的基础,o r b 内核通过屏蔽诸如服务器位置、实现方式、通信 协议等具体细节,为客户方与服务器方之间的通信提供了透明的传 输机制。当前的应用系统存在着各种不同的对象实现方式,如果将 现存的所有对象实现的解决方案都包含在o r b 内核中,必将非常庞 大、冗余并且难以移植。而对象适配器可作为伺服程序和o r b 之间 的纽带,把定位目标对象的任务从o r b 内核中分离出来。 客户程序( c 1 ie n t ) i d l 存根和动态激活a p is 。客户i d l 存根提供了访问对象服 务的静态结构,这些由i d l 编译器生成的预编译存根,对应于 c l ie n t 对应激活处于s e r v e r 上的相应服务;另一方面,通过使用 d i i 提供的界面,客户可以动态的激活a p is 而实时地发现c l i e n t 想发现的服务对象,并调用其方法。与静态调用相比,d i i 允许应 用程序在运行时访问在编译该应用程序时未知的对象。 o r b 接口。o r b 接口是不依赖于所用对象适配器的o r b 函数的 接口,其定义和操作由o r b 核心实现。o r b 的绝大部分功能都是由 对象适配器,存根,框架或动态激活a p is 提供的,因而o r b 接口 仅仅是所有对象间的一些公共操作。 接口库i r ( i n t e r f a c er e p o s i t o r y ) 。接口库是o r b 的一个组 成部分,它负责存储,修改和管理对象接口定义,用户程序使用i r a p is 存取和修改这些信息。接口库提供接口定义的存储管理,并提 供对用i d l 描述的对象定义集的存取,i r 中的信息可以被c l i e n t 和s e r ve r 共同使用。 对象实现( s e r v e r ) se r v e r 并不知道静态和动态激活对象引用的区别,因为这两种 方式均提供了相同的激活消息语义。o r b 通过s e r v e r 的i d l 框架定 位一个对象适配器,传输控制参数和转换控制给对象实现。 静态框架( s t a t i cs k e l e t o h ) 。静态框架在s e r v e r 端,s e r v e r 输出的每个服务通过此接口。这些接口像c l ie n t 存根一样,使用 i d l 编译器创建。 静态调用限定客户程序只能使用编译时能够确定的i d l 接口。 服务器通过回调( c a l l b a c k ) 可以访问客户端的对象( 这时客户端转 换为服务器端) 。 动态框架( d y n a m i cs k e le t e e 1 ) 。动态框架接口( d s i ) 是相对 于客户方动态调用接口的服务方接口,为服务程序提供了运行时的 捆绑机制,它检查所接收的消息的参数以决定目标对象和方法。动 态调用允许客户程序在运行时通过请求命名服务及查询接口仓库 来获得目标对象引用,操作和属性名,以及要传递的参数,动态地 构造对远程对象的请求。 对象适配器o a ( 0 b j e c ta d a p t e r ) 。它是对象实现用来存耿 o r b 所提供的服务的接收方式。它位于0 r b 核心通信服务的顶层, 负责接收代表s e r v e r 对象的服务请求。它为实例化s e r v e r 对象, 向s e r v e r 传送请求和为s e r v e r 制定对象引用的对象提供一个实时 环境。对象适配器对所支持的类和实现库中的实现的实时实例对 象,并规定每一个o r b 必须支持一个标准的对象适配器一基本对象 适配器( b o a ) 。 另外,s e r v e r 可以支持多个对象适配器,因为一个对象适配器 定义了在当前进程或线程中是否激活一个对象方法,是否创建一个 新的进程,是否创建一个线程。 b o a 是静态调用方式下使用的,它提供聊服务器对象实现可以访 问的操作,它是通过专用接口与o r b 内核和实现框架进行连接,即 意味着b o a 是o r b 专用的,不同厂家的o r b 产品有着不同的b o a 实 现。这导致服务器和不同的o r bs 接口之间的不一致性,给服务器 程序在不同的o r b s 间的移植带来了困难。另外,在b o a 中,只要 简单地调用几个常用的函数就可以调用服务器端的函数,没有给对 象一个永久的标志,这给实现跨服务器生命周期的对象带来了困难 【2 【4 【6 1 7 1 可移植的对象适配器p o h ( p 0 r t a b l e 0 b j e c ta d a p te r ) 是在 c o r b a 2 3 规范中引进的,目的是为了弥补b o a 的不足。p o a 支持的 对象模型是o m a 对象模型的特殊形式。p o a 规定可移植的a p is :并 允许为接口的类实现有选择地提供一个侍从管理员( s e r v a n t m a n a g e m er l t ) ,通过向自己的p o a 注册管理员,允许服务员控制服 务对象的创建,激活和撤销等。 实现库ir ( i m p le m e n t a t i0 nr e p os i t o r y ) 。实现库也是o r b 的一个组成部分,它为我们提供了实现动态定位、激活对象所需要 的对象实现的各种信息。通过使用这些信息,可以了解分布式对象 的实际运行状态,并进一步建立对象引用与对象实现实例之间的关 联。尽管i r 中的绝大多数信息对o r b 操作环境而言是特定的,但 实现库是记录这些信息的一般场所。通常情况下,对象实现的安装 和对象实现的激活与执行相关机制的控制均是通过作用于实现库 上的操作来完成的。同时,对于实现o r b 功能而言,实现库也是存 储与o r b 的实现有关的附加信息的一般场所,如调试信息,管理控 制,资源定位和安全等也与实现库有关。 由此可见,使用c o r b a 能够实现应用程序之间的相互通信,而 不论他们的位置,编程语言以及操作系统环境是否相同。c o r b a 规 范以其自身的优势领导着开放分布处理的发展,它具有以下突出特 点: 分布计算技术和面向对象编程技术( o o p ) 相融合。 通过代理,不但可以屏蔽实现细节,还能实现客户端程序和 服务器端程序的完成分离。 提供了“软件总线”的功能,实现了软构件的即插即用。 设计原则和实际方式的层次化,从而使o r b 始终处于非常简 练的状态”。 2 1 3c c m c c m ( c o r b ac o m p o n e n tm 0 d e l ) 是在c o r b a 3 0 中提出的构件模型, 其大致结构如图2 3 所示。 图2 3c c m 结构 其中,d e p l o y m e n t 模块用于部署和配置c o m p o n e n t ;c o m p o n e n t 所裔最终提供的服务由s e r v e r 模块组成;c o m p o n er l t 模块用于实现 s e r v e r 所运行的环境,包括安全、枣务、负载平衡等功能,避常这 一部分敢在p o a 中实现。 c c m 不仅最大限度地推行了软件复用,而且也为基于c o r b a 的应 蔫的动态配置撼供了缀高酌最活往。支持完整的c c m 需要如下的几 个部分: 提供了更翻完备豹i d l 与其俸语言鹃映射 o m g 除了定义了i d l 向c ,c + + ,h d a ,j a v a ,s m a l l t a l k 簿语言 兹浚嚣之辨,又增翻了j a v a t 0 一i d l 懿浚赫。j a v a t o i d l 娆藩主 要提供与其它语言的甄操作性以及标准的通信胁议的支持,易于 i d l i i o p 熬映冀重,实溪了语言、协议趋互操作瞧。 支持面向对象设计的脚本语言( s c r i p t ) s c r i p t 将许多黠象糙台袭一起,形成一个其鸯完熬独立凌疑夔 应用服务器。它简单易用,并能够准确无谡地反映构件的内部组织, 薅且规范地对系统进行变更秘秀级。根据s c r i p t 的诿法援藏,它 可以支持v b s c r i p t ,c o r b a s c r i p t ,p e r l 等。其中,c o r b a s c r i p t 语蠢是一葶申瓤的露向对象的c o r b a 系绞的脚本语言,它不仪能激 活对象,获得和设置对象的鞴性,进能实现所有的i d l 接口。通过 它,可以方便地对o r b 总线上的对象进行操作、管理、配鬟、连 接、生成和刺豫等操撵。 能够实现c o r b a 对象 既可阻实现c l i e n t 端的实现,又可虢写s e r v e r 端的代溺。弼 s c r ip t 实现的c l i e n t s e r v e r 与其它语义实现的对象没有本质上 静嚣剩。c c m 主安着眼予s e r v e r 对象的携力,箕主要钵现在 稻雳 c i d l ( c 0 m p o i 3 e 1 3 ti m p l e m e n td e f i n i t io nl a n g u a g e ) 描述每个构 臀及萁关系;稳矮x m l 懿o s d ( o p e ns o f td e s c r i p t i o n ) 佟为程序 包的描述子,用于描述有关构件的创建、集成及部署所需要的信息; 弓l 入容器缡程模型,熹度接象并覆纯b o a 帮c o r b a 羧务;支持独立 于构件具体实现的事务机制。此外,c o r b a 构件还支持异常的本地 处臻蟊黄递,对灏本语言不支跨戆l d l 类蹙进行嚣装载鼹包,趿及 针对伪对象提供反射机制“5 ”“。 2 , ,4o r b 闯协波 早期的c o r b a 规范中没有定义标准的o r b 之间互操作的协议, _ 厂穗们不褥不开发自邑或借越其它蛇分布式网终协议。这些协议都 建立在它们自己的o r b 上面,之间不能互相通信。为了解决这个问 越,麸c o r b a 2 0 开始,o m g 缎织弓l 丸了一个邋瓒豹o 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 o l ,通用o r b 间协 议) 。强外,为了适应特定垮境,如分布式计算环竣( d is t r ib u t e d c o m p u t e re n v i r o n m e n t ,b c e ) ,o m 6 还艇定了另一个环境特迩的点 嫌 筝舔议e s l o p ( g n v i r o n m e n t - s p e e i f i ei n t e r o r bp r o t o c 0 1 ) 。 o r b 置矮悔需要拣罐纯的辩象孳l 嗣格式,它雹岔了一璺o r b 必须 鹣傣意,戳霞建立客户辊鞠秘标辩象之蓠豹邋信。秣潦的对象雩| 鞠 椿蕊,纛豁为霄藏搽佟酶对象零| 麓 的处 理机制,包括m t s 的对象环境、安全模型、配置管理等。c o m + 把c o m , d c o m 和m t s 三者有机她结合起来,同时也新增了一些系统服务,如 负载平衡、内存数据霹、事 牛模墅、驮弼撇务等,形成一个概念新、 功能强的缀件体系结构,使得c o m + 成为真正适用于企业应用的组件 菝本。c o m ,d c o m ,m t s 强及c o m + 瀚结掏关系粥强2 6 掰示。 j c o m + m 丁s l c o m 十c a t a l o g t r a n s a c t i o ns e r v i c e c o m 十i m d b r e s o u r c ep o o l i n g s e c u r i t y ll o a db a l a n c e e a s i e ra d m i n i s t r a t i o n i q u e u e dc o m p o n e n t s in e we v e n tm o d e l c 0 酗d c o m i n t e r f a c e b e s e dp r o g r a m m i n g la d m i n i s t r a t o ns e r v i c e 目涨 ! 涮d o n n f r a e s t n r t u 8 c t u r e 岫 l c o m p o n e n tm a n a g e m e n t d s f 舞# 搪dc o m p o n e n ts e r v i c e 圈2 6c o m d c o m m t s c o m + 之间的关系 c o m + 以系统服务鲍形式摄供应髑套下列好处:客户或蠢橡俘 程序直接利用构件服势,避免底层细节处理,减少开发成本,降低 编礴量;有些系统服务涉及到较复杂的逻辑,如需邀行底屡系统 资源的访问,应厢层较难实现;使用系统服务可增加系统可靠性 45 】 o 下面简单介绍下c o m + 掇供的系统服务。 c o m + 舅录服务 c o m 和m t s 褐件把它们的配置信息放程w i n d o w s 韵注册表中,雨 c o m + 则把大多数构件的信息放在一个新的数据库中,_ i 塞个数据库就 d q 傲c o m + 西录( c o m + c a t a l o g ) 。c o m + 嚣秉统一了c o m + 和m t s 注蓊 表,并提供了个构件管理环境。 c o m + 翡受载平甏 c o m 和m t s 不支持动态的负载平褥。c o m + 可以以透明的方式实现 动态受载平衡。麓梵,我餐饕先定义一个应鼹羧务群,然嚣我褒恕 一台机器配置成负载平衡路由器。路由节点在收到创建对象的请求 嚣,蓄先在c o m + 鏊录捻查该梅传是孬支撩爱载乎鬻,麴莱是,曼l 将 请求送到合适的服务器。请求被送到服务器后,一旦对象被创建好, 剐将对象瓣弓l 髑轰接传送到客户,在客户和服务器阕直接逡立联 系。 c o m + 态存数握库 c o m + 内存数据库i d m b 的作用是保存应用的非永久状态信息。因 l 鑫 此,为了提高系统的运行效率,应尽可能把更多的数据驻留在内存 中。i d m b 是一个驻留在内存的支持事务特性的数据库系统,为了提 高访问速度,不采用s q l 语句来访问数据,而是通过标准的is a m 技术。 c o m + 对象缓冲 对象缓冲( o b j ec tp o o l i n g ) 是指把对象的实例保存在内存中, 以便当客户请求创建对象时可以马上用到这些对象。c o m + 提供对象 缓冲的目的时在建立大型的应用系统时提高效率。 c o m 十队列构件 以前的c o m 开发是基于过程调用,客户的生存期和构件实例紧 密联系在一起。c o m + 队列构件使用的底层系统是m s m q ( m ic r os o f t q u e u es e r v e r ) 。采用消息传递技术,把客户和构件通过排队机制 分离开来。这样的好处是具有灵活的可扩展性和可用性。如果构件 暂时不可用,则客户程序仍然可以执行。如果客户很多而服务器很 少,则可以将客户的请求予以安排,从而均衡服务器的负载。 r p c 连接和消息传递的服务方式各有各自的应用范围,开发人员 可以根据最终用户的需求进行适当的选择。 c o m + 事件 c o m 提供了两种技术来处理构件和客户之间的事
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 户外摄影教学活动策划方案
- 园林雾森系统施工方案
- 天津一汽营销方案策划
- 投标申请书仪器信息网
- 大坝防护工程施工方案
- 宁夏财务咨询方案
- 2025年教师资格证考试教育教学知识与能力专项训练试卷
- 特定行业合同模板的使用指南
- 2025工会基础知识考试题库(+答案解析)
- 2026湖北专升本城乡规划专业备考指南
- 4.2《遵守规则》教学设计 -2025-2026学年八年级道德与法治上册
- 人工智能+高质量发展文化旅游产业智能化升级研究报告
- 2025年自考专业(计算机网络)考试综合练习附参考答案详解(A卷)
- 冷链技术对水果品质保持的数值预测模型研究
- 集输工应急处置考核试卷及答案
- 2025年全国保密教育线上培训考试试题库附完整答案(必刷)
- 珠江医院护理面试题库及答案
- 流程管理某省市场营销MPR+LTC流程规划方案
- 2025年江苏省农垦集团有限公司招聘笔试备考及答案详解(新)
- 2025年济南市中考英语试题卷(含答案及解析)
- 2025年人教版一年级下册数学口算题卡(1000题)
评论
0/150
提交评论