アクセシビリティ
デベロッパーリソース
David Wadhwani

David Wadhwani

Macromedia

作成日:
2005年10月17日
更新日:
2006年5月8日
ユーザレベル:
すべて
製品:
Flex

Flex 2.0:次世代のリッチインターネットアプリケーションの実現

アドビ(旧マクロメディア)は2005年10月、Flash® Playerランタイムを利用したリッチインターネットアプリケーションを世界のあらゆる場所で作成してデプロイすることができる開発者用ツール、ライブラリ、およびランタイムサービスの新しいラインナップ、Adobe® Flex™ 2を開発者コミュニティに初めてお披露目しました。以来、数万人の開発者がFlexを使用したアプリケーション開発を始めており、アドビに対してフィードバックが寄せられています。また、アドビとマクロメディアはひとつになり、新しいアドビが誕生したことにより、インターネットアプリケーションの将来を広げるまったく新しい機会が開かれました。

ここに、過去数か月間の成果を示すものとして、Flex 2ベータ3を発表します。直感的なプログラミングモデル、強力なEclipseベースのIDE、およびJ2EEベースのランタイムサービスのリッチセットを備えたFelx 2製品ラインは、クロスプラットフォームのリッチインターネットアプリケーションを開発するための最も包括的なソリューションを提供します。新しく発表された価格構成では、サーバにインストールしなくても、無償のダウンロード製品で、多岐にわたるアプリケーションの開発およびデプロイを行っていただけます。またリリースされたばかりのFlex-Ajax BridgeおよびAjax Client for Flex Data Servicesといったオープンソースライセンスのテクノロジを利用すると、静的なHTMLベースかAjaxテクノロジベースかを問わず、既存のWebサイトやアプリケーションにFlexコンポーネントを追加していくことが可能です。

リッチインターネットアプリケーション開発の常識を変える

アドビ(旧マクロメディア)は2001年初頭、開発者やデザイナーがMacromedia Flashを使用して作成していたアプリケーションを称する用語として、「リッチインターネットアプリケーション」(RIA)という新しい言葉を作り出しました。これらのアプリケーションにより、従来のHTMLアプリケーションの設計上の制限やインタラクションの制約が軽減されたことは明らかです。リッチインターネットアプリケーションでは、ユーザが操作を行うときにページ全体の表示を更新する必要がありません。データの変更された部分だけを送信し、レイアウト情報の転送を最小限にとどめることにより、ネットワーク帯域幅を効率的に使用します。また、エンドユーザがデータを直接操作できるさまざまなインタラクションを備えています。リッチインターネットアプリケーションでは、オーディオとビデオをアプリケーションのユーザインタフェイスにシームレスに組み込むことができます。ユーザがアプリケーション内を移動する間、アプリケーションのコンテンツが明確に維持されます。そして言うまでもなく、高画質印刷をサポートしています。

リッチインターネットアプリケーションは広範囲にわたって大きな影響をもたらしました。インターネットを趣味とするアマチュアから大規模企業までのあらゆる開発者がRIAを作成しており、その結果としてビジネスの大幅な改善が実現しています。大手の金融機関では、顧客の間にブランドを定着させたり、基幹データを効率的に操作し内部のビジネス上の意思決定を高速化するために、RIAを使用しています。オンライン小売業者の場合は、清算プロセス中にショッピングカートが無効にされる割合が50%減少しました。個人の開発者は、洗練されたオンライン地図サービスに、ニューヨーク市内の信号機に取り付けたWebカメラを統合し、最新の役立つ交通情報を通勤者に提供しています。

顧客の間でリッチインターネットアプリケーションの利用が広がり始めると、開発者はすぐにいくつかの特別なニーズに気づきました。RIAによっては、リアルタイムのデータフィードを取り込むことが必要な場合があります。また、随時接続の環境で実行され、接続が確立したときに効率的にデータの同期を行うことが必要な場合もあります。独自のバイナリプロトコルの利用が求められる場合もあります。さらには、複数のクライアントがデータの単一のインスタンスを共有することが必要な場合もあります。

