BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース AIR 1.0:AdobeのKevin Hoyt氏とMatt Rozen氏によるプラットフォームの概要

AIR 1.0:AdobeのKevin Hoyt氏とMatt Rozen氏によるプラットフォームの概要

Adobe AIRのプロダクション版がリリースされた(source)のにあわせて、InfoQはそのプラットフォームについてAdobeのKevin Hoyt氏(source)とMatt Rozen氏と話をした。

InfoQの読者にAIRプラットフォームの概要を説明してもらえますか。

Adobe AIRではデスクトップ向けのリッチクライアントアプリケーション(RIA)をHTML/CSS、AJAX、Flash、Flexなどのウェブテクノロジを使って作ることができます。企業や開発者は開発、デプロイ、保守のコストを最低限におさえつつ簡単にウェブの範囲をブラウザから広げることができます。アプリケーション製作にはDreamweaverやFlex Builder、Flash CS3、Aptana Studio、あるいはシンプルなテキストエディタといった慣れ親しんできたツールが使えますし、OSに関係なく使える単一のアプリケーションインストーラを用意するのも簡単です。

AIRはAJAX開発者を手厚くサポートします。透明なHTMLウィンドウ、ドラッグアンドドロップなどが使えますし、AIRやFlashのAPIもフルに利用できます。HTML内FlashもサポートするのでHTMLベースのAIRアプリケーション内に Flashコンテンツを組み込むこともできます。AIRではH.264ビデオフォーマットやAdvanced Audio Coding(AAC)もサポートされ、SQLiteをローカルデータベースとして利用することも可能です。これはクロスプラットフォームなオープンソースの組み込みデータベースで、大きなデータキャパシティを持ちフルテキストサーチが可能でありながら何のセットアップの必要もありません。Adobe AIRではバックグラウンド実行も可能で、目立たないように実行したり新しいデータがあった時にユーザーに知らせたりできます。Adobe AIRはFlash Playerと同じようにランタイムの自動アップデートが可能です。

 AIRを使うのが最も良いといえる利用ケースがあります。たとえば、オフィスでよく使われSAPのようにブラウザでアクセスするタイプのアプリケーションです。Adobe AIRを使った場合でもブラウザとまったく同じユーザエクスペリエンスを提供できますし、AIRであればネットワークから切り離されたり別の場所へ移動している最中でも利用が可能になります。また通常オンラインアプリケーションはブラウザを通してのみアクセス可能ですが、Adobe AIRを使えばデスクトップ環境からも利用できるようになります。加えてAIRアプリケーション作成にはブラウザベースのアプリケーションを作るのと同じテクノロジを用いるので、ブラウザベースのものをデスクトップでも使えるようにするための時間と労力は最低限ですみます。

AIRのオフライン時の機能とそれを利用するアーキテクチャはどういったものになるか全体的に説明してくれますか。
AIR がただオフラインのものであるというのは誤解です。基本的にオンラインで利用されている優れたAIRアプリケーションを多く見てきました。AIRアプリケーションはデスクトップアプリケーションです。しかしオフラインで実行可能というのは、利用可能な多くの優れた機能の一つにすぎないのです。

Adobe AIRアプリケーションがオフラインで実行されている時、開発者はこれまで述べてきた機能をを要求に合うベストな方法で用いることができます。まず思い浮かぶのは単純にアプリケーションがオンラインかオフラインかをネットワーク検出によって知る機能です。これはハードウェア的にオフラインなのででコンテンツやデータにアクセスできないのか、オンラインではあるがリモートサービスが利用できないせいでアクセスできないのかを判断するのに使えるかもしれません。

ネットワークやリモート先が利用可能でない時、オンラインのデータの代わりにローカルにあるデータを使うことができます。そのデータはあらかじめキャッシュされたコンテンツであったりXML形式あるいは他の形式でローカルに保存されたデータだったりするでしょう。

開発者は組み込まれているSQLiteのリレーショナルデータストレージ機能を利用することもできます。SQLiteはファイルベースのリレーショナルデータベースで、開発者あるいはエンドユーザで特別なインストールや設定をする必要はありません。

オフラインで動くアプリケーションの設計はどうするのがいいかというのは明確に答えるのは難しい問題です。アプリケーションはその目的や機能によって多岐に渡るのでAdobeがみなさんに対して何がベストだということはできません。ただある目的のために一番いい設計を行うために開発者がAIRの全ての機能を手軽に利用できるというのは重要な点です。
ではAIRのプログラミングモデルにおいてビジネスロジックはどう位置づければいいでしょうか。

ロジックがどこに置かれるかについて、RIAにはこれまでのアプリーションとは異なった興味深い変化があります。

