登陆注册
7554600000046

第46章 企业信息系统的支撑环境(4)

7.3.3组件对象模型的特性

COM规范所定义的组件模型,除了前面提到的面向对象和支持C/S模式这两个基本特性外,还具有以下特性:

(1)语言无关性

COM规范的定义不依赖于特定的语言,因此,编写组件对象所使用的语言与编写客户程序所使用的语言可以不同,只要它们都能生成符合COM规范的可执行代码即可。COM采用的是一种二进制代码级的标准,而不是源代码级的标准。

COM对象可以把OOP语言中的对象封装起来,并提供一致的接口,使它们可以被各种不同的语言所调用。这就为跨语言的合作开发提供了可能性。

虽然COM规范的定义与语言无关,而且差不多每种语言在实现时都提供了对COM的支持,但与COM规范最贴近、并且最能够反映COM特性的语言还是C或者C++。如果没有C/C++语言做基础,很难对COM有比较深刻的理解。只有用C或C++语言才能实现COM中所有的特性。

(2)进程透明性

COM提供的服务组件对象在实现时有进程内对象和进程外对象两种进程模型。如果是进程内对象,则它在客户进程空间中运行;如果是进程外对象,则它运行在同一台机器上的另一个进程空间或者在远程机器的进程空间中。通常可以把对组件对象的服务程序分为3种:进程内服务程序、本地服务程序和远程服务程序。虽然COM对象有不同的进程模型,但是这种区别对客户程序是透明的,因此客户程序在使用组件对象时可以不管这种区别的存在,只要遵循COM规范即可。

不过,选择进程模型对实现COM对象仍然很重要。进程内模型的效率高,但组件不稳定会引起客户进程崩溃,从而危及客户程序。进程外模型的优点是稳定性好,组件进程不会危及客户程序,一个组件进程可以为多个客户进程服务,但进程外组件开销大,而且调用效率相对低一些。

实现这种透明性的关键在于COM库。COM库负责组件的定位,管理组件对象的创建和对象与客户之间的通信。当客户创建组件对象时,COM库负责装入组件模块或者启动组件进程。如果客户指定在远程机器上创建对象,则两台机器上的COM库会协作完成远程COM对象的创建工作,并且在客户进程中创建一个代理对象,客户程序直接与代理对象进行交互。因此,客户程序可以不管组件对象的进程模型,即使组件的进程模型发生了变化,客户程序也不需要重新编译。

(3)可重用性

可重用性是任何对象模型追求的目标,尤其对于大型的软件系统,可重用性非常重要。COM对象的可重用过程与一般的面向对象的语言例如C++中对象的重用过程不同。对于COM对象的客户程序来说,它只是通过接口使用对象提供的服务,并不知道对象内部的实现过程,因此,组件对象的可重用性建立在组件对象的行为方式上,而不是具体的实现上,这是建立重用的关键。

COM用两种机制实现对象重用。假定有两个COM对象,对象1希望重用对象2的功能,把对象1称为外部对象,对象2称为内部对象,建立如下两种机制:

a.包容方式:对象1包含对象2,当对象1需要使用对象2的功能时,它可以简单地把任务交给对象2来完成。

b.聚合方式:对象1只需简单地把对象2的接口递交给客户即可,对象1没有实现对象2的接口,但它把对象2的接口传给客户程序,而客户并不知道内部对象2的存在。

对象重用是COM规范很重要的一个方面,它保证COM可用于构造大型软件系统,而且,使复杂系统简化成一些简单的对象模块,体现了面向对象的思想。

7.3.4组件对象模型的应用

(1)在Windows操作系统中的应用

在32位Windows版本例如Windows95/98/2000、WindowsNT等系统软件中,很多系统部件以COM的形式实现。这样做的好处是,不仅使各种开发语言可以直接调用系统提供的功能,而且有利于在特殊情况下对组件的单独升级。在Windows操作系统平台上,一些用COM形式提供的组件模块极大地丰富了Windows的功能,而且使Windows功能扩展更加灵活,例如:

a.DirectX多媒体软件包;

b.远程数据对象(RDO)和数据访问对象(DAO)的数据库访问对象库;

c.Internet ClientSDK。

