COM 和 DCOM 的区别
什么是 COM?
微软的组件程序架构 COM(组件对象模型)主要为 Windows 设计。它是 OLE 和 ActiveX 构建的基础,允许代码重用而无需重新编译。COM 中的组件是平台特定的二进制文件,符合规范的应用程序和其他组件可以使用它。
使用组件服务的程序无需访问组件的底层数据结构,而是包含指向其标准化接口的指针。因此,无论组件如何工作或使用何种语言编写,它们都可以相互通信。
COM 程序员使用支持 COM 的组件来创建应用程序。类 ID(CLSID)是全局唯一标识符,用于标识不同的组件类型(GUID)。每个 COM 组件都有一个或多个接口来公开其功能。接口 ID (IID),也称为 GUID,用于区分组件支持的多个接口。
什么是 DCOM?
DCOM 是一种编程技术,允许计算机像在本地运行程序一样在远程计算机上运行程序。分布式组件对象模型 (DCOM) 是"Distributed Component Object Model"(分布式组件对象模型)的缩写。它是一个软件组件,允许 COM 对象通过网络进行通信。
DCOM 是 COM 的扩展,它解决了 COM 模型的一些问题,使其在网络上更具优势 −
编组 − 编组解决了将数据从一个 COM 对象实例传递到不同计算机上的另一个 COM 对象实例的问题;用编程语言来说,这被称为"传递参数"。
分布式垃圾收集 − 分布式垃圾收集旨在扩展 DCOM 以处理大量互联网流量,它还包含一种删除和回收已完成或废弃的 DCOM 对象的机制,防止 Web 服务器内存耗尽。然后,它会与事务链中的其他服务器通信,通知它们该事务的对象可供删除。
使用 DCE/RPC 作为底层 RPC 机制 − Microsoft 将 DCE/RPC 构建为 DCOM 的底层技术 - DCOM 中的 D 就来自 -为了实现前面提到的目标,需要尝试扩展以支持大量的网络流量。
下表重点介绍了 COM 和 DCOM 的主要区别 −
| COM | DCOM |
|---|---|
| 它代表组件对象模型。 | 它代表分布式组件对象模型。 |
| COM 是一组在客户端环境中执行的组件工具。 | DCOM 在给定服务器上运行。 |
| COM 对象需要在要使用的计算机上安装。 | 它需要安装在同一网络上的某个位置。 |
| COM 是一种接口标准。 | DCOM 是一种专为分布式应用程序设计的模型。 |
| 它允许对象的可重用性。 | 它不允许可重用性。 |

