(计算机应用技术专业论文)软件构件技术在电路分析虚拟实验中的研究与应用.pdf_第1页
(计算机应用技术专业论文)软件构件技术在电路分析虚拟实验中的研究与应用.pdf_第2页
(计算机应用技术专业论文)软件构件技术在电路分析虚拟实验中的研究与应用.pdf_第3页
(计算机应用技术专业论文)软件构件技术在电路分析虚拟实验中的研究与应用.pdf_第4页
(计算机应用技术专业论文)软件构件技术在电路分析虚拟实验中的研究与应用.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

(计算机应用技术专业论文)软件构件技术在电路分析虚拟实验中的研究与应用.pdf.pdf 免费下载

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

文档简介

软件构件技术在电路分析虚拟实验系统中的研究与应用 摘要 多媒体技术、网络技术、通信技术、计算机技术的发展,促进了 教育教学的发展。利用先进的软件开发技术和开发平台,根据学习者 心理特点和发展水平,开发教学系统,为创设学习情景提供了条件。 在这样的需求下,北京邮电大学网络教育学院投资电路分析虚拟试验 系统的研发,该系统用虚拟的方法模拟实验中实际用到的器材设备, 用户依据要求设计完成电路分析实验,提供给用户与真实环境相同的 情景。通过使用a c t i v e x 控件将仿真的核心放在控件的开发上,而将 与仿真无关的内容( 如用户信息管理,登陆退出,实验管理等) 放在 网页中使用j s p 以及j 2 e e 开发,将功能进行划分,为分工提供了可 能性,提高了开发的效率。 论文分六部分论述软件构件技术,a c t i v e x 控件在系统开发中的 研究应用。第一部分论述软件构件技术发展以及本课题的研究内容和 技术路线。第二部分是软件构件技术的研究,主要介绍三种主流构件 模型或标准。第三部分a c t i v e x 控件技术的理论研究。第四部分是 a c t i v e x 控件技术在电路分析虚拟试验系统中的应用,包括a c t i v e x 控件的设计、编码、测试以及a c t i v e x 控件与网页的交互、安全性等 问题解决。第五部分是j a v aa p p l e t 在系统中的研究。第六部分是软 件构件技术运用系统研发方案的总结,以及系统的进一步发展。 作者参与了电路分析虚拟试验系统研发的全过程,并负责其中的 需求分析,a c t i v e x 控件技术研究,一部分器材的设计、编码和测试, 以及系统的性能测试等工作。实践证明这是一个行之有效的开发过 程,同时,该系统的成功开发对于其后开发的电路信号、数字电路虚 拟试验系统的研发起到了非常重要的指导和借鉴意义。 关键词:电路分析、虚拟实验、软件构件、组件对象模型、a c t i v e x 控件、j a v a 小应用程序 t h er e s e a r c ha n da p p l i c a t i o no ft h e s o f t w a r ec o m p o n e n tt e c h n o l o g yi nt h e v ir t u a le x p e r i m n t a ls y s t e mo fc i r c u i t a n a l y s i s a b s t r a c t t h ed e v e l o p m e n to fm u l t i m e d i at e c h n o l o g y , n e t w o r kt e c h n o l o g y a n dc o m m u n i c a t i o nt e c h n o l o g y , p r o m o t et h ed e v e l o p m e n to fe d u c a t i o n a n dt e a c h i n g u s i n gt h ea d v a n c e ds o f t w a r ed e v e l o p m e n t a lt e c h n o l o g y , a c c o r d i n gt ot h ef e a t u r e so f m i n da n dt h ei t sd e v e l o p m e n t a l e v e io fl e a r n s t h et e a c h i n gs y s t e mw i l lb ed e v e l o p e d ,w h i c h p r o v i d es t u d e n t st h e e n v i r o n m e n to fs t u d y u n d e r r e q u i r e m e n t s ,t h en e t w o r ke d u c a t i o n i n s t i t u t eo fb u p ti n v e s t e dt h es y s t e m t h es y s t e mu s e dt h ev i r t u a l m e t h o dt os i m u l a t es o m ec o m p o n e n t so fe x p e r i m e n t ,p r o v i d e su s e r st h e s a m es c e n ea st h er e a l i t y u s e r sd e s i g na n df i n i s ht h ee x p e r i m e n t a c c o r d i n gt on e e d s a c t i v e xc o n t r o ls i m u l a t e st h ec o r eo fs y s t e m ,w h i l e t h e i m p l e m e n t o ft h ei n f o r m a t i o nm a n a g e m e n ta b o u tu s e r sa n d e x p e r i m e n t se t c ,a d o p t sj s p , j 2 e et e c h n o l o g y , s od i v i s i o no fw o r ki s c l e a r , e f f i c i e n c yi si m p r o v e d t h ep a p e rd i v i d e si n t os i xp a r t st od e s c r i b et h er e s e a r c ha p p l i c a t i o n o ft h es o f t w a r ec o m p o n e n t ,a n da c t i v e xc o n t r o li nt h es y s t e m f i r s tp a r t d e s c r i b e st h ed e v e l o p m e n to fs o f t w a r ec o m p o n e n tt e c h n o l o g y ,a n dt h e r e s e a r c hc o n t e n t sa n dt h et e c h n o l o g i c a lr o u t eo ft h es u b j e c t s e c o n dp a r t d e s c r i b e st h er e s e a r c ho fs o f t w a r ec o m p o n e n t ,i n c l u d i n gt h r e ek i n d so f m a j o rc o m p o n e n tm o d e lo rs t a n d a r d t h i r dp a r ti s t h er e s e a r c ha b o u t a c t i v e xc o n t r 0 1 f o r t hp a r ti sa b o u tt h ea p p l i c a t i o no fa c t i v e xc o n t r o li n t h ev i r t u a ls y s t e mo fc i r c u i ta n a l y s i s ,i n c l u d i n gd e s i g n ,c o d e ,t e s ta n d o t h e ra b o u ta c t i v e xc o n t r 0 1 f i s hp a r td e s c r i b e st h er e s e a r c ho f j a v a a p p l e ti nt h es y s t e m s i x t hp a r ti st h es u m m a r y ,a n dp r o s p e c t i v e t h ea u t h o rp a r t i c i p a t e di nw h o l ep r o c e s so fd e v e l o p m e n ta n ds t u d y o ft h ev i r t u a ls y s t e mo fc i r c u i ta n a l y s i s a n dw a sr e s p o n s i b l ef o r t h e r e q u i r e m e n t so ft h es y s t e m ,t h es t u d yo fa c t i v e xc o n t r o l ,t h ed e s i g n 、 c o d ea n dt e s to fp a r t i a lc o m p o n e n t s ,a n do t h e rw o r ka b o u tp e r f o r m a n c e t e s to ft h es y s t e me t c t h ep r a c t i c eh a sp r o v e dt h a ti t j so n ee f 矗c i e n t d e v e l o p m e n t a lp r o c e s s a tt h es a m et i m e ,t h es u c c e s so fd e v e l o p m e n to f s y s t e mi sv e r yi m p o r t a n ti n s t r u c t i o na n dr e t e r e n c et ot h ed e v e l o p m e n to f o t h e rc o u r s e s ,s u c ha sc i r c u i ta n ds i g n a l ,d i g i t a lc i r c u i te t c k e yw o r d s :c i r c u i ta n a l y s i s ,v i r t u a le x p e r i m e n t , s o f t w a r e c o m p o n e n t , c o m p o n e n to b j e c tm o d e la c t i v e xc o n t r o l ,j a v aa p p l e t 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成果。尽我所 知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰 写过的研究成果,也不包含为获得北京邮电大学或其他教育机构的学位或证书而使用过的材 料。与我一同,r 作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了灌 意。 申请学位论文与资料若有不实之处, 本人签名: 赵籀! 虱 本人承担一切相关责任。 日期2 比啦孥 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即:研究生在校 攻凄学位期问论文: 作的知识产权单位属北京邮电大学。学校有权保留并向国家有关部 门或机构送交论文的复8 7 , f 牛1 i i 磁衙,允许学位论文被查阅莆i 借阅;学校可以公布学位论 文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编学位论文, ( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密论 文注释:本学位论文不属于保密范围,适用本授权书。 第一章绪论 1 1 软件构件技术研究的意义 “占据世界软件销售额8 5 的是大型的专用软件,而其开发的失败率却高达 7 0 ! ”美国国家标准和技术研究院的研究报告 “到2 0 0 5 年至少7 0 的新应用将主要建立在如软件构件和应用框架这类“构 件的基础上! ,_ a n n e rg r o u p 的研究报告 传统的软件开发方式大致可以分为两个阵营。在一个阵营中,一个项目开发 完全从头开始,只借助开发工具和开发函数库;在另一个阵营中,项目中的所有 东西都是被外包的,也就是说,通过购买并参数化标准软件来提供足够接近实际 需要的解决方案。完全定制的软件有其优势所在:它可以最优地配置到用户的业 务模型中,并且可以充分利用内部的专有知识和经验。 但是,即使定制软件确实能够工作,它们也存在一些严重的缺陷:从头开始 的开发代价非常昂贵;而且,除了一些局部有专家方案外,总体上的解决方案不 够理想。维护和追逐最新技术可能成为一个主要负担,例如,一体化的网络访问。 同其他机构内部的系统之间的,以及同商业伙伴和用户之间的互操作需求加重了 这种负担。其结果是大多数大型系统的开发都部分地或完全地失败,导致了严重 的危机。另外,在这样一个商务需求迅速变化的世界里,定制软件通常是滞后的 一还没开发出来就已经变得过时了。 既然定制软件有那么多明显的内在不足,而潜在的优势又难以弥补,因此“外 包”成为业界中软件开发的主要趋势是可以理解的。软件产品以固定的价格外包 以减小财务风险。为了控制软件进入市场的时间风险,使用标准软件成为一个强 大的趋势。也就是说,软件只须做轻微的调整就可直接使用。这样,软件维护、 产品演化和互操作性等问题就由标准包的软件提供商解决,而留给开发人员的只 是对标准软件参数化和配置。这仍需很大的努力。 那标准软件存在什么问题呢? 首先,标准软件可能需要对受影响的业务过程 进行或多或少的改变。尽管对业务流程的再造是很有价值的活动,但业务流程是 为了实现它本身,而不足为了使未达到最佳的标准软件更好地发挥作用。其次, 标准软件是一个标准:竞争对手同样也拥有它,所以使用它并不能带来任何竞争 优势。 构件化软件是解决这个问题的中间路线。实际上中间件上面的服务或者应用 的开发就是构件化的,但是构件化的软件开发思想没有渗透到卢用软件开发层 面! 也诤是当前的主要关注在于从c ,s 到基于互联网应用的网络基础的转变: 构件化的软件生产方式,与以前的软件生产方式相比,具有以下优势。 第一、构件化的生产方式,从重用的角度而言;它是业务层面的抽象和重用, 比类的重用高一个层次。因而更能够进一步提高效率。类的重用是泥沙层面的重 用;但是构件的重用是砖头层面的重用;用砖头建筑效率要高于只是使用泥沙来 建筑。 第二,构件化比定制软件的方斌而言:这种生产方式的价值在于,构件能够 反复重用,多次重用;不断积累。而且没有维护的许多隐患。 第三,构件化比生产一个通用的软件,然后实施到不同的企业而言:它更加 个性化,更加灵活,更加能够满足客户特殊的需求。能够适应企业的管理和业务 优势。 构件化的优势的关键在于:构件化是“分解再重装”。如果不分解,就没有灵 活性和适应性,这是通用软件的弊端;如果分解的粒度太细( 代码级或者类级) , 效率会下降。软件构件的提出使得软件“部件”的重用及多应用的分批投资具有 实际的可能性。 构件化软件还结束了以往大量升级循环的问题。传统上完全集成的软件需要 周期性的升级。这通常是一个艰难的过程,需要进行老数据库的移植,并确保向 上的兼容性,还需要再次培训客户,以及购置更优的硬件设备等。而基于构件的 软件方案中,对个别需要升级或者不协调的构件进行单独升级将会更加平滑。 1 2 软件构件技术研究与发展 1 2 1 构件技术的历史渊源 1 9 6 8 年n a t o 软件工程会议,m e l l r o y 在提交会议的论文大量生产的软件 构件中,提出了“软件组装生产线”的思想。从那以后,采用构件技术实现软件 复用,采用“搭积木”的方式生产软件,成为软件开发人员长期的梦想。软件复用 是指重复使用“为了复用目的而设计的软件”的过程。就软件开发而言,软件复用 包括:早期的函数复用、面向对象言语言中的类的复用,以及互联网时代的完整 软件体系的构件复用。 有效的软件复用是可以提高软件开发的效率和质量。建立在构件复用基础上 的软件复用将会带来极大的价值,( s o f t w a r er e u s e ) ) 指出很多公司通过复用取 得的成就使们坚信,管理层可以期待获得如下优势:投放市场时间:减少为原来 的l 2 到i 5 ;缺陷密度:降低为原来的1 5 到1 1 0 :维护成本:降低为原来的 l 5 到l 1 ( ) :整体软件开发成本:降低大约1 5 ,长期项目可降低高达7 5 。 因此构件技术一直被视为解决软件危机现实可行的途径。在过去几十年尽管 软件刀发的主流思想几经沿革,软件业一直没有放弃构件技术的尝试。 锄年代木到8 0 年代初,结构化的软件开发思想占主导地位,当时的复用是 函数爻用和模块复用。函数通过参数来适应不同应用需求的变化,p a c k a g e 模块 也;壬通过接口规范说明进行连接和组装实现复用。但是,由于结构化的存在极大 隐患,函数层面的复用能力有限,其结果是系统结构混乱、效率低,软件成份复 用性差。函数复用和模块复用没有解决软件工程的危机。 8 0 年代起,面向对象的软件开发思想迅速发展起来,通过类的封装、继承 和应用面向对象的软件开发成功的实现代码级的复用。类和封装性,实现数据 抽象和信息隐蔽,继承性,提高了代码复用性。面向对象技术被公认为当前的主 流的技术。但足,面向对象的复用脱离不了代码级复用的本质,由于复用的颗粒 较低,软f l - y f 发中的复用的潜力远远没有发挥出来。类复用也没有解决软件工程 的危机。 互联网应用时代的到来,不仅仅增加了应用需求和软件的复杂性。构件技术 在互联网时代突飞猛进,已经为实现软件复用的理想,解决软件危机蒂来了曙光! 面向构件的技术实现更高的层次的抽象。面向构件技术对一组类的组合进 行封装,并代表完成一个或多个功能的特定服务,也为用户提供了多个接口。整 个构件隐藏了具体的实现,只用接口提供服务。这样,在不同层次上,构件均可 以将底层的多个逻辑组合成高层次上的粒度更大的新构件,甚至直接封装到一个 系统,使模块的重用从代码级、对象级、架构级到系统级都可能实现,从而使软 件像硬件一样,能任人装配定制两成的梦想得以实现。 构件技术标准走向成熟,目前主流的软件构件技术标准有:微软提出的 c o m c o m + 、s u n 公司提出的j a v a b e a n e j b 、o m g 提出的c o r b a 。它们为应 用软件的丌发提供了可移植性、异构性的实现环境和健壮平台,结束了面向对象 中的刀:发语占混乱的局面,解决软件复用在通信、互操作等环境异构的瓶颈问题。 1 2 2 软件构件技术国外研究发展状况 国外早就将构件技术应用到实践中去,下面作简要介绍。 领域王程技术:美国国防部高级研究项露署建立了”用于易修改的可靠系统 的软件技术”项目,研究领域特定的、基于复用的软件工程技术,并建立了三个 示范工程项目。美国空军电子系统中心与美国航空航天局合作建立了”可复用防 务软件的中央档案库”项目,以促进国防项目中的软件复用。 c o r b a 分布式对象技术:b e l l s o u t l l 公司在大型机上有大量的应用程序和数 据,新的业务过程需要与之协作。c o r b a 技术提供的解决方案是将遗留系统包 装为构件,以0 r b 为”软总线”集成新老系统。由摩托罗拉发起的著名的”铱星工 程”中,最终采用了o r b 产品作为软件构件之间的互连框架。 产品线技术:1 9 8 5 年,瑞典c e l s i 曲c h 系统公司,同时接到两份合同一瑞 典海军和丹麦海军的轮船系统,两个系统都需要很强的容错性和分散性,该公司 采用s s 2 0 0 0 产品线方法后,获得了巨大成功,将硬件与软件的费用比例从过去 的3 5 :6 5 蛮成了8 0 :2 0 。 1 2 3 我国软件业对构件技术的研究现状 在国内,软件构件技术的发展要稍微慢一些。在2 0 0 4 年4 月,科技部、信 息产业部等部门已经把“发展构件库”写进了2 0 0 5 年“加强软件企业技术创新 的目标”中,并提出在北京和上海率先建立软件构件库。以下对国舟构件技术的 一些科研现状作简要介绍。 3 北京大学软件工程研究所。北京大学软件工程研究所是一个专注于软件 工程及其相关领域的研究和实践的学术机构,其前身是建立于1 9 8 3 年 的软件工程教研室,1 9 9 9 年正式挂牌成为北京大学的一个专业研究所。 近年来,研究所在所长杨芙清院士的领导下,对软件复用与软件构件技 术进行了深入的研究。成果代表为青鸟工程是,历经“七五”、“八五”“九 五”。青鸟工程在软件复用和构件技术领域成绩斐然。 中国科学院软件研究所。中科院软件所软件工程技术研究中心,在首席 研究员冯玉琳博士带领下,对构件技术深入研究,硕果累累。其中作为 知议创新工程的成果的信息化基础软件核心平台是其代表。 上海普元。普元是国内最早推进面向构件技术的厂商之一,也是目前国 内唯一一家提供真正意义上的面向构件的互联网应用基础平台的专业 化厂商。普元把崭新的互联网相关技术与先进的构件复用技术以及可视 化开发技术完美地结合起来,创造了一套具有国际领先水平的面向构件 的互联网的应用基础平台e o s 。 4 4 联网实验宣。互联网实验室是我国著名的i t 研究机构,长期从事构 件技术及软件产业的研究,并2 0 0 4 年1 月1 6 日发布了面向构件的互 联网应用基础平台研究报告,是目前国内较为详尽的关于构件技术研 歹e 的专业报告。 5 神州数码目l 宵已经与北京大学软件工程国家工程中,t l , 进行合作,丌始共 同着手建立北大软件构件库了。而且前不久由神州数码开发“c t a i s 2 0 系统”能够获得首届北京市优秀软件构件一等奖,也与神州数码能 够开放自己的软件构件有很大的联系。 1 3 虚拟实验的研究 从广义上讲,任何不使用或部分使用实际硬件来构造试验环境,完成实际物 理试验的方法和技术部可以称为虚拟试验。虚拟试验可以定义为在虚拟环境中进 行的试验。而虚拟试验环境是基于软件工程研制的仿真系统试验系统,它允许设 计者将虚拟原型安装在其上进行“试验”,借助交互技术和试验分析技术,使设计 者在设计阶段就能对产品的运行性能进行评价或体验。或者虚拟实验就是在计算 机系统中采用软件代替部分硬件或全部硬件来建立各种虚拟的试验环境,使试验 者可以如同在真实的环境中一样完成各种预定的试验项目,使所取得的试验效果 等价于在真实环境中所取得的效果。 计算机仿真为科学试验开辟了一个全新的解决方案。计算机仿真是利用计 算机对试验对象的数学模型进行模拟试验,求得对实物原型系统规律性认识的一 种试验方法,它使虚拟试验进入了数字化阶段。 计算机仿真的进一步发展是虚拟现实( v i r t u a lr e a l i t yt e s t ,简称v r ) 。虚拟 现实赴一种人工创建和体验虚拟世界的计算机系统,它具有三个特征:高度的沉 浸感、可信度和交互性。利用虚拟现实技术,可以方便地在计算机上产生一个虚 拟的试验环境,对被试产品进行各种性能测试和检验:通过人的视觉、听觉、触 觉等作用人,使人产生身临其境的感觉,使试验者可以像在真实的环境中一样完 成各种预定的试验项目。 电路分析虚拟试验系统开发的目标是:依据电路分析实验课程的教学内 容,用虚拟的方法模拟实验中实际用到的器材设备,提供给用户与真实环境相同 的情景。,目户依据要求设计完成电路分析实验。通过使用本系统,使学生学会完 成本科要求的各种重要的电路分析实验。 1 4 本课题研究内容、研究方法及技术路线 1 , 4 1 课题研究主要内容 本课题的研究主要包括以下主要研究内容: 研究虚拟试验系统或类似系统如游戏软件系统在教育中的应用,寻求开发 系统的更好的解决方案; 了解软件构件技术,及近期商业上成功的构件模型,诸如c o r b a 、c o m 、 a c t i v e x 和j a v a b e a n s 等; 研究微软的a c f i v e x 技术,及a c t i v e x 控件研究,包括控件的创建、控件 与网页的交互、控件的安全性问题、控件的注册等,这是软件系统开发的 可行性研究; 设计、开发该系统并进行相关的性能验证、测试; j a v a a p p l e t 在虚拟实验系统中的研究: 论文总结。 1 4 2 拟采用的研究方法 针对本课题研究主要内容的基本特征,采取理论与实践相结合以实践为主的 基本研究方案。理论研究主要完成解决方案的确定,系统在技术上的可行性起研 究。实践上主要开发一个与网页进行无缝结合的a c t i v e x 控件,提供一系列接口。 通过研发的系统进步验证理论方面的正确性。 1 4 3 拟采用的技术路线 本课题拟采用如下技术路线: ); “ q o “ i i | = ,虚拟实 验系统域类 似系统如游 戏软 ,j = 系统 在教育中的 j 衄川 构件模 型的选 取 电类课程实验需求分析 并编写需求规格说明书 技术可行性 研究,主要 是a c t i v e x 与网页无缝 结合等相关 问题的研究 软件设 1 丁 编码 运行与测 i 巩 交付一个具有较好的仿真效果、满足 实验要求,具有良好交互性的可靠的 虚拟实验平台 第二章软件构件技术的研究 2 1 软件构件的基本概念 下面介绍与软件构件技术相关的一些基本概念,包括软件构件、接口、契约、 接口描述语言、构件框架等。 “软件构件是一种组装单元,它具有规范的接口规约和显示的语境依赖。软 件构件可以被独立地部署并由第三方任意组装。” 这个定义最先是在1 9 9 6 年的面向对象程序设计欧洲会议上( e u r o p e a n c o n f e r e n c eo no b j e c t - - o r i e n t e dp r o g r a m m i n g ,e c o o p ) ,由面向构件程序设计工 作组( s z y p e r s k i 和p f i s t e r ,1 9 9 7 ) 提出。 构件通过接口相互连接。从技术上说,接口是可被访问客户访问的各种操作 的集合岳个操作有规章的语义。棒口拥约或接口期格说明是一种“契约” ( c o n t r a c t ) ,它足够精确地描述构件实现的功能,同时又不把构件限定于唯一 的实现方法,这种不确定带来多解决方案的灵活性。契约扮演着双重角色:既是 提供者实现接口的依据,又是客户是使用接口的依据。由于在构件环境中,提供 者与客户各自意识不到对方的存在,接口规约便成为双方共同协调工作的中介。 因而,将接口及其规约与实现或使用这些接口的构件区别对待是十分重要的。 一个构件可以直接提供接口,或者实现一个客户可访问的对象,而由该对象 间接提供接口。构件直接提供的接口表现为传统函数库的过程化接口,由对象提 供的接口表现为对象接口。构件规约独立于接口及接口规约。构件觑约说明了构 件所依赖的所有接口,并加入了构件的特性。例如,一个过滤器构件有输入与输 出两个接口,其构件规约会指出输出接口要与输入接口相关联。所有的构件实现 都必须遵守构件规约。 直接接口与间接接口两个概念可以合而为一。基本思想是使用静态对象,该 静态对象可能是构件的一个组成部分。构件的过程化接口可以建模为该构件内某 静态对象的对象接口。大多数构件的实现可以使其看起来像对象接口。 将所有构件接口建模为对象接口,并且一个构件可以提供多个对象接口,这 有助于简化语义讨论的基础背景。然而,使用真正的对象接口而不是过程化接口 会带来那些影响呢? 从计算技术发展的早期开始,过程库就一直通过接口向许多 客户提供服务。然而,不同的库实现从未在一个给定的配置中相互竞争,只会因 平台或版本的不同而不同。而对于对象接口,情况则迥然不同了。 对象接口引入了一种名为方法分派一有时也称为动态方法查询一的间接调 用机制。对于一个给定的对象,它所属的类决定了它的接口的实现。在运行时刻, 为完成一个方法调用,需要找到目标对象所属的类,由该类的方法实现并完成调 用。方法分派可以有第三方的参与,在某些特殊的情况下,调用方客户和引入接 口的构件甚至都意识不到有第三方的参与。当实现接口的对象所属的构件不同于 客户通过浚接口进行交互的构件时,就会出现上述隋况。传统的过程化接口总是 直接被润用的,因为接口的定义与实现属于同一个构件。当然,使用过程变量( 也 称为函数设计) ,也可以实现显示的过程型间接调用机制。 下面将举例解释。考虑一个提供文本服务的构件t e x t s e r v i c e s ,它有一个提 供语法检查服务的接口i c h e c k g r a m m a r 。t e x t s e r v i c e s 还提供了协调器来选择默 认的语法检查器,这是通过将实现了接口i c h e c k g r a m m a r 的对象传递给协调器 来实现的。骇第三方语法检查器在安装后可被t e x t s e r v i c e s 的其它服务使用,也 可间接地被t e x t s e r v i c e s 的客户使用。因此,客户向t e x t s e r v i c e s 请求的语法服 务可能会由t e x t s e r v i c e s 以外的构件实现。即使客户只知道t e x t s e r v i c e s 的存在, 而t e x t s e r v i c e s 自身对实际的语法检查器一无所知,上述情况也是有可能发生的。 图2 ,l 描述了上述场景,数字表示获取对象的顺序。第一,语法检查器发现 文本服务协调器。第二,语法检查器向协调器注册为默认的检查器一协调器只了 解抽象的检查器接口。第三,字处理器发现协调器。第四,字处理器从协调器那 里得到当前默认的检查器对象的引用一与协调器一样,字处理器只了解抽象的检 查器接口。 图2 1 直接与n 4 i 4 9 口实例 构件的一个重要特性是可以独立部署的。但是一个构件可能会用到其它构件 或平台提供的服务,或者浣基于构件的软件系统中通常是多个构件协作完成一定 功能,所必构件依赖于组装环境或称为语境( c o n t e x t ) 。为了使构件j 下常地丁作, 必须说明其对环境的具体要求。这些要求被称为语境依赖,指的是构件组装和部 署的语境,包括了定义组装规则的构件模型和定义构件部署、安装和激活规则的 构件平台。 构件基础设施( i n f r a s t r u c t u r e ) 是异构构件互操作的标准和通信平台,构 件框架( f r a m e w o r k ) 是构件实例“即插即用”的支撑结构。通过一定的环境条 件和交互规则,构件框架允诲一组构件形成一个“孤岛”,独立地与外部构件或 其他框架交互和协作,因此构件框架及其内含的构件也可以视为一个构件,于是 构件通过不断的迭代和合成,构成一个结构复杂的应用系统。日前,有多个组织 和公司制定了构件基础设施的标准或开发了相关产品,也为构件、构件框架和接 口建立了模型和技术规范,其中0 m gc o r b a 、m i c r o s o f tc 踟d c o m ( 或n e t ) 以及s u nj a v a b e a n e j b 占主导地位。在接下来的一节中将介绍这三种模型。 2 2 构件模型与平台 当兮构件化软件领域有三柙主流力量:对象管理组织( t h eo b j e c t m a n a g e m e n tg r o u p ) 从商业的角度提出了基于c o r b a 的标准:m i c r o s o f t 从桌 面的角度提出了基于c o m 的标准;s u n 从网络的角度提出了基于j a v a 的标准。 一直以来,面向对象的技术( o b j e c to r i e n t a t i o n ,o o ) 是软件界努力追求的 目标,传统的对象技术通过封装、继承及多态提供了良好的代码重用功能。但是 这些对象只存在于一个程序中,外面的世界并不知道它们的存在,也无法访问它 们。要解决这些问题就需要提供一个标准的构件框架,使不同厂家的软件通过不 同的地址空间、网络和操作系统交互访问。该构件的具体实现、位置及所依附的 操作系统对客户来说都是透明的。因此有关对象中间件的标准相继问世,像o m g 组织( o b j e c t m a n a g e m e n t g r o u p ) 的公用对象请求代理程序结构( c o m m o n o b j e c t r e q u e s tb r o k e ra r c h i t e c t u r e ,c o r b a ) 、m i c r o s o f t 的构件对象模型( c o m p o n e t o b j e c tm o d e l ,c o m ) 以及i b m 公司的系统对象模型( s y s t e mo b j e c tm o d e l ,s o m ) 等,这些标准都极大地促进了对象中间件技术的发展。 2 2 i o m g 方式:c o r b a 构件模型 1 c o r b a 概要描述 c o r b a 是公共对象请求代理体系结构( c o m m o no b j e c tr e q u e s tb r o k e a r c h i t e c t u r e ) 的简称。c o r b a 是o m g 组织在1 9 9 1 年提出的公共对象请求代理 程序结构的技术规范。c o r b a 有很广泛的应用,它易于集成各厂商的不同计算 机,从大型机一直到微型内嵌式系统的终端桌面,是针对大中型企业应用的优秀 的中间件。最重要的是,它使服务器真正能够实现高速度、高稳定性处理大量用 1 0 户的访问。现在很多大型网站后端的服务器都运行c o r b a ,其中有些网站您可 能每天都在访问。 c o r b a 的底层结构是基于面向对象模型的,由o m g 接口描述语言( o m g i n t e r f a c ed e f i n i t i o nl a n g u a g e ,o m gi d l ) 、对象请求代理( o b j e c tr e q u e s tb r o k e r , o r b ) ; 1 1i i o p 标准协议( i n t e r n e ti n t e r o r bp r o t o c o l ,也称网络o r b 交换协议) 3 个关键模块组成。 使用接口描述语言编写的对象接口,使得与语言无关的独立性成为可能。 i d l 使得所有c o r b a 对象以一种方式被描述,仅仅需要一个由本地语言 ( c c + + 、c o r b a 或j a v a ) 到i d l 的“桥梁”。c o r b a 对象的互通信要以对象 请求代理为中介,这种互通信可以在多种流行通信协议( 如t c p i p 或i p x ,s p x ) 之上实现。在t c p i p 上,来自于不同开发商的o r b 用i i o p 标准协议进行通讯。 我们知道,为了保持c o r b a 的商业中立性和语言中立性,必须有一个中介, 存在于像c + + c o r b a 服务器代码和j a v ac o r b a 客户机这样的实体中间,这 就是i d l 。一个底层对象的若干相关方法和属性被i d l 集入一个单一接口。一旦 i d l 接口定义完成,它可以以s t u b 码或框架代码的形式编译成所选用的语言。 在所有的o r b 中都有i d l 编译器。 值得注意的一点是,i d l 不同于其他的面向对象程序设计语言,我们不能用 它指定所定义的类或方法的具体实现。因此,仅仅将它作为一种定义底层对象接 口的语言要好得多。 下面是o r b 接口结构介绍。 为了创建个遵从c o r b a 规范的应用程序,o r b 是c o r b a 必须提供的。 没有o r b ,c o r b a 应用程序裁无法工作。c o r b ao r b 最显著的功能,是对应 用程序或是其他o r b 的请求予以响应。实现细节对软件开发者的透明性,是o r b 的一个杰出的特性。在c o r b a 应用程序运行期间,o r b 可能被请求做许多不 同的事隋,包括查找并调用远程计算机上的对象、负责不同编程语言之间的参数 转换( 如c + + 到j a v a ) 、用动态方法调用激活远程对象等等。 图1 所示为一个独立的o r b 的结构,箭头说明o r b 的调用关系。为了提 出一个请求,客户端可以使用动态调用接口( d y n a m i ci n v o c a t i o n ) 或者客户端 的s t u b 程序。客户端也可以直接和o r b 交互。 图2 ,2 0 r b 的结构 对象的实现( o b j e c ti m p l e m e n t a t i o n ) 通过i d l 静态骨架( i d ls t a t i cs k e l e t 或动态骨架( d y n a m i cs k e l e t o n ) 的调用来接受请求。 图2 所示为一个远程调用过程。为了调用远程的对象实例,客户端首先获 取它的对象参数。客户端在进行远程请求时使用与本地请求相同的代码,只不过 用对象参数代替了远程实例。当o r b 检测对象参数并发现目标是远程对象的时 候它会调_ 穹这些参辑,把请求转移到网络上从而连接到远程对象的o r b 上。 o r b 可以从对象参数中判断出目标对象是远程的,客户端却做不到这一点。当 客户端发出请求时,对象参数不用去分辨目标对象的位置。这保证了对象位置的 透明性c o r b a 的这些基本原理简化了分布式对象的计算机应用的设计。 图2 3 远程调用过程 2 c o r b a 发展 最初,o m g 致力于解决个基本的问题怎样使采用不同编程语言实现、 运行于不同平台上的系统能够相互作用? 先抛开分布式计算环境不说,仅仅是诸 如同一平台上的两个编译器产生的代码之间禁止通信的这种简单现象,就使得集 成在一丌= 始陷入困境。 o m g 第年的工作就是解决这些基本的连线问题。其成果就是1 9 9 1 年发布 的公共对象请求代理结构( c o r b a ) 的最初版本,即c o r b a i 1 ,随后又在 c o r b a l 2 中加入了小的改进。1 9 9 5 年7 月发布c o r b a 2 ,并于1 9 9 6 年更新。 2 0 0 1 年1 2 月发布c o r b a 2 6 。当前最新版本是王q 。是在2 0 0 2 年8 月整理发布 的。c c m 的3 0 规范也已经发布。c o r b a 最主要的成就恐怕就是新的c o r b a 构件模型一c c m 。 3 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 c m 规范是c o r b a 3 0 规范的部分。c c m 是s e r v e r - - s i d e 构件模型,用 来创建和部署c o r b a 应用程序。c c m 比e j b 简单,因为它运用一些已接收的 设计模式,并简化它们的用法,使得很多代码被自动生成。这也允许由容器提供 者而不是应用程序开发者实现系统服务。c c m 扩展了c o r b a 对象模型通过定 义特征和服务在标准环境种,使得应用程序开发者实现、管理、配置和部署一些 构件。这些s e r v e r - - s i d e 服务包括t r a n s a c t i o n 、s e c u r i t y ,p e r s i s t e n c e 和e v e n t s 。 c c m 规范介绍了构件的概念,一套详尽的接口定义,以及关于构件的实现、 打包、部署的规范。像o m g 的任何规范一样,出现了一批新术语。简单介绍如 下。 f a c e t s ,端口:可将认为f a c e t s 作为接口理解。构件f a c e t s 是构件暴露的接 口。r e c e p t a c l e s ,中文名称为插座:为使用组合,组件需要将它的部分操作委 派给其它组件,这样就必须得到其它组件的引用,c c m 称这些引用为“o b j e c t c o n n e c t i o n s ”,并称这些关联的p o r t 名字为r e c e p t a c l e 。r e c e p t a c l e 提供了一种通用 方式将某种类型的对象和组件关联起来。这样,组件就可以关联其它对象,包括 其它组件,并激活这些对象上的操作。组件开发者可以使用r e c e p t a c l e 来指示是 否要将组件与其它对象或者组件关联。一个插座是一个抽象,具体地在一个组件 上表现为一系列建立和管理关联的操作。一个组件可能展示零个或多个插座。 e v e n ts o u r c e s s i n k s ,事件源接收器:允许构件之间没有被紧密相连相互操作。 这是松耦合,由o b s e r v e r 设计模式提供。当构件宣布发布或发出事件的通知时, 它作为事件源e v e n ts o u r c e 。发布者是专门的事件提供者,发布者可与其它事件 源共事事件渠道。其它的构件通过声明e v e n ts i n k 成为事件的订阅者或消费者。 a t t r i b u t e s ,属性:为有助于配置组件,c c m 规范扩展了a t t r i b u t e 的概念,可以 配置属性值。存取和修改属性值的操作,会产生异常。组件开发者可以利用这一 特点,要想在系统配置完成后修改配置属性的话就可以抛处一个异常。规范并没 有限制只能将属性作为配置之外的用途,但作为配置参数是直接支持的。 这些新的术语在下图中说明。 图2 4 构件模型 构件实现框架- - c o m p o n e n ti m p l e m e n t a t i o nf r a m e w o r kf c i f ) 介绍。许多商业 应用使用组件来模型化现实世界中的实体,如雇员、银行帐户和股票代理等。通 常,这些实体由数据库实体代

温馨提示

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

评论

0/150

提交评论