日本IBMは、Strutsフレームワークの機能を拡張するソフトウエア「Extension for Struts」を開発し、10月21日より同社Webサイトで公開する。ソースコードはApacheライセンスでオープンソースとする。オープンソースのWebアプリケーション構築用フレームワークとして認知が高まりつつあるStrutsと、同社のアプリケーション・サーバーWebSphereを組み合わせた業務システム構築を支援する。

 Strutsフレームワークは、Webアプリケーションの画面周りの処理を記述する枠組みを提供する(「MVCモデルのビューとコントローラに相当」するものと説明される場合が多い)。このExtension for Strutsも、画面処理に関する業務上のニーズに対応する機能群である。

 このExtension for Strutsは、Strutsバージョン1.0.2とWebSphere V4.xを対象とする。他のアプリケーション・サーバーでの動作確認はしていないが、「WebSphere特有の機能はロギングAPIぐらい」(同社)としており、利用者の責任において他のアプリケーション・サーバーに適用できる可能性がある。

 業務システム構築の場面で必要となる次の6種類の機能を追加する。
(1)Pre/Post Invocation。StrutsのActionクラス(処理記述用クラス)を拡張し、事前処理、事後処理の機能を提供する。実行速度を計測するログ記録や、アプリケーション実行権限の確認などに利用する。
(2)Session Management。Servletのセッション管理を担当するHttpSessionオブジェクトで、一時点で同一のWebブラウザからのリクエストが一つだけ処理されるようにする。ロッキングの問題を回避する。
(3)Screen Order Control。画面の呼び出しが正しい順序で行われることを保証する。例えば、複数の画面から構成する画面遷移の途中の画面を直接呼び出したり、「戻る」ボタンにより想定外の画面を呼び出そうとすると、エラー・ページに移動するようにできる。「購入手続き」など、一連の画面遷移を強制したい場合に利用する。
(4)Log/Trace。StrutsはServletのログ機能を利用するが、さらに高機能なログ機能を利用できるようにする。WebSphere Application Serverのログ機能や、Log4Jなど任意のロギングAPIを選び呼び出す。
(5)Resource Wrapper。JNDIのLookupを減らすことでオーバヘッドを回避する。J2EEで扱うリソース(JMSキューやデータベース管理システムなど)を呼び出す場合を想定したもの。
(6)Character Type Check。Webページで入力した文字の妥当性検査機能。全角、半角の区別、文字、数字の区別など。

 Strutsバージョン1.1(現状はベータ版)への対応や、Strutsフレームワークの開発主体であるApache Jakartaプロジェクトへのコントリビュートについては「検討中」(同社)としている。

日本IBMのWebSphereサイト(Extension for Strutsを公開予定)