ウェブサービスを始めたばかりなので、質問が愚かに聞こえたらご容赦ください。
なぜウェブサービスが必要なのですか?通常のWebアプリケーションとはどう違うのですか?
多くのチュートリアルで2つの使用法が言及されています。 1つは異なるマシン/アプリケーション間の通信で、これは問題ありません。しかし、次は再利用可能なアプリケーションコンポーネントを開発するためです。私の質問は、そのためにWebサービスが必要ですか?
例:通貨コンバーターはWebサービスとして実装でき、URLで公開できます。ただし、その後、同じものをWebアプリケーションとして作成できます。 Webサービスを使用する実際の利点はどこにありますか?
また、SOのいくつかの投稿によると、UIが含まれていない場合はWebサービスを使用し、GUIが必要な場合はWebアプリケーションを使用する必要があります。選択はとても簡単ですか?
注:ここでは、SOAPベースのWebサービス。RESTfulのものは異なる場合があります。
Webサービス(esp SOAP)は、他のプログラムによって消費/読み取り/使用されるように設計されています。 「スクリーンスクレイプ」プログラムを作成しなければならなかった場合(つまり、Webアプリケーションを操作し、ページをきれいで使いやすいものにするすべてのgooから必要なデータを選択する場合)、その構造に感謝します。
また、SOのいくつかの投稿によると、UIが含まれていない場合はWebサービスを使用し、GUIが必要な場合はWebアプリケーションを使用する必要があります。選択はすべて単純ですか?
一言で言えば、「はい」です。
web services
を使用することには多くの利点があります。通常のhttp
アプリケーションに対する主な利点は、SOAP
メッセージングを使用することです。これは、はるかに効率的で、帯域幅のコストがかかりません。
別の利点は、Service Transport、XML
Messaging、Service Description、およびService Discoveryレイヤーが標準プロトコルを使用しているため、開発者がプログラミング言語に関係なく機能を簡単に開発できることです。
天気予報などのサービスのプロバイダーであるとします。開発者を作成し、あなたのwebsite
、scrap
にアクセスして、必要なデータを抽出するのはなぜですか?開発者が日付を渡し、必要なすべての情報を含む明確に定義されたxml
ドキュメントを取得できるということは、web service
で開発する方が簡単ではないでしょうか?すべてのタイプのケースで同じことが起こります...
ソース: なぜWebサービス?
Webサービスは、HTTPを使用してリモートで呼び出すことができるマネージコードの単位です。つまり、HTTP要求を使用してアクティブ化できます。そのため、Webサービスを使用すると、既存のコードの機能をネットワーク経由で公開できます。ネットワークに公開されると、他のアプリケーションがプログラムの機能を使用できるようになります。
Webサービスを使用すると、さまざまなアプリケーションが相互に通信し、アプリケーション間でデータとサービスを共有できます。他のアプリケーションもWebサービスのサービスを使用できます。たとえば、VBまたは.NETアプリケーションは、Java Webサービスと通信できます。その逆も可能です。したがって、Webサービスは、アプリケーションプラットフォームとテクノロジーを独立させるために使用されます。
Webサービスは、通信に標準化された業界標準プロトコルを使用します。 4つのレイヤー(サービストランスポート、XMLメッセージング、サービス記述、およびサービス検出レイヤー)はすべて、Webサービスプロトコルスタックで明確に定義されたプロトコルを使用します。このプロトコルスタックの標準化は、幅広い選択肢、競争によるコストの削減、品質の向上など、ビジネスに多くの利点をもたらします。
Webサービスは通信にSOAP over HTTPプロトコルを使用するため、Webサービスの実装に既存の低コストのインターネットを使用できます。このソリューションは、EDI/B2Bなどの独自ソリューションに比べてはるかに低コストです。 SOAP HTTPを介して、WebサービスはFTPなどの他の信頼できるトランスポートメカニズムに実装することもできます。
バックエンドとUIコードの依存関係(JSPやJSFなど)を削除することにより、UIとバックエンドコード間のモジュール性を提供します。
通信はより効率的であり、帯域幅のコストは低くなります。 xmlおよびjson形式を使用して必要なデータのみを共有します。
現在、モバイルPDAなどの他のさまざまなデバイスから1日のアプリケーションが使用されています。また、ほとんどのアプリケーションにモバイルアプリがあります。この場合、Webサービスを使用する場合は、異なるデバイスとモバイルアプリのUIを開発し、必要なサービスを呼び出すだけで、アプリケーションを異なる方法で実装する必要があります。