swx ドキュメント和訳

これはDocumantation at SWX : SWX DataFormat の日本語訳です。

日本語訳をするにあたってできる限り原文に忠実に訳すことを心がけていますが、誤りなどを見つけた場合には、risa.yuguchi@gmail.comまでお知らせいただくか、修正版を新たに公開していただけるとうれしいです。

クリエイティブコモンズ 表示-継承 2.0 イングランド&ウェールズ(英)(english - Attribution-Share Alike 2.0 UK: England & Wales)に従って公開しています。
original by Aral Balkan

Original (English) is in SWX Data Format.

Parlez-vous Francais? Read the SWX documentation in French by Gilles Bertrand.

ドキュメント一覧

  • 定義 Definitions
  • サポートするプラットフォームとテクニック Supported platforms and technologies
  • SWX(SWXデータフォーマット) SWX (SWF Data Format)
  • どうして新しいデータフォーマットが必要なのか? Why do we need a new data format?
  • SWX RPC
  • SWXの理念 The SWX Philosophy
  • システム全体の簡易性 Systemwide simplicity
  • SWXはどのくらい単純なのか。Moo Cardの例 How simple is SWX? Moo card example.
  • Public SWX Gateway The Public SWX Gateway
  • SWX Service Explorer
  • SWX Data Analyzerを使ったデバッグ Debugging with the SWX Data Analyzer
  • SWX PHP
  • SWXはどう発音するのか How do you pronounce SWX?
  • その可愛らしい小さなアイツは誰なのか Who’s the cute little guy, then?
  • SWXのクレジットと謝辞 SWX Credits and Acknowledgments
  • SWXのライセンスと法律用語 SWX Licensing & Legalese

定義:SWX ドキュメント和訳

これはSWXに関係した、SWXについて話すために共通語彙として持っているべき概念の定義のいくつかである。

SWX
Flash向けの加工不要なデータフォーマット。 swfのサブセットで純粋なデータのみのswfといえる
SWX RPC
swx内のエンコード済みRPCプロトコル。サーバサイドクラスをcallしたり、swfフォーマットで結果を取得したりできる
SWX PHP
PHPでのSWX RPC実装のこと。SWX PHPは現在SWX RPCを唯一の実装だが、Python、Ruby、J2EE、.Netなどでも実装されると思う
SWX AS
ハイレベルActionScriptクラス。クライアントサイドのクエリー作成をハンドリングし、SWX RPC呼び出しを実行する。必須ではないがクロスドメイン問題に有効な機能を提供するライブラリ
SWX Tools
SWX Service ExploererとSWX Data Analyzerから成り立っている。SWX PHPにバンドルされているし、どんな言語でもSWX RPCの実装にはバンドルされる予定
SWX API
Flicker,Twitter のようなAPIのこと。SWX dataformatやSWX RPCと同じくらい期待してよい物で、Flash開発者にマッシュアップの制作を簡単にする手段になる。実際、swxformat.orgでPublic SWX RPC gatewayに問い合わせれば、ActionScriiptを書くだけでこれらのAPIにアクセスできる。もちろんサーバサイドプログラムを書く必要は ない。
Public SWX RPC gateway
Open SWX RPC アクセスポイント。http://swxformat.org/php/swf.phpを通せば、サーバサイドコードを書かずにAPIアクセスが可能

サポートするプラットフォームとテクニック

Flash5以上でswxのswfファイルを単純なswfファイルとして作り読み込むことができる。手動でswfを作っていく限りFlash5以上をサポートする

SWF PHPは、現在作業中のSWX RPCの実装になるが、Flash6以降とFlashLite2.0または2.1互換のswxファイルを生成する。現在SWF PHPはFlash9/AVM2をサポートしてないが、そうなる予定だ

SWX ASは、ActionScriptライブラリであり、Flash7以降Flash6以降とMTASCでコンパイルできる。

SWX PHPを使うことができるのは、次にあげるデバイス向けのswfアプリケーションである。Flash Lite2.0/2.1を搭載したケータイ、Nintndo Wii、Sony PS3、それにNokia N800のようなインターネット対応タブレット、Chumbyなど。

もちろん、Adobe AIRを使ってswxに基づいたデスクトップバージョンのアプリケーションを作ることもできる