从整个Windows操作系统来看,COM成为系统的基本软件模型,它带来的是灵活性和高效率,以及应用开发的一致性。特别是Windows2000已经与COM的升级版本COM+保持了更为紧密的关系。总之,COM已经渗透到Windows操作系统的各个方面,我们要建立基于Windows平台的应用就离不开COM的使用。COM已经成为Windows平台的组件模型标准。

(2)COM和数据库

在Windows平台上最有影响的数据库接口是ODBC。ODBC是一种标准的编程语言,用于连接各种数据源。不同的数据源由不同的底层ODBC驱动程序驱动。

绝大多数数据库厂商都提供了ODBC驱动程序,差不多所有的数据库都可以通过ODBC进行访问。

在ODBC之后,Microsoft又推出了RDO和DAO。RDO可用于创建和维护远程ODBC数据库系统组件,提供了一个自动化对象库,可在BASIC语言中方便地使用。DAO提供了两种访问数据库的方法:一种方法是通过MicrosoftJet数据引擎对MicrosoftJet数据库进行快速访问;另一种方法是通过ODBCDirect直接访问ODBC数据源。

后来,Microsoft又推出了用于对数据进行一致访问的OLEdB和ADO。OLEdB完全基于COM,可以认为是ODBC的替代品。它不再局限于关系型数据库,而是几乎适于处理所有的线性数据。ADO是建立在OLEdB上层的自动化对象库,可以广泛用于各种脚本语言中,这为脚本代码访问数据库提供了极大的方便。

(3)COM在intranet(企业网)中的应用

在企业信息化中,不可能只使用一个厂家的软件来满足企业的全部应用需求,通常是由一些专业厂商提供专业产品,然后再进行系统集成。从软件本身的发展趋势来看,系统集成所占的比重越来越大,而系统集成的一个关键问题是软件之间的接口。如果所有的软件都遵循同样的接口标准,那么不同软件的集成就有了基础。COM能够作为这样的标准,其作用不断在intranet应用中得到证实。

在intranet应用中,数据库服务器是企业信息资料库,各种应用软件可以通过数据库进行数据共享,但社会信息(例如电子邮件、企业内部的计划和报告等)也要进行管理,以便更好地利用这些信息。为了实现数据信息的共享,必须为相应的组件提供开放、一致的接口。对照前面介绍的C/S模式,很多中间件是通过COM组件来实现的。

(4)在Internet(因特网)公共设施应用接口领域接口中的应用

COM在Internet相关软件中的发展最能体现COM的优势,因为Internet软件要求有很好的开放性,开放性就意味着要遵循标准。在Windows平台上,COM就是这样的标准。

Microsoft提出的ActiveX技术包含了所有基于COM的Internet相关的软件技术。从服务器方面来看,ASP(Active Server Page)把Microsoft的因特网信息服务(IIS)系统与其他软件产品结合了起来。ASP页面文件的脚本分为服务器方执行的代码和客户方执行的代码。服务器方执行的代码可以通过ADO访问IIS服务器上的数据库,可以调用其他ASP对象所提供的各种功能服务,因此,在服务器方提供动态实时信息非常方便。

从Internet客户方软件产品来看,Internet ClientSDK提供了很多可以直接利用的组件或特性,包括Active X控制、Web Browser控制、XML对象模型、Internet Explorer地址簿等,通过这些组件,可以为用户提供更多的便利。

7.4通用对象请求代理体系结构

7.4.1通用对象请求代理体系结构的起源

通用对象请求代理体系结构(CORBA)是由对象管理组(OMG)制定的一种标准。OMG是一个国际性的非盈利机构,其任务是为应用开发提供一个公共框架,制定工业指南和对象管理规范,加快对象技术的发展。其主要技术目标是使基于对象的软件在分布异构环境下具有良好的可重用性、可移植性和互操作性,从而能够在由多种主流硬件平台上运行的多种操作系统构成的异构分布环境中,方便地建立异构分布应用系统。

OMG成立后不久就制定了对象管理体系结构(OMA)参考模型,其核心部分是对象请求代理(ORB)。针对ORB,由OMG组织制定了CORBA规范。OMA参考模型从总体上抽象地描述了OMG组织推出的面向对象技术所包含的内容,以及模型中各组成部分之间的关系。

(2)对象服务(object services)

