现有构件技术评述和理想构件技术初探.doc

现有构件技术评述和理想构件技术初探.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二讲 现有构件技术评述和理想构件技术初探 §1 引言 面向对象的方法和技术是继结构化方法之后出现的、最有代表性的软件开发方法,是当今软件开发的主流技术。面向对象具有良好的思想、方法、机制和技术,其核心是用软件对象模拟和表达现实中的对象。面向对象方法使软件的结构能直接映射其要解决的问题空间的结构,使软件结构与问题空间一致,简化了软件开发过程各阶段中模型之间的转换,从而使人们对问题的认识(分析问题)过程与解决问题的过程保持一致(增量式开发、原型开发)变得成为可能。 然而,面向对象给我们提供的上述好处主要是针对分析、设计和源代码等软件开发阶段的,当一个面向对象的代码经过编译、连接后得到的可执行软件是铁板一块的、不可改变的、无法重用的。另外,面向对象最初所追求的目标并没有完全达到:面向对象的软件是由对象类构成的,面向对象的软件开发不需要每次都从头开始,它可以借用以前软件开发中积累下来的对象类。在极端的情况下,当我们开发一个项目时,就像计算机硬件市场一样,所需要的类都可通过市场买到标准的软部件,我们的工作就是将这些标准的软部件重新组织,让它们相互合作完成本此项目的任务。目前,这个目标还是软件的乌托邦,面向对象的方法和技术并不能完全达到这一目标,这是因为: 对软件设计的结果最终是要用某种面向对象的语言实现,那么,用一种语言实现的对象类怎么用另一种语言来复用呢?软件世界是五彩缤纷,各种语言各有其各自的优点和适应的范围,如果想用某一种通用的、万能的语言工替所有的其它语言,在目前是不现实的,Ada语言就是一种失败的尝试。退一步讲,既使我们发明了这种语言,我们又如何复用以前大量的、用现有语言开发的软件呢? 面向对象所得到的软件的良好结构是源代码级的,软件的进化和维护只能在这一级进行,它不能解决像作者在文[10]中所述的情况:即一个软件产品交给最终用户以后(可执行的二进制代码),要想对其直接进行维护(增加或修改某个功能),这只有在得到源代码的前提下才可能,而得到源代码有时是不可能的。这就限制了最终用户的特定要求和以后软件方便地升级。 一个对象的二进制代码是与实现它的硬件环境、操作系统平台相关的,他们不能满足Internet上日益增长的移动计算的需要,不能在异质的环境中对它们进行复用。 因此,我们需要一种新的、不依赖于某种特定语言的、在二进制代码级可复用的软件“对象”,这种“对象”就是构件(Component)。 构件技术是一种软件实现的技术和方法,是对面向对象方法在二进制代码级的完善和补充。构件是由接口构成的,它把接口和接口的实现分离开了。接口是独立于语言的一种描述,它将内部的实现以及接口到实现的映射都封装起来了,外界只能通过接口描述使用构件。因此,接口用那种语言实现也就无关仅要了。 由此可见,接口是构件技术的核心,只有定义了统一的接口标准,各种语言编制的软件就可互操作了。目前,ISO并没有定义接口的国际标准,但有三家权威机构已定义了它们的接口标准,并取得了广泛的应用,下面分别介绍。 §2 现有构件技术评述 在现有的软件市场上,有三种代表性的构件技术流派,它们分别是COM(Component Object Model,对象构件模型)、JavaBean和CORBA(the Common Object Request Broker Architecture,公共对象请求代理体系结构)。它们是由不同的机构提出的构件技术实现模型和标准,各有优缺点,下面分别介绍: 一、COM(Component Object Model,对象构件模型) COM是由Microsoft公司推出的构件接口标准。目前已有大量的基于COM的构件可供复用,原则上讲这些构件可以建立在任何环境下,但现有的COM构件大多都依赖于Microsoft环境,在unix、Macintosh等其它操作系统环境下可复用的构件还很少,Microsoft公司正在努力开发更多的在其它操作系统环境下的COM构件。 传统的应用程序在源代码级可被分割为文件、模块、类或函数等,这样便于实施、修改和以后的维护,但将它们编译、链接以后就生成了一个铁板一块的二进制可执行代码,而用COM技术产生的源代码则不是这样的。下面逐一论述COM构件的工作原理,以及由此带来的软件开发优势。 接口 一个COM构件是由若干个接口组成的,而一个接口则是由若干个函数的说明组成的。COM是一个二进制标准,即接口编译以后生成的二进制代码的结构要满足一定的内存块结构。该内存块结构是不依赖于任何语言的。下面的图形表示一个拥有Fun1和Fun2函数的IX接口的内存块结构: 构件 Fun1 Fun2 IX接口 Fun1 Fun2 vtbl 指针 pIX

文档评论(0)

369221 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档