SWX(SWXデータフォーマット)

SWXとは、Flash向けの加工不要なデータフォーマットです。DataはFlash Playerによって解釈可能なSWFバイトコードで保持されます(Flashプラットフォーム上では、これ以上nativeなデータを取得することはで きません)。SWXフォーマットはSWFフォーマットのサブセットに当たります。(JSONがJavascriptのサブセットであるのと同じです)

SWXはOpenです。現在はInternetドラフトを書いている段階で、将来的にinformational RFCになるといいと考えています。

SWXデータファイルをloadMovie()でロードすれば準備は完了します。Flashオブジェクトに格納されたデータを利用するので、デシリアライズやデータをもむ必要はありません。

どうして新しいデータフォーマットが必要なのか?

最初にswxをアナウンスしたとき、AMFPHPのlead developerであるPatrick MineaultはSWFはわかりきったことをやり直そうとしているのかとたずねた。どうしてAMFPHPがあるのにSWXが必要なのかと(AMfPHP はFlash Remoting GatewayのPHP実装である)

まずはじめに、SWXとAMFPHPを比べるのはりん ごとオレンジを比べるようなものだ。当初からいっていたとおり、SWXは新しいデータフォーマットであり、SWX RPC は SWXにエンコーディングされた、リモート処理を呼び出すプロトコルである。つまり、SWXとAMF(データフォーマット)を比べるたり、SWX RPCとFlash Remoting(RPCプロトコル)を比べたり、SWX PHPとAMF PHPを比べたりすることはできる。

だから、本当の質問は、Flashプラットフォームは新しいデータフォーマットやRPCプロトコルを必要としているかというものだ。私はそれが必要で、こんな理由があると考えている。

なぜ必要なのか?

  • 現在あるフォーマットはネイティブでないもの、複雑なもの、例えばXMLのようにパースや整理するためのコードを各必要があるもの、変数をエンコードした文字列(LoadVarsやloadVariables)、Flash Remotingなどだ。
  • SWXファイルは、ネイティブなデータ(SWFバイトコード)であるからFlash Playerがデータをパースするときのオーバーヘッドが少ない。
  • SWX RPC はFlash Lite 2.0と2.1にとって(つまりモバイル機器上で動くFlash アプリケーションにとって)唯一のRPCソリューションである。Flash RemotingはFlash Liteでは動かない。
  • 最 重要:SWXは、それ自体がネイティブであり、クロスプラットフォーム間のデータ交換(allowDomainでSWFをサポート)のような点で生来の優 位性があり、単純に使えるものである。など(利用するために必須のActionScriptのライブラリはないが、使いたいと思ったときにはハイレベル (ActionScript)ライブラリがある)

全てのプラットフォームはパースの不要なネイティブ データフォーマットの恩恵を預かれるというのが、私の一番の望みである。他のデータフォーマットに対するSWXと他のRPCソリューションに対するSWX RPCの大きなアドバンテージは用意に扱えることだ。容易に使えることで、難しいからと伝統的にそういうものに尻込みしていた開発者によるデータ駆動方式 のアプリケーション開発やFlashプラットフォームでのマッシュアップ増加に拍車をかけることを望む。

SWX RPC

SWX RPCはSWXにエンコーディングされた、リモート処理を呼び出すプロトコルである。サーバサイドクラスのメソッドをコールでき、SWXフォーマットで戻り値を取得できる。

SWX RPCはOpenです。現在はInternetドラフトを書いている段階で、将来的にinformational RFCになるといいと考えています。

SWX RCPは記述不要で動作が軽く、通信プロトコルにHTTPを使っている。

基 本的なSWX RPCのコールは、FlashからJSON形式でSWX RPC エンドポイント(ゲートウエイ)に送られるパラメータを含んでいる。serviceClass,method,argsパラメータによって構成されてい る。それぞれ、バックエンド上のコールしたいサービスクラスのメソッドを規定し、そのメソッドに送りたいと思う引数になる。実行結果の戻り値データは resultプロパティに入ってFlashに戻される。

SWX PHP はSWXの主な理念であるシステム全体の簡易性を踏襲する。

SWXの理念

SWXは、Flashでデータ駆動のアプリケーションを作る際に簡単で楽しい体験をFlash開発者に提供するように設計されている。キーワードは簡単、楽しさ、体験だ。

