主な違い: SOAPはSimple Object Access Protocolの略です。 SOAP WebサービスはSOAPおよびws- *仕様に基づいています。 Representational State Transfer(REST)という用語はRoy Fieldingによって作られました。 これは、HTTPおよびRESTの概念と原則を使用して実装されているWebアプリケーションインターフェイスを指します。
Webサービスはさまざまな方法で定義できます。 しかし、それを理解するために、アプリケーションまたはシステム間の通信に使用される方法としてそれを定義することができます。 それは、アプリケーション固有の応答を生成するために他の種類のエンティティからのフォーマットされた要求を受け入れることができる標準ベースの言語に依存しないソフトウェアエンティティとして説明することができる。 Webサービスは、オープンプロトコルを使用して通信するアプリケーションコンポーネントです。 Webサービスは標準化されたHTTPおよびXMLメッセージングシステムを使用するため、プラットフォームに依存せず、言語にも依存しません。
Webサービスは、SOAP(Simple Object Access Protocol)とREST(Representational State Transfer)の2種類に分類されます。
SOAP WebサービスはSOAPおよびws- *仕様に基づいています。 セキュリティトークンを取得するためにWS-Trustを利用します。 それは規格に基づいています。 これらのWebサービスはオブジェクト指向です。 SOAPは基本的に、Webサービスの実装中に構造化情報を交換するために使用されるプロトコル仕様です。 メッセージフォーマットにXMLを採用しています。 SOAPは、Webサービス相互運用性機構(WS-I)によってサポートされています。 SOAPは、SOAPプロトコルの内部実装を通じて、セキュリティやアドレス指定などの面倒を見ることができました。
RESTとSOAP Webサービスの比較
REST Webサービス | SOAP Webサービス | |
略語 | 代表状態の移管 | 単純オブジェクトアクセスプロトコル |
標準 | 規格なし | 宣言的(標準のWSDLが使用されます) |
サポート | 多数のコンテンツタイプ | XMLのみ |
信頼性 | アプリケーション固有 | WS-信頼できるメッセージング |
キャッシング | 必要に応じて取得操作をキャッシュできます。 | いいえ |
メッセージサイズ | 軽量 | 比較的重い |
実装 | 単純な | 複雑な |
応用分野 | 限られた帯域幅とリソース 完全にステートレスな操作 キャッシング状況 | 非同期処理と呼び出し 正式な契約 ステートフル操作 |
開発者ビュー | リソース指向 | オブジェクト指向 |
トランスポートプロトコルのサポート | HTTP | HTTP、SMTP、JMS |