web-dev-qa-db-ja.com

WSDL、SOAPおよびRESTとは何ですか?

WSDL とは何ですか? SOAP とどのように関係していますか? REST はどこにありますか?

134
javaguy

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

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

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

160
keith_c

例:電卓のWebサービスがある場合の簡単な用語。

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

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

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

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

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

プロキシクラス:メニュー項目を確認した後、マインドを構成します(注文するものを決めてください)。したがって、基本的に、WSDLドキュメントに基づいてプロキシクラスを作成します。

SOAP:それから、実際にメニューに基づいて食べ物を注文するとき:意味プロキシクラスを使用して、SOAPを使用して行われるサービスメソッドを呼び出します。 :)

87
Unbreakable

誰かが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のコマンド(リクエストメソッド)を思い浮かべます。

36
angelcool.net

SOAP-> SOAP(Simple object access protocal)は、マシン間の相互作用のために作成されたアプリケーションレベルのプロトコルです。プロトコルは標準ルールを定義します。特定のプロトコルを使用しているすべての関係者は、プロトコルルールに従う必要があります。 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とはまったく関係ありません。

12
John Saunders

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

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

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

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

11
duffymo

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

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

6
Michael Burrows

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

RESTは形式に依存しません。 XML、HTML、JSONのすべてのオプションが利用可能です。

RESTは、WSDL/SOAPインタラクションがマルチポイントメッセージインタラクションである2ポイントメッセージ転送(RESTがREpresentational State Transferの略であるため驚くべきことではありません)の機能を提供します。

RESTでは、XMLメッセージの新しい拡張機能は必要ありません。WSDL/ SOAPの場合はこれに該当します。

WSDL/SOAPは複数のトランスポートプロトコルを使用し、RESTはHTTPのみに依存します。したがって、WSDL/SOAPはRESTfulな方法のように使用できますが、単純な要求は過度に複雑/重くなります。

簡単なアナロジー:RESTは、モトボーイがあなたの食べ物を簡単かつ迅速に届けるようなものです。 XML拡張WSDL/SOAPは、UPS配信に似ており、より構造化された深刻なものですが、コストがかかります。

3
Bedi Egilmez

いくつかの明確な説明(SOAPおよびWSDLについて)もここにあります。

SOAPメッセージとWSDLの違い?

3
namski

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

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

1
Farzaneh