.NET Framework リモート処理の概要
.NET リモート処理を使用すると、広範囲の分散アプリケーションを簡単に構築できます。アプリケーションのコンポーネントは、すべてを 1 台のコンピュータに置くことも、遠く離れた場所のコンピュータに分散することもできます。同じコンピュータ上、またはネットワークを経由してアクセスできる他の任意のコンピュータ上の他のプロセスのオブジェクトを使用するクライアント アプリケーションを構築できます。また、.NET リモート処理を使用すると、同じプロセスの他のアプリケーション ドメインと通信できます。アプリケーション ドメインのプログラミングの詳細ついては、「アプリケーション ドメインを使用したプログラミング」を参照してください。
.NET リモート処理によって、プロセス間通信の抽象的な手法が提供されるため、特定のクライアントまたはサーバー アプリケーション ドメインや特定の通信機構からリモート処理可能オブジェクトを分離できます。この結果、柔軟性が向上し、カスタマイズも簡単になります。クライアントまたはサーバーを再コンパイルせずに、通信プロトコルやシリアル化形式を別のものに変更できます。また、リモート処理システムは、特定のアプリケーション モデルを前提としません。Web アプリケーション、コンソール アプリケーション、Windows サービスなど、ほぼすべての種類のプログラムから通信できます。任意の種類のアプリケーション ドメインを、リモート処理サーバーとして使用できます。どのようなアプリケーションでも、リモート処理オブジェクトをホストして、同一のコンピュータまたはネットワーク上の任意のクライアントにサービスを提供できます。
メモ : |
---|
セキュリティ上の理由から、リモート処理のエンドポイントはセキュリティで保護されたチャネルを通じて公開することを強くお勧めします。セキュリティで保護されていないリモート処理のエンドポイントをインターネットに公開しないでください。 |
.NET リモート処理を使用して、2 つのコンポーネントがアプリケーション ドメインの境界を越えて直接通信するアプリケーションを構築するには、次のもののみを作成する必要があります。
リモート処理可能オブジェクト
そのオブジェクトへの要求をリッスンするホスト アプリケーション ドメイン
そのオブジェクトへの要求を行うクライアント アプリケーション ドメイン
複雑なマルチクライアントまたはマルチサーバーのアプリケーションでも、.NET リモート処理は同じように考えられます。ホスト アプリケーションとクライアント アプリケーションはリモート処理インフラストラクチャによって構成する必要があります。また、開発者はリモート処理インフラストラクチャによって導入される有効期間とアクティベーションの問題について理解する必要があります。
このセクションの内容
- 基本的な .NET Framework リモート処理アプリケーションの構築
リモート処理が可能な型、リスナ アプリケーションと構成ファイル、およびクライアント アプリケーションと構成ファイルを構築することによって、基本的な .NET リモート処理のシナリオを紹介します。
- .NET Framework リモート処理のアーキテクチャ
.NET リモート処理システムのアーキテクチャについて説明します。
- オブジェクトをリモート処理可能にする
リモート処理における境界と、境界を越えてアクティブにできる型の実装方法について説明します。
- オブジェクトのアクティベーションと有効期間
リモート アクティベーションのさまざまな種類とリモート オブジェクトの有効期間の管理方法について説明します。
- チャネル
システム定義のチャネルについて説明し、シナリオに最も適したチャネルを決めるために必要な情報を提供します。
- リモート アプリケーションの構成
.NET リモート処理インフラストラクチャの基本的な構成要件、これらの要件を満たすために使用される構成の種類、およびさまざまなサーバー アプリケーション ドメインやクライアント アプリケーション ドメインでの具体的な必要事項について説明します。
- リモート処理でのバージョン情報
リモートのシナリオでバージョン管理がどのように機能するかを説明します。
- リモート処理でのセキュリティ
リモート処理を使用するためのセキュリティ要件と、安全なリモート処理アプリケーションを構築するために役立つ基本的な手法について説明します。
- 非同期リモート処理
リモート処理のシナリオで非同期プログラミングを行う方法について説明します。
- 方法 : リモート オブジェクトのメソッドを非同期で呼び出す
リモート オブジェクトのメソッドを非同期で呼び出す方法を示します。
- リモート オブジェクトのメソッドを非同期で呼び出す場合の問題
リモート オブジェクトのメソッドを非同期で呼び出す場合に発生する可能性がある問題について説明します。
- CallContext と直接リモート処理
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) システムを使用するリモート処理に対して通信チャネルを定義するクラスが含まれています。
- System.Runtime.Remoting.Channels.Tcp
TCP プロトコルを使用してリモートの場所との間でメッセージやオブジェクトを転送するチャネルを定義するクラスが含まれています。
- System.Runtime.Remoting.Contexts
すべてのリモート オブジェクトが常駐するコンテキストを定義するオブジェクトが含まれています。
- System.Runtime.Remoting.Lifetime
リモート オブジェクトの有効期間を管理するクラスが含まれています。
- System.Runtime.Remoting.Messaging
メッセージの作成と転送に使用されるクラスが含まれています。
- System.Runtime.Remoting.Metadata
オブジェクトやフィールドに対する SOAP の生成と処理をカスタマイズするために使用できるクラスおよび属性が含まれています。
- System.Runtime.Remoting.Metadata.W3cXsd2001
2001 年の World Wide Web Consortium (W3C) で定義されている XML スキーマ定義 (XSD : XML Schema Definition) が含まれています。
- System.Runtime.Remoting.MetadataServices
メタデータとリモート処理インフラストラクチャ用の XML スキーマを相互に変換するために Soapsuds ツール (Soapsuds.exe) コマンド ライン ツールやユーザー コードで使用されるクラスが含まれています。
- System.Runtime.Remoting.Proxies
プロキシの機能を制御および提供するクラスが含まれています。
- System.Runtime.Remoting.Services
.NET Framework に機能を提供するサービス クラスが含まれています。
関連するセクション
- 高度なリモート処理
.NET リモート処理アーキテクチャのカスタマイズに使用可能な傍受と拡張の基本事項を説明します。
- リモート処理の例
各種のリモート処理インフラストラクチャの要素を使用する完全なサンプル アプリケーションを紹介します。