ISAPI ("インターネットサーバ API") はWebサーバに対するエクステンションを
書くためのAPIです。
それは、Webサーバに対するエクステンションを書くための
標準的なプロセス間プロトコルであるコモンゲートウェイインターフェース(CGI)を
補完あるいは置換します。
CGIに対するISAPIの主な利点は、 エクステンションコンポーネントと通信を行うのに、 CGIのように環境変数と標準I/Oではなく、 ダイナミックリンクライブラリ(DLL)関数コールを使用するということです。 Win32プラットホームでは新プロセスを実行するのにたくさんのオーバヘッドが かかりますが、DLLコールは新しいプロセスを必要としないのです。
元々はMicrosoft Internet Information Server用に開発されましたが、現在では
多くのWindows NTをホストとするWebサーバがISAPIをサポートしています。
Although it was originally developed for Microsoft Internet Information
Server, many Windows NT-hosted Web servers now support ISAPI.
その名前のいくつかは質問 6.1
でわかります。あなたのサーバがそこにはない場合、そのサーバの資料を確認して
ください。
PerlISは"Perl for ISAPI"として知られている、Win32プラットホーム上で
Perlスクリプトを実行するISAPI拡張です。
PerlISは主にWorld Wide Webサイト上のダイナミックコンテンツを
制作するために使用されます。
PerlISのもとで走るPerlスクリプトを書くのはCommon Gateway Interface (CGI)用に
スクリプトを書くのと大差ありません。
PerlISは汎用目的の使用には向きません。
汎用目的のプログラミングには、perlインタープリタ (perl.exe)がいいでしょう。
Perl for Win32配布セット用にバイナリのPerl
(XXX-i86.zip, XXX-Alp.zip, XXX-Ppc.zip)と一緒に配布されます。
ソース配布セット(XXX-src.zip)には含まれていません。
install.batを実行すると、PERLIS.dllはあなたのperlディレクトリのbin
サブディレクトリにコピーされます。
簡潔な回答は:早いからです。長い回答はちょっと技術的な内容になりますが、
このような感じになります。:
perl.exeに対するPerlISの主な利点は、PerlISはWeb サーバの"プロセス空間"で
DLLとして実行されるということです。
Win32プラットホームは、開始されたプロセス毎に保護された
"メモリ空間"を設定するので、新しいプロセスやプログラムを開始する際にたくさんの
オーバヘッドがかかります。
perl.exeのようなインタープリタにスクリプトを渡すには、
スクリプト毎に新しいプロセスを開始する必要があります。
それはシステム資源に関して高いコストがかかることになります。
一方、DLLは自分自身のプロセス空間は必要ありません。
それは自分をcallしたプロセスの空間を使用するのです。
開始するためのオーバヘッドもそれほど必要ありませんし、一旦ロードされると
callしたプロセスが終了するまでロードされたままとなります。
ですから、PerlISはperl.exeよりもずっと低いターンアラウンド時間で
Perlスクリプトを実行するのです。
いい質問です。
GNU General Public License or the Artistic License の素人の解釈
(元々のperl標準配布セット用には2つのライセンスが適用されうる)では
perlに由来するあらゆるプログラム用ソースコードは公的に利用できるように
すべきであると示唆しているように思えるのですが、ActiveWareから
ダウンロード用に利用できるPerlISコードのコピーはないようです。
ホームページへ戻る。
2.2. PerlISとは何ですか?
2.3. PerlISはどこで入手できますか?
[訳注:これはperl5.001mのポーティングであるビルド110に対する説明です。
perl5.003のポーティングであるビルド30xでは別ファイルとして
配布されています。ちなみにビルド303ではそのファイル名はPlISi303.EXE
(自己解凍形式)です。
また、PerlISのインストールプルグラム名もperlis-install.batとなっています。]
2.4. 何故Perl for Win32 (perl.exe)よりもPerlISを使うべきなのですか?
[訳注:訳者はPerlISの利用には消極的意見です。
早くても、失う機能や制約を勘案すると推奨しかねます。]
2.5. PerlISのソースコードはどこにあるのですか?
ご意見、ご要望は、
電子メールまたは
投稿にお願い致します。