2008-04-24 SOAP vs REST SOA SOAPとREATに関する、現時点の理解メモ。 とりあえず特徴をつかむことが目的。 参考 Web 2.0時代のWebServices wikipediaのREST wikipediaのSOAP REST HTTPでリクエスト XMLでレスポンス とにかく簡単に使える。 シンプルなパラメータ(GETパラメータか、ユニークなURIをもつかは、設計ポリシーの問題と思われる) SOAP HTTPでリクエスト XMLでレスポンス 複雑な入力パラメータを渡せる 例えば、繰り返し項目とかも可能。(RESTではできないのか?未確認) 入出力のバリデーションが可能 型を定義し、数値型でないとエラーにするなど可能。(どこのレイアでエラーが発生するか?未確認) WS-*が使えるので、拡張性に優れる セキュリティ、トランザクションなどの機能がWS-*で提供されている パラメータはSOAPエンベロープ形式で渡す。構造を持つので、サービスの呼び出しはRESTより面倒。 学習はRESTより大変 疑問など諸々 トランザクション管理は? 基本は1サービスでトランザクション完了するもの? 複数のサービスを呼び出してトランザクション管理したい場合は、SOAPでWS-Transactionなんかを使うのかな。 パフォーマンスは? 大量のデータを登録する 大量の一覧を取得する 変更しやすさは? 入力パラメータを増やす場合は?減らす場合は「使わない」だけ? 出力項目を増やす場合は?減らす場合は「使わない」だけ? 項目の増減に耐えるような設計上の工夫は? 拡張性はミドルで吸収? エラーはどうやって返す?