アドビ(旧マクロメディア)では、これらの初期に確認された新たなニーズに関する作業を手始めとして、これらのニーズに応えるだけでなく、広範なアプリケーションの固有のニーズに対応するために、拡張が簡単に行えるRIAプラットフォームの実現に着手しました。クライアントランタイム、開発環境、クラスライブラリ、およびデータサービスを提供し、開発者のために次のような活動を支援したいと考えました。

  • RIAアプリケーション開発における高い生産性の実現
  • 効果的なインタフェイスパターンを持つ表現力豊かなアプリケーションの作成
  • 広く使用されているハイパフォーマンス、クロスプラットフォーム、クロスブラウザのランタイム環境を利用したアプリケーションのデプロイ
  • プロジェクトの規模や作業の複雑さに柔軟に対応できるツールおよびテクノロジーの使用

ユーザを夢中にさせるようなアプリケーションを作成するための最良の手段としてFlex 2製品ラインをご紹介できるのは、非常に喜ばしいことです。Flex を使用すれば、単純なレストランのメニューから、複雑なワークフローシステムやトレーダー向けのデスクトップの同期化まで、幅広いアプリケーション開発を実現することができます。

Flex 1.0または1.5のご使用経験のある方は、Flex 2が単なる新リリースではないことを認識する必要があります。技術面では、Flex 2には、まったく新しいレベルのリッチインターネットアプリケーションの作成を可能にする新機能が追加されています。また、オープンソースのIDEフレームワークであるEclipseを使用して1から再開発されたFlex Builder™には、Flexフレームワークとそのコンパイラが含まれています。さらに、ColdFusion®とFlexの両チームは、Flex Builder、Flex Data Services、およびColdFusion Serverの間にColdFusion固有の統合ポイントを提供するために密接な連携を行っています。

こうした技術的な進歩に加え、Flex 2はそのパッケージ構成や価格、導入方法についても大きく変化しました。無償のAdobe Flexソフトウェア開発キット(SDK)をダウンロードすれば、Flexフレームワークを利用できます。Flex SDKには、あらゆるXMLおよびSOAP Webサービスに接続できるFlexアプリケーションを開発、コンパイル、およびデプロイするために必要なコマンドラインコンパイラおよびドキュメントが含まれています。Flex SDKは単独でダウンロード可能で、このキットにより、商用利用を含め、あらゆるアプリケーションの開発およびデプロイを無償で行えます。また、Flex Data Services 2の接続の制限されたバージョンを、クラスタに属さない単独のサーバで無償で使用できます。もちろん、Flex Data Services 2はCPU単位、プロジェクト単位、およびエンタープライズライセンスベースでもライセンス供与されます。これらの無償の製品は、あらゆる開発者やプロジェクトが利用可能な業界最強のクロスプラットフォームRIAテクノロジーを提供します。これは非常にすばらしいことです。

リッチインターネットアプリケーションの新たな基盤:Flash Player 9

FlashプラットフォームのバックボーンであるFlash® Playerもまた、Flex 2製品ラインおよび次世代RIAの基盤を提供するために進化しています。最初は単なるアニメーション再生用クライアントだったFlash Playerは、これまでの年月の間に、ECMAScript標準の部分的なサポートの追加によりスクリプト言語(ActionScript)を徐々に拡張してきました。Flash Player 7のリリースでは、ActionScriptにECMA標準の大半が実装されるまでになりました。Flex 2製品ラインに同梱予定のFlash Player 9(Flash Player 8.5より改称)ではActionScript 3.0が導入されます。ActionScript 3.0は、生産性とパフォーマンスが高まるように設計された、次世代のECMAScript標準に基づく強力なオブジェクト指向プログラミング言語です。

