中间件技术

来源 :科协论坛·下半月 | 被引量 : 0次 | 上传用户:watersss1111
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:组件对象模型(componctObjoctModel,COM)是目前最为热门的面向对象的中间件技术。分析COM对象和接口的创建,实现COM的客户端和服务器,并且重点分析COM组件的整个运行过程。同时分析了COM组建的两种复用形式:组件的包容和聚合。
  关键词:中间件 面向对象 COM组件 组件包容 组件聚合
  中图分类号:TP3 文献标识码:A 文章编号:1007-3973(2011)004-061-02
  
  1 引言
  
  在对中间件技术的研究当中,COM是一种十分完善的面向对象的技术规范。COM是开发软件组件的一种方法。而COM组件通常是以Win32动态链接库(Dlls)或可执行文件(EXES)的形式发布的可执行代码组成的,他可以给应用程序,操作系统及其他文件提供跨平台的服务。COM的核心思想就是定义软件中可以重用的部分,每一部分都有其特定的界面和所能提供的服务从而达到二进制代码重用的目的。
  在COM技术的体现与结构中,组件和接口是其核心的概念。其中,组件是具有一定逻辑功能的可执行代码,而接口实现了对组件各种技术细节的封装与隔离,对外界提供了透明的功能支持。通常情况下一个两接口的COM对象如图1所示。
  
  2 COM对象和接口的创建
  
  每一个COM组件都有一个相同的接口IUnknown,它是其他接口的祖先,每一个接口都是直接或间接从它派生而来。COM接口就是一个包含多个函数声明的虚基类,它的实现是在组件对象的内部完成的。而不同接口是通过从祖先接口派生下来的统一函数Querylnerface()来进行准换的。接口只是为用户提供调用方式,而组件却是具体功能的提供者。
  为了让COM组件与客户更加地隔离开来,COM技术规范要求在客户与COM组件之间加上一个结构类似于组件的类厂,并利用类厂专门创建对应的组件。每一个组件都有一个对应的类厂,它们拥有同一个名字以供用户访问。这样,客户与COM组件的交互就必须通过其对应的类厂,从而提高了组件的封装性。而在以动态链接库的形式设计COM时会导出DllGetClassObjcot(),DllRegisterServer(),DllCanUnloadNow(),DllUnregisterServer()四个函数以供与用户进行交互。其体系结构如图2所示。
  GUID是全局唯一标识符,它是COM的特殊名字并具有全球唯一性,而COM正是通过这个特殊的名字来进行身份识别的。通常,COM对象和接口的创建并不是直接在客户端直接进行的,而是客户程序直接调用CoCreatelnstace()函数进而转调CoGetClassObject()函数,并通过该函数的参数传入要使用的组件的GUID。而CoGetClassObject()函数只是转调组件所对应的Dll导出函数DllGetClassObject()函数。通过DllGetClassObjectt()函数创建组件的类厂,而在组件类厂创建后会调用CreateInstace()函数从而创建真正的组件对象并返回给客户该组件的一个接口指针,从而完成组件的创建。其流程如图3所示。
  


  
  3 COM的整个运行过程
  
  在服务器端,COM组件会通过DllRegisterServer()函数进行注册,并注册到系统的注册表中。而客户首先要初始化COM库,然后调用COM库中已经实现了的CoCreatelnstaee(),而CoCreatelnstace()实际是调用CoGetClassObject()函数实现的。CoGetClassObject()将会在注册表中查找指定的组件。找到之后,它将装载实现此组件的DLL。装载成功之后,它将会调用DLL服务器中的DLLGe tClassObject(),从而创建相应的类厂,同时该函数还会将查询IClassFactory接口,并将其返回给CoCreatelnstace()函数。然后CoCreatelnstace()将使用此接口来调用IClassFactory::Createlnstance()函数从而创建相应的组件,并返回组件的某个接口。客户在得到组件接口后就可以通过接口调用组件中的某个方法从而提供服务。在使用完COM组件某个接口的服务之后,必须要将该接口的指针进行释放。最后在使用完COM组件之后还要关闭COM库。具体流程如图4所示。
  
  4 COM组件的复用
  
  4.1组件的包容
  包容是在接口级上完成的。外部组件包含内部组件接口的指针。此时外部组件只是内部组件的一个客户,它将使用内部组件的接口来实现它自己的接口,其具体结构如图5所示。
  


  组件包容的实现只需在外部组件保存指向内部组件的指针。当客户需要使用内部组件的某些功能时,外部组件可以通过指向内部组件的指针进行转调,从而完成甚至增加或修改该功能。
  
  4.2组件的聚合
  组件的聚合就是直接将内部组件的接口直接暴露给客户,而客户并不知道这是内部组件的接口,始终认为这是外部组件的接口。客户直接通过还接口使用内部组件对应的功能,其具体结构如图6所示。
  组件的聚合比较复杂,它需要对内部组件的结构进行改造,让内部组件有代理和非代理两个未知接口。通过判断该组件是否被聚合,从而选择不同的未知接口。
  
  5 结束语
  
  随着计算机软硬件和Intemet技术的不断发展,越来越多的应用需要在不同的平台和环境中运行与使用,而COM技术正是提供了跨平台服务的基础。而要想真正理解COM并且使用COM,则必须了解COM的这个开发过程。COM的技术正不断地发展,现在出现了DCOM,COM+等基于COM的新技术,这为计算机软件开发提供了可靠保证。因此,了解并学习COM是具有很现实的指导意义。
  
  参考文献:
  [1]潘爱民.COM原理与应用[M].清华大学出版社,1999.
  [2]张云勇,张智讲,刘锦德等.中间件技术原理与应用[M].清华大学出版社。2003.
  [3]杨秀章,译.Dale Rogerson.COM技术内幕[M].清华大学出版社,1997.
