« Update : Flash ActionScript - RSS parser package - | Main | Ted Nelson's lecture »

Flash Remoting with PHP - 01

Flashアプリケーションの開発にあたり,Flash Remotingについての簡単なメモを作成したので公開したいと思います.Flash Remotingとは,Flash クライアント/サーバ間にネットワーク通信チャネルを提供するアプリケーションサーバゲートウェイのしくみです.Flashクライアント/サーバ間で簡易な通信を行うだけであれば,Flash Remotingを利用するまでもなく,下記のようなやり方がデフォルトで備わっています.

MovieClip.getURL()
GET,POSTで値をサーバに渡し,結果はブラウザに表示
MovieClip.loadVariables()
GET,POSTで値をサーバに渡し,変数名=値&変数名=値&・・・のテキスト形式で結果受信
XML.sendAndLoad()
POSTでXMLをサーバに渡し,XMLを受信
XML.load()
GETでURLにアクセスし,XMLを受信
XMLSocketクラス
XMLで送受信.1024番以上のポートにしか接続できない
以上に列挙したやり方ではなく,Flash Remotingを使う利点としては,下記のようなことがあるようです.

・サーバとのデータ連携が容易.テキストデータだけでなく,バイナリやオブジェクトデータの交換が可能
・ログ記録、デバッグ機能
・パフォーマンスの改善

今回注目したのはパフォーマンスのメリットです.Flash Remoting は,データのやり取りの形式としてAction Message Format(AMF) を使用し,Flash アプリケーションとリモートサービスとの間のメッセージを直列化します.つまり,送りたいデータをサーバサイドでXMLに整形し,クライアントサイドでパージングして取り出すというような,XMLクラスを用いた通信で余儀なくされていた余分なコストが無くなり,パフォーマンスの改善に寄与します.また,余分なデータがそぎ落とされるので,ネットワークの帯域幅を効率的に利用することができます.

Macromediaのマニュアルには,「サーバーサイドでは、Flash Remoting は、Java アプリケーションサーバー内のサーブレット、.NET サーバー内のアセンブリ、ColdFusion MX 内のネイティブサービスとして動作します。」とあり,PHPを正式にはサポートしていません.しかし, AMFPHP (http://www.amfphp.org/)というオープンソースのFlash Remotingゲートウェイを利用すれば,PHPだけでFlash Remotingを実現できます.マルチバイト対応等,ここ最近よくメンテナンスされているようです.次回は実際にAMFPHPを試してみます.

補足
AMF:Simple Object Access Protocol [SOAP] 形式をモデルにしたバイナリ形式

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)