Red5とその他のオープンソースFlash技術
サーバーサイドでFlashファイル(.swf)を生成する
Ming(http://www.libming.org/)は、Flashファイル(.swfファイル)を生成するC言語のライブラリです。
PerlやPHPなどで書かれたラッパーが存在するので、多くのUNIX系の環境であれば簡単に扱うことができます。これによってサーバーサイドでSWFファイルを動的に生成することが可能になります。Mingは比較的古くからあるライブラリで、Flex SDKがリリースされる以前はFlash IDEを買わずに簡単なswfを生成する方法として、特にサーバーサイドのアプリケーションエンジニア層に重宝されてきました。
ですが、現在でもなかなかバージョンが進まなかったり、複雑なアニメーションなどを実現しようとすると途端に難しくなったりと注意するところは多々あります。例えば、サーバーサイドをPerlやRubyなどで書いて一部の例えばグラフのようなもののみをFlashで実現したいような用途では、その言語のままでFlashを記述していけるというメリットがあります。
OpenLaszlo(http://www.openlaszlo.jp/)は、「オープンソースのRIA開発プラットフォーム」という位置づけになっています。
特徴は、コンテンツをLZXという独自のマークアップ言語で記述することによってサーバーサイドでFlashのみならずHTML+JavaScriptとして生成することができることです。
LaszloサーバーはJavaサーブレットコンテナ上で動く「フロントエンドを生成するため」のアプリケーションで、ユーザーのブラウザに表示されたコンテンツからサーバーへのデータ通信は独自ではなく、XML形式などの一般的なものが使われます。
非常に特徴的な技術で、最終的な出力形式に依存しない言語でファイルを記述しておくやり方は、問えば携帯ブラウザの多様化などで今後1アプリケーションに対しフロントエンドが複数必要になってくる場合は有効になってくるかもしれません。現在、国内ではほとんど例を聞きませんが、今後の動きには注目する価値があると思います。
まとめ
いかがでしたでしょうか。本連載ではまず「ストリーミング」をキーワードにFlashでの動画の扱い方、また、それを可能とするサーバーサイドアプリケーションであるRed5を中心に紹介してきました。
サーバーと連携したFlashアプリケーションというと動画ストリーミングに代表されるマルチメディア的なものがまず連想されますが、それだけではなくサーバーと連携することによりオブジェクトの共有やメソッド呼び出しなど、よりオンラインであることを生かしたFlashアプリケーション開発が可能になります。
第2回(http://www.thinkit.co.jp/article/152/2/)では、Red5に付属してくるデモアプリケーションの動かし方について紹介しました。Red5はJavaで書かれたオープンソースのソフトウエアですので、多くの環境で簡単に使いはじめることができます。Flashクリエーターにはやや敷居が高いと考えられがちなJava言語ですが、Red5のデフォルトのアプリケーションを動かすまでならば一般的なアプリケーションと同じような気軽さで動作させることができます。
まずはRed5をダウンロードして、そのサンプルで遊んでみてください。実際にちょっと触ってみるとより具体的なイメージがわき、新しいアイデアにつながるかと思います。
第3回(http://www.thinkit.co.jp/article/152/3/)では、クライアントとサーバーサイドと両方のプログラミング手法について紹介していますので、アイデアが浮かんだらそれを取りかかりにプログラミングに進んでいただけたらと思います。
今回は、Red5と関連すると思われるプロジェクトをいくつかピックアップしてみました。そういったものをチェックしていくと今後のトレンドが見えてくるかもしれませんし、これからのFlash動向をつかむ際の参考になればと思います。
なお、本稿の執筆にあたって、以下を参考にしました。
「Adobe Open Sourse」(http://opensource.adobe.com/)(アクセス:2008/11)
「Open Source Flash」(http://osflash.org/)(アクセス:2008/11)