Flash Player 8(2005年9月リリース*)では、レンダリングエンジンが大幅に改良され、豊かな表現力を実現する一連の機能(フィルタ、高度なグラデーション制御、レンダリングパフォーマンスなど)と、今日のWebでは他に例を見ないビデオサポート用の拡張機能(高品質のコーデック、アルファチャンネルのサポートなど)が追加されています。Flash Player 8は、Flash Player内で実行されるアプリケーション間でやり取りするためのAPI、ブラウザのHTMLドキュメントオブジェクトモデル、および関連するJavaScript関数が大幅に改善され、これまでよりも簡単に既存のWebページやアプリケーションにFlashコンポーネントを追加できるようになりました。

Flash Player 9では、Flash Player 8で強化されたこれらの機能に加え、仮想マシンでのスクリプト実行の改善に重点を置いた改良が行われています。実際には、まったく新しい高度に最適化されたAVM2と呼ばれるActionScript仮想マシン(AVM)と、新しいバージョンのActionScriptプログラミング言語が搭載されています。AVM2は、RIA開発者のニーズをサポートするために1から開発されたものです。この新しい仮想マシンは非常に高速で、完全なランタイムエラーレポートおよび業界標準のデバッグ機能をサポートしています。バイナリソケットをサポートしているので、Flash Playerがどのようなバイナリプロトコルでも動作するようにすることができます。Flash Player 9には、既存のコンテンツやレガシーコンテンツとの下位互換性を保つために、ActionScript 1.0および2.0のコードを実行するAVM1も搭載されています。

ActionScript 3.0では、ECMAScript標準への単なる準拠にとどまらない成果が得られました。現在では、アドビはECMAScript委員会の議長を務め、その発展と推進に一役買っています。ActionScript 3.0には、JavaやC#などの言語の利点であるコンパイル時の厳格なタイプチェックを行うコンパイルモードが用意されています。データ操作を合理化するための新しい機能の1つにE4X(ECMAScript for XML)標準があります。ECMAScriptを拡張したこの標準では、XMLがネイティブのデータタイプとして追加されており、XMLとのやり取りやXMLの操作をより自然に行うことができます。ActionScript 3.0では、テキストの解析および処理に役立つ正規表現のサポートが追加されています。W3C DOM Events標準に基づく統一モデルの採用により、従来の仮想マシンで行われていたようなその場しのぎのイベント処理が減少します。また、アプリケーション開発者向けの最新のAPIが搭載されています。

新機能の概要については、「ActionScript 3.0 overview*」および「Introducing Flash Player 9*」の記事を参照してください。

Adobe Flex 2製品ライン

Flex製品ラインは、強力なクライアントランタイム、プログラミングモデル、開発環境およびデータサービスをアプリケーション開発者に提供します。 一般的なデザインパターンをサポートし、既存の開発テクノロジやデプロイメントテクノロジにも対応し、標準ベースの新しい言語の利益をもたらします。この製品ラインは以下のテクノロジから構成されます。

  • Adobe FlexフレームワークおよびSDK
  • Adobe Flex Charting 2
  • Adobe Flex Builder 2
  • Adobe Flex Data Services 2

Flexフレームワーク

Flex 2の核となるFlexフレームワークは、Flex SDKの一部として無償でダウンロードできます。Flexフレームワークは、Flash Player 9およびActionScript 3.0が提供する基盤の上に構築されており、優れたRIAを作成するためのベストプラクティスに基づくリッチなクラスライブラリを提供します。Flexフレームワークは、拡張可能なユーザインタフェイスコンポーネントのリッチセット、レイアウトおよびユーザインタラクションを制御するための柔軟性のあるモデル、およびリモートサービスからデータにアクセスし、それをデータオブジェクトやユーザインタフェイスコントロールにバインドするための堅牢なインフラストラクチャを備えています。

