91

最近、Java Web サービスについて学び始めることにしました。Google で Java Web サービスのチュートリアルを検索し始めたところ、XML ベース、SOAP ベース、RESTful Web サービスなど、さまざまな種類の Web サービスがあることがわかりました。

また、xml ベースの Web サービス用の JAX-WS 仕様と、RESTful Web サービスを作成するための JAX-RS 仕様があることもわかりました。

Q1) 混乱しました。これらの異なるタイプの Web サービスの違いを理解して、どちらを最初に学ぶべきかを判断できるように誰か助けていただければ幸いです。

Q2) また、Java でさまざまな種類の Web サービスを作成する方法について詳しく学びたいです。各種類の Web サービスとそれらの比較についての洞察を与えることができるチュートリアルまたはリソースはありますか。

Q3) どのシナリオと条件に基づいて、SOAP サービスではなく XML ベースの Web サービスを作成するか、RESTful サービスを使用するかを決定する必要があります。

4

4 に答える 4

142
  1. SOAP Webサービスは標準ベースであり、ほぼすべてのソフトウェアプラットフォームでサポートされています。XMLに大きく依存しており、トランザクション、セキュリティ、非同期メッセージ、およびその他の多くの問題をサポートしています。これはかなり大きくて複雑な標準ですが、ほとんどすべてのメッセージング状況をカバーしています。一方、RESTfulサービスは、HTTPプロトコルと動詞(GET、POST、PUT、DELETE)に依存して、任意の形式、できればJSONとXMLのメッセージを交換します。これは、非常にシンプルでエレガントなアーキテクチャのアプローチです。
  2. Java Worldのすべてのトピックと同様に、Webサービスを構築/使用するためのライブラリがいくつかあります。SOAP側にはJAX-WS標準ApacheAxisがあり、RESTでは他のライブラリの中でもRestletsまたはSpringRESTファシリティを使用できます。

質問3で、この記事は、RESTfulサービスがこのシナリオで適切であると述べています。

  • 帯域幅が限られている場合
  • 操作がステートレスの場合:ある呼び出しから次の呼び出しまで情報は保持されず、各要求は個別に処理されます。
  • クライアントがキャッシュを必要とする場合。

SOAPは、次の場合に実行する方法です。

  • 非同期処理が必要な場合
  • 正式な契約/インターフェースが必要な場合
  • サービス操作ではステートフルです。たとえば、リクエストに情報/データを保存し、その保存されたデータを次のリクエストに使用します。
于 2012-05-11T20:15:24.463 に答える
13

Q1)読むか、もっとグーグルするべきいくつかのことはここにあります:

Java での SOAP と RESTful Web サービスの主な違い http://www.ajaxonomy.com/2008/xml/web-services-part-1-soap-vs-rest

最初に何を学びたいかはあなた次第です。CXFフレームワークを確認することをお勧めします。rest/soap サービスの両方を構築できます。

Q2)ここに石鹸の良いチュートリアルがいくつかあります (私はそれらをブックマークしました):

http://united-coders.com/phillip-steffensen/developing-a-simple-soap-webservice-using-spring-301-and-apache-cxf-226

http://www.benmccann.com/blog/web-services-tutorial-with-apache-cxf/

http://www.mastertheboss.com/web-interfaces/337-apache-cxf-interceptors.html

学習する最善の方法は、チュートリアルを読むだけではありません。ただし、最初にチュートリアルを実行して基本的なアイデアを取得し、何かを作成できるかどうかを確認して、やる気を起こさせることができます.

SO は特定の技術 (またはそれ以上) を学ぶのに最適な方法であり、人々は多くの奇妙な質問をし、奇妙な答えが常にあります。しかし、全体として、他の方法で問題を解決する方法について学びます。その方法を知らなかったのかもしれませんし、自分では考えられなかったのかもしれません。

あなたにとって興味深いいくつかのタグを購読し、粘り強く、良い質問をし、良い答えを出すようにしてください.時間の経過とともにこれを学ぶことを保証します.

Q3)これはあなた自身が答えなければなりません。最初に何を構築するかを決定することによって、結局のところ、いくつかの小さなプロジェクトか何かを考えて、そこからそれを実行する必要があります。

REST/SOAP サービスを構築するためのフレームワークとして CXF を使用する場合は、この本を参照することをお勧めしますApache CXF Web Service Development。それは素晴らしく、読みにくくもなく、大きすぎません (win win)。

于 2012-05-11T19:53:47.737 に答える
7

The SOAP WS supports both remote procedure call (i.e. RPC) and message oriented middle-ware (MOM) integration styles. The Restful Web Service supports only RPC integration style.

The SOAP WS is transport protocol neutral. Supports multiple protocols like HTTP(S), Messaging, TCP, UDP SMTP, etc. The REST is transport protocol specific. Supports only HTTP or HTTPS protocols.

The SOAP WS permits only XML data format.You define operations, which tunnels through the POST. The focus is on accessing the named operations and exposing the application logic as a service. The REST permits multiple data formats like XML, JSON data, text, HTML, etc. Any browser can be used because the REST approach uses the standard GET, PUT, POST, and DELETE Web operations. The focus is on accessing the named resources and exposing the data as a service. REST has AJAX support. It can use the XMLHttpRequest object. Good for stateless CRUD (Create, Read, Update, and Delete) operations. GET - represent() POST - acceptRepresention() PUT - storeRepresention() DELETE - removeRepresention()

SOAP based reads cannot be cached. REST based reads can be cached. Performs and scales better. SOAP WS supports both SSL security and WS-security, which adds some enterprise security features like maintaining security right up to the point where it is needed, maintaining identities through intermediaries and not just point to point SSL only, securing different parts of the message with different security algorithms, etc. The REST supports only point-to-point SSL security. The SSL encrypts the whole message, whether all of it is sensitive or not. The SOAP has comprehensive support for both ACID based transaction management for short-lived transactions and compensation based transaction management for long-running transactions. It also supports two-phase commit across distributed resources. The REST supports transactions, but it is neither ACID compliant nor can provide two phase commit across distributed transactional resources as it is limited by its HTTP protocol.

The SOAP has success or retry logic built in and provides end-to-end reliability even through SOAP intermediaries. REST does not have a standard messaging system, and expects clients invoking the service to deal with communication failures by retrying.

source http://java-success.blogspot.in/2012/02/java-web-services-interview-questions.html

于 2012-12-18T05:52:59.177 に答える
0

アプリケーションで頻繁に http プロトコルを使用する場合は、REST が最適です。軽量であるためです。また、アプリケーションで使用するのが http プロトコルのみであることを知っている場合、SOAP を選択するのはあまり良くありません。使用するプロトコルに基づいて Web サービスの選択を決定する方が良い私たちのアプリケーションで。

于 2013-03-25T17:49:13.410 に答える