今のところ、SOAPとRESTfulサービスの違いについて少し考えています。
私の質問は、いつSOAPを使うべきか、そしていつRESTfulを使うべきかということです。パフォーマンス/スピードまたは要求処理に関してはどちらが「より優れている」のでしょうか。
私は初めてRESTful(Java)でインプリメントしました。それについてもっと知りたいです。私は以前にSOAPを扱いました。
RESTはほとんど常に速くなります。 SOAPの主な利点は、サービスが自分自身をクライアントに説明し、その存在を宣伝するためのメカニズムを提供することです。
RESTははるかに軽量であり、ほとんどすべてのツールを使用して実装できるため、帯域幅が狭くなり、学習曲線が短くなります。ただし、クライアントは何を送信し、何を期待するのかを知っている必要があります。
一般に、複雑であるか変更される可能性が高いAPIを外部に公開する場合は、SOAPの方が便利です。それ以外の場合、RESTが通常より良い選択肢です。
REST vs SOAP Webサービス
最近では、RESTではなくSOAPスタイルのアーキテクチャを使用して新しいWebサービスが実装されています。少し前に戻り、RESTの意味を説明しましょう。
REST Webサービスとは
頭字語RESTはRepresentational State Transferを表します。これは基本的に、一意の各URLが何らかのオブジェクトの表現であることを意味します。 HTTP GETを使用してそのオブジェクトの内容を取得することができます。それを削除するには、POST、PUT、またはDELETEを使用してオブジェクトを変更します(実際にはほとんどのサービスでこのためにPOSTを使用します)。 ).
誰がRESTを使っていますか?
Flickr、del.icio.us API、pubsub、bloglines、technorati、そして両方のeBayを含むYahooのすべてのWebサービスがRESTを使用しており、AmazonはRESTとSOAPの両方のWebサービスを持っています。
誰がSOAPを使っていますか?
Googleは、XML-RPCを使用するBloggerを除いて、SOAPを使用するようにWebサービスを実装することで一貫していることを目指しています。あなたはSOAPウェブサービスを多くのエンタープライズソフトウェアにも見つけるでしょう。
RESTとSOAP
ご存じのとおり、REST apiを使用している会社はそれほど長い間使用されていませんが、それらのAPIは今年主に登場しました。そのため、RESTは間違いなくWebサービスを作成するためのトレンディな方法です。Webサービスを作成するのが流行になることがある場合は、それを忘れないでください。 REST Webサービスの主な利点は次のとおりです。
軽量 - 余分なxmlマークアップはあまりありません。人間が読むことのできる結果構築が簡単 - ツールキットは不要SOAPにもいくつかの利点があります。
使いやすい - 時にはリジッドタイプのチェック、契約に準拠する開発ツールWebサービスを利用するためには、どちらを使用するかが簡単になります。たとえば、GoogleのAdWords Webサービスは(とにかくCFで)本当に使うのが難しく、SOAPヘッダーを使用しています。逆に言えば、AmazonのREST Webサービスはネストされている可能性があり、結果スキーマは検索内容によってかなり異なる可能性があるため、解析が難しい場合があります。
どのアーキテクチャーを選択するかは、開発者が容易にアクセスできるようにし、十分に文書化されていることを確認してください。
Freitag、P.(2005)。 「REST vs SOAP Webサービス」。 2010年6月13日にhttp://www.petefreitag.com/item/431.cfmから取得しました
_石鹸_
SOAP(Simple Object Access Protocol)標準は、メッセージアーキテクチャとメッセージフォーマットを定義するXML言語であり、Webサービスでは操作の説明が含まれています。 WSDLは、Webサービスとそれらへのアクセス方法を記述するためのXMLベースの言語です。 SMTP、HTTP、FTPなどで動作します。ミドルウェアのサポート、WSDL + XSD、WS-Policyなどのサービスを定義するための明確に定義されたメカニズム、SOAPが必要XMLベースのデータ
_ rest _ Representational State Transfer(RESTful)Webサービス。彼らは第二世代のWebサービスです。 RESTful Webサービス。SOAPベースのサービスよりHTTP経由で通信し、XMLメッセージやWSDLサービスAPI定義を必要としません。 RESTにはミドルウェアは不要で、HTTPサポートのみが必要です。WADL標準、RESTはXML、プレーンテキスト、JSON、HTMLなどを返すことができます
RESTはアーキテクチャです。 RESTは人間が読める結果をもたらします。 RESTはステートレスです。 RESTサービスは簡単にキャッシュ可能です。
SOAPはプロトコルです。 JMS、FTP、HTTPの上で実行できます。
RESTにはWSDL [Web記述言語]インタフェース定義はありません。
RESTはHTTPを介して行われますが、SOAPはHTTP、FTP、SMTP、JMSなどのトランスポートプロトコルを介して行うことができます。
RESTはRepresentational State Transferを表し、SOAPはSimple Object Access Protocolを表します。
SOAPは独自のsecurityを定義します。ここで、RESTは基礎となるトランスポートからセキュリティを継承します。
SOAPはエラー処理をサポートしていませんが、RESTにはエラー処理が組み込まれています。
RESTは軽量で、XML解析を必要としません。 RESTは、AjaxとJavascriptを備えたWebブラウザでさえも、どのクライアントでも使用できます。 RESTはより少ない帯域幅を消費します。すべてのメッセージにSOAPヘッダーを必要としません。
休息VS SOAP
石鹸:
►SOAPはTCP/UDP/SMTPで動作する単純なオブジェクトアクセスプロトコルです。
►SOAP要求応答メッセージをXML形式で読み書きします。
►SOAPはサービスを定義するためにインターフェースを使用します。
►SOAPは、独自のセキュリティと明確な標準があるため、より安全です。
►SOAPは、Webサービスを定義するためにRPCおよびドキュメントスタイルに従います。
►SOAPはテスト用のクライアントツールとしてSOAP-UIを使用しています。
REST
►RESTは、基盤となるHTTPプロトコルを使用した代表的な状態転送です。
►RESTはステートレスです。
►RESTはWebサービスの記述と定義に使用されるアーキテクチャスタイルです。
►RESTはJSON/XML/Plain HTMLでリクエストレスポンスメッセージを読み書きできます。
►RESTは、Webサービスで使用される各リソースのURIを使用します。リソースは、イメージテキストメソッドなどです。
►RESTはHTTPのGET、POST、PUT、DELETEのようなVERBのセットを使います。
►RESTは、SOAP UIに比べて開発が簡単で管理が簡単です。
►RESTには、ブラウザに簡単に統合できる軽量のクライアントツールまたはプラグインがあります。
►RESTサービスはキャッシュ可能です。
せっけんWebサービス:
RestWebサービス
SOAP Webサービスは常にPOST操作を行いますが、RESTを使用すると、GET、POST、PUT、DELETEなどの特定のhttpメソッドを選択できます。例:SOAPを使用してアイテムを取得するには、リクエストxmlを作成する必要がありますが、RESTの場合は、URL自体にアイテムIDを指定できます。
RESTは、ほとんどの部分で使いやすく、より柔軟です。SOAPとは異なり、RESTは応答を提供するためにXMLを使用する必要はありません。データを出力するRESTベースのWebサービスは、コマンド区切り値(CSV)、JavaScript Object Notation(JSON)、およびReally Simple Syndication(RSS)で見つけることができます。アプリケーションに必要な言語で解析しやすい形式で必要な出力を取得できます。RESTはより効率的で(小さいメッセージフォーマットを使用します)、デザイン哲学において他のWeb技術に早くそして近い