Weberフレームワークへようこそ



Weberフレームワーク(以降Weberと呼びます)は、Itscoolプロジェクトが開発している オープンソースのソフトウェアで、Webアプリケーションの開発に必要となる諸機能を 提供するフレームワークです。

Weberの基本機能はユーザからのリクエストを受信し、開発者が用意する適切なアクション クラスに割り当て、実行結果を元に遷移先の画面を呼び出すことです。

WeberはMVCというソフトウェア設計モデルに基づいて開発しています。
これによりWeb画面と業務ロジックを分離し、それぞれの関連をWeberが吸収することによって、 役割に応じた開発を個々に行うことができます。

また、Webアプリケーションの開発で必要となる認証機能やトランザクション管理機能、 暗号化機能もフレームワークの一部として提供していますので、 Webアプリケーションの開発では業務処理に専念することができます。

Weberの基本動作は以下の通りです。
まず、クライアントから発生したリクエストは、まずControllerの機能を請け負う FrontServletクラスが受け取ります。
このFrontServletはMVCモデルのCの役割を持つコンポーネントです。
Weberは、ひとつのアプリケーションで一つのFrontServlet クラスが全てのリクエストを処理します。
FrontServletはこのフレームワークで使用される各コンポーネントを連携させ アプリケーション全体の制御を行うコンポーネントですが、開発者は原則として 直接扱う必要はありません。

FrontServletクラスとそのほかの主要なクラスの相関関係を以下に図示します。

【FrontServletと関連するクラス】

 +--------+ (1) +------------+   +----------+
 |    |----->| Front   | (2) | Action |
 | Web  | (7) | Servlet  |----->| Mapping |
 |    |<-----|      |   |     |
 +--------+   +------------+   +----------+
           A  | |
           |  | |          
           |  | |(3)+------------+
           |  | +-->|      |
           |  |   |  Bean   |<---+
           |  |   |      |  |
           |  |   +------------+  |
           |  |            |(5)
           |  | (4) +------------+  |
           |  +----->|      |  |
           |   (6) |  Action  |----+
           +----------|      |
                 +------------+

ActionMappingクラスは、Web画面(入力)と業務ロジック(Action)及びWeb画面で 入力されたリクエストパラメータを保持するBeanクラス、結果表示用のWeb画面(出力) との関連を保持するクラスです。
これらの関連情報はあらかじめXML形式で記述された外部ファイルに記述しておき、 Webアプリケーション起動時にActionMappingクラスに展開されます。

Actionクラスは、業務処理部分を担当します。
アプリケーション開発者は、このクラスを継承し、それぞれの業務に応じた処理を 記述することになります。

Beanクラスは、リクエストパラメータを保持するクラスです。
このクラスはPOJOなクラスとして作成することにより、業務処理部分や永続化層 において中立なインターフェースを提供することができます。
これは業務処理部分や永続化層にJ2EE仕様(あるいはWeberフレームワークの仕様) の混在を防ぎます。

以下にWeberを利用した場合の業務処理の流れを記します。

【処理の説明】
No説明
1 クライアントから発生したリクエストはFrontServletクラスが受け取ります
2 FrontServletはクライアントから受け取ったリクエストURIを元にActionMapping を取得します
ActionMappingにはリクエストURIに関連するActionクラス名及びフォームBean名 が登録されています
3 FrontServletクラスはActionMappingクラスからBeanオブジェクトを生成し、 クライアントからのリクエストパラメータをBeanオブジェクトにセットします
4 FrontServletクラスはActionMappingクラスからActionを生成します。
次に生成したActionに対してexecuteメソッドを実行します。
executeメソッドの引数には、フォームBeanの他にHttpServletReqeust インスタンスやHttpServletResponceインスタンスも含まれます
5 ActionクラスはクライアントからのリクエストパラメータをBeanオブジェクト から取得します
6 リクエストパラメータに従って、ビジネスロジックを処理します
Actionの実行結果をFrontServletに返却します
7 FrontServletはActionの実行結果からJSP(HTML)ページを作成し、 クライアントに処理結果表示画面を返します。