(注:記事は執筆時の情報に基づいており,現在では異なる場合があります)

多様なフレームワークやライブラリ

図2●Turbine
Turbineサーブレットが業務ロジック・クラスを呼び出し,VelocityやJSPなどのHTML生成エンジンを制御する
図3●Velocity
HTMLテンプレート中に記述されたVTL言語を実行し,HTMLを動的に生成する
図4●JetSpeed
Web画面要素であるPortletを組み合わせ,ポータル画面を生成する

 Webアプリケーション・フレームワークとしてはStruts,Turbine,Tapestryが存在する。目的こそ同じであるが,設計思想や提供機能,APIなどはまったく別のものであり,利用目的にあったソフトウエアを選択していただきたい。

 Strutsはシンプルで洗練された機能とアーキテクチャを持つMVCモデル・ベースのフレームワークであり,J2EEにおけるデファクトとなっている。次号において詳細に解説する予定である。

 TurbineもMVCモデルに基づくフレームワークだが,データベースのコネクション・プール,O-Rマッピング*5,ユーザー管理,国際化など多くの機能を統一されたインタフェースで提供している(図2[拡大表示])。また,TurbineはWebページ生成のためのテクノロジが複数利用できる。標準は後述するVelocityテンプレート・エンジンだが,JSPや後ほど紹介するECSも利用可能である*6

 TapestryもMVCモデルを採用するフレームワークであり,最小のコーディングでWebアプリケーションを作成することを目標としている。HTML中に特殊なタグを追加記述する。ページ定義を行うファイル,HTMLページと業務ロジック・クラスの対応を定義した定義ファイルでアプリケーションの振る舞いを設定する。

 フレームワーク以外にも,アプリケーションに組み込んで使用できる便利なコンポーネントが多数ある。Webぺージを動的に生成するエンジンにはVelocityとECSがある。

 Velocityはテキスト・テンプレート・エンジンである(図3[拡大表示])。JSPとは異なり特殊なタグを使用しないため,HTMLエディタとの相性がよい。メールを送信する場合の,テンプレートを用いた文面作成などにも利用できる。

 ECSは,HTML,XMLなどいろいろなマークアップ言語をJavaのオブジェクトとして表現し,操作するための機能を提供する*7。ECSのオブジェクトをツリー状に構築することでマークアップ言語の入れ子構造を表現する。

 フレームワークの上で稼働するポータル・サイト構築システムにJetSpeedがある。ログインしたユーザーごとに自分のページをカスタマイズしたり,表示する情報を選択したりできる機能をもったサイトを構築することができる(図4[拡大表示])。