RESTが難しいってことについて
暇を見つけてGoogle Data APIs Protocolをしげしげと読んでみていた。よくできているね。
ところで話はかわって、識者の人々が「RESTは難しい」「RESTを説明するのは難しい」と繰り返し発言している。事情に詳しくない(しかし興味は持っている)市井の人々に「そうなんだー、難しいんだー」という気分が蔓延するのは、REST推進派の人々にはネガティブに作用するはずで、なんでそんな発言をするのだろうと思う。私自身は門外漢なこともあって「難しい」理由がいまいちよく分からない。なんも難しくないと思えるけれど。
で、冒頭の話に戻るわけで、もしそんなに「RESTが難しい」のなら、もう「Google Data」互換APIを実現するフレームワークを作ってしまって「Operating Systemとして」使っちゃえばいいじゃんか、と思った。
どういうことかというと、RESTが難しいというのは既存のアプリケーションの実現するリソースやそのリソース上の操作があらかじめ存在していて、それをRESTっぽいリソースや操作にマップすることが難しいということだろう。あるいはRESTっぽいサービスを提供するための便利なツールキットが不足しているとか。そうだそうだ、きっとそうに違いない(笑)。
一方で、Google Data APIは任意のデータ構造のストレージとそれに対する読み書き、更新、削除と検索インタフェースを備えているので、たいていのWebアプリケーションで用いるリソースを格納する「ストレージ」への機能的要請をある程度満たしているように思える。もちろん、Google Data APIでは、並列性を確保するために更新イベントはすべてoptimisticにバージョン管理されるので、真っ当にReader-Writer Lockがないと普通のプログラムも書けん罠、とかってのはある。あってしかるべきだ。そういう場合でも上位互換APIを考えればよいだけだろう。要は、Google Data API互換フレームワーク上にWebアプリケーションを実装し、必要に応じてAPIを外部に公開すればよい。
もちろん、Webアプリケーションとしてのスケーラビリティを実現するには、Google Data APIフレームワーク自体のスケーラビリティが必要になるが、システムプログラマは単にそこに注力すればよいというoptimisticなobservationも可能だ。
…っていうのは、変な煽り記事(「Web2.0」vs「SOA」,勝つのはどっちだ?:ITpro)を読んでて思いついた与太話なので真に受けないこと。
このエントリーのトラックバックURL: http://as-is.net/mt/mt-tb.cgi/393
REST が難しい云々はネタなんで、あんまり気にしないでください(タイトルが"。"で終っているエントリはネタです)。
GData API でたいていの Web アプリケーションのリソースストレージ操作インターフェースを実現できそう、というのは僕もそう思います。今年の Web フレームワークのトレンドは GData (or/and APP) インターフェースをいかに簡単に出せるようにするかじゃないかなーと妄想してます。
そですね。
私の立ち位置的には、「RESTはアーキテクチャスタイルなんである」というのを金科玉条にすることなく、リソースもその上での操作もモデル化し、リソースの表現も操作も規格化し(GData、APPが試金石?)、参照実装がオープンソースとして広まり(IBM並にシャカリキに誰かが頑張る)、最終的にはWSRF(国内ではスーツの香りがする)に伍するくらいの勢力にならないかな、てところです。