COM和DCOM的区别

什么是COM?

Microsoft 的组件程序架构 COM(组件对象模型)主要是为 Windows 设计的。它是构建 OLE 和 ActiveX 的基础,它允许代码重用而无需重新编译。COM 中的组件是特定于平台的二进制文件,符合标准的应用程序和其他组件可以使用。

使用组件服务的程序包含指向其标准化接口的指针,而不是访问组件的底层数据结构。因此,无论组件如何工作或使用何种语言编写,组件都可以相互通信。

COM 程序员使用 COM 感知组件来创建他们的应用程序。类 ID (CLSID) 是全局唯一标识符,用于标识不同的组件种类 (GUID)。每个 COM 组件都有一个或多个公开其功能的接口。接口 ID (IID),也是 GUID,用于区分组件支持的许多接口。

什么是 DCOM?

DCOM 是一种编程技术,它允许计算机在远程计算机上运行程序,就像它们在本地运行一样。分布式组件对象模型 (DCOM) 是分布式组件对象模型的首字母缩写词。它是一个软件组件,使 COM 对象能够通过网络进行通信。

DCOM 是 COM 的扩展,它解决了 COM 模型的一些问题,使其在网络上更有利 -

  • 编组- 编组解决了将数据从一个 COM 对象实例传送到另一台机器上的另一个的问题;用编程的话来说,这被称为“传递参数”。

  • 分布式垃圾收集- 旨在扩展 DCOM 以处理大量互联网流量,分布式垃圾收集还包括一种用于删除和回收已完成或废弃的 DCOM 对象的机制,防止 Web 服务器内存被炸毁。然后它与事务链中的其他服务器通信,通知它们事务的对象可以删除。

  • DCE/RPC 用作底层 RPC 机制——微软构建 DCE/RPC 作为 DCOM 的底层技术——DCOM 中的 D 来自于此——以实现前面提到的目标,尝试扩展以支持大量的 Web 流量。

下表突出显示了区分 COM 和 DCOM 的要点 -

通讯数据通信
It stands for Component Object Model.它代表分布式组件对象模型。
COM is a set of components tools which are executed on client-side environment.DCOM 在给定的服务器上运行。
COM objects require installation on machine where it is to be used.它需要安装在同一网络上的某个地方。
COM is an interface standard.DCOM 是为分布式应用程序设计的模型。
It allows reusability of objects.它不允许可重用性。