1) 特徴と利点

「Weber/WeberCreatorフレームワーク」は、J2EEベースのWebアプリケーションフレームワークです。

WeberとWeberCreatorはそれぞれ独立したフレームワークであり、これらを組み合わせることにより、 Webアプリケーションシステムを容易に開発することができます。

Weber/WeberCreatorフレームワークの特徴と利点は以下のようなものがあげられます。

Excelベースのテーブル定義書からWebアプリケーションの雛形を生成
WeberCreatorの最大の特徴は、Excelで作成したテーブル定義書から、Webアプリケーションの雛形 を全て作成してくれることです。
テーブル仕様書から、そのテーブルに対する追加・更新・削除・一覧表示を行うためのHTMLテンプレート とJavaクラスを生成します。
生成されたアプリケーションのテンプレートは、特別なコーディングをすることなく、そのまま コンパイル・実行することができる為、アプリケーション開発の初期段階を手早く立ち上げることができます。

WeberCreatorでは、1つのテーブルに対して生成されたHTMLテンプレートとJavaクラスの集合を 「モジュール」と呼んでおり、テーブル単位でのモジュールの追加・削除を行うことができます。
たとえば、一度開発を終えたシステムに対して新たに機能を追加する必要が発生した場合や、 開発の途中で仕様追加が発生した場合でも、WeberCreatorを使えば容易に対応することができます。

テーブル定義書から生成されるソースは、HTMLベースの画面テンプレートと、パラメータを保持する フォームクラス、業務処理を実装するアクションクラス、そしてデータベースアクセスを行うDAOクラスの 4種類になります。

規約重視の開発でXML地獄から脱却

従来、StrutsのようなXMLベースの設定ファイルを用いた開発では、プログラムコードを書く一方で、 作成したプログラムをつなげる為に複雑な設定情報をXMLファイルに記述しなければなりませんでした。
特にシステムの規模が大きくなればなるほど、記述量も大幅に増え、設定ファイルの記述に少しでも誤り があればプログラムは思うように動いてくれず、プログラミング作業のリズムを崩してしまう要因にも なりました。

Weberフレームワークは、RubyOnRailsで提唱されたConvention overConfiguration( 適切な規約を守れば 特に面倒な設定をしなくてもフレームワークが自動的に適切な設定をしてくれるという考え)に基づく 規約重視の開発をサポートしています。
この考えは、規約に従っていれば、設定ファイルが無くてもフレームワーク側が解釈してくれるといった ものです。
規約というと開発者を束縛する嫌なイメージをもたれるかもしれませんが、Weberの規約は開発の自然な流れ とシンプルな構造を重視している為、それほど苦労することなく開発に取り組めることに配慮しています。

このWeberフレームワークによる規約重視の開発とWeberCreatorによるアプリケーションのテンプレート生成 を組み合わせることによって、必要最低限の設定で動くアプリケーションが簡単に作ることができます。

Webアプリケーションの開発に必要な機能を標準でサポート

WeberフレームワークはWebアプリケーションの開発において必須の機能とされるセッション管理(ユーザ認証)、 トランザクション管理、ログ出力管理、画面のレイアウト制御などを標準でサポートしています。
開発者は、これらの機能を利用することにより、システムの業務処理部分のみの実装に集中することができます。

2) フレームワークの構成

Weber/WeberCreatorは、以下の構成で成り立っています。

Weberアプリケーション
ビューにHTML、ロジックにJavaクラスを用いたWeberフレームワーク上で動作するWebアプリケーションです。
このアプリケーションは、通常WeberCreatorを使って生成されたWebアプリケーションの雛形をベースに 作成することにより、必要最小限のコストでWebアプリケーションを開発することができます。

WeberCreatorフレームワーク
Excelベースのテーブル定義書から、Weberアプリケーションのテンプレートを生成するコード生成ツールです。
このツールで生成されたテンプレートは、即座にコンパイル・実行することができます。

Weberフレームワーク
MVCモデルベースのWebアプリケーションフレームワークです。
Weberフレームワークは、Weber、Stylist、Commonsの3つのライブラリで構成されており、 これらのライブラリを使って、Webアプリケーションを開発していきます。

※ バージョン5.0からはWeberライブラリとStylistライブラリが統合されました。

(1) Weberライブラリ
主にMVCのC(コントローラ)を担当するライブラリです。
クライアント(HTML)からのリクエストを受け取り、クライアントで入力されたリクエストパラメータ をフォームクラス(JavaBeans)にマッピングします。
その後、リクエストに対応した業務処理(アクションクラス)の呼び出しを行います。
業務処理の呼び出しを行う際、リクエストパラメータとマッピングされたJavaBeansオブジェクトが 業務処理に渡されます。
業務処理の実行結果によって、次にどの画面に遷移すべきかは、Weberライブラリが判断します。

(2) Stylistライブラリ
MVCのV(ビュー)を担当するライブラリです。
Weber独自のXHTMLタグの解析と画面レイアウトの作成を行います。
画面開発をHTML主体にすることにより、画面モックの作成を容易にしたり、画面開発と業務処理部分 の開発の役割分担を明確に切り分けることが可能になります。

(3)Commonsライブラリ
DIコンテナ機能やログ出力機能、入出力変換機能といったユーティリティクラスを集めたライブラリです。 又、一般的な共通機能のほかにDBのコネクションプールやトランザクションを管理する機能や、 O/Rマッピング機能なども含まれています。
WeberCreatorが生成するテンプレートクラスにおいて、DBのトランザクション制御やDAOクラスは このCommonsライブラリを使用しています。