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