サーバーとクライアント

COM の重要な側面は、クライアントとサーバーの対話方法です。 COM クライアントは、COM サーバーへのポインターを取得し、そのインターフェイスのメソッドを呼び出すことによって、そのサービスを使用する任意のコードまたはオブジェクトです。 COM サーバーは、クライアントにサービスを提供する任意のオブジェクトです。これらのサービスは、サーバー オブジェクト上のいずれかのインターフェイスへのポインターを取得できる任意のクライアントによって呼び出すことができる COM インターフェイス実装の形式です。

インプロセスサーバーとアウトプロセスサーバーの 2 種類のメインがあります。 インプロセス サーバーは動的リンク ライブラリ (DLL) に実装され、アウトプロセス サーバーは実行可能ファイル (EXE) に実装されます。 アウトプロセス サーバーは、ローカル コンピューターまたはリモート コンピューターに存在できます。 さらに、COM には、インプロセス サーバー (DLL) をサロゲート EXE プロセスで実行して、リモート コンピューターでプロセスを実行できるという利点を得ることができるメカニズムが用意されています。 詳細については、DLL に関するページを参照してください。

COM プログラミング モデルとコンストラクトが拡張され、特定のコンピューター内だけでなく、COM クライアントとサーバーがネットワーク全体で連携できるようになりました。 これにより、既存のアプリケーションは適切な管理を使用して新しいアプリケーションとやり取りし、ネットワーク機能を利用するために新しいアプリケーションを作成できます。

COM クライアント アプリケーションは、サーバー オブジェクトがインプロセス オブジェクト (DLL 内) としてパッケージ化されているか、ローカル オブジェクトまたはリモート オブジェクト (EXEs) としてパッケージ化されているかに関係なく、サーバー オブジェクトのパッケージ化方法を認識する必要はありません。 分散 COM を使用すると、オブジェクトをサービス アプリケーションとしてパッケージ化し、WINDOWS の豊富な管理およびシステム統合機能と COM を同期できます。

Note

このドキュメントでは、DCOM を優先して COM という頭字語を使用します。 これは、DCOM が独立していないためです。それは長いワイヤーを持つ単なるCOMです。 記述されている内容が特にリモート操作である場合は、分散 COM という用語が使用されます。

 

COM は、ネットワーク全体に拡張される場所の透過性のサポートを追加できるように設計されています。 これにより、1 台のコンピューター用に作成されたアプリケーションをネットワーク経由で実行でき、これらの機能を拡張し、ネットワークで必要なセキュリティを強化する機能が提供されます。 詳細については、「.NET でのセキュリティ」を参照してください。

COM では、さまざまなアプリケーションでクラス コードを使用できるメカニズムを指定します。

詳細については、次のトピックを参照してください。

完全な同期

COM のセキュリティ