ステートレスの夢、破れる・・・

掲示板なんだから、ステートレスで行きたい・・・というのは、Tapestry的には問題ありません。
気をつけなければならない点はいくつかありますが、ステートレスである必要のあるアプリケーション自体、それほど複雑にもならないでしょうから、それほど深刻になる必廚呂△蠅泙擦鵝
しかし!Cayenneを用いてステートレスなWebアプリケーションを作ろうとすると・・・これがかなり難しい事が発覚しました・・・
ここまで書いておきながら、いまさら何をいうか!っていう感じですが、こういう過程を書き連ねるのもはてな日記ということで・・・(^^;


いやいや、正確に書きましょう。
Cayenneを用いてステートレスなWebアプリケーションを構築する事は可能です。
可能なんですが、それはデータの参照を主にしたアプリケーションであれば可能なんです。
つまり、ページを表示する度に毎回フェッチして、結果をずらずらと表示するようなもの・・・
問題は、フェッチして取得したオブジェクトに対し、UPDATEを加えるような時です。
この時、ステートレスだと、取得したオブジェクトをどこに保存しておくのかっていう問題が出てきます。
ステートフルなら、迷わずSessionに保存しておきますが、ステートレスならばそうは行かない・・・
掲示板でも、「返信」機能がアダになりました。
返信元のオリジナルのメッセージオブジェクトに対して変更を加えなければなりません。
この返信元のメッセージオブジェクトをどこに保存しておけば良いのやら・・・
もちろん、hiddenのフォームを用意して、各ページで持ち回るとか、いろいろ方法はありますが、せっかくTapestryを使っているので、あまりエレガントじゃありません。そもそも、これは仕事じゃないですから(笑)。
さんざん悩みましたが、あきらめてステートフルなものにしたいと思います(すみません)。

まぁ、CayenneTapestryを組み合わせたWebアプリケーションでステートレスにこだわるのもあまり良くないかもしれませんし。
WebObjectsだって、ステートレスでいこうと思うと結構大変だったりします。気軽にコンポーネント使えないし・・・

という訳で、次回は今まで作ったアプリケーションをステートフルに改造する所を実況したいと思います(恥)・・・