(计算机软件与理论专业论文)web下异构对象的互操作性研究.pdf_第1页
(计算机软件与理论专业论文)web下异构对象的互操作性研究.pdf_第2页
(计算机软件与理论专业论文)web下异构对象的互操作性研究.pdf_第3页
(计算机软件与理论专业论文)web下异构对象的互操作性研究.pdf_第4页
(计算机软件与理论专业论文)web下异构对象的互操作性研究.pdf_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

华中科技大学硕士学位论文 摘要 基于w w w 的软件构件互操作的研究,目的是实现在w o r l dw i d ew e b 的 分布环境中,结合当前的w e b 技术实现不同软件构件对象之间的互操作,使其 能相互通信和交流信息。 利用简单轻量的s o a p 协议的开放性,提出使用该技术实现w e b 下的软件 构件的互操作,并由此分析基于多种w e b 协议的w e b 服务的体系结构,构造 w e b 服务计算环境,实现分布的w e b 软件对象的协作。 开始,通过了解国内外该课题的研究状况,分析了传统的解决互操作性方 法及其不足,指出了w w w 下应用的互操作实现的需要:接着,提出通过s o a p 协议实现w e b 下的异构对象的协作,实现互操作,即软件对象的跨平台、跨网 络的调用,以在w e b 下集成不同标准的异构对象。利用s o a p 使用x m l 封装 信息、h t t p 承载信息的简单开放性就能很轻松的解决异构对象的互操作问题。 在w e b 下,软件就是构件,w e b 服务就是二进制的软件构件。接着,以 s o k p 、w s d l 、u d d i 等w e b 协议为基础,通过定义w e b 服务的角色和操作, 构造开放的w e b 服务环境,在w w w 下实现w e b 服务的发布、查找和绑定, 实现w e b 服务的功能复用。进而,提出该体系结构在具体到基于构件的软件社 会化生产这一模式上的应用,在w w w 环境下实现软件构件检 件构件库的透明存取,为软件工程的发展提供广阔的应用前景 性和软 最后,叙述了w e b 服务新的应用状况,分析了进一步的发展方向和面临 的困难。同时,针对不同s o a p w e b 服务的实现,分析系统设计中的实现细节 和技术要点,以使有效的互操作性解决方案融入到实际的应用中去,取得更广 阔高效的应用。 关键词:软件崩;构件立藻作性;w 。海务;简单对鸯葫问协议 。发现和集成;w e b 服务挣述语言 舔蕊、 l 缕、 嫠址l 致 7 耥y 华中科技大学硕士学位论文 a b s t r a c t r e s e a r c h e so ni n t e r o p e r a b i l i t yo fh e t e r o g e n e o u so b j e c t su n d e rw w w a i ma t r e a l i z i n gi n t e r o p e r a t i o no fd i f f e r e n ts o f t w a r ec o m p o n e n t sc o m b i n i n gw i t hc u r r e n t w e b p r o t o c o l s ,m a k i n gc o m m u n i c a t i o n a n d c o o p e r a t i o ne n a b l e d t h r o u g ho p e nu po fs i m p l ea n dl i g h tw e i g h ts o a pp r o t o c o l ,r e a l i z a t i o no f i n t e r o p e r a t i o nb e t w e e ns o f t w a r ec o m p o n e n t sb a s e do nw e b i sp r o v i d e dh e r e ,a n d t h e na c c o r d i n gt oi t ,a n a l y s i si sg i v e no no p e nw e bs e r v i c ea r c h i t e c t u r eb a s e do n s e v e r a lw e bp r o t o c o l s ,w h i c hc o n s t r u c t sw e bs e r v i c e sc o m p u t i n ge n v i r o n m e n t , r e a l i z i n g d i s t r i b u t e ds o f t w a r eo b j e c t s c o m m u n i c a t i o n a tb e g i n n i n g ,d o m e s t i ca n df o r e i g nr e s e a r c h e so ft h ei t e ma r es t a t e d ,a n d a n a l y s i so f t r a d i t i o n a lr e s o l v i n gm e t h o d sa n dt h e i rs h o r t a g e si sg i v e n ,p o i n t i n gt h e d e m a n d i n go ni n t e r o p e r a t i o no fc o m p o b e n t su n d e rw w w a n dt h e n t h r o u g ht h e s o a p p r o t o c o l ,p r e s e n t a t i o no fr e a l i z i n gc o m m u n i c a t i o no fh e t e r o g e n e o u so b j e c t s u n d e rw e bi sp r o v i d e d ,w h i c hi sr e a l i z e dt oc o m m u n i c a t ee a c ho t h e r , r e a l i z a t i o no n i n t e r o p e r a t i o n i n v o k i n go fs o f t w a r eo b j e c t s 、v i mv a r i o u sp l a t f o r ma n dn e t w o r k , i n t e g r a t i o nw i t hv a r i o u ss t a n d a r d so b j e c t s o b v i o u s l y , i t se a s yt h a tr e s o l v i n go n d i f f e r e n to b j e c t s i n t e r o p e r a t i o ni sp r o v i d e dt h r o u g hs o a pw i t hc h a r a c t e r i s t i c so f s i m p l i c i t ya n do p e n ,w h i c hi sb a s e do ne n c a p s u l a t i o nw i t hx m l a n dt r a n s f e r r i n g w i t h h t t e 、 u n d e rw e b ,s o f t w a r ei s c o m p o n e n t ,a n dw e bs e r v i c e i s b i n a r y s o f t w a r e c o m p o n e n t s o ,b a s e do nc o r r e l a t i v ew e bp r o t o c o l si n c l u d i n gs o a p , w s d l a n d u d d ia n dd e f i n i t i o no fr o l e sa n d o p e r a t i o n s o fw e bj e r v i c e ,w e bs e r v i c e e n v i r o n m e n ti sc o n s t r u c t e da n da r c h i t e c t u r eo fw e bs e r v i c ei s p r o v i d e d ,w h i c hi s b a s e do ni n t e r o p e r a t i o no fs o a p r e a l i z a t i o n ,r e a l i z i n gp u b l i s h ,s e a r c ha n db i n d i n g o fw e bs e r v i c eu n d e rw w wa n df u n c t i o nr e u s eo fw e bs e r v i c e t h e na p p l i c a t i o no f t h ea r c h i t e c t u r ei sw i d eo p e ni nd i f f e r e n td o m a i n s ,e s p e c i a l l yd e t a i l e do n c o m p o n e n t b a s e ds o f t w a r ep r o d u c t i o n ,w h i c hi s s u p p o r t e dt o r e a l i z ec o n s i s t e n c yo fs o f t w a r e c o m p o n e n ts e a r c h i n ga n dt r a n s p a r e n to p e r a t i o no f s o f t w a r ec o m p o n e n t l i b r a r yu n d e r n 华中科技大学硕士学位论文 彤彤s u p p l y i n g w i d e d e v e l o p m e n t f o rs o f t w a r ee n g m e e n n g a n dt h e n ,s t a t i n gw i t hc u r r e n tw e bs e r v i c e n e wa p p l i c a t i o n ,a n a l y s i so t d e v e l o p i n g d i r e c t i o na n dc u r r e n td i f f i c u l t y o i lw e bs e r v i c ei s g i v e n f i n a l l y , a c c o r d i n 2t od i f f e r e n tr e a l i z a t i o no fs o a p w e bs e r v i c e ,r e a l i z a t i o nd e t a i l sa n dk e y t e c h n o l o g yo fs y s t e md e s i g na l ea n a l y z e d ,t om a k e e f f e c t i v ei n t e r o p e r a t i o ns c e n a r i o u s e dw i d e l ya n dt og a i nm o r ei na p p l i c a t i o nd o m a i n s k e yw o r d s :s o f t w a r er e u s e ;i n t e r o p e r a b i l i t y o fc o m p o n e n t s ;w e bs e r v i c e s ; s i m p l eo b j e c ta c c e s sp r o t o c o l ;u n i v e r s a ld e s c r i p t i o n 、d i s c o v e r y a n di n t e g r a t i o n ;w e bs e r v i c e d e s c r i p t i o nl a n g u a g e 1 1 1 “;, :。l 华中科技大学硕士学位论文 1 1 软件复用概述 1 绪论 在1 9 6 8 年n a t o ( 北大西洋公约组织) 的软件工程会议上,m c i l r o y 第一 次提出了软件复用【l 】的概念。1 9 8 3 年,f r e e m a n 对软件复用给出了详细的定义: “在构造新的软件系统的过程中,对己存在的软件人工制品的使用技术。”以后 随着计算机软件的不断深入研究,尤其是面向对象技术的发展,逐渐受到人们 越来越多的关注。软件复用已经融入软件工程研究的主流,被视为是使软件开 发真正走上工程化和产业化道路的希望。 软件复用是指重复使用“为了复用目的而设计的软件”的过程,而可复用软 件则是指为了复用目的而设计的软件。软件复用更强调的是复用的目的,它是 一种系统化的方法,为了复用而进行设计,为了复用而开发,并且要有效地组 织和管理这些复用产品,方便人们查找和使用,基于复用品进行开发。它是在 软件开发中避免重复劳动的解决方案,出发点是应用系统的开发不再是采用一 切“从零开始的”模式,而是以已有的工作为基础,充分利用过去应用系统开 发中积累的知识和经验,如:需求分析结果、设计方案、源代码、测试计划及 测试案例等,从而将开发的重点集中于应用的特有构成成分上。由此可见,并 非所有重复使用软件的行为都是软件复用过程,例如重复使用“并非为了复用目 的而设计的软件”或在一个应用系统的不同版本间重复使用代码,这两类行为都 不属于严格意义上的软件复用。软件复用一定要有积累,首先要为了复用目的 设计很多的复用产品,有了一定的积累后才能进行软件复用。总的来说,软件 复用有三个基本问题:一是必须有可以复用的对象,二是所复用的对象必须是 有用的,三是复用者需要知道如何去使用被复用的对象。软件复用还包括两个 相关的过程,即可复用软件的开发和基于可复用软件的应用系统构造。解决好 这几个方面的问题才能实现真正意义上的软件复用。 首先,软件复用能够提高软件生产率,减少开发代价。通过软件复用,在 应用系统开发中可以充分地利用已经有的开发成果,消除相关的包括分析、设 计、编码、测试等在内的许多重复劳动,从而提高了软件生产率; 。洼囊氩溢 华中科技大学硕士学位论文 其次,用可复用的构件构造系统还可以提高系统的性能和可靠性。因为可 复用构件经过了高度的优化,并且在实践中经受过考验,通过复用这些高质量 的已有成果,避免了重新开发可能引入的错误和不当,控制了软件开发的复杂 度,缩短开发周期,从而提高了软件产品的质量; 第三,软件复用能够减少系统的维护代价。由于使用经过检验的构件,减 少了可能的错误,同时软件中需要维护的部分也减少了。例如,要对多个具有 公共图形用户界面的系统进行维护时,对界面的修改只需要一次,而不是在每 个系统中分别进行修改; 第四,软件复用能够提高系统间的互操作性。由于系统实现的不一致性, 要实现构件的复用,首先系统将有效地解决与其他系统之间的互操作性问题。 这包括是用统一的接口等相关的技术解决方案; 第五,软件复用能够支持快速原型设计,利用可复用构件和构架可以快速 有效地构造出应用程序的原型,以获得用户对系统功能的反馈; 第六,软件复用还能够减少培训开销。如同硬件工程师使用相同的集成电 路块设计不同类型的系统一样,软件工程师也将使用一个可复用构件库来构造 系统,而其中的构件都是他们所熟悉和精通的。 依据复用的对象,可以将软件复用分为产品复用和过程复用。产品复用是 指复用已有的软件构件,通过构件集成组装得到新系统,包括复用构件的表示、 检索等工具实现p 2 j ;过程复用是指复用已有的软件开发过程,使用可复用的应 用生成器来自动或半自动地生成所需系统。过程复用依赖于软件自动化技术的 发展,目前只适用于一些特殊的应用领域,而目前最现实、最主流的软件复用 方式是产品复用即复用已有的软件构件【2 1 。 1 2 软件构件技术 九十年代软件开发技术的一个重要进展就是构件化。这是由于现在的系统 规模越来越大,一个系统要求完成的功能很多。因此,软件复用和集成更加具 有非同寻常的意义。为了提高软件生产率,有效的开发应用程序,设计开发人 员应尽可能地利用可复用的软件构件,组装构造新的软件系统。 2 华中科技大学硕士学位论文 1 2 1 构件的定义 软件构件3 “1 是指应用系统中可以明确辨识的有机构成成分,是软件系统 设计中能够重复使用的建筑模块,是个独立的、可替换的系统的部分,它 具有相对独立性、互换性和功能性的特征。即软件构件不依存于某一个系统, 它可以被相同的构件所替换,并且具有实际的功能意义。其特征有: 1 有用性,必须提供有用的功能: 2 可用性,必须易于理解和使用; 3 可靠性,构件自身及其变形必须能正确工作; 4 适应性,应易于通过参数化等方式在不同语境中进行配置; 5 可移植性,能在不同的硬件平台和软件环境中工作。 构件包装了一系列互相关联的操作和服务,提供一组接口实现的物理实现, 这些接口用来实现与外界的交互。一个以二进制形式实现的软件构件能够有效 的嵌入到其他开发商开发的构件之中。软件构件技术是支持软件复用的核心技 术,是近年来迅速发展并受到高度重视的一个学科分支【3 ”。 1 2 2 基于构件的应用开发 软件构件技术的基本思想在于,创建和利用可复用的软件构件来解决应用 软件的开发问题。计算机软件工业的生产模式也应该像生产硬件那样,软件的 开发也许最终将像硬件一样成为各种构件的组装。预先由开发商编制好一系列 的易于理解和应用的模型构件,这些构件具有种种优越性如模块化,可复 用性,可靠性等;然后希望只需花很少的工作量就可以接插不同厂商的构件。 构件软件技术是一种社会化的软件开发方法,它使得开发者可将不同语言,不 同供应商开发的构件组合在一起来构造软件,利用它可以提高开发速度,降低 开发成本,增加应用软件的灵活性,降低软件维护费用等等【4 1 5 】。 与面向对象编程语言不同,构件技术是一种更高层次的对象技术:它独立 于语言和面向应用程序,只规定构件的外在表现形式,而不关心其内部实现方 法;它既可以用面向对象编程语言实现,也可用非面向对象编程语言实现,只 要遵循构件技术的规范,各个构件开发商就可以用自己方便的语言去实现可被 华中科技大学硕士学位论文 复用的构件,用户可以在这些构件的基础上,根据需要编制自己的应用程序。 这样的应用软件系统不再是一种固化的整体性系统,而是通过构件之间互相提 出请求及提供服务的协同工作机制来达到系统目标【8 。 软件构件技术是一种社会化的软件开发方法,它使得开发者可将由不同语 言、不通供应商开发的构件组合在一起来构造软件。通过软件构件的社会化生 产,从而实现软件的社会化生产,在全球范围内实现软件生产的协作分工。生 产软件构件的工厂以各种高质量的标准可组装的软构件投放市场,而应用软件 开发商在全球范围内采购和定购可重用的软件构件,通过组装和加工,生产用 户所需要的应用软件1 6 “。 总之,可以预见,构件化的软件生产将会对整个软件界产生巨大的影响, 并会推动软件产业的进一步发展【7 j 。 1 3w w w 环境下应用的意义 w w w 即w o r l dw i d ew e b ,是全球性的信息服务网络,提供了i n t e r n e t 上 的一种十分有效的浏览、检索和查找信息的方式,这些信息可以是文字、图形、 声音、动画等各种媒体,遍布在全世界成千上万的w w w 服务器上。人们可以 通过它推销自己、介绍自己的组织或团体,提供信息分类目录和信息查询服务 等1 1 2 】。 w w w 为人类提供了一个全球范围内的分布式系统。如何充分利用现有的 w w w 技术,实现构件产品的w e b 应用是各开发商解决的重要问题。现在的一 些w w w 技术工具已经能很好的完成构件与w w w 的集成,利用w w w 的全 球广泛的应用性,实现高效的w e b 应用。因此,实现w e b 下不同构件产品的 集成,将会使构件的应用更加的广泛更大范围的分布构件也可实现交互,这 样就形成了个开放式的系统,它使用户能够透明的应用由不同厂商制造的异 构型计算资源【1 3 】。 因此,在基于软件构件复用的研究成果和软件对象构件标准的提出和广泛 被接受下,利用开放的w w w 环境,通过新的w e b 技术和规范,实现开放的 应用,这充满了诱惑而广阔的应用前景。 4 华中科技大学硕士学位论文 1 4 本课题研究的目的和意义 随着计算机技术的进步,计算机的系统集成成为了人们日益关注的问题。 如何加大软件产品的可移植性、有效和简单的实现不同机器、不同平台、不同 网络的对象的协作和通信显得尤为重要。尤其在互联网快速发展的今天,网络 为人们的协作提供了广阔的平台,在w w w 下实现不同对象的互操作性就越发 迫切了。 本课题是关于基于w w w 的软件构件互操作的研究,目的是实现在w o r l d w i d ew e b 的分布环境中,结合当前的w e b 技术实现不同软件构件之间的互操 作,使其能相互通信和交流信息。 软件复用的规模越大,对软件生产率和软件质量的提高越明显。但是,目前 关于构件复用的研究成果和应用实践,仍大量集中于软件开发组织内部专用的 封闭的构件库及其c a s e 支撑环境。跨越软件开发组织和机构的软件复用,需 要开放的构件库表示和共享管理方法的支持,要求不同的c a s e 工具之间能够 进行互操作( 包括规范说明互操作、协同开发支持) ,最终是要解决不同实现构 件对象之间的互操作性,从而实现多系统的协作和集成u “。 由于没有统一的构件标准,所以目前存在着不同的多种构件模型,这些异 质构件都有其各自不同的特点,这包括不同的应用平台,不同的语言实现,不 同的技术特点等等,随着现在软件集成的发展的要求,如何实现软件产品的集 成是个很大的瓶颈,由此可以充分利用现有的软件资源,实现软件的复用,于 是不同软件构件之间的协作和交流就很关键,当适当的加入正确的针对构件间 互操作的标准后,构件集成后就能得到一个一致的能运行的系统i ”】。 随着i n t e m e t 的迅速发展,w e b 应用”4 1 成为软件发展的新的热点,也是发 展的主流,因此,构件互操作在i n t e m e t 上的应用就越发显得必要和紧迫,只 有这样,在整个大的i n t e m e t 环境中实现不同对象和软件构件的信息的交流, 才能真正的加快适应当前应用环境的软件集成的步伐,生产出高效,低成本, 具有更强的扩展性和适应性的构件化软件产品。 因此,我们提出在w e b 下解决软件构件的互操作性,实现异构对象的通信、 协作,这使得我们的软件开发可以立足于一个更加开放、更加松散的w w w 平 台上,充分利用w e b 计算的特点,而这个应用最大、最广泛的分布式系统正是 华中科技大学硕士学位论文 我们软件应用发展的方向。 1 5 论文的组织结构 第1 部分绪论 阐述本课题的研究背景,研究的目的和意义; 第2 部分软件构件的互操作性 阐述了软件构件的概念,不同软件构件模型的标准的特点,重点阐述 了当前互操作性研究的状况。 第3 部分w e b 下实现软件构件的互操作 阐述了s o a p 协议的特点以及在w e b 下利用该协议实现异构软件构件 的互操作性。 第4 部分实现开放的w e b 服务 阐述w e b 服务的概念和特点,指出“软件就是构件”,重点提出了利 用相关的w e b 协议构造w e b 服务的体系结构,并讨论了利用该结构实 现构件化的软件生产的意义。 第5 部分w e b 服务的应用开发 阐述了利用d e l p h i 6 实现s o a p w e b 服务的开发。讲述了d e l p h i 6 中 w e b 服务应用的特点和相关的组件,同时分析了开发新的w e b 服务和 制作客户端的流程,最后描述了w e b 服务演示系统的实现。 总结:总结了本文所作的一些工作,分析了利用s o a p 解决互操作问题的优 势,重点强调利用w e b 服务实现构件化的软件开发,实现软件构件库 的开放性,最后指出下一步研究的问题。 华中科技大学硕士学位论文 2 软件构件的互操作性 2 1 主要的软件构件标准 为了实现构件的交互以利于分布式处理,就不能任意的构造软件构件,必 须研究构件技术的特点,或构件软件的体系结构和构件之间的接口方式。由此, 相应的软件构件系统的体系结构和构件接口标准也应运而生。 2 1 1 组件对象模型 c o m 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 d c o m p o n e n to b j e e l m o d e l 、d 6 】是微软公司提出的分布式组件对象模型标准,支持在局域网、广域网 甚至i n t e m e t 上不同计算机的对象之间的通讯。d c o m 基于c o m 的应用程序、 组件、工具等的基础之上,处理网络协议的低层次的细节问题,而不必关心太 多的网络协议细节,从而使用户能够集中精力解决用户所要求的问题。d c o m 位于应用程序的组件之间,将组件以不可见的方式胶合在一起组成具有完整功 能的应用程序,为不同网络环境中的分布对象提供交互的标准。 c o m + 1 6 】是最近微软宣布的以c o m 为基础的新一代技术。c o m + 扩展了 c o m 的范围,不仅支持多重继承,并且包含新的运行环境,以及语言扩展接 口,它让各种语言能更加容易地创建c o m 对象。 2 1 2 公共对象请求代理体系结构 c o r b a ( c o m m o n 0 b j e e tr e q u e s tb r o k e ra r c h i t e c t u r e ) i l ”即公共对象请求 代理体系结构是由o m g ( o b j e c tm a n a g e m e n tg r o u p ) 组织在1 9 9 0 年制订的一种 标准的面向对象应用程序体系规范。它是- 9 十开放的、分布式对象计算结构, 是异类计算环境互操作的标准,使用c o r b a 应用程序之间能相互通讯,而不 管它们的位置、编程语言及操作系统,异地对象的通信就如在本地一样。 此结构既支持现有的平台也将支持未来的平台集成。而这切所有的努力 的结果就是现在大家所见到的对象管理体系( o m a ) 。c o r b a 说明了o m a 的 华中科技大学硕士学位论文 基础“对象请求中介”( o r b ) 标准,在o r b 标准中,不仅提供了c o r b a 基础架构说明,并且还提供了一系列服务,例如安全、交易和消息传递等。 c o r b a 使应用程序能够使用一个共同的接口,这个接口可以在多种平台 和多个开发工具中用接口定义语言( i d l ) 来说明。o m g i d l 是平台和语言无 关的;而数据及调用格式的转换则是由o r b 透明地完成。所有的c o r b a 对象 接口,以及接口中相关的数据类型,都可以由接口定义语言( i d l ) 说明。这 种对接口的公共定义方法使应用程序能够在不涉及到对象的具体运行方式时对 对象进行操作。 c o r b a 结构由对象请求代理o r b 、对象服务、公共设施、域接口和应用 接口这几个部分组成。其核心部分是对象请求代理o r b ( o b j e c tr e q u e s t b r o k e r ) 。o r b 提供了一种机制,通过这种机制,对象可以透明的发出请求和 接收响应。分布的、可以互操作的对象可以利用o r b 构造可以互操作的应用。 o r b 可看作是在对象之间建立客户服务关系的一种中间件。基于o r b ,客户 可以透明的调用服务对象提供的方法,该服务对象可以与客户运行在同一台机 器上,也可以运行在其他机器上通过网络与客户进行交互。o r b 截取客户发送 的请求,并负责在该软件总线上找到实现该请求的服务对象,然后完成参数、 方法调用,并返回最终结果。c o r b a1 1 由对象管理组织在1 9 9 1 年发布。定 义了接口定义语言( i d l ) 和应用编程接口( a p i ) ,从而通过实现对象请求代 理( o r b ) 来激活客户n t 务器的交互。c o r b a2 0 于1 9 9 4 年的1 2 月发布 定义了如何跨越不同的o r b 提供者而进行通讯。 在最新的c o r b a 3 0 版本中,提出了c c m ( c o r b a c o m p o n e n tm o d u l e ) 的概念。它规范了一个创建即插即用对象的框架,这将有助于集成其它基于对 象的技术。c c m 与e j b ( e n t e r p r i s ej a v a b e a n s ) 非常相似,o m g 的c c m 规范是 s u n 的e j b 规范的语言中性的超集,它假定组件和容器可以用任何语言实现并 可以在任何平台上运行,前提是用c o r b a 提供中间件的通讯支持。但是,c c m 远比e j b 模型复杂,因为它要提供许多选项支持不同平台上的面向对象语言。 o m g 的组件模型定义为o m a 的元对象设施( m e t ao b j e c tf a c i l i t y ,即 m o f ) 的一个轮廓,这保证了模型本身更严格,这也意味着它可以系统地与其 它m o f 轮廓交互,如u m l 、x m i 、o m g 的工作流规范、以及o m g 将来的商 业对象标准。除了有助于与其它规范的衔接外,c c m 更精确的规范提供了比 华中科技大学硕士学位论文 e j b 更高级的特征。如,尽管e j b 模型支持组装描述器( a s s e m b l yd e s c r i p t o r ) , 但从总体上元模型在描述一个组件不太精确,因此束缚了开发人员的手脚;相 反,c c m 建立在更精确的元模型之上,并支持更复杂的组装。使用c c m ,基 于声明的支持和利用的多个接口,或者基于声明的发布和利用的事件,开发者 可以有效地将这些组件联系起来,同一开发者还可以描述哪些部分是主机协同 定位的,哪些是进程协同定位的。另外,c o r b a 3 0 增加了c o r b a 脚本语言 规范,这将简化c o r b a 开发,并使得使用脚本组合组件成为可能。 2 1 3j a v a b e a n s j a v a b e a n s 是j a v a 的组件模型,s u n 公司公布了基于j a v a 的构件技术标准 j a v a b e a r t sa p i ,使构件技术进一步向前发展。s u n 的目标就是实现一种与平 台无关的构件技术,j a v a b e a n s 产生的构件技术使这些构件可以存在于各种环境 中,它打破了c p u ,操作系统和语言的障碍,即以通用操作系统上运行的通用 语言所驱动的“一次编写,到处使用”的通用构件。在j a v a b e a n s 规范中定义 了事件和属性等特征,该规范详细地解释了组件间事件登记、传递、识别和属 性使用、定制和持久化的应用编程接口和语意1 1 8 】。 e n t e r p r i s ej a v a b e a n s ( e j b ) 是用于开发和部署多层结构的,分布式的,面 向对象的j a v a 应用系统的跨平台的构件体系结构,e j b 组件包含定的业务规 则,运行在服务器端。使用e n t e r p r i s ej a v a b e a n s ,开发人员能设计和重用小的程 序元素以构建功能强大的应用程序。e j b 组件包含一定的业务规则,运行在服 务器端。e j b 组件结构是基于组件的分布式计算结构。e j b 是分布式应用系统 中的组件。一个完整的基于e j b 的分布式计算结构由六个角色组成,这六个角 色可以由不同的开发商提供,每个角色所作的工作必须遵循s u n 公司提供的 e j b 规范,以保证彼此之间的兼容性。 2 1 4 面临的问题 这几种软件构件模型各有优势,针对不同的应用有不同的特点。c o r b a 屏蔽了通信双方的网络平台、操作系统和编程语言,是种开放分布式的计算 结构:c o m 是语言无关的,它是二进制级的构件技术,但目前主要应用于 华中科技大学硕士学位论文 w i n d o w s 平台,d c o m 是在c o m 的基础上增加了远程访问的扩展,从而支持 异地分布式应用;j a v a b e a n s 是充分利用j a v a 的网络特性,是一种依赖于j a v a 语言实现的软件构件模型,它的跨平台特性,使它成为w e b 的理想选择,但是 它本身没有自己的分布式实现,需要借助j a v ar v i i 等技术完成。这些构件的技 术标准在今日,乃至可预见的未来,仍会在i t 领域中扮演着重要的角色。 就目前来看,几种构件技术各有优缺点,不存在一种技术有明显优势的情 况,无法完全抛弃哪一个或是统一种方案。因此,实现他们的互操作成为构 件应用的关键和当前主要的工作。 2 2 互操作性的定义 当前有多种创建应用程序的平台,但每种平台都习惯于使用自身的协议( 本 质上通常是二进制代码) 来实现机器间的集成。因此,跨平台的应用程序在数 据共享方面的能力相当有限。认识到这些限制后,人们一直在致力于建立有关 数据格式和数据交换方面的标准,藉此以实现“不论服务采用何种软件,使用 何种硬件,都能够跨越这一传统的界限以某种方式无缝地将它们集成在起” 这远景目标,该目标的核心是互操作性概念,即不同系统能够无缝地进行通 信和共享数据p 。 互操作性是指描述两个或多个软件构件合作的能力,即不同来源的构件能 相互协调、通信,共同完成更复杂的功能,这种合作要考虑不同实现的编程语 言、接口及运行平台。它是网络计算中解决跨空间、跨平台、跨语言的构件互 访能力的重要指标。针对上述几种不同的构件技术的标准如何实现它们之间 客户对象的互访是解决系统集成、实现更高效应用的关键【2 j 】。 理想情况下,异构复用的开放系统能使我们对一个企业的各部分之间的硬 件和软件构件采用最好的连接。当适当的加入正确的针对构件间互操作和便携 性的标准后,构件的集成就得到一个一致的能运行的系统。 2 3 异质软件构件的互操作性研究状况 对软件构件来说,人们考虑更多的处理互操作性的方案是采用类似于工业 生产中的插头与插口的接口技术,还有人们现在广泛提到的软件代理( s o f w a r e 1 0 华中科技大学硕士学位论文 a g e n t ) 等技术。 2 3 1 构件接口技术 目前有两种处理软件构件互操作性要求的构件接口技术。一种称为标准化 接1 :3 ,第二种称为桥接口。前者要求客户构件与服务构件的接口变换成共同的 标准形式,即有一种大家都认可的统一的软件接口。但是这是一种封闭的机制, 灵活性差一些。如果产生新的构件要求,已经制定的标准无法适应新需要,而 且在整个应用领域推行一个统一的标准当前看来还不成熟,也没有相应的技术 标准可以为大家都接受。桥接口是在不同的软件构件之间加入一种交互接口, 以实现异质构件的互操作。用桥接口来处理n 个构件间协同工作所需的交互, 则需要数量级n ( n 1 ) 种的映射。其优势在于,这是一种开放式的机制,应用起 来极为灵活,如果要加入任意一种新的构件来与原来n 种构件交互,只要在增 加n 种映射即可,但是实现其工作量太大,而且效率显然不是很高1 2 “。 如果试图用标准化接口的方式来解决,人们希望最好使用一个标准,不宜 多个,但就目前来看,上述几种标准都有自己的技术优势和特点,难以统一。 因而这一条道路很难走的通,因而,各大厂家为了实现与其他不同技术构件之 间的互访,主要办法还是制定相关的针对特定构件的互操作规范,在二者之间 架起接口桥,针对异构对象的互访采取了一些相应的方式。 c o r b a 规范充分利用了现今各种技术发展的最新成果,在分布环境下实 现应用的集成,使得基于对象的软件成员在分布异构环境中实现可重用、可移 植和可互操作。c o r b a2 0 规范及其后继版本中都制订了c o m c o r b a 互操 作规范,在c o r b a 对象和d c o m 之间定义了一种桥接机制,以实现其之间的 互操作,其目的在于制定统一的c o m 和c o r b a 对象之间的通信机制,用于 保证基于规范开发的互操作产品之间的互操作性和用户应用程序的可移植性。 对现有的软构件资源,各大厂商也提供了相应的工具来实现异质构件之间 的转换,为了加强a c t i v e x 与j a v a b e a r l s 的互操作,实现两种构件的资源共享, 在j a v a s o f l 的支持下,i b m 和t a l i g e n t 开发了套移植工具,使得开发商能轻 松的将基于w i n d o w s 的a c t i v e x 构件转化成j a v a b e a n s ,如j a v a b e a n sm i g r a t i o n a s s i s t a n tf o fa c t i v e x ,还有j a y a l 3 e r n sb r i d g ef o r a c t i v e ) ( ,当然还有一些将 华中科技大学硕士学位论文 a c t i v e x 转化为j a v a b e a n s 的桥接工具。c o r b ac o m p o n e n tm o d u l e ( c c m ) ,即 c o r b a 构件模型是与e n t e r p r i s e j a v a b e a n s 规范紧密联系的,但是不同于e j b , c c m 使用c o r b a 对象模型作为基本的对象互操作体系结构,从而不与某个特 定的语言绑定,这不同于e j b 必须是j a v a 语言实现的,然而通过使用适当的桥 接技术可以将一个c c m 构件看作个e j b 的客户端b e a n ,同样一个e j b 的b e a n 可以看作一个c c m 构件,而且e j b 也是支持i i o p ,可以更好的实现与c c m 的互操作卜”。 当前的w w w 技术中,主要是利用j a v a s c r i p t ,v b s c r i p t ,j a v a 调用j a v a a p p l e t 和a c t i v e x 控件来编写客户应用,因而w w w 技术与分布对象技术的集 成的关键是实现a c t i v e x 与c o r b a 服务的集成或j a v a 与c o r b a 服务的集成 构造桥接中间件:a c t i v e x 桥接控件与j a v a 桥接包,并通过桥接中间件屏蔽使 用c o r b a 技术的复杂性,同时使c o r b a 构件能够为基于浏览器的应用提供 服务。 a c t i v e x 与c o 砌j a 服务的集成主要是构造桥接控件,该控件为客户端浏 览器的用户提供服务,同时作为中间件与c o k b a 服务进行交互。j a v aa p p l e t 与c o r b a 服务的集成就是构造j a v a 桥接包,j a v a 桥接包中包含一个桥接类, 它屏蔽了对c o r b a 服务的访问,通过集成桥接类,可以字节编写面向对象的 w w w 客户应用,不需关心c o r b a 平台的机制【1 92 0 , 2 1 】。 2 3 2 软件代理 软件代理a g e n t l 2 2 ”j 是一种具有控制功能的实体,它接收信息,然后根据 自己的知识、规则和控制逻辑对信息进行处理,最后把信息转发出去。其另一 个作用是充当中间处理部件,它代表一个具有特定接口的实体,对外提供公共 接口,这是解决资源异构的关键所在。a g e n t 具有公共性( c o m m o n a l i t y ) ,真实 性( v e r a c i t y ) ,自治性( a u t o n o m y ) 和强制性( c o m m i t m e n t ) 。a g e n t 的公共性 使它非常适合解决资源异构的问题,从它的后三个特性可以看出,a g e n t 非常 适用于动态、可伸缩的环境。由此可以将a g e n t 理解为我们社会中的中介人, 它对接受的信息进行加工处理,以对方可以理解的方式发送出去,合理适时的 调节双方的通信,应该说这是一种智能化的实现异构对象互操作的方式。 华中科技大学硕士学位论文 2 3 3 其它方案 当然,人们还提出了其他一些解决方案。例如,仿照社会生活中“中介” 所起的调节、变换作用,不少人研究调节语言( c o o r d i n a t i o n l a n g u a g e ) 的重要 目标之一就是软件构件的互操作性;也有人提出“m e g a p r o g r a m m i n g l a n g u a g e ” 来联系大型构件间的异构接口,或者使用元构件体系结构( m c t a c o m p o n e n t a r c h i t e c t u r e ) 来实现【3 6 】;有的针对w w w 环境提出了相应的针对构件库互操作 的计算模型等等4 0 4 2 1 。 综合看来,尽管当前针对构件之间的协作已经作了很大的努力,但是更高 效的常用的协作还是同质构件之间,或者不同构件的同一平台上。桥接构件虽 然可以实现不同对象的交互,但是其可移植性、扩展性、可靠性等都不是很理 想,同时又增加了资源消耗、松散耦合度过紧、效率低下等不利因素,尤其是 在当前的w e b 应用中,需要一个与w e b 服务相适应的松散的、开放计算结构, 因此需要一个更适宜的技术实现当前的应用需求,以实现w 曲下异构对象的互 操作,由此提出了通过使用诸如h t t p 、简单邮件传输协议( s m t p ) 等的简单对 象访问协议( s o a p ) 消这一息通信机制来实现统一连接,交流对象之间的信息, 实现互操作,实现开放式的w e b 服务| 2 4 2 5 1 2 4 小结 这一部分介绍了几种主流的软件构件技术和互操作性的基本概念

温馨提示

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

评论

0/150

提交评论