.NET Framework リモート処理の概要

このトピックの対象は、既存のアプリケーションとの下位互換性のために残されているレガシ テクノロジに特定されています。新規の開発には、このトピックを適用しないでください。分散アプリケーションは、現在は Windows Communication Foundation (WCF) を使用して開発する必要があります。

.NET リモート処理を使用すると、広範囲の分散アプリケーションを簡単に構築できます。その場合、アプリケーションのコンポーネントを、すべて 1 台のコンピューターに置くことも、遠隔地のコンピューターに分散させることもできます。同じコンピューター上、またはネットワークを経由してアクセスできる他の任意のコンピューター上にある他のプロセスのオブジェクトを使用するクライアント アプリケーションを構築できます。また、.NET リモート処理を使用すると、同じプロセスの他のアプリケーション ドメインと通信できます。(アプリケーション ドメインのプログラミングの詳細については、「Programming with Application Domains」を参照してください)。

.NET リモート処理によって、プロセス間通信の抽象的な手法が提供されるため、特定のクライアントまたはサーバー アプリケーション ドメインや特定の通信機構からリモート処理可能オブジェクトを分離できます。この結果、柔軟性が向上し、カスタマイズも簡単になります。クライアントまたはサーバーを再コンパイルせずに、通信プロトコルやシリアル化形式を別の種類に変更できます。また、リモート処理システムは、特定のアプリケーション モデルを前提としません。Web アプリケーション、コンソール アプリケーション、Windows サービスなど、ほぼすべての種類のプログラムから通信できます。任意の種類のアプリケーション ドメインを、リモート処理サーバーとして使用できます。どのようなアプリケーションでも、リモート処理オブジェクトをホストして、同一のコンピューターまたはネットワーク上の任意のクライアントにサービスを提供できます。

kwdt6w2k.note(ja-jp,VS.100).gif注 :
セキュリティ上の理由から、リモート処理のエンドポイントはセキュリティで保護されたチャネルを通じて公開することを強くお勧めします。セキュリティで保護されていないリモート処理のエンドポイントをインターネットに公開しないでください。

.NET リモート処理を使用して、2 つのコンポーネントがアプリケーション ドメインの境界を越えて直接通信するアプリケーションを構築するには、次の要素のみを作成する必要があります。

  • リモート処理可能オブジェクト

  • そのオブジェクトへの要求をリッスンするホスト アプリケーション ドメイン

  • そのオブジェクトへの要求を行うクライアント アプリケーション ドメイン

複雑なマルチクライアントまたはマルチサーバーのアプリケーションでも、.NET リモート処理は同じように考えることができます。ホスト アプリケーションとクライアント アプリケーションは、リモート処理インフラストラクチャで構成する必要があります。また、リモート処理インフラストラクチャに伴う有効期間とアクティベーションの問題について理解する必要があります。

このセクションの内容

  • チャネル
    システム定義のチャネルについて説明し、シナリオに最も適したチャネルを決めるために必要な情報を提供します。
  • リモート アプリケーションの構成
    .NET リモート処理インフラストラクチャの基本的な構成要件、その要件を満たすために使用される構成の種類、およびさまざまなサーバー アプリケーション ドメインやクライアント アプリケーション ドメインでの具体的な必要事項について説明します。
  • リモート処理でのセキュリティ
    リモート処理を使用するためのセキュリティ要件と、安全なリモート処理アプリケーションを構築するために役立つ基本的な手法について説明します。
  • 非同期リモート処理
    リモート処理のシナリオで非同期プログラミングを行う方法について説明します。
  • CallContexts と直接リモート処理
    CallContext を使用してリモート メソッド呼び出しによって追加データを渡す方法と、リモートで使用するために動的にオブジェクトを公開する方法について説明します。

リファレンス

  • リモート処理設定スキーマ
    構成ファイルを使用して .NET リモート処理を構成する場合に使用できる要素について、参照情報を提供します。
  • System.Runtime.Remoting
    .NET リモート処理の実行に使用できる型について、参照情報を提供します。
  • System.Runtime.Remoting.Activation
    リモート オブジェクトのサーバー アクティベーションおよびクライアント アクティベーションをサポートするクラスとオブジェクトが含まれています。
  • System.Runtime.Remoting.Channels
    クライアントがリモート オブジェクトのメソッドを呼び出すときに転送手段として使用される、チャネルとチャネル シンクをサポートおよび処理するクラスが含まれています。
  • System.Runtime.Remoting.Channels.Http
    HTTP プロトコルを使用してリモートの場所との間でメッセージやオブジェクトを転送するチャネルのクラスが含まれています。
  • System.Runtime.Remoting.Channels.Ipc
    Windows オペレーティング システムのプロセス間通信 (IPC: Interprocess Communication) システムを使用するリモート処理用通信チャネルを定義するクラスが含まれています。
  • System.Runtime.Remoting.Channels.Tcp
    TCP プロトコルを使用してリモートの場所との間でメッセージやオブジェクトを転送するチャネルを定義するクラスが含まれています。
  • System.Runtime.Remoting.Contexts
    すべてのリモート オブジェクトが常駐するコンテキストを定義するオブジェクトが含まれています。
  • System.Runtime.Remoting.Metadata
    オブジェクトやフィールドに対する SOAP の生成と処理をカスタマイズするために使用できるクラスおよび属性が含まれています。
  • System.Runtime.Remoting.MetadataServices
    リモート処理インフラストラクチャ用の XML スキーマとの間でメタデータを変換するために Soapsuds.exe コマンド ライン ツールやユーザー コードで使用されるクラスが含まれています。

関連項目

  • 高度なリモート処理
    .NET リモート処理アーキテクチャのカスタマイズに使用できる傍受と拡張の基本事項について説明します。
  • リモート処理の例
    各種のリモート処理インフラストラクチャ要素を使用するサンプル アプリケーション一式を紹介します。

ビルド日:2010-02-13