はじめに
この記事では、FlexおよびJavaアプリケーションの構築に使用されるテクノロジーの概要を紹介します。読者としてはJava、Flex、Adobe AIR、その他のデベロッパーを想定していますが、これらすべてのテクノロジーに通じている必要はありません。
関連記事「FlexおよびJavaアプリケーションのアーキテクチャ」と、概要ビデオ「Flex 4およびJava統合の紹介」もご覧ください。
Adobe Flash Platform
Adobe Flash Platformは、リッチアプリケーション(swfファイルの形式)の作成・実行・データ供給のためのテクノロジーファミリー全体にアドビが付けた名前であり、クライアントランタイム、ツール、フレームワーク、サーバー、クラウドサービスを含みます。その個々のコンポーネントの多くは、この記事で詳しく説明します。
Flash Platformランタイム
Flash Platformの中心となるのは、クライアントランタイムです。すなわち、ブラウザ向けのAdobe Flash Playerと、ブラウザ外部向けのAdobe AIRです。ランタイムは、Flash Platformで作成されたアプリケーション(swfファイルの形式)をレンダリングします。
Adobe Flash Player
HTMLとJavaScriptで作成された従来のWebコンテンツの操作に関するユーザー体験は、ここ何年かで大きく変化し、単純なリンクと独立した複数のページから、非同期のデータ呼び出しとインタラクティブコントロールを備えた1ページの「アプリケーション」へと進化してきました。しかしこの体験は、ブラウザのオブジェクトモデルで使用可能なオブジェクトによって、相変わらず制限されています。そこで、Flash Playerの出番です。
Adobe Flash Playerは、ブラウザのプラグインまたはActive Xコントロールとして動作し、リッチなオブジェクトモデルとレンダリングエンジンにより、表現力の高いインタラクティブなコンテンツをWebアプリケーションに含めることを可能にします。このようなリッチなコンテンツを使用するには、何らかのデベロッパーツールを使用してswfファイル(Flash Playerがレンダリングできるコンパイルされたバイトコードファイル)を作成し、そのswfファイルをHTMLページで参照します。ブラウザがHTMLを解析する際に、swfファイルがダウンロードされ、Flash Playerによってブラウザウィンドウ内で実行されます。
Adobe AIR
Flash Playerは、ブラウザ内のFlash Platformで作成されたアプリケーションのためのクライアントランタイムです。これらのアプリケーションは、ブラウザベースのアプリケーションの利点である、あらゆる場所からのアクセス、容易な開発(インストールが不要)、簡単なアップデート、すべてのオペレーティングシステムおよびブラウザでの一貫性といった特長をすべて備えています。
一方で、ブラウザベースのアプリケーションの制限として、オフラインでのアクセスができないこと、ブラウザのセキュリティサンドボックスの制約により、ブラウザウィンドウ外部のユーザーのコンピューターとのやりとりができないことといった欠点を持ちます。
ブラウザ内とブラウザ外の両方のアプリケーションの利点を取り入れるためにアドビが開発したのが、Adobe AIRです。これは様々なオペレーティングシステムで動作するランタイムとツールのセットであり、HTML、Ajax、Flash Platformのアプリケーション(swfファイル)をデスクトップに展開することを可能にします。
最近多く用いられるアプリケーションのデザインパターンとして、全ユーザーのためのブラウザベースのバージョンと、アクティブユーザーやパワーユーザーのためのデスクトップバージョンを用意するという方法があります。Flash BuilderやFlash Professionalなどのツールを使用して作成したswfファイルは、Webアプリケーションとデスクトップアプリケーションの両方に使用できます。両方のタイプのアプリケーションを作成した場合、別々のコードライブラリからのコードを共有することもできます。
デスクトップ用にFlexアプリケーションをコンパイルした場合、swfファイルとXMLファイル(アプリケーションデスクリプターファイルと呼ぶ)ができます。このファイルには、コンテナオペレーティングシステムウィンドウの表示方法、クライアントコンピューター上でアプリケーション用に使用するアイコンなどの情報が記録されています。
開発中に、テストが必要になるたびにアプリケーションをコンピューターにインストールしなければならないのは不便です。Flash Builderの場合、アプリケーションをテストするときには、AIR Debug Launcher(ADL)というツールを起動して、アプリケーションをインストールせずに実行できます。
展開の準備ができたら、Flash BuilderのADT(AIR Development Tool)というツールを使用して、リリースビルドを作成します。これには、swfファイルを含むAIRパッケージファイル、アプリケーションデスクリプターファイル、アセットなどが含まれています。このAIRファイルを、ユーザーに配布します。書き出しの際には、信頼できる機関によるデジタル証明書を使用してアプリケーションに署名する必要があります。このアプリケーションは、ユーザーのコンピューターにフル権限でインストールされ、オペレーティングシステムとやりとりする能力を持つからです(もちろん、有害なコードを導入するおそれを減らすため、信頼できるアプリケーションだけをインストールするようにすべきです)。
AIRアプリケーションをインストールするには、ユーザーのコンピューターにAdobe AIRランタイムがインストールされている必要があります。ユーザーがWebページからアプリケーションを簡単にインストールできるように(AIRランタイムをダウンロードしてインストールしてから、AIRアプリケーションをダウンロードしてインストールするという手間を省くため)、アドビはテンプレート用のデフォルトのHTMLファイルとbadge.swfファイルを提供しています。これを使用すれば、ユーザーがバッジ(フレーム付きのカスタマイズされたイメージボタン)をクリックすると、ランタイムがチェックされ、必要ならインストールが行われた後、AIRアプリケーションがインストールされます。Adobe AIR Marketplaceでは、すべてのアプリケーションがこの方法で提供されています。