Flex/AMF3 の概要

AMF3 (Action Message Format version 3) は、Adobe Systems が開発したバイナリ プロトコルです。 主に、Flex アプリケーションによるリモート プロシージャ呼び出しに使われます。

AMF3 は、転送データをできるだけ小さくすることを主目的に設計されています。 そのため、Silk Performer でプロトコルをカスタマイズするのが困難になっています。 AMF3 プロトコルをカスタマイズしやすい、人が読める形にするために、Silk Performer は、スクリプトの記録時に AMF3 トラフィックを XML に変換し、再生時に XML を AMF3 形式に変換して戻します。 つまり、バイナリ AMF3 データを 16 進文字列形式で読む必要がないということです。 逆に、記録されたスクリプトや TrueLog では、XML 形式のデータしか見ることができません。

AMF0 と AMF3 のサポートは緊密に統合されています (実際に AMF3 は AMF0 のメッセージ構造を使用しています)。 AMF3 メッセージはどれも、AMF0 メッセージとして始まります (データ ストリームの最初の 2 バイトでバージョン "3" が指定されていても同じです)。 どこで AMF0 エンコードが終了し、どこで AMF3 エンコードが開始するかは、特別な AMF0 データ タイプ マーカーによって示されます。

Flex について

アドビ システムズ によると、

"Flex は、すべての主要なブラウザ、デスクトップ、オペレーティング システムに一貫して配置できる対話式で表現力の高い Web アプリケーションを構築するための、無償のオープン ソース フレームワークです。 最新の標準規格準拠の言語と、一般的なデザイン パターンをサポートするプログラミング モデルを備えています。 UI のレイアウトと動作の記述には XML ベースの宣言型言語である MXML を使用し、クライアント ロジックの作成には強力なオブジェクト指向プログラミング言語である ActionScript 3 を使用します。 また、Flex には、RIA 作成のための 100 以上の実績ある拡張可能な UI コンポーネントを含むリッチ コンポーネント ライブラリや、対話式の Flex アプリケーション デバッガも用意されています。

Flex で作成したリッチ インターネット アプリケーションは、ユビキタスな Adobe Flash® Player ソフトウェアを使用してブラウザで実行したり、Adobe AIR™ のデスクトップで実行することができます。 このため、Flex アプリケーションは、すべての主要なブラウザやさまざまなオぺレーティング システム上のデスクトップで、環境を越えて一様に実行することができます。 また、オペレーティング システムをまたがった実行環境である Adobe AIR を使用することにより、デスクトップの Flex アプリケーションからローカル データやシステム リソースにアクセスできるようになっています。

生産性に優れた Eclipse™ ベースの開発環境である Adobe Flex Builder 3 と、Flex 開発で使用できる先進のデータ サービスを集めた Adobe LiveCycle Data Services ES を使用することで、アプリケーション開発を加速することができます。 これら 2 つの製品はお求めいただくことができます。"

先進の Flex データ サービスについて

Adobe によると、

"Adobe LiveCycle™ Data Services ES は、RIA でデータを使用するための包括的なデータ有効化機能を備えています。 そのため、RIA は、より高速かつ効率的なオペレーティング モデルで、バックエンド データやビジネス ロジックにアクセスすることができます。 また、LiveCycle Data Services ES を使用すると、LiveCycle ES のビジネス プロセスとドキュメント サービスをシームレスに統合することができます。

BlazeDS は、すべての開発者に Flex のリモーティングとメッセージングの機能を提供する、無償のオープン ソース プロジェクトです。 Flex のリモーティング機能では、ActionScript Message Format (AMF) と呼ばれるシリアル化されたバイナリ データの転送形式が用意されているため、RIA へのデータ転送を高速かつ効率的に行ってアプリケーションの性能を高めることができます。 また、Flex のリモーティング機能を使用することで、開発者は迅速かつ簡単にバックエンドのビジネス ロジックやビジネス データに接続できます。 Flex のメッセージング機能では、リアルタイムのデータ プッシュ配信とパブリッシュ/サブスクライブが追加されており、この 2 つの強力な機能を簡単に実行できるようになりました。 BlazeDS を使用することで、このような強力な Java サーバー統合機能を無償で使い始め、後から LiveCycle Data Services Community Edition へ登録して認定ビルドやサポートを利用したり、LiveCycle Data Services ES Enterprise エディションにアップグレードしてサーバー ソリューションのすべての機能を利用することができます。"