データ中心型、簡単リッチクライアントJDNC:安藤幸央のランダウン(27)
「Java FAQ(What's New)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします。(編集局)
JDNC(JDesktop Network Components)とは?
JDNC(JDesktop Network Components)はデータを中心とした手法でリッチクライアントを開発する技術です。Swingを拡張した各種の高機能コンポーネントが用意されています。JDNCの高機能コンポーネントの機能を利用したリッチクライアントを、XMLマークアップファイルの記述で平易に開発することができます。
JDNCの利用で、J2SEとSwingの技術をベースにJ2EE(JDBC、Webサービス、etc.)を利用したWebアプリケーション環境を構築することができます。JNDCの特長を個条書きにすると以下のように整理できます。
- クライアントアプリケーション向けの高機能な部品が利用できる
- 取得したデータの並べ替え、ハイライト処理、フィルタリングなどがクライアント側で可能(高速で快適なレスポンスを提供)
- XML表記されたインターフェイス情報からGUIコンポーネントを形成
JDNCはもともとJSF(JavaServer Faces)の一部として実装される予定のものでした。現在は、JSFからリッチクライアントの部分が分離されオープンソースのJDNCプロジェクトとして開発が進んでいます。ライセンス形式はLGPL(Lesser General Public License)に基づいており、java.net(http://java.net/)でソースコードが公開されています(現在の最新版はVer.0.6)。
JDNCの一番の活躍の場としては、JSFベースで開発された既存のサーバサイドWebアプリケーションをより高速に快適に利用するためにリッチクライアント化することが考えられます。サーバサイドのビジネスロジックは既存のものを再活用し、クライアントサイドではJDNCを利用したソーティングやハイライト処理などを行うことによって、より理想的なリッチクライアント環境が構築できるのです。
JDNCを利用したフォームベースのアプリケーション例(FromDemo)。JDNCコンポーネントJNTableとJNFormを利用したデモアプリケーション。各フォームは入力データ形式に応じて自動生成され、フォームに値を入力するごとにフォーカスが自動的に移動する
JDNCを利用したフォームベースのアプリケーション例(Tree Table Demo)。JNTreeTableコンポーネントを利用したデモアプリケーション。カラムごとのハイライト表示、ソーティングや、アイコン表示によるツリーテーブルを実現している
JDNCの特徴は、その発祥からも分かるようにJSFを機能強化したリッチクライアント版としてイメージすることができます(実際、現在JDNC開発の中心となっているのは以前のJSF Spec LeadであったAmy Flower氏です)。JDNCベースのアプリケーションは、以下の形式で動作します。
- スタンドアローンの単独アプリケーション
- Java Web Startで起動されるJavaアプリケーション
- Java Pluginベースで動作するJavaアプレット
主に使われるのはJava Web Start形式で動作するJDNCリッチクライアントでしょう。
JDNCのこれから
JDNCの機能の一部は、将来のJ2SE/J2EEに組み込まれることが予想されます。さらに既存のOSネイティブなアプリケーションとJavaデスクトップ・ソフトウェアを連携させるためのコンポーネントとしてJDesktop Integration Components(JDIC)もあり、JDICもJDNCとともに進化していくことでしょう。
JNDCの現時点のスペック
- JDNCの主要コンポーネント
- Swingを拡張したJDNC用GUI部品群
- データベースに接続するコンポーネント
- Webサービスを利用するコンポーネント
- 値のチェックや表示をつかさどるコンポーネント
- 現在利用できる主なJDNC API
- JNTable:スクロール可能なデータタブを持ったテーブル
- JNTreeTable:スクロール可能な階層構造を持ったツリーテーブル
- JNForm:任意データの表示・編集が可能なフォーム部品
- JNEditor:リッチテキストを編集可能なエディタ部品
- JNTree:スクロール可能な階層構造を表示可能な部品
JDNCのユーザーインターフェイス記述用のXMLは本来手書きで作成するものではなく、専用のツールで自動生成されることを想定しています。つまりはJava Studio Creatorのような便利に使えるツールの充実が期待されます。JDNCの開発・バージョンアップは着実に進行しており、2005年9月には正式版1.0のリリースが予定されています(残念ながら現在のVersion 0.6では実サービスで用いるにはまだまだ実装が追いついていない個所がいくつかあります)。
JDNC 1.0ロードマップには周辺の開発ツールのことも含め、便利な各種コンポーネントの項目が目白押しです。データベースから取得した情報のキャッシングや、接続・非接続の状態を保持するコンポーネントの登場で、より複雑な条件下で利用できるリッチクライアントの構築が可能となります(ネットワークがつながるところでも、つながらないところでも利用できる、常時接続型ではないリッチクライアントは、1つの理想型です)。
JDNCの今後の開発予定
- 2005年 2月末 Version 0.7(データベースとの接続関連の実装)
- 2005年 5月末 Version 0.8(JDNC 専用開発ツールの登場)
- 2005年 8月末 Version 0.9(ほぼ完成。APIの整理とバグフィックス関連)
- 2005年 9月末 Version 1.0(正式版のリリース)
JDNCはJavaのリッチクライアントという位置付けだけではなく、リッチクライアントの開発そのものを簡素に行えることを目指したものです。
さまざまなリッチクライアント技術が登場し、使われつつある現在、よりJSFと親和性の高いリッチクライアント技術としてJDNCが台頭してくるのも間近ではないでしょうか?
参照一覧
- JDNC (JDesktop Network Components) 公式サイト
https://jdnc.dev.java.net/ - JDNC概要
https://jdnc.dev.java.net/documentation/overview.html - JDNC 1.0ロードマップ
https://jdnc.dev.java.net/documentation/roadmap.html - Amy Fowler氏によるJDNC解説
http://www.javadesktop.org/articles/JDNC/index.html
http://www.javadesktop.org/articles/JDNC2/index.html - JDNC XMLマークアップ・チュートリアル
http://javadesktop.org/jdnc/0_5/docs/tutorial/index.html - JDNC Schema解説
http://javadesktop.org/jdnc/0_5/docs/schema/index.html
プロフィール
安藤幸央(あんどう ゆきお)
1970年北海道生まれ。現在、株式会社エクサ マルチメディアソリューションセンター所属。フォトリアリスティック3次元コンピュータグラフィックス、リアルタイムグラフィックスやネットワークを利用した各種開発業務に携わる。コンピュータ自動彩色システムや3次元イメージ検索システム大規模データ可視化システム、リアルタイムCG投影システム、建築業界、エンターテインメント向け3次元 CG ソフトの開発、インターネットベースのコンピュータグラフィックスシステムなどを手掛ける。また、Java、Web3D、OpenGL、3DCG の情報源となるWebページをまとめている。
ホームページ:
http://www.gimlay.org/~andoh/java/
所属団体:
OpenGL_Japan (Member)、SIGGRAPH TOKYO (Vice Chairman)
主な著書
「VRML 60分ガイド」(監訳、ソフトバンク)
「これがJava だ! インターネットの新たな主役」(共著、日本経済新聞社)
「The Java3D API仕様」(監修、アスキー)
Copyright © ITmedia, Inc. All Rights Reserved.