Strutsを使ったことないし、今後使うわけでもないけど、Strutsを使ったWebアプリのソースコードをちょっと見る機会があったので、Strutsについて妄想を膨らませてみた。
まず、J2EEについて
- Tomcat、WebLogicなどのJ2EEアプリケーションサーバは1プロセス・マルチスレッドで動作する。
- UNIX系OS版のOracleのようにマルチプロセスではない。
- Windows版のOracleのようなイメージか。あれはOSから見るとOracle.exeというプロセスが1つだけ動いていて、内部的にスレッドを使って並行処理をしているはず。
- ServletはJ2EEアプリケーションサーバの中で1スレッドとして動作する。JSPも実行時はServletとして実行されると聞いた気がする。
ここからStrutsについて
- お客さんが来ると、受付嬢(ActionServlet)が受付だけして、管理者(RequestProcessor)に引継ぐ。受付嬢(ActionServlet)は一人しかいない。後は管理者(RequestProcessor)がお客さんに回答するところまで責任を持って仕事をする。
- 管理者(RequestProcessor)は受付から仕事を引継いで依頼内容をヒアリングシート(ActionForm)にまとめる。
- ヒアリングシート(ActionForm)をチェック(validation)して不足があれば、営業担当(JSP)にその旨をお客さんに連絡させる。営業担当(JSP)は複数いて、各自の得意分野に応じて役割分担が決まっている。
- ヒアリングシート(ActionForm)に不足がなければ、技術者(Action)に渡して仕事をさせる。技術者(Action)も複数いて、各自の得意分野に応じて役割分担が決まっている。
- 技術者(Action)から受け取った成果物を営業担当(JSP)に渡してお客さんにレポートを提出させる。
[参考]
Strutsリファレンス(概要)
嘘言ってるところがあったら、教えてください。誰か。