Flexのコンポーネントライブラリには、ボタンやカラーピッカーなどの単純な部品から、データグリッド、アコーディオンペイン、リッチテキストエディタなどの高度なコントロールに至る、100余りのコンポーネントやコンテナが収録されています。開発者は、これらの組込みコンポーネントを使用してアプリケーションのユーザインタフェイスを作成することができます。また、そのサブクラスを作成して動作を変更したり、コンポーネントAPIを使用してまったく新しいコンポーネントを作成したりすることもできます。他の最新のユーザインタフェイス開発環境と同様に、Flexでは、データグリッド上のドラッグ可能カラムなどの定義済みのインタラクションを利用したり、明確に定義されたイベントを利用してアプリケーション固有の動作を定義したりすることも可能です。

開発者はMXMLを使用してFlexコンポーネントをレイアウトします。MXMLは、アプリケーションの視覚的外観の制御を宣言によって行うXMLベースの言語です。MXMLを使用すると、コンポーネントを配置したり、画面サイズに合わせてユーザインタフェイスのサイズを変化させるための制約を指定することができます。また、ビューステートやトランジションを使用して、異なるユーザアクションやアプリケーションイベントに対するアプリケーションの応答を制御することもできます。アプリケーションのルックアンドフィールをカスタマイズする場合は、カスケーディングスタイルシート(CSS)を使用して組込みのスタイルプロパティを設定するか、組込みの9スライスサポートを使用してカスタムビジュアルアセットをアタッチします。

Flexアプリケーションは、一連の組込みのサービスコンポーネントを使用してデータやサービスにアクセスします。開発者は、HTTPサービスやWebサービスを通じてXMLデータにアクセスしたり、リモートJavaオブジェクトへの接続性、パブリッシュ/購読メッセージング、新しいFlex Data Servicesなど、Flex Data Servicesが提供する追加のサービスを利用することができます。データ操作を効率化するために、Flexでは、データが返されたときに自動的にユーザインタフェイスを更新するリッチなデータバインディングインフラストラクチャを提供しています。これにより、アプリケーションはサーバからの結果を待っている間も応答が可能となります。

Flex Framework 2で強化された機能について詳しくは、「Introducing the Flex Framework*」を参照してください。

Flex Charting 2

アドビでは、Flexに対する柔軟なチャート作成用拡張機能を提供しています。開発者は、データをビジュアル化するこれらのコンポーネントを任意のアプリケーションに簡単に追加できます。Flex Charting 2のコンポーネントはクライアントでダイナミックにレンダリングされ、ドリルダウンやロールオーバーなどのチャートをより見やすくするためのインタラクティブ機能を簡単に追加できます。このコンポーネントには、外部から自由にアクセスできるAPIが用意されており、そのAPIを使って簡単にコンポーネントのカスタマイズや、独自のコンポーネントを作成することができます。

このチャートパッケージは、エフェクト、スタイル、データバインディング、ドラッグ&ドロップの使用についてフレームワークの一般的なインフラストラクチャに統合されており、Flex Data Services (下記参照)とシームレスに連携します。

Flex Builder 2

Flex Builder 2は、リッチインターネットアプリケーションを作成するための生産性の非常に高い環境を開発者に提供するために定義されたまったく新しいツールです。非常に高度なコーディングおよびデバッグ用の環境と、レイアウト、スタイル、およびインタラクションを直感的に設計できるツールを提供し、維持可能な優れたコーディングプラクティスを推進します。Eclipseプラットフォーム上に構築されたFlex Builderは、親しみやすく、しかも高い拡張性を備えた一連の機能を提供します。

Flex Builder 2を使用する開発者は、コーディング作業が大幅に加速することに気づくでしょう。コンテンツアシスト機能を使用すると、MXMLとActionScriptの両方でコードのヒントを表示できます。コードナビゲーション機能を使用すると、メソッドやクラスの定義をすばやく見つけることができます。ファイルを保存するたびにアプリケーションのインクリメンタルコンパイルを自動的に行うオプションは、編集、実行、デバッグのサイクルをスピードアップします。組込みのエラーレポート機能は、エラーの検出と修正を容易にします。状況依存ヘルプシステムを使用すると、ドキュメントをすばやく検索できます。Flashアプリケーションを効率的にデバッグできる高度なデバッグ方法により、既にEclipseを使用しているユーザも単一のIDEでクライアントとサーバのコードをデバッグすることができます。最後に、Flex Builder 2はCVSなどのソースコントロールシステムやAntなどのビルドツールと統合されているので、チームでの開発が容易です。

