次の方法で共有


プロトコル シーケンスの選択

プロトコル シーケンスは、ネットワーク オペレーティング システムがネットワーク経由で他のコンピューターと通信するために使用する言語です。 具体的には、RPC アプリケーションでは、RPC プロトコル、トランスポート プロトコル、およびネットワーク プロトコルの組み合わせを表す文字列を指定する必要があります。

Microsoft RPC では、次の 3 つの RPC プロトコルがサポートされています。

  • ネットワーク コンピューティング アーキテクチャの接続指向プロトコル (NCACN)
  • ネットワーク コンピューティング アーキテクチャ データグラム プロトコル (NCADG)
  • ネットワーク コンピューティング アーキテクチャのローカル リモート プロシージャ コール (NCALRPC)

RPC アプリケーションは、NCALRPC プロトコルを使用して、クライアント プログラムが実行されているのと同じコンピューター上で実行されているサーバー プログラムによって提供されるプロシージャを呼び出すことができます。 これは、同じコンピューター上の別のプロセスで機能を呼び出すための最も効率的な方法です。

アプリケーションで使用されるトランスポート プロトコルとネットワーク プロトコルは、ネットワークでサポートされているプロトコルによって異なります。 インターネットを含む現在の多くのネットワークでは、TCP/IP がサポートされています。 その他の一般的なトランスポート プロトコルとネットワーク プロトコルは、IPX/SPX、NetBIOS、AppleTalk DSP です。 Microsoft RPC では、これらのプロトコルと他のトランスポート プロトコルとネットワーク プロトコルがサポートされています。 完全な一覧については、「 プロトコル シーケンス定数」を参照してください。

アプリケーションで自動バインド ハンドルを使用する場合、プロトコル シーケンスを指定する必要はありません。 暗黙的または明示的なハンドルを使用する場合は、プロトコル シーケンスを取得または指定する必要があります。 各分散システムは、デプロイされる環境を調べて、その環境に最も適したプロトコル シーケンスを判断する必要があります。

すべてのプロトコル シーケンスに同等の機能があるわけではありません。 開発者は、選択したプロトコル シーケンスが必要な機能をサポートしていることを確認する必要があります。 一般に、ローカル通信の 場合は ncalrpc 、リモート通信には ncacn_ip_tcp または ncacn_http をお勧めします。すべての環境で動作し、最適なパフォーマンスを備え、必要なすべてのベスト プラクティス機能をサポートします。

クライアントは、Active Directory、レジストリ、セットアップ プログラムによって作成および初期化された環境変数、アプリケーション固有の構成ファイル、またはプログラムソース コード内のリテラル文字列から取得するプロトコル シーケンス情報を指定することもできます。

クライアント プログラムに有効なプロトコル シーケンス文字列が含まれると、その情報 を RpcStringBindingCompose 関数と RpcBindingFromStringBinding 関数に渡してバインド ハンドルを作成できます。