对象服务是为使用和实现对象而提供的基本服务集合。在构建任何分布应用时,经常会用到这些服务,而且这些服务独立于应用领域。例如,生命周期服务定义了对象的创建、删除、拷贝和移动的方法,但是并不指明在应用中如何实现这些对象。

CORBA的服务称为COSS规范,它由一组接口和服务行为描述所构成,其作用范围几乎覆盖了分布系统和面向对象系统的各个方面。

(3)公共设施(common facilities)

公共设施是向终端用户应用提供的一组共享服务接口,但这组服务不像对象服务那样基本,例如系统管理、组合文档和电子邮件服务。

(4)应用接口(application interfaces)

应用接口是由销售商提供的、可控制其接口的产品,它相应于传统的应用表示。因此,OMG没有对它做标准化的工作。应用接口处于参考模型的最高层。

(5)领域接口(domain interfaces)

领域接口是为应用领域服务提供的接口。例如,OMG为产品数据管理(PDM)应用制定了规范,在该规范中定义了8个使能器,描述了12个功能模块及其接口,明确了PDM系统内部以及PDM系统与其应用系统之间交互的方式。

7.4.2通用对象请求代理体系结构的主要内容

CORBA规范是针对OMA参考模型中的ORB而制定的。CORBA规范定义了接口定义语言(IDL)及映射、单个ORB与ORB之间的互操作机制。

单个ORB体系结构描述了以下主要内容:

(1)IDL通过说明对象的接口来定义对象。

(2)ORB内核提供了客户与对象实现之间的透明通信方法,可以屏蔽对象的实现位置、实现方式、状态和通信机制等细节,以及不同实现方法之间可能存在的差异。

(3)对象适配器位于ORB核心与对象实现之间,负责服务对象的注册、对象引用的创建和解释、对象实现服务进程的激活和去活、对象实现的激活和去活以及客户请求的分发。

(4)IDL桩为用户提供了静态调用方式,IDL构架为客户提供了静态实现方式。IDL编译器对描述服务对象接口的IDL文件进行编译,生成对应于具体编程语言的IDL桩和IDL构架程序。IDL桩负责对用户的请求编码,发送到对象实现端,并对接收到的处理结果作出解释,把结果或异常信息返回用户;IDL构架对用户请求进行解码,定位被请求对象的方法,执行该方法,并把执行结果或异常信息编码后发送回客户。

(5)动态调用接口(DII)、动态构架接口(DSI)提供了动态调用方式和动态实现方式。

(6)在动态方式下,需要查询相应的服务对象信息的接口描述信息,这些信息由接口库提供。接口库通常以IDL描述文件为其输入,将接口描述信息进行处理后存放在文件、数据库或者其他存储机制中,并提供一组标准的调用接口供客户查询使用。

7.4.3通用对象请求代理体系结构的技术特点

COBBA规范具有以下技术特点:

(1)引入了代理(broker)的概念。一个代理至少起3个方面的作用:完成对客户提出的抽象服务请求的映射;自动发现和寻找服务器;自动设定路由实现到服务器方的执行。

(2)所实现的客户方程序与服务器方程序完全分离。这与以面向过程调用机制为基础的C/S模式存在很大的区别,客户将不再与服务器直接发生联系,而仅仅需要与代理进行交互,客户与服务器之间就可以建立更加灵活的关系。

(3)分布计算与面向对象的概念相互结合。这样,可以提高软件的重用率、控制冗余度等。