絶対位置、相対位置、または定義済みレイアウトのルール(垂直配置、タイル配置など)に基づいてコントロールを柔軟に配置できるビジュアルサポートも提供されています。革新的な機能である「ビューステート」のビジュアルサポートを使用すると、特定のイベントに対応したコントロールやアプリケーション全体の外観の変更を、わずか数行のコードでビジュアルに定義できます。CSSエディタを使用すると、新しいスタイルシートの作成や既存のスタイルシートとの統合が容易なだけでなく、編集されたスタイルやスキンをデザインビューに表示しながらコードを記述することができるので、更新とテストのサイクルが短縮されます。さらには、手作業で編集しているコードとデザインビューによって生成されたコードの間をシームレスに移動できるので、チームの開発者間でコードの矛盾が生じる心配がありません。

Flex Builder 2では、Flash Professional 8で作成したマルチメディアやビデオを読込むことができます。目標としているのは、インタラクティブコンテンツのデザイナー、ビデオ開発者、マルチメディア制作者、アプリケーション開発者にあらゆる面で最高のものを提供することです。Flash Professionalを使用すると、緻密さと表現力に秀でた強力なインタラクティブコンテンツやメディアを作成できます。さらに、Flex Builderを使用すれば、ユーザを夢中にさせるようなすばらしいアプリケーションを作成できます。今後は、これらのツール間のワークフローを強化し、より簡単かつ効果的にツールを連携できるようにしたいと考えています。

Flex Builder 2は、標準のツール価格設定で単体製品として提供されます。詳しくは、「Introducing Flex Builder 2*」を参照してください。

Flex Data Services 2

Flex 1.0では、データの転送や既存のサーバインフラストラクチャとの統合を支援する一連のランタイムサービスを提供していました。Flex Data Services 2のデータサービスでは、そこから大きく前進し、各層間でデータを透過的に同期化することによってエンタープライズアーキテクチャと情報プレゼンテーションを結合する、一連のメッセージベースのサービスと支援機能が提供されています。この結果、クライアント層、アプリケーション層、およびデータベース層の間でデータをやり取りするために必要なエラーの生じやすいコードの記述、デバッグ、および維持にかかる時間が短縮され、開発者の生産性が飛躍的に高まります。

また、Flex Data Servicesは、クライアントとサーバの間でデータをやり取りするための堅牢なメッセージングインフラストラクチャを備えており、開発者は、リアルタイムデータ、必要に応じて利用できるサービス、および非常に大きなデータセットを効率的に活用するアプリケーションを簡単に作成できます。フレームワークをシームレスに拡張するData Services の機能を使用すると、ごくわずかなオーバーヘッドでその利益を享受できます。たとえば、クライアントサイドのメッセージングアーキテクチャは、イベントやデータのキューイングと同期化のための洗練されたモデルを提供します。組織は、随時接続のアプリケーションを最小限の労力で作成できます。

Flex Data Servicesでは、データ転送用の効率的なバイナリプロトコル(AMF)も強化されており、WebサービスやJavaオブジェクトとのRPC型インタラクションを引き続きサポートしています。詳しくは、「Flex Data Services overview*」を参照してください。

Flashプラットフォーム: リッチインターネットアプリケーションをさらにリッチにする

Flashは、その高度なテクノロジーと、従来のデザインプラクティスの常識を超えた驚くほどクリエイティブな開発者コミュニティのおかげで、常にユーザエクスペリエンスの最先端をリードしてきました。その結果もたらされたユーザエクスペリエンスのデザインの進歩は、多くの場合、Flex開発者もすぐに利用することができます。たとえば、最近急速に利用が拡大しているオンラインオーディオおよびビデオは、そうした例の1つです。

