- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下载
第24章 Microsoft 的COM和DCOM
在讨论COM(Component Object Model ,构件对象模型)和DCOM(Distributed COM ,分布
构件对象模型 ) 这些术语时,笔者通常会从困惑的听众和读者那里收到两个问题:什么是
C O M ?C O M和D C O M 的区别是什么?笔者将会解释这两个问题,先从 C O M 的定义开始。
C O M 是一种定义对象服务器如何与对象客户进行交互的协议。在这里,对象服务器
(object server)是实现C O M类的模块,而对象客户 (object consumer)则是使用C O M对象的模块。
24.1 DCOM的结构
当对象服务器与对象客户处于同一进程时,对象中的方法调用是直接与方法的实现捆绑
在一起的 ( 见图2 4 - 1 ) 。与对象客户位于同一进程内的对 进程
象服务器通常被称为进程内 C O M 服务器 ( i n - p r o c e s s
COM server) 。 对象客户 对象服务器
当对象服务器与对象客户位于不同的进程中时,对
象方法的调用则与一个代理方法的实现捆绑在一起 ( 见
图 2 4 - 2 ) 。 对 代 理 的 调 用 是 由C O M 运 行 时 使 用
图24-1 进程内COM对象
RPC(Remote procedure calls ,远程过程调用)传递给另一
进程中的方法实现的。与对象客户位于不同进程的对象服务器通常被称为本地 C O M服务器
(local COM server) 。
计算机
进程 进程
对象客户 对象代理 RPC 对象客户 对象服务器
图24-2 本地COM对象
接下来,要谈到的是 C O M和D C O M 的区别,D C O M扩展了C O M协议,它使得对象服务器
可以位于一台与对象客户不同的计算机。
当对象服务器位于另一台计算机时, C O M运行时通过R P C 从一台计算机上的进程中的代
理向另一台计算机上的进程中的方法实现传递方法调用 (见图2 4 - 3 ) 。与对象客户位于不同机器
的对象服务器通常被称作远程C O M服务器(remote COM server) 。
计算机 计算机
进程 进程
对象客户 对象代理 RPC 网络 RPC 对象客户 对象服务器
图24-3 远程COM对象
470使用第三部分 数据转换和集成
下载
C O R B A
D C O M 并不是唯一的分布对象协议,分布对象协议像 Silicon Va l l e y 的程序员那么多,或
者还要多,其中最流行的就是 C O R B A 。C O R B A和D C O M 由于协议不相同,所以在实现上也
有区别。
C O R B A 已经出现了很多年,并且在几乎所有的平台上都进行了实现和测试。 D C O M也出
现了很多年,但到目前为止,只在 Wi n 3 2机器上得到了实现。在 Wi n 3 2上实现的D C O M提供了
许多很有用的服务,包括连接点、事件、自动化、
文档评论(0)