ソケット接続を使用する

提供: RAD Studio
移動先: 案内検索

多層アプリケーションの作成:インデックス への移動

TCP/IP ソケットを使用すると、軽量クライアントを作成することができます。たとえば、Web ベースのクライアント アプリケーションを記述している場合、クライアント システムが DCOM をサポートしているとは限りません。ソケットは、アプリケーションサーバーへの接続に利用できるとわかっている最小共通標準となります。ソケットに関するさらなる情報については、「ソケットの操作」を参照してください。

クライアントから直接リモート データ モジュールをインスタンス化する(DCOM の場合)代わりに、ソケットはサーバー上にある別のアプリケーション(ScktSrvr.exe)を使用します。このアプリケーションは、クライアントのリクエストを受け取り、COM を使用してリモート データ モジュールをインスタンス化します。クライアント上の接続コンポーネントと、サーバー上の ScktSrvr.exe は、IAppServer 呼び出しをマーシャリングする役割を担います。

メモ: ScktSrvr.exe は、NT サービス アプリケーションとして実行できます。-install コマンドライン オプションを使用して開始することにより、サービス マネージャに登録します。-uninstall コマンドライン オプションを使用することで、登録解除することも可能です。

ソケット接続を使用できるようにするには、その前に、アプリケーション サーバーが、ソケット接続を使用するクライアントから利用可能なことを登録しておく必要があります。デフォルトでは、新しいリモート データ モジュールはすべて、UpdateRegistry メソッド内のおいて EnableSocketTransport へ呼び出しを追加することにより、自動的に登録されます。この呼び出しを削除すると、アプリケーション サーバーへのソケット接続を抑制することができます。

メモ: 依然のサーバーはこの登録を追加しないので、ScktSrvr.exe の 接続 > 登録されたオブジェクトのみ表示 メニュー項目のチェックをはずすことにより、アプリケーション サーバーが登録されるているかどうかのチェックを無効にすることができます。

ソケットを使用している場合、アプリケーション サーバー上のインターフェイスへの参照を解放する前に、クライアント システムが落ちてしまうことに対するサーバー側での保護策がありません。DCOM(周期的に keep-alive メッセージを送信する)より、メッセージ トラフィックは少なくなりますが、クライアントがなくなったことを知る手だてがないため、アプリケーション サーバー側ではリソースを解放できなくなります。

関連項目