openlaszlo

すこし前から、サーバサイドのフラッシュ作成アプリケーションフレームワーク、open laszloをいじっている。
日本語の情報は、http://laszlo.no-ip.org/ とか http://www.atmarkit.co.jp/fwcr/rensai/laszlo01/01.html だろうか。本家はそのあたりから辿ってください。

構造としては、JavaServlet上で動作するもので、そこにlzxという拡張子の定義ファイルを置いておくと、アクセス時にflashコンパイルされる。そのへんは、laszloフレームワークがいろいろやってくれるわけだが、lzxファイルを直接swfファイルにコンパイルするコマンドも用意されているので、スタンドアローンのswfにもできる。
lzxは基本的にビューをXMLで、コードをJavascriptで記述するようになっているものの、関数定義用のXMLタグが用意されていたりしてXMLJavascriptのハイブリッド感が強い。けっこう癖あるかも。

でもって、何をやっていたかというと、「流れるはてなブックマーク」のフラッシュ版。フラッシュのほうがアニメーションが綺麗だし、laszloは(フラッシュも?)XML文書を扱うなのが得意。なので、サーバ側にはてなブックマークを蓄積しないで、クライアント(ブラウザ)側で取得したRSSをそのまま表示するようにして、サーバいらずのアプリにしようとしていた。

ところがどっこい、さすがに任意のWeb上のリソースを、クライアントが直接読むことはできなかった。laszloフレームワークでプロキシーしてやらないと駄目なようだ。フラッシュ化したらそのままアクセスしてくれるかな、と思ったら、それでも駄目。しょーがないから、同じサーバのリソースを読むように改造したものをフラッシュ化したら、やっぱり直接リソースのURLにリクエスト投げてるわけじゃなくて、やたらややこしいリクエストがリソースのURLじゃなくて配置したフラッシュのURLに飛ぶ始末。フレームワーク的には一回自分で受けてから、裏方さんががんばってデータをやりくりしてから返してくれるわけね。

うーん、やっぱり、CGIでラッピングするしかないかあ。面倒だなあ。これなら、まだ普通のAjaxとローカルのwebrickでしたてたほうが素直そうだなあ。