Flash Playerは、市場で最も広く普及しているオーディオ/ビデオプレーヤーです。Flash Playerを使用すると、たとえば、RIAでビデオキューポイントのイベントをトリガするといったように、ビデオ要素を、それを含むコンテンツやアプリケーションにシームレスに統合できます。短いビデオファイルにはプログレッシブダウンロードを使用し、インタラクティブで高品質な長いビデオのストリーミングにはFlash Media Server 2.0を使用します。

開発者コミュニティは、アプリケーションとリッチメディアの間に現在存在するコミュニケーションの壁を打ち破るリッチインターネットアプリケーションを作成するために、これらの機能を活用しています。各アプリケーションに別々のメディアプレーヤーを起動させると、ユーザエクスペリエンスは断続的なものになってしまいます。しかし、Flex開発者は、そうする代わりに、アプリケーションのユーザインタフェイスおよびワークフローにビデオを本当の意味で統合することができます。たとえば、トレーニングビデオでは、アプリケーションの特定のユーザインタフェイス要素を強調表示してユーザを導いたり、ユーザの操作に応じてビデオの異なる部分を再生することができます。FlashのビデオストリームやオーディオストリームをFlex 2に統合するには、Flash Media Server 2またはFlash Video Streaming Serviceを使用します。Flash Video Streaming Serviceは、大手のコンテンツ配信ネットワーク(CDN)パートナーとアドビが共同開発した大規模なFlash Videoのデプロイメントを提供するためのホスティングサービスです。

最後に、アドビによるマクロメディア社の買収が完了した今、Flex製品ラインに新たにすばらしい技術革新がもたらされることでしょう。今後注目しているエリアには、リアルタイムコラボレーションのサポート、デザイナーおよび開発者のワークフローの改善、オフラインアプリケーションおよびドキュメントのサポートの強化などが挙げられます。Adobe Labsでは、今後数か月のうちに、将来への方向付けについてお知らせする予定です。

開発者コミュニティへの協力のお願い

ここまでは、Flash Player 9、Flexフレームワーク、Flex Builder、Flex Data Servicesを含むFlex 2製品ラインの概要を説明してきました。Flex 2製品ラインが目標としているのは、顧客が最高のアプリケーションエクスペリエンスを得られる優れたプラットフォームを開発者コミュニティに提供することです。

ここで、早期に製品の方向付けを確認していただき、フィードバックを提供していただく機会を開発者コミュニティに提供するために、Flex 2のプレリリースバージョンを作成しました。Adobe Labsでベータ版をダウンロードし、ご協力くださるよう、Flex製品チームに代わってお願い申し上げます。ColdFusion開発者の方は、ColdFusion/Flex Connectivityベータ3のアップデートも併せてダウンロードしてください。RSSフィード*をご購読になると、最新情報を確実に入手できます。また、Adobe Labs Forums*では、他の開発者の方々とアイディアや疑問点についてディスカッションすることができます。

ベータ版を初めから有意義にお使いいただけるよう、サンプルアプリケーションやチュートリアルなどのリソースを今後も提供してまいります。まずこれらをご覧になってから、新たな使い方をお試しください。

Flex 2の機能をお試しになりましたら、どうぞご感想をお聞かせください。インターネットアプリケーションを一変するような製品群を構築するために皆様のご協力をお願い申し上げます。

Flex 2リソース

著者について

David Wadhwani: Macromedia Flex 製品開発担当バイスプレジデント。 2002 年に Macromedia に入社する以前は、iHarvest Corporation の創始者兼製品開発担当バイスプレジデントを務める。iHarvest 在職中には、後に Interwoven, Inc. に売却される Web ベースナレッジ管理 / コラボレーションシステムの開発 / 導入業務を指揮。それ以前は、1990 年代初頭に Oracle に約 4 年間勤務し、Oracle 初のビジネス解析ソフトウェアパッケージの考案 / 設計 / 実務に携わるチームの一員として活躍。過去 5 年間、多数のソフトウェアスタートアップにアドバイスを提供。Brown University 卒業、The Indus Entrepreneurs 会員。