2011-09-22 7 views
8

免責事項:私はRESTとSOAPベースのサービスの間で本当に混乱しています。
RESTベースのWebサービスで多くのチュートリアル(お互いに矛盾しているようです)を読んだ後、私はRESTベースのWebサービスでSOAPを使用してメッセージを送受信できるかどうか疑問に思っていましたか?
は、私が "SOAPベースのサービスは、" 私はあなたがWS-I Basic Profile Webサービスを意味していると仮定することにより、以下のリンク
1)http://www.ibm.com/developerworks/webservices/library/ws-restful/RESTベースのWebサービスでのSOAPメッセージ

2)http://rest.elkstein.org/2008/02/how-simple-is-rest.html

答えて

16

てみました。 WS-I BP Webサービスだけでなく、RESTでもSOAPを使用できるため、この区別は重要です。私に説明させてください。

SOAPは、データ交換のためのXMLベースのメッセージング形式です。 Soapは、リモートプロシージャコールを作成する手段も定義します。 SOAPはW3Cのオープンスタンダードです。 SOAPは、基礎となるトランスポート層には無関心です。 HTTPはトランスポート層として頻繁に使用されますが、SMTPやTCPなどのトランスポートでもうまく動作します。

RESTはアーキテクチャスタイル(標準ではありません)ですので、リンゴとリンゴを比較していないため、RESTとSOAPを直接比較しないように注意してください。 RESTはHTTPを使用し、それを使用するための方法であり、細部と豊かさを備えています。 RESTアーキテクチャー・スタイルは、任意のフォーマットでデータを転送するために使用できます。特定のデータ・フォーマットは必須ではありません。したがって、SOAPは、RESTスタイルのWebサービス用の完全に優れたシリアル化形式です。しかし、多くの人がJSON、XML、プレーンテキスト、その他の多くのフォーマットをRESTで使用しています。イメージファイルのように、RESTでバイナリデータを幸せに交換することもできます。いいことは、アプリケーションに最も合ったデータ形式を選択することです。

RESTは標準ではなくパターンなので、本当にRESTfulであることが何を意味するかについて多くの議論があることに注意してください。 Richardson Maturity Modelと呼ばれる概念があり、RESTの理想に向かって一連のステップがあります。リチャードソンのモデルと比較することによって、特定のREST実装がどのようにRESTfulであるかを正確に見ることができます。 WS-I BP Webサービスは、このスケールでレベル0になります(つまり、まったくRESTfulではなく、単にHTTPをダムトランスポートレイヤとして使用するだけです)。

私はREST vs WS-I Basic Profileウェブサービスを選択することについて、これはあなたの聴衆に依存します。企業内でB2Bタイプのインタフェースを開発する場合は、WSI-BP Webサービスを参照する方が一般的です。基本的な標準があり、エンタープライズベンダー(IBM、Oracle、SAP、Microsoftなど)による成熟したサポートと、特に.NETとJavaのフレームワークサポートのレベルのために、WSI-BPは多くの意味を持ちます迅速に何かを得る必要があるときに、クライアントがエンタープライズ環境で簡単に接続できるようにしたい場合、交換されるデータはSOAPとしてうまくシリアライズするビジネスデータです。

一方、より幅広いWebオーディエンスにWebサービスを公開している場合は、WSI-BPからRESTfulスタイルへの傾向があると言えます。 RESTはクライアントがHTTPをサポートしていることを前提としているだけなので、可能な限り多くのユーザーと相互運用できるようにすることができます。 RESTはまた、WSI-BP Webサービスよりもはるかに優れたオーディエンスに拡大するリソースのキャッシュなどをサポートすることで、Web自体のスケーラビリティを提供します。

+1

これはすごく元気な答えです。 –

+0

確かに、素晴らしい答え。 –

+0

@saille:ありがとう。今は物事が楽になるようです。 – xyz

関連する問題