- - PR -
Strutsで複数のウィンドウ間のデータのやり取りについて
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-12-26 01:55
sessionに物を入れすぎると業務用のアプリのように多数の人々が長い時間使う場合には使用者数分のセッションとそれだけのオブジェクトがリソースを占有する事になると思います。しかも業務時間中はずっとです。私も今まで幾つかのプロジェクトに関わって来ましたがいつも出来るだけセッションには出来るだけ物を入れないようにしてました。今回新しくStrutsを使う事になり気にしてますが、、、 | ||||||||
|
投稿日時: 2003-12-26 06:45
確かに難しい問題ですね。セッションタイムアウトまでにActionFormが旧世代入りしてしまうとフルGCが走るまで開放されなくなってしまいますから。
ただし、逆にセッションを利用することによるセキュリティの向上と開発工数の削減(まぁ微々たるものかもしれませんが)が得られることを考えると利用しないのも不自然な気がします。 ActionFormで消費されるメモリサイズを計算し、利用者数とかけてみて最大どのくらいのメモリが消費されるかシュミレーションされてはいかがでしょうか。 この容量が十分ヒープに収まるのであればお客さんにも説明がしやすいでしょう。 | ||||||||
|
投稿日時: 2003-12-26 07:02
セキュリティ上のメリットは確かに無視出来ないことですが、開発効率の面ではHidden項目をリクエストごとに自動に渡してくれる仕組みをフレームワーク上で実装しておくと一般開発者の負担は結構減るのではと思っています。 例えば、前画面のパラメータを次の画面にHidden項目として渡したい場合はActionFormにあるフィールドにその旨を設定しておけば拡張されたActionServletがActionクラスの実行後にその処理を自動でやってくれて、次画面のJSPではカスタムタグで渡されたHidden項目を自動で挿入してくれれば一般開発者の負担は結構減りますね。このアイディアには何か問題がありますでしょうか? で、セキュリティ的に問題になりそうな部分はSessionを利用し、そうでない部分はリクエストごとにHiddenで渡す、と言う事を考えてますが。
これはすばらしいアイディアですね。ただ、フレームワークの設計中で業務の要件がはっきりしてない状態なのでサンプリングがちょっと。。それと、なにより、メモリー上であるインスタンスがどれくらいのメモリーを占有するかはどうして確認出来ますか? (主題とはずれてしまいますが参考までに。。) | ||||||||
