Goodpic.com
2003年11月04日

RESTアーキテクチャとは? SOAPとの関係は?

幾つかのインタビューの中で(Tim O'Reilly氏,dh's memoranda)、AmazonのJeff Barr氏によれば、Amazon Webサービスの利用は85%がREST経由で、SOAPは15%とのこと。O'Reilly氏いわく、SOAPでなければ作れない複雑なアプリケーションも確かにあるが、草の根開発者が利用しやすいという面から、simple XML over HTTPが優位なのではないか、とのこと。RESTアーキテクチャという言葉自体はよく聞くのですが、今ひとつ正確に理解していなかったのでまとめてみます。
まずは本家のREST Wikiから。RESTとはREpresentational State Transferの略で、Roy T. Fielding(HTTP, URIのco-author,Apache Software Foundationのディレクター)によって命名された現在のWebのアーキテクチャの総称。WWWの実装にあたってリソースを特定するURIと、リソースにアクセス、操作するためのプロトコルとして、シンプルなHTTP(POST,GET,PUT,DELETE)を使用する、という定義なので、RESTという新しい実装(implementation)があるわけではなく、アーキテクチャ(architectural style)の名称であるとのこと。
では何と比較できるかというと、Remote Procedure Call (or RPC) modelが対照的であると。RPCモデルがlocal programming modelのファンクション呼び出しをネットワーク上に広げよう、という発想であるのに対し、RESTは、どちらかというとDocument-literalで、よりシンプル、スケーラブルに利用できることを意識されているそうです。
では肝心のRESTとSOAPの関係についてですが、去年(2002年)に盛んにディスカッションされていたようで、問題定義としては「Webの「正しい」アーキテクチャ(@IT)」のように、SOAPでもHTTP POSTだけではなく、GETやHTTPのエラーコードを処理しましょうとうことでSOAP1.2ではこの点が改善されたようです(Webサービス調査レポート)。
といわけでSam Ruby氏のweblogのようにREST vs SOAPなのではなく、REST + SOAPでいいところどりをするのがいいね、という結論になったのでしょうか?
Webサービスの議論としては、今はブログ用のAtomが注目されているので見てみると、AtomのSOAP Profileについての議論もありますが、以前にも書いたように(「ATOM APIの解説 ブログの統一フォーマット」)よりREST的なアプローチから初めて、必要があればSOAPによる実装も検討する、というような状況なのでしょうか?なんだか、色々と調べて出発点に戻ってきたような感じです。
ATOM APIのメリットとしてあげられている、
・Schemaを持つWell-defined(きちんと定義された)データモデル
・RPCに依存せずDoc-literalなWEBサービス
・XML namespacesの利点をフルに活用可能
・HTTPの利点をフルに活用
・セキュアな通信
という点は、REST/SOAPをめぐる様々な議論から導き出された、かなり重要な経験則なのかもしれません。そして実際の利用という意味で、AmazonのWebサービスでRESTが85%, SOAPが15%という数値が意味しているのは、RESTfulなSOAPも可能であることを考えるとSOAP vs RESTという技術の優劣の違いではなく、「どちらの実装が、既存のweb開発者にとっては使いやすかったのか?」という点にあるのでしょうか。開発者フレンドリーである、ということは、技術のデファクト決定には重要なポイントになってくるのでしょうね。

- 羊堂本舗 REST
- Second Generation Web Services(xml.com)
- REST Roundup(xml.com)
- REST and the Real World(xml.com)
- Google's Gaffe(xml.com)

Posted by jkanekomt at 2003年11月04日 15:59 | trackBack



Comments
Post a comment









Remember personal info?







関連記事