




已阅读5页,还剩58页未读, 继续免费阅读
(计算机应用技术专业论文)基于构件的重用技术在变电两票系统中的应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 互联网的快速发展和经济的全球化使得软件已深入、广泛地渗透到人类社 会的各个方面,软件系统的应用规模和复杂程度迅速扩大。同时,社会对软件 的需求也与日俱增。当前,软件生产能力已难以满足社会对软件的巨大需求, 软件业迫切需要优良的技术和支撑环境,以提高生产能力,适应社会需要。 软件复用是在软件开发中避免重复劳动的解决方案,其出发点是应用系统 的开发不再采用一切“从零开始”的模式,而是以现有的工作为基础,充分利 用过去应用系统开发中积累的知识和经验,从而将开发的重点集中于应用系统 的特有构成成分。通过软件复用,在应用系统开发中可以充分利用己有的开发 成果,消除重复劳动,避免重复开发可能引入的错误,从而提高软件开发的效 率和质量。基于构件的软件开发方法是软件复用思想在软件开发过程中的具体 应用,它以软件构件为核心,借鉴传统工业生产的模式,用构件复用( 组装) 的方式建立新的应用系统,为软件开发提供了全新的思路。 本文结合软件项目实践,研究探讨了软件构件技术以及基于构件的软件开 发方法中的相关问题。在分析总结基于构件的软件开发方法的基础上,结合个 人开发经验,从建造可复用构件和基于构件的应用系统的构造入手,一方面提 炼开发了一些用于微机开写变电两票系统典型构件,另一方面运用这些构件构 造了用于变电所( 站) 微机开写操作票和工作票的系统,该系统的开发过程是 用基于构件的软件开发方法来构建应用系统的一次成功实践。 关键词构件;c b d ;矢量图形;变电站 a b s t r a c t s o f t w a r eh a sa l r e a d yi n f i l t r a t e di n t oe v e r ya s p e c to fh u m a ns o c i e t y d e e p l ya n db r o a d l yb e c a u s eo fr a p i dd e v e o p m e n to fi n t e r n e ta n de c o n o m i c g l o b a l i z a t i o n t h ea p p li c a t i o ns c a l e a n d c o m p l i c a t i o n a r e p r o m p t e x p a n d e d a tt h e s a m et i m e ,t h es o f t w a r er e q u i r e m e n t so fs o c i e t ya r e i n c r e a s i n g t h et h r o u g h p u to fs o f t w a r e ,p r e s e n t l y ,i sd i f f i c u l tt o s a t i s l yt h ee n o r m o u sn e e d ,a n ds os o f t w a r ei n d u s t r yn e e dg o o dt e c h n i q u e a n de n v i r o n m e n tt oi m p r o v ee f f i c i e n c ya n df i td e m a n d so fs o c i e t y s o f t w a r er e u s ei sar e s o l v e m e n to fa v o i d i n gr e p e a t i n gl a b o u r ,w h i c h a i mi st od e v e l o pa p p l i c a t i o ns t a r tf r o ms c r a t c hn ol o n g e r ,a n dt om a k e u s eo fa v a i l a b l ek n o w l e d g ea n de x p e r i e n c e ,t h e r e b y ,t h es o f t w a r e d e v e l o p i n ge m p h a s i sc a nc o n c e n t r a t eo nc o n s t i t u t e so fa p p l i c a t i o n i n o r d e rt oi m p r o v et h ee f f i c i e n c ya n dq u a l i t yo fs o f t w a r ed e v e l o p m e n t ,i t c a nb et a k ea d v a n t a g eo fd e v e l o p e da c h i e v e m e n t ,e l i m i n a t er e p e a t i n g w o r k ,a n d a v o i dm i s t a k ew h i c h r e p e a t i n gd e v e l o p m e n t c a u s ei na a p p l i c a t i o nd e v e l o p m e n tb yu s i n gr e u s a b l es o f t w a r e c o m p o n e n t b a s e d d e v e l o p m e n ti sac o n c r e t ea p p li c a t i o ni ns o f t w a r ed e v e l o p m e n tu s i n gi d e a o fr e u s e i tc o n c e n t r a t e so nc o m p o n e n t ,u s ef o rr e f e r e n c eo ft r a d i t i o n i n d u s t r yp a t t e r n ,m a k eu pan e wa p p l i c a t i o nw i t hc o m p o n e n t ,a n dp r o v i d e an e wm e t h o dt od e v e l o ps o f t w a r e i p a r t i c i p a t e i np r o j e c t p r a c t i c e ,a n ds t u d yt h et e c h n o l o g yo f c o m p o n e n ta n dr e l e v a n tp r o b l e mi nc o m p o n e n t b a s e dd e v e l o p m e n t o nt h e b a s i so f a n a l y z i n gc o m p o n e n t b a s e dd e v e l o p m e n t ,c o m b i n i n gp e r s o n a l d e v e l o p m e n te x p e r i e n c e ,a n ds t a r t i n gw i t hp r o d u c i n gc o m p o n e n ta n dm a k i n g u pa p p l i c a t i o nw i t hc o m p o n e n t ,ih a v em a k es o m et y p i c a lc o m p o n e n t sw h i c h u s e di nt h es u b s t a t i o nt o wt i c k e ts y s t e mo no n eh a n d ,a n db u i l dt h e s u b s t a t i o nt o wt i c k e ts y s t e mw i t ht h ec o m p o n e n t sih a v em a k eo nt h eo t h e r h a n d t h ep r o c e s so ft h i ss y s t e md e v e l o p m e n ti sas u c c e s s f u lp r a c t i c e w h i c hu s e sc o m p o m e n t st om a k eu pa p p l i c a t i o n k e y w o r d sc o m p o n e n t :c b d :v e c t o rg r a p hio s :s u b s t a tio n 论文原创性声明 本人声明,所呈交的学位论文系在导师指导下本人独立完成的研究成果。 文中依法引用他人的成果,均已做出明确标注或得到许可。论文内容未包含法 律意义上已属于他人的任何形式的研究成果,也不包含本人己用于其他学位申 请的论文或成果。 本人如违反上述声明,愿意承担以下责任和后果: 1 交回学校授予的学位证书; 2 学校可在相关媒体上对作者本人的行为进行通报: 3 本人按照学校规定的方式,对因不当取得学位给学校造成的名誉损害, 进行公开道歉; 4 本人负责因论文成果不实产生的法律纠纷。 论文作者签名:箍挝卫 日期:丝1 年土月兰生日 论文知识产权权属声明 本人在导师指导下所完成的论文及相关的职务作品,知识产权归属东北电 力大学。学校享有以任何方式发表、复制、公开阅览、借阅以及申请专利等权 利。本人离校后发表或使用学位论文或与该论文直接相关的学术论文或成果时, 署名单位仍然为东北电力大学。 论文作者签名:熊盟迢日期:。垃年土月笪曰 导师签名:么;壅i 塑日期:丑年土月丛日 第1 章前言 软件生产工程化是发展软件产业的关键。在2 0 世纪6 0 年代中期出现软件 危机后,科技界提出了软件工程的概念,人们利用工程学原理和方法实施软件 的开发,取得了良好效果。但在新的市场需求不断涌现的情况下,软件产业面 临的问题依然存在,主要有以下几个方面: 1 软件生产率相对较低。硬件技术尤其是网络技术高速发展,软件发展却 严重滞后,社会对软件的需求大大超过了现有的软件开发能力。 2 软件产品还是显得脆弱,可靠性差,原因在于软件的复杂性、不一致性 等问题没有得到彻底的解决。 3 传统的软件开发方式难以形成可复用、可共享的“软件资产”,软件企 业的资产没有很好的积累。 对于上述问题,学术界与工业界一直认为软件工程的先进技术构件技 术将是解决上述软件产业面临问题的有效途径。 1 1 研究背景及意义 电气倒闸操作是变电所中一项经常性工作,而开出正确无误的操作票是正 确进行操作的基础和关键。操作票是操作任务和操作方案的具体化,运行人员 编写变电所电气倒闸操作票就是根据当班设备的运行方式,按照规程规定和调 度令,对相关设备及其操作类型进行倒闸操作的排序过程。除了操作票制度外, 工作票制度也是一项保证检修人员正确进行检修工作、保障人身和设备安全的 重要组织措施,“两票”应相互对应,变电所工作票不仅具有很强的规律性而 且它和操作票有很多相关之处圆。 由于变电所的主接线方式复杂,一次与二次设备繁多,为了保证编写操作 票和工作票的正确性,我国电力生产法规规定:必须由运行经验丰富、对设备 性能及电气操作规程有较深了解的人员来编写,同时电气操作票的书写格式要 求也很高。但是要求运行人员长期手工开出正确的操作票和工作票,尤其是在 紧急的状态下,并非易事。因此要求运行人员在开列操作票和工作票时具备丰 富的经验,同时也要求其始终保持高度的注意力。开列操作票和工作票是一项 非常复杂的工作,从数学上讲出错的概率始终存在,而且手写操作票和工作票 工作量大,票面质量要求高,耗费时间精力超过操作本身嘲。 用微机实现操作票的填写至今已有近二十年的历史,以往的操作票微机开 写系统主要分为以下几种类型:基于产生式系统方式、查询开票方式、子程 序模块方式、图形校核开票方式、基于开关控制逻辑方式和面向对象方式。从 目前现场应用的情况看,这些系统都分别解决了不同层次的现场问题。 微机开写工作票的系统研究开发也比较活跃,但多数都与微机开写操作票 系统相独立,还有可能造成两票内容和次序的不完全对应,从而对变电所的安 全检修和操作构成威胁,这同时也为软件的维护带来了不便。 利用计算机生成内容完全正确、符合运行生产要求的操作票和工作票,达 到“两票必须一致”的现场要求,早己成为运行人员的广泛需求。经过许多科 研人员的不断改进,微机开写操作票和工作票系统基本上都达到了实用水平, 但实际上,生产现场中对于这类软件的推广却一直很慢,其主要原因在于目前 系统的开发过程中,软件重用少,生产效率低,通用性差,可维护性不好。表 现在以下几个方面: 1 软件对应用环境的适应性差,很难在不同应用环境间共享代码。随着环 境的变更,许多代码失去其生命力,导致开发一个新的系统几乎都要从头做起, 重复开发。 2 软件可维护性差,难以适应设备配置、电网结构的差异,难以及时应用 新理论、新方法,适应生产运行的新要求。从而造成软件开发周期长、成本高 的恶性循环。 3 软件严重依赖于编程语言,用不同语言开发的应用难以交互,开发人员 必须在各种编程语言间做出取舍,在同一应用中难以荟萃各种编程语言提供的 优良性能。 4 面向代码而非面向服务的设计框架缺乏开放性,难以满足日益广泛的分 布式网络应用的需求。 就变电所微机开写操作票系统和工作票系统的理论本身而言,算法已能满 一2 一 第1 章前言 足大部分工程的需要,也就是说,多年来,相当一部分科研人员和工程人员不 可否认地陷入工程的泥潭,多人多次地重复同一工作,不同企业、开发组问无 法共享代码,即使同一开发组甚至同一个人编写的代码,很多情况下由于应用 环境及客户需求的不同不得不推倒重来,造成资源的巨大浪费,这在很大程度 上阻碍了软件技术的更快发展以及微机开写变电两票系统这一生产现场很需要 的软件产品的推广应用。针对这一现状,通过对微机开写操作票系统和工作票 系统的通用性问题、可维护性问题及软件重用模型的研究,本文提出了基于构 件的变电所操作票及工作票系统的建造思想,改进了软件开发过程中的重用问 题,提高了系统的通用性和可维护性。 1 2 软件重用的发展现状 重用性是软件产业发展的重要基础。提供的什么样的重用机制,或者说在 哪个层次上提供重用对软件业的发展至关重要,意义深远。因而,重用性是衡 量程序设计方法重要指标。 1 2 1面向对象的重用模型 一段时间内,大量的范例和方法论,从流程图创建到面向对象,在不回程 度上和不同范围内被接受并试图成为解决软件重用问题的方法,但最终所有这 些解决方案都遭到了失败,而且没有找到可靠的替代品。当然,并不是说流程 图没有帮助或面向对象设计是无效的,面是说,它们并没有将软件开发减少到 可以保证结果的规范。 面向对象编程某种程度上是软件业乐于接受的最新方案。这反应在面向对 象语言( 如j a v a 、s m a l l t a l k 和c + + 等) 的大量流行上这些语言都在不同程 度( 取决于它们的设计者原有的技术领域、它们所要解决的问题以及它们所存 在的局限性) 上带有面向对象的标志。简单地说,面向对象编程技术的目标并 不是用模仿计算机逻辑的程序方式达到方便编程的目的。而是让开发者按照现 实世界人们思考问题的模式编写程序0 1 。 面向对象编程得到大规模普及是因为它允许开发者可以在完全不同的工 程之间共享代码。虽然代码的共享和重用被认为是设计良好的面向对象设计最 东北电力大学硕士学位论文 主要的益处,但实际上共享的代码还是太少了。问题的关键在于面向对象编程 对语言和应用环境的依赖性及其交互的局限性。 真正的代码重用意味着代码必须是以足够通用的方式为重建更大型的应 用而编写。多数类型的代码重用存在另一个问题:它们一般要求原始的开发者 和打算重用代码的人使用同样的编程语言。如某个类库使用c + + 编写的,那么 用其它语言编写的应用程序就基本上不能重用该代码;同样,j a v a 类就只能在 j a v a 程序中使用。所以,虽然使用面向对象编程比不使用它能获得相对多的软 件重用,但却面对上述局限。如何将代码共享与重用应用到实际的、现实的编 程中? 虽然面向对象编程长期以来一直作为对这个问题的最直接解决方案,但 显然未尽人意。 由于上述代码重用的障碍,及软件技术的不断进步,使复杂软件的开发仍 存在如下具体问题: 1 现代软件应用程序既大又复杂,开发耗费大量时间,维护困难且代价高 昂,扩展其功能风险很大。 2 应用程序按照集成电路的风格进行开发,它们可以在某个范围内以静态 特性进行预先安装,但却不能被独立的添加、取消和更新,或者被替换。 3 应用程序不能对外集成,程序的数据和功能都不易为其它程序复用。 总之,面向对象编程的软件重用是基于代码级的重用,各种程序库的应用 就是代码重用的成功实践。但是,基于代码的重用只是较低层次的重用,我们 有理由也有必要期望更高层次的重用。真正的重用意味着代码必须以足够通用 的方式编写,能够按照其工作方式得到定制”1 。 1 2 2 软件构件技术发展背景 面向对象方法使软件的结构能直接映射其要解决的问题空间的结构,使软 件结构与问题空间一致,简化了软件开发过程各阶段中模型之间的转换,从而 使人们对问题的认识和分析过程与解决问题的过程保持一致成为可能“1 。然而, 传统的面向对象提供的上述好处主要是针对分析、设计和编码等软件开发阶段 的,当一个传统的面向对象的代码经过编译、链接后得到的可执行软件却是不 可改变的。另外,传统的面向对象并没有完全达到其最初所追求的目标;面向 - - 4 一 第l 章前言 对象的软件是由对象类构成的,软件开发不需要每次都从头开始,它可以借用 以前软件开发中积累下来的对象类。在极端的情况下,当开发一个项目时,所 需要的类都可通过市场买到标准的软部件,所做的工作就是将这些标准的软部 件重新组织,让它们相互合作完成此项目的任务。目前,传统的面向对象的方 法和技术并不能完全达到这一目标。构件技术正是在这种背景下提出的,它的 出现是对软件开发过程的一次质的变革嘲。这种在二进制代码级的接口标准, 使得软件可在二进制代码级重用大量已有的软件实现,可动态地组装一个软件, 提供了各种软件模块之间的可操作性,这为最终给用户定制一个软件,以及软 件本身的进化和维护提供了很好的机制。通过接口可以包装一个己有的软件系 统,也为遗产软件的再利用提供了技术保证。构件技术包括了许多内容,主要 c b d ( c o m p o n e n t b a s e dd e v e l o p m e n t ,基于构件的软件开发) 、构件的规范描 述、构件分类检索、构件的存储管理、构件的获取与传播、构件的生产与组装、 构件的运行模型、基于构件的服务和构件的度量与评价等。随着软件工程新技 术的发展与复用技术的逐渐成熟,软件构件技术显露出潜在而强大的生命力。 首先表现在已有了可复用软件构件的“即插即用( p l u g a n d p l a y ) ”运行环境 工业标准,主要有o m g 的c o r b a ,m s 的c o m 十和s u n 的j 2 e e 。基于这些标准的 构件运行平台,人们可以提供构件的公共服务和协调运行机制,降低了构件的 复杂度,更好地支持构件的互操作。其次,近年来兴起的w e bs e r v i c e 技术为 可复用构件之间的互操作铺平了道路,国际上主要的i t 企业和研究单位投入巨 资研发复合构件运行的框架产品,如m i c r o s o f t 公司的n e t ,s u n 公司的o n e ( o p e nn e te n v i r o n m e n t ) 、i b m 公司的w e b s p h e r e 产品和b e a 公司的w e b l o g i c 产品都已被广泛使用。再次,对构件内涵和基于构件的开发方法的研究已经有 了很大进展。 1 3 本文所做工作 1 3 1 研究的主要内容 本论文从传统的软件开发方法和解决软件危机出发,研究与探讨了软件复 用、软件构件的相关技术和基于构件的软件开发( c b d ) 方法,并将c b d 方法应 东北电力大学硕士学位论文 用在变电两票系统的开发中。在分析总结了c b d 方法的基础上,结合个人的开 发经验,从建造可复用构件和基于构件的应用系统的构造入手,利用自开发构 件,构造了变电两票系统。主要内容如下: 1 研究软件复用和软件构件的基本理论。 2 研究基于构件的软件开发方法的开发思想和过程。 3 研究n e t 开发软件构件的技术方案。 4 设计变电两票系统的体系结构,并提取出构件接口。 5 使用n e t 构件模型实现构件接口,开发公共构件和领域专用构件。 6 利用构件组装开发变电两票系统。 1 3 2 研究步骤和技术路线 为了完成本论文的研究目标和内容,采取的方法和研究步骤主要如下: 1 在查阅文献资料的基础上,研究软件复用的基本思想、概念和技术,研 究软件构件的相关概念、目前最流行的几种构件规范以及他们的特点。 2 研究在基于构件的软件开发方法( c b d ) 中如何运用软件复用的思想、 c b d 方法和传统开发方法的不同以及如何在实际中使用c b d 方法进行系统开发。 3 学习前人的开发经验并结合自己的开发经验,考虑将c b d 方法运用在变, 电两票系统的开发中,并根据构建应用系统的具体需求,提炼开发一些用于面 向电力行业的典型构件。 4 利用已获得的构件,用c b d 方法建立变电所( 站) 两票系统,在实践中 验证c b d 方法。 - 6 - 第2 章构件技术 第2 章构件技术 要实现软件业的工程化、产业化,复用是目标,构件是基础与核心。基于 构件的软件开发方法是软件复用思想的应用,是实现软件复用思想的技术手段。 软件构件好比机器零件,是组成系统的基础。机器正常运转依靠于每个零件的 正常工作,同样的道理,整个软件系统的运作,需要每个软件构件的有力支持, 如果哪个构件出了问题,就替换掉哪个构件,而不影响整个系统的运转,这就 是我们希望达到的境界。这一天的到来就是实现软件产业化的标志。 2 1软件构件的基本概念 1 9 6 8 年的n a t o 软件工程会议上,m c i l r o y 第一次正式提出了构件生产的 思想。但是至今,什么是构件仍是c b d 中最难回答的问题之一。因为构件的内 涵十分丰富,c b d 又处于一个发展阶段,所以出现了许多不一致的构件定义, 也出现了许多容易混淆的概念,例如对象、中间件、框架、构架、子系统、c o t s 、 产品线等等,而一些理论家和实践家们也从不同的角度、不同的层次提出对构 件的看法; 著名的b r o w n 和w a l l n a u 描述构件为“一个非平凡的、几乎独立的、可替 换的系统组成部分,它在定义完善的体系结构环境中实现某一清晰的功能”嘲。 同时他们进一步认为软件构件只能是“一个说明了合同并且明显的与语境无关 的组合单元”。 c l e m e n s 认为:构件是一个独立部署的单元,是一个第三方合成的单元, 构件没有一致性的状态。 g a r t n e rg r o u p 定义:运行时软件构件是一个可动态绑定的、含一个或多 个程序的软件包,它作为一个独立单元,通过运行时可辨别的文档化接口加以 管理和存取。 总而言之,构件( c o m p o n e n t ) 是可复用的软件组成成份,可被用来构造 其他软件“”。它可以是被封装的对象类、类树、一些功能模块、软件框架 - - 7 - - ( f r a s w o r k ) 、软件构架( 或体系结构a r c h i t e c t u r a l ) 、文档、分析件、设 计模式( p a t t e r n ) 等。构件分为构件类和构件实例,通过给出构件类的参数, 生成实例,通过实例的组装和控制来构造相应的应用软件。 2 2 软件构件的分类 构件的分类方法有多种,如青鸟工程开发的m i s 构件库中将构件分为三级; 零级、一级、二级类库。其中,零级类库是由基本数据结构和其相关的算法封 装在一起而形成的基本数据结构类:一级类库包括应用软件常用的、具有通用 功能的一些构件类;二级类库是针对不同行业的专用构件类库。这种分类方法 基本上是按照自底向上的方法分类的。 从不同的角度出发,还可将构件分为如下几类: 1 t 根据构件的使用范围,分为通用构件和专用构件。 2 根据其内部工作机制,分为黑盒构件和白盒构件。前者只需从外部了解 其功能和使用方法,即插即用,后者使用时需作适当修改。 3 根据构件粒度的大小和关注点将构件分为业务构件和服务构件“。业务 构件是较大力度的可复用构件,为实现一个自治的业务功能而产生的构件。服 务构件是粒度较小的构件,它完成某种类型的功能,是组成业务构件的基本元 素。 4 根据功能用途,分为系统构件、支撑构件和领域构件。系统构件运行于 整个构件集成环境和运行环境中;支撑构件在构件集成环境、构件库管理系统 中;领域构件则是为专用领域开发的构件。 5 根据构件复用时状态,分为动态构件和静态构件。动态构件运行时可动 态装卸;静态构件是在系统设计时装入的构件。 6 根据构件的来源,可将构件分为自开发构件和第三方构件。 7 按开发过程构件分为分析件、设计件、程序件和数据件。 2 3 构件的基本属性 创建可复用软件构件的目标是适用、高效、易于使用和维护,所以可复用 构件的最重要的性质有: 第2 章构件技术 1 可复用性:可以在软件产品信息中明确识别并将被用于开发其他软件系 统,有真正的被多次重用的潜力,也就是说构件应该要满足某种公共的需求或 者提供了某种经常被用到的服务。 2 有用性:表明构件有较高的质量,易于理解和使用。因为既然要被复用, 在软件质量上就要对构件有更高的要求:第一,数据结构良好、接口设计清晰, 只有这样才能增加其易理解性,才能被复用者更好的连接与配置;第二,算法 要好,目前很多构件从功能上都是可被复用的,但它们仍然称不上是优质构件, 其主要原因是算法复杂度太高,虽然现在大多的硬件条件足以支持相对复杂的 系统,但是有些庞大的构件运行效率并不是太好,所以在构件设计的时候也要 对其算法进行研究,减低算法的复杂性,提高运行的效率。 3 适应性( a d a p t a b i l i t y ) :构件应该易于通过参数化等方式在不同应用 环境中进行配置。 4 可移植性( p o r t a b i l i t y ) ;构件应能在不同的硬件运行平台和软件环 境中工作。 除此之外,还有正确性、完备性、可维护性等。 2 4 构件的模型 构件模型定义了构件的本质属性,规定了构件接口的结构以及构件与软件 构架、构件与构件之间的交互机制。构件模型通常还提供创建和实现构件的指 导原则。 构件模型是为开发者定义软件构件而建立的体系结构和a p i 集。使开发者 可通过软件构件的动态组合来建立应用系统。构件模型由构件和容器两种主要 成分构成。构件是具有可复用特性的基本软件部件。容器用于存放和安排构件, 实现构件间的交互。容器也可以作为另一个容器的构件使用。c b d 工具可以识 别和组装来自不同开发者的符合同一构件模型的构件。 理论上,一直没有停止对构件模型的争论,有代表性的理论模型有: 1 3 c 模型:3 c 模型是学术界普遍认同的一个具有指导性作用的构件模型。 该模型从概念( c o m p o n e n t ) 、内容( c o n t e n t ) 和语境( c o n t e x t ) 三个不同方 面来描述构件。 东北电力大学硕士学位论文 概念:就是关于“构件做什么”的抽象描述,可以通过概念去理解构件的 功能。概念包括接口规约和语义描述两个部分。 内容:概念的具体实现,描述构件如何完成概念所刻划的功能。 语境:构件和外围环境在概念级和内容级的关系。语境刻划构件的应用环 境,为构件的选用和适应性修改提供指导。 2 r e b o o t 模型( 刻面模型) :r e b o o t 模型是基于已有软构件的一种刻面 分类和检索模型,从各个角度,即刻面( f a c e t ) 刻画软构件属性。 3 北京大学青鸟工程以三个视角( 形态、层次和表示) 和九个方面定义构 件模型: 概念;对构件功能的抽象描述。 操作规约:用来指称构件对外提供的、可被请求的服务。 接口:给出了构件的对外行为描述。 类型:用于定义“什么值可用作为操作参数”。 实现体:这是构件的具体实现部分,是实际完成被请求服务的系统。 构件复合:构件通过复合组成系统。 构件性质:指明构件的形态、层次和表示。 构件注释:描述和构件库相关的其他性质。 构件语景:描述构件的软、硬件使用环境和实现依赖。 青鸟构件模型更多的关心构件易理解性、封装性以及其间关系,通过构件 提供明确的对外接口实现服务提供者和其服务请求者的分离,更多的关心构件 及其使用者间的交互,特别是对构件使用者有意义的部分。 2 5 软件构件实现规范及标准 软件构件规范是关于开发可复用软件构件和构件之间相互通信的一组标 准的描述。这些构件规范主要在构件模型中得以体现。遵循软件构件规范,通 过复用已有的软件构件,软件开发者可以像搭积木一样快速构造应用程序。这 样不仅可以节省时间和经费,提高工作效率,而且可以产生更加规范、更加可 靠的应用软件。 目前构件实现规范主要有c o m ( c o m p o n e n to b j e c tm o d e l 对象构件模型) 第2 章构件技术 d c o m 、j a v a b e a n e j b 、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 ra r c h it e c t u r e 公共对象请求代理体系结构) 和n e t 。这些构件规范皆是针对二进制代码构件 制定的,为基于构件的软件开发提供了一个对象管理的基础设施。下面从构件 实现规范角度对这些规范进行简要介绍。 2 5 1c o m c o m 构件实现规范由微软公司提出,它使开发人员可以利用其中的通信机 制组装不同开发商提供的构件。c 伽的核心是一组应用程序调用接口( a p i ) , 该接口提供了创建构件、组装构件的功能。为支持网络环境,微软对c o m 进行 了扩充,这就是d c o m ( d i s t r i b u t e dc o m p o n e n to b j e c tm o d e l ) 。d c o m 是 m i c r o s o f t 与其他厂商合作提出的一种分布构件对象模型,其发展经历了一个 相当曲折的过程。d c o m 起源于动态数据交换( d d e ) 技术,通过剪切粘贴 ( c u t p a s t e ) 实现两个应用程序之间共享数据的动态交换,对象连接与嵌入 o l e 就是从d d e 引申而来的。c o m 规定了对象模型和编程要求,使c o m 对象可以 与其他对象相互操作。这些对象可以用不同的语言实现,其结构也可以不同。 基于c o m ,微软进一步将o l e 技术发展到o l e 2 。其中,c o m 实现了o l e 对象之 间的底层通信工作,其作用类似于c o r b a o r b 。不过此时的c o m 只能作用在单 机w i n t e l 平台上。在o l e 2 中,也出现了今天熟知的拖放技术以及o l e 自动化。 同时,微软在v b 中引入了可以嵌入任何可视构件的通用模型、,b x 。v b x 的 主要局限在于它并不是一个开放的结构,也没有为第三方软件开发商提供v b x 集成的标准。最后,微软将上述思想集中在一起,以c o m 作为构件通信框架。 v b x 也发展为o l e 控件0 c x 的形式。d c o m 是c 伽在分布计算方面的自然延续, 它为分布在网络不同节点的两个c o m 构件提供了互操作的基础结构,而所有以 o l e 为标志的技术如今也已挂上了a c t i v e x 标志。 从c o r b a 的观点来看可以粗略地说,a c t i v e x 控件与d c o m 的关系相当于 c o r b a 构件与o r b 的关系。当然,按照微软一贯的产品开发逻辑,微妙的思想 都退到了幕后,而提供给开发者的是一个以w i z a r d 方式生成各种应用的可视化 开发环境。在公共服务方面,微软提出了自己的事务服务器m t s ( m i c r o s o f t t r a n s a c t i o ns e r v e r ) 和消息队列服务器m s m q ( m i c r o s o f tm e s s a g eq u e u e s e r v e r ) 。前者与c o r b a 对象事务服务目标类似,后者则是为了保证应用之间 进行可靠的消息通讯和管理。此外,微软在网络安全方面也有一整套实用的解 决方案。 c o m 规范具有如下特点: 1 构件间的相互操作基于指针进行。依赖于操作系统的a p i 。 2 对w i n d o w s 的依赖性强,对其他操作系统的支持相对不足。 3 构件运行环境的提供者仅限于微软,但支持t o m 规范的开发工具比较多, 例如v c + + ,v b ,c + + b u i l d e r ,d e l p h i 等。 2 5 2j a v a b e a n e j b 按照s u n 和j a v a s o f t 对j a v a 的界定,j a v a 是一个应用程序开发平台,它 按照高性能、可移植、可解释的原则,提供面向对象的编程语言和运行环境。 j a v a 计算的本质就是利用分布在网络中的各类对象共同完成相应的任务。例如 j a v a a p p l e t 可按用户的需求从服务器上动态地下载到客户机的浏览器上,完成 h t m l 页面的动态变化。j a v a 的软件构件称为j a v a b e a n ,或者简称b e a n 。按照 j a v a s o f t 给出的定义,b e a n 是能够在构造工具中进行可视化操作的可复用软 件。j a v a b e a n 的构件模型包含构件和容器两个基本要素,这一思想在 h e t i v e x d c o m 技术中同样存在。模型的其它部分还包括事件处理、持续性、布 局以及应用程序建立器等,这些都是通过j a v a b e a n 构件的标准接口实现的。 j a v a b e a n 构件是由接口构成的,接口是由方法组成的。容器能够使构件组 合在一起并相互作用。这种机制主要是为界面构件提出的,它本身也是一个构 件,以便嵌套组合产生复杂的可视化g u i 。下面讨论b e a n 的主要特征: 1 属性管理:根据属性的使用类型可将其分为:一般属性、索引属性、依 附属性和约束属性,通过一些标准的命名约定定义它们相应的访问方法,使 j a v a b e a n a p i 能用统一的方式对属性进行管理。其中,依附属性是基于自身值 的变化面向感兴趣的部分提供通知的属性。约束属性是一种在接收更改之前能 使感兴趣的部分对新属性值执行有效检查的属性 2 内省功能:内省功能是构件的内部结构( 属性、方法和事件) 展现给外 部的机制。不同于c 0 m ( 使用i u n k n o w 接口中的q u e r y i n t e r f a c e ) ,j a v a b e a n 不需要构件开发者开发这种额外的工作,它只需要开发者对构件的属性、方法 和事件的命名和类型符号遵守一个约定,通过标准的j a v a b e a na p i 就可了解到 b e a n 的任何内部信息。 j a v a b e a n 的事件处理模型是基于现存的a w t 事件处理模型的。它决定b e a n 如何对它自身状态的变化做出反应,以及决定如何将这些变化传递给应用程序 和其他b e a n 。通过j a v a b e a na p i 将一个事件接收器注册到该事件上,完成外 部对事件的控制。 最近几年年,j a v a 又提出了企业j a v a b e a n ( e j b ) 的思想,其结构完全采 用基于软件构件模型的分布对象计算体系。 e j b 规范定义了j a v a 的服务器端构件模型。s u n 公司发布的文档中对e j b 的定义是:e j b 是用于开发和部署多层结构的、分布式的、面向对象的j a v a 应 用系统的跨平台的构件体现结构。采用e j b 可以使开发商应用系统变得容易, 应用系统可以在一个支持e j b 的环境中开发,开发完之后部署在其他的环境中, 随着需求的改变,应用系统可以不加修改地迁移到其他功能更强、更复杂的服 务器上。 j a v a b e a n s e j b 构件实现规范具有如下几方面的特点: 1 构件模型比较完备。 2 仅支持j a v a 语言。 3 构件运行环境主要有s u n 支持,其他厂商也可以提供运行环境,支持该 模型的开发工具也比较多,例如:e c l i p s e 、j b u i l d e r 、n e t b e a n 、v i s u a lc a f e 、 v i s u a la g ef o rj a v a 等。 2 5 3c 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 ra r c h i t e c t u r e ,通用对象请求代 理体系) 构件实现规范由o m g ( o b j e c tm a n a g e m e n tg r o u p ,对象管理组织) 提 出。o m g 首先发布了o m a ( 对象管理体系结构) ,提出了构件互操作的软总线一 o r b ( o b j e c tr e q u e s tb r o k e r ,对象请求代理) ,o r b 是一个与语言及平台都 无关的对象接口。c o r b a 定义了构件对象间通过o r b 透明地发送请求和接受响 应的机制,保证了分布异构环境下对象之间的互操作性。采用o r b ,客户机可 以直接调用位于远程对象内的方法,就像一次本地调用。c o r b a 将构件分为三 类:公用对象服务( c o s ) 、面向领域的公共设施( c f ) 和完成具体任务的应用 构件。 c o r b a 有两个重要的特点:面向对象技术与分布式计算的结合;代理机制 的中间件技术。 1 面向对象与分布式技术的结合: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 屏蔽了位置信息和计算机的软硬件环境。 2 代理机制的中间件对象请求中介( o b j e c tr e q u e s tb r o k e r ,简称o r b ) : 作为一种构件技术,c o r b a 要解决的另一个重要问题是二进制代码之间的互操 作问题。c o r b a 提供了一种中间的代理机制,将构件的接口与构件的实现分离 开。服务对象实现后,就将其接口登记在c o r b a 的代理中,客户对象按照代理 中的接口描述访问服务对象,而不关心服务对象使用什么语言、在什么地方、 在什么软硬件环境下实现的。这些工作都由代理自动地、透明地为客户对象完 成。 可把o r b 比作软件总线。应用程序可以根据需要、按照标准( 接口) 插到 o r b 总线上,它们之间通过o r b 相互合作、共同完成应用。客户和服务器可以 在同一台计算机上,也可在不同的计算机上,还可以是不同计算机上、不同操 作系统上、用不同语言实现的软件实体。o r b 完全屏蔽了软硬件平台、网络环 境和程序语言的不同。 c o r b a 没有定义二进制代码的标准,而是在高层定义了一个标准的接口描 述语言i d l a 并通过扩展机制提供各种语言到i d l 之间的映射,以i d l 为中问 的桥梁,达到各种语言之间的互操作。这是利用中间件实现不同语言之间互操 作的又一范例。 第2 章构件技术 2 5 4 n e t n e t 提供了一套公共的运行库,并制定了一套公共语言规范,所有符合该 规范的语言都可以无缝使用这套运行库在n e t 平台下,除了语法上的区别, 各种编程语言没有本质的不同。它们共享公共类库,具有类似的编程模型和相 差无几的功能。n e t 平台提供大量的服务,包括垃圾自动收集、面向对象的多 线程、基于程序集的部署、异常处理、特性编程、远程处理、a s p n e t 网页框 架、互操作、安全性等,使开发人员可以快速构架任何应用,包括从传统的桌 面应用到面向w e b 的大型分布式应用“”。 在n e t 体系中,位于核心的有三项技术:x m l 、w e b 服务( w e bs e r v i c e s ) 以及n e t 框架( n e tf r a m e w o r k ) 在n e t 的观念里,软件即是一种服务,而 软件在互联网上通过w e b 方式进行提供,便称为w e b 服务。这其中所介入的所 有数据交换,都基于x 札格式进行。而对这些技术的基础支持,均通过n e t 框 架来实现。 在n e t 框架中,引入了如j a v a 般的操作系统平台兼容性。n e t 框架提供 了一个公用语言执行环境( c l r ,c o m m o nl a n g u a g er u n t i m e ) ,相当于n e t 中 的虚拟机。任何支持n e t 的程序设计语言,如m a n a g e dc + + ,c # ,v i s u a l b a s i c n e t 等,都将编译出中间代码( i l ,i m m e d i a t e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地铁工程宣传方案(3篇)
- 安全教育课件培训学时
- 学习任务群在高中语文课堂中的应用
- 农业无人机租赁服务平台在2025年的市场定位与品牌建设策略
- 猎人笔记课件
- 地下管廊工程方案(3篇)
- 犬咬伤的护理
- 安全教育培训馆课件
- 矿业会计面试题及答案
- 口腔考编面试题库及答案
- 变压器试验收费标准
- 竣 工 验 收 证 书(施管表2)
- 2023学年完整公开课版法兰克王国
- 整理黑龙江基准地价与标定地价早
- CPK工具表的模板
- 中国画发展史
- 客户基本信息调查表实用文档
- 19-雾在哪里ppt市公开课金奖市赛课一等奖课件
- 城镇道路工程施工与质量验收规范
- GB/T 11270.2-2002超硬磨料制品金刚石圆锯片第2部分:烧结锯片
- 金融统计分析教材课件
评论
0/150
提交评论