web-dev-qa-db-ja.com

WCF、Rest、およびSOAPの関係は何ですか?

WCFとREST&SOAPの関係は何ですか? WCFはそれらの技術(RESTまたはSOAP)の1つに基づいていますか、それとも別の技術ですか?

53
user1460819

WCFは自動的にRESTまたはSOAPではありませんが、そのようにすることができます。ここで必要なのはチュートリアルです:

WCF

http://www.codeproject.com/Articles/406096/A-beginners-tutorial-for-understanding-Windows

REST

http://rest.elkstein.org/

他にもいくつか興味深いものがあります。

WCF-REST/SOAP

https://msdn.Microsoft.com/en-us/library/hh323708(v = vs.100).aspx

WCFとREST

https://msdn.Microsoft.com/en-us/library/ee391967.aspx

または、自分でgoogle/bing/metacrawler/altavista検索を実行できます。

28
Mike C.

WCFは、分散システムを構築するためのメッセージングフレームワークです。分散システムはmostlyWebサービスの単なる別のWordです。

つまり、C#(または任意の.NET言語)でメソッドを記述し、コードに他のユーザーがアクセスできるようにする設定を適用して、コードをWebサービスに変換できるということです。

これらの「構成の束」はWCFです。 WCFでは、C#コードにWCF構成をセットアップしてRESTfulサービスとして公開する場合、RESTを使用してメソッドを他のコンピューターまたはアプリケーションに公開できます。または、同じC#メソッドを簡単に使用して、SOAPプロトコル経由で使用可能にすることもできます。

「GetData()」というメソッドがある場合、WCF構成をセットアップして、IISでホストされているサービスでそのメソッドを使用できるようにすることができます。誰かがそのサービスを呼び出すと、HTTP GETリクエストを http://www.yourdomain.com/SomeService/GetData に送信でき、GetDataメソッドはメッセージを受信して​​応答を返します。 HTTP経由でGETリクエストを行うときは、RESTを使用しています。 RESTは、トランスポートプロトコルとしてHTTPにほぼ結びついています。 RESTにも標準のメッセージ形式はありません。 HTTPメッセージで送信するものは何でも、送信したいものは何でも構いません。 XML、JSON、または単なるテキストを送信できます。 POST、GET、PUT、または任意のHTTP動詞も使用できます。

SOAPを使用すると、任意のトランスポートプロトコルを使用してメッセージをサービスに送信できます。HTTPに縛られることはありません。 SOAPメッセージは、トランスポートニュートラルになるように設計されています。これらはXMLでエンコードされており、XMLには常にエンベロープノード内にヘッドノードとボディノードがあります。 SOAPの周りには多くのWeb標準があります。たとえば、セキュリティ、セッション、その他の機能をメッセージのヘッダーに含めるための標準です。また、SOAPを使用すると、WSDLを取得できますが、これについてはここでは説明しませんが、クライアントがプログラミングしやすいLOTになります。ほとんどのプログラミング言語には、WSDLを取得し、それを厳密に型指定されたメソッドとオブジェクトに変換して、サービスを呼び出しやすくする方法があります。

RESTはインターネット上で非常に人気があり、インターネットと同じくらいスケーラブルです(つまり、非常にスケーラブルです)。 SOAPは、企業間アプリケーションで非常に人気があります。

123
Trevor

[〜#〜] msdn [〜#〜] から

WCFプログラミングモデルは、SOAPサービス、Web HTTPサービス、データサービス、リッチインターネットアプリケーション(RIA)サービス、ワークフローサービスなどのさまざまな機能を提供します。SOAP =サービスは、Java、他のプラットフォーム、およびMicrosoft®がサポートするメッセージング標準を使用して構築されたシステム間の相互運用性をサポートします。SOAPサービスは、HTTP、TCP、名前付きパイプなどのトランスポートもサポートします、およびMSMQ。Web HTTPサービスとデータサービスはどちらもRESTをサポートしていますWeb HTTPサービスを使用すると、サービスの場所、要求と応答、形式、プロトコルを制御できますデータサービスを使用すると、データモデルおよびデータ駆動型ロジックをサービスとして公開できますWCFには、サービスモデルとチャネルモデルという2つのプログラミングモデルも含まれています。サービスモデルは、データコントラクト、サービスコントラクト、およびサービス動作を定義するためのフレームワークを提供します。

SOAPとRESTサービスはWebアプリケーションに機能を提供でき、両方を使用してWebの分散環境で情報を交換できます。それぞれに独自の利点があります。 、および制限。

10
l46kok

ただし、この質問には、[〜#〜] wcf [〜#〜]vs[〜#〜] soap [〜#〜]vs[〜#〜] rest [〜#〜]-fullサービス。わかる。

WCFが[〜#〜] rest [〜#〜][〜#〜] soap [ 〜#〜]そして、通常、 [〜#〜] soap [〜#〜] および [〜#〜 ] rest [〜#〜] 。ですから、真実を感じさせるためにマイクロソフトから何かが必要です:) Microsoft[〜#〜] msdn [〜#〜] のスクリーンショットです:

MSDN article URLenter image description here

したがって、yes、WCFは両方をサポートします。

OPに関連して:

  • SOAPサービス:
    WCFプログラミングモデルでは、Java、他のプラットフォーム、およびMicrosoft®でサポートされているメッセージング標準を使用して構築されたシステム間の相互運用性をサポートしています。これらは、HTTP、TCP、名前付きパイプ、MSMQなどのトランスポートもサポートします。
  • Web HTTPサービス
    WCFプログラミングモデルでは、[〜#〜] rest [〜#〜]をサポートしています。 [ソース: [〜#〜] msdn [〜#〜] ]
4
Irf