これは古い質問であり、すでに何百回も回答されているはずですが、まだ満足のいく回答を見つけることができません。
他のアプリケーション(モバイル/ウェブ)がデータを取得するために使用するアプリケーションを作成しています。今、私は2つのオプションがあります:
任意のクライアントが指定された形式(SOAP/REST)でデータを提供し、私のアプリがリクエストを解析し、クライアントが要求したデータを返すWebサービスはより洗練されたように見えます。データの使用方法はアプリの問題ではありません。
私の質問は、XML形式の要求を受け入れ、XML応答で応答する単純なWebアプリでも同じことが実現できるということです。直感的には、誰がそれを使用するのかわからない場合、この種のサービスを利用するには、Webサービスの方が良い方法になるということです。しかし、単純なWebアプリよりもWebサービスを使用する特定の利点はありますか?
低レベルのWebアプリケーションとWebサービスは、まったく同じものです。どちらもhttp(s)を介して動作します。 SOAPはXMLの適切に定義されたバージョンです。RESTはちょっとしたHTTPです。必要に応じて、WebアプリケーションをWebサービスのように見せることができます。その逆。
主な違いは、使用しているプラットフォームに基づいた内部開発オプションです。たとえば、Visual Studioを使用している場合、WCFサービスアプリケーションを追加すると、デフォルトでWCF向けのプロジェクトが作成されます。ただし、他の種類のアプリケーションを選択しても、Webサービスを追加できます。
これらの理由から、SOAP=を使用することは、通常の単純なxmlよりも優れたオプションです。
ユーザーはそれを期待しており、すでにその読み方を知っているでしょう。
ユーザーの開発環境は、おそらくSOAPについてすべてを知っており、そのまま使用できます。WSDLファイルを指定すると、多くのユーザーがスクリプトを使用して生成できます数秒であなたのクラス。)
メッセージは明確に定義されている可能性が高くなります。私は、反対側が独自のランダムなXML構造を定義した時点でプロジェクトに取り組んでおり、作業するのは悪夢です。期待することは本当にわからない。メッセージの種類によって一貫性はほとんどない。少なくともSOAPに準拠することに同意していた場合、メッセージを解釈するのがずっと楽になったかもしれません。
用語を考えれば、それがここでの主な質問だと思います。
Webサービスとは、何らかの種類のWebインターフェイスを介して任意の形式(XML/JSONなど)でデータを提供するソフトウェアを指します。このインターフェイスは、API(アプリケーションプログラミングインターフェイス)と呼ばれます。 RESTおよびSOAPはAPIを設計する方法です。
アプリケーションは、Webサービスによって提供されるこのAPIを使用しているソフトウェアです。
つまり、Webサービスは「サーバー」であり、アプリケーションは「クライアント」です。通常、サーバーはマシンにサービスを提供し、クライアントはユーザーにサービスを提供します。
したがって、システムの構築を選択する場合は、データを提供する部分を「Webサービス」、データを利用する部分を「アプリケーション」(または「Webアプリケーション」)として呼び出します。
あなたの場合、複数のアプリケーションにXML形式のデータを提供するWebサービスを構築しているように聞こえます。だから私の答えは次のとおりです。すでに構築しているものを構築し、それを呼び出しますweb service。
アプリケーションにユーザーインターフェイスが必要ない場合は、Webサービスにします。ユーザーインターフェイスが必要な場合は、Webアプリケーションを使用します。
これは混乱を解決するのに役立つと思います
業界にはWEBの2つの主なユースケースがあります
私の質問は、XML形式の要求を受け入れ、XML応答で応答する単純なWebアプリでも同じことが実現できるということです。
それはWebサービスです。これは用語の問題だと思います。 Webサービスを使用する以外にこれを解決する方法はありません。Webサービスが安静であるか、SOAPベースかはあなた次第ですが、XML形式でクライアントにデータを渡す場合は、 XML要求、つまりWebサービス。
あなたが尋ねたいのは、RESTful Webサービスを使用するか、複雑なSOAPベースのアプローチを使用するかどうかです。私にとって答えは、「サービス」に必要な機能の数に依存。
[〜#〜] soap [〜#〜]
サービスにJavaおよび/またはVisual StudioがWSDLファイルをインポートし、すべてのXML解析が行われたオブジェクトとしてサービスを使用することを好むユーザーよりも多くの機能がある場合、 SOAPが答えでしょう。
[〜#〜] rest [〜#〜]
非常に基本的な入力パラメーターと応答データを使用する関数が数個しかない場合は、SOAPでやり過ぎかもしれません。
MySite.com/Add/5/3
または
MySite.com/GetStockSymbol/Facebook
または
MySite.com/GetWeather/Paris/France
3年以上前にこの質問をしました。それ以来、橋の下にたくさんの水が流れていました。私は何十ものWebアプリケーションに取り組み、何百ものWebサービスを作成しました。したがって、ここで自分の質問に答えることは理にかなっていると思います。
この質問をしたときに直面した課題は、アプリケーションとサービスという用語が混同されることでした(WebはWebアプリケーションとWebサービスの共通要素です)。名前が示すように、アプリケーションはそれ自体がアプリケーションですが、サービスは他の人にサービスを提供するためのものです。誰かが使用しない限り、サービスにはおそらく意味がありません。 1つ以上のアプリケーションまたはサービスを提供できます。
質問を見ると
他のアプリケーション(モバイル/ウェブ)がデータを取得するために使用するアプリケーションを作成しています。これで2つのオプションがあります。1。アプリケーションを単純なWebアプリケーションとして作成する2. Webサービスを作成する。
「おい!リクエストを受け取ってデータを返すエンティティがあれば、あなたはサービスについて話している」と自分自身に伝えたいと思います。私はそのデータで何が起こるか心配していないので?誰が使用しますか?それはどのように表示されますか?
リクエストを受け取ってデータを返しています。今、私はそれをどうやってやっているのですか? SOAPまたはREST。JerseyまたはSpring MVC/RESTまたはJSON XMLまたは文字列、またはその他の必要な形式。
RESTful Web Services by Leonard Richardson and Sam Ruby、ISBN:978-0-596-52926-0:
Webサービスは確かにWebアプリケーションに非常に似ていますが、リソースの作成はそれらが異なる場所の1つです。ここでの主な違いは、HTMLフォームが現在GETとPOSTのみをサポートしていることです。これは、Webアプリケーションが安全でない操作を伝えるためにオーバーロードPOSTを使用する必要があることを意味します。
Webサービスには常にUIがあるわけではありません。これらは通常、JSONを使用するAPIであり、主にSOAおよびXMLを使用するSOAPタイプでもあり、ソケット、サーバー、その他のマイクロWebサービスなどでもあります。
Webアプリケーションは、さまざまな方法で組み合わせることができます。複数のWebサービスのオーケストレーションによってアプリケーションを作成するにはいくつかの方法があり、これらのサービスに結び付けられているものを制御するための個別のGUIがあります。サービスを使用しないもう1つの方法は、UIインターフェイスアプリに手順的にコードを埋め込むか、さらに良いことに、後でモデルが分離した独自のサービスを持ち、コントローラーがアクセスし、独自のビューを持つオブジェクト指向アプリケーションを作成することですバックエンドのサービスにアクセスするGUI、またはいくつかのGUIからA2B、B2B、B2Cサービスを渡すさらに複雑なアプリ。
サービスには常にGUIがあるわけではありません。データを維持するためにCRUDを使用できますが、これらのタイプの機能を使用し始めると、それ自体がアプリケーションになります。サービスは、それ自体よりも大きなものに適用されます。この適用により、アプリケーションが作成されます。それには目的が必要です。通常、アプリケーションを完了するには複数のブラインドサービスが必要であり、何らかのインターフェイスがあります。
盲目的にuriリクエストをサービスに送信し、それが盲目的にjsonを返送する場合、それはサービスです。盲目的にこれを送信するのは何ですか?場合は、アプリケーションではありません。ある種のクラッドがアプリケーションになると、クラッドはサービスにアクセスするためのGUIになり、全体としてデータ管理アプリケーションシステムになります。これで、このデータをWebサイト形式でデモンストレーションするためにレイヤーを前面に配置すると、このデータを表示する製品、それを管理する製品、および実際の製品であり、Webサービスを介してアクセス可能なデータが得られます、今では完全なアプリケーションです。これを作成するあなたの努力があなたのアプリケーションになります。
WebアプリケーションとWebサービスの違いは、展開係数の比率が異なるということです。つまり、Webアプリケーションの展開は(ローカル)Webサービスの場合(グローバル)に制限されます。さらに、UIパースペクティブを考える場合、より優れたオプションはWebアプリケーションですが、プログラミングとデータ転送のパースペクティブを考えるときは、主にWebサービスを使用します。 Webアプリケーションでは、Spring mvcなどのフレームワークでサーブレットを使用する必要があります。一方、同じアプリケーションを複数のプラットフォームにデプロイする場合、Rest/Soap実装を介してWebサービスにし、Webアプリケーションの動作をサービス。
要するに、
WebService =
(RestApi/Soap) # added
/ | \
(client1)---(Web Application)---(clientN)
再生するには遅すぎることはわかっていますが、それでも
Webサービスのアプローチは、次の場合に適しています
a。分散モジュール/アプリケーションの統合など、Webサービスのみとのエンタープライズ統合。
b。分散アプリケーションに適しています
c。同じサービスの複数の消費者-Credit Reporting Agencyからデータを消費する銀行のように
d。消費者はさまざまな形式のデータを望んでいます-1人の消費者(顧客)がXML形式で望んでいるように、他の消費者はJASONなどです。