ウルシステムズ
主席コンサルタント
中村 正弘


 連載の最終回となる今回は,Web2.0の少し先に目を向けてみたい。取り上げる題材は,次世代のアプリケーション・プラットフォームとして各所で注目を集めている「Apollo」だ。Apolloはアドビシステムズが開発中のデスクトップ・アプリケーションの開発・実行環境である。Apolloの設計思想や盛り込まれている機能は,まさに「Web2.0の次」を感じさせるものだ。

Web技術でデスクトップ・アプリを実現

 まずはApolloによるアプリケーションの一例である「ScreenPlay」を紹介しよう。図1を見ていただきたい。赤い円と,その赤い円で囲まれた小さなウインドウがある。ウインドウで線の色や太さを指定すると,デスクトップ上にマウスで自由に線を描けるというものである。ご覧のように,ウインドウは透過処理されている。

図1
図1●Apolloのサンプル・アプリケーション「ScreenPlay」の画面例
[画像のクリックで拡大表示]

 このようなデスクトップ・アプリケーションを実現するためには,これまでVisualBasicなどクライアント向けのアプリケーション開発技術を使う必要があった。ところがApolloを使えば,HTMLやFlashといったWebアプリケーション技術で,このようなデスクトップ・アプリケーションを実現できるのだ。最近はWebアプリケーション技術に高い関心を示す技術者が増えている。開発者リソースの有効活用という意味でも,Apolloは歓迎すべきプラットフォームと言える。ScreenPlayやその他Apolloで書かれたサンプル・アプリケーションはアドビシステムズのWebサイトで自由にダウンロードできるので,ぜひ一度触れていただきたい。

 Webアプリケーションでは実現できない機能を実装するために,Apolloでは次のような機能を使うためのAPIが用意されている。

 ・クライアントPCへアプリケーションをインストールするためのインストーラーの作成
 ・アプリケーション・ショートカットの作成(Windowsのデスクトップショートカットやクイック起動のようなもの)
 ・ドラッグ&ドロップ
 ・クリップボードへのアクセス
 ・アプリケーション間通信
 ・ローカルファイルへのアクセス

 このようなAPIを,FlashやAjaxで書かれたアプリケーションから利用できる。今まさに主流となりつつあるWebアプリケーションの技術を使いながら,デスクトップ向けとして十分な機能を持つアプリケーションを開発・実行できる――。Apolloは,こうしたプラットフォームを目指しているわけだ。Apolloは3月下旬にαバージョンが登場したばかり。アドビシステムズは2007年中に正式版をリリースする予定だ。

 Apolloの特徴はそれだけではない。基本的に,Windows,MacOS,LinuxいずれのOSでも,アプリケーションの同じ動作を保証する。Apolloのアプリケーションを実行するためには,クライアント・パソコンに専用のランタイム・ソフトウエアをインストールする。アドビシステムズはランタイムをWindows,MacOS,Linuxそれぞれに用意している(注1)。OSの違いをこのランタイムで吸収する。つまり,ApolloではWebアプリケーションの技術を使いながら,OSの違いを超えたクロスプラットフォームのデスクトップ・アプリケーションを開発できるのだ。これはコンシューマ向けソフトの開発者に限らず,企業情報システムの開発者にも大変魅力的な特徴と言える。

(注1)現在公開されているαバージョンでは,Linux版は用意されていない。

 いま,企業システムの多くがWebベースに移行してきている(前回の記事を参照)。Web技術でデスクトップ・アプリケーションも開発できるということは,開発ノウハウの蓄積,技術者の確保,フレームワークの整備など開発効率の向上といった点で有利である。

 ただしApolloでどんなデスクトップ・アプリケーションも開発できる,というわけではない。Apolloの開発言語はアドビシステムズ独自の開発言語である「ActionScript」と,Ajaxの開発言語でもあるJavaScriptである。当然のことではあるが,アプリケーションの種類によってはCやC++でなければ開発できないアプリケーションも存在する。例えば「DirectShow」でWebカメラを制御し,動画を撮影するといったアプリケーションは,Apolloでは開発しにくいだろう(注2)

(注2)Apolloでこの種のアプリケーションが組めるかどうかは,2007年3月時点では情報が少ないので断言はできない。