« URI::FetchのNoNetworkオプション | メイン | ぱどタウンでブログパーツはじめました。FlashのRSSリーダにもなってます »

Catalystでのセッション管理はどれがいいのだろう

Catalystをちょっとやり始めている。

シスコのHUBの方はデータセンター内で他者さんのラックで使われているのをよく見ます。
うちは使ってないけど。管理機能は別としてすぐに代替が可能なお手頃なHUBの方がうちの運用にあっているんじゃないかと思うのだがごもごもごも。。

んで、勉強にCatalystでアプリケーションを作るのにあたって、セッション管理をどうしたらいいのか調べ中。
プラグインが4つほどあるんですよね。

Catalyst::Plugin::Session::FastMmap
Catalystの制作者のプラグイン。データの保存には、Cache::FastMmapを使う。セッションキーのリダイレクト時の書き換え機能やHTML上のリンクへの埋め込み機能もある。FastMmapはけっこう速いらしい。たぶん一番ベーシック

Catalyst::Plugin::Session::CGISession
CGI::Sessionを利用する。CGI::Sessionで使えるdriverが使えるので、mysql、postgresql、sqlite、file、db_fileとよりどり。インターフェイスとリンク埋め込みなどはFastMmapに準じた設計

MyApp->config->{session}->{cgis_dsn} = 'driver:mysql;';
MyApp->config->{session}->{cgis_options} ={
        Handle=>MyApp::M::CDBI->db_Main
};

とかで行けると書く事が少なくていい。ただPodやソースにいろいろ書いてあるのがなんかアレゲ。

Catalyst::Plugin::Session::Flex
Apache::Session::Flexを用いた実装。FastMmapに準じた設計。今CGI::SessionとApache::Sessionを選択する場面だったらCGI::Sessionを選ぶかなぁ。

Catalyst::Plugin::Session::Manager
Lost-SeasonのKatoさんのモジュール。関連エントリー。Sledgeライクなセッション管理で、CookieとURL埋め込み、StickyQueryが選択可能。StorageもFile、FastMmap、Class::DBIが使える。他との連携を考えるとClass::DBIは楽ができそうだと思ったり。

MyApp->config->{session} = {
        storage => 'CDBI',
        session_class => 'MyApp::M::CDBI::Session',
        expires       => 3600,
}


結局どれにするか決まらない。FastMmapで行っておくかな。

Sessionと認証を組み合わせる必要がある場合はqootas.orgのせきむらさんのエントリー「Catalystで Authentication」が参考になる。

トラックバック

この一覧は、次のエントリーを参照しています: Catalystでのセッション管理はどれがいいのだろう:

» Catalyst でセッション管理を行うときのTips? from ブログが続かないわけ
Catalystでセッション管理を行うときは下記のページを参考にしてみてください。  [Perl][Catalyst]ユーザ認証とセッション管理のサンプ... [詳しくはこちら]

» PerlでPHPのようなセッションを (Catalyst) from ブログモード
いわゆるCookiesを使うと携帯向けのサービスで使えない。そこでPerl(Catalyst)でリンクタグにセッションIDを自動付与できると知ったので調... [詳しくはこちら]