はじめに
RIA(Rich Internet Application)という言葉が登場して既に数年が経過しました。「よりリッチなGUIによるWebアプリケーションの開発」という目標を掲げ、さまざまな陣営が新しい技術を世に送り出しました。Javaの世界でも、「JavaFX」などの新技術が生まれたのは記憶に新しいところです。
が、こうした新しい技術というのは、一朝一夕に広まるものではありません。JavaFXにしろSilverlightにしろAdobe AIRにしろ、思ったよりも苦戦しているように見えるのは、やはり「新技術が浸透するにはそれなりの時間が必要だ」ということなのでしょう。ならば発想を転換し、「既に普及している旧(?)技術を使って、最も新しいRIAという技術を構築」したら意外に誰もがすんなりと受け入れるのではないでしょうか。
今回取り上げる「Apache Pivot」(以降、Pivot)は、Javaプログラマなら誰もが馴染みのある「アプレット」を使ったRIA構築のフレームワークです。アプレットは、確かにSwingなどのGUIを利用でき、Webとしてはかなり高度な表現が可能ですが、わざわざフレームワークとして開発する意味はあるのでしょうか。この古くて新しい、新しくて古い「アプレットベースのRIAフレームワーク」というものについて紹介していきましょう。
対象読者
- Javaで手ごろなフレームワークを探している技術者。
- 最近のフレームワークをごくざっと理解しておきたい方。
- Web開発の手法がどうも気に入らない、と常々考えているJavaプログラマ。
Apache Pivotとは?
Apache Pivotは、Apache Software Foundationにより開発が勧められているJavaのフレームワークです。これは今年の1月にトップレベルに格上げされ、その重要性が再認識されつつあります。しかし、先述のとおり「アプレット」の技術を利用しているせいか、どうも今一つJavaプログラマへのウケはよくないように感じます。以前ならまだしも、今は十分に実用できる技術であり、RIAの開発という点からすればもっと注目されて良いものでしょう。
ただし、そのままアプレットを使って開発するだけでは、ユーザーに受け入れられるか微妙です。Swingは標準で比較的多くのGUIを提供しますが、昨今活用されているAjax利用のクールなGUI群と比べれば貧弱であると言えます。またすべて一からJavaでコーディングするため、Webアプリーションなどと比較すると生産性が劣る感があるのは否めません(だからこそ、わざわざJavaFXといった新技術をRIAの分野に投入したわけですが)。
Pivotは、アプレットをベースとしながらも、こうした点に対し新たな解決の途を示します。Pivotは、Java+XMLのスタイルでプログラムを作成します。「WTK」と呼ばれるGUIライブラリは、豊富なインターフェイスを提供してくれますし、またXMLを使い表示を定義することで、より柔軟でスピーディな画面表示の構築や修正を可能にします。またアプレットである利点を活かし、構築したプログラムはWebページに埋め込むだけでなくアプリケーションとして実行することも可能です。
既に使われているRIA技術「JavaFX」と比較してみると、PivotはJavaとXMLですべてを作成する点が異なります。JavaFXはそれ自体が独自のスクリプト言語ですのでアプローチはかなり異なります。Pivotは、新技術を構築するのではなく、あくまでJavaベースでの利用を考えて作られています。
Pivotを使ってみる
Pivotは、ApacheのWebサイトで公開されています。「Download」というリンクをクリックすると、ダウンロードページに移動します。ここから最新版がダウンロードできます。本稿では最新版の1.4(2010年4月現在)を使って説明を行います。
配布形式は、zipまたはtar.gzによる圧縮ファイルとなっています。ダウンロードしたファイルを展開すると、「apache-pivot-1.4」といったフォルダが作成され、その中にPivotのファイル類が保存されます。用意されるのは、以下の3つのフォルダと、READMEなどのドキュメント類です。
フォルダ | 説明 |
「doc」フォルダ | ドキュメント。JavadocによるPivotのAPIリファレンスがまとめられています。 |
「lib」フォルダ | ライブラリファイル。この中に、Pivotの本体がまとめられています。Pivotを利用する場合は、このフォルダをコピーするなりして利用します。 |
「webapps」フォルダ | サンプルのWebアプリケーション。チュートリアルとデモのwarファイルが入っています。Tomcatなどのサーブレットコンテナで動かすことができます。 |
Pivotの本体は「lib」フォルダです。このフォルダ内にある全JarファイルをCLASSPATHに追加してコンパイル・実行するだけで利用できます。もちろん開発環境などでも、これらをライブラリとして追加するだけで利用できるようになります。