【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
業務用RIAの本命!? Flex+Java開発入門
連載インデックスへ
業務用RIAの本命!? Flex+Java開発入門(最終回)

動かして試すAdobe AIR+Javaアプリの“可能性”


クラスメソッド株式会社
福田 寅成
2008/11/12
本連載では、サーバサイドとして「Java」、リッチなクライアントサイドとしてJavaと相性の良い「Adobe Flex」(以降、Flex)を用いたRIA開発の基礎を解説します。EclipseベースのIDEである「Flex Builder」を使って、「Tomcat」で動くeラーニングのRIAが完成するまでお届けする予定です

 最終回である今回は、前回「1万件データ表示で知るFlex+Javaアプリの“速さ”」までのFlex+Javaに代わり、デスクトップアプリケーション実行環境であるAdobe AIR(以下、AIR)のクライアント・アプリケーションとJavaのサーバ・アプリケーションを連携させるアプリケーションの可能性に関してお伝えしていきたいと思います。

AIR+Java:新しいアプリケーションの形

- PR -

 WebブラウザのプラグインであるFlash Player上で動作するRIAの構築プラットフォームとしてFlexをこれまで紹介してきました。Flexベースのアプリケーションは大型業務アプリケーション案件で採用されたり、Webサイトの基盤技術として利用されたりとすでに「実用的な技術」として普及しています。

 それに加え、新たに登場したAIRにも注目が集まっています。これはFlexアプリケーションをデスクトップで実行可能にする技術で、いままでのFlexアプリケーション開発のノウハウをそのままデスクトップアプリケーション開発に流用できる技術です。

AIRはウィジェットが豊富

 以前はRSSリーダーを中心とした既存Webサービス連携のウィジェット型ミニアプリケーションなどでの利用が多かったAIRですが、ここにきて本格的な業務アプリケーションやBtoCアプリケーションでのAIRの利用が検討されるようになっています。前者のウィジェットでの利用はすでに本格化しており、毎日のように新しいウィジェットが公開されているのが現状です。

あらためて、AIRの5大特徴とは?

 FlexのノウハウをそのままAIRに持ってこられるように上記で表現しましたが、簡単にAIRの特徴とFlexとの違いをここで押さえておきましょう。AIRの特徴は以下の5つになります。

  1. OSを超えて動作が可能
  2. クライアント開発技術に既存技術を流用(Flex、Flash、HTMLJavaScript
  3. 多様なサーバ側開発技術に対応(JavaやPHPRuby.NETもOK!)
  4. 新しいマッシュアップの可能性
  5. 「デスクトップ」との連携

 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つの機能を追加していきます。

  1-2-3-4

 INDEX
業務用RIAの本命!? Flex+Java開発入門(最終回)
動かして試すAdobe AIR+Javaアプリの“可能性”
Page1
AIR+Java:新しいアプリケーションの形
FlexとAIRの違い:次世代デスクトップRIAの可能性
いままでのFlex+JavaアプリをAIR+Javaに移植!
  Page2
AIR独自の機能を1万件データ表示アプリに追加
サーバから取得したデータをローカルDBへ挿入
注意! 「SQL内のテーブル名を小文字に」
  Page3
データをXML形式ファイルとしてデスクトップへ保存
  Page4
AIRを採用する際の問題点とは?
可能性を秘めたAIR+Javaペア



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

ホワイトペーパーTechTargetジャパン

リッチクライアント & 帳票 フォーラム 新着記事

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

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?