メインフレーム環境では全てはリモートシステムにありました。デスクトップ環境で処理能力の向上しウィンドウシステムが浸透してからはクライアント/サーバ型が広がりました。クライアント/サーバ型ではその2段階システムにあわせてロジックが分割されました。それがウェブによって事実上ほぼ全てのロジックがサーバ側へ再度置き戻されることになりました。

標準仕様とインフラが成熟するにつれ、最良のWebと最良のデスクトップのコンビネーションを目にするようになっています。それがRIAです。RIA作成に用いる技術がなんであれアプリケーションロジックがどの部分に置くかを決めるのは開発者です。それについて確かで不変なルールはありません。全てのアプリケーションは異なるのです。

eBay Desktopはかなりの割合のロジックをクライアントに置いています。それによりカウントダウンタイマやシステムトレイでの通知といった機能を提供でき、魅力あるユーザーエクスペリエンスをもたらしているのです。逆にいえば、そういった機能を実現するためにサーバ側でも任意のタイミングで動作する多くの機能とロジックが必要だといえます。両サイドを最良に活用するのがRIAの鍵です。

Adobe AIRについていえば、開発者はクライアントでよく慣れ親しんだウェブテクノロジを利用することができます。それはHTMLやCSS、 JavaScriptを使ったAJAXな方法かもしれませんし、Flash CS3やActionScript、Flexで作ったFlashかもしれません。AIRのおかげでこれらのテクノロジをバランスよく使ったデスクトップでの最良のエクスペリエンスを提供できるのです。

クライアントとサーバーでロジックが冗長になってしまうことにはならないでしょうか。
リッチインターネットアプリケーションの開発では必ずある程度の冗長性が存在します。たとえばバリデーションやバリューオブジェクトです。冗長性は時に良い結果ももたらします。もしデスクトップでも利用する世界規模のリッチインターネットアプリケーションを作るとしたら、今ならどのように実現させるでしょうか。もしWindowsをターゲットするならMFCや.NETを使うことだけ考えればいいかもしれませんが、Mac OSにも対応したいとすればObjective Cのプログラマを雇おうとするでしょう。LinuxもサポートするとなるとTk/Tclや古き良きCとも関係を結ぶことになるでしょう。

AJAX 使いであれば、最初からHTMLやJavaScript、CSSをそのRIAを作るのに使っていることでしょう。FlashあるいはFlexの開発者だったとしても同じことが言えます。OS依存のテクノロジにはこれらの技術との類似点はありません。OSに依存したRIAを提供するには新しいスキルやテクノロジ、ツール、そしておそらくインフラに対する相当な投資が必要でしょう。この場合OSごとというのは冗長性ではありません。まったく新しい別物です。 Adobe AIRであればウェブディベロッパは既存のテクノロジ、ツール、スキル、ワークフロー、インフラを活用してRIAをデスクトップにまで拡張することができるのです。
OSのネイティブ機能の利用はどの程度AIRで可能なのでしょうか。

Adobe AIRはWindows XP、Vista Home Premium、Vista Ultimate、Windows 2000そしてLeopardを含めたMac OS 10.4以降に対応しています。Linux版Adobe AIRのリリースは最初の最終出荷バージョンがリリースされ次第すぐを予定しています。AIRからOSのAPIを呼ぶ機能について議論もありますが、 Adobe AIRは初期段階にありまだこれからなので、現時点ではOSネイティブなデスクトップアプリケーションを作れるようにすることには重点を置いてません。 Adobe AIRが成熟したら私たちも顧客と話し合いを再開しその機能やそのためのトレードオフを決めたいと思います。デスクトップ向けにリッチインターネットアプリケーションを開発したいと思う人たちはOSネイティブな機能も使いたいはずです。Adobe AIRもネイティブ環境をサポートするためローカルファイルの入出力、システムトレイでの通知、バックグラウンドでの実行、ネイティブウィンドウの利用など多くの機能を持っています。はっきり言えばWebテクノロジでこのような機能を利用できるようにすることはAIRの心臓部分であり、開発には非常に多くの労力がかかっています。ある種のアプリケーションではOSと密接に統合することが求められるのは承知していますし、私たちも将来のAIRの機能を策定する上でそのような要望の検討を続けていきます。

オフラインデータとの同期というパラダイムにおいて、これを簡潔にするフレームワークへの取り組みなどはありますか。
Adobe AIRの登場以前であっても、Flash・JavaAScriptのどちらでもデータ同期のフレームワークは少しずつ進化していました。

 Flex 開発者向けにはLiveCycle Data Services ESという接続性に優れたデータ管理のライブラリがあります。単に効果的なデータ接続だけでなくLiveCycle Data Servicesではリモート接続先が利用不能になってもクライアント側でのデータモデル内の変更を後から追うことも可能です。このことで接続先が再度利用可能になった時にサーバー側へ変更を伝えることができます。サーバーでコンフリクトを解決するための処理も行われます。

