3、CO的M中间件.pptVIP

  1. 1、本文档共91页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3、CO的M中间件

* 3.5 DCOM技术(续) 本地进程外组件 客户与本地进程外组件的通信示意图 客户 COM 运行库 安全 提供器 DCE RPC LPC 组件 COM 运行库 安全 提供器 DCE RPC LPC * 3.5 DCOM技术(续) DCOM组件 客户与DCOM组件的通信示意图 客户 COM 运行库 安全 提供器 DCE RPC 协议栈 组件 COM 运行库 安全 提供器 DCE RPC 协议栈 DCOM网络协议 * 3.5 DCOM技术(续) 相关内容 ⒈DCOM对象的定位 远程机器名+CLSID 列集 散集 ⒉DCOM网络协议 对象RPC(ORPC),基于DCE RPC协议。 ORPC建立了一套面向对象的远程调用规范。 ORPC仍使用标准的RPC数据包,附加上专用于DCOM的一些信息——接口指针标识符、版本信息和扩展信息。 ORPC协议已经被作为Internet草案递交到IETF(Internet工程部) 网络数据表示法NDR * 3.6 COM+技术(续) MTS介绍 MTS(Microsoft Transaction Server),COM组件的一致管理系统,为COM技术的企业应用提供基本的组件管理与配置环境。 在MTS应用中,所有的组件都运行在MTS运行环境中,组件只需实现基本的应用逻辑规则,由运行环境负责所有系统级应用处理。 COM+是COM、DCOM和MTS技术的集成与发展,是真正适合于企业应用的组件技术。 * 接口内存模型 COM对象有自己的属性数据,反映了对象的状态。 3.3 COM技术中的接口(续) 客户使用的 接口指针 pIDictionary CDictionary 类中虚函数 的具体实现 Initialize LoadLibrary InsertWord …… vtable pVtable m_pData m_DictFilename 接口IDictionary与字典对象属性之间的结构关系 * 3.3 COM技术中的接口(续) 接口特点 二进制特性 接口不变性 继承性 类继承——说明继承、实现继承、多重继承 接口继承——说明继承、单继承 多态性 COM组件有三个最基本的接口类,分别是IUnknown(任何组件、任何接口都必须从IUnknown继承)、IClassFactory(作用是创建COM组件)、IDispatch(调度接口)。 * 3.3 COM技术中的接口(续) IUnknown接口 COM定义的每一个接口都必须从IUnknown接口继承而来。 IUnknown接口具有生存期控制和接口查询功能。 QueryInterface、AddRef和Release,共同完成接口的自管理任务。 QueryInterface函数用于查询COM对象的其他接口指针,实现接口查询功能。 函数AddRef和Release用于对引用计数进行操作,从而控制对象的生存周期。 * 3.3 COM技术中的接口(续) 引用计数 COM采用“引用计数”技术来解决内存管理的问题,它可以有效地控制对象的生存周期。 每一个COM对象都记录了一个称为“引用计数”的数值,该数值的含义为有多少个有效指针在引用该COM对象。 当客户得到了一个指向该对象的接口指针时,引用计数值增1,用完后,引用计数减1。 IUnknown的接口成员函数AddRef和Release分别完成引用计数的增1和减1操作。 * 3.3 COM技术中的接口(续) 实现引用计数 按照COM规范,一个COM组件可以实现多个COM对象,并且每个COM对象又可以支持多个COM接口,这种层次结构为实现引用计数提供了多种选择方案。 ⑴COM组件一级实现引用计数。 设置一个针对整个组件全局的引用计数。 计数分辨率太粗。 ⑵COM对象一级实现引用计数。√ 利用成员变量,为每个COM对象设置一个引用计数。 组件程序应保持一份有效对象的纪录。 ⑶接口一级实现引用计数。 三级计数控制。 计数分辨率太细。 * 3.3 COM技术中的接口(续) 引用计数规则 ⑴函数的参数中使用接口变量。 ⑵局部接口指针变量。 ⑶全局接口指针变量 ⑷类成员变量为接口指针变量。 ⑸一般性原则: 在顺序执行过程中,如果要对一个接口指针变量赋值,则对赋值后的接口指针变量调用AddRef,并且,如果赋值前的接口指针变量还没有结束,则赋值前必须对它调用Release以便先结束它的使用。 如果要结束使用一个接口指针变量,以后不再用到它了,则调用Realease函数。 * 3.3 COM技术中的接口(续) 接口查询 按照COM规范,一个COM对象可以实现多个接口,客户程序可以在运行时刻对COM对象的接口进行询问。 当客户创建一个COM对象后,创建函数会返回一个接口指针,通过QueryInterface

文档评论(0)

liwenhua00 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档