技術の相性

Google App Engine と REST

Google App Engine(以下、GAEと略します)のBigTableではRDBで言うところのjoinが使えないらしいです。それを聞いて最初は「何?じゃあ、他モデルのデータを同時に参照させたかったら自モデルにデータを書き込まなきゃならんのか?」と思いました。しかし、たぶん違う。joinに相当する操作を自分でやれ(プログラムを書け)ということだと思います。
いずれにせよ「めんどくさっ。良いライブラリが出るまでは様子見かな。」というのが最初の考えだったのですが、ふとあることに気が付きました。「それってRESTでも同じだよな。」
あるサービス内の情報であれば(内部的にテーブルが分割されていたとしても)一回の操作で全て取得できるようにしてあるでしょう。しかし、サービス外の情報であればREST的には情報取得のためのURLを示して終わり(一般的に"接続性"と表現されます)です。二つのサービスから情報を取得するマッシュアップサービスでは、このとき自ら取得→合成をしなければなりません。
で、やっぱり「めんどくさっ。良いライブラリが出るまでは様子見かな。」となります。GUIならYahoo! PipesMicrosoft Popflyがそれにあたるかもしれませんが、プログラムレベルでは無い。というか私には心当たりがありません。

話がそれてしまった気もしますが、ライブラリを使うにせよ、自前でコーディングするにせよ、GAEのモデルとRESTfulサービスの提供するリソースは等価的に扱えそうです。これは相性が良い=組み合わせて使うと面白そうですね。