Adobe AIRのアーキテクチャ選択について

| コメント(0) | トラックバック(0)
現在、多くのWebアプリケーションは、Ajaxと呼んでいる、一連の高度なJavaScriptの応用技術によって、リッチなユーザインタフェースを持っています。クライアント側でのプログラミングを行わず、プレーンなHTMLだけで構成されているものはほとんどなくなって来ています。そんな中、ここ最近は、さらに進化した、クライアントサイドのデスクトップアプリケーションとして動作するRIA技術が、注目されています。

RIA技術の代表的なものとしては、以下の3つが挙げられます。

  • Adobe AIR
  • JavaFX
  • Microsoft Silverlight
この中で、Adobe AIRについて、ちょっと調べてみました。とりあえず、AIRを選定した理由にはあまり深い意味はなく、これまでのWebアプリケーション開発技術をそのまま引き継いだものなので、JavaEE系を始めとする、多くのWebアプリケーション開発者が、比較的入りやすいのではないかといったところです。

Adobe AIRのアーキテクチャを分類すると、以下の3パターンに分けることができます。

  • Ajaxベース
  • Flexベース
  • Flashベース
この中で採用するアーキテクチャを選択する場合、企業向けのアプリケーションを開発しているJavaEE系の開発者の場合は、まず、直感的にAjaxベースにすることが多いでしょう。「Ajaxベース」の技術要素を整理すると、以下のような感じです。
  • 開発言語
    HTML + CSS + JavaScript
  • 実行環境
    Adobe AIRランタイムに組み込まれている、WebKit HTMLエンジン上で動作する。
  • 開発環境
    • 無料で使えるもの
      • Adobe AIR SDK + テキストエディタ
      • Aptana Studio(Eclipse + Aptana用Adobe AIRエクステンション)
    • 有料のもの
      • Adobe Dreamweaver CS3+Adobe AIR Extension for Dreamweaver CS3
ここから見ると、従来のブラウザ上で実行されていた、Ajaxアプリケーション開発のスキルが生かせるという印象を持つことができます。あと、無料で使える開発環境でも、今までの開発作業と、あまり変わらずに行けそうな感覚もありますね。

では、「Flexベース」の方はどうでしょうか。こちらも、同じ観点で技術要素を整理してみます。

  • 開発言語
    MXML + ActionScript
  • 実行環境
    Adobe AIRランタイムに組み込まれている、Adobe Flash Player 9の仮想マシンで動作する。
  • 開発環境
    • 無料で使えるもの
      • Flex 3 SDK + テキストエディタ
    • 有料のもの
      • Adobe Flex Builder 3 Professional(Adobe Flex Builder 3.0.2 Professional Eclipse Plug-in)
FlexはふつうのGUIアプリケーションを、Flashコンテンツとして開発するためのフレームワークです。コンパイルすると、MXMLもActionScriptに変換され、最終的にはSWFファイルとなります。
すでにFlexでアプリケーション開発を経験しているのであれば、迷わずこちらを選択するでしょう。
未経験の場合は、MXML、ActionScriptという「独自言語」を習得しなければならないことが気になるところかと思います。それに関しては、HTML、XML、JavaScriptがわかっていれば、容易に習得できるので、あまり重要な条件ではないでしょう。
そういうことだけでなく、例えば、以下のようなことも考えた上で、総合的に判断することが必要です。
  • 現在、Ajaxベースで、効率の良い開発ができているか?
    WebアプリケーションのAjaxに比べて、明らかにJavaScriptのコーディング量は多くなるので、そのあたりのことも考慮しておくべき。稼働環境が、AIRランタイムのWebKitエンジンに限定されるので、
    • クロスブラウザの考慮が必要ない
    • AIRやFlushで用意されているAPIが使える。
    といった部分によって、開発しやすくなる部分はあると思われる。
  • 要件として、Flashの機能が必要かどうか?
    クールなGUIが要求され、それがFlashだと作りやすいのであれば、無理にAjaxでがんばるのは考えもの。
  • 新しい技術にチャレンジする状況かどうか?
    これには、プロジェクトの状況や、会社の方針、開発者の想いなど、いろいろな要素があるが。。。
  • 有償の開発環境を導入できるか?
    Flexの場合、SDK + テキストエディタベースで開発するには、熟練が必要と考えられる。Flex Builderを使った方が、効率よく開発できる。

すでに、Ajaxベースの開発で、高い技術を持ち、Flushテクノロジーを使わずに機能が実現できるのあれば、「Ajaxベース」を採用するのが自然な流れです。どうしてもFlushは採用できないという事情がある(AIRを前提で、そんなものはないと思いますが。。。)以外の場合には、楽に簡単にできそうな面があるのなら、Ajaxで無理をすることばかりを考えず、Flexの採用を検討してみてもいいかもしれません。

新しい技術にチャレンジする時は、できること、やりたいこと、必要なこと、コストなど、いろいろな角度から見て判断することが重要ですね。

トラックバック(0)

トラックバックURL: http://www.fourmeisters.com/mt/mt-tb.cgi/310

コメントする

最近のブログ記事

Oracle JDBCのスクロール可能なResultSetに注意
JDBC2.0から、スクロール可能なRe…
kimada's tributary weblogを始めました。
ちょっと思いついた比較的軽めの話題につい…
Adobe AIRのアーキテクチャ選択について
現在、多くのWebアプリケーションは、A…