C3Lab研究室

Back to Title Page(OpenLab)タイトルページへ戻る

最終更新日: 1998年 08月 18日 火曜日

インプロセスサーバー/アウトプロセスサーバーについて


 COM/DCOMになじみのある方はすでにご存じでしょうが、ISAPIとして利用可能な オブジェクトモデルにはインプロセスサーバー/アウトプロセスサーバーの2種類があります。 ASPのサーバーサイドスクリプトの利用に速度の限界を感じた方はVisualCなどで ISAPIを利用したサーバープログラムを作成したいと考えるはずです。というのも、 いずれのタイプにせよCPUネイティブなコードでいわゆる「CGI」を書けるのですから。
 さて、インプロセスサーバー/アウトプロセスサーバーとはどういったものでしょうか? 簡単にはDLLとEXEの違いといえます。どちらもWindowsでは実行可能コードを 含むファイルですが、動作するメモリーイメージは全く異なります。

 

 DLL・インプロセスサーバー

 DLLはDynamic Link Libraryの略語から推察されるとおり、 必要なときにメモリーに親プロセスから親プロセスのメモリーに読み込まれ呼び出される ライブラリーです。特徴は自分自身に起動用のプログラムは持たず初期化のルーチンのみをもち、 複数のプログラムから呼ばれても自分自身は固有にアドレス空間を持たないため(親プロセスに依存する)、 データ領域は親プロセスの領域を使用する。
 ゲームアプリケーションサーバーを作成する場合、共有データを持つ場合は ODBC等外部インターフェイスを利用するのがよいでしょう。3層C/Sのビジネス層で動作させる ことでインプロセスサーバーの利点を生かせます。

 EXE・アウトプロセスサーバー

 EXEはExecutableの略語から推察されるとおり、単独実行可能なファイルで実行時に 自分のプロセスをシステムから割り当て、新しいプロセスとして実行されます。そのため独自のデータ 領域を持つことが可能で、そのデータを他のクライアントプロセスで共有することが可能です。 また、独自のリソース領域を持つことができます。
 ゲームアプリケーションサーバーを作成する場合、データの保有を独自に行う場合このアウトプロセス サーバーになるでしょう。

 

Copyright (C) Kitaro 1998