| 0. |
リード |
| |
古くは、シンプルなテキストデータの送受信による簡単なサーバサイドとの連携から、Flash Remoting
MXを使用した、オブジェクト指向的なデータ連携や、Flash Communication Server MXを使用した、複数クライアントによるリアルタイム通信やストリームデータの送受信など最新のサーバサイド連携まで、バージョンMXが登場する過程において、Flashは様々な方法でサーバサイドとの連携を行い、その手段を進化させてきた。
第3部では、Flashで利用可能なこれらのサーバサイドとの連携を行う主要な技術を取り上げ、それぞれの特徴を図解するとともに、それらサーバサイド連携技術が持つメリットやデメリット、考えられる用途などを解説していく。 |
 |
| 1. |
テキストデータの送受信 |
| |
| メリット |
様々なサーバプログラムとの連携を手軽に構築できる。 |
| デメリット |
大規模サイトの構築や大量データの取り扱いは適していない。 |
| 用途 |
掲示板など、従来のCGIプログラムの代替として。 |
|
Flashでは、テキストデータの送受信機能を利用することで簡単なサーバサイド連携が可能である。
たとえば、ActionScriptのloadVariablesアクションを使用すれば、HTMLの<form>と連携するCGIなどと同じように、ActionScriptやテキストフィールドの変数の値をサーバサイドのプログラムへと送信し、サーバサイドで処理を行った結果をFlashムービーに取り込むことができる。LoadVarsオブジェクトや、XMLオブジェクトもloadVariables同様に利用できる。
この方法はPerlやPHPなど、自由にサーバプログラムを構築でき手軽に利用できるというメリットがあるが、それぞれのサーバプログラムでデータの解析や構築などの処理が必要で、多数のサーバプログラムを実行したり、大量データをFlashに取り込んだりする場合には、処理が複雑になりやすくあまり適していない。 |
| |
 |
 |
| 2. |
ソケット通信 |
| |
| メリット |
比較的安価にマルチユーザコンテンツが構築できる。 |
| デメリット |
取り扱いが難しく、情報も少ないため、敷居が高い。 |
| 用途 |
チャットや簡単なオンラインゲームなど。 |
|
Flashでは、ActionScriptのXMLSocketオブジェクトを使用したソケット通信を行うことができる。
たとえば一定間隔でページのリロードを行い、擬似的にチャットの機能を実現したHTMLとCGIを利用したチャットがあるが、この方法ではリアルタイムな処理ができず、サーバへの負荷が大きいなど問題点もある。ソケットを使用すると、サーバからクライアントに対してデータを送信できるため、クライアントがサーバを監視する必要がなく、リアルタイムにデータの更新ができる。
ソケットを利用するには、サーバサイドでクライアントからのデータを処理するプログラムを実行しておく必要がある。これらのプログラムは有償・無償のものが数種提供されており、それらを使用することもできる。ただし、後述するCommunication
Serverを使用すれば、ソケット通信以上の機能が容易に実現できるため、現状その用途は限定される。 |
| |
 |
 |
| 3. |
Flash Remoting |
| |
| メリット |
比較的容易にデータ連携処理を構築できる。 |
| デメリット |
使いこなすには、オブジェクト指向などの開発技術が必要。 |
| 用途 |
本格的なサーバ連携アプリケーション。 |
|
Flash MXから実装されたFlash Remotingの機能を使えば、従来のloadVariablesなどよりも、非常に容易に、かつ効率的にサーバ連携処理を構築することができる。
Flash Remotingには、
| ・ |
サーバサイド処理が、あたかもクライアントサイドのオブジェクトを扱うようにアクセスできるため、クライアントサイドとサーバサイドの処理を分離でき、オブジェクト指向的な開発ができる。 |
| ・ |
ActionScriptとサーバサイドで送受信するデータが自動変換されるため、データを解析・構築する処理が不要で直感的に開発ができ、パフォーマンスもよい。 |
| ・ |
NetConnection Debuggerツールを使用して、送受信するデータの情報を監視し、デバッグなどの作業が効率よく行える。 |
など多数のメリットがあり、本格的なサーバ連携アプリケーションを開発する場合には非常に有効な手段である。 |
| |
 |
 |
| 4. |
Communication Server |
| |
| メリット |
ストリームデータや共有オブジェクトなど、非常に高機能。 |
| デメリット |
現状では参考になる情報が少なく、比較的敷居が高い。 |
| 用途 |
ビデオ会議や映像・音声のストリーミング配信など。 |
|
Flash MXとFlash Communication Server MXを連携させると、非常に高機能なマルチユーザコンテンツを構築することができる。チャットなど、テキストデータのみを利用するのであればXMLSocketを使用したソケット通信でも実現可能であるが、Flash
Communication Server MXと連携を行うことにより、
| ・ |
クライアントのカメラ映像やマイク音声を、リアルタイムに他のユーザへ配信したり、サーバへ保存したりする。 |
| ・ |
サーバから各クライアントへストリーミングデータを配信する。 |
| ・ |
共有オブジェクトを使用して、各クライアントで情報を共有したりサーバへ保持したりする。 |
など、多数の機能を実現することができる。
また、これらストリーミングなどの機能が、他のクライアントアプリケーションの助けがなくとも、ひとつのFlashクライアント上で実装できる点でも優位性があると言える。 |
| |
 |
 |
| 5. |
サーバサイドでのswf生成 |
| |
| メリット |
特殊な用途に対しては有効な手段となる。 |
| デメリット |
情報が非常に少なく、取り扱うのは困難。 |
| 用途 |
Flash機能の補完として。 |
|
Flashムービーがサーバへ通信を行うという通常のサーバサイド連携のほかに、サーバサイドで動的にFlashムービー(swfファイル)を生成する方法もある。
Macromedia Generatorは、サーバサイドで取得したデータを元に、それが反映されたswfを生成することにより、動的なグラフなどの表示を行うことができた。Macromedia
Generatorは開発が中止されてしまったが、サーバサイドでswfを生成する方法として、現在では、PHPやRubyなどから利用できるMingというモジュールや、Javaで実装されたJGeneratorといった製品が提供されている。
現在ではActionScriptが強化されたため、サーバサイドでswfを生成する必要性がなくなってきたが、たとえばJPEG以外の形式のビットマップの取り込みなど、機能を補完するような特殊な用途としては利用価値がある。 |
| |
 |