WSDL、SOAP、RESTとは何ですか?


153

WSDLとは?SOAPとどのように関連していますか?RESTはそのすべてにどこに適合しますか?


2
どのような「例」を探していますか?先ほど述べたように、「簡単な」例を示すのは簡単なことではありません。
John Saunders

回答:


180

WSDLは、Webサービスを記述するXMLドキュメントです。これは実際にはWebサービス記述言語の略です。

SOAPはXMLベースのプロトコルであり、アプリケーション間で特定のプロトコル(HTTPやSMTPなど)を介して情報を交換できます。Simple Object Access Protocolの略で、メッセージング形式にXMLを使用して情報を中継します。

RESTは、ネットワーク化されたシステムのアーキテクチャスタイルであり、Representational State Transferの略です。それ自体は標準ではありませんが、HTTP、URL、XMLなどの標準を使用しています。


4
SOAPを使用できるプロトコルの例として、SMTPまたはHTTPを使用するつもりでした。HTTPが使用できる唯一のプロトコルであることを意味するつもりはありませんでした(例として使用しただけでした)。
keith_c 2010

7
表現状態転送(REST)は、統一されたインターフェイスなどの制約を指定するアーキテクチャスタイルであり、Webサービスに適用すると、サービスがWeb上で最適に機能できるようにするパフォーマンス、スケーラビリティ、変更可能性などの望ましいプロパティを誘導します。RESTスタイルでは、データと機能はリソースと見なされ、Uniform Resource Identifier(URI)を使用してアクセスされます。リソースは、一連の単純で明確な操作を使用して処理されます。クライアント/サーバーアーキテクチャに準拠し、ステートレス通信プロトコル(通常はHTTP)を使用するように設計されています。
kingAm

4
WSDLの「D」は、「定義」の代わりに「説明」を意味していませんか?
Sparkzz

11
"A WSDL is an XML document that describes a web service. It actually stands for Web Services Definition Language." これはそれが何であるかを実際に説明していません...
オジョヌグワジュードオチャリフ

2
Wikipediaによると@Sparkzz:The current version of WSDL is WSDL 2.0. The meaning of the acronym has changed from version 1.1 where the "D" stood for "Definition".
Bochu

106

例:簡単に言えば、電卓のWebサービスがある場合。

WSDL:WSDLは、クライアントに実装または公開できる関数について通知します。例:追加、削除、減算など。

SOAP:SOAPを使用する場合と同じように、実際にdoDelete()、doSubtract()、doAdd()などのアクションを実行します。したがって、SOAPとWSDLはリンゴとオレンジです。それらを比較すべきではありません。どちらにも独自の機能があります。

SOAPとWSDLを使用する理由:プラットフォームに依存しないデータ交換。

編集:通常の日常生活の例では:

WSDL:レストランに行くと、メニュー項目が表示されます。それらはWSDLです。

プロキシクラス:メニュー項目を確認した後、マインドを作成します(何を注文するかを考えます):したがって、基本的に、WSDLドキュメントに基づいてプロキシクラスを作成します。

SOAP:次に、メニューに基づいて実際に料理を注文するときつまり、プロキシクラスを使用して、SOAPを使用して実行されるサービスメソッドを呼び出します。:)


38

誰かがSOAP / WSDLに言及するたびに、XMLで定義されたオブジェクトとクラスを思い浮かべます...

「SOAPは、PHPクラスと同じように使用します。ただし、この場合、クラスはローカルアプリケーションのファイルシステムではなく、http経由でアクセスされるリモートサイトに存在します。」 ... 「SOAPサービスを別のPHPクラスとして使用することを考えた場合、WSDLドキュメントは、使用可能なすべてのクラスメソッドとプロパティのリストになります。」

http://www.doublehops.com/2009/07/07/quick-tutorial-on-getting-started-with-soap-in-php/comment-page-1/

..そして誰かがRESTについて話すときはいつも、POST、GET、DELETEのようなHTTPのコマンド(リクエストメソッド)を思い浮かべます


19

SOAP-> SOAP(シンプルオブジェクトアクセスプロトコル)は、マシン間の相互作用のために作成されたアプリケーションレベルのプロトコルです。プロトコルは標準ルールを定義します。特定のプロトコルを使用しているすべての関係者は、プロトコルルールに従う必要があります。TCPと同様に、トランスポート層で展開され、SOAPプロトコルはアプリケーション層(SOAPをサポートするすべてのアプリケーション-Axis2、.Net)によって認識されます。

WSDL-> SOAPメッセージは、SoapEnevelope-> SoapHeaderおよびSoapBodyで構成されます。メッセージ形式が何であるかを定義していませんか?それがサポートするすべてのトランスポート(HTTP、JMS)は何ですか?この情報がないと、特定のWebサービスを利用したいクライアントがSOAPメッセージを構築するのは困難です。彼らがそうしたとしても、彼らは確信が持てないでしょう、それはいつも働きます。WSDLが救いです。WSDL(Webサービス記述言語)は、SOAPメッセージの操作、メッセージ形式、およびトランスポートの詳細を定義します。