簡単:SWXはこれ以上ないほどシンプルな物だ。重要なコア機能を犠牲にしないでもっとシンプルになる物があるなら、それをもっとシンプルにして行くつもりだ。

楽しさ:理由は人生は楽しくなければならないから。SWXツールはあなたの顔をにっこりさせ、重荷を持ち上げ、絶え間ない経験と美的でよい物を提供するためにある。だから、つくるアプリケーションは同じようにしたいと思う筈だ。

体験:こ れらの中心となる心情は、APIやコードベースだけでなく全てのSWX体験に現れている。それは、Webサイトやドキュメントやツールを含んでいる。焦点 はSWX Webサイトをはじめて訪れた瞬間からSWX,を入手して動かすまでをどれだけ簡単にすることだ。それをシステム全体の簡易性と呼んでいる。

システム全体の簡易性

システムはもっとも複雑な部分でさえ単純だ。独立したコンポーネントやプロセスを単純化することだけでは十分でない。コンポーネントとサブプロセス の間の関係ややりとりも単純化使用とするだろう。システム全体の簡易性は理解と全体のユーザ経験をサポートすることを含めた容易さへの抗議のアプローチに なる。

私の目的は、Flash開発者がSWXホームページにたどり着きSWX RPCを使ってFlashの中でデータを初めて取得する瞬間まで、データ駆動のFlashアプリケションを作り始めることを人間が可能な限り簡単にすることだ。

SWXはどのくらい単純なのか。Moo Cardの例

SWXはとっても単純だから、SWXを使ってFlashでデータを取得するインストラクションはMooCardにぴったりだ。(私を見かけたらそれについて尋ねてほしい!)

Flash上にFlickerから最新の100枚の写真のリストを取得する方法は次の通り。

  1. SWX Data Analyzerを開く
  2. Flashにて、新しいFLAファイルをつくり、ステージにムービークリップを一つ置く。インスタンス名は「loader」とつける。
  3. 次のコードをloaderをおいたフレームに書く
loader.serviceClass = "Flickr";
loader.method = "swxPhotosGetRecent";
loader.debug = true;
 
loader.loadMovie("http://swxformat.org/php/swx.php", "GET"); 

これでいい。作ったムービーをテストして、FlickerからFlashに読み込んだ結果を見るためにSWX Data Analyzerをみよう。SWXはなんて単純なんだろうか。

もし、Flashに含まれている結果を表示したいと思うなら、長い1行のダイナミックテキストをステージに配置して、そのインスタンス名を「status」と付け、次のコードをタイムラインに追加することだ。

function onEnterFrame()
{
    status.text = loader.result.photo[0].src;
} 

初期段階で、テキストフィールドstatusにはデータがロードされるまでundefinedと表示されるだろう。データがロードされたら、 Flickerから読み込んだ最新の写真リストの一番最初に並ぶ写真のURLを表示するだろう。データを読み込んだ瞬間に、どうやってFlashのネイ ティブなオブジェクトである結果にアクセスするか気がついたと思う。デシニアライズもデータをもむことも必要ないことだ!

この例 の中で、SWX Publick Gateway(http://swxformat.org/php/swx.php)をつかった。それは、ホスト(サーバ)を用意することもなく、どん なバックエンドコードも自分自身で書かずにサポートされたAPIを使ってマッシュアップを作るためにあなたのアプリケーションの中でいつでも使っていいも のだ。

Public SWX Gateway

SWXをインストールしたPHPの動くホスティングを使わずに様々なSWX APIを呼び出すためにswxformat.org上にあるpublicゲートウエイを利用することもできる。

SWX public gateway のためのスタートページを見てみなさい。SWX PHPやSWX PHP MAMPバンドルをインストールしたときにみられるであろうものと同じスタートページです。(swxformat.orgではindex.phpが start.phpになっている) 

publicゲートウエイ用のURLは次のものです。

http://swxformat.org/php/swx.php/

SWX public gatewayを使うことは推奨するけれど、DoS(denial of service)攻撃と似たようなあんまりたくさんのリクエストをおくってそれをあふれさせたりしないでほしい。

publicゲートウエイはSWX Service ExploreとSWX Data Analyzerのバージョンもホストしている。

戻る