" /> shortnote: March 2006 Archives

« February 2006 | Main | August 2006 »

March 10, 2006

Ted Nelson's lecture

昨日3/9,デジハリ大学院にて,テッド・ネルソン(Ted Nelson)さんの特別講演をきいてきました.

若い頃の彼は映画を製作したり雑誌を刊行したりとメディア制作に携わっていたらしいのですが,そんな彼がコンピュータに始めて触れたのは学生時代.直感的にコンピュータがメディアマシンであることを理解し,人類の未来はコンピュータスクリーンにあると確信したとか.自分の人生が何のためにあるのかが分かった!技術者にテクストの未来を託すことなどできないと思いたったのだそうです.

彼のいうトラディショナルなコンピュータの概念とは,Hierarchic,紙のメタファ,1 File=1 Documentの3つであり,1970年代のゼロックス・パロアルト研究所で形成されたもの.なぜ,現在のようなコンピュータ環境になってしまったのか・・・.それはResolution of agenda(直訳:隠された意図の結末)であり,ゼロックスはプリンターを売りたかったのだという説明には,なかなか説得力がありました.

一方,ネルソンさんのAgendaは,「紙よりも自由に,便利に,コンピュータならではのやり方でテクスト(に限らないが)を扱う」こと. 「世の中の全てはパラレルかつクロスコネクテッドである!」 という信念のもと,Xanadu(http://www.xanadu.com.au/)を提唱してきたわけです.

提唱している概念が世の中でうまく機能しているかどうかは別として,人生かけて戦っている人の話は面白いです.

レクチャーの最後に,彼が今やってみたい事は,EDL(Edit Decision Lists)を利用したマイクロペイメントの仕組みであるという話がありました.
(参照 http://www.edlmax.com/maxguide.html

彼が実現したい事は・・・

  • もっと自由に引用を可能にする環境
  • 作者が直接恩恵を受けられるような環境
そのためには次のような仕組みにすることが必要
  • もっと自由にコンテントの引用ができる(必要な手続きを簡単に,必要な箇所だけ)
  • 引用したものがオリジナルのコンテクストに繋がっている
  • 逆に,オリジナルからどう進化・派生したのかをたどることができる

彼の提案するマイクロペイメントの仕組みがどのように機能するのか,私にはうまくイメージできませんでしたが,EDLについては少し調べてみようと思いました.ラボでの個人プロジェクトである「音のCMS」のなかで,引用,リミックスの行為をどのように支援するかという課題の参考になるかもしれずと.

March 8, 2006

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] 形式をモデルにしたバイナリ形式