COM/DCOM技术及应用 COM/DCOM技术及应用

COM/DCOM技术及应用

  • 期刊名字:玉溪师范学院学报
  • 文件大小:350kb
  • 论文作者:兰景英,刘玓
  • 作者单位:电子科技大学
  • 更新时间:2020-06-12
  • 下载次数:
论文简介

玉溪师范学院学报第20卷2004年第8期Jourmal of Yuxi Teachers College Vol 20 No 8 Aug 2004COM/DCOM技术及应用兰景英刘玓(电子科技大学计算机科学与工程学院,四川成都610054)[关键词]COM;DCOM;接口;组件;对象;分布式[摘要]介绍了 COM/DCOM的技术原理,分析其标准、结构、特点及其应用,提出了基于COM的聊天室设计模型[中图分类号]TP393[文献标识码]A[文章编号]1009-9506(2004)08-0051-03COM/DCOM technology and applicationLAN Jin-gying LIU DiCollege of Computer Science and Engineering, UEST of China Chengdu 610054)ey Words: COM; DCOM; Interface; Module; Object; DistributedAbstract: In order to meet that need of the large - scale and complicated development of distributedapplication as the distributed technology standard of component model COM/DCOM technologies are usedwidely, In this paper, we introduce the theory of COM/DCOM, and analyze the criterion, structure.haracteristic and give a chat model based on COMcoM( Component Object Model)是 Microsoft提出的一种基于二进制标准,与编程语言无关的软件构架,它使各软件组件可以用一种统一的方式进行交互.COM技术扩展了对象的功能,描述了程序员如何生成可重用对象,允许不同程序设计语言实现程序之间交互操作.COM组件程序分为两种:一种是进程内组件,它一般是一个动态连接库DLL;另一种是进程外组件,它一般是一个可执行EXE在分布式环境下实现COM组件的分布式调用也是COM技术的关键, Microsoft提出了DCOM技术实现COM组件的远程调用1COM组件技术1.1概述COM组件是可独立发布的二进制组件,在 Windows平台上为DLL或者 EXE. COM对象是客户程序进行交互的实体,通过COM接口提供服务,符合面向对象的基本概念COM接口是一组逻辑相关的函数的集合其函数也被称为接口成员函数COM接口是客户与对象之间的协议,对象实现COM接口,客户使用COM接口.在COM中,接口就是一切个COM组件或是DLL文件,或是一个EXE文件,一个组件程序可以包含多个COM对象,每个COM对象可以实现多个接口.当另外的组件或组件的客户程序调用组件的功能时,它首先创建一个COM对象或者通过其他途径获得COM对象,然后通过该对象所实现的COM接口调用它所提供的服务.1.2COM接口COM对象通过接口来显示功能,接口是COM对象与外部世界的一个绑定约定对于COM而言,接口是一个包含一个函数指针数组的内存结构,每个数组元素包含的是一个由COM组件所实现的函数的地址COM对象的接口均由一个共同的祖先 IUnknown,即所有的接口均从 IUnknown派生. IUnknown包含三个函数,分别是 QueryInterface、 AddRef、 Release. Query Interfa这是一个非常重要的特性,因为我们能通过COM对象的任中国煤化工派生的其他接口ce查询到它的其他任何接口.接口的身份用接口I来标识,这是一个全世界惟CNMHG对象ID,即GUD氍收稿日期]2004-06-19[作者简介]兰景英(1975-),女,四川隆昌人,碩士研究生,主要研究方向:COM技术52玉溪师范学院学报Add Ref用于增加引用计数, Release用于减少引用计数,接口指针的生命期管理总是通过建立在每个COM接口上的 AddRef和 Release方法来实现由于接口的方法是一组函数,因此为了确保调用者通过接口能正确调用它所需要的方法,必须确保接口的不变.COM对象允许实现多个接口,增加的功能由新的接口实现只要我们遵守接口不变原则(即方法名称参数不变),就可以自由修改方法内部的实现COM对象的接口是对象与其客户联系的纽带由于COM是与语言无关的,表示一个接口的内存块必须具有一定的标准结构COM定义了接口的二进制格式,有了这种标准格式的定义,客户可以不管COM对象的编程语言就能正确地调用它的方法客户的接口指针指向对象中的内部指针,该内部指针指向包含接口中各方法指针的 Vtable表通常我们把接口函数表称为虚函数表( Virtual function table- vtable),指向 Vtable的指针为 pOtable,则COM接口的结构如图1所示:vtablepotable接口指针指针指针函数1指针函数2对象o。oe1COM接口的结构1.3COM对象和COM组件COM对象是COM组件提供给客户以对象形式封装起来的实体,是客户程序与组件程序通信的主体,要求对其进行标识在COM规范中,每个对象有128位的全局惟一标识符GUID来惟一标识称为 CLSID客户程序通过 CLSID进行对象的创建和初始化工作COM组件实际上是一个C++类,而接口都是纯虚类COM组件有三个最基本的接口类,分别是IUnknown、 IClassFactory、 IDispatch. COM规范规定任何组件、任何接口都必须从 IUnknown继承. ClassFactory的作用是创建COM组件 IDispatch是调度接口,为客户和组件提供了另外一种通信方式,使COM组件可以通过一个标准的接口提供它所支持的服务CoM应用基于客户/服务器模型,COM组件向客户提供服务.COM组件按照代码模块的结构和代码模块与客户进程间的关系,可分为三种类型:进程内组件:进程类组件是以DLL形式被装入到客户的进程空间中的其优点在于应用者访问它时,没有必要进行环境切换,以获得最快的速度,但它不能作为一个独立存在的应用程序运行.(2)本地组件:本地组件是一个可执行的EXE应用程序,在客户机上作为一个独立的进程来运行(3远程组件远程组件是运行在一个通过网络连接到客户端的独立的机器上,通过DCOM运行在另一个进程中1.4COM的特性面向对象系统的三个最基本的特性分别是:封装性、多态性和可重用性COM对象的封装特性是很彻底的,所有的对象状态信息必须通过接口才能访问;COM的多态性完全通过接口体现出来,而且分别在三个层次上体现了多态性:接口成员函数、单个接口、一组接口;COM的重用性是建立于二进制代码一级的.COM除了具有基本的面向对象特性,如封装性、多态性等之外,还具有如下关键特性:(1)语言无关性:COM标准不是面向源代码级的标准,而是采用一种基于二进制代码级的标准.COM规范的定义不依赖于特定的语言,编写组件所使用的语言与编写客户使用的语言可以不同(2)进程透明性:无论进程内组件还是进程外组件,其创建过程和接口调用对用户是透明的(3)可重用性:COM的重用包括包容和聚合两种方式(4)安全特性:COM包括两种类型的安全性,一种是激活专性·早一种悬调用安全性(5)多线程性:按照COM对象的执行环境,分为套间线中国煤化工1.5分布式COM(DCOM)CNMHGDCOM是COM的扩展,它可以支持在不同计算机上组件对象与客户程序之间或者组件对象之间的相互通信,这些计算机可以在局域网内,也可以在广域网上,甚至通过 Internet进行连接DCOM为在网络不同节点的组件提供了互操作基础,它可以作为分布式应用系统的基本框架,客户程序与DCOM组件之间形成了兰景英刘玓: COM/DCOM技术及应用客户/服务器关系,再进一步还可以构成多层软件模型.典型的分布式应用系统是,在各个服务器上运行一些DCOM组件对象,客户程序调用这些组件对象,由它们完成实际的功能操作.这种结构不仅可减轻客户程序的负担,还可以提高系统的整体性能DcOM组件同时也是一个COM组件,具有COM组件的基本特性.从分布式应用系统的角度看,DCOM还具有如下特性:(1)位置透明性:无论组件和客户进程是否在同一台主机,客户连接对象和调用对象的形式都完全一样.(2)可伸缩性:DCOM的结构特点提供了应用系统的灵活配置方案,使应用系统能够很好地适应需求规模的变化(3)协议无关性:DCOM并不要求专门的网络协议,用户可以在不改变现有网络结构的情况下使用分布式应用软件.(4)平台独立性:DCOM把平台相关性的二进制标准和平台无关的标准隔离开来,并且它是建立在 DCE RPC的基础上,所以DCOM能很好地适应不同的系统平台.(5)可配置性:使用DCOM模型建立的分布式软件系统可以很方便地对系统进行重新配置,包括服务器的变化、客户程序的自动安装等特性2基于COM组件的聊天室设计实现交流客户端聊天室主要是为终端用户提供一个实时信息交流的工具.作为一个独立功能模块可以挂接在不同的软件平台上.为了满足模块功能的可重用性和可扩展性,各部分交流服务器客户端组件均以COM组件的方式实现聊天室是一个分布式应用其各部分结构如图2:图2聊天室各部分结构图交流客户端包括与用户交互的所有功能,提供可视化的用户界面以便用户观察信息及处理数据客户端组件是交流客户端程序访问交流服务器的接口,它向交流客户端程序屏蔽了下层的聊天室应用协议以及更底层的通讯协议.通过客户端组件提供的接口方法,交流客户端程序可以通过方法调用的方式访问到远程交流服务器提供的各种交流服务.交流服务器涉及所有典型的数据处理活动,包括数据存取修改以及其他与数据库相关的任务.交流服务器管理和满足由客户端组件或其他数据服务组件提出的服务请求在交流平台中,会有服务器主动向各个交流客户端“推送”消息的情况,并且服务器与交流客户端之间需要建立长连接,因此适合采用异步通信方式与服务器进行数据交换.客户端组件内部使用IOCP方式接收来自交流平台服务器的数据,为此需在组件中创建单独的数据接收线程专门接收服务器信息,并建立专门的缓冲区队列存放接收到的报文数据到达客户端组件后,客户端组件对服务器应答报文进行初步解析,获取报文头部信息,再通过事件或者消息方式通知交流客户端数据到达3结束语自从COM在OLE2中被首次作为底层技术应用以来,COM一直在不断发展作为基于组件对象模型的分布式技术规范,COM/DCOM已被广泛采用.COM已经渗透到Internet各种软件中去,包括一些基本的协议软件随着 nternet和 Internet企业应用的飞速发展,COM将以其巨大的潜力渗透到软件科学的各个领域中去参考文献[1]潘爱民.COM原理与应用[M].北京:清华大学出版社,1999[2]潘爱民COM本质论[M].北京:中国电力出版社,1997[3]DaleRogerson.COM技术内幕[M].杨秀章译北京清华大学出版社,199.[4] Thuan L.Thai.DCOM入门[M].陈逸译.北京:中国电力出中国煤化工CNMHG

论文截图
版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。