Apolloの原点
by ケビン・リンチ
多くの方がご存じのとおり、アドビはコードネーム「Apollo」と呼ばれるプロジェクトに取り組んできました。これは、デベロッパがリッチ・インターネット・アプリケーション(以下、「RIA」)の実行領域をデスクトップにまで広げることのできる、クロスOSのランタイムを作るためのプロジェクトです。アドビは去る3月19日、Adobe LabsでApolloのアルファ版をリリースしました。この記事では、チーフ・ソフトウェア・アーキテクトである私、ケビン・リンチが、Apolloの原点とApolloがデベロッパとエンドユーザ双方にもたらすメリットについて語ります。
デベロッパがどの分野で技術の限界に挑戦・成功しているのかを見極め、同様のことをより多くのデベロッパが容易に実現できる環境を作る。アドビにおいては、それがソフトウェア開発とその革新の原動力のひとつとなっています。
ここで2001年に遡ってみましょう。Webは広く利用され、デベロッパはインタラクティブアプリケーションの前兆となるものをHTMLページに組み込んでいました。こうしたアプリケーションは当初、HTMLのフォームを使っていて、フォームのデータの処理はWebサーバに頼っていました。一握りの最先端デベロッパだけが、Flashによるクライアントサイド処理を活かしたレスポンスの良いインタラクションの実装に取り組んでいました。
ブロードムーアホテルは、インタラクティブアプリケーションの最も初期における成功事例を実現しました。デベロッパがアプリケーションをFlashとColdFusionを使って作成したことで、ホテルは複数ページのHTMLフォームから、極めてレスポンスの良い一画面の予約インタフェイスへ移行できたのです。このアプリケーションを公開してから、ホテルのオンライン予約は89%の増加を果たしました。
レスポンスが明らかに重要なのです。それがより効果的で魅力あるエクスペリエンスを生み出すのです。しかし、このような初期のインタラクティブアプリケーションは、パフォーマンスやスクリプト言語の品質、ブラウザ内での表現力という点では多くの課題を残しました(ブラウザはWebページを表示するために作られたもので、アプリケーションをホストするものではありません)。
RIA開発を実現するためのミッション
2001年、私たちはレスポンスの良いインタラクティブなアプリケーションに対する課題に可能性を与えるミッションに着手することにしました。そしてRIAというカテゴリを作り出したのです。RIAのもつ可能性を開くために次のものを作ることを目標としました。
- Flash Playerに組み込む、とても高速な新しいバーチャルマシン。最新バージョンのECMAScript(JavaScriptやActionScriptとして知られています)を実行するためのもので、現在Flash Player 9に搭載されています。
- RIAを根本的に構築しやすくする開発フレームワーク。これが現在Flex、Flex Builderと呼んでいるものです。
- RIAのもつ可能性を最大限に引き出す実行環境。これがApolloです。
ドットコム不況にあっても、私たちはRIAの未来の世界を実現するビジョンを手放しませんでした。一連のテクノロジーを作り続け、再びWebの革新に火がつく日に備えたのです。
期待したとおり、革新の日々は再び訪れました。Web 2.0でRIAの真価が認められているのを見るのは嬉しいことです。アプリケーションは、インターネットに広まったクリエイティビティをうまく使った一連のテクノロジーとフレームワークで作られています。つまり、HTML、Flash、Flex、Ajaxの活用により、従来サーバー側のみに存在したロジックの一部をバランスよくクライアント側で処理できるようになったのです。
アドビとマクロメディアの協力
でも、どうやって私たちは今日のApolloまでたどり着いたのでしょうか? 2005年の終わりに、アドビとマクロメディアは力を合わせることにしました。マクロメディアがFlashでRIAを牽引していた頃、アドビは別の分野で電子ドキュメントの配信を改革していました。マクロメディアは電子ドキュメントの可能性をRIAに加えられること、そしてアドビはRIAの可能性を電子ドキュメントに加えられることにお互い気付きました。これらの道を別々に追求して同じような努力を無駄に重ねるのではなく、世界一の電子ドキュメントテクノロジーと世界一のRIAテクノロジーを結びつけて、次世代のドキュメントとRIAに対するビジョンを達成するため協力したのです。これは、とてつもなくパワフルなコンビネーションです。
合併のアナウンスを行った後、私たちは「クリーンルーム」チームを作ってApolloプロジェクトを計画しました。この小さなチームはエド・ロウ(現在Apollo開発チームをリードしています)と私自身を含む、双方の会社の数名の社員で作られました。私たちは経験で得た知識を引き出し利用しました。これまで学んだすべてを持ち寄って、Flash、PDF、HTMLをこの新しいRIAの実行環境にまとめることを考えました。── 新しい実行環境、コードネームApolloです。
Apolloプロジェクトは実のところ、新しい環境を作ろうとする3回目の試みでした。はじめの2回はMacromedia Centralという実験的なプロジェクトの一環でした。私たちはこの2回のプロジェクトから多くを学びました。ちなみに、Centralの最初のリリースはMercury、2番目のリリースはGeminiというコードネームでした。米国の宇宙計画にちなんでいます。そしてチームにもよく言うのですが、Apolloは本当に月に行った最初の宇宙飛行ミッションなのです。
より近い繋がり
Apolloを使えば、既存のWeb開発スキル(Flash、Flex、HTML、JavaScript、Ajax)を利用してRIAを構築し、デスクトップに配信できます。HTMLの基本スキルがあれば誰でもWebサイトを作れるようになったWebパブリッシングのように、Apolloがあれば、Web開発の基本スキルがあれば誰でもデスクトップアプリケーションを作れるようになるのです。
デベロッパとして今や皆さんは、ユーザとより近い繋がりを作り出すことができます。ブラウザの場合、ユーザはページをざっと見たら去ってしまいますから、束の間の、やや薄い繋がりだったでしょう。Apolloなら、顧客と絶えず繋がり続けられるようなエクスペリエンスを生み出せます。デスクトップアプリケーションのように、Apolloアプリケーションにもアイコンがあり、デスクトップやWindowsのスタートメニュー、Mac OS XのDockに表示されます。これならすぐに気付いてまたエクスペリエンスに戻れるでしょう。Apolloアプリケーションはアンインストールだって簡単です。実際、Mac OS Xではゴミ箱に捨てるだけですし、Windowsでは「プログラムの追加と削除」を使えばよいのです。
近い繋がりを作る話に戻しましょう。現時点では、ブラウザの中でWebアプリケーションを使っている間、自分のコンピュータからは切り離された世界にいます。ローカルデータをWebアプリケーションに結びつけることは簡単にはできません。例えば、Webベースの地図アプリケーションにOutlookの連絡票をドラッグ&ドロップしても、友人の家まで道順が表示されるわけではありません。でもApolloアプリケーションならそれができるのです。Apolloはコンピュータとインターネットの間の溝を埋めてくれるのです(Mike ChambersによるChristian Cantrellのインタビュー動画(英語)でいくつかデモを行っています。これを見ていただくと私の言う意味が分かると思います)。
そして、次は?
Apolloアプリケーション開発の最初の波に加わる気持ちがあるなら、ぜひAdobe Labsから無償のApolloランタイムをダウンロードしてください。Apolloアプリケーションは、FlashやFlex、HTML、Ajax、JavaScriptの開発に使っているどんなIDE(Integrated Development Environment:統合開発環境)でも作ることができます。ただし、Apolloアプリケーションの開発を一番スタートしやすいのはFlexです。Flex Builderなら、洗練されたデザイン・レイアウトツールがあるのでさらに簡単になりますし、XMLやWebサービス、データサービスを統合するリッチなクライアントサイドロジックも素早く構築できます。
最後になりますが、みなさんが差別化を望むならApolloは絶好の機会となるでしょう。私は、これが新しいメディアの始まりであると心から信じていますし、Apolloアプリケーションは作っていて楽しいものです。早くからスタートすれば、アプリケーションをコンピュータ上に存在させて、Webとデスクトップの差をより効果的に埋めるような、他にはまだない可能性をみなさんのアプリケーションでもたらすことができるのです。
みなさんがどうやってApolloの限界を押し広げ、次の世代のRIAを作り出すのか楽しみにしています。
| 記事和訳 | : |
株式会社 Ants タナカヤスヒロ |
| Apollo FAQ和訳 | : | ants Lab(http://labs.anthill.jp/) |

