Javaを使ったWebアプリケーションの開発スタイルが大きく変わる。JSF(JavaServer Faces)と呼ぶ新仕様によって,GUI上でコンポーネント(ソフト部品)をマウスで貼り付けるビジュアル開発が可能になる。米Microsoftの.NET Frameworkに比べ劣っていた部分がようやく改善される形だ。

図1●ドラッグ&ドロップでJava Webアプリケーションを開発
米Sun Microsystemsが開発中の,JSFを利用した開発ツールProject Rave。ボタンやグリッドなどのUI(User Interface)コンポーネントをドラッグ&ドロップで貼り付けてJSPページを作成できる。DBアクセス・コンポーネントも備えており,簡単なDBアクセス・アプリケーションであればノン・プログラミングで開発できる。Microsoft Visual Studio.NETと似た操作性を持ち,同様な手順でWebアプリケーションを作成できる
 米Sun Microsystemsは,2003年6月のイベントJavaOne2003でJSFのデモを披露した。JSFはJSP(JavaServer Pages)上で,複雑なユーザー・インタフェースを容易に開発するための標準APIである。現在標準化作業を進めており,早ければ2003年末から2004年初頭にも最終仕様が確定する見込みである。

 JSFは,Javaを利用したWebアプリケーションの開発スタイルとユーザビリティを一変させる可能性を備えている。ボタンやテキスト・ボックスなどのコンポーネントをドラッグ&ドロップでページに貼り付け,マウス・クリックなどのイベントに対応した処理を記述する,というVisual Basicのような開発スタイルを可能にする。

 後述するように,これまでもビジュアル開発を実現したツールはあり,開発生産性などの面で効果があった。ただし,各社が独自に実装したものだった。JSFにより,Javaのビジュアル開発の標準が定まる。

Sun,IBMなどからツール

 Sunは,JSFを利用した開発ツール「Project Rave」を開発し,JavaOne2003でデモを行った(図1[拡大表示])。ボタンやリスト・ボックスといった単純なユーザー・インタフェース(UI)・コンポーネントだけでなく,データグリッドなどの複雑なコンポーネントも備えている。データベースのテーブルを選択し,表示したいカラムを選び,検索条件を指定する――といったデータベースに対するアクセスも,簡単なものならノン・プログラミングで実行できる。Project Raveは,2003年秋にベータ版が登場する見込み。Sunだけでなく,IBM,Oracle,Borlandといった米国企業もJSFを利用したツールを開発中だ。

 JSFは,今後のJava開発ツールの基本機能となりそうだ。「ビジュアル開発を必要とするのは小規模ユーザー。WebSphere Studioの最も安価なバージョンから,JSF対応機能を組み込む」(日本IBM ソフトウェア事業部 WebSphere事業推進 営業推進部長 伊藤かつら氏)。ツールの正式な出荷時期は未定だが,「JSFが標準化され次第出荷したい。2003年末か2004年初頭になる」(同氏)と見込む。

図2●JSFの動作
(1)<h:input_number…>などUIコンポーネントを示すJSFのカスタム・タグは,JSFフレームワークによってWebページに変換される。(2)Webブラウザで入力,送信が行われると,(3)リクエストはUIコンポーネントに対するイベントとして解釈され,イベントに関連付けれられた業務ロジック・クラスが実行される。UIの状態などを保持するクラスが更新され,(4)画面遷移が行われ,JSPファイルが呼び出される。詳しくはSunのチュートリアル(http://java.sun.com/j2ee/
javaserverfaces/docs/tutorial.html
)などを参照。JSFは策定中であり,仕様が変更される可能性もある

ビジュアル開発で高い生産性

 「ビジュアル開発で生産性は劇的に上がった。テストを含めて1カ月かかっていた画面が1日でできた」(PFU 第一システム統括部CRMソリューション部プロジェクト課長 潮地良明氏)というように,ビジュアル開発ツールはJavaアプリケーションの生産性を高める可能性を秘めている。

 米Unifyは,JSFに準拠していない独自方式だが,ビジュアル開発ツールの「NXJ」を2002年10月に出荷済み。PFUはNXJを採用し,化粧品メーカーの会員管理システムを構築した。すでに60店舗で稼働している。PFUはNXJの生産性の高さを評価し,今年の新人研修にもNXJを採用した。業務Webシステムでも,ビジュアル開発のニーズと効果は高いと言えそうだ。

タグをコンポーネントに変換

 JSFのUIコンポーネントは,JSPファイル中に<h:input_number…>といったJSFカスタム・タグとして記述する(図2[拡大表示])。カスタム・タグ中には,コンポーネントの状態などの値を保持するJavaBean(モデル)名を記述したり,イベント名を記述したりする。

 カスタム・タグはHTMLとJavaScriptに変換され,Webブラウザに送られる。

 Webブラウザでユーザーによるデータ入力が行われ,サーバーにリクエストが送信されると,モデルの値が更新され,イベントに関連付けられたアクションが実行される。アクションとしては業務ロジック・クラスのメソッドを実行したり,画面遷移を実行したりする。画面遷移が行われると,次画面のJSPファイルが呼び出される。

ユーザビリティも高める

図3●操作性を向上させる高機能なUIコンポーネント
IBMが開発した,UIコンポーネント。HTMLとJavaScriptで,Webブラウザだけで高い操作性を持つ画面を容易に作成できる。実行時に,DataGridコンポーネント上でのデータの変更,再計算,ソートをサーバーにアクセスせずに実行可能。Internet Explorerだけでなく,Netscape NavigatorやMozillaでも使用できるという。画面は開発中のもの

 UIコンポーネントは,開発の生産性を上げるだけでない。将来的には,高機能なコンポーネントが流通するようになり,それを使うことで操作性の高い画面が作れるという利点もある。

 先行する.NET Frameworkでは,表計算ソフトの機能を備えたSPREAD for .NET Web Forms(グレープシティが販売)など,高機能なコンポーネントが既に多数提供されている。JSFの策定をきっかけに,Javaでも高機能なコンポーネントが提供されるようになりそうだ。

 IBMは,同社で開発中のJSF対応ツールRADtool for J2EE on WebSphere Studioで扱えるデータグリッドなどのコンポーネントを開発中だ(図3[拡大表示])。コンポーネントをドラッグ&ドロップで貼り付ける形で開発できる。

 HTMLとJavaScriptだけで構成されるデータグリッドはデータの変更,再計算,ソートをクライアント側だけで処理できる。サーバーにアクセスし画面の再描画まで待たされることはない。同コンポーネントはIE(Internet Explorer)だけでなく,Netscape NavigatorやMozillaでも利用でき,Linuxでも使えるという。出荷は2004年中の予定だ。ただし,JSFの仕様が未確定なことなどもあり,これらのコンポーネントがJSFに準拠するかどうかは未定としている。

 JSFは,既存のWebアプリケーション・フレームワークと組み合わせて使用することになる。JSF標準化の取りまとめは,Strutsの開発者でもあるSunのCraig McClanahan氏が行っている。同氏は「仕様が確定すれば,StrutsをJSFに対応させる」と言う。

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