結局、RIAはどれを使うべきなのか?
連載インデックスへ
検証特集:結局、RIAはどれを使うべきなのか?(2)

“不況”時代を切り拓く、7つのRIA技術の基礎知識


クラスメソッド株式会社
福田 寅成
2009/2/4


もう「遅い」とはいわせない Javaの進化系、JavaFX



- PR -

 サン・マイクロシステムズから登場したRIA技術JavaFXは、今回紹介する技術たちの中では最も最近出てきました。JavaFXは従来のJavaアプレットのUI部分の構築を独自のスクリプト言語で構築できるように拡張したフレームワークです。

 JavaFXでは、既存のJavaアプレットの構築で用いてきた基盤クラスであるSwing(昔からあるので有名ですね)の機能はすべて利用できます。その基盤クラスに、UI寄りの機能をスクリプト言語「JavaFX Script」で記述できるように拡張したものが、JavaFXになります。JavaFX=Java+JavaFX Scriptといってもいいかもしれません。

 ここで登場したJavaは、ここ数年間比較的表舞台から姿を消していたJavaアプレットの基盤技術のことです。近年Javaは、J2EEJava EE)アプリケーションを構築や携帯向けアプリケーション開発で多く用いていて、デスクトップアプリケーションやJavaアプレット(Webブラウザアプリケーション)での利用は、あまり多くなかったと筆者は感じています。それがこのJavaFXとJava自体の高速化により、古くからある「Javaアプレットは重い」というイメージがいま払拭(ふっしょく)されようとしています。

「Javaは遅い」から「Javaは楽しい」に至る歴史
小山博史のJavaを楽しむ(12) 
最新のJava実行環境は起動が速いドラッガブルアプレットなど楽しい機能が満載です。ここまで至るには、いろいろな出来事がありました……
Java Solution」フォーラム 2008/12/15

 JavaFXのデスクトップ版は同じくJavaFXです。前述のAIRや後述するWPF同様、アプリケーションの中心部分の開発スタイルは同じで、アプリケーション全体を制御する基盤クラスがWebブラウザ向けかデスクトップ向けかで違うだけという認識を最初に持っておくとよいと思います(もちろん、それぞれWebブラウザ向け技術とデスクトップ向け技術で細かい仕様の違いはありますが)。

 JavaFXに関して、2008年は大きなイベントがありました。

  • 2008年10月:Java SE 6 Update 10リリース(大規模機能拡張版)
    • Java Quick Starter:アプリケーションの起動の高速化
    • 次世代Javaプラグイン:Webブラウザ上のアプレットをドラッグ&ドロップでデスクトップアプリケーション化する機能
    • Nimbus:ベクターグラフィックスコンポーネント
  • 2008年11月:開発ツールNetBeans 6.5リリース
  • 2008年12月:JavaFX 1.0リリース

 JavaFXの登場が非常に大きなイベントではありますが、業務RIA構築という点で見るとその前のJava SE Update 10のリリースが非常に大きいと思います。いままで起動パフォーマンスの面で問題の多かった部分に大きくメスが入ったのが、2008年秋。これ以前のJavaアプレットとこれ以後のJavaアプレットはまったく別物といっていいかもしれません。それだけサンプルアプリケーションを触ったときの印象が違います。

 もちろんJavaFXにより従来のJavaアプレットやJavaアプリケーションが苦手としていた部分が保管されている印象があり、Javaを用いたRIAのUI開発も可能性が見えてきました。

 JavaFXには主に以下のような特徴があります。

  • JavaFX Scriptの習得は比較的容易
  • 開発環境はおなじみのNetBeansやEclipse
  • IllustratorやPhotoshopで作成した画面パーツをJavaFXコンポーネントに変換してくれるツール「JavaFX 1.0 Production Suite
  • モバイルJavaFX開発向けのエミュレータが開発ツールに搭載されている
  • ランタイムはもちろんMac OS XやLinuxでも利用可能

 JavaFX Scriptは、前述のFlexで使うMXMLや後述するSilverlightXAMLのようなタグベース言語ではないですが、JSONのような書き方のスクリプト言語です。開発にはおなじみのツールが使えるので、Java開発者であれば、新たにツールの使い方を習得する必要はありません(NetBeansではJavaFX用のエディションが登場していますし、EclipseではJavaFXプラグインが用意されています)。Silverlightでの開発同様デザイナの使い慣れたアドビシステムズ製ツールからパーツを取り込むことができるのも大きな利点です。

 もちろん、ここでもムービーのサポートや各種エフェクトに関しての特徴は省いています(JavaFXでも前述のFlexや後述するSilverlight同様にさまざまなUI構築機能が搭載されています)。

