- PR -

Webサーバの構築について

1
投稿者投稿内容
ひよこ
会議室デビュー日: 2003/04/17
投稿数: 4
投稿日時: 2003-04-17 20:41
こんにちわ。

現在、イントラでファイルサーバをWeb公開をしたいと考えています。
そこで、Webサーバとファイルサーバとクライアントという構成で
Webサーバの構築を考えています。

Webサーバはクライアント(JSP)の要求でDBサーバに要求のあったファイルを取得し、
クライアントにファイルを表示をさせたいと考えています。
ここでファイルをクライアントに表示させるにあたって、
Webサーバはファイルサーバからファイルを取得し、
Webサーバ内に格納し、クライアントに表示させる方法を考えています。
この構成をとるにあたって、いくつか分からないことがあります。

・Webサーバにファイルのコピーを行い、クライアントに参照させるというのは、
通常のWebアプリケーションから見た場合適切でしょうか?

・Webサーバにコピーを行った場合、サーバのテンポラリ領域に出力をおこなっても
よいのでしょうか?

・上記の構成をとった場合、Webサーバにコピーを行ったファイルが溜まってしまうと
考えられます。その場合、ファイルに対してどのようなセッション管理を
行えばよいのでしょうか?

上記の項目についてアドバイス等頂けないでしょうか?
よろしくお願い致します。
tommy
会議室デビュー日: 2003/03/11
投稿数: 15
投稿日時: 2003-04-17 23:30
引用:

ひよこさんの書き込み (2003-04-17 20:41) より:
Webサーバはクライアント(JSP)の要求でDBサーバに要求のあったファイルを取得し、
クライアントにファイルを表示をさせたいと考えています。
ここでファイルをクライアントに表示させるにあたって、
Webサーバはファイルサーバからファイルを取得し、
Webサーバ内に格納し、クライアントに表示させる方法を考えています。


クライアントがいつファイルを取得するのかがはっきりしていれば
テンポラリファイルを作成するのも削除するのも簡単なのですが、
明確化できないのではないでしょうか。

むりくり Java で実現するのではなく、別な構成を検討してみてはどうでしょう。
Web でファイル共有というのであれば WebDAV という手もありますね。
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2003-04-17 23:59
イントラなら別にポリシー決めちゃえばどうとでもなりそうです。
(たとえば、取り出しのリクエスト後30分で消す、夜間バッチを利用して一括で消す、など)

ただ、それをやるよりは、Webアプリ側でファイルを読み込んでレスポンスとして
書き出すようにするほうがいいのかなぁとも思います。
ひよこ
会議室デビュー日: 2003/04/17
投稿数: 4
投稿日時: 2003-04-21 18:11
tommyさん、まりりさん
アドバイスありがとうございます。
お返事が遅くなってしまってすみません。

引用:

tommyさんの書き込み (2003-04-17 23:30) より:
むりくり Java で実現するのではなく、別な構成を検討してみてはどうでしょう。
Web でファイル共有というのであれば WebDAV という手もありますね。



やりたい事は、Webサーバを介してクライアントにファイルを表示ということなので、
ファイル共有ということは、やりたい事からずれてしまいそうです。
ですが、WebDAVという方法が(すいません、WebDAVについてよく分からないので…)
調べてみてもしやりたいことに適応できそうなら考えてみたいと思います。


引用:

まりりさんの書き込み (2003-04-17 23:59) より:
イントラなら別にポリシー決めちゃえばどうとでもなりそうです。
(たとえば、取り出しのリクエスト後30分で消す、夜間バッチを利用して一括で消す、など)



ポリシーというのはWebサーバにファイル削除のポリシーを与えるということでしょうか?


引用:

まりりさんの書き込み (2003-04-17 23:59) より:
ただ、それをやるよりは、Webアプリ側でファイルを読み込んでレスポンスとして
書き出すようにするほうがいいのかなぁとも思います。



Webアプリ側でファイルサーバのファイルを(ダウンロードせず)直接読み込んで
クライアントに表示ということでしょうか?

もうちょっと細かく実現させたいことを言うと、
ファイルのフルパスを格納しているインデックス用のDBがあります。
クライアントの要求があるとWebサーバでは見たいファイルをこのDB内を検索します。
そのDBから見たいファイルのフルパスのファイル名を取得します。
そこでこのファイルをクライアントに送る適切な方法が分からないので教えて頂きたいのです。

すみませんが、ご教授下さい。
zaxx_MD
大ベテラン
会議室デビュー日: 2003/04/21
投稿数: 204
お住まい・勤務地: 千葉県柏市
投稿日時: 2003-04-21 19:22

java.io.パッケージを利用して取得したフルパスのファイルを読み込みつつ、
ServletResponseのOutputStreamに書き出すという方法がありますね。
(セッション)タイムアウトに注意が必要かもしれません。

アプリの設計よりもDBにファイルを詰めないほうが不思議です。
ひよこ
会議室デビュー日: 2003/04/17
投稿数: 4
投稿日時: 2003-04-22 14:31
zaxx_MDさんアドバイスありがとうございます。

OutputStreamをするのも手ですね。
ですが、その場合サイズの大きいファイルの場合が心配になります。
検証してみる必要がありそうです。

なぜDBにファイルを詰めないのかというのは、見たいファイルの量が多く、
しかもファイルサイズも大きい為、DBで管理するのは難しいからです。
zaxx_MD
大ベテラン
会議室デビュー日: 2003/04/21
投稿数: 204
お住まい・勤務地: 千葉県柏市
投稿日時: 2003-04-22 19:12
もともとの質問に対する回答になってませんでしたね。
一時領域としてファイルを作成する場合、
どうしても同期と一時領域の容量が問題になりやすいですから、
避けるべき実装だと主張するようにしています。

現在のサーバ事情から考慮するとCAD(数十〜百MB)などのデータ以外は
DBに格納するべきだと思います。
結局のところファイルサーバに十分なストレージを用意しているわけですから、
既存のシステムとしてファイルサーバを利用していない限りDBにストアするのが
主流になっていると思います。

(いずれも実装次第ですが)DBにストアすることで、DBにレコードがあってファイルが無いとか逆の状況などが発生することを防ぐことができます。また、(ファイル)ロックの発生をアプリケーションで制御できます。

どうしてもDBにストアしないという方針であれば
WebDAVという話題も出ていますが、ファイルサーバのファイルをHTTPサーバから参照させるというのも手段として検討すべきだと思います。
DBに登録されたファイルのパスからURLを編集してリダイレクトするなり
アンカーを張るなり見せ方はいろいろあると思います。
ひよこ
会議室デビュー日: 2003/04/17
投稿数: 4
投稿日時: 2003-04-22 19:59
zaxx_MDさんアドバイスありがとうございます。

やはり一時領域を作成するのはあまり適切な方法とはいえないのですね。

数MBサイズのファイルの物理的な量が多く、しかもDBは既存に存在するものを使用する為、
やはりDBに格納するのは出来ません。

となるとファイルサーバのファイルをHTTPサーバから参照する方法を考えた方が
Webアプリケーションとしては適切ということですね。
1

スキルアップ/キャリアアップ(JOB@IT)