同类推荐
  • 生活与生态(和谐中华知识文库)

    生活与生态(和谐中华知识文库)

    生态文明是人类文明发展的一个新的阶段。即工业文明之后的世界伦理社会化的文明形态:生态文明是人类遵循人、自然、社会和谐发展这一客观规律而取得的物质与精神成果的总和:生态文明是以人与自然、人与人、人与社会和谐共生、良性循环、全面发展、持续繁荣为基本宗旨的文化伦理形态。
  • 航天航空小百科-航天时代的奇迹

    航天航空小百科-航天时代的奇迹

    航天技术,是当代迅猛发展的新科学技术。本书展示的是当今人类探索宇宙秘密的创造性壮举,对当今人类进入太空、利用太空的奇迹有较全面的了解。
  • 激光:神奇的光束

    激光:神奇的光束

    本书是一本介绍激光的科普读物,着重介绍了激光在自然科学研究、军事、工业、医疗、环保等学科以及技术领域和文化娱乐活动中的典型应用实例。
  • 贵阳建设全国生态文明示范城市报告

    贵阳建设全国生态文明示范城市报告

    党的十七大提出建设生态文明以来,为普及生态文明理念、探索生态文明建设规律,借鉴国内外成果推动生态文明实践,贵州省在全国率先提出打造全方位对外生态交流合作平台,并于2008年开始谋划举办生态文明贵阳会议。在国家有关部委的大力支持下,2009年至2012年,连续四年举办了生态文明贵阳会议,每年一届。2013年1月,生态文明贵阳国际论坛正式获党中央、国务院批准举办,成为国内目前唯一以生态文明为主题的国家级国际论坛。
  • 征服太空之路丛书:微型航天器-航模

    征服太空之路丛书:微型航天器-航模

    航空模型的制作与放飞,从古至今一直吸引着无数人。20世纪初飞机发明后,全世界出现了空前的航空热。发达国家竞相发展自己的航空事业,而模型飞机是学习航空技术、研究飞机最为简捷有效的方法。发达国家把航空模型活动当做普及航空教育,培养航空人才,发展航空事业的基础,从而形成了有组织有领导的群众性航模运动。
热门推荐
  • 任意行

    任意行

    道若流水。流水可急、流水可缓、流水可燥、流水可动。流水可行、流水可静、流水可止、流水可怒。一代神捕任我行,携道经,决战江湖。
  • 女娲传之十二大神器

    女娲传之十二大神器

    从出生就生活在现代的宋婉婷,她原本以为自己是一个普普通通的人类,没想到的却是她是女娲后人,…………女娲后人必须得要断掉七情六欲,还有一个办法,则是集齐十二大神器!接下来宋婉婷该面对怎样的境遇?
  • 贵族学校的五大帅哥

    贵族学校的五大帅哥

    (写这篇时只是一时的兴趣,连稿都没存,所以,,,我要弃文了。)贵族学校的五大天才、五大帅哥,一个霸道、一个冷酷、一个温暖、一个花心、一个张扬。而我韩晴风该怎么办··············
  • Greenmantlel

    Greenmantlel

    本书为公版书,为不受著作权法限制的作家、艺术家及其它人士发布的作品,供广大读者阅读交流。
  • 牵青崖

    牵青崖

    ……懒得写了……看看就知道写的什么了……结局……你猜啊……
  • 阿萨亚史诗卷

    阿萨亚史诗卷

    本书记载吾王海拉尼亚二世历时50余载,统一阿萨亚的史诗
  • 思想课堂-文学笔记

    思想课堂-文学笔记

    为你的头脑镀金,为你的思想导航。思想笔记系列丛书包括:道德笔记、典籍笔记、婚姻笔记、家庭笔记、教育笔记、经济笔记、科技笔记、历史笔记、伦理笔记、论爱笔记、美学笔记、民俗笔记、农业笔记、情感笔记、人生笔记、人物笔记、人性笔记、儒学笔记、商业笔记、社会笔记、文化笔记、文学笔记、心灵笔记、修身笔记、养生笔记、艺术笔记、语言笔记、战争笔记、哲学笔记、自然笔记。
  • 明若芷

    明若芷

    渝詞书院来了个女先生,所有人都等着看她的笑话,没想到最后都被打了脸。 红尘万事无常,明若芷一生有三愿:一愿明家重建,于世与傲。二愿潇洒自由,无愧于心。三愿兄长除魔除邪,重回天道。那个等了她十年的少年,如光如太阳,守护她的笑容。若世事不公,她愿逆天而行,不为虚此生。
  • 偏执大佬的心头宠

    偏执大佬的心头宠

    一场车祸,父母双亡,为保住父母遗留企业,她挂名寄居父亲好友家中。江家有两大极端。一个品学兼优,如明月清风,温暖融化着所有人。—他,是她最低落时的温暖。一个阴暗偏执,不学无术,打架斗殴,目中无人,性情暴躁冷郁。—她,是他一生的救赎,唯一的光明。“他已经有那么多人喜欢了,不缺你一个,而我,只想让你一个人喜欢。”“他能给你的我也能给,为什么你能给他的却不能分一丁点给我呢。”他用尽最大的力气让她爱上自己,也用尽了最大的能力去呵护她一生。
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!