図4 NetBeansでのJavaFX開発
図4 NetBeansでのJavaFX開発(画像をクリックすると、拡大します)

 最後に開発環境構築手順に関して。まずはJREを最新のもの(Java SE 6 Update 10以上)に更新して、最新のNetBeansをインストールするといいでしょう。ダウンロードに関しては、下記を参照してください。

 日本語サイトから日本語版NetBeansを落として、JavaFXプラグインを導入するのがいいでしょう。

最初に見るべきJavaFXリンク集

 2009年2月現在JavaFXの情報はほとんど「JavaFX | Rich Internet Applications Development | RIAs Java FX」にあります。

  • JavaFX Example Code and Project Gallery
    (JavaFXのサンプル集。非業務アプリケーション向けサンプルが多いが、何ができるかをまずしっかり確認しておこう。このサイトにあるサンプルは、デスクトップにドラッグ&ドロップで引っ張り出すことが可能)
  • JDKに付いてくるサンプル「SwingSet3」
    (Windowsの場合は、「C:\Program Files\Java\jdk1.6.0_11\demo\jfc\SwingSet3\readme.html」にある。Swingの基本機能を最新のJRE環境で確認しておこう。このデモの見た目(Look And Feel)は、デフォルトでJava SE 6 Update 10で導入されたNimbusを利用していて、美麗で高速なサンプルを体験可能。もちろん、この技術はアプレットでも利用可能。一緒にデモフォルダにあるSwingSet2やJava2D demo、MoleculeViewerなども見ておくとよい)
図5 Nimbus LAFによるSwingコンポーネントデモ
図5 Nimbus LAFによるSwingコンポーネントデモ(画像をクリックすると、拡大します)

Java/Ajaxベースでリアルタイムに強い、Nexaweb



 Nexawebは日本ネクサウェブが提供しているXMLベースのRIA開発/実行環境です。クライアントはXMLベースのXAL(eXtensible Application Language)やSVG(Scalable Vector Graphics)というオープンな技術をアーキテクチャの基盤にしています。クライアントの実行環境は「Nevaweb Platform」と呼ばれ、Javaアプレット/Javaデスクトップアプリケーション、もしくはAjax+XHTMLでの実行が選択できます。

プラグインレスの大規模開発向けリッチクライアント
リッチクライアントベンダ・インタビュー(8) Java/J2EE環境であればプラグインをインストールすることなく実現できるリッチクライアント技術「Nwxaweb」とは?
リッチクライアント & 帳票」フォーラム 2006/1/13

 また、サーバとは「Nexaweb IMB(Internet Messaging Bus)」という仕組みによるリアルタイム性が高い双方向非同期通信を実現します。リアルタイムに強いため、基幹業務系のシステムに強く、国内の金融機関で導入・稼働していることが多いようです。

 開発には、EclipseベースでUIをドラッグ&ドロップでデザインできる「Nexaweb Studio」が用意されています。最近では、VBやCで構築したシステムからの変換ツール「Nexaweb Advance」を提供したり、AjaxライブラリDojo Toolkitを企業用途向けに拡張するオープンソース・プロジェクト「dojo.E」にかかわっていてその機能をNexawebに取り入れています(参考:VBやCのコード自動変換とDojo拡張プロジェクトで飛躍を狙う)。

 また、日立システムからは、StrutsとNexawebをつなぐフレームワーク「Extended Struts for Nexaweb」が提供されるなどサードパーティの参加もあるRIA技術です。

最初に見るべきNexawebリンク集

  • Nexaweb 導入事例
  • Nexaweb Videos(Nexawebの始め方や技術情報が載っている動画サイト。ほかのまとまった技術情報としてはナレッジオンデマンドから出ている書籍「Nexawebアプリケーション開発ガイド」がお勧め)
  • Nexaweb デモ
1-2-3-4

 INDEX
検証特集:結局、RIAはどれを使うべきなのか?(2)
“不況”時代を切り拓く、7つのRIA技術の基礎知識
  Page1
もう1度中立的な立場でRIA技術を比べてみよう
もはや説明不要の新しくて古い技術、Ajax
日本発でモバイルや帳票にも強い、Biz/Browser
  Page2
3Dを使った高度なUIも実現できる業務系の老舗、Curl
Flashベースでデザイナの実績が多い、Flex/AIR
Page3
もう「遅い」とはいわせない Javaの進化系、JavaFX
Java/Ajaxベースでリアルタイムに強い、Nexaweb
  Page4
.NETの資産をマルチOSで生かせる、Silverlight
そのほか、有用なRIA技術は多数
RIA技術を学ぶ際に最初に注意しておきたいこと
サンプルでFlex、Silverlight、JavaFXを徹底比較!



リッチクライアント&帳票 全記事一覧へ



HTML5 + UX フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日 月間
ソリューションFLASH