其他文献
作为一种新型绿色储能器件,锂离子电池在便携式电子设备和交通国防等领域具有广阔的应用前景。然而,以石墨为代表的锂离子电池负极材料已难以满足各设备对高性能负极材料的需求。负极材料的结构和性质是决定锂离子电池储锂性能的关键。本文以煤沥青为原料,主要研究多孔石墨化炭及其复合材料的制备,系统探究负极材料的结构和性质对储锂性能的影响。在课题组研究基础上,本研究对煤沥青高附加值利用和高储能负极材料的研发具有现实意义。主要研究结论如下:
  以资源丰富的煤沥青为原料,采用高温热解法制备煤沥青基微晶石墨化炭,研究不同
摘要:随着大型泵站改造的深入,越来越多的大型泵站陆续建立起信息化系统。各地在信息化改造过程中取得一定成效并积累了很多经验,但也反映出一些不足和缺陷,需在以后的改造中进一步进行完善。根据研究和实践经验,结合泵站改造,对泵站信息化改造进行描述,提出了实用、可靠、经济的监控选型原则及改造建议。  关键词:大型泵站 信息化系统 工程改造  中图分类号:TP39 文献标识码:A 文章编号:1007-3973
期刊
摘要:作为一名教师,有幸被学院派到中铁一局西商高速段下现场锻炼,锻炼期间,在企业工程机械管理部门工作,因此对工程机械的安全管理有些感触。就针对安全管理的现状和工程单位应该采取的应对措施提出一些意见,望能给工程单位的机械管理以及教学带来一些有用的建议。  关键词:下企业锻炼 工程机械 安全管理 施工企业  中图分类号:TU71 文献标识码:A 文章编号:1007-3973(2011)009-146-
期刊
摘要:教育培训评估是教育培训工作的基本组成部分,加强教育培训评估工作的研究及实践,是建立健全教育培训体系、提升培训能力的必然要求。基于柯克帕特里克模型,结合部门行业教育培训特点,尝试构建了基于柯氏评估模型的部门行业教育培训评估指标体系。  关键词:部门行业培训 培训评估 指标体系  中图分类号:G40 文献标识码:A 文章编号:1007-3973(2011)009-148-02    教育培训评估
期刊
摘要:对我系教授专、本科教师的教学质璧评估结果运用多元统计分析方法进行分析,其结果可供有关领导及部门从总体上了解教师的教学情况和水平,并对加强师资建设具有一定的指导作用。
期刊
城市地铁隧道盾构施工过程中对周围土体的扰动造成地层位移变形,作用于建筑物基础会产生附加内力和变形,进而导致建筑物不均匀沉降、倾斜或结构破坏。因此,研究盾构施工对周围土体及建筑物的扰动机理,提出适用的控制措施有着重要的工程价值。本文主要通过理论分析法研究了地铁隧道近接建筑物盾构施工扰动效应,并以太原地铁二号线双-大区间盾构隧道近距离侧穿多栋建筑物为工程背景结合实际工况运用数值模拟的方法,研究了盾构侧穿不同基础形式建筑物时周围土体及建筑物的扰动规律,并对控制措施进行了比选和优化设计。
  结合本区间实际
摘要:以2009年江汉物探在潜江凹陷张家湖地区进行的三维地震采集项目为依托,
期刊
摘要:能否实现有效的项目成本控制,直接关系到企业能否在激烈的市场竞争中赢得生存和发展。在厘清项目成本控制的含义及运作手段的基础上,分析了影响电力施工项目成本的因素,进而基于全过程控制的理念,系统运用前馈控制、过程控制和反馈控制手段提出了若干电力项目成本控制的具体办法。  关键词:电力施工项目 成本控制 全过程控制  中图分类号:TM1 文献标识码:A 文章编号:1007-3973(2011)004
期刊
摘要:随着国家对高职教育的重视逐步加深,高职院校的人才培养模式改革也被正式提出。高职教育的实践性使得教学模式的改革也必将朝实践、实用、操作性强的方向发展。立足于高职专业英语教学,尝试采用新的教学模武进行教学改革。电影是一种广受欢迎的多媒体,希望借用电影这一生动的形式可以有效的提高教学效率。  关键词:电影教学 教学改革 表演教学  中图分类号:G712 文献标识码:A 文章编号:1007-3973
期刊
摘要:根据网络营销业务需求,结合数据挖掘方法尤其是基于web的模式挖掘方法的可靠性与易用性,对营销方案作出处理,在此基础上形成一套营销流程,建立营销模型。研究结果表明,数据挖掘方法的使用在一定程度上帮助营销者制定更智能的商业策略,改进了客户关系管理。  关键词:数据挖掘 模式挖掘 网络营销 统计分析  中图分类号:TP311 文献标识码:A 文章编号:1007-3973(2011)004-065-
期刊