ファイルの処理はかなり負荷がかかるため、webサーバとは別のマシンにしたいと思っています。
webサーバと、処理マシンはLANで繋ぐ形になると思います。
しかし、webサーバの方にアップロードしたとき、処理マシンのプログラムを動かす方法が思いつきません。
webサーバと、何かの処理マシンとを分けるというのは、雑誌やwebなどで詳細を語らないまでも、分けている場合があったと思うのですが、こういうことは普通は(出来ないorしない)のでしょうか?
出来れば方法も合わせてご回答頂けると助かります。
いわゆる三階層システム「プレゼン」「コントローラ」「ビジネス」と考えて、
(1)プレゼン層でファイル受信
(2)コントローラ->そのファイルをビジネス層に渡す
(3)ビジネス層はそのファイルを処理して結果をコントローラに
というのは良くあります。普通にあることですが。
単純実装ならば。
(1)tomcatでファイルアップロードのjspを作る
(2)rshで別マシンに送って結果を受けるサーブレットを実装する。
ぐらいかな。
SV1=webサーバ、SV2=処理マシンとします。
・ファイルをSV1にHTTPでアップロード
↓
・SV1では、アップロードされたファイルをSV2にコピー(a)し、SV2の処理プログラムをキック(b)する。
SV1/2がLinux同士であれば、(a)はscp、(b)はsshでコマンド実行で可能ではないでしょうか。apache起動ユーザにscpさせるのが難しければ、cronでアップロードされたファイルの有無をチェックし、存在すればSV2にscp、とすればいいと思います。
SV1がWindowsサーバーだったりした場合、SV2の該当ディレクトリをsmb共有しておいてそこにコピーし、SV2ではcronでファイルが存在したら処理して削除、でどうでしょう。
ご回答ありがとう御座います。
可能性が見えてきました。
他の方法もあるか気になるので、待って見ます。
もう出てこないようなので終了します。
ありがとう御座いました。
ご回答ありがとう御座います。
なるほど単純明快ですね。