WebサーバとTomcatを連携させるプロトコル"AJP13"を、ちょっとした出来心からPerlで実装してみました。というわけでPerlでServletコンテナのフリをする方法。意外にパフォーマンスもよさげ。
mod_jk は Apache HTTP Server と Tomcat を接続させるための Apache モジュールで、コネクタと呼ばれます。mod_jk とサーブレットコンテナ間は AJP13 プロトコルと呼ばれるプロトコルでお喋りします。
そのプロトコルを解釈する Perl 実装のサーバを用意、そいつから任意の Perl クラスをロードしてみましたというのがこの小山さんの記事。要は、mod_jk 経由で Perl プログラムの出力を返すことができる、ということかな。Perl で書かれたサーブレットコンテナ。
パフォーマンスが意外に良いとのことで、
走らせてみると判ると思うのですが、意外に良いパフォーマンスを見せてくれます。簡単なベンチマークでTomcat 5 mod_jkの約80〓90%程度のパフォーマンスです。
だそうです。
mod_jk2 などのコネクタ実装には、ロードバランシングやセッショントラッキングといった仕組みが備わっていますし、HTTP サーバとの接続にあたって Perl 実装のアプリケーションサーバでこれらコネクタを利用できるのは結構いいかも。リバースプロキシ + mod_perl サーバよりも頑丈な実装が見込めるかもしれません。
小山さんは今後の展望として、オープンソースプロジェクトとしてまじめに開発する気もちょっと?あるっぽいので、興味のある方は手を上げられてみては。