




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着计算机网络的发展,越来越多地需要使用分布式计算技术来共享资 源、平衡计算负载以及合理安排程序的位置。分布式对象技术是将分布式计 算技术和面向对象思想结合起来的一种技术,系统中的对象以分布式的方式 相互作用,构成一个完整的面向对象的分布式系统。目前国内自主研发的分 布式对象系统应用成功的还比较少。 本文讨论了分布式对象技术的相关理论,并研究了j a v a 分布式对象技术 在企业中的应用。针对一个企业应用环境,通过比较几种组件模型和分布式 对象技术,选择了一种j a v a 分布式对象技术,对一个宽带内容提供商的分布 式系统的用户中心查询系统的服务方式进行了改进,设计并实现了一个用户 中心查询服务子系统,改进了现有系统的分布式计算结构,实现了服务和应 用的集成。本文最后还对系统实现进行了有益的扩展,提高了系统的可用性, 使之方便部署。 该分布式查询系统具有具有c o r b a 兼容、轻量级、实现简单、按值传 递、不使用i d l 等一系列特点。 由于分布式系统本身的复杂性,考虑到实际应用系统的需求,本文没有 实现分布式系统的方方面面,下一阶段的研究工作可以考虑分布式对象系统 中安全性、伸缩性和事务性等特性的实现。 关键词:分布式对象技术r m i - i i o pc o r b a 应用集成 a st h ed e v e l o p m e n to fc o m p u t e rn e t w o r k s ,t h e r ei san e e dt ou s ed i s t r i b u t e d c o m p u t i n gt e c h n o l o g yt os h a r et h er e s o u r c e s ,e q u i l i b r a t ec o m p u t i n gl o a d a n d p l a c et h ep r o g r a m sw h e r ei sa p p r o p r i a t e d i s t r i b u t e do b j e c t st e c h n o l o g yc o m b i n e s d i s t r i b u t e dc o m p u t i n gt e c h n o l o g ya n dt h et h o u g h t so fo b j e c t - o r i e n t e dt e c h n o l o g y , a n da l lt h eo b j e c t si nt h es y s t e mi n t e r a c tb yad i s t r i b u t e dw a yt oc o n s t i t u t ea n i n t e g r a t e dd i s t r i b u t e ds y s t e m c u r r e n t l y , t h es u c c e s s f u la p p l i c a t i o n s o ft h e d i s t r i b u t e do b j e c t ss y s t e m sw h i c ha r ed e v e l o p e db yl o c a li n d e p e n d e n t l ys t i l ll e s s t h i sa r t i c l ed i s c u s s e sr e l a t e dt h e o r i e so fd i s t r i b u t e do b j e c t st e c h n o l o g y , a n d s t u d i e st h e a p p l i c a t i o n o fj a v ad i s t r i b u t e d o b j e c t st e c h n o l o g i e si n b u s i n e s s e n t e r p r i s e a i m i n g a tae n t e r p r i s e e n v i r o n m e n t ,t h r o u g hc o m p a r i n gs e v e r a l c o m p o n e n t sm o d e l sa n dd i s t r i b u t e do b j e c t st e c h n o l o g y , w ec h o o s eak i n do fj a v a d i s t r i b u t e do b j e c t st e c h n o l o g yt oi m p r o v et h em e t h o dt h a tp r o v i d i n gs e r v i c e so f t h eq u e r ys y s t e mo ft h ec u s t o m e rc e n t e ri nt h ed i s t r i b u t e ds y s t e mo fab r o a d b a n d c o n t e n t sp r o v i d e r sc o m p a n y , a n dd e s i g na n di m p l e m e n tac u s t o m e rc e n t e rq u e r y s e r v i c es u b s y s t e m ,i m p r o v i n gt h ed i s t r i b u t e dc o m p u t i n ga r c h i t e c t u r eo ft h e f o r m e rs y s t e ma n di n t e g r a t i n gs e r v i c e sw i t he n t e r p r i s ea p p l i c a t i o n s f i n a l l y , w e e x p a n dt oi m p l e m e n t a t i o no ft h es y s t e mt or a i s ea v a i l a b i l i t yo ft h es y s t e m ,s u c ha s c o n v e n i e n td e p l o y m e n t t h ed i s t r i b u t e dq u e r ys y s t e mh a sas e r i e so fg o o df e a t u r e s ,s u c ha s c o r b a - c o m p a t i b i l i t y , l i g h t w e i g h t ,i m p l e m e n t a ls i m p l i c i t y , o b j e c t sb yv a l u e ,n o i d lu s i n ge t c b e c a u s eo ft h ec o m p l e x i t yo ft h ed i s t r i b u t e ds y s t e ma n di nt h ec o n s i d e r a t i o n o ft h ea c t u a ln e e do ft h es y s t e m ,t h i sa r t i c l ed o e sn o ti m p l e m e n t a t i o na l la s p e c t so f t h ed i s t r i b u t e ds y s t e m ,t h er e s e a r c hw o r ko ft h en e x ts t a g ec a nc o n c e n t r a t eo nt h e i m p l e m e n t a t i o no ff o l l o w i n gf e a t u r e si nt h ed i s t r i b u t e do b j e c t ss y s t e m ,s u c ha s s e c u r i t i e s ,f l e x i b i l i t ya n dt r a n s a c t i o np r o c e s s i n g , e t c k e y w o r d s :d i s t r i b u t e do b j e c t st e c h n o l o g y r m io v e rh o p c o r b a a p p l i c a t i o ni n t e g r a t i o n 创新性声明 本人声明所呈交的论文是我个人在导师的指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容外, 论文中不包含他人已经发表或撰写的研究成果;也不包含为获得西安电子科 技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志 对本研究所作过的任何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:日甄、移o g 。| 、l o 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本 人保证毕业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电 子科技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校 可以公布论文的全部或部分内容,可以允许采用复印、影印、缩印或其它手 段保存论文。( 保密的论文在解密后遵守此规定) 本人签名: 导师签名: 至垄聋 日期:沙口彳、d 日期 牛 第1 章绪论 1 1背景 随着计算机网络的发展,越来越多地需要使用分布式计算技术来共享资 源、平衡计算负载以及合理安排程序的位置。即利用分布式计算平台来共享 数据、通过并行化提高性能以及把功能放在最能发挥其性能的地方【吲。 分布式计算( d i s t r i b u t e dc o m p u t i n g ) 是一种新的计算方式。就是在两个 或多个软件间共享信息,这些软件既可以在同一台计算机上运行,也可以在 通过网络连接起来的多台计算机上运行。 分布式计算有两类典型的应用途径。第一类应用途径是将分布式软件系 统看作直接对现实世界或问题域中分布性的建模。例如一个企业的生产和销 售等部门可能分别位于不同的地方,不同地方的系统之问应该能够互相通信, 共同完成业务的处理。分布式对象( d i s t r i b u t e do b j e c t s ) 技术是这一应用途 径的主要技术【2 l 。 第二类应用途径主要用于改进某些应用程序的运行性能,使它们比单进 程的集中式实现具有更高的运行效率,此时软件系统的分布性并不是现实世 界或睡题域中分布性的直接映射,而是为充分利用额外的计算资源而人为引 入的。例如寻找地外文明的s e t i h o m e 项目就是利用全球联网的计算机来 共同分析射电望远镜探测到的无线电讯号。网格计算( g r i dc o m p u t i n g ) 研 究是这一应用途径的典型代表。 分布式对象技术是将分布式计算技术和面向对象思想结合起来的一种技 术,系统中的对象以分布式的方式相互作用,构成一个完整的面向对象的分 布式系统。本文将讨论分布式对象理论,并研究j a v a 分布式对象技术在企业 中的应用。 1 2 问题和现状 分布式对象技术的概念提出较早,但真正作为一种成熟的技术在企业系 统中得到较多的应用却是最近几年的事。因为分布式对象技术应用起来比较 复杂,使用分布式对象技术开发的系统通常比较庞大,涉及到网络、对象技 术等多种技术,尤其是公共对象请求代理体系结构( c o m m o no b j e c tr e q u e s t b r o k e ra r c h i t e c t u r e ,c o r b a ) ,考虑的东西太多,系统开发比较困难。分布 式对象系统通常采用组件技术,使用组件化软件方法进行开发,这需要一整 套方法、工具和平台的支持。在c o b r a 新标准中加入的c o r b a 组件模型 ( c o r b a c o m p o n e n tm o d e l ,c c m ) 进一步推动了组件化的软件开发方法的 2j a v a 分布式对象技术在企业中的应用 发展。 分布式对象技术在比较大型的网络系统中应用较多,比如在银行、证券、 电信等行业都有成功的例子。一些中间件厂商及基础软件厂商都在其软件产 品中采用了分布对象技术以支持企业级应用,而这些产品在企业资源计划 ( e r p ) 和电子商务中均得到大量的应用。 目前,分布式对象技术在国外的应用较为成熟,而国内自主研发的分布 式对象系统应用成功的较少,大多数企业是通过使用由中间件厂商提供的中 间件产品来开发自己的分布式系统。 在分布式对象技术方面,我国和国外仍然有着比较大的差距,体现在以 下几个方面: 1 ) 几乎所有的分布对象技术的标准都是由国外组织和企业制定的; 2 ) 在支撑平台上,国外知名产品众多,而中国除了少数几个科研院所和 公司有一些原型外,较少有自己成熟的产品; 3 ) 成功的应用较少。当国外的大多数系统已经开始向多层体系结构及分 布式对象模式过渡的时候,国内信息系统演进还处在由客户机服务器 ( c l i e n t s e r v e r ,c s ) 模式向3 层的浏览器服务器( b r o w s e r s e r v e r ,b s ) 模式发展的过程中。当然国内目前已经有一些分布式对象模式的应用了,但 是成功的大型应用还是较少。 1 3 本文工作 本文首先介绍了分布式计算模式演变、分布式通信一般模型等理论。然 后介绍并比较了3 种成熟的分布式系统组件模型和体系结构,接着深入探讨 了j a v a 的分布式对象技术。最后对一个宽带内容提供商的分布式系统的用户 中心查询系统的服务方式进行了改进,利用j a v ar v i i i i o p 技术实现了一个 用户中心查询服务子系统,其提供的服务具有一定的可移植性。并且对实现 进行了有益的扩展,增强了系统的可移植性,并提高了系统的可用性。 本文的工作主要包括如下几个方面: 1 、详细比较了几种组件模型和分布式对象技术的异同 1 ) 比较了c o r b a 、c o m + 和j 2 e e3 种分布式系统组件模型和体系结构; 2 ) 比较了j a v ar m i 、r m i - i i o p 和j a v ai d l3 种j a v a 底层分布式对象技 术。 2 、对一个企业分稚式系统进行了改进,设计并实现了一个用户中心查询 服务子系统 1 ) 通过将分布式组件放在最合适的位置,改善了系统的分布式计算体系 结构: 第1 章:诸论3 2 ) 在系统中划分不同的服务层次,一部分服务可以调用另一部分服务, 实现了应用的集成,最终为用户提供更好的服务。 3 、研究了如何提高r m i - i i o p 分布式系统的可用性 1 ) 通过使用i n s 、r m i 动态类下载等技术,提高了r m i i i o p 分布式应 用系统的可用性,便于系统的部署: 2 ) 通过应用p o a 策略,提高了服务器的可移植性,并且可以优化服务 器性能; 3 ) 利用r m i - i i o p 的按值传递对象的特性,方便服务器和客户机之间的 数据传输。 第2 章分布式对象技术理论 分布式对象技术是分布式计算技术和面向对象思想相结合的一种技术, 系统中的对象以分布式的方式相互作用,构成一个完整的面向对象的分布式 系统。为了更好地在企业中应用j a v a 分布式对象技术,本章讨论分布式对象 技术的相关理论,包括分布式计算模式、分布式通信一般模型和分布式系统 的组件模型。 2 1 分布式计算模式演变 为利用分布式计算,一般有三种计算模型【2 5 】: 1 、瘦客户机,服务器( 1 伍nc l i e n t s e r v e r ) 在w e b 浏览器到处酱及的今天,这一模型极其普遍。在这个模型中,客 户机上不运行特定于应用程序的代码,客户机通过w e b 浏览器向服务器发出 请求并接收来自服务器的响应;服务器执行请求并将响应返回给客户机。该 模型的特点是:用户无需设置或安装就能执行任何应用程序,而且用户还可 。以从任何连接点执行这些程序,而不管这个连接点是在公司内还是经过任何 可访问因特网的工具。除了用户界面和一些通过使用j a v a s c r i p t 之类的语言 实现的基本格式检查和轻量级功能外,该模型用到的分布式计算很少。h t r p 是这一模型的通用协议。 2 、胖客户机,服务器( 嗽c l i e n t s e r v e r ) 当从功能或性能方面考虑,需要更多的客户机端处理时,使用胖客户机 服务器模型。胖客户机能为用户提供更丰富的应用程序体验。但是,代价是 必须有一个安装步骤,把应用程序的客户端程序装在客户端机器上。使用j a v a a p p l e t 技术可以自动下载客户机代码,能够解决客户端程序的安装问题。 3 、对等计算( p e e r - t o p e e r ) 如果将客户机和服务器两端置于相同的地位,允许任一端都可以向对方 发出请求,那么就得到一个对等计算模型。这个模型的重要性和普及性正日 益提高,许多m p 3 共享程序以及一些下载软件的都使用这一模型。 在国外软件产业发展时间较长的国家,企业分布式系统的物理结构完整 地经历了如下几个阶段f 1 】如图2 1 所示: 1 ) 哑终端和大型机计算阶段。这个阶段的分布式系统主要是指终端主机 系统。 2 ) 桌面计算阶段。如单机管理系统等。 3 ) 局域网计算阶段。在局域网计算阶段,c s 两层结构的信息系统得到 大量的应用。 6 j a v a 分布式对象技术在企业中的应用 图2 1 分布式系统演变与体系结构图 4 ) i n t e r a c t 计算阶段。在这一阶段,c s 系统继续发展,企业可以通过v p n 、 i n t r a n e t 访问企业内部的分布式系统。 5 ) 万维网计算阶段。在这一阶段,b s 三层结构的系统得到快速的发展。 6 ) n 层企业计算阶段。企业计算更加复杂,多层结构的分布式企业系统 得到发展。 2 2 分布式通信一般模型 将企业分布式通信的问题进行粗略的分解,可以将分布式通信系统分为 应用层、通信层和应用通信接口层三部分。应用,通信接口层用于隔离应用程 序代码和通信代码。 在一个分布式系统中,存在着网络客户机和网络服务器的概念,即总有 一个客户机实体要从另一个服务器实体取得某些服务。下面对这些体系结构 进行通用的介绍。 1 、网络客户机 如图2 2 所示,网络客户机由应用程序代码、通信代码和应用通信接口层 构成。其中服务接口向网络客户机提供分布式服务的视图,即网络客户机与 这个服务的交互方式,这个接口实际上是由基础服务存根实现的。服务存根 负责将普通j a v a 调用映射为基础分布式通信协议代码使用的消息类型和格 第2 章:分布式系统组件模型 7 式。将语言调用与参数映射为通信协议代码使用的消息类型和格式,称为序 列化或编组( m a r s h a l l i n g ) ,反过来,将消息响应变为语言类型称为反序列化 或拆装( u n m a r s h a l l i n g ) 。在j a v a 企业应用开发时,通信协议一般位于t c p i p 之上。 图2 2 通用网络客户机参考体系结构 还可以采用接口仓库( i n t e r f a c er e p o s i t o r y ) ,存储服务接口的元数据,以 便网络客户机访问( 并非所有的分布式网络通信系统都需要接口仓库) 。网络 客户机可以在编译时直接使用接口与存根。 下面列举几种常见的网络客户机: t c p i p 客户机 h t i p 客户机( w e b 客户机) c o r b a 客户机 r m i 客户机 w e bs e r v i c e s 客户机 d c o m 客户机 2 、网络服务器 如图2 3 所示,网络服务器同样由应用程序代码、通信代码和应用通信接 口层构成。其中服务激活器可以处理网络客户机的请求,让请求的网络服务 器进入内存( 如果还未激活的话) 。为此可能要从某种实现仓库取出服务器实 现,或从某种持久存储体中取得对象状态。然后服务激活器将请求数据交给 服务框架。服务框架是服务器端的中介,将协议流中的请求拆装成实际网络 服务器应用程序代码调用。网络服务器的响应封装成消息,可以通过网络发 8j a v a 分布式对象技术在企业中盼应用 送回网络客户机。 图2 3 通用网络服务器参考体系结构 下面列举几种常见的网络客户机: t c p i p 服务器 h t y p 服务器( w 曲服务器) c o r b a 服务器 r m i 服务器 w 曲s e r v i c e s 服务器 d c o m 服务器 3 、激活服务 在分布式系统中,激活的过程是非常普遍,了解激活过程有助于了解分 布式系统中最重要的组件操作之一,有助于进行更好的企业组件设计决利, 所以这里有必要介绍一下激活服务的概念。将软件从非活动状态变成活动状 态的过程称为激活。激活服务是一个软件组件,负责把其他处于非活动状态 的软件置于活动内存状态。例如,j a v a 类文件之类非活动软件在实例化为对 象时即被激活。激活服务主要适用于软件从某种持久存储机制转入活动内存, 还可以将软件从其他媒介( 如f o 流) 的潜伏状态变换到活动内存。分布式 企业系统中的激活服务通常指客户机从远程激活分布式组件,这种服务可能 返回客户机代理的活动引用或在服务器端维护活动引用。现在已经有许多已 实现的激活服务模型可供选择。 第2 章:分布式系统组件模型 9 2 3 分布式系统组件模型 目前有3 种应用分布式对象技术的成熟的分布式系统组件模型和体系结 构,它们分别是c o r b a 、c o m + 和j 2 e e e j b ,下面分别介绍这3 种模型。 2 3 1c o r b a 公共对象请求代理体系结构( c o r b a ) 技术是异构计算的开放标准,是 建立分布式对象应用程序的语言和平台中立的规范。c o r b a 由对象管理组 织( o b j e c tm a n a g e m e n tg r o u p ,o m g ) 定义,目前o m g 已包括将近8 0 0 个 成员组织。c o r b a3 0 规范中引入了c o r b a 服务质量控制和消息服务 ( c o r b am e s s a # n g ) 、j a v a 和i a t e r a e t 集成以及c o r b a 组件模型( c o r b a c o m p o n e n tm o d e l ,c c m ) 等一些新的特性和内容。 2 3 1 1 对象管理体系结构( o m a ) 图2 4 对象管理体系结构( o m a ) 如图2 4 ,对象管理体系结构( 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 b j e c t r e q u e s t b r o k e r ,o r b ) 、对象服务、公共设施、 领域接口、应用程序对象等几个部分组成。o r b 是o m a 的核心组件,它提 供了分布式对象之间透明地发送请求和接收答复的基本通信机制。公共对象 服务规范( c o r & 缸e r v i c c s ) 在o r b 层之上,定义c o 】强a 应用程序通常利 用的分布式c o r b a 服务。公共设施体系结构( c o r b a f a c i l i t i e s ) 在 c o r b a s e r v i c e ,s 层之上,提供一个框架,用于建立直接有用的分布式服务。 领域接口( d o m a i ni n t e r f a c e ) 是与特定应用领域有关的对象接口集合,o m g 按不同应用领域定义了一系列领域接口规范。应用程序中的对象为终端用户 执行特定的任务,构成整个o m a 体系结构的最上层部件。 一个典型的分布式应用程序由大量分布式对象构建而成,其中一部分对 1 0 j a v a 分布式对象技术在企业中的应用 象与具体应用问题有关,另一部分对象则来自领域接口、公共设施、对象服 务和对象请求代理。应用程序对象可以通过多种机制复用现有的对象。 2 3 1 2c o r 队体系结构 c o r b a 公共对象请求代理体系结构建立在o m g 的对象模型基础之上, 它主要由以下几个部分组成: 1 ) 作为分布式对象通信基础设旌的对象请求代理o r b 的体系结构: 2 ) 保证可互操作性的标准o r b 间的通信协议g i o p i l o p ; 3 ) 接口定义语言 d l 的语法和语义以及到各种程序设计语言的映射; 4 ) 扩展c o r b a 对象模型以提供更高的可重用性和更大的灵活性的 c o r b a 组件模型。 如前所述,o r b 构成对象管理体系结构的核心,o r b 提供了分布式对象 之间透明地发送请求和接收答复的基本通信机制。o r b 体系结构如图2 5 : 勰糍f 斡睡 一r1m1 一一 m 一。“m f 图2 5 0 r b 体系结构 o r b 可理解为一个由o r b 接口定义的服务集合,o r b 接口( o r b i n t e r f a c e ) 为o r b 内核( o r bc o r e ) 提供编程接口,o r b 内核是o r b 的核 心部分,它负责实现c o r b a 通信功能。o r b 规范通常由厂商实现为一组软 件库。o r b 提供的通信机制需要负责完成查找请求的对象实现、让对象实现 准备好接收请求、传递构成请求的数据等任务。c o r b a 服务器通过o r b 发 布服务,c o r b a 客户机通过o r b 访问分布式服务。 通用o r b 间协议( g e n e r a li n t e r - o r bp r o t o c o l ,g i o p ) 和h l t e m e to r b i 司协议( i n t e m e ti n t e r - o r bp r o t o c o l ,i i o p ) 是o r b 间的通信协议标准,它 们提供不同供应商的o r b 产品间的可互操作性。g i o p 是c o r b a 通信的高 层协议,它规定了标准的传输语法及一组o r b 间通信消息格式,并设计成可 第2 章:分布式系统组件模型 1 1 在任何传输协议的上层工作。i i o p 是c o r b a 通信的低层协议,它规定了 g i o p 消息如何通过t c p 仰连接进行通信。g i o p 将编组的i d l 数据映射为 传输底层的通用的数据表示方法和一组用于封装分布式调用的请求与回复语 义的消息格式,而i i o p 协议则将g i o p 消息数据映射为t c p i p 连接行为和 输入输出流的读写。g i o p 与i i o p 之间的关系就类似i d l 与j a v a 、c + + 等具 体语言之间的映射关系。c o r b a 还定义了一套环境特定o r b 间协议 ( e n v i r o n m e n t - $ p e c i f i ci n t e r - o r bp r o t o c o l ,e s i o p ) 。 c o r b a 接口定义语言( i n t c f f a c :ed e f i n i t i o nl a n g u a g e ,i d l ) 是独立于具 体程序设计语言的说明性语言,使用i d l 可以按语言无关方式描述分布式 c o r b a 服务器的接口。客户机和服务器就是通过这种统一的语言理解它们 之间的服务合约。i d l 能够给出完整的对象接口定义,包括对象上每一个操 作需要的参数、返回结果、上下文信息以及可能引发的异常等,可以胜任对 复杂对象的语法规格说明的无二义性描述。由o m g 制订的语言映射规范支 持将i d l 语言映射到j a v a 、c + + 、c 、a d a 、s m a l l t a l k 、c o b o l 等多种程序 设计语言。c o r b a 规定所有对象接口定义必须统一用o m g i d l 书写,但对 象实现则可以使用所选o r b 产品支持的任何程序设计语言编写,如j a v a 和 c + + 等。 c o r b a3 0 规范引入c o r b a 组件模型( c o r b ac o m p o n e n tm o d e l , c c m ) ,c o r b a 组件模型为开发即插即用( p l u g - a n d p l a y ) 的c o r b a 对象 提供基本架构。通过c c m 可以更好实现c o r b a 与j a v a 、c + + 、c o b o l 、 a d a 、s m a l l t a l k 和c o m d c o m 等系统的无缝集成。组件技术引入了一组更 彻底的机制,不仅可以用来表示面向对象的软件实体本身,还可以提供一种 把软件实体装配成完整应用的方法。组件技术可以减轻大型软件的开发和维 护负担。并提高软件模块的重用性。 下面着重说明一下o r b 中使用的存根( s t u b ) 和框架( s k e l e t o n ) 以及 对象适配器的概念。 1 、存根与框架 可以使用i d l 编译器从i d l 文件中的i d l 描述生成和具体程序设计语言 相关的存根与框架,c o r b a 客户机使用存根,而c o r b a 服务器使用框架。 c o r b a 客户机的存根编组( m a r s h a l l i n g ) 分布式方法调用,拆装 ( u n m a r s h a l l i n g ) 返回的数据,c o r b a 服务器的框架拆装分布式方法调用 为普通调用,然后编组响应。 使用i d l 编译器编译i d l 文件会为每i d l 接口创建相应的接口和框架。 客户机存根将分布式方法调用编组为c o r b a 通信协议消息( 如g i o p 消息) , 编组方法的参数,并拆装服务器端方法调用的返回值。存根还标识漏用的是 1 2j a v a 分布式对象技术在企业中的应用 服务器的哪个方法,将这个标识信息封装到编组的数据流发送到服务器。 通过i d l 生成的存根实际上是静态调用接口( s i i ) ,c o r b a 除了支持静 态调用接口外,还支持动态调用接口( d y n a m i ci n v o c a t i o ni n t e r f a c e ,d i i ) 。 动态调用接口d i i 动态地提供标识远程对象和方法的信息,并提供所调远程 方法中使用的参数。动态调用接口允许客户机在不知道服务器对象的接口的 情况下调用服务器对象,但需要更多的手工编程完成原本由静态存根完成的 工作。概念上,c o r b a 编程中的动态调用接口类似于j a v a 编程中的反射 ( r e f l e c t i o n ) a p i 。 服务器框架也是由i d l 编译器产生的。服务器框架的功能可以理解为服 务器端的“客户机存根”。服务器框架拆装客户机发送来的编组数据,拆装方 法参数为本地类型,调用相应的服务器端方法,并将调用返回的数据编组为 c o r b a 通信协议消息( 如g i o p 消息) ,发送回给客户机。 通过i d l 生成的框架实际上是静态框架接口( s s i ) ,c o r b a 除了支持静 态框架接口外,还支持动态框架接1 :3 ( d y n a m i cs k e l e t o ni n t e r f a c e ,d s i ) 。动 态框架接口d s i 实际上是一组服务器实现可以利用的a p i ,服务器必须实现 一个通用的接口,这个通用接口的实现要自己确定将要进行的调用的类型, 并提取从客户机传递来的参数。使用动态框架接口,服务器不必生成任何静 态框架,因而这些服务支持更通用的请求,僵需要更多的手工编程完成原本 由静态框架完成的工作。 2 、对象适配器 当客户机请求c o r b a 服务器对象时,需要激活服务器对象( 将这些对 象放入内存中) 。可移植对象适配器( p o r t a b l e o b j e c t a d a p t e r ,p o a ) 是c o r b a 中支持激活的事实标准。 直到c o r b a2 1 版本,o m g 在c o r b a 中定义的唯一的标准对象适配 器还只有基本对象适配器( b a s i co b j e c t a d a p t e r ,b o a ) ,它为创建不同类型 的c o r b a 对象提供了基本方法,但是o r b 提供商和开发者都发现b o a 在 某些方面含糊不清并且缺少一些他们想要的特性。这使得o r b 提供商们开发 他们自己的专用扩展,从而导致在不同o r b 实现之间的移植变得困难了。因 此从c o r b a 2 2 开始引入了可移植对象适配器( p q a ) ,p o a 提供了一些新 特性,使开发者可以创建对象实现,并且能够在不同厂商提供的不同o r b 产品间很容易的跨越使用。p o a 就是在o r b 和服务器程序之间的中介程序, 如图2 6 所示。 客户机通过目标对象的引用发送调用请求。o r b 收到这个请求后,就将 该请求分派给p o a ,由p o a 确定目标对象。p o a 将请求分派给伺服对象, 伺服对象执行请求并将结果返回绘p o a 。p o a 再笼送给o r b 。最后传回给 第2 章:分布式系统组件模型 1 3 客户端。由于一个程序可能会有很多个p o a ,为了使o r b 能够将请求发送 至正确的p o a ,它使用对象关键字即一个标识符,对象关键字作为请求内容 的一部分被保存在对象引用中。而在对象关键字包含了一个重要内容即对象 i d ,p o a 使用它来确定目标对象和伺服对象之间的关联。 9 ”7 却呻“。幻 锤 9 器 、叼 图2 6 基于p o a 的请求分派 2 - 3 2c o m + ,d c o m n e t c o m d c o m c o m + 组件模型是由m i c r o s o f t 公司提出并实现的。m i c r o s o f t 的组件对象模型( c o m p o n e n to b j e c tm o d e l ,c o m ) 是从w i n d o w s3 1 的o l e 技术发展而来,经历了o l e2 、c o m 、a c t i v e x 、d c o m 和c o m + 等几个阶 段,目前的c o m + 贝i 把m s m q 消息通讯模块和m t s 事务处理模块等关键服 务和功能都加入其中,并以n e t 作为基础服务框架,使得c o m + n e t 体系 结构成为分布式对象计算的一个完整平台。 从某种意义上讲,m i c r o s o f t 公司选择了一条相对简单的方式来构建其组 件模型。和c o r b a 的提出方式不同,m i c r o s o f t 并没有直接提出一套全球化 的标准并在其系统中实施,而是对现有的系统和平台不断地进行再设计,在 这个过程中组件技术被逐步引入,并逐步发展完善。 2 3 2 1c o m + 体系结构 1 、o l e 2 、c o m 和d c o m 对象链接和嵌入( o b j e c tl i n k i n ga n de m b e d d i n g ,o l e ) 是在动态数据交 换( d y n a m i cd a t ae x c h a n g e ,d d e ) 的基础之上发展起来并比d d e 有效的 数据交换形式。它是一套应用程序互操作的接口标准,用以实现应用程序之 间一致的数据传输、复合文档的链接和嵌入、直观编辑和定位激活等功能。 o l e1 0 是一个古老技术,以d d e 为代表,实现了对象连接和嵌入功能, 最早的剪贴板( c l i p b o a r d ) 功能就是基于o l e1 0 实现的。一般说o l e 都是 指o l e2 0 ,它是一套按c o m 规范重写的数据交换和传输接口。在o l e2 0 中还引入了一种叫做o l e 自动化( o l e a u t o m a t i o n ) 的技术,该技术能使任 何组件对象公开一组能由其它代码激活的命令和函数,每个命令能携带任意 1 4j a v a 分布式对象技术在企业中的应用 数量的参数,而自动化提供了对象描述这些参数的名称和类型的方法。o l e 组件也被称为c o m 组件,a c t i v e x 控件是可以在网页上使用的控件,a c t i v c x 控件实质上也是o l e 控件。 c o m 是一套基于m i c r o s o f t 的w i n d o w s 平台的组件对象接口标准,是o l e 及a c t i v e x 系统的基础。c o m 由一组构造规范和组件对象库组成。c o m 规 范是关于构造接口、引用计数、引用规则等的一组与编程语言无关的两元标 准,它详细规定了一个c o m 组件所应具有的内存结构,遵循这种规范编写 的组件可以相互进行通信。组件对象库( c o m 库) 实现了用于初始化、对象 的创建及管理、错误处理、内存管理和进程边界调度等的一组函数。 分布式组件对象模型( d i s t r i b u t e dc o m ,d c o m ) 是m i c r o s o f t 为适应分 布式计算环境而对c o m 进行的无缝扩展,在可伸缩、可配置、安全性、协 议无关性、平台独立性等方面提供了分布式环境所需的各种支持。通过使用 d c o m ,应用程序可以被分布到对客户或应用来说最有意义的地方。使用 d c o m ,开发者可以把精力集中在实际业务上,而由d c o m 处理网络协议的 底层细节。 d c o m 使用与开放软件基金会( o p e ns o f t w a r ef o u n d a t i o n ,o s f ) 的远 程过程调用( r e m o t ep r o c e s $ c a l l ,r p c ) 兼容的r p c 机制对象远程过 程调用( o b j e e tr e m o t ep r o c e d u r ec a l l ,o r p c ) ,使处于网络上不同节点的组 件对象可以相互通信,弗保证网络的透明性和通信的自动化,使编程者感觉 调用远程组件对象就象调用本地对象一样。而传统c o m 使用的进程间通信 协议是l p c ( l o c a lp r o c e d u r ec a l l ) 。 当客户机在创建组件对象时,c o m 库负责载入组件模块或者启动组件进 程,如果客户机指定的c o m 对象在远程机器上,则两台机器上的c o m 库会 协同完成远程c o m 对象的创建工作,并且在客户进程建立代理对象,客户 进程直接与代理对象进行交互,对应的在组件进程有存根d l l ,组件进程只 直接与存根d l l 通信。当客户机调用远程组件对象的函数时,代理对象编组 远程调用的参数( m a r s h a l l i n g ) 等数据,通过网络发送给远程机器,远程机 器上的存根接收到这些数据后进行拆装( u n m a r s h a l l i n g ) ,然后调用组件对象 的成员函数。当调用返回时,远程机器上的存根又编组所有返回值和输出参 数,由客户机上的代理对象进行拆装,与传递参数过程一样,形成一个完整 的调用返回过程。 2 、m t s m t s ( m i c r o s o f tt r a n s a c t i o ns e r v e r ) 是m i c r o s o f tw i n d o w s 平台下的中介 软件之一,m t s 的主要目的是提供上层软件组件运行环境所关联的整套集成 绀件服务,让程序员能够开发以组件为导向的分布式应用程序。同时m t s 第2 章;分布式系统组件模型 1 5 还为c o m 提供了一个全新的运行时环境和一系列运行时服务,包括分布式 事务、即时激活、线程缓冲池、安全模型、生存器管理等。 m t s 还提出了基于属性编程的概念,m t s 平台提供的服务通过声明性属 性公开。属性设置由程序员在设计时决定,并且可由管理员在应用程序投产 后重新配置。比如创建一个c o m + 组件和一个c o m + 应用程序,把组件对象 以即插即用的方式加入到这个c o m + 应用程序中,然后对组件对象的属性进 行设置,指出该组件需要其执行环境( 即c o m + 应用程序) 提供的哪些服务, 如事务处理、负载平衡、安全模型等。 这种面向属性的编程方法大大简化了编程,使开发人员可以专注于应用 程序的业务逻辑,可以得到一个简单而规范的编程模型,也利于软件本身的 重构。 3 、c o m + c o m + 是c o m 和m t s 的进一步发展,它把c o m 和m t s 的编程模型结 合起来,并增加了一些新的特性。c o m + 的目标是通过一系列系统服务为企 业应用开发提供通用的基础设施。c o m + 的底层结构仍然以c o m 为基础, 但在应用层则更多地继承了m t s 的处理机制。可以认为c o m + 是c o m ( 1 ) c o m ) 、m t s 、m s m q 以及n e t 等技术和服务的集成。c o m + 将c o m 组件软件提升到应用层而不再是底层的软件结构。 c o m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中考语文热点备考方向 红色文化(含答案)
- 妇科科普知识竞赛题及答案
- 新型绿色建筑材料对温室气体减排的潜力
- 社会保险改革对中小企业融资模式创新的促进
- 传统与现代污水管道改造技术的比较与优化
- 外水量评估与管网漏损分析的相关性
- 外部市场环境变化对企业财务风险的影响
- 汽车营销人才的培养模式与行业需求的契合
- 农产品冷链物流智能化发展方向
- 雨水收集与利用技术在建筑课程中的应用
- Unit 4 Reading and Thinking 学案-高中英语人教版(2019) 选择性必修第一册
- 广告及宣传印刷品制作服务方案
- 地下车库系统环氧地坪施工组织设计
- 2022年浙江省公务员录用考试《申论》试卷及参考答案
- 医共体成员单位人力资源工作制度
- YY∕T 0953-2020 医用羧甲基壳聚糖(高清正版)
- 如何建立高效学习小组
- 手卫生持续质量改进ppt课件
- 生物医学工程导论课件
- 宠物市场调研报告
- 阿海500KV电抗器及附属设备安装施工措施
评论
0/150
提交评论