为什么COM DLL被称为"服务器"?

Gar*_*nes 2 com dll terminology

为什么COM DLL被称为"服务器"?

我意识到COM客户端将通过创建对象和调用函数等来利用COM DLL.

但"服务器"是指在操作系统中运行的实际进程.为什么术语"服务器"应用于COM DLL?

小智 6

这就是定义COM模型和术语的方式.有客户端和服务器.此术语不受托管特定COM服务器的方式或特定COM客户端如何连接到所述服务器的影响 - 只会令人困惑!:)

(DLL本身不是COM服务器:而是,COM DLL 包含 COM服务器.)

在一个理想世界有任何理由需要处理外的一个COM对象(其之间进行区分托管像在一个单独的处理的服务器的"古典"的定义)和一个进程COM对象.但是,仅仅因为它在进程中并不意味着它是直接访问,COM将跨越线程边界进行编组!(在这种情况下,"经典服务器"的物理表现仍然适用,只是在子流程级别.)

我认为这是一个很好的简短介绍.我认为将COMCORBA进行比较比仅使用库或类更好.也就是说,COM也定义了通信规则.这在大多数库中都不存在 - 例如JAR文件中的类或非COM DLL - 实际上只包含"要执行的代码".

快乐的编码.


以下是我认为相关的COM定义:

组件对象模型+(COM +)是Microsoft定义的二进制互操作性标准,它指定了分布式对象通信的模型.COM +通过将对象分成客户端和服务器来定义通信.客户端被定义为想要访问特定服务的对象,而服务器是提供服务的对象.客户端和服务器可以独立于定义它们的编程语言彼此通信,并且独立于它们之间的操作系统.