DCOM の歴史
オートメーションは、1993 年前半に初めて導入されました。当時、オートメーションは同じコンピューター上で動作しているアプリケーション間でしか使用できませんでした。 しかし、その後、オートメーションではコンポーネント オブジェクト モデル (COM: Component Object Model) のようにほかの OLE と同じ基本コンセプトが共有されるようになったため、COM が更新されてリモート機能を備えるようになると、それに合わせてオートメーションも常に "リモート可能" にすることを意図するようになりました。 また、まったくローカルなオペレーションから分散型のオペレーションに移行しても、既存のコードをほとんど書き換えなくても済むように計画されました。
ところで、"リモート処理" とはどのような意味でしょう。 ローカルな COM では、インターフェイス コンシューマーを実行するには、それがインターフェイス プロバイダーと同じコンピューター上にあることが必要でした。 たとえば、Microsoft Visual Basic はデスクトップ コンピューター上の Microsoft Excel は制御できても、別のコンピューター上にある Excel の実行は指示できませんでした。 分散 COM が開発されると、インターフェイス コンシューマーがインターフェイス プロバイダーと同じコンピューター上で動作している必要はなくなりました。
COM がネットワーク対応になると、ローカル実行モデルに拘束されないインターフェイスを分散させられるようになりました。ただし、パラメーターとしてデバイス コンテキストへのハンドルを必要とするメソッドを含む描画インターフェイスのように、一部のインターフェイスは本質的にローカル コンピューターの機能に依存します。 インターフェイス コンシューマーが要求を出す特定のインターフェイスは、異なるコンピューターで実行されている (または実行されることになる) オブジェクトのインスタンスが提供するものであってもかまいません。 COM 内部の分散機構では、コンシューマーをプロバイダーに接続し、コンシューマー側のメソッド呼び出しがプロバイダー側に提示されます。呼び出されたメソッドは、プロバイダー側で実行されます。 戻り値は、どれもコンシューマーに返信されます。 あらゆる点で、分散動作はコンシューマーとプロバイダーの両方に透過的です。
現在では、さまざまな COM が存在しています。 分散 COM (DCOM: distributed COM) は、Version 4.0 以降の Windows NT で提供されており、Windows 2000 にも付属しています。 1996 年後半以後は、Windows 9x でも利用できるようになっています。 いずれの場合も、DCOM は、差し替え用と追加用の DLL、およびローカルとリモートの COM 機能を提供するユーティリティで構成されています。 DCOM は、現在では Win32 ベースのプラットフォームの本質的な部分となっており、他社のプラットフォームでも近い将来利用できるようになる予定です。