PSGIとPlack
最後に、昨年あたりから話題になっているPSGI/Plackについて紹介します。
Webアプリケーションを実装する際には、オレオレフレームワークを含め、何らかのWebアプリケーションフレームワークを使用することが多いと思います。
Perlについても、この連載で紹介しているCatalystをはじめとして、ArkやJiftyなどのさまざまなWebアプリケーションフレームワークがあります。
WebアプリケーションフレームワークとApacheなどのWebサーバを連携させる場合には、これまではCatalyst::Engine::Apache2::MP20やCatalyst::Engine::FastCGIのように、Webアプリケーションフレームワーク側で対応するコードを実装していました。
PSGI(Perl Web Server Gateway Interface)は、PythonにおけるWSGIや、RubyのRackを参考にして定義されたWebアプリケーションフレームワークとWebサーバの間をつなぐためのインターフェース仕様であり、このPSGIに従ったアダプタをフレームワーク側が実装していれば、特別な対応コードを書くことなく、さまざまなWebサーバで動作できるようになります。
PlackとはPSGIの参照実装であり、ApacheやFastCGIなどに接続するための各種ハンドラ、そしてユーティリティクラスなどが用意されています。
PSGIとPlackの情報は、PSGI/Plackにまとまっておりますので、こちらをご参照ください。
実際に使ってみたい方は、CPANでもPSGIとPlackとして公開されています。
また、PSGIに対応したCatalystのアダプタもCatalyst::Engine::PSGIで公開されていますので、ご興味のある方はお試しください。
今年の10月に開催されたYAPC::Asia Tokyo 2010でも、PSGIやPlackに関するセッションが行われるなど、注目の高さが伺えます。
まとめ
本記事では、一般的なWebサイトでは必須とも言える、セッション管理と認証管理をサポートしてくれるプラグインについて紹介しました。
また、今後のPerlによるWebアプリケーションフレームワークでは必須となるであろうPSGI/Plackについても、簡単ではありますが紹介しました。
次回は、フォーム関連の処理を助けてくれるプラグインについて紹介します。