TurbineやTorqueも実績が

表3●主なオープンソースのJava Webアプリケーション・フレームワーク
図3●Turbineの概要
TurbineはStrutsより歴史が古く機能も豊富だ。VelocityやTorqueもTurbineプロジェクトのもとで開発された。VelocityはHTMLテンプレートから動的にHTMLを生成する。Torqueは,DBMSのテーブル定義から,SQL文を含むDBアクセス・クラスを自動生成する
図4●Turbineを利用した店舗システム
あるスーパーマーケットは,Turbine,Velocity,Torqueを利用し,約200店舗,2万種の商品を扱うシステムを構築した。写真は,このシステムをベースに野村総合研究所が商品化した業務パッケージMastretail/SMの画面

 Strutsのほかにも,多くのオープンソースのWebアプリケーション・フレームワークがある(表3[拡大表示])。Strutsと競合するものばかりではなく,用途によって使い分けたり,組み合わせたりすることのできるものも多い。

 オープンソースのフレームワークとしてStrutsに次いで普及しているのがTurbineだ(図3[拡大表示])。TurbineはStrutsより歴史が古く,Turbine ProjectのもとではVelocityやTorqueが開発され,現在はTurbineから独立したプロジェクトとなっている。

 VelocityはHTMLテンプレートから動的にHTMLを生成するツールである。JSPの代替として使用することもできる。また,HTML以外の生成も可能だ。例えばユーザーごとに異なるメールの文面を生成するといった用途にも使える。

 Torqueは,DBMSのテーブル定義から,DBアクセス・クラスを自動生成するツールである。Javaのコードだけでなく,単純なアクセスに関しては,SQL文も自動生成する。

 これらTurbineやVelocity,Torqueを利用した事例もある。野村総研は小売店向け店舗システムをTurbineやVelocity,Torqueを使用して開発している(図4[拡大表示])。海外のコンビニエンス・ストアやスーパーマーケットのシステムを構築したほか,Mastretail/SMという名称で業務パッケージ化している。

 最初にコンビニエンス・ストアの店舗システムとして2001年に開発を開始。2003年に稼働したあるスーパーマーケットのシステムでは,約200店舗,2万種の商品を扱っている。

 Turbineについても,必要な機能を補足して,「Mastretail」という名称でアプリケーション基盤として使用している。権限管理や認証機能の追加や,デザインとロジックの分離のためにControllerにInput/Output層の追加を行った。

 Torqueについては「単一テーブルへのアクセスもしくは,きれいに参照が貼れるテーブル間のJOINであれば実システムでも使用できる」(野村総合研究所 流通システム企画室 副主任アプリケーションエンジニア 石田裕三氏)と評価しいている。ただし「JOINを重ねると性能が出なくなる。また,OUTER JOIN*5などはサポートしていないので,DBMS側でViewを作成する必要がある」(同)ことを注意点としてあげる。

 しかし,DBMS固有の機能に依存していないため,DBMSの種類に対する制限は緩い。Mastretail/SMはOracleのほか,MySQLでも動作する。Torqueは,Turbineだけでなく,Strutsと組み合わせての使用も可能だ。

(高橋 信頼=nob@nikkeibp.co.jp,IT Pro)