📜  分布式组件对象模型(DCOM)

📅  最后修改于: 2021-08-25 10:58:28             🧑  作者: Mango

在过去的二十年中,在面向对象和分布式的面向组件的范例中进行了大量修改。为了满足这一需求,Microsoft开发了分布式组件对象模型。可以将DCOM定义为包含长导线的COM,这是对组件对象模型(COM)的扩展。 DCOM-分布式组件对象模型–通过在称为the的协议上运行来帮助远程对象。

对象远程过程调用(ORPC)。在联网环境中,每天有1000万人使用Windows DCOM,DCOM的广泛使用主要目的是支持可动态激活并可以彼此交互的组件的开发。 DCOM对象模型基于接口的实现。

(DCOM)对象和组件范式都包含许多问题。

1. Interoperability
2. Versioning
3. Language independence
4. Size and complexity of system 

动态数据交换:
动态数据交换或DDE,以前是为Microsoft Windows设计的,使应用程序可以交换任何特定类型的信息。由于DDE协议实际上有点复杂,并且以前通过使用许多软件程序供应商来解释这种复杂性,因此创建了动态数据交换管理库(DDEML)。该库简化了与DDE协议的接口,并为所有开发人员提供了频繁的接口。

DCOM体系结构:
DCOM结构旨在提高软件的互操作性。

  • 该体系结构支持一种“软件总线”,在该总线上可以使用可重用的软件程序组件,并将它们无缝地内置于其中。
  • 为了提供对该可重用软件组件的支持,完整的对象模型完全基于基于对象的编程模型。
  • 由于对象模型无法提供继承的事实,因此曾经选择该对象模型。
  • 这意味着架构成功地避免了存在于不同模型中的脆弱基类综合症。
  • 当一个类别继承任何其他类别的成员和行为时,就会出现脆弱的基类综合症。
  • 提供行为和成员功能的类被识别为基类,而其他类被识别为派生类。
  • 如果修改了基类的成员和功能,则派生类的行为和成员功能也会发生另外的变化。
  • 像这样的更改导致必须更改基类,这又需要编译所有相关类。
  • 图1.0中所示的DCOM体系结构具有特殊的基础结构,因为它有助于连续存储。

DCOM的工作:
对于DCOM的工作,COM对象希望在两个计算机系统上都得到有效配置,并且您几乎不必多次卸载和重新安装对象才能使它们在特定任务上有效地工作。 Windows注册表由DCOM配置信息组成,其中包含三个标识符,即CLSID,PROGID和APPID。

  1. CLSID –
    类标识符或CLSID是用于为实体创建唯一身份的全局唯一标识符或GUID。 Windows为执行特定任务的程序中的每个安装程序类存储此CLSID。当您要运行一个类时,您需要正确的CLSID,因此Windows知道可以找到程序的位置。
  2. PROGID –
    程序标识符或PROGID是非强制性的,或者您可以说程序员可以使用可选标识符来替代任何复杂而严格的CLSID。 PROGID通常不太容易阅读,并且易于理解。对于具有相同名称的PROGID数量没有限制,这有时会引起问题。
  3. APPID –
    应用程序标识符或APPID是每种可用应用程序的唯一标识符,也称为应用程序ID,有助于保护和认证您的应用程序。它标识属于相同可执行文件和权限的所有类,以获取进入该类的权限。如果APPID不正确,DCOM将无法正常工作,例如,要使DCOM正常运行,您需要具有正确的APPID。根据我的经验,您可能会遇到权限错误,试图创建远程对象。