【レビュー】

Struts 2+SpringおなじみコンポーネントでJava流Rails? - Project Able

    後藤大地  [2006/08/22]

    Webアプリケーションシステムに関する技術はコンポーネント化やプラガブル化が進み、組み合わせてシステム構築に使うといった用途が増えている。逆にいえば、単体の技術だけではWebアプリケーションシステムを開発することは面倒で、否応なく組み合わせなければならない。

    これを解決するソリューションとして「フルスタックプロダクト」とか「フルスタックアプリケーション」と呼ばれるものがある。これは既存の技術コンポーネントを組み合わせ、単体でシステム構築のすべてをカバーできる成果物を提供するというものだ。今一番有名なのはRuby on Rails(以降、RoR)だろう。

    Java WebアプリケーションシステムにおけるフルスタックプロダクトにはRIFE、Grails、AppFuseなどがあるが、今月、ここに新顔が登場した。Struts 2などを採用したプロダクトで今後の展開が興味深い。ここでは新進気鋭のプロジェクト、Project Ableを紹介する。

    Project Ableとは

    Apache Struts 2(Struts Action Frameworkとも呼ばれる。オリジナルコードはWebWork 2.2をマージしたもの)の主要メンテナのひとりであるPatrick Lightbody氏は14日(米国時間)、自身のブログにおいて「Project Able」をあきらかにした。

    「Project Able」はJavaベースのWebフルスタックプロダクト。Struts 2(WebWork 2)、Spring、iBatisなどを主要コンポーネントとしたフルスタックプロダクトで、類似プロジェクトにはRIFE、Trails、Grails、AppFuse、SourceLabs SASH Stack for Java、JAG、Jitterbitなどがある。

    同氏はProject Ableをはじめるきっかけとして、RoRの普及と、最近自身が実施した開発経験をあげている。RoRから学ぶところがあるということ、最近実施した開発から多くの共通点を見出し、フルスタック化の可能性を感じたということである。

    Ableを構成するもの

    Ableの主要コンポーネントやツールは次のとおり。実質的にWebWorks 2、Spring、iBatisが大枠の性格を決めているといえる。

    • WebWorks 2(Struts 2)- Webアプリケーションフレームワーク(MVC)
    • SiteMesh - Webページデコレーション
    • Spring - IoCコンテナ
    • iBatis - O/Rマッパフレームワーク
    • TestNG - ユニットテストツール
    • EasyMock - モックオブジェクトライブラリ
    • Maven - ビルドツール
    • Jetty - 高速Webアプリケーションサーバ(開発時用)
    • HypersonicSQL - インメモリデータベース(開発時用)

    開発においては扱いやすいURIの生成メカニズム、制約やアノテーションベースのアクション設定、一般的なWeb技術のサポート、DAOラッパの提供、TestNGを使ってユニットテスなど、主要な方法論はサポートされている。

    Hello Able!

    Project Ableはまだまとまった成果物が提供されていない。Subversionレポジトリから成果物にアクセスできるようにはなっており、Mavenを使ってビルドやインストールはできる。

    Project Ableの成果物を取得して、Eclipse IDE用のプロジェクトを作成する例を次に紹介する。まず、ソースコードの取得やライブラリの作成にSubversion、Maven 2が必要になるので、システムにインストールしておく必要がある。

    プロンプト3.1のようにsvn(1)コマンドを使ってAbleのソースコードを取得したら、プロンプト3.2のようにmvn(1)コマンドを使って関連するライブラリを取得する。次にプロンプト3.3のようにEclipse IDE用のプロジェクトを作成する。ディレクトリがすでにプロジェクトディレクトリに変わっているため、Eclipse IDEでableディレクトリを指定すると図3.4のような開発画面が表示されるようになる。

    プロンプト3.1 Subversion経由でソースコードを取得

    % svn co https://svn.opensymphony.com/svn/sandbox/able
    ...
    A able/src/main/webapp/user
    A able/src/main/webapp/user/profile.jsp
    A able/src/main/webapp/user/settings.jsp
    A able/quickstart.xml
    A able/pom.xml
    A able/setup-idea.txt
    U able
    %

    プロンプト3.2 関連するライブラリなどを取得

    % cd able
    % mvn install
    [INFO] Scanning for projects...
    [INFO] ------------------------------------------------------------------------- ---
    ...
    %

    プロンプト3.3 Eclipse IDE用のプロジェクトを生成

    % mvn eclipse:eclipse
    [INFO] Scanning for projects...
    [INFO] Searching repository for plugin with prefix: 'eclipse'.
    [INFO] org.apache.maven.plugins: checking for updates from central
    [INFO] org.codehaus.mojo: checking for updates from central
    ...
    %

    図3.4 Eclipse IDE – Projet Able開発画面

    ただし、執筆段階ではEclipse IDEには充分に最適化されていない状況だ。Patrick Lightbody氏は現在、IntelliJ IDEA向けにプロジェクトを開発しており、「mvn idea:idea」にてIDEA用のプロジェクトを作成、生成されるable.iprファイルをIDEAで開くとプロジェクトが展開されるようになる。Run Webappを選択することで試験用のアプリケーションサーバが動作するほか、TestNGをインストールしていけばServicesを選択することで試験も動作する。

    Ableのなぜ?

    Project Ableの発表に対しては、AppFuseと何が違うのか、フルスタックプロダクトを目指すのであればなぜ既存のRIFEを採用しなかったのか、O/RマッパにHibernateを採用せずになぜiBatisを採用したのかという疑問もあげられている。

    RIFEやTrailsはAbleと近い位置にあり、とくにRIFE/JumpstartはAbleとかなりよく似ている。Ableは単一のフルスタックプロダクトだが、AppFuseはコレクションスタックという違いがある。フルスタックプロダクトとしてはこれ以外にもより動的に開発を実施できるGrailsをあげることもできる。

    Patrick Lightbody氏はそうした疑問に対しては自身のブログに記載した内容をまず読んでほしいとしたあとで、それぞれのプロダクトにはそれぞれの特徴があり、ユーザはそれぞれ気に入ったものを採用すればよいと述べている。

    Project Ableははじまったばかりであり、フルスタックプロダクトとしての評価をするにはまだ時期が早いといえる。現段階でいえることは、採用しているコンポーネントがStruts 2(WebWork 2)、Spring、iBatisなどであるため、これらコンポーネントになれているデベロッパにとっては、ほかのフルスタックプロダクトよりも馴染みやすいということだろう。

    Project Ableの今後

    フルスタックプロダクトは、採用する主要コンポーネントで方向性が決まる傾向にある。RoRやGrailsのようにビルドコマンドまで作成する場合と違い、コンポーネントを組み合わせるフレームワークを提供するタイプのフルスタックプロダクトはなおのこと癖がでる。

    Project Ableの場合、WebWorks 2、Spring、iBatisが採用されている。これはどれも癖が強い。とくにWebWorks 2やiBatisは好き嫌いのわかれるところかもしれない。たとえばSourceLabs SASH Stack for Javaで採用されているコンポーネントはStruts、Spring、Hibernateだ。こちらはより最大公約数的で、多くのデベロッパにはとっつきやすいだろう。

    Project Ableは最初のリリースでどのような方向性にまとまってくるか、今後の展開に期待だ。

    関連記事

    新着記事

    特設サイトの情報

      求人情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      転職ノウハウ

      あなたの仕事適性診断

      4つの診断で、自分の適性を見つめなおそう!

      Heroes File ~挑戦者たち~

      働くこと・挑戦し続けることへの思いを綴ったインタビュー

      はじめての転職診断

      あなたにピッタリのアドバイスを読むことができます。

      転職Q&A

      転職に必要な情報が収集できます

      スカウト転職する

      企業からアプローチのメッセージが届きます。

      マイナビニュースマガジン