本連載では、サーバサイドとして「Java」、リッチなクライアントサイドとしてJavaと相性の良い「Adobe Flex」(以降、Flex)を用いたRIA開発の基礎を解説します。EclipseベースのIDEである「Flex Builder」を使って、「Tomcat」で動くeラーニングのRIAが完成するまでお届けする予定です
編集部注:Flex Builderは、2010年3月の新版から「Flash Builder 4」に名称変更しています。期間限定の無料版をダウンロードして使えます
最終回である今回は、前回「1万件データ表示で知るFlex+Javaアプリの“速さ”」までのFlex+Javaに代わり、デスクトップアプリケーション実行環境であるAdobe AIR(以下、AIR)のクライアント・アプリケーションとJavaのサーバ・アプリケーションを連携させるアプリケーションの可能性に関してお伝えしていきたいと思います。
AIR+Java:新しいアプリケーションの形
WebブラウザのプラグインであるFlash Player上で動作するRIAの構築プラットフォームとしてFlexをこれまで紹介してきました。Flexベースのアプリケーションは大型業務アプリケーション案件で採用されたり、Webサイトの基盤技術として利用されたりとすでに「実用的な技術」として普及しています。
それに加え、新たに登場したAIRにも注目が集まっています。これはFlexアプリケーションをデスクトップで実行可能にする技術で、いままでのFlexアプリケーション開発のノウハウをそのままデスクトップアプリケーション開発に流用できる技術です。
AIRはウィジェットが豊富
以前はRSSリーダーを中心とした既存Webサービス連携のウィジェット型ミニアプリケーションなどでの利用が多かったAIRですが、ここにきて本格的な業務アプリケーションやBtoCアプリケーションでのAIRの利用が検討されるようになっています。前者のウィジェットでの利用はすでに本格化しており、毎日のように新しいウィジェットが公開されているのが現状です。
あらためて、AIRの5大特徴とは?
FlexのノウハウをそのままAIRに持ってこられるように上記で表現しましたが、簡単にAIRの特徴とFlexとの違いをここで押さえておきましょう。AIRの特徴は以下の5つになります。
- OSを超えて動作が可能
- クライアント開発技術に既存技術を流用(Flex、Flash、HTML、JavaScript)
- 多様なサーバ側開発技術に対応(JavaやPHP、Ruby、.NETもOK!)
- 新しいマッシュアップの可能性
- 「デスクトップ」との連携
AIRの詳細に関しては、以下の記事を参照してください。
AIRはFlexに薄い膜を張って、デスクトップでも動作するようにしたものととらえてもらってよいでしょう。その薄い膜にはアプリケーションをデスクトップにインストールできるという特徴以外に、5.のようなAIR独自の拡張機能追加含まれますが、アプリケーションのベースはFlexであり、これまでの記事の内容を含むFlex関連のノウハウはすべて流用可能です。
FlexとAIRの違い:次世代デスクトップRIAの可能性
上記のAIRの5大特徴のうち、特に5.がFlexとAIRで異なるポイントです。AIRはクライアントPCにインストールするタイプのアプリケーションなので、ローカルのファイルシステムとのやりとりが可能です。
また、「SQLite(えすきゅーらいと)」という軽量データベースとのやりとりができ、ローカルにデータベーステーブルという形で大量のデータを保存可能です。
そのほかの点に関しては先ほども述べたように、Flexのすべてのコンポーネントやノウハウを流用可能です。この点が非常に重要で、WebブラウザベースのFlexアプリケーションをAIRベースのデスクトップアプリケーションに移植することが容易です。
AIRの応用例としては以下が考えられます。
オフラインアプリケーションの開発
いままでのWebアプリケーションでは不可能に近かったオフラインでの動作が可能なアプリケーションの構築も容易です。オフライン動作だけではなく、オンラインとオフラインを切り替えて利用可能なハイブリッドなアプリケーションを構築することにより、いままでインターネントの常時利用が難しかった環境へRIAを提供可能です。
通信量軽減
あらかじめアプリケーションをPCにインストールし、日常業務はそのAIRアプリケーションとサーバとの間のデータのやりとりだけに制限し、クライアント/サーバ間のデータの流量をFlexアプリケーションの場合に比べ、さらに削減可能です。
クライアントキャッシュ
AIRアプリケーション内のSQLiteデータベースに、マスタデータなど業務中に頻繁に参照するようなデータをあらかじめキャッシュしておき、サーバからの動的なデータとクライアント内のマスタデータをAIRアプリケーション内でマッシュアップしパフォーマンスアップが可能です。
コンテンツプリロード
ファイルや動画を参照する必要があるアプリケーションの場合、アプリケーションが独自の判断でユーザーに代わってそれらのリソースをあらかじめクライアントにダウンロードしておき、ユーザーがそれらのコンテンツを参照したい場合に、ローカルのリソース参照並みに高速で表示するようにする。
高いパフォーマンスとセキュリティ性を両立
あらかじめドキュメントファイルや動画に参照/視聴制限をサーバで掛けておくことも技術的には可能です。会員制動画配信サービスや設計書など機密情報をやりとりするようなアプリケーションをAIR化することにより、高いパフォーマンスとセキュリティ性を両立した、新しいユーザーエクスペリエンスをもたらす次世代RIAを構築することも可能です。
いままでのFlex+JavaアプリをAIR+Javaに移植!
さて、ここからは具体的なAIR+Javaアプリケーションについて解説します。こちらからダウンロードできる本稿のサンプルアプリケーションは、いままでの連載で登場した「HelloWorld!アプリケーション」「クイズ/eラーニングアプリケーション」「1万件データ表示アプリケーション」をすべてAIR+Javaで動作するように修正してあります。
ルートタグに「Windowed」と加えるだけ
プロジェクトのベースはAIR+Javaアプリケーションの設定になっていますが、アプリケーションのソース的にはMXMLのルートタグが<Application>から<WindowedApplication>に代わっているだけで、ほかに変化はありません。
アプリケーションのインポートとデプロイ
上記ZIPファイルをダウンロードしたら、これまで同様にプロジェクトをFlex Builderにインポートします。Flex Builderの[ファイル]メニューから[インポート]→[Flexプロジェクト]を選択し、ZIPファイルをインポートします。前回のアプリケーション名「AtmarkitTenThousand」に「AIR」を付けた「AtmarkitTenThousandAIR」が、今回のアプリケーション名です。
次に、アプリケーションをTomcatにデプロイします。「AtmarkitTenThousandAIR」プロジェクトを右クリックし、[Tomcatプロジェクト]→[コンテキスト定義を更新]をクリックします。さらに、パスの設定を修正します。
jdbc.diconファイルの書き換え
jdbc.diconでのデータベースのパスを、以下のように書き換えてください。ファイルは「src/main/resourecs」にあり、その40行目に書き換える設定があります。
C:/Users/fukuda.tomonari/Documents/FLEXBU~3/AtmarkitTenThousandAIR/data/demo
上記はWindows Vistaでのパスの書き方なので、ほかのOSの環境の方は適宜書き換えてください。
Flexサーバのルートフォルダの書き換え
AtmarkitTenThousandAIRプロジェクトを右クリックし、Flexサーバの設定画面を開いて、ルートフォルダの場所を修正してください。
C:\Users\fukuda.tomonari\Documents\Flex Builder 3\AtmarkitTenThousandAIR
とりあえず移植したAIR+Javaアプリを2つ試してみよう
これでアプリケーションが動作するはずなので、Flex Builder上部の猫マークでTomcatを起動してから、[Flexナビゲータ]で「HelloS2BlazeDSAIR」を選択し、[実行]→[HelloS2BlazeDSAIRのデバッグ]をクリックし、「HelloWorld!アプリケーション」「クイズ/eラーニングアプリケーション」を実行してみてください。
次ページからは、AIR+Javaに移植したサンプルの1つである「1万件データ表示アプリケーション」に、AIRならではの2つの機能を追加していきます。
Copyright © ITmedia, Inc. All Rights Reserved.