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

習得しやすく自由度の高いシンプルなアーキテクチャがStrutsの特徴だ。利用に当たっては,設計思想と適用範囲を理解した設計を行おう。「ボタンの二度押し」検出や認証管理機能,入力チェック機能,JSP合成機能を正しく使いこなそう。

表1●Strutsを採用したシステムの例
写真1●Strutsの開発支援ツール
Scioworks Camino。設定ファイルの編集,GUI上での画面遷移定義,Actionクラスなどのひな型の生成といった機能を備える
表2●おもなStrutsアプリケーション開発支援ツール
 Webアプリケーションの開発では,フレームワーク*1を利用して生産性や品質を向上させることが一般的となりつつある。J2EE(Java 2 Platform, Enterprise Edition)におけるオープンソースのWebアプリケーション・フレームワークとして注目されているのが,Jakarta Project*2が開発しているStrutsである。

 Strutsは2001年にVersion1.0がリリースされてから,多くのユーザーに支持され,わずか3年で急速に世界に広まった。日本でも多くのユーザーが採用している(表1[拡大表示])。

 Strutsによる開発を支援するツールも多数出てきた。GUI上で設計した画面遷移からStruts向けの設定ファイルを生成するツールなどが提供されている(写真1[拡大表示])。オープンソースのツール,商用ツールなど様々なものがあり,Javaの統合開発環境(IDE)も多くがStrutsでの開発を支援する機能を持つ。また,IDEのプラグインとして動作するツールも多い(184ページの表2[拡大表示])。

 もはやStrutsは,J2EEにおけるWebアプリケーション・フレームワークのデファクト・スタンダードと言っても過言ではない。

習得しやすいシンプルなアーキテクチャ

 StrutsはJ2EEの標準技術であるサーブレット,JSP(JavaServer Pages)を用いた,Webアプリケーション・フレームワークである。

 Webアプリケーション・フレームワークは,Webアプリケーションの定型的な処理(リクエストを受ける,フォーム・データの操作,レスポンス・ページの生成処理など)を抽象化したものだ。すなわち,Webアプリケーションにおける定型的な処理を作成する必要がなくなる。Struts以外にも多くのWebアプリケーション・フレームワークが存在するが,Strutsは以下のような特徴を持つ。

1.必要な機能のみをシンプルに提供

 シンプルなアーキテクチャを持ち,Webアプリケーション構築に必要な,最低限の機能を提供している。このため,多くの開発者にとって理解しやすく,非常に導入しやすいものとなっている。

2.オープンソース開発による品質の向上

 オープンソースゆえに,世界中の多くの優秀な開発者,レビュアによって開発が行われている。それだけでなく,Strutsを開発しているApacheプロジェクトは,整備された運用ルールにもとづき,多くの優れた開発者が参加している。

3.商用利用にあたっての制限が少ない

 StrutsはThe Apache Software License*3にもとづいて配布されている。商利用や再配布に特別な制限のない,比較的自由なライセンスである。

4.業務ロジック実装の自由度が高い

 Strutsのサービス範囲はWeb層に特化しており,モデルの実装方法を規定していない。業務ロジックはEJBでもJavaクラスでも実装可能であり,自由度が高い。

5.移植性の高さ

 Pure Javaで作成され,ポータビリティにも気が配られており,ほとんどすべてのアプリケーション・サーバーでの動作が報告されている。

6.API互換性の維持

 バージョンアップ時のAPIの互換性を保証するというポリシーを持って開発されており,利用したアプリケーションの寿命を短くしないよう考慮されている。

黒住幸光(くろずみ・ゆきみつ)氏

株式会社アークシステム シニアコンサルタント。
1989年よりスーパーコンピュータ向け言語処理環境の研究に従事。1995年,生まれて間もないJavaと出会い,Javaに専念するため転職。現在,株式会社アークシステムにてオープンソース・ソフトウエアを用いたWebシステムの構築,コンサルティングを行うかたわら,雑誌への執筆,StrutsユーザML(http://www.freeml.com/info/struts-user@freeml.com)の管理,Ja-JakartaプロジェクトTurbine翻訳の取りまとめなど幅広く活動中。

(次回に続く)