JavaScript については、TrimJunctionというプロジェクトをご紹介したいと思います。このプロジェクトはRuby on Railsとほぼそっくりにモデリングされていて、汎用的なウェブアプリケーションのMVCフレームワークを提供します。TrimJunctionの特徴の一つはデータモデルに対する変更をメモリに保存できるということで、サーバに再接続時に保存されていた変更をサーバに送信することができます。

Adobe AIRの出る前はLiveCycle Data ServicesやTrimJunctionを使うのは、クライアントのメモリにデータモデルや変更履歴を保存するためでした(Flexの場合は制限付き Flash SharedObjectにも可能)。またこれらはウェブ上に置かれるのが前提になっています。AIRにおいてはこのようなフレームワークは配信の手段や接続を確保して実行する手段となりますし、接続性に優れていることは切断中のデータ変更を保存しておく手段となります。

私は近いうちにこの方面で素晴らしい進展があることを期待しています。
ある人は、もしデスクトップ上に必要なのがブラウザベースのアプリケーションだとしたら(参考記事)、AIRプラットフォームはそれほど必要なのだろうかと言っていますが。

Adobe AIRはウェブディベロッパがウェブ上のRIAを直接デスクトップに持ってきて、ユーザエクスペリエンスの優れたアプリケーションにすることを可能にし、そしてデスクトップの持つ多くの利点を利用できるようにします。AIRによって新しいタイプのアプリケーションが可能になります。AIRはブラウザベースのアプリケーションをブラウザ外に持ってくるだけのものではありません。AIRはウェブやAJAX、Flashの開発者たちが新しいタイプのアプリケーションにおいて独創性を発揮できるようにするのです。私たちはこれまで目にしたことのないタイプのアプリケーションをもたらす新しいイノベーションが起きることを望んでいます。今はほとんどの独創的なアプリはウェブアプリだと思います。ウェブアプリが一番魅力的で一番使いやすく一番直感的です。Adobe AIRはそれらの開発者に新たな開拓地をもたらします。AIRの持つ可能性は単にブラウザ外にアプリを持ち出すことよりはるかに大きいものだと考えています。

AIRプラットフォームのライセンスとコストについてはどうでしょうか。
 Adobe AIRアプリケーションランタイムはAdobe ReaderやAdobe Flash Playerと同じように無償です。Adobe AIR SDKも無償でダウンロードできます。これはAdobe AIRのベータバージョンでもそうでしたが最終出荷バージョンでも同様です。開発者はフリーでオープンソースのFlexフレームワークを使ってブラウザベースのRIAを作れますし、またそれをAIRでデスクトップ向けにすることもできます。AIRでのアプリケーション製作を始めるのに何かを買う必要はありません。
読者が実際に確かめることのできる何か商用のAIRアプリケーションはありますか。
シカゴでおこなったAdobe MAX 2007ユーザカンファレンスで、AdobeはAdobe AIRアプリケーションを開発中の多くの大手企業を紹介しました。小売、金融、ソフトウェア、エンタテイメント、行政など広い分野にわたる多くの企業が AIRアプリケーションを作っています。eBayやAOLやFinetune(無料で音楽を配信するSNS)は利用可能なAIRアプリケーションを数ヶ月前から提供しています。Adobe AIR Showcase(source)では他のベンダをチェックしたりアプリをダウンロードしたりできるようになっています。
InfoQの読者がAdobe AIRについて知るためには他に何をすればいいでしょうか。

 AIR はピカピカの新製品なので多くの関心を集めています。そしてそれに値するものでもあります。しかしInfoQ読者のみなさんにはAIRがAdobeの RIA用プラットフォーム技術の一部をなすものであることを知っておいてほしいと思います。このプラットフォームはツールやフレームワーク、サーバ、サービス、ランタイムなど必要なものを提供し、ブラウザ・デスクトップ・OSを横断したRIAを作ることができます。Flash Player(インターネットに接続するデスクトップの99%でインストールされています)とブラウザの環境で動作するRIAを作るのにはフリーでオープンソースのFlexを使うことができ、またそのRIAをAIRによってデスクトップ環境で動作するようにもできます。デスクトップに持ってくることでOS の機能も利用できるようになります。これは全てが揃ったRIAソリューションで、一番リッチなアプリをOS・デスクトップのいずれでも利用可能にすることを保証してくれます。このことは非常に大きな恩恵を開発者にもたらすと思いますし、一度試せばきっと理解されることだと思います。

FlexとAIRのリリースに関する情報はこちら:http://www.infoq.com/jp/news/2008/02/air-flex-release

原文はこちらから:http://www.infoq.com/news/2008/02/air-1.0-overview

この記事に星をつける

おすすめ度
スタイル

BT