2002/07/10
Macromedia Flash Communication Server MXレビュー
2002年7月9日にMacromediaからFlash Communication Server MXが正式発表になりました。ここではそのFlash Communication Server MXの概要をお伝えしたいと思います。
Flash Communication Server MXはTincanというコードネームでこれまで開発されており、ジェレミー・アライア氏(Macromedia CTO) のインタビュー記事にもTincanの名前が以前から出てきていました。
また正式発表前からFlash Communication Server MXを使ったコンテンツも公開されておりビデオチャットのページなどは注目を集めていました。
今回の発表によって、Flash 6 PlayerとFlash MXに既に備わっていたにも関わらずまだドキュメント化されていなかったいくつかの機能も公にされたことになります。例えば、Webカメラやマイクからの入力を扱う機能は既にFlash 6 Playerに内蔵されていたのですが、ActionScript辞書にはこれまで記述されていませんでした。これについては後で関連ActionScriptオブジェクト解説で説明します。
Flash Communication Server MXではリアルタイムの通信機能が本格的にサポートされ、サーバを介したクライアント間の画像や音声のストリームのやりとりやActionScript内の変数の同期などが可能になります。RealServerのような普通のストリーミングサーバとしての使用も可能です。ストリーミング機能のデモとしては、MX Executive Presentation が少し前に話題を集めました。
Flash Communication Server MXは現在Windows版のみ用意されており、今後Linux版とSolaris版が予定されています。日本ではまだ発表は行われていませんが、発表の予定はすでにあり、日本語版の発表にあたっては、ユーザインタフェースなどは英語のままで、ドキュメントのみ日本語化されるようです。つまりソフト(バイナリ)自体は海外版と日本語版の差はないということです。それでもUnicodeの採用で多国語対応は問題ないようです。
実際に想定される用途としては、
購入が想定されるターゲットとしては
Professional EditonににはCapacity Packというパッケージを追加することで、一つあたり帯域を10Mbps、接続数を500 増加させることができ、複数追加可能です。Capacity Packの値段はUS $4000です。Personal Editionも複数購入することで、個数倍のスループットと同時接続が得られるようです。つまり2ライセンスで2Mbps、20同時接続ということです。
Flashmagazine.comの記事には、最大50Mbps、2500同時接続までのCapacity packが予定されていて、値段は US $18,000になるという情報があります。
ビルトインオブジェクトは以下のようなものが用意されています。
Flash Remotingとは、基本的にはFlashとWebアプリケーションサーバとのActionScriptベースでの接続を行うものですが、Flash Communication Server MXとWebアプリケーションサーバの接続にも用いられます。Flash PlayerもしくはFlash Communication Server MXがWebアプリケーションサーバ上のFlash Remotingサービスを呼び出すという形で使われます。通信のプロトコルはHTTPベースで、AMF(Action Message Format)という仕様非公開のバイナリフォーマットが用いられます。Webアプリケーションサーバ側のFlash Remoting対応技術はJ2EE, ColdFusion MX、.NETです。
また正式発表前からFlash Communication Server MXを使ったコンテンツも公開されておりビデオチャットのページなどは注目を集めていました。
Flash Communication Server MXとはなにか
Flash Communication Server MXは、Flash MXをインタフェースとして画像、音声、テキストを用いたリアルタイムコミュニケーションを行うためのサーバアプリケーションです。今回の発表によって、Flash 6 PlayerとFlash MXに既に備わっていたにも関わらずまだドキュメント化されていなかったいくつかの機能も公にされたことになります。例えば、Webカメラやマイクからの入力を扱う機能は既にFlash 6 Playerに内蔵されていたのですが、ActionScript辞書にはこれまで記述されていませんでした。これについては後で関連ActionScriptオブジェクト解説で説明します。
Flash Communication Server MXではリアルタイムの通信機能が本格的にサポートされ、サーバを介したクライアント間の画像や音声のストリームのやりとりやActionScript内の変数の同期などが可能になります。RealServerのような普通のストリーミングサーバとしての使用も可能です。ストリーミング機能のデモとしては、MX Executive Presentation が少し前に話題を集めました。
Flash Communication Server MXは現在Windows版のみ用意されており、今後Linux版とSolaris版が予定されています。日本ではまだ発表は行われていませんが、発表の予定はすでにあり、日本語版の発表にあたっては、ユーザインタフェースなどは英語のままで、ドキュメントのみ日本語化されるようです。つまりソフト(バイナリ)自体は海外版と日本語版の差はないということです。それでもUnicodeの採用で多国語対応は問題ないようです。
実際に想定される用途としては、
- インスタントメッセージング
- ビデオ会議
- 仮想ホワイトボード
- オンライン教室
- ビデオ/オーディオモニタリング
購入が想定されるターゲットとしては
- eラーニングの開発者 - オンライン教室
- セールスとサポートの組織 - リアルタイムのサポート
- 企業のイントラネットITグループ - インスタントメッセージングとビデオ会議
- ISP - プライベートなビデオ会議
- セキュリティベンダ - ホーム/オフィスモニタリング
資料
Macromediaのサイトで現在用意されている関連情報としては以下のようなものがあります(全て英語)。- Macromedia Flash Communication Server MX
製品ホームページ - Flash Communication Server MX Application Development Center
開発情報のトップページ - Macromedia Flash Communication Server MX FAQ
FAQ - Streaming Video into Macromedia Flash
Flashをクライアントに使ったストリーミングアプリケーションの制作について - Use Cases for Media, Messaging and Collaboration
Flash Communication Server MXの概説と想定される使用例(PDF) - Flash Communication Server Security Overview
- Flash Communication Server Security Checklist
制作にあたってのセキュリティのチェックリスト - Summary Assessment of Macromedia Flash Communication Server MX Security Features
Flash Communication Server MXの機能のセキュリティ面での評価(PDF) - Using Flash Communication Server MX with Flash Remoting
Flash Remotingとの連携について - Flash Communication Server Coding Best Practices
他人に分かりやすくかつ修正を行いやすい開発方法 - Macromedia Flash Communication and Audio
音声の使用にあたっての開発上の注意 - Developing scalable Macromedia Flash Communication Server Applications
サーバのスケーラビリティの問題について(クラスタリングなど) - Logged In : Which edition of Macromedia Flash Communication Server MX do I need?
製品ごとの違いについて(Personal EditionとProfessional Editionの違いなど)
価格、バージョン
既にMacromediaのサイトからから無料のトライアル版がダウンロード可能になっています(Windowsプラットフォーム、英語版)今のところWindowsプラットフォーム向けのみ用意されており(Unix版は年内リリース予定)、Personal EditionとProfessional Editionの2種類があります。Personal Editionは最大1Mbpsのスループットで最大10同時接続、値段はUS $499です。Professional Editionは最大10Mbpsのスループットで最大500同時接続、値段は US $4500です。Professional EditonににはCapacity Packというパッケージを追加することで、一つあたり帯域を10Mbps、接続数を500 増加させることができ、複数追加可能です。Capacity Packの値段はUS $4000です。Personal Editionも複数購入することで、個数倍のスループットと同時接続が得られるようです。つまり2ライセンスで2Mbps、20同時接続ということです。
Flashmagazine.comの記事には、最大50Mbps、2500同時接続までのCapacity packが予定されていて、値段は US $18,000になるという情報があります。
XMLSocketとの比較
ストリーミングのサポートは新たな機能ですが、ネットワーク接続だけならこれまでもXMLSocketで可能であり、FACEsで詳しく扱ってきました。以下ではXMLSocketを使った接続とFlash Communication Server MXの相違点を挙げています。- XMLSocket使用の場合
- 接続にXMLSocketオブジェクト(ごく普通のTCPソケット)使用。
- ストリーミング機能(一方向の連続的接続)はない
- 複数クライアント間で情報を共有するためには、共有する必要のある情報をXMLドキュメントとして再構成して送信、受信時はXMLドキュメントの解析(パース)が必要
- 有料のソリューション(Fortressなど)もあるが、費用がかからないサーバも存在する(FACEsサーバなど)
- 接続自体は普通のTCP接続なので、自分でサーバプログラムを制作することも可能。
- Flash Communication Server MX使用の場合
- 接続にNetConnectionオブジェクト使用。
- ストリーミング機能あり。
- 複数クライアント間で共有する必要な情報は、SharedObjectを用いて管理。送信データの再構成、受信データの解析の必要がない。--> 通信オーバヘッドの解消とアプリケーション作成の工数削減につながる
- ライセンスは帯域、接続数ベースの価格。
- RTMP(Real-Time Messaging Protocol)という仕様の公開されていない専用プロトコルを用いて通信。サーバ側のロジックはJavaScriptでプログラミングする。サーバ設定はXMLベース。
関連ActionScriptオブジェクト/メソッド解説
ActionScript辞書でこれまでドキュメントされていなかったFlash Communication Server関連のオブジェクト/メソッドは以下のも のがあります。- Cameraオブジェクト
カメラからのビデオキャプチャ - LocalConnectionオブジェクト
同一マシン上の通信(FSCommandやJavaScriptを使わない=プラットフォームを選ばない) - Microphoneオブジェクト
マイクからの音声キャプチャ - MovieClipオブジェクトのMovieClip.attachAudio メソッド
MicrophoneオブジェクトもしくはNetStreamオブジェクトをMovieClipに付加 - NetConnectionオブジェクト
Flash PlayerとFlash Communication Server MX(& Flash Remoting)との双方向接続 - NetStreamオブジェクト
NetConnectionから取得した接続を通じて、Flash PlayerとFlash Communication Server MXとの間に一方向のストリーミング接続を開く - SharedObjectオブジェクト
ローカル/リモートの持続的オブジェクト(セッション単位で消えずにcookieのように残るオブジェクト)間でデータ共有を行う - ローカルの持続性を管理
- 共有データをサーバに格納
- リアルタイムのデータ共有
- SystemオブジェクトのSystem.showSettings メソッド
Flash Playerの設定パネルを表示し、ユーザに選択させる - カメラとマイクへのアクセスの許可/不許可
- SharedObject用のローカルディスクスペースに関する設定
- デフォルトのカメラ、マイクの選択
- マイクのゲインとエコー抑制の設定
- Videoオブジェクト
SWF埋め込み型でないストリーミングビデオの表示 - Cameraオブジェクトからのローカルのライブストリーム表示
- NetStreamオブジェクトからのリモートのライブストリーム表示
サーバ側ActionScriptオブジェクト解説
サーバ側のプログラミングはサーバサイドActionScriptという ECMA-262(JavaScriptの標準仕様)準拠の言語で行われます。 機能としては- ログイン手続きの制御
- 接続中のFlashムービー内のイベント制御
- ユーザ間での情報共有、更新の管理
- サーバリソースへのユーザによるアクセスに対する権限管理
- 他のサーバとの通信
ビルトインオブジェクトは以下のようなものが用意されています。
Flash Communication Server MX(以下flashcomという略称も使います)のアプリケーションインスタンスの情報管理を行う。flashcomアプリケーションはストリーム、共有オブジェクト、ユーザ情報(クライアント)の集合体であり、Applicationオブジェクトがそれぞれの情報をひとつの単位として管理する- Clientオブジェクト
クライアントとflashcomの接続管理を行う。(ユーザがアプリケーションに接続すると自動的に生成される) - NetConnectionオブジェクト
flashcomとアプリケーションサーバ、flashcomと他のサーバのflashcom、flashcomアプリケーションとflashcomアプリケーションの間の双方向接続を行う - SharedObjectオブジェクト
複数のクライアントムービー間のデータ共有を行う。 - Streamオブジェクト
flashcom内のストリーム管理を行う。ストリームはFlash Playerとflashcomの間もしくは二つのflashcomサーバ間の、一方向接続である。
Flash Remotingとの関連
Flash Communication Server MXはWebアプリケーションサーバの接続が可能であり、データベースやサーバサイドアプリケーションロジックとの連携をActionScript(JavaScript)ベースで行うことができます。ここで使われるのがFlash Remotingという技術です。Flash Remotingとは、基本的にはFlashとWebアプリケーションサーバとのActionScriptベースでの接続を行うものですが、Flash Communication Server MXとWebアプリケーションサーバの接続にも用いられます。Flash PlayerもしくはFlash Communication Server MXがWebアプリケーションサーバ上のFlash Remotingサービスを呼び出すという形で使われます。通信のプロトコルはHTTPベースで、AMF(Action Message Format)という仕様非公開のバイナリフォーマットが用いられます。Webアプリケーションサーバ側のFlash Remoting対応技術はJ2EE, ColdFusion MX、.NETです。