REST-> REST(Representational State Transfer)はトランスポートに基づいています。アクションを対象とするSOAPとは異なり、RESTはリソースをより重視します。RESTはURL(例-http:// {serverAddress} / employees / employeeNumber / 12345)を使用してリソースを検索し、アクションのトランスポートプロトコル(HTTP-GET、POST、PUT、DELETEなど)に依存しますリソースに対して実行されます。RESTサービスは、URLに基​​づいてリソースを見つけ、トランスポートアクション動詞に基づいてアクションを実行します。建築様式と慣習に基づいています。


16

複雑なものを「単純に」理解することはできません。

WSDLは、Webサービスを記述するためのXMLベースの言語です。サービスで使用されるメッセージ、操作、およびネットワーク転送情報について説明します。これらのWebサービスは通常SOAPを使用しますが、他のプロトコルを使用する場合もあります。

WSDLはプログラムで読み取り可能であるため、Webサービスの呼び出しに必要なクライアントコードのすべてまたは一部を生成するために使用できます。これが、SOAPベースのWebサービスを「自己記述型」と呼ぶことの意味です。

RESTはWSDLとはまったく関係ありません。


11

SOAPはSimple(sic)Object Access Protocolの略です。これは、HTTPを介してXMLを送信することにより、リモートオブジェクトへのリモートプロシージャコールを実行する方法であることが意図されていました。

WSDLはWebサービス記述言語です。エンドポイントへの「.wsdl」で終わる要求は、使用が期待できる要求と応答を説明するXMLメッセージになります。サービスとクライアント間の契約を説明します。

RESTはHTTPを使用してメッセージをサービスに送信します。

SOAPは仕様であり、RESTはスタイルです。


2
-1:申し訳ありませんが、SOAPとRPCの関連付けには同意しません。メッセージスタイルのサービスはどうですか?また、末尾が.wsdlまたは?wsdlであるリクエストがWSDLを生成するという標準はありません。
John Saunders

4
あなたはSOAPでRPCを行うことができないと言っていますか?それが規格全体を網羅していない可能性があることは知っていますが、それは確かに元々の動機でした。WSDL URLが標準の一部であるかどうかに関係なく、あなたが私をそこに置いていることを認めます。それは通常、私がそれを行った方法ですが、それを義務付けている規格には何も引用できません。
duffymo 2010

1
SOAPがもともとRPCとして意図されていたという考えで、SOAPがXML-RPCから派生したという事実を混乱させているかもしれません。ただし、WSDLは最初から、RPCスタイルのサービスに加えて、ドキュメントスタイルのサービスを記述することができました。RPCがSOAPとWSDLの背後にある元々の動機であった場合、ドキュメントスタイルのサービスは元の標準にはなかったはずです。
ジョンサンダース

6

ウィキペディアは、「Webサービス記述言語は、Webサービスを記述するためのモデルを提供するXMLベースの言語である」と述べています。別の言い方をすれば、javadocがjavaライブラリーと同じように、WSDLはWebサービスに対するものです。

ただし、WSDLのすばらしい点は、ソフトウェアがWSDLを使用してクライアントとサーバーを生成できることです。


4

RESTはエンコードの点で軽量であり、軽量デバイス、つまり厳密でないAPIの場合にはるかに役立ちます。

RESTはフォーマットに依存しません。XML、HTML、JSONのすべてのオプションを使用できます。

RESTは、2ポイントメッセージ転送(RESTはREpresentational State Transferを表すため、当然のことです)の機能を提供します。WSDL/ SOAP対話は、複数ポイントメッセージ対話です。

RESTは、XMLメッセージに新しい拡張機能を必要としません。WSDL/ SOAPではこれが当てはまります。

WSDL / SOAPは複数のトランスポートプロトコルを使用し、RESTはHTTPのみに依存します。したがって、WSDL / SOAPはRESTfulな方法のように使用できますが、単純なリクエストは過度に複雑/重い加重になる可能性があります。

簡単に例えると、RESTは、モトボーイが食べ物を簡単かつ迅速に提供するようなものです。XML拡張されたWSDL / SOAPは、UPS配信に似ており、より構造化された本格的なものですが、コストがかかります。



0

WSDLドキュメントはWebサービスを記述します。これらの主要な要素を使用して、サービスの場所とサービスのメソッドを指定します。各操作のWebサービスデータ要素で使用するデータ型は、実行できる操作と関連するメッセージを記述します

SOAP(Simple Object Access Protocol)は、異種オペレーティングシステム上で実行されるプログラムがhttpおよびxmlを使用して通信できるようにするメッセージングプロトコルです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.