(计算机应用技术专业论文)基于软件总线的软构件技术的研究.pdf_第1页
(计算机应用技术专业论文)基于软件总线的软构件技术的研究.pdf_第2页
(计算机应用技术专业论文)基于软件总线的软构件技术的研究.pdf_第3页
(计算机应用技术专业论文)基于软件总线的软构件技术的研究.pdf_第4页
(计算机应用技术专业论文)基于软件总线的软构件技术的研究.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(计算机应用技术专业论文)基于软件总线的软构件技术的研究.pdf.pdf 免费下载

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

文档简介

硕f 一学位论文 摘要 随着软件需求的激增,软件规模和复杂度的不断增大,传统的软件开发模式 面临着前所未有的挑战,人们开始探索新的软件开发技术来适应软件发展的要 求。软件复用是解决这一软件危机行之有效的方法,软构件技术则在软件复用中 扮演着重要的角色。 随着网络技术的发展,本文在研究软件构件技术和软件总线体系结构的基础 上,为了解决软件总线无法在i n t e r n e t 上很好应用的问题,将w e bs e r v ic e s 技术引入到软件总线体系结构中。由于软件总线模型起源于c 0 r b a 中的o r b 总线, 因此论文通过对w e b 服务和c o r b a 对象进行集成研究,针对w e b 服务和c o r b a 对象的接口转换和相互问消息转换的问题,利用一种集成网关实现了w e b 服务和 c o r b a 对象之间的通信。晟后在深入研究已有的构件组装平台的基础上,利用此 集成网关设计出了。种基fw 曲服务和软件总线的构件组装结构平台,成功地将 w o bs 。r v ic c s 技术引入到软什总线体系结构中,实现了软件总线体系结构的嘲 络化扩展,此半台是对已有的软构什组装平台的一种扩展。 论文最后还利用软构件技术对甘肃省科学技术攻关项目一w e b 信息发布 生成器的研究与实现( 项同编号:2 g s 0 4 7 一a 5 2 一0 0 2 3 ) 进行了分析与设汁,取得了 预期的效果,缩短了软件的玎发周期。 关键词:w e b 服务;c o r b a :软构件;集成网关;组装平台;体系结构;软件 总线; 基丁软件总线的软构什技术的研究 a b s t r a c t w i t ht h ei n c r e a s i n gn e e d sf o rs o f t w a r ea n dt h ee v e re x p a n d i n gs c a l ea n d i n c r e a s i n gc o m p l e x i t yo fs o f t w a r e ,t h et r a d i t i o n a lp a t t e r nf o rs o f t w a r ed e v e l o p m e n t i sf h c i n gac h a l l e n g ei th a sn e v e re n c o u n t e r e db e f b r e ,s op e o p l ea r es e a r c h i n gf b r n e ws o r w a r ed e v e l o p m e n tt e c h n o l o g yt om e e tt h en e e d sf o rs o f t w a r ed e v e l o p m e m o n eo ft h ee f f e c t i v ew a y st oo v e r c o m et h i s s o f t w a r e c r i s i s ”i ss o f t w a r er e u s e ,i n w h i c hs o f t w a r ec o m p o n e n tt e c h n o l o g yp l a y sa ni m p o n a n tr o l e w i t ht h ed e v e l o p m e n to fn e t w o r kt e c h n o l o g y ,b a s e do nt h er e s e a r c h 。fs o f t w a r e c o m p o n e n ta n d s o r w a r eb u sa r c h i t e c t u r e ,t h i s p a p e r i n t r o d u c e sw e bs e r v i c e s t e c h n o l o g yi n t os o n w a r eb u sa r c h i t e c t u r ei no r d e rt os o l v et h ep r o b l e m t h a ts o f t w a r e b u sc a nn o tb ew e l la p p l i c a t e do nt h ei n t e r n e t 。f o rt h eo r i g i no ft h es o f t w a r eb u s m o d e li st h eo r bb u s ,t h i sp a p e rs t u d yt h ei n t e g r a t i o no fw e bs e r v i c ea n dc o r b a o b j e c f ,f o ri h ej n t e f f a c et r a n s o na n dm e s s a g ec o n v e r s i o nb e t w e e nw e bs e r v j c ea n d c o r b ao b j e c t ,t h e n d c s j g n s ai n t e g r a t i o ng a t e w a yt oa c h i e v et h ec o m m u n i c a t i o n b e t w e e nt h e m 1 a s t l y b a s e do nt h er e s e a r c ho f a s s e m b l i n gc o m p o n e n t p l a t f o r m ,d e s i g n i n g aa s s e m b l i n gc o m p o n e n tp l a t f o r mb a s e do nw e bs e r v i c e sa n d s o f t w a r eb u s s u c c e e d e di n t r o d u c e st h ew e bs e r v i c e si n t ot h es o f t w a r eb u s a r c h i t e c t u r e ,r e a l i z et h ed e v e l o p m e n to fs o f t w a r eb u s ,t h i sp l a t f b r mi st h ee x t e n s i o n o fa s s e m b l i n gc o m p o n e n tp l a t f o r mw h i c hi se x i s t e d a tt h ee n do ft h ep a p e r ,u s i n gt h es o f t w a r ec o m p o n e n tt e c h n o l o g y ,w ea n a l y s e a n dd e s i g ng a n s up r o v i n c ep r o j e c t - 一t h er e s e a r c ha n da c h i e v e m e n to fw i p b ( i t s n u m b e r :2 g s 0 4 7 a 5 2 0 0 2 3 ) ,a c q u i r i n ge x p e c t a n tp e r f b r m a n c ea n ds h o r t e n i n gt h e d e v e l o d m e n tc i r c l e k e yw o r d s :w e bs e r v i c e ;c o r b a ;s o f t w a r ec o m p o n e n t ;i n t e g r a t i o ng a t e w a y a s s e m b l n gp l a t f o r m ;a r c h i t e c t u r e ;s o f t w a r e - b u s ; 2 硕 。学位论文 图2 1 图2 2 图2 3 图2 4 图2 5 图2 6 图2 7 图2 8 图2 9 图2 1 0 图2 1 l 图2 ,1 2 i 善12 13 图3l 图3 2 图3 3 图3 4 图3 5 图4 1 图4 2 图4 3 图5 ,1 图5 2 图5 3 图5 4 图5 ,5 图5 6 图5 7 图5 8 图5 9 图5 ,1 0 插图索引 构件的组成结构6 d c o m 体系结构9 d c o m 工作模型9 j a v a b e a n 体系结构图1 0 c o r b a 组成结构1 1 o r b 体系结构图1 1 c 0 r b a 请求发送和响应的方法1 2 w e b 服务体系结构15 构件库层次结构1 6 构件库的管理流程1 6 构件库的“桥梁”作用17 构件库的服务模型18 分柿式软件总线的纠成结构2 0 c o r b a 的总体结构2 2 w e bs e r v j c e s 服务模型2 3 w e bs e r v i c e s 调用机制2 4 c o r b a 与w e bs e r v i c e s 的集成2 8 集成网关系统结构2 9 基于w e b 服务的构件组装结构3 2 扩展后的基于软件总线的构件组装平台环境3 3 软件总线的通信结构3 5 c b s d 开发过程示意图3 9 系统软总线模型4 0 系统层次结构4 1 数据库设置流程图4 2 信息结构设置流程图4 3 新建发布模板流程图4 4 系统整体运行流程图4 5 系统启动界面4 5 简单的网页模板4 6 新建网页模板的界面4 7 附表索引 表3 1w e bs e r v i c e s 与c o r b a 组成对照表2 5 表3 2w e bs e r v i c e s 与c o r b a 协议栈比较2 5 表3 3i d l w s d l 简单类型映射关系3 0 4 兰州理工大学 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所 取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含 任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重 要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本 声明的法律后果由本人承担。 作者签名:鹚;玺、日期:如年厂月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意 学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论 文被查阅和借阅。本人授权兰州理工大学可以将本学位论文的全部或部 分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手 段保存和汇编本学位论文。 本学位论文属于 1 、保密口,在年解密后适用本授权书。 2 、不保密口。 ( 请在以上相应方框内打“”) 作者签名: 导师签名: ,雾磁 日期:郦年知扩日 日期:锄6 年石月扩日 硕 j 学位论文 第1 章绪论 1 1 、软构件技术和软件总线体系结构概述 1 1 1 软件复用 随着计算机应用的逐步扩大,软件需求量迅速增加,规模也日益增长,软件 规模的迅速增长,带来了软件的复杂程度的增加和程序代码的几何级增长。即使 是富有经验的程序员,也难免对编写数万行的软件顾此失彼,庞大的软件开发和 维护费用,加上不可避免的软件质量下降,对计算机应用的继续扩大构成巨大的 威胁。软件危机的概念也随之提出,概括来说,软件危机包含两方面问题:一、 如何开发软件,以满足不断增长, = | 趋复杂的需求;二、如何维护数量不断膨胀 的软件产品。 1 9 6 8 年北大西洋公约组织( n a t o ) 软件工程会议上,m c l lr o y 的论文“大量 生产的软件构件”中,第一次引入软件复用的概念”1 。在其后的发展过程中,软 件复用技术取得了一定的进展,并有了许多复用技术的研究成果和成功的复用实 践活动。近十几年来,由于面向对象方法的提出并逐步成为技术主流,为软件复 用提供了基本的技术支持,软件复用研究受到了高度重视,被视为解决软件危机, 提高软件生产效率,改善软件质量的一种切实可行的途径。 软件复用是指在新软件的开发过程中,利用已有的、可复用的软件成分来构 造和生成新的软件系统。可复用的软件成分包括软件设计方法、软件结构框架、 程序代码、分析结果等与软件开发相关的内容。软件复用按技术分,可以分为组 合式和生成式,其中研究的最多,应用前景也比较广泛的是组合式复用技术,也 就是基于构件的软件复用技术。构件是指系统中可以明确辨识的构成成分,而可 复用构件是指自包含的可被清楚标识的构件。它描述并执行特定的功能,有清楚 的界面、正确的文档和定义良好的复用状态。 直观地看,构件复用能够节约成本和时间,因为不必从头开始建造被复用构 件。而且,如果复用优质构件,整个软件产品的质量就可以提高。应用系统的开 发转变为从可重用构件库中选取合适的软构件,与新设计的构件一起装配成可执 行的系统一一基于构件的软件开发,提高了系统的可维护性,缩短开发周期,降低 应用系统的开发代价。 1 1 2 软件构件技术 2 0 世纪9 0 年代软件丌发技术的一个重要进展就是软件构件化”3 。这是由于 基于软件总线的软构件技术的研究 现在的系统规模越来越大,一个系统要求完成的功能很多,因此软件复用和集成 具有非同寻常的意义。 当今软件开发技术的主流是软件构件技术。软件构件是指软件系统设计中能 够重复使用的模块。构件包括一系列互相关联的操作和服务软件构件与其他可 复甩软件模块的区别在于,它既能在设计时使用或进行修改,也能够在二进制模 块时使用和修改。一个以二进制形式实现的软件构件能够有效的嵌入其他开发商 开发的构件中“1 。软构件给软件开发带来的优点如同硬件元件工业中的集成电路 所带来的是类似的。集成电路的出现,把硬件工程师们从琐碎的工作中解脱出来, 使他们能集中精力于更复杂的设计上。这就造成了前人未曾想到过的,如微波炉、 笔记本电脑、宇宙飞船等设备的出现。软构件技术的提出也使软件工程师们从琐 碎的工作中能够解脱出来,可以集中精力于更复杂和更方便实用的软件工程设计 上。 研究构件软件的两个核心是:如何提取、开发、管理可复用构件以及如何组 装成系统并能实现互操作。目前讨论的软件体系结构、构件模型,均是为解决构 件之问的接口、实现互操作”1 。 1 1 3 计算机软件总线体系结构 在大规模的系统集成环境中,由于涉及的数据对象和用户数目是动态的,数 据的需求也会随之动态增长,这就导致了集成系统的管理非常困难。为了有效地 控制系统的复杂性,提供可伸缩体系结构,基于插件式( ”p u l l 4a n d ”p u s h ”) 应用模型”1 的软件重用变得非常重要。在这些方面,软件总线技术体现了极大的 优势。 软件总线的概念早在七十年代就已经被提出来了,但只有等到分布式对象管 理技术和软件复用思想的出现后,软件总线技术及实现才有了发展的基础。 软总线的概念来源于计算机硬件技术,人们希望它能够实现类似于硬件总线的桥 梁功能,任何符合一定标准的应用程序都可以通过适配器以插件方式获得软总线 的支持,与总线上的其它部件相互通讯、协调与控制。最初软总线的提出是为了 提高软件的复用性,随着系统的规模和应用范围的不断扩大,软件系统的开放性、 可移植性和互操作性就变得越来越重要,基于软总线的分层开放的构架体系己成 为大型系统构建的首选方案。 在软件总线模型中,构件通过消息传送相互提供服务,基本服务可被单独唤 醒,唤醒个服务元素被称作一次服务元素请求。构件对象可由软件开发人员根 据应用需求的不同做适当的调整而改变服务插件的功能和结构,从而为软构件的 复用集成提供实现的基础。软构件通过适配器与软件总线通信,来解决构件之间 的互操作。每一个构件通过适配器与软件总线相连,用户界面构件提供表示服务, 硕士学位论文 服务构件提供功能和过程控制服务,它们在软总线上的地位是平等的,均可以看 作客户或服务器。构件通过适配器和软总线解决了互不相识的构件之间的互操作 问题和数据交换问题。 计算机系统的硬件总线是计算机各部件间,输入输出设备间传送数据信息、 地址信息和控制信息的公共通道。硬件总线是一组以铜铂线为载体的信号传输 线。借助于总线,c p u 可与主存及输入输出设备交换信息在计算机硬件总线上, 可以插接多种类型和多块通用标准的接口模块,用以组成功能强大的更加完美的 计算机系统。比如,显示器接口卡、多媒体电影卡、声卡和打印机接口卡等。其 实,硬件总线是计算机c p u 与各功能模块部件和输入输出设备问相互连接的一种 工具“。 软件总线像计算机硬件总线样是一种工具,是一种有别于硬件总线的软件 设计工具。其实,软件总线是硬件总线的虚拟和映射”1 ,是对硬件总线的一种抽 象。它是指为多种计算机语言编写的多个、多种类型的软件功能部件( 对象) 服 务的一组虚拟的数据传输线1 。这组虚拟的数据传输线是软件,是一组通用的标 准集成软件功能部件( 对象) 的接口界面,它是计算机操作系统与各种集成功能部 件( 对象) 之间或集成软件功能部件( 对象) 之间进行数据传输与联系的虚拟公共 通道和接口界面,是一种软件重用的开发工具。1 。计算机软件总线是建立在软件 重用基础上的一种概念,其目的就是要实现软件重用。 1 1 4 国内外研究现状 国内外对软构件技术的研究己经比较成熟,处于实际应用中,但是还未形成 统一的标准。这些技术中最具有代表性的包括:对构件模型有o m a 的c o r b a , m i c r o s o f t 公司提出的d c o m ,s u n 公司提出的e j b 和j 2 e e 的研究,以及对w e b s e r v i c e s 的研究。国外展开相关的研究集中于基于构件的开发、分布式软件组 件开发0 1 、基于过程模式的软构件开发、通用模型软件接口界面、实时构件组合、 软件复用、c o r b a 构件、w e b 服务的研究等。 国外对于软件总线的研究主要集中于将软件总线作为中间件应用于分布式 应用系统。其中最具代表性的是c o r b a 的o r b 。 国内也有不少科研单位对软件总线展开了相关的研究,主要代表是由北京大 学杨荚清院士所带领的青乌生产线开发领域平台研究小组,其目的是为了促进软 件产业的合理分工,形成构件生产业、集成组装业和服务业。随着软件技术的发 展,软件构件市场己初步发展,标志着软件工程化开发方法,以及软件工业化生 产技术正在逐渐走向成熟。国内其他科研单位的研究主要有软件总线体系结构“。 的研究、相应的软件总线标准的制订、基于软件总线的软件开发方法和软构件的 制作。 基j 软件总线的软构件技术的研究 其他展开研究的单位还有东南大学、国防科大等。东南大学的o r b u s “” 和国防科大的s t a r b u s ”33 都是较为成熟的软件总线中间件,且在相关领域都进行 了初步的试用。 1 2 课题的来源和意义 本课题的来源是甘肃省科技攻关项目一w e b 信息发布生成器的研究与实 现。本系统的目标就是在企业信息化和行政事业单位信息化建设方面可以解决众 多网页维护难的问题。研究成果集理论研究与实际应用相结合,在理论上突破国 内现有的研究软件总线方向上的局限性,能够有助于形成一套基于计算机软件总 线体系结构的软构件组装平台,它将有助于我国有关软件总线标准和软件开发标 准的制定。该理论在我国的软件工业应用后,将有助于避免我们再做重复性的工 作,使我国的软件开发走上集成化、标准化发展的轨道。 1 。3 本文的研究内容以及结构安排 本文主要研究工作包括w e b 服务技术和c o r b a 技术比较及集成研究;使用 w e b 服务技术对已有的软件总线模型进行扩展;并将软构件技术应用到甘肃省科 学技术攻关项目一w e b 信息发布生成器的研究与实现( 项目编号: 2 g s 0 4 7 a 5 2 0 0 2 3 ) 。 本论文分为五章,具体的内容组织如下: 第1 章绪论 本章主要叙述了课题的理论概述,课题的来源以及课题研究的意义,并介绍 本文的研究内容和结构安排。 第2 章软件构件技术概述 本章首先介绍构件有关基本概念,接着介绍了软件构件的获取技术、几种流 行的构件模型、构件库的管理,最后对已有的软件总线模型进行了分析与介绍。 第3 章w e b 服务技术和c 0 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 和 c 0 r b a 的集成技术,并提出了w e bs e r v ic e s 和c o r b a 的集成网关模型。 第4 章软件总线体系结构的改进 本章利用第3 章提出的w e bs e r v i c e s 和c o r b a 的集成模型,对基于软件总 线的软件构件组装平台进行扩展和改进。 第j 章w e b 信息发布生成器的研究与设计 本章主要以甘肃省科学技术攻关项目,w e b 信息发布生成器的研究与实 现为背景,对生成器的整体框架进行设计,最后对生成器中构件进行提取和分析。 硕十学位论文 第2 章软件构件技术概述 2 0 世纪9 0 年代软件开发技术的一个重要进展就是软件的部件化。构件模型是 新一代软件开发的标志。软构件与软件总线模型是软件复用技术研究迸一步系统 化、形式化的突出成果,因而受到人们的高度重视。 开发和使用可复用构件是从面向对象技术发展而来的,软件复用已经成为开 发出高效、低成本应用程序的重要实现途径。随着人们对软件复用技术理解的深 入,软构件的内涵也不再局限于8 0 年代简单的源代码及类库,而是延伸到系统和 软件的需求规约、构件、文档、测试等对开发活动有用的所有信息。构件存在的 目的是向外界提供服务或功能,为了完成这些功能,构件往往需要调用应用框架 或其它构件提供的部分功能,一个基于构件的应用系统便是由应用框架和若干构 件通过这种功能的调用被调用关系组装而成的。因此,构件应同时具备向外界 输出功能和从外界环境输入功能的能力。 2 。1 构件的定义及性质 软构件又称构件、元件,是指可方便地插入到语言、工具、操作系统、网络 软件系统中的一种接口定义良好的独立可重用的二进制形式的代码和数据。软构 件具有如下特点:( 1 ) 遵循统一的标准,支持即插即用;( 2 ) 支持对象意义上的封 装、多态和继承:( 3 ) 外界只能通过接口进行访问:( 4 ) 它是一个支持互操作的对象, 可以在跨越地址空间、网络、语言、操作系统的异构环境下被调用,或与其它软 构件组装在一起协调工作。软构件的结构和功能被封装在构件内部,每个构件都 有接口,并通过接口与外部相连。它可以是一些功能模块、被封装的对象类、软 件框架、软件系统模型等“”。 软件构件技术就是以基于面向对象的、嵌入后马上可以使用的即插即用型软 构件概念为中心,通过构件的组合来建立应用的技术体系,它通过构件组合支持 应用的开发环境和系统。 软构件技术是支持软件复用的核心技术,主要内容包括:构件获取、构件模 型、构件库管理、构件的复合组装等方面。 2 2 构件获取 构件获取是指有目的构件生产和从已有系统中挖掘提取构件。在获取阶段, 确定构件的性质,包括构件功能和构件接口,以及构件的可靠性、可用性等质量方 面的因素,在某些情况下一些非技术因素也需要考虑,如构件生产厂商的市场份 额、过去的商业表现和过程成熟度等“。构件提取的主要途径有:从现有的构 件中获得符合要求的构件,直接使用或作适应性修改,得到可复用的构件:通过 遗传工程,将具有潜在复用价值的构件提取出来得到可复用的构件:从市场上 购买的商用构件:开发新的符合要求的构件。新构件的开发包括原子构件的制 作、复合的构件制作、领域构件的制作。 构件只关心自身能实现的功能,并且对外提供服务和请求服务,对外提供数 据和监听数据,由此可划分为功能体和接口两部分。在引入了适配器后的软件总 线系统下的构件,更强调的是在逻辑上相对独立和完整的功能,接口是面对适配 器的,与总线的交互交由适配器处理,从而构件的接口设计可以相对宽松和稳定 构件的描述如下: c o m p o n e n ta i n c o m in gi n t e r f a c e 对外请求服务的接口 l i1 ; i i2 : ) o u t g o i n gi n t e r f a c e 对外提供服务的接口 。 与域相关的各种交互元素,在每个域的边界上,进行域内部格式与域外公用 的中问格式间的交换。这样,在通信之前,一方首先将自己的格式转换为双方都 认可的中间格式,再由另一方将中间格式转换成其内部格式。中间格式可以通用 的,也可以是两个域共同认可的特定格式。实际上,后一种情况与直接桥接没有 基于软件总线的软构件技术的研究 太大的区别。与直接桥接相比,使用通用的中间格式的间接桥接的优势在于:一 个域最少只需要支持一种转换算法就可以与其他的域进行通信。 类似地,本文对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 的部件的称谓,它主要起到转换w e bs e r v i c e s 请求与c o r b a 请求,转换 s o a p 信息与1 1 0 p 信息的功能“。 实现c o r b a 与w e bs e r v i c e s 的集成包括两个过程: 服务部署。服务部署是指将c 0 r b a 对象的接口描述转换为w e bs e r v i c e 的 接口描述,同时在s o a p i i o p 网关中注册i d l w s d l 映射信息。 服务运行。服务运行是指s o a p i i o p 网关完成s o a p 消息和1 1 0 p 消息之间 的转化,将s o a p 请求中的参数转换成对c o r b a 对象调用需要的参数类型,定位和 调用c o r b a 对象,并将响应结果封装成s 0 a p 消息返回给客户端。集成方案如图3 ,4 所示。 。t 、阴撼蝗】4 发布fw s d i = 鑫函 u d d 明务器卜”3 岩霉“ s 查找 服务信息库 一,l 6 s o a p s o a p ,1 1 w e b 服务客户卜i 叫蒿霎 图3 4c o r b a 与w e bs e r v i c e s 的集成 3 2 2 集成网关的设计 在c o r b a 与w e bs e r v i c e s 进行应用集成过程中,集成网关的主要功能是注 册c o r b a 对象并对外发布由i d l 转换的w e bs e r v i c e s 接口,在服务调用时完成 s o a p 协议和i i o p 协议之间的转换,集成网关如图3 5 所示,网关前端从w e b 服 务器接收s o a p 消息,后端通过o r b 总线连接c o r b a 服务器。s o a p 消息处理被分 为3 个层次:传输层、服务层和调用层。其中传输层主要功能是屏蔽底层不同传 输协议的差异,使后续的消息处理过程对传输协议透明:服务层定义了安全、同 志等系统服务:调用层完成s o a p 消息解析和对c o r b a 对象的调用。 硕士学位论文 ,1。一-一。、 w e b 服务器 一一t 一一i 。一一。 传输层 服务层 调用层 图3 5 集成网关系统结构 网关对调用的处理过程如下:首先当客户端s o a p 请求到达时,传输层从e b 服务器获得与传输协议相关的数据包,从中提取s o a p 请求体;其次根据s o a p 请 求中的w e bs e r v i c e s 标识获得服务对象,并在服务层进行安全和事务处理:接着 s o a p 编码解码器解析出s o a p 请求中的目标操作和参数,并调用类型转化 系统完成s 0 a p 参数到c o r b a 参数的类型转换:最后c o r b a 调用器根据目标操作和 转换后的c o r b 矗参数,通过0 r b 总线定位和调用c o r b a 对象。调用结果被返回到 s o a p 编码解码器,封装成s o a p 响应返回给客户端。 3 2 3 关键技术 3 2 3 1 接口及类型转换 c o r b a 接口定义语言i d l 阻“采用了与c + + 语言类似的语法,主要包括类接口 定义、操作定义和类型定义。w e bs e r v i c e s 的接口定义语言w s d l 采用了基于 x m l 的语法,其接口定义内容包括服务接口定义和服务实现定义两部分,其中 服务接口定义描述服务提供的操作以及操作调用时输入输出的消息,服务实现 定义描述服务的协议绑定、地址绑定等实现信息,二者结合构成一个完整的服务 描述。在接口映射中,i d l 接口定义与w s d l 中接口定义部分具有基本的对应 关系,因此可以定义规则进行转换,转换的规则如下。类接口定义:在i d l 中 类接口作为操作的集合,对应于w s d l 定义中起同样作用的p o r tt ) ,p e 元素,类 接口定义中的操作转换为对应端口类型中的操作。对于i d i 。类接口中类接口的 基于软件总线的软构件技术的研究 继承机制,w s d l 不支持继承关系,处理的方法是在w s d l 中将父类接口中定 义的操作复制到子类接口中,从而使子类接口中也具备了父类接口中的全部操 作。操作定义:i d l 中的操作直接转换成w s d l 中的操作,i d l 操作的i n 和i n o u t 参数构成w s d l 操作中的输入消息,i d l 操作中的o u t 和i n o u t 参数和返回值构 成w s d l 中的输出消息,i d l 操作中的异常构成w s d l 操作中的出错消息。 类型定义:i d l 简单类型定义可以自接转化为w s d l 简单类型定义,i d l 复杂类 型定义可以转化为w s d l 复合类型定义。简单类型定义的映射关系如表3 3 所示 3 0 表3 3i d l w s d l 简单类型映射关系 i d l 类型w s d l 类型l d l 类型w s d l 类型 a n ya n y t y p e b o o l e a nb 0 0 i e a n w c h a r s t r i n g d o u b l e d o u b l e o c t e t u n s i g n e d b y t el o n g i n t s h o r ts h o r t s t r j n g s tr i n g c h a r s tr i n g w s t r i n g s tr j n g n o a tn o a t u n s i g n e ds h o r tu n s i g n e d s h o r t i o n 9 1 0 n gl o n g i n s i g n e dl o n gu n s i g n e d i n t 3 2 3 2c o r b a 对象动态调用 网关为w e b 客户端提供w e bs e r v i c e s 访问接口,相当于s 0 a p 服务器,但对于 运行c o r b a 对象的服务器来说,网关的作用却相当于发起调用的客户端。c o r b a 对 象调用是指依据s o a p 消息中解析出的客户请求的方法和参数,去调用计算任务的 实际执行者,这个过程实际包括对象定位和对象调用两个子过程。c 0 r b a 对象定 位即获得c o r b a 对象引用的过程,客户端使用s o a p 消息中包含的w e bs e r v i c e s 标识表明要访问的目标对象,但并不知道对象的位置和调用细节,因此网关必须 维护w e bs e r v i c e s 标识和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 对象 逻辑名和c o r b a 对象引用3 者的映射关系。在服务部署阶段,标识映射系统记录 服务的w e bs e r v i c e s 标识和对象的逻辑名的绑定;服务调用时,嘲关先根据s o a p 消息中的w e bs e r v ic e s 标识查询到c o r b a 对象逻辑名,然后运行c 0 r b a 命名服务解 析该对象逻辑名,从而得到目标对象的引用,使服务器端的c 0 r b a 刈冢实现对客 户端透明。 硕士学位论文 c o r b a 调用分为静态调用和动态调用两种方式,静态调用时必须使用i d l 编译 器产生的客户端s t u b 程序和服务器端的s k e l e t o n 程序,动态调用不必使用s t u b 程序,但需要从存储服务信息的接口库中获得远程对象的详细描述信息,从而动 态地构造对远程对象的请求。网关不知道要调用的是哪个c 0 r b a 对象,也不存在 预编译好的s t u b 程序,这就要求对象调用必须采用动态调用方式。对象调用过程 中,网关首先通过解析s 0 a p 消息得到要调用的w e bs e r v i c e s 标识、目标操作、s o a p 参数,接着通过对象定位获得目标对象的引用后,通过类型转化获得c 0 r b a 参数, 最后将目标对象引用、操作、c 0 r b a 参数动态地构造成1 1 0 p 消息,发送到c o r b a 服务器,从而完成一次对象调用。 3 3 小结 本章首先比较了w e bs e r v i c e s 技术和c o r b a 技术,分析了各自的优缺点。 然后对它们彼此的集成和互相通信进行了研究,并提出了它们集成的框架结构 集成网关,最后对其中的关键技术进行了简要地分析。 基于软件总线的软构件技术的研究 第4 章软件总线体系结构的改进 开放性、透明性、可靠性和通用性是软件总线设计开发的宗旨。已有的软件 总线结构底层以i i o p 协议为基础,由于i i o p 难以穿越防火墙等局限性限制了它 在i n t e r n e t 环境中的应用。w e bs e r v i c e s 以x m l 为主的、开放的w e b 技术规范 为基石,主要目标就是在现有的各种异构平台的基础上构筑一个通用的、与平台 语言无关的技术层,各种不同平台之上的应用依赖这个技术层来实现彼此的连接 和集成。 4 1 基于软件总线的构件组装平台的改进 基于软件总线的构件组装结构“”“的设计,应强调系统的开放性以及各个 构件的独立性。构件的开发方式决定了每个构件的特定功能,只能将唯一可见的 标准接口挂接在软件总线上,与特定应用程序连接以完成消息发送、提高服务或 获取服务等功能。而统一的软件总线标准和构件标准是实现应用程序组装的前提 ”“。为了将w e bs e r v i c e s 技术引入到软件总线体系结构中,我们可以将软件总 线体系结构进行2 种形式的扩展。 1 一种形式,是将w e bs e r v ic e s 当作中间服务描述格式,即每个参与调用 应答的软件构件均需要加上一层封装,转换为w e bs e r v ic e s 的界面,各个组件 或对象之间的调用均采用w e bs e r v i c e s 方式来进行。即在通信之前,利用u d d i 服务查找对方的s e r v i c e i d ,再利用x m l 构造s o a p 信息,通过h t t p 协议传送出 去。如图4 1 是一种基于w e b 服务的构件组装结构。 匦:一卜坐型叫二匦匿e ) ! 骂 ,构件 构件库 库管 - u 黑心多 理 构件服务器 # 开e 绑常= 3 刊 7 岑筹 s o a p ,h t t 里- - 7 客户端 客户端 和 h n p 通信 剧4 1 基于w 曲服务的构件组装结构 2 由于最初的软总线模型起源于c o r b a 中的o r b 总线,模型中很多服务都是 硕士学位论文 采用类似c 0 r b a 构件模型的标准,另外一种形式就是利用第3 章的对w e b 服务和 c o r b a 技术的集成研究成果,利用集成网关来对软件总线体系结构进行扩展,将 w e bs e r v i c e s 引入到软件总线结构中,对软件总线扩展后的构件组装结构如图 4 2 所示。 i b c l i e n t i 乳bc l i e n t s o a p ,i 玎t p 1, u d d i 集成网关 w e b 转换处理 l s o a p 解析器i s e r v j c e ss o a p l 转换处理 s e n e r w s d l i 客户端o r b | l 内网客户端i u o p ,o r 8 l iji , 应用系统软件应用系统软件 f 一数据库 软件总线的获取与管理 调用软总线 应用系统组装平台k 、一一 通过 软件总线库 叫牡据麾“卜斥) i i o p 通信 i d l 对接口定义 构件 i 喃构件l 复用1 构件生产i 入厍 构件库库管 理 企业内髓 构件服务器 图4 2 扩展后的基于软件总譬的构件组装平台环境 构件结构是面向对象结构的继承和延伸,它具有面向对象结构的所有优点。 同时,在这种模型中,构件是一种封装良好的功能部件,对外具有一致的接口, 构件间的通信由总线统一代理,降低了构件闾的相互依赖。软件开发者可以方便 地定义和构建新的即插即用构件来扩充系统。 此组装结构中企业内网采用i i o p 协议进行通信,可以充分发挥企业内网通信 的优势。由于i i o p 协议很容易被防火墙过滤掉,当外网客户需要调用企业内网的 构件时,很难进行互相通信,因此有必要在网关处将1 1 0 p 协议数据转换和容易穿 过防火墙的s o a p 消息进行互相转换,在外网采用w e bs e r v ic e s 技术对构件进行封 基于软件总线的软构件技术的研究 装。充分利用了w e bs e r v ic e s 技术在i n t e r n e t 上通信的优势,通过集成网关将w e b s e r v i c e s 技术引入到软件总线的结构中,成功地实现了软件总线结构的扩展。 企业内网的构件中的所有构件的i d l 定义文件,通过网关转换后的w s d l 文件 被放入u d d i 中并对其进行标记。当w e b 客户端从u d d i 中获取要调用构件的w s d l 文 件后,首先判断是内网构件还是w e b 构件,如果是内网构件则发送s o a p 请求调用 构件,经过网关的转换处理后,对参数进行提取并且转发给相应构件处理,经过 应用系统组装平台组装成应用系统,处理结果经封装和网关转换后,形成s o a p 响应返回给客户端。 4 。2 改进后的软件总线组成结构分析 4 2 1 软件总线接口 基于软件总线的软件的目标是创建高度结合的、合作良好的构件组合应用系 统,但构件各自有明显不同的任务,以及创建系统中构件间低耦合性。这需要系 统设计者从对象规范来扩展面向对象原则到用接口定义明确地表示对象相关性。 这种软件总线及构件能力的规范可以划分成跨几个接口o ”3 。将构件规范划分成 多个接口可以使构件内相关性被限制到个别接口,而不是整个构件规范。 软件总线的接口是实现用一种语言编写的程序与其它用未知语言编写的程 序进行通信。o m gi d l 总是允许创建基于继承的对象关系。然而,设计需要支持 包含多个接口的对象,而这些接口是通过组合而不是通过继承来构造的。对象继 承允许您依照另一个类来定义这个类的实现,而对象组合允许通过将对象集合或 组合在一起来定义一个类。o m ci d l 需要表达组合和继承的能力。”。 在设计软件总线的接口时,由于i d l 具有良好的跨语言特性,可以满足软件 总线设计目标的需求“。i d l 里不能编写实际的程序,因为它缺乏逻辑和流控制 结构,需要它们来用i d l 做任何有用的事。i d l 既为基本类型也为类进行类型定义, 所以应该用它来定义接口,而不是执行。 但是为了使外网的客户也能识别i d l 接口描述,需要将w s d l 描述引入软件总 线中。通过网关可以直接将i d l 描述转换成w s d l 描述,是软件总线接口得到扩充。 4 2 2 软件总线通信结构 软件的未来其实在很大程度上要看软件接口的前景如何。计算机世界里的接 口这两个字具有

温馨提示

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

评论

0/150

提交评论