(计算机软件与理论专业论文)基于corba分布式对象系统测试研究.pdf_第1页
(计算机软件与理论专业论文)基于corba分布式对象系统测试研究.pdf_第2页
(计算机软件与理论专业论文)基于corba分布式对象系统测试研究.pdf_第3页
(计算机软件与理论专业论文)基于corba分布式对象系统测试研究.pdf_第4页
(计算机软件与理论专业论文)基于corba分布式对象系统测试研究.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(计算机软件与理论专业论文)基于corba分布式对象系统测试研究.pdf.pdf 免费下载

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

文档简介

重庆大学硕士学位论文中文摘要 摘要 软件测试是当今计算机科学与工程中起着至关重要作用的领域之一。近年来, 随着软件测试理论和技术的不断发展,它己成为软件工程领域内保证软件质量的 必不可少的关键过程。 分布计算技术通常指在网络计算平台上开发、部署、管理和维护以资源共享 和协同工作为主要目标的分布式应用系统,是近2 0 年来影响计算技术发展最活跃 因素之一。分布式对象技术是面向对象技术与分布式计算技术的结合,在这种软 件体系结构中,应用程序的所有功能都表达为众多分布式对象提供的各种服务。 当前在分布式对象计算领域已经形成三大主流技术,它们分别是o m g 组织的c o r b a 、 s u n 公司e j b 和m i c r o s o f t 公司的d c o m ,其中由o m g 组织发布的c o r b a 模型具有较 完善的规范标准,有着良好的开放性和扩展性,在开发大型分布式软件的过程中 起着越来越重要的作用。 由于程序的分布运行,测试分布式对象程序必须同时考虑并发特性和运行环 境。在c o r b a 运行环境中,由于并发的存在,导致不确定性和同步问题,分布式 对象程序具有不可预测性和不可重现性,这使得基于c o r b a 的分布式对象程序的 测试工作变得十分困难。 本文在基于事件约束的测试技术的基础上,对基于c o r b a 技术开发的软件系 统的测试进行了较深入的研究。本文从程序规约出发,提出e - c s p e 约束描述来定 义事件间的依赖关系,即事件约束,并根据e - c s p e 约束规则间的关系推导新的事 件约束。通过判断程序执行时所产生的事件序列和e - c s p e 描述的事件约束,可以 检测被测c o r b a 分布式对象程序的正确性。 本文对测试框架进行了研究,提出了一种基于c o r b a 的测试系统框架t f c d o s 。 t f c d o s 通过事件序列记录c o r b a 分布式对象程序的运行过程,并通过定义事件约 束来检测事件的有效性。t f c d o s 可以有效地判断c o r b a 分布式对象程序在c o r b a 运行环境中并发执行的正确性,适用于c o r b a 分布式对象程序的功能测试和性能 测试。 关键词:软件测试,分布式对象,c o r b a ,事件约束,测试框架 重庆大学硕士学位论文英文摘要 a b s t r a c t s o f t w a r et e s t i n gi so n eo ft h em o s ti m p o r t a n ti s s u e si nc o m p u t e rs c i e n c ea n d e n g i n e e r i n g n o w a d a y s ,w i t ht h ei m p r o v e m e n to fs o f t w a r et e s t i n gt h e o r i e sa n df a s t d e v e l o p m e n to fs u p p o r t i n gt e e h n o l o g i e s ,s o f t w a r et e s t i n gh a sb e c o m ea ni n d i s p e n s a b l e k e yp r o c e s so fs o f t w a r eq u a l i t ya s s n r a n c ei ns o f t w a r ee n g i n e e r i n ga r e a 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 yu s u a l l yr e f e r sd e v e l o p i n g ,a l l o c a t i n g ,m a n a g i n g a n dm a i n t a i n i n gd 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 so nc o m p u t e rn e t w o r k , w h o s em a i na i m i sr e s o u r c es h a r i n ga n dc o o p e r a t i o n i ti st h em o s ti m p o r t a n ta n da c t i v ef a c t o rt h a t a f f e c t st h ed e v e l o p m e n to fc o m p u t et e c h n o l o g yi nt h el a s tt w od e c a d e s d i s t r i b u t e d t e c h n o l o g yi st h ec o m b i n a t i o no fo b j e c to r i e n t e dt e c h n o l o g ya n dd i s t r i b u t e dc o m p u t i n g t e c h n o l o g y i nt h i sk i n do fs o f t w a r ea r c h i t e c t u r e a 1 1t h ef u n c t i o n so fa na p p l i c a t i o nc a n b er e a l i z e db yt h en u m e r o u ss e r v i c e so f f e r e db ym a n yd i s t r i b u t e do b j e c t s t h e r ea r e t h r e em a i n s t r e a mt e c h n o l o g i e si nd i s t r i b u t e do b j e c tc o m p u t i n g :o m g sc o r b a is u n m i c r o s y s t e m se j ba n dm i c r o s o f t sd c o m a m o n gt h e s et h r e e ,c o r b ah a sb e t t e r s t a n d a r d ,e x t e n s i b i l i t ya n do p e n n e s s ,w h i c hm a k e si tp l a ya l li n c r e a s i n gr o l ei nl a r g e d i s t r i b u t e ds y s t e md e v e l o p i n g w h e l lt e s t i n gad i s t r i b u t e do b j e c tp m g r a m ,w em u s tc o n s i d e rc o n c u r r e n c ya n d p r o g r a mr u n n i n ge n v i r o n m e n ta tt h es a m et i m eb e c a u s eo f t h ed i s t r i b u t i o no f p r o g r a m s t h e r ea r cn o n d e t e r m i n i s t i ca n ds y n c h r o n i z e p r o b l e m si n ac o r b ar u n n i n g e n v i r o n m e n tb e c a u s eo ft h ee x i s t e n c eo fc o n c u r r e n c e d i s t r i b u t e do b j e c tp r o g r a m s c a n n o tb ep r e d i c t e da n dc a n n o tr e c u r , t h i sm a k e st h et e s tw o r kb a s e do nt h e mb e c o m e s v e r yd i f f i c u l t t h i sd i s s e r t a t i o nm a k e sat h o r o u g hr e s e a r c hw o r ko nc o r b a s y s t e mt e s t i n gb a s e d o ne v e n tc o n s t r a i nt e s t i n gt e c h n o l o g y b a s e do np r o g r a ms p e c i f i c a t i o n , t h i sd i s s e r t a t i o n p u t sf o r w a r de c s p et od e f i n et h er e l a t i o n s h i p sb e t w e e ne v e n t st h a t f i r ee v e n t c o n s t r a i n sa n df o r m u l a t e sn e we v e n tc o n s t r a i n sf i o me c s p e b yj u d g i n gt h ee v e n t s e q u e n c ew h e nr u n n i n gap r o g r a ma n dt h ee v e n tc o n s t r a i n sd e s c r i b e db ye c s p e ,w e c a nt e s tt h ec o r r e c t n e s so fac o r b ad i s t r i b u t e do b j e c tp r o g r a m t h i sd i s s e r t a t i o ns t u d i e st e s tf i a m e w o r k sa n dp u t sf o r w a r dt f c d o s - - at e s t f r a m e w o r kb a s e do nc o r b a t f c d o sc a r r e c o r dac o r b ad i s t r i b u t e do b j e c t p r o g r a m sr u n n i n gp r o c e s sb yu s i n ge v e n ts e q u e n c ea n dc h e c kt h ee f f e c t i v e n e s sb y d e f i n i n ge v e n tc o n s 廿a i n s t f c d o sc a ne f f e c t i v e l yj u d g et h ec o r r e c t n e s so f i i 重庆大学硕士学位论文英文摘要 c o n c u r r e n c yw h e ne x e c u t eac o r b ad i s t r i b u t e do b j e c tp r o g r a m t h i sc a r lb eu s e di n t h ef u n c t i o nt e s t i n ga n dp e r f o r m a n c et e s t i n gi nc o r b ad i s t r i b u t e do b j e c tp r o g r a m s k e y w o r d s :s o f a v a r et e s t i n g ,d i s t r i b u t e do b j e c t ,c o r b a , e v e n tc o n s t r a i n , t e s tf r a m e w o r k 1 1 1 重庆大学硕士学位论文1 绪论 1 绪论 1 1问题的提出及研究意义 市场经济瞬息万变,企业必须快速反应以拓展生存空间,因而需要借助于先进 的信息技术提高自己的竞争能力。计算机技术日新月异,软件开发商力求以最新 的成熟技术高效开发软件系统,为用户提供性能优越、功能强大、能够快速适应 市场的高质量服务。而研究开发覆盖整个企业的信息系统以其业务复杂,专业涉 及面广、技术密集、资金投入大、风险高著称,使系统的开发建设十分困难。人 们努力探索新技术、新思想和高效的软件手段来实现信息系统研究开发的高效率, 以获得良好回报。基于c o r b a 技术的多层分布式软件系统是近年来软件技术发 展的里程碑。 进入九十年代后,c l i e n t s e r v e r 体系结构得到广泛应用,成功有效地构建了许 多信息系统。随着全球经济的竞争加剧和信息化快速向更深、更广的层次发展, c l i e n t s e r v e r 体系结构已经显现诸多不足: ( 1 ) 当客户端数目激增时,服务器的性能会因为无法进行负载平衡而大大衰 减; ( 2 ) 一旦应用的需求发生变化,客户端和服务器的应用程序都需要修改,给应 用的维护和升级带来了极大不便; ( 3 ) 大量数据的传输增加了网络的负载。 九十年代出现了分布式对象技术,应用程序可以分布在不同的系统平台上, 通过分布式技术实现异构平台间对象的相互通讯。将企业已有系统集成于分布式 系统,可以极大地提高企业应用系统的扩展性。 目前业界主流分布式对象技术主要有三种标准:m i c r o s o f t 的d c o m 、s u n m i c r o s y s t e r n s 的e j b r m i 以及o m g 组织的c o r b a 。d c o m 是w i n d o w s 环境专 属的分布式架构,支持平台种类有限,无法满足企业级的需求。而e j b r m l 只能 使用一种语言( j a v a ) 来构建应用,也限制了其的使用。o m g 组织的c o r b a 是由 8 0 0 多个大型软硬件公司参与制定,获得m m 、s u n 、o r a c l e 、s y b a s e 、b e a 等大 型i t 技术提供商的支持。c o r b a 标准具有操作系统的中立性及开发语言的中立 性特点。c o r b a 是相对最为成熟的分布式对象技术。 作为分布式应用对象构建规范的公共对象请求代理体系结构规范( c o r b a ) 是目前最具有生命力的跨平台技术,它独立于网络协议、编程语言和软硬件平台, 支持异构的分布式计算和不同编程语言的对象重用。 c o b r a 标准主要分为3 个层次:对象请求代理、公共对象服务和公共设施。 重庆大学硕士学位论文1 绪论 最底层是对象请求代理o r b ,规定了分布对象的定义( 接口) 和语言映像,实现 对象间的通讯和互操作,是分布对象系统中的“软总线“;在o r b 之上定义了很 多公共服务,可以提供诸如并发服务、名字服务、事务( 交易) 服务、安全服务等各 种各样的服务;最上层的公共设施则定义了组件框架,提供可直接为业务对象使 用的服务,规定业务对象有效协作所需的协议规则。 测试是保证软件可靠性最重要的手段。基于c o r b a 构建的分布式应用系统 一般都是大型的,关键性的应用。在系统投入使用前,对其进行全面深入的测试 工作是必要的。由于c o r b a 分布式应用程序本身工作在复杂的环境中,可能有 各类不同的硬件平台、不同的操作系统、不同的网络及网络协议,不同的编程语 言共同组成一个分布式应用系统。在这样的一个复杂的异构环境中如何来对基于 c o b r a 的分布式应用系统进行测试变得非常地困难。 在这样的背景下,研究基于c o r b a 的应用系统测试工作就具有很大的实际 意义。目前国内外对c o r b a 技术的研究主要集中在其本身规范的完善以及 c o r b a 技术的应用研究上,而对基于c o r b a 技术实现的分布式应用系统的测试 工作研究极少。目前还没有发现国内有研究c o r b a 方面的测试文章,国外对分 布式系统的测试研究较多,但对具体的分布式对象技术,如c o r b a 有关的测试 研究也很少,研究内容也集中在某单个测试内容上,如c o r b a 技术构建的系统 的健壮性测试、互联等测试上,没有对c o r b a 技术进行比较全面的测试理论研 究。由于并发的存在,基于c o r b a 构建的应用系统的运行具有不确定性问题, 给测试带来问题。 本论文就是在这样的一个背景下,选择对基于c o r b a 技术构建的应用系统 进行测试方面的较全面和深入的研究工作。对解决c o r b a 应用程序运行不确定 性问题提出了一种解决方案,同时提出了一种测试框架,可为实现针对c o r b a 应用程序的测试工具实现提供参考。 本课题在理论上可拓展测试理论,主要体现在拓展了基于事件约束的测试技 术,并提出了新的测试框架。在应用上可以为基于c o r b a 技术构建的分布式应 用系统提供实际可用的测试方法,为构建测试工具提供了参考,在大型异构的分 布式对象系统测试中可以发挥一定作用。 综上所述,本课题具有一定的理论和实用的价值。 1 2 论文课题所做的工作 本文围绕基于c o r b a 的分布式对象系统测试进行了研究,主要完成了以下 工作: 1 ) 对分布式对象计算技术及c o r b a 技术进行了系统的研究。总结了分布式 2 重庆大学硕士学位论文1 绪论 计算技术的发展,讨论了分布式对象技术的特点,并介绍了主流的分布式对象技 术并进行比较,重点分析了c o r b a 技术。 2 ) 对面向对象测试和分布式程序测试方法进行了研究比较。分别介绍了面向 对象测试和分布式程序测试的特点和研究现状,并具体介绍了各自领域内的几种 研究方法,给出了两个领域待解决的问题。 3 ) 本文在基于事件约束的测试技术的基础上,从程序规约出发,提出e c s p e 约束描述来定义事件间的依赖关系,即事件约束,并根据e c s p e 约束规则间的关 系推导新的事件约束。通过判断程序执行时所产生的事件序列和e - c s p e 描述的事 件约束,可以检测被测c o r b a 分布式对象程序的正确性,从而在一定程序上解 决了由于并发存在导致的分布式程序的不确定性问题和同步问题。 4 ) 对测试结构进行了研究,提出了一种适合于基于c o r b a 分布式对象系统 的测试系统框架t f c d o s ,对框架各组成部分进行了较深入研究,并对基于 t f c d o s 的原型系统进行了研究,为测试工具的实现提供了参考,具有实际意义。 t f c d o s 框架解决了以往分布式测试工具未能将程序的形式化验证和动态运行测 试结合的问题,将形式化分析和运行测试结合起来,从形式化表示中获取规约, 在运行环境中检测程序实现与规约的一致,较好地实现了形式化验证与运行监控 分析的有机结合。 1 3 本文的组织安排 本文共分六章,各部分安排如下: 第章:主要介绍了论文的选题和研究意义、国内外的研究现状和本文的主 要工作。 第二章:介绍了分布式技术发展情况,重点介绍了分布式对象技术,对主流 的分布式技术进行了分析和比较。 第三章:对c o r b a 基本原理进行了系统介绍,从体系结构和工作方式等方面 介绍c o r b a 技术。 第四章:对目前分布式系统测试和面向对象的测试理论与技术的发展与研究 情况进行了介绍。 第五章:对基于c o r b a 技术构建的分布式对象应用系统的测试方法进行了 研究。从程序规约出发,提出e ,c s p e 约束描述来定义事件间的依赖关系,并根据 e c s p e 约束规则间的关系推导新的事件约束。提出了测试框架t f c d o s ,并对该 框架组成进行深入阐述,对原型实现的进行了一些研究。 第六章:对全文的工作进行了总结,同时对将来的研究工作进行了展望。 3 重庆大学硕士学位论文2 分布式对象技术综述 2 分布式对象技术综述 随着i n t e m e t 的发展,计算模式和程序设计方法发生了深刻的变化。分布式计 算的研究热点也从以分布式操作系统为中心的传统模式转换到以网络计算平台为 中心的实用分布式技术,并取得了较大的成功。分布式计算为i n t e m e t 应用软件 的设计提供了结构框架和模式,并满足了i n t e r n e t 的需要,将是未来软件开发的主 流技术。 分布式计算技术是指在网络计算平台上开发、部署、管理和维护以资源共享 和协同工作为主要目标的分布式应用系统【”。即开发者设计的应用必须在互连计算 器组成的网络上分散计算以减轻系统负担,这些应用必须对己有的资源进行最优 利用以满足业务的需求并达到性能、可扩展性、安全应用和维护等方面的要求。 目前,分布式计算的模型和规范有多种,如:d c e 、c o r b a 、d c o m 等,但大体 上可以分为狭义的分布式计算和广义的分布式计算。前者又可分为紧密耦合和松 散耦合两类。它们以分布式操作系统为中心,强调资源管理及访问的透明性,并 将分布式系统和计算机网络严格分开来。这类软件多处于实验室阶段,大规模的 应用较少,其较为成功的代表是p v m 。后者对分布式系统和计算机网络不做严格 区分,更强调技术的使用性,可以看作是一些松耦合的系统。可分为面向过程和 面向对象的分布式计算两类,目前分布式对象计算占据主流。 2 1 分布式计算技术的发展历程 分布式计算技术是近二十年来影响计算技术发展的最活跃因素之一,它的发 展经历了两种不同的技术路线,一种是理想的技术路线,种是现实的技术路线。 理想的技术路线试图在互连的计算机硬件上部署全新的分布式操作系统,全 面管理系统中各自独立的计算机,呈现给用户单一的系统视图。在2 0 世纪8 0 年 代,学术界普遍追求这目标,尽管产生了许多技术成果和实验系统,但没有被 用户和市场接受。面对现实情况,人们开始探讨新的解决方案。 现实的技术路线是在网络计算平台上部署分布计算环境,提供开发工具和公 共服务,支持分布式应用,实现资源共享和协同工作。2 0 世纪9 0 年代,遵循这一 技术路线,产生了一系列行之有效的技术和广为用户接受的产品。 当前,人们所说的分布式计算技术通常是指在网络平台上开发、部署、管理 和维护以资源共享和协同工作为主要应用目标的分布式应用系统。 分布式计算的特点决定了分布式应用程序的组成部分将分布在异构网络环境 中,因而对分布式应用程序自身的可扩展性、高可用性、管理的方便性、高性能 4 重庆大学硕士学位论文2 分布式对象技术综述 和数据完整性等都提出了新的要求。 1 分布计算的发展历程 从8 0 年代中期开始至今,分布式计算技术已经走过第一代,目前正处于第二 代的成熟期,并且开始孕育第三代( 参见表1 1 ) 表1 1 分布计算技术发展的三个阶段 t a b l e1 1t h r e ep h r a s e si nt h ed e v e l o p m e n to f 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 y 第一代第二代第三代 面向的主要问题信息共享异构环境下的应智能化的协同工 用互操作作 体系结构 经典的客户服务 面向对象的多层 自主的多a g e n t 模 器模型客户服务器模型型 关键技术特点运用传统的计算将面向对象技术 面向a g e n t 的拟人 概念和设旅应用于分布计算化交互环境 成果能够提供丰富的已经成为建立集尚未达到广泛应 分布式系统服务、成构架和软构件 用于协同工作的 = 良好的分布系统标准的核心技术成熟程度 管理和典型的分 布式应用 ( 1 ) 第一代 8 0 年代中后期,以支持信息共享的应用需求为核心,形成了面向过程的第一 代分布计算技术。在第一代分布计算技术的推动下,出现了从集中计算模式向分 布式客户服务器模式转移的热潮,在这个过程中,人们遇到了很多在集中计算模 式下不曾或不突出的问题,如系统管理问题、应用互操作问题。 ( 2 ) 第二代 9 0 年代初,以面向对象技术为主要特征的第二代分布式计算技术开始孕育, 经过多年的蓬勃发展,进入成熟时期。人们也将这一代技术称为分布式对象技术。 分布对象技术研究分布于网络不同节点上的对象如何进行协作,共同完成特 定的任务,其核心内容在于对象之间的互操作,尤其是异构环境中的互操作问题。 分布式对象技术有如下主要特点: ( j )分布式对象技术采用面向对象的多层客户朋匿务器计算模型,该模型将 分布在网络上的全部资源都按照对象的概念来组织,每个对象都有定义 明晰的访问接口。创建和维护分布对象实体的应用称为服务器,按照接 口访问该对象的应用称为客户。在分布式对象技术中,客户与服务器的 5 重庆大学硕士学位论文2 分布式对象技术综述 角色划分是相对的和多层次的。 ( i i ) 分布对象可以存在网络的任何地方,可被远程客户应用以方法调用的形 式访问。访问是透明。分布对象具有动态性,他们可以在网络上到处移 动。 ( i i i ) 支持客户访问异地分布对象的核心机制称为对象请求代理。 第一代的分布式计算技术相比,分布式对象技术的实质性进步在于使面向对 象技术能够在异构的网络计算环境中得以全面、彻底和方便的实施,从而能够有 效地控制系统的开发、管理和维护的复杂性。 2 2 分布式对象技术 在软件工程的发展史中,有两个里程碑式的突破,他们分别是7 0 年代的结构 化编程和8 0 年代的面向对象编程。特别是近几年来,面向对象的计算已经成为软 件工程领域中一项非常重要的技术。随着面向对象技术的成熟和发展,它正在被 越来越多地应用于各个计算机领域,如分布式计算、人工智能、数据库和操作系 统等。 分布式系统包括的范围十分广泛,它可以包含任意个数的系统进程和用户进 程,需要实行某种全系统范围的控制,以便提供动态的进程间的合作和运行时间 的管理。与传统的集中式计算机系统相比较,分布式计算系统具有以下优势: ( 1 ) 通过互连和互操作可以提高系统的协作能力; ( 2 ) 通过并行处理可以提供系统的性能; f 3 ) 通过复制技术可以提供系统的可靠性和可用性; ( 4 ) 通过模块化技术可以提高系统的可伸缩性; ( 5 ) 通过动态配置和重新配置功能可以提供系统的可扩展性; ( 6 ) 通过资源共享可以提供系统的性能价格比。 基于以上原因,在最近的十多年中,分布式计算系统已经吸引了众多研究者 和用户。随着用于实现分布式计算的软件不断出现,这一领域中的相关技术正在 逐步走向成熟。 采用面向对象技术来处理复杂的系统已经在过去的实践中得到了肯定。由于 分布式系统中各实体的自治性和对象系统中各对象的独立性有天然的相似性,因 此,人们开始采用面向对象技术来解决大规模分布式系统中所遇到的一些问题。 在将传统的面向对象技术的思想及语言应用于分布式计算时,会遇到很多由 “分布”所带来的问题,如对象定位和系统局部出现异常等。 2 2 1 传统的面向对象技术 面向对技术从现实世界总客观存在的事务( 即对象) 出发来构造软件系统, 6 重庆大学硕士学位论文2 分布式对象技术综述 并在系统构造中尽可能利用人类的自然思维方式,使用人类在逻辑思维中经常采 用的方法和原则,如抽象、分类、继承、封装等。采用面向对象方法构造系统具 有对系统的理解与客观世界一致、接口清晰、易于管理、细节变化不影响大局、 易于扩充、维护方便等优点,因而面向对象方法在计算机领域中得到了极为广泛 的应用。 面向对象技术将客观世界中的各种事务及其问的关系都当作对象来进行处 理,相关关联和相互作用的所有对象构成了我们周围的客观世界。每个对象都有 自己的内部结构和活动规律:多个具有相同性质的对象可以被抽象为一个对象类; 复杂的对象可以由简单对象通过某种方式组合而成;不同的对象之间通过消息传 递和相应服务进行关联和相互作用。 面向对象技术运用对象、类、继承、封装、消息传递、多态性等概念来构造 系统,主要的特点有: ( 1 ) 以对象作为客观世界中事务的抽象表示,并作为系统的基本构成单位。 ( 2 ) 事务的静态特征用对象的属性表示,事务的动态特征用对象的方法表示。 ( 3 ) 对事务进行分类。把具有相同属性和服务的对象归为一类。换言之,类是 对象的抽象,每个对象是它的类的一个实例。 ( 4 ) 用“继承”概念表达对象抽象之间的层次关系。通过在不同程度上运用抽 象得到较一般的类和较特殊的类。特殊类继承一般类的书香和服务。运用 继承原理对具有层次关系的类的属性和操作进行共享,可大大减少设计和 程序的复杂性。 ( 5 ) 运用“抽象”的思想来处理复杂的系统。 ( 6 ) 封装是将对象的数据和操作何谓一个独立的实体,使之具有完备性和封闭 性。 ( 7 ) 多态是指同一操作可以是不同的类的行为。 2 2 2 分布式与对象技术的结合 先进的分布式计算技术和面向对象的技术结合在一起,从而可以分享面向对 象技术带来的众多好处。 很多传统的面向对象思想已不适用正在发展中的分布式计算。例如,常规的 面向对象分析和面向对象设计方法可以直接应用于分布式系统的分析和设计,而 传统的面向对象编程环境在直接用于分布式应用系统的程序设计时遇到了问题。 传统的对象与访问该对象的程序只能存在于同一进程中,并且只有相关程序设计 语言的编译器才能创建这些对象并感知这些对象的存在,而外部进程无法了解和 访问这些对象。这意味着在常规的分布式客户机服务器应用中,客户进程不可能 直接访问异地服务进程中的常规对象。 7 重庆大学硕士学位论文2 分布式对象技术综述 分布式系统对传统的对象模型产生以下不同方面的影响: ( 1 ) 封装 封装是把对象的数据实现服务的细节隐藏起来,客户只能通过对象的借口来 访问对象状态。封装是面向对象语言的一个重要特性,也是所有面向对象系统所 追求的一个主要目标。它所带来的优点也是分布式应用采用面向对象思想的一个 重要原因。 在分布系统中,由于客户和服务器经常存在于不同的机器中,所以客户很难 了解服务器的实现细节。从这个意义上讲,分布式计算加强了面向对象的思想, 它通过他客户和想客户提供服务的对象在物理上分开来阻止客户对对象的数据的 直接访问。 与传统的面向对象的系统比较,分布式对象系统中,实现服务的细节更复杂, 所以封装的内涵也更丰富。在分布式对象系统中,对象不仅要屏蔽有关的算法和 数据结构,还要屏蔽“系统是分布的”这一特性。 在屏蔽“系统是分布的”这一特性方面,已经取得了较为成熟的研究成果。 具体表现在,分布式系统平台应该向上层的应用和用户屏蔽服务的实现细节,提 供以下分布透明性:位置透明性( 对象在不同位置的机器上) 、访问透明性( 对象 在不同类型的机器上) ,持久透明性( 对象所处的状态可以是活动的,也可以是静 止的) 、复位透明性( 对象的位置已经变化) 、迁移透明性( 对象已经迁移到其它 的机器) 、失败透明( 要访问的对象已经失败) 、事务透明性( 与事务处理相关的 调度、监控和恢复) 和复制透明性( 多个对象副本之间一致性的维护) 。 分布式透明性是对面向对象系统的封装特性在分布式环境的延伸和发展,是 分布式对象系统中封装特性必须包含的内容。只有提供了分布式透明性,分布式 系统中的对象机制才能达到传统的对象系统所追求的一个主要目标一屏蔽实现服 务的细节。 ( 2 ) 继承 对象的继承性可以提高软件的可维护性和可重用性,是公认的面向对象系统 的一个主要特征。单在分布式系统中实现对象继承的难度非常大。时间证明,即 使能够实现,所需付出的代价也太高。 在面向对象的系统中,可以把对象分成两个组成部分:接口和对象实现。接 口用于描述使用该对象的方法,一般说来,接口由该对象所能的操作的说明组成; 对象实现则实际构成对象所提供的服务,它定义了与对象有关的数据的格式和用 于管理这些数据的服务。多个对象可以共享一个对象实现,其中每个对象都有自 己的对象副本,而执行代码只有一份,能被所有对象共享。 要实现分布式对象的继承,应该从接口继承出发。其基本思想如下:系统首 8 重庆大学硕士学位论文2 分布式对象技术综述 先根据接口的继承关系生成接口的继承关系图,当客户请求某一个接口中所描述 的某个服务时,如果系统检查到与该服务所对应的现象实现不存在时,可以根据 接口的继承关系图,向客户返回一个能够提供该服务,并且相应的对象实现又存 在的对象的访问信息。客户可以根据这些信息直接与目标对象建立连接。客户只 要目标对象能够提供自己所需要的服务,而不关心是哪个对象提供了这些服务。 ( 3 ) 对象引用 对象引用不仅用来在系统中标识一个对象,客户还可以根据它所知道的对象 引用来与相应的对象建立连接,从而访问该对象。 在集中式的面向对象语言中,由于所有的对象都存在于同一地址空间中( 即, 所有的空问被同一操作系统管理) ,对象引用往往由指向该对象所在地址空间的指 针来表示。在分布式系统中,由于对象可能分布在不同的节点上,所以就不可能 像集中式的系统那样,用简单的内存地址指针来表示对象引用。分布式系统中的 对象引用需要由一个复杂的数据结构来表示,在设计这个数据结构时,要充分考 虑到由系统的分布所带来的一些问题,如网络协议、网络地址和对象的迁移。 2 2 3 实现分布式对象的机制 如上所述,分布式计算已经对传统的对象模型的概念进行了扩展。要实现分 布式对象模型,就必须引入新的机制。 ( 1 1 分布式调用 客户通过调用对象接口中的操作来获得对象所提供的服务。在集中式系统中, 这种调用可由程序呼叫来完成,也可以通过把相应的请求信息传递给对象来完成。 在分布式系统中,对象往往存在于不同的地址空间中,所以无法采用第一种方案 来实现操作调用。消息处理单元是分布式操作系统的核心组成部分,所以分布式 调用采取第二种方法。与集中式系统中的操作调用比较,分布式系统中操作调用 的实现要复杂得多。这种复杂性主要来自分布所带来的问题,即需要隐藏分布式 实现的细节,实现各种各样的分布式透明性。 在一个实际的分布式对象系统中,往往不需要提供所有的分布式透明性,通 常的方法是,在实现分布式调用的过程中,集中精力提供分布式应用最需要的两 个透明性,位置透明性和访问透明性。为获得访问透明性和位置透明性,必须在 原来的对象系统中引入新的机制,这方面的研究成果有: ( i ) r p c ( 远程程序呼叫) r p c 把本地程序呼叫的语义扩展到分布式环境,印它允许应用像调用本地进 程一样来调用远程过程。r p c 利用底层的消息传输设旋来为远程构造本地进程的 抽象。在客户方,它把程序呼叫的参数和调用过程本身的名字一起封装到消息中, 并把这一消息发送给接受对象:在服务器方,存根收到相应的消息后对其解封装, 9 重庆大学硕士学位论文2 分布式对象技术综述 并且根据解封后所得的消息来调用本地过程,最后对执行结果进行封装并将其传 回给客户方。 ( i i ) o r b ( 对象请求代理) 对象请求代理是对象管理组织o m g 在其c o r b a 规范中引入的概念。o r b 的作用是,把客户发出的请求传给目标对象,并把目标对象的执行结果返回给发 出请求的客户。因此,可以说,o r b 提供了客户和目标对象之间的交互透明性, 其中包含位置透明性和访问透明性。 ( i i i ) 分布式虚拟内存 分布式虚拟内存的核心思想是,在分布式系统中建立多个跨越多个结点的虚 拟地址空间。当访问一个对象时。首先检查该对象是否在本地( 如果无法确定, 则返回异常信息) 。在确定了对象所在的位置后,把它装入本地的地址空间,这样 边可以使用标准的程序呼叫来处理分布式调用。 ( 2 ) 通用服务在分布式系统中的实现 同一服务在不同的对象中可以具有不同的实现,不同的实现可以产生明显不 同的行为。这种具有多个实现的服务称为通用服务。如果一个系统支持通用服务, 它就可以为同一服务提供多个不同的实现,这些实现提供看起来等价的接口。 支持通用服务的异构分布式系统可以为同一应用服务提供多个不同的版本, 这些应用可以分别在不同的系统上运行。客户只需发出请求,系统将根据目标对 象所在的系统不同而运行。客户只需发出请求,系统将目标对象所在的系统不同 而运行不同的代码。在分布式对象系统中,可以通过使用交易功能来提供通用服 务。交易器通过检查客户请求的服务类型和服务器所能提供的服务的一致性来选 择提供服务的对象。 2 2 4 分布对象系统的支撑环境 在传统系统的基础上直接创建分布式对象系统是非常困难的,对一般用户来 说几乎是不可能的。于是众多的研究者和系统设计者从不同的方向对分布式系统 的支撑环境进行了许多深入的探索,并取得了瞩目的成绩。 分布式对象中间件是分布式对象系统的支撑环境。所谓中间件,就是位于操 作系统和应用软件之间的一个软件层,它向各种应用软件提供服务,使不同的应 用进程在屏蔽平台差异的情况下,通过网络相互通信【2 。中间件表示成一组计算机 上的进程或对象,它们相互交互,实现分布式应用的通信和资源共享支持【孙。当前 主流的分布式对象中间件,也即是分布式对象计算领域中主流的分布式对象技术, 分别是m i c r o s o f t 公司的d c o m 、s u n 公司的f a b 和o m g 组织的c o r b a e 4 1 ,下 面分别介绍它们。 1 0 重庆大学硕士学位论文 2 分布式对象技术综述 2 3 主流分布式对象技术比较 2 3 1d c o m d c o m 是微软和其它业界厂商合作提出的分布式组件对象模型( d i s t r i b u t e d c o m p o n e n to b j e c tm o d e l ) ,d c o m 起源于动态数据交换d d e ( d y n a m i cd a t a e x c h a n g e ) ,即通过剪切和粘贴实现两个应用程序之间共享数据的动态交换。对象 键接和嵌入o l e ( o b j e c tl i n ka n de m b e d ) 就是从d d e 引申来的。随后微软推出 了包含一个简单的、用于同一台机器上应用程序之间通信的机制组件对象模 型c o m ( c o m p o n e n to b j e c tm o d e l ) 的o l e 2 0 ,从而掀开了微软组件模型的发 展序幕。c o m 除了提供对象的创建和管理功能外,它还包含了三个基本的组件: 永久存储、智能名字和统一的数据传输1 5 】。c o m 和这些组件的集合形成了c o m 的体系结构,它描述了如何创建对象、对象之间如何通信、对象如何存储。如何 标识对象以及如何在对象间进行数据交换等要领。但是c o m 为了保证二进制兼容 而采用了c + + 的虚拟函数表,这些虚拟函数表用c 语言中的概念来解释就是函数 地址表或者其它类似的说法。c o m 接口就是作为指向虚表的指针提供给用户的, 而且是一个指向单一虚表的指针,那么这些接口就不可能实现多重继承,加上c o m 是非分布式的,由此分布式组件对象模型d c o m 应运而生。 d c o m 是c o m 在网络上的扩展。它提供了组件间粘合的功能和其它服务, 包括协同工作、位置透明性、安全性、网络化和基本服务,使得组件间可以相互 通信并且以标准形式操作。d c o m 的体系结构【6 ) 如图2 1 所示: 撼笛麓麓徽2 器篇嚣。 图2 1d c o m 体系结构 f i g2 1d c o ma r c h i t e c t u r e 其通信过程为:在d c o m 客户端,d c o m 客户向d c o m 库发送的请求会返 回一个d c o m 接口,利用该接口创建一个d c o m 对象的实例。d c o m 库查询 重庆大学硕士学位论文2 分布式对象技术综述 w i n d o w s 注册表提取如何创建和寻找这个对象的消息,这个消息、可以使d c o m 库与服务控制管理器进行交互。d c o m 库查询服务控制管理器以激活一个远程 d c o m 对象实例。对远程对象的激活可以使用r p c 进行适当的处理,转换为请求, 通过t c p i p 协议联机发送出去。在d c o m 服务器端,这种请求首先被r p c 处理, 然后由服务控制管理器使用d c o m 库创建被请求服务对象的一个实例,执行相关 操作后,通过解析器将结果返回给客户端。d c o m 组件模型在著名的微软电子商 务解决方案s i t es e r v e r 3 0 和很多大型的分布式系统中得到广泛应用。 2 3 2e j b e j b ( e n t e r p r i s ej a v a b e a n s ) 是s u n 公司在1 9 9 8 年的j a v ao n e 9 8 开发者大会上 正式发布的用于开发和部署多层结构的、分布式的、跨平台的、面向对象和j a 、,a 应用系统的组件模型规范,是j 2 e e 企业版的核心内容。它集合了j a v a b e a n 、远程 方法调用r m i 和j a v a 命名和目录接口j n d i 等多种j a v a 平台技术,利用这个模 型开发用用来创建可移植与分布式企业应用程序的服务器企业应用程序组件,比 创建独立的企业应用程序所使用的企业应用程序组件更为简单。e j b 体系结构【7 】 如图2 2 所表示: 图2 2e j b 体系结构 f i g2 2e j ba r c h i t e c t u r e e j b 客户端包含调用e j b 上特定业务方法所需的e j b 接口( 本地接口和远程 接口) ,同时也包含服务器端处理对象的管理句柄,e j b 客户使用j n d i 来查找相 对的引用,由接口与存根( s t u b ) 为客户创建、删除和查找e j b 远程对象的旬柄 提供相应的操作。e j b 服务器是管理e j b 容器( 容器是管理一个或多个e j b 实 例的抽象) 的高端进程或应用程序,并提供对系统服务的访问;实际e j b 应用程 序组件,用来提供任何特定应用程序业务方法的激发创建、删除、查找、激活、 化、数据库存储与数据库加载逻辑,同时还包含e j b 实现的代理和

温馨提示

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

评论

0/150

提交评论