Pragmatics – Don Box’s Spoutlet
ドン箱先生が、あんまりSOAPとRESTの違いについてあまりにも聞かれてウザイからと、その違いを5項目にまとめている。
- SOAPを使用しているのか、POX(Plain Old XML)を使用しているのか。
- 一つはそれらのフォーマットにXML Schemaを使用しているか。
- 一つはXML Schemaを静的に言語にバインディングしているか。
- 一つがHTTPに特有の特徴に依存する程度。それは語られているように、危険覚悟でGETにねじどめする。
- 一つはメッセージ中心の設計アプローチをとるのか、リソース中心の設計アプローチをとるのか。
このうちドン箱先生は1と2に関してはどのような聴衆を相手にするかで、簡単なビジネス的決定ができるとおっしゃられる。
- もし、.NET/Javaでのすばらしい経験を望む聴衆であれば、典型的なスキーマ(WSDL)をSOAPを使って公開する。
- もし、一連のLAMP技術でのすばらしい経験を望む聴衆であれば、POX Messageをサポートし、使用するフォーマットではXSDを使用しない。
- 両方の聴衆にリーチしたいなら、1と2の両方をする。
- 聴衆の中の無用な宗教論議を避けて、あなたの何かをその両方に届けたいなら、その宗教論議に満足しないで、そっと出荷する。
ドン箱先生は、必要であればどちらの人間も使用するし、購入すると言うことが大事なんであって、SOAPかRESTかなんて論議自体がくだらないと考えているようですね。
確かにくだらない。
追記: (2006.02.19 22:17)
誤訳がいくつかもあり、 Fumiaki Yoshimatsu さんに間違いを指摘していただきました。自戒のために本文はこのままとさせていただいて、皆様にはYoshimatsu さんのコメントまでご確認いただきたくお願いします。
コメント
> その違いを5項目にまとめている。
違いじゃなくて、「これら5項目は直行する」といっています。「SOAPを使うかPOXを使うか」「XML Schemaを採用するかどうか」「XML Schemaから静的にプログラミング言語へバインドする仕組みを使うかどうか」…は個別に決定できる(何かを決定したら別の何かが自動的に決定するわけじゃない)ってことです。
下の4点は、「とはいえ通常は」という感じで、Java/.NETにリーチしたいならSOAP+WSDLを採用することになるだろうし、LAMPがターゲットならPOXになるのが普通だろうと言っていて、でも最後のオチとして、一番重要なのは動く何かを届けることだとまとめています。動く何かを届ければ、相手がLAMPで出したものがSOAPであったとしても使ってもらえるよ、たぶん、ってことが言いたいんだろうと読み取りました。
Yoshimatsuさんご指摘ありがとうございます。。
「これら5項目は直行する」
はい。ちゃんと書かれていますね。
うーん。やっぱり